工具
https://github.com/monoxgas/sRDI
https://github.com/0xCuSO4/DHLYK
http://www.downxia.com/downinfo/30809.html
瑾特供版,功能有些残缺,比如不能直接生成服务(exe)
DLL转shellcode
首先用大灰狼生成一个dll
查看一下它的Dllmain
随后我们用dll转shellcode的工具生成一下
这里已经生成了bin格式的shellcode,有些分离免杀加载器便可执行
这里我们把bin文件转成C
会在同目录下生成同名.c文件
我们将其shellcode提取出来
写一个简单的32位的加载器
这时候发现上线成功 当然这个加载器不免杀,连静态火绒都过不了 但是可以结合其他免杀加载器方式
而且我觉得语音监听和视频监控都比较合适找到嫌疑犯 留下证据 cs可能没有这个方便
一键化脚本
import wx
import os
class MyFileDropTarget(wx.FileDropTarget):
def __init__(self, window):
"""Constructor"""
wx.FileDropTarget.__init__(self)
self.window = window
def OnDropFiles(self, x, y, filenames):
# print(filenames[0])
self.window.bjk1.SetValue(filenames[0])
class Frame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None, title='', size=(532, 110),name='frame',style=541072384)
self.qdck = wx.Panel(self)
self.Centre()
file_drop_target = MyFileDropTarget(self)
self.bjk1 = wx.TextCtrl(self.qdck,size=(313, 33),pos=(30, 17),value='',name='text',style=0)
self.bjk1.SetDropTarget(file_drop_target)
self.an1 = wx.Button(self.qdck,size=(98, 29),pos=(397, 18),label='运行',name='button')
self.an1.Bind(wx.EVT_BUTTON,self.an1_anbdj)
def an1_anbdj(self,event):
os.system(f"python ConvertToShellcode.py -f fuckyou -i -c {self.bjk1.GetValue()}")
binfile=self.bjk1.GetValue().replace('.dll', '.bin')
# print(binfile)
os.system(f"python bin2c.py {binfile}")
class myApp(wx.App):
def OnInit(self):
self.frame = Frame()
self.frame.Show(True)
return True
if __name__ == '__main__':
app = myApp()
app.MainLoop()
一键化优化版本压缩包:
转出shellcode,bin,hex和powershell格式
内存特征扫描
https://github.com/VirusTotal/yara
从内存中提取特征来制造一个扫描器
多找几个特征以免产生误报
yara扫描规则
rule HunterRule {
meta:
// KEY = "VALUE"
description ="大灰狼远控"
strings:
// name = "string"
$a1="www.jinjin.com"
$b1 = "BaiduSdSvc.exe."
$b2 = "S-U.ServUDaemon.exe"
$b3 = "DUB.exe"
$b4 = "1433.exe"
$b5 = "S.exe"
$b6 = "pfw.exe"
$b7 = "MPMon.exe"
$b8 = "360tray.exe"
$b9 = "AVWatchService.exe"
$b10 = "QQ.exe"
$b11 = "TrojanHunter.exe"
$b12 = "Norton.ccapp.exe"
$b13 = "AVWatchService.exe"
$b14 = "cleaner8.exe"
$b15 = "ad-watch.exe"
$b16 = "safedog.exe"
$b17 = "FYFireWall.exe"
condition:
all of ($a*) and 10 of ($b*)
}
包含特征a和十个特征b
#遍历扫描一下,可以优化,但是效果达到了
import os
import psutil
def main():
print("开始扫描内存")
pids=psutil.pids()
for pid in pids:
try:
os.system(f"yara64.exe dhl.yar {pid}")
except:
pass
if __name__ == '__main__':
main()
print("扫描完成")