代理--內網滲透與流量轉發
代理–內網滲透與流量轉發
拓撲
A—–B—–C
A ip地址為192.168.7.14
,B ip地址為192.168.7.124
,C地址為172.16.21.130
,A為橋接模式的虛擬機器,B為主機,C為NAT模式下的虛擬機器。A、B可互相訪問,B、C可互相訪問,但A無法直接訪問C,現在目標是通過代理實現A對C的訪問。
使用ssh隧道進行代理
mac開啟ssh服務並修改自定義埠
開啟ssh服務:
從系統偏好設定->共享->勾選“遠端登入”
設定單一正向代理
在A上執行命令:
ssh -L 127.0.0.1:2223:172.16.21.130:22 [email protected]
在A上使用命令ssh [email protected] -p 2223
,通過B主機,實現通過本地A的2223埠實現對遠端主機C 22埠的訪問。
設定單一反向代理
在B上使用命令:
ssh -R 2223:172.16.21.130:22 [email protected]
B主動向A發起ssh連線,需要輸入A的ssh賬號口令,將來自(A)192.168.7.14:2223的請求,轉化為對(C)172.16.21.130:22的請求,然後將結果通過ssh隧道,返回給A
在A上使用命令ssh [email protected] -p 2223
,通過B主機,實現通過本地A的2223埠實現對遠端主機C 22埠的訪問。
設定全域性代理
使用ssh設定代理
ssh -N -f -D bindaddress:bindportuse@server -N 不執行命令 -f 跑到後臺執行 -D監聽埠,把本地請求轉發給目標服務。
安裝proxychains
sudo apt-get installproxychains
對於錯誤ERROR: ld.so: object 'libproxychains.so.3' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
,解決方案:
find /usr/ -name libproxychains.so.3 sudo gedit /usr/bin/proxychains
修改配置檔案:
sudo gedit /etc/proxychains.conf 加入相應設定
使用命令:
proxychains command
只能代理tcp。
二級代理
再多一級D(192.168.168.4),在A上訪問D。 在B上執行兩條命令
ssh -R 8888:127.0.0.1:4444 [email protected] B作反向代理,將A:8888與B:4444打通ssh隧道 ssh -2 -D 4444 [email protected] B將本地4444埠與C打通ssh隧道,C作正向代理
使用ew進行代理
可以用ew來建立正向代理、反向代理、多級級聯,非常強大 舊版,已夠用 http://rootkiter.com/EarthWorm/ 新版,更新中,側重shell管理 http://rootkiter.com/Termite/
正向全域性代理
將ew.zip到B上,並移動到tmp目錄下,在B上執行
unzip ew.zip file /sbin/init (檢視linux位數) chmod 777 ew_for_Linux32 ./ew_for_Linux32 -s ssocksd -l 2333 (偵聽0.0.0.0:2333) netstat -pantu|grep 2333 (檢視是否偵聽成功)
在A上使用proxychains以B為代理,訪問C
反向全域性代理
在A上執行:
chmod 777 ./ew_for_linux64 ./ew_for_linux64 -s rcsocks -l 1080 -e 2333
A偵聽0.0.0.0:2333埠,並轉發為0.0.0.0:1080埠。 在B上執行
chmod 777 ew_for_Linux32 ./ew_for_Linux32 -s rssocks -d 192.168.7.14 -e 2333 B反向連線A:2333埠
此時以A的1080埠為代理,就能直接訪問C了。
多級代理
B上執行
./ew_for_Linux32 -s rcsocks -l 1080 -e 2333
偵聽0.0.0.0:2333,流量轉發到0.0.0.0:1080
C上執行
./ew_for_Linux32 -s rssocks -d 192.168.7.124 -e 2333
C反向連線B:2333埠
這樣A上以B 192.168.7.124:1080為socks代理,可以直接對D進行滲透