记一次5G CPE设备的安全测试 #### 缘起 想想已经几年没更新博客了,正好最近有空来去去灰除除草。博客停更的这些时间一直在转型从Web到物联网,再到现在的车联网。因此博客的往后的更新也会主要围绕物联网车联网来跟新。另外这些文章也会同步跟新到知识星球。 #### 初识 设备是某个项目中遇到的一个CPE,可以简单理解为一个4G/5G路由器。  (避免泄露产品信息,网上随便找了个图) 设备外观比较简单,直接拆机尝试使用串口连接。  连接后发现登录需要密码,尝试弱口令未果,于是准备通过boot dump内存的方式获取固件内容。 `sf read 目标内存地址 数据源地址 长度`  #### 探索 通过设备默认口令登录后台,查看一些功能点可能存在的攻击面  这里注意到存在诊断和导入配置,显然这两个入口会相对较为简单。  通过生成存档功能导出配置,查看是否存在可控参数。发现存在snmpd服务,并且可以通过XML控制其配置。  参考`https://net-snmp.sourceforge.io/wiki/index.php/Tut:Extending_snmpd_using_shell_scripts`可以通过extend的方式执行命令  直接尝试执行telnetd反弹shell,发现不存在telnetd,并且nc等都存在阉割无法直接反弹shell。   最后发现设备存在USB口,于是插入U盘替换shadow文件成功getshell  #### 尾声 返回继续看诊断,尝试IP处拼接命令发现存在白名单过滤,这里已经getshell了于是直接返回查看源码。   显然这里只对addr进行了过滤,并没有过滤ifname。于是直接拼接ifname即可执行任意命令  https://www.lovei.org/upload.html https://www.lovei.org/js.svg http://lovei.org/termux.apk file://../../../../../../../etc/hosts [file://../../../../../../../etc/hosts](file://../../../../../../../etc/hosts) file://../../../../../../../system/etc/hosts [file://../../../../../../../system/etc/hosts](file://../../../../../../../system/etc/hosts) [file:///etc/hosts](file:///etc/hosts)
你写得非常清晰明了,让我很容易理解你的观点。
这篇文章写得深入浅出,让我这个小白也看懂了!