隱藏源IP,提高溯源難度的幾種方案

來自:FreeBuf.COM,作者:ddq

連結:https://www.freebuf.com/sectool/270669.html

為什麼會有此文:

原因一:保護個人隱私是是第一齣發點;科技進步飛快,網路也滲透入生活中的方方面面,近幾年的隱私洩露事故時有發生,我們該如何保護個人隱私?

原因二:得到了大佬的幫助和指點,希望把對我的指點內容記錄一下,也能為其他人提供一點點幫助!

測試方式:

透過CS4。2生成測試程式,測試回連C2伺服器時能否達到隱藏伺服器的IP

公網伺服器真實IP:1。2。3。4

Cobalt Strike版本:4。2

所有需要註冊帳號的步驟,都建議使用自己安全的郵箱!

一、使用隧道轉發進行代理

一句話核心原理:利用內網穿透,將C2回連埠對映到其他公網地址64。x。x。x,以達到測試程式透過其他公網地址進行回連,隱藏C2真實ip;

隱藏源IP,提高溯源難度的幾種方案

方案分析:

適合使用者:這種隱藏ip的方案適合於沒有公網伺服器,使用自己本地電腦進行測試的使用者;或者有公網伺服器,透過本方案隱藏伺服器真實ip的使用者;

優點:免費使用他人提供的隧道服務,可以快速的用來測試,0成本;

缺點:使用了他人提供的隧道服務(增加了風險);且註冊賬號時還需要完成微信繫結(增加了風險);國內平臺(增加了風險);

使用流程:

1。開啟網站

https://www。ngrok。cc/ 註冊ngrok賬號

隱藏源IP,提高溯源難度的幾種方案

2。登入後配置ngrok代理

2。1 購買一個免費通道

隱藏源IP,提高溯源難度的幾種方案

2。2 配置通道

隧道型別分為http、https、tcp

我們本次測試tcp通道,http、https各位有興趣的自己嘗試;

隱藏源IP,提高溯源難度的幾種方案

因為對映到公網的遠端埠有限,所以我們需要多次查詢可用的遠端埠,例如:查詢到10001埠可用,那就選擇tcp埠對映 公網伺服器的10001埠←—-對映—→本地127。0。0。1:8080埠

最終配置如下,其中隧道ID就是我們後面要用到的;隧道域名就是對外部公網提供訪問時的公網域名;

3。穿透工具使用說明

https://www。ngrok。cc/_book/

3。1下載可執行程式

https://www。ngrok。cc/download。html

隱藏源IP,提高溯源難度的幾種方案

3。2執行隧道穿透

隱藏源IP,提高溯源難度的幾種方案

執行成功後,所有訪問

4。配置listener

隱藏源IP,提高溯源難度的幾種方案

5。生成payload,執行測試

5。1執行payload,主機可以成功上線;

5。2檢視本地回接C2伺服器的ip地址為

上面的64。X。X。X就是ngrok的公網ip

搞定!

二、使用CDN

一句話核心原理:使用CDN內容分發網路的多節點分散式技術,透過“加速、代理、快取”隱藏在後面的靜態檔案或服務;最終實現對外暴露的是CDN多節點的公網域名IP,很難甚至無法溯源真實後端伺服器的域名或IP!

隱藏源IP,提高溯源難度的幾種方案

方案分析:

適合使用者:這種隱藏ip的方案適合於有公網伺服器,透過本方案CDN進行“加速、代理、快取”實現隱藏伺服器真實ip或域名的使用者;使用國內CDN服務商的產品的域名必須完成ICP實名備案;

優點:利用CDN分散式技術,不同區域的主機就近連線到CDN服務,優化了訪問質量,隱藏了真實伺服器的ip;且CDN分散式技術可以在一定程度抵抗DDOS大流量攻擊;使用國內CDN適合用於做紅藍對抗技術比拼等合法目的;

缺點:受控主機還是透過我們自己的域名進行回連,對外還是能看到連線域名;且如果使用國內CDN的服務(增加了風險),域名就必須完成ICP備案(增加了風險);而且還有一些方法可能溯源到真實IP(請一定要按照原文中的參考文章1、2,進行子查一下!);

使用流程:

(匿名註冊新域名且無需備案+使用國外免費CDN服務)

