尉氏做網(wǎng)站網(wǎng)絡營銷logo
一、環(huán)境配置
1.在Ubuntu上配置docker環(huán)境
我們選擇用Xshell來將環(huán)境資源上傳到Ubuntu虛擬機上(比較簡單)
我們選擇在root模式下進行環(huán)境配置,先將資源文件復制到root下(如果你一開始就傳輸?shù)絩oot下就不用理會這個)
2.安裝docker
apt-get install docker.io
3.解壓縮資源
unzip AntSword-Labs-master.zip
4.把AntSword-Labs-master ?改下名(方便),進入該目錄。安裝Docker Compose,
Docker Compose是一個用于定義和運行多容器Docker應用程序的工具。Docker Compose將所管理的容器分為三層,分別是工程(project)、服務(service)以及容器(container)。通過Docker Compose,可以在單機上編排容器,實現(xiàn)多個服務的定義、依賴關系和按順序啟動服務等功能。
這里選擇用使用包管理工具安裝
apt-get update
apt-get install docker-compose
5.抓取docker-compose.yml
docker compose up -d
6.抓取運行成功
二、蟻劍連接
我們假定在真實的業(yè)務系統(tǒng)上,存在一個 RCE 漏洞,可以讓我們獲取 WebShell。
在蟻劍上進行連接測試
四個難點
1.? 我們需要在每一臺節(jié)點的相同位置都上傳相同內(nèi)容的 WebShell
一旦有一臺機器上沒有,那么在請求輪到這臺機器上的時候,就會出現(xiàn) 404 錯誤,影響使用。是的,這就是你出現(xiàn)一會兒正常,一會兒錯誤的原因。
新建一個hello文件一刷新就會不再,在一刷新就會出現(xiàn)
解決方法:多次保存可以解決此問題
2.? 我們在執(zhí)行命令時,無法知道下次的請求交給哪臺機器去執(zhí)行。
我們執(zhí)行 ip addr 查看當前執(zhí)行機器的 ip 時,可以看到一直在飄,因為我們用的是輪詢的方式,還算能確定,一旦涉及了權重等其它指標,就讓你好好體驗一波什么叫飄乎不定。
3.當我們需要上傳一些工具時,麻煩來了
由于 antSword 上傳文件時,采用的分片上傳方式,把一個文件分成了多次HTTP請求發(fā)送給了目標,所以尷尬的事情來了,兩臺節(jié)點上,各一半,而且這一半到底是怎么組合的,取決于 LBS 算法。
4.由于目標機器不能出外網(wǎng),想進一步深入,只能使用 reGeorg/HTTPAbs 等 HTTP Tunnel,可在這個場景下,這些 tunnel 腳本全部都失靈了。
解決方法:
1.關機
是的,首先想到的第一個方案是關機/停服,只保留一臺機器,因為健康檢查機制的存在,很快其它的節(jié)點就會被 nginx 從池子里踢出去,那么妥妥的就能繼續(xù)了。
這個方案實在是,影響業(yè)務,還會造成災難,直接 Pass 不考慮。(實驗環(huán)境下,權限夠的時候是可以測試可行性的)。
2.執(zhí)行前先判斷要不要執(zhí)行
我們既然無法預測下一次是哪臺機器去執(zhí)行,那我們的 Shell 在執(zhí)行 Payload 之前,先判斷一下要不要執(zhí)行。
3.在Web 層做一次 HTTP 流量轉發(fā)
沒錯,我們用 AntSword 沒法直接訪問 LBSNode1 內(nèi)網(wǎng)IP(172.23.0.2)的 8080 端口,但是有人能訪問呀,除了 nginx 能訪問之外,LBSNode2 這臺機器也是可以訪問 Node1 這臺機器的 8080 端口的。
原理圖如下:
首先創(chuàng)造腳本
不要使用上傳功能,上傳功能會分片上傳,導致分散在不同 Node 上。
然后修改 Shell 配置, 將 URL 部分填寫為 antproxy.jsp 的地址
查看ip
然后就解決了。