首页
社区
课程
招聘
[原创]QQ寻仙木马
2008-10-29 17:37 3288

[原创]QQ寻仙木马

2008-10-29 17:37
3288
第一帖写分析文档

运行后删除自身,并且生成3个文件

System32\dirvers\HBKernel32.sys
System32\system.exe
System32\HBQQXX.dll

添加注册表项:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HBKernel32
保证自己的驱动会随系统启动,Group是Boot Bus Extender,所以安全模式也启动

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
里面添加HBService32,运行system.exe进程

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows
在AppInit_DLLs里面添加一大堆木马的dll,保证有窗口的进程一启动就会被注入dll

System32\HBQQXX.dll 是盗qq寻仙的木马,没有保护功能,不去理会
System32\system.exe
监视注册表
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run中HBService32
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows中AppInit_DLLs
保证自己和木马被添加进去

System32\dirvers\HBKernel32.sys
驱动,保护文件
System32\dirvers\HBKernel32.sys
System32\system.exe
System32\HBQQXX.dll
不被删除

保护system.exe进程,让其他进程无法访问system.exe

代码就不帖了

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
点赞0
打赏
分享
最新回复 (10)
雪    币: 7300
活跃值: (3758)
能力值: (RANK:1130 )
在线值:
发帖
回帖
粉丝
海风月影 22 2008-10-29 17:41
2
0
第一种方法: ring3版

直接解析磁盘,找到文件对应位置,写扇区数据,破坏上面3个文件,重启后,驱动无法加载,system.exe无法启动,HBQQXX.dll无法注入,再清除文件,注册表项

先运行delfile,然后重启(我程序懒得做重启了)
重启后运行cleanup.exe,OK
上传的附件:
雪    币: 7300
活跃值: (3758)
能力值: (RANK:1130 )
在线值:
发帖
回帖
粉丝
海风月影 22 2008-10-29 17:52
3
0
第二种方法:ring3版本

条件:windows xp以上,windows 2000不支持,需要有管理员权限

用ring3下函数NtSystemDebugControl写内核空间,patch驱动RVA为的0x3F20的位置,使它的保护线程自己退出


.text:00012D6D loc_12D6D:                              ; CODE XREF: systhread+25j
.text:00012D6D                                         ; systhread+428j
.text:00012D6D                 cmp     dword_13F20, 0  ; 这里写入1,则线程退出
.text:00012D6D                                         ;
.text:00012D74                 jz      loc_12958       ; 循环线程


先找到HBKernel32.sys的基址,然后patch RVA位置的数据,用NtSystemDebugControl的9号功能写内核地址

然后再结束system.exe的进程,然后删文件,删注册表项
这样,HBKernel32.sys和system.exe已经被删除了
如果HBQQXX.dll文件删不掉就重启后运行上面的cleanup.exe,这里懒,懒得强行卸载模块了
上传的附件:
雪    币: 7300
活跃值: (3758)
能力值: (RANK:1130 )
在线值:
发帖
回帖
粉丝
海风月影 22 2008-10-29 17:53
4
0
忘记说了,HBKernel32.sys还会保护
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HBKernel32
不被删除
雪    币: 264
活跃值: (30)
能力值: ( LV12,RANK:250 )
在线值:
发帖
回帖
粉丝
kangaroo 6 2008-10-30 09:21
5
0
学习!!!!!!!!!!!!!!
雪    币: 7300
活跃值: (3758)
能力值: (RANK:1130 )
在线值:
发帖
回帖
粉丝
海风月影 22 2008-10-30 11:36
6
0
第三种:ring0版

其实就是上一个方法的ring0版本

patch驱动的3F20处,使线程退出
上传的附件:
雪    币: 7300
活跃值: (3758)
能力值: (RANK:1130 )
在线值:
发帖
回帖
粉丝
海风月影 22 2008-10-30 14:02
7
0
第四种:ring0版本

先关掉system.exe进程
关闭驱动占坑的句柄
驱动直接发irp删除文件
重启

清理现场用上面的cleanup.exe
上传的附件:
雪    币: 7300
活跃值: (3758)
能力值: (RANK:1130 )
在线值:
发帖
回帖
粉丝
海风月影 22 2008-10-30 16:46
8
0
第5种: ring3版

和驱动通信,去掉它保护的进程pid,和保护文件的标志(驱动的漏洞?)
关闭驱动占坑的文件句柄,去掉hbkernel32.sys的保护
结束system.exe进程,去掉system.exe的保护
枚举所有hbqqxx.dll的模块,发远程线程卸载掉,去掉hbqqxx.dll的保护

删除上述文件,重启后运行cleanup.exe
上传的附件:
雪    币: 7300
活跃值: (3758)
能力值: (RANK:1130 )
在线值:
发帖
回帖
粉丝
海风月影 22 2008-10-30 16:52
9
0
再说一个理论上的方法

用驱动去hook HBKernel32.sys的IAT,hook KeDelayExecutionThread这个函数
然后自己的MyKeDelayExecutionThread,里面把Interval改成超大,这样就相当于驱动的那个保护线程直接挂起了,然后再关掉文件占坑句柄,结束system.exe的时候,可以用OpenProcess(..,..,pid+1)的方法打开进程,然后结束它,这样注册表就没有保护了,清掉所有注册表项,再发远程线程,卸载掉全局的hbqqxx.dll模块,然后删文件即可。
雪    币: 7300
活跃值: (3758)
能力值: (RANK:1130 )
在线值:
发帖
回帖
粉丝
海风月影 22 2008-10-30 16:53
10
0
上面的方法应该是可以实现的,明天要出去有事,周末才回来,我没空写驱动了
雪    币: 264
活跃值: (30)
能力值: ( LV12,RANK:250 )
在线值:
发帖
回帖
粉丝
kangaroo 6 2008-11-11 22:53
11
0
最终得分150分
游客
登录 | 注册 方可回帖
返回