设为首页收藏本站
查看: 926|回复: 0

《巧用EvilUSB攻击智能路由器—EvilUSB制作篇》

[复制链接]
  • TA的每日心情
    擦汗
    2017-9-10 12:02
  • 签到天数: 110 天

    [LV.6]常住居民II

    发表于 2019-8-27 13:52:19 来自手机 | 显示全部楼层 |阅读模式
    这是我19年年初定的计划中的事,一直准备写,但是因为一直以来都很忙加上自己的懒惰给大家分享一下议题中所提到的攻击方法及EvilUSB制作过程。
    0x01 攻击场景
    控制EvilUSB两种方式:

    1.    直接通过共享热点或同一局域网的方式控制EvilUSB

    2.    通过反向SSH隧道的方式控制EvilUSB



    通过远程访问到我们制作的EvilUSB,我们可以执行我们之前写好的脚本,结合其他路由器漏洞实现对路由器进行攻击的目的,其实这里也可以直接设置好插入EvilUSB设备后直接进行pwn操作,但是希望给观众一个可视化的过程,所以以交互的方式进行的此攻击过程的演示。



    0x02 漏洞成因
    1. 开启不恰当服务

    在对路由器固件分析过程中,我们不只关注对源代码的审计,同时也关注对配置文件的审计,下面分别对两款路由器的问题进行说明:

    Router1:

    此项漏洞来源于在对国内某款路由器的服务审计时发现nginx配置文件/etc/nginx.conf中在8080端口上开启的web服务,此服务用于用户在手机app端可进行的多项操作,插入USB后会挂载到相应目录下,当手机端执行下载视频或者备份相册等操作时,会在USB挂在的目录下创建相应的存储路径,用于存储下载的视频以及备份相片等。
    对于以上功能,我们发现它会将USB挂载到/mnt/sda1目录下。
    Router2:

    此项漏洞在分析过程中发现其服务开在了80端口上,同时对配置项和源码进行审计,在其httpd.conf文件中发现如下图所示配置项。
    同时对源代码审计时发现,此处存在对USB设备的挂载操作,并挂载到extdisks目录下,所以当我们访问路径/api-third-party/download/extdisks即可实现对USB设备存储数据的访问。

    2. 支持文件系统类型

    在对系统固件审计及测试过程中,我们发现路由器系统支持多种文件类型,可以看到下图中几种文件系统(exfat/fat/ntfs/ext4)类型。(.ko文件即kernel object 文件,作为一个内核功能模块,需要使用时,直接插入运行)
    0x03 EvilUSB制作
    1. 构造恶意的USB设备

    基于以上两点原因,所以我们在一台linux/mac机器上对USB构造一个恶意的软连接,将USB的root文件夹连接到系统的根目录下。

    umount /media/root/fc90****e848

    mkfs.ext4 /dev/sdbx

    ln –s / ./root

    所以当我们访问USB的root目录时,便可以直接访问到操作系统的根目录。将制作好的USB设备插入到路由器中,我们可以利用8080端口开启的服务,实现对系统根目录的访问,导致一个任意文件读取的漏洞
    2.可控化EvilUSB

    可是就目前而言我们还不能实现对路由器的自动化或可控制的攻击,所以我们选择了Raspberry PI Zero w来制作一款可控的USB设备,这里说明一下选择树莓派zero的原因,很多朋友可能都了解树莓派,但是可能有些人不知道USB设备有两种,一种是Host,比如电脑,可以去读取其他USB 设备中的数据,另外一种是Device,比如键盘鼠标U盘。所以从根本上来说,制作一个EvilUSB核心要求就是自身可以作为USB Device,市面上的树莓派,如树莓派2B,树莓派3等,他们只支持作为Host,而树莓派Zero 和Zero w 同时支持作为Host 和Device。

    相比Raspberrry PI Zero,Raspberrry PI Zero w 增加了WiFi 和蓝牙,因为我们要实现对USB对远程控制,所以我们实验中选中了zero w这个型号,某宝大约需要100多就能买到(我购买时忘记买焊接好的GPIO接口了,所以自己焊接的,如果感兴趣的朋友想自己实验,建议购买焊接好的,因为没有焊接经验的容易把板子焊坏),但是其作为USB设备缺点就是体积稍大。
    1)Raspberry PI Zero 支持多种OTG模式:
    如果设置成某种模式,则PI可以充当USB从设备,提供虚拟串行(终端),虚拟以太网,虚拟大容量存储设备或其他虚拟设备,如HID,MIDI,或充当虚拟网络摄像头等。此处我们要制作的是一个USB存储设备所以选择g_mass_storage模式,但是此篇文章不准备讲其制作过程,感兴趣的同学可以自己研究一下,给大家个参考地址:https://www.raspberrypi.org/magpi/pi-zero-w-smart-usb-flash-drive/
    2)实现对USB的远程控制

    制作好作为从设备的树莓派后,因为树莓派zero w本身支持wifi连接,所以我们可以实现在同一局域网通过SSH对USB进行控制,但是如果我们想进行远程攻击,我们怎么办,此处笔者在EvilUSB和外网服务器上建立了一个反向的SSH隧道(autossh),在远程实现对设备的控制,此处制作过程也不多赘述。

    3)附加硬件网卡模块enc28j60

    最后要实现对路由器设备的攻击,我们还需要使被攻击的路由器与我们的EvilUSB处于同一网络环境下,所以此处我们添加了一个硬件模块enc28j60,通过树莓派zero开发板上的GPIO接口外接此模块。

    制作好的设备:

    1.RaspberryPI Zero w+enc28j60

    2. Orange PI Zero

    因为Orange PI自带网卡插口所以使用其代替RaspberryPI 直接省去了外接enc28j60模块的步骤。
    0x04 结语
    此篇文章主要用来讲解EvilUSB的漏洞成因以及EvilUSB的制作过程,在USB制作过程中踩到过很多坑,但是也学到了很多东西,后面文章我会讲解通过制作的USB实现远程控制其对路由器的攻击并获取shell的过程。
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    站长推荐 上一条 /1 下一条

    红盟社区--中国红客联盟 

    Processed in 0.134941 second(s), 12 queries.

    站点统计| 举报| Archiver| 手机版| 黑屋 |   

    Powered by HUC © 2001-2017 Comsenz Inc.

    手机扫我进入移动触屏客户端

    关注我们可获取更多热点资讯

    Honor accompaniments. theme macfee

    快速回复 返回顶部 返回列表