常用组件中的漏洞频发点

Web管理服务

  • lighttpd
  • thttpd/mini_httpd
  • GoAhead
  • uhttpd
  • Boa
  • 各厂自研

IOT固件安全入门 - 图1

UPNP服务

  • Miniupnp/MiniDLNA
  • Libupnp(Broadcom upnp)
  • 各厂自研(D-Link)

IOT固件安全入门 - 图2

RTSP服务

  • Live555
  • HiChipSDK(闭源)
  • 各厂自研

IOT固件安全入门 - 图3

其他服务

自研协议相关服务
IOT固件安全入门 - 图4

示例

CVE-2020-14472/14473 DrayTek Vigor 1-Days

寻找合适的攻击面

  • Nmap扫描开启的服务
  • 不考虑VPN相关端口(安全性较高)
  • HTTPS与HTTP
    • 基于Lighttpd设计
    • 使用了大量的CGI扩展

image.png

固件解包

  • 从固件中拆出UBI文件系统
  • 从文件系统找出启动项
  • 排除不存在漏洞的启动项

    Binwalk 查看固件内容

    image.png
    使用Ubireader 提取UBI文件系统
    image.png

    查找CGI文件

  • 以Web管理服务为目标

  • Lighttpd与CGI

查看启动项
image.png
查看http管理端是否在默认启动项里面
image.png
查看lig.http配置文件,发现lighttp.conf文件配置了http服务以什么方式启动
image.png
查看lighttp.conf文件,
使用的模组,以及模组的配置
image.png
文件对应的文件格式
image.png
查找CGI文件
image.png

静态逆向分析

  • 逆向mainfunction.cgi梳理逻辑
  • path与action字段实现功能分发
  • 逆向mainfunction.cgi具体功能
  • 发现漏洞

梳理运行逻辑,查找关键字start,找到main_0
image.png
main_0内容分析,
image.png