利用內網穿透工具隱藏cs服務器
靈感
之前做過一個白嫖訂閱的腳本,其中有個功能是配合釘釘機器人將結果發布至釘釘群內,但該機器人不具備交互功能,為了高大上,尋思著做個可交互的機器人,效果如下:

當然,這也沒有完善,但是在這過程中,發現了釘釘提供的一個有趣的服務:內網穿透

使用簡單,最主要的是不需要身份鑒別等認證,工具下載后就可以直接一條命令使用,而且提供一個域名進行訪問:*.vaiwan.com,這個域名IP指向阿里云


整理思路
抱著白嫖的心態,想了想什么地方能白嫖這個域名,這時整理一下獲取到的東西:
- 一個域名
- 該域名解析至阿里云
- 任意端口均可轉發至該域名
- 二級域名可自定義
這四個點中,我將主要關注點放在了【任意端口均可轉發至該域名】和【該域名解析至阿里云】,那么在什么地方不希望自己的IP和端口被對方發現呢?
既然是白嫖,那就要好鋼用到刀刃上。實際上,這個功能和cdn還是具有一定的相似性的,雖然CDN的主要作用是加速網站,但CDN也是可以隱藏服務器真實IP的,在這點上,內網穿透的功能已經滿足了,那么CDN又可以用到哪里呢?
這就有了下一個點:CS域前置技術。域前置技術的核心基礎設施就是CDN,有了思路,接下來就是實踐了。
利用
第一階段
先在本地進行測試將CS的http監聽端口進行轉發,步驟如下:
1.下載釘釘內網穿透工具:git clonehttps://github.com/open-dingtalk/pierced.git
2.本地為windows環境,先假設CS監聽端口為80,確定域名為”kekoukele”(可口可樂yyds),啟動內網穿透:
./ding -config=./ding.cfg -subdomain=[domain] [port]


80端口已穿透至kekoukele.vaiwan.com,這時注意到上方的ngrok(關注一下,后面用的到)
本地啟動cs,并建立HTTP監聽,配置參考下方

此時生成木馬進行上線,可看到連接地址為阿里云IP


此時,白嫖已有成效,一個免費的域名+一個免費的CDN
這時,服務器上看到一個新問題,因為放在后臺運行懶得去關,CS監聽器的端口一直在被惡意訪問、掃描,CS會產生大量的web日志,很煩人。對這個情況無非就是限制IP對端口的訪問,但是掃描的IP很多,封起來很麻煩,那么可以看一眼CS日志,監聽的端口和穿透工具之間是使用127.0.0.1進行通信的,利用Linux訪問規則限制本地端口只有127可以訪問即可。

第二階段
本以為此時已經用不到這個工具了,但又遇到一個環境,讓我繼續對內網穿透產生了興趣https://katacoda.com/madhuakula/scenarios/kubernetes-goat#!
這是一個學習K8S相關漏洞的一個公共環境,提供有時限性的一個虛擬環境,環境起來后發現java、python環境配的整整齊齊,直接就一步到位,重點來了,這玩意竟然出網!!!
白嫖之魂再次爆發:該網站可隨意注冊,環境隨便起,這不現成的一個匿名vps么,唯一的區別就是沒有公網IP而已,但是這不影響呀,咱有內網穿透,這不就嫖成了!
這次思路就很清晰了重復第一階段的操作,然后確實可以訪問到環境中向外穿透的端口了,但這時,就有個新的問題了,沒有公網IP,CS客戶端該怎么去連接服務端呢???
思路一
既然能出網,那就把它當成個內網機器去打,直接用frp把端口轉出來,那該往哪轉呢?
經過整理后,思路一需要具備的條件如下:
- 傀儡機1臺
- 傀儡機啟動frp
- 一個可下載的CS鏈接地址
通信情況用圖來解釋更直觀

接下來就是離譜的情況了,第一次frp確實出來了

CS也成功連接

創建監聽、內網穿透都成功了,馬子也可以上線

然后尋思寫個腳本,可以一鍵部署CS,客戶端連接上只需要繼續建立監聽就可以了,

這里說一下,利用域名實現的監聽在CS遷移后,繼續使用原域名進行監聽,之前生成的馬子仍然可以連接,因為馬子連接的是域名的端口,而域名又是CS轉發的端口,所以對于CS而言,IP地址及端口對馬子的上線不造成影響,只要域名在,那么馬子就能連回來。
可以看到,腳本里仍使用的frp,但是這個環境里frp運行貌似受什么服務影響,有時可以有時就不行,其他同類型的工具也是相同情況,導致這個思路夭折了,具體原因,還在研究中。
思路二
既然frp有問題,那就換條路子,又把目光放到了釘釘的內網穿透上,首先要確定一點,CS客戶端連接服務端時使用的并不是HTTP協議,那么HTTP的內網穿透就是不可以成功的。
查看github上的使用手冊,發現有這么個功能:

既然依靠TCP隧道數據庫端口可以出來,那么CS必然也可以,查看ding.cfg的內容

其中需要關注的地方為tcp及remote_port,分別為本地端口,穿透后公網端口,修改3306為CS連接端口,remote_port修改為任意端口后啟動內網穿透即可
./ding -proto=tcp -config=./ding.cfg start ssh
CS連接時,地址端口配置如圖

在自己服務器上已經測試成功了,扔到那個虛擬環境里又連不上,離譜離譜!!!
總結
內網穿透的工具實際上在滲透中也可以使用,殺軟對于這些工具不會報毒,在frp、nps等工具無法使用時,內網穿透工具也是個不錯的選擇。
后續
到輸出文章的這天,釘釘的內網穿透服務突然就變得很慢了,翻看上文中的圖片,在釘釘工具運行起來后有標注ngrok,釘釘的內網穿透就是該工具的改版,免費版除了不能自定義域名,效果與釘釘工具基本相同。