1。匿名註冊新域名:

https://www。freenom。com/zh/index。html?lang=zh

1。1 完成賬號註冊登入(註冊可以先不做,繼續選域名後面會有一步驟讓我們註冊賬號);

1。2搜尋域名:

小坑提醒:這裡有一個坑,搜尋 wikisoft,會顯示所有域名不可用;但是搜尋 wikisoft。tk 就可以;所以一定要搜尋域名全稱!

隱藏源IP,提高溯源難度的幾種方案

1。3下單確認:

隱藏源IP,提高溯源難度的幾種方案

如果之前沒有註冊過域名,點選 “繼續”按鈕,會讓我們進行註冊賬號,或者驗證郵箱;然後進行登入再進行選購域名;(這裡如果註冊失敗,可以用gmail註冊。)

1。4 配置域名的NameServer域名解析服務(這樣做,後面再解釋為什麼;現在不修改,預設配置,也可以後面再修改)

1。4。1進入我的域名:

隱藏源IP,提高溯源難度的幾種方案

1。4。2選擇域名管理:

1。4。3選擇域名解析服務進行修改

隱藏源IP,提高溯源難度的幾種方案

隱藏源IP,提高溯源難度的幾種方案

匿名域名註冊及配置完畢!

2。匿名註冊免費CDN服務Cloudflare

2。1登入註冊賬號

https://www。cloudflare。com/zh-cn/

2。2配置域名使用CDN

2。2。1新增站點

隱藏源IP,提高溯源難度的幾種方案

2。2。3選擇免費計劃

隱藏源IP,提高溯源難度的幾種方案

2。2。4直接配置使用CDN代理模式進行域名解析提供服務

上面1。4,配置NameServer更換解析伺服器的原因就是,將wikisoft。tk域名的所有解析功能都託管在Cloudflare,這樣Cloudflare可以提供CDN的解析功能!

隱藏源IP,提高溯源難度的幾種方案

2。2。5 自動配置全部選擇關閉

隱藏源IP,提高溯源難度的幾種方案

2。2。6配置SSL/TLS加密方式(預設不加密,有興趣的自己嘗試其他加密的區別)

隱藏源IP,提高溯源難度的幾種方案

注意:Cloudflare的CDNhttp、https代理模式有個特點,如果用其他埠的話,是監聽不到的!

到此域名+CDN全部搞定!開始測試!

3。配置listener

HTTP Host Header,必須填寫你的域名!這是CDN技術的原理要求;在下面的“域名前置方”案中我們再解釋

隱藏源IP,提高溯源難度的幾種方案

4。生成payload,執行測試

4。1執行payload,主機可以成功上線;

4。2檢視受控主機本地回接C2伺服器的ip地址為 172。67。159。243:2095(CDN節點ip);而不是我們自己伺服器的真實ip

隱藏源IP,提高溯源難度的幾種方案

4。3再來說一下這個ip是啥:這個ip就是我們使用的Cloudflare的最近CDN節點的公網ip

隱藏源IP,提高溯源難度的幾種方案

搞定!

三、使用域名前置(Domain Fronting)

隱藏源IP,提高溯源難度的幾種方案

方案分析:

適合使用者:這種隱藏域名及ip的方案適合於有公網伺服器

優點:本方案使用高信譽域名進行連線,通常安全裝置很難檢測,也很難封堵;

缺點:配置和準備條件較多步驟比較複雜;如果能利用好上面的域名+CDN也挺好。

使用流程:

小坑提醒:我嘗試使用http域名前置進行原理演示,因為 Cloudflare免費版CDN不支援上傳自定義ssl網站證書,只能升級成企業版才可以實現https!(如果你是企業版,就是透過修改上面的“2。2。6配置SSL/TLS加密方式”這一節就能完成https通的聯通及域名前置!可需要申請域名的https證書,現在各種雲平臺都有一年免費證書可用,方法“參考文章4、5”。)

1。完成上面域名+CDN的所有配置

2。獲取其他也託管在Cloudflare並使用CDN的合法域名(比如:commonlit。app)

隱藏源IP,提高溯源難度的幾種方案

3。配置listener

隱藏源IP,提高溯源難度的幾種方案

