工具

https://github.com/monoxgas/sRDI
https://github.com/0xCuSO4/DHLYK
http://www.downxia.com/downinfo/30809.html

大灰狼2022.zip

瑾特供版,功能有些残缺,比如不能直接生成服务(exe)

DLL转shellcode

image.png
首先用大灰狼生成一个dll
查看一下它的Dllmain
image.png
随后我们用dll转shellcode的工具生成一下
image.png

这里已经生成了bin格式的shellcode,有些分离免杀加载器便可执行

这里我们把bin文件转成C
image.png

会在同目录下生成同名.c文件

image.png

我们将其shellcode提取出来

image.png

写一个简单的32位的加载器

image.png

这时候发现上线成功 当然这个加载器不免杀,连静态火绒都过不了 但是可以结合其他免杀加载器方式

而且我觉得语音监听和视频监控都比较合适找到嫌疑犯 留下证据 cs可能没有这个方便

一键化脚本

https://github.com/delimitry/bin2c

  1. import wx
  2. import os
  3. class MyFileDropTarget(wx.FileDropTarget):
  4. def __init__(self, window):
  5. """Constructor"""
  6. wx.FileDropTarget.__init__(self)
  7. self.window = window
  8. def OnDropFiles(self, x, y, filenames):
  9. # print(filenames[0])
  10. self.window.bjk1.SetValue(filenames[0])
  11. class Frame(wx.Frame):
  12. def __init__(self):
  13. wx.Frame.__init__(self, None, title='', size=(532, 110),name='frame',style=541072384)
  14. self.qdck = wx.Panel(self)
  15. self.Centre()
  16. file_drop_target = MyFileDropTarget(self)
  17. self.bjk1 = wx.TextCtrl(self.qdck,size=(313, 33),pos=(30, 17),value='',name='text',style=0)
  18. self.bjk1.SetDropTarget(file_drop_target)
  19. self.an1 = wx.Button(self.qdck,size=(98, 29),pos=(397, 18),label='运行',name='button')
  20. self.an1.Bind(wx.EVT_BUTTON,self.an1_anbdj)
  21. def an1_anbdj(self,event):
  22. os.system(f"python ConvertToShellcode.py -f fuckyou -i -c {self.bjk1.GetValue()}")
  23. binfile=self.bjk1.GetValue().replace('.dll', '.bin')
  24. # print(binfile)
  25. os.system(f"python bin2c.py {binfile}")
  26. class myApp(wx.App):
  27. def OnInit(self):
  28. self.frame = Frame()
  29. self.frame.Show(True)
  30. return True
  31. if __name__ == '__main__':
  32. app = myApp()
  33. app.MainLoop()

一键化优化版本压缩包:

image.png
转出shellcode,bin,hex和powershell格式

dist.zip

内存特征扫描

https://github.com/VirusTotal/yara

从内存中提取特征来制造一个扫描器

image.png
多找几个特征以免产生误报

比如一个进程中含有多个杀软名字

yara扫描规则

  1. rule HunterRule {
  2. meta:
  3. // KEY = "VALUE"
  4. description ="大灰狼远控"
  5. strings:
  6. // name = "string"
  7. $a1="www.jinjin.com"
  8. $b1 = "BaiduSdSvc.exe."
  9. $b2 = "S-U.ServUDaemon.exe"
  10. $b3 = "DUB.exe"
  11. $b4 = "1433.exe"
  12. $b5 = "S.exe"
  13. $b6 = "pfw.exe"
  14. $b7 = "MPMon.exe"
  15. $b8 = "360tray.exe"
  16. $b9 = "AVWatchService.exe"
  17. $b10 = "QQ.exe"
  18. $b11 = "TrojanHunter.exe"
  19. $b12 = "Norton.ccapp.exe"
  20. $b13 = "AVWatchService.exe"
  21. $b14 = "cleaner8.exe"
  22. $b15 = "ad-watch.exe"
  23. $b16 = "safedog.exe"
  24. $b17 = "FYFireWall.exe"
  25. condition:
  26. all of ($a*) and 10 of ($b*)
  27. }

包含特征a和十个特征b

image.png

  1. #遍历扫描一下,可以优化,但是效果达到了
  2. import os
  3. import psutil
  4. def main():
  5. print("开始扫描内存")
  6. pids=psutil.pids()
  7. for pid in pids:
  8. try:
  9. os.system(f"yara64.exe dhl.yar {pid}")
  10. except:
  11. pass
  12. if __name__ == '__main__':
  13. main()
  14. print("扫描完成")