-
-
[原创]CS[1]exe木马分析
-
2022-4-5 16:36 6531
-
# CS[1]exe木马分析
Cobalt Strike是渗透测试工具,可以通过exe木马实现远程控制。
一:生成exe
Windows Executable 生成可执行exe木马;payload分段
Windows Executable(S) 生成无状态的可执行exe木马,payload不分段
分析Windows Executable 生成的artifact.exe
查壳:无壳
二:具体分析
401840关键函数:获取系统时间戳,通过sprintf拼接管道名,创建线程,写加密数据到创建的管道内,最后解密执行
线程函数:
[
跟进线程函数,创建命名管道,将加密数据写进管道内
加密的数据:
加密数据crypt_data1写入管道内
读取管道内的数据,解密数据,跳转执行
decodeandcall:解密数据,修改内存属性,跳转执行
用于解密的数组:
申请的内存地址20000
跳转到eax:20000执行shellcode
shellcode分析:
1.loadlibrary加载wininet.dll
InternetOpen函数:在进行HTTP、FTP和服务器通信前初始化 WinInet.dll 。简单的说通过 InternetOpen 函数创建位于根部的 Hinternet 句柄
InternetConnect 连接:192.168.99.8
HttpOpenRequestA 创建 HTTP 请求句柄。
HttpSendRequestA发送HTTP请求到指定的服务器
virtualalloc 申请内存:
不断internetreadfile 读数据到申请的内存
读到的数据:
读完数据后继续跟
跳转到申请的内存处,解密出dll。
解密出的pe文件
后面继续跟就是反射dll注入
7CB2+7为 ReflectiveLoader函数的偏移,call ebx调用ReflectiveLoader函数反射注入dll,压入参数call eax 调用dllmain
1 2 3 4 5 6 7 8 9 10 | dec ebp ; M pop edx ; Z call 0 ; 将下一条指令地址压到栈里 pop ebx ; 将压到栈里的地址弹到ebx push edx ; inc ebp ; push ebp ; 保存ebp mov ebp, esp ; 切换堆栈 add ebx, 0x ??? ; ebx + ReflectiveLoader函数偏移 - 7 (ebx相起始偏移 7 ) call ebx ; call ReflectiveLoader |
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课