4。生成payload,執行測試

4。1執行payload,主機可以成功上線;

4。2檢視受控主機本地回接C2伺服器的ip地址為 104。21。41。43:2095(CDN節點ip);而不是我們自己伺服器的真實ip

隱藏源IP,提高溯源難度的幾種方案

4。2。1檢視DNS資料包,可以確認連線過程是查詢commonlit。app:2095這個地址,進行連線的;

隱藏源IP,提高溯源難度的幾種方案

4。2。2檢視連線資料包,http方式還是可以看到host資訊的;

隱藏源IP,提高溯源難度的幾種方案

4。3再來說一下這個ip是啥:這個ip就是我們使用的Cloudflare的最近CDN節點的公網ip

隱藏源IP,提高溯源難度的幾種方案

搞定!

四、使用雲服務API閘道器/雲函式

一句話核心原理:api閘道器透明轉發代理後端服務!(瞭解一kong閘道器,原理一樣);雲函式底層使用的就是api閘道器,只是雲函式的功能更高階一點,當client呼叫閘道器介面時,透過程式設計進行修改輸入引數;同理api閘道器接受到代理的後臺服務返回的內容是可以再次修改返回內容,最終將資訊返回給client;

隱藏源IP,提高溯源難度的幾種方案

方案分析:

適合使用者:這種隱藏域名及ip的方案適合於有公網伺服器,註冊了雲服務商閘道器或者雲函式產品;

優點:本方案使用高信譽域名進行連線,通常安全裝置很難檢測,也很難封堵;

缺點:配置和準備條件較多步驟比較複雜;如果能利用好上面的域名+CDN也挺好。

使用流程:

備註:這一方案,只是原理學習,沒有考慮到安全性;所以直接用了國內的雲服務產品!!!各位可以自己尋找“安全”的雲服務!雲函式的學習“參考文章10、11”,下面只說明底層的api閘道器內容

1。註冊Q雲,完成相關認證

2。配置API閘道器透明傳輸

2。1新建service

隱藏源IP,提高溯源難度的幾種方案

2。2新建API代理並完成透明代理配置

小坑提示:前端、後端代理的超時時間都設定的長一點!以免超時!

隱藏源IP,提高溯源難度的幾種方案

隱藏源IP,提高溯源難度的幾種方案

後端域名:如果是80埠,就直接填寫域名,如果是其他埠,就寫成 域名:埠

隱藏源IP,提高溯源難度的幾種方案

隱藏源IP,提高溯源難度的幾種方案

2。3檢視公網介面呼叫地址

隱藏源IP,提高溯源難度的幾種方案

3。配置listener

隱藏源IP,提高溯源難度的幾種方案

4。生成payload,執行測試

4。1執行payload,主機可以成功上線;

4。2檢視受控主機本地回接C2伺服器的ip地址為 152。136。8。215:80(Q閘道器節點ip);而不是我們自己伺服器的真實ip

隱藏源IP,提高溯源難度的幾種方案

搞定!!

五、再說點其他的

1。域名直接使用CDN解析刪除其他解析(安全分數+1):既然註冊了匿名免費的域名,使用目的狠命聊!那就別新增太多解析,越多維護越麻煩,洩露資訊風險越大!而且,這個域名後面的所有測試過程都不要不適用代理的模式解析到ip或者CNAME到其他域名!任何歷史操作都是洩露你個人資訊的風險點!

2。伺服器訪問IP源限制(安全分數+1):既然使用了CDN服務,為了更安全,就將真實伺服器防火牆+安全組的訪問源ip做網段限制!設定成僅允許Cloudflare網段進行訪問!防止其他小夥伴掃描hack你的c2服務!

3。域名前置一定要用https(安全分數+2):使用http的方式玩域名前置是沒意義的,抓包就能看到http裡面的host資訊;而使用https的域名前置方式,除非二進位制逆向獲取shellcode裡面的host資訊!(這一點,,我可能說錯了,https也能看到host資訊~~)

4。C2伺服器安全加固(安全分數+1):C2伺服器的客戶端連線的50050埠,做好安全防護!(配置好證書確認登入指紋資訊!修改其他埠避免其他網路掃描!不用的時候就防火牆安全組都deny或者限制登入ip範圍!)