-
-
[原创]记一次新型变种QakBot木马分析
-
发表于:
2022-4-7 23:52
12877
-
0x1. 背景
年初单位邮箱收到了一篇钓鱼邮件还有一个附件xlsb的文档,将宏命令提取出来,发现会从远程下载一个文件下载后将文件上传到杀毒网开始查杀,51个杀软也就10个左右报毒了,很明显是有点问题的.

0x2. 病毒分析
通过前期的分析从文件中dump出一个可疑的PE文件,当然你可以用OD的工具去Load,写了一个加载程序,然后在下断LoadLiarbryA,加载成功后名为:hello.dll.


入口处之前跟过发现存在很多花指令分析起来也挺耗时间,调用函数是来回跳来跳去,要么就是来回赋值做一些没用的操作,这里就不从头开始分析了,剑走偏锋直接从FindResourceA开始.

从资源段里加载一个可疑资源

老三样:LoadResource、SizeofResource、LockResource



之后Virtualalloc分配内存00300000 和 00E70000


向申请的内存空间写入资源数据

一路F8跟到解密后的数据

dump出一份PE,然后用regsvr32.exe OD加载写入参数下断VirtualAllocEx


将shellcode指令写入内存

过程中还发现在系统函数使用过程不直接调用API函数,而是利用FS寄存器找到TEB的地址(TEB+0x30)->到PEB结构地址在PEB+0x0C地方指向PEB_LDR_DATA结构,PEB_LDR_DATA+0x1C的地方就是Dll地址获取kernel32.dll加载到内存的位置,找到其导出表,定位导出的GetProcAddress函数,使用GetProcAddress函数获取地址,再保存然后再调用(一部分防止杀毒发现).

看到这让我想起了一种傀儡进程的注入方式,那显然应该有创建进程或者是打开进程句柄的操作,bp CreateProcess
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
最后于 2022-4-7 23:55
被badboyl编辑
,原因: