隱藏源IP,提高溯源難度的幾種方案
一、使用隧道轉發進行代理
一句話核心原理:利用內網穿透,將C2回連端口映射到其他公網地址64.x.x.x,以達到測試程序通過其他公網地址進行回連,隱藏C2真實ip;

方案分析:
適合用戶:這種隱藏ip的方案適合于沒有公網服務器,使用自己本地電腦進行測試的用戶;或者有公網服務器,通過本方案隱藏服務器真實ip的用戶;
優點:免費使用他人提供的隧道服務,可以快速的用來測試,0成本;
缺點:使用了他人提供的隧道服務(增加了風險);且注冊賬號時還需要完成微信綁定(增加了風險);國內平臺(增加了風險);
使用流程:
1.打開網站
https://www.ngrok.cc/ 注冊ngrok賬號

2.登錄后配置ngrok代理
2.1 購買一個免費通道

2.2 配置通道
隧道類型分為http、https、tcp
我們本次測試tcp通道,http、https各位有興趣的自己嘗試;

因為映射到公網的遠程端口有限,所以我們需要多次查詢可用的遠程端口,例如:查詢到10001端口可用,那就選擇tcp端口映射 公網服務器的10001端口←—-映射—→本地127.0.0.1:8080端口

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

3.穿透工具使用說明
https://www.ngrok.cc/_book/
3.1下載可執行程序
https://www.ngrok.cc/download.html

3.2運行隧道穿透
#./sunny clientid 45e3634aAAAAAAAAAA #隧道id

運行成功后,所有訪問
xxx.xxxxxgye.com:10001 會和本地8080端口打通透明傳輸;
4.配置listener

5.生成payload,運行測試
5.1運行payload,主機可以成功上線;

5.2查看本地回接C2服務器的ip地址為
xxx.xxxxxgye.com:10001(67.x.x.x:1001);而不是我們自己服務器的真實ip!

上面的64.X.X.X就是ngrok的公網ip
二、使用CDN
一句話核心原理:使用CDN內容分發網絡的多節點分布式技術,通過“加速、代理、緩存”隱藏在后面的靜態文件或服務;最終實現對外暴露的是CDN多節點的公網域名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 就可以;所以一定要搜索域名全稱!

1.3下單確認:

如果之前沒有注冊過域名,點擊 “繼續”按鈕,會讓我們進行注冊賬號,或者驗證郵箱;然后進行登錄再進行選購域名;(這里如果注冊失敗,可以用gmail注冊。)
1.4 配置域名的NameServer域名解析服務(這樣做,后面再解釋為什么;現在不修改,默認配置,也可以后面再修改)
1.4.1進入我的域名:

1.4.2選擇域名管理:

1.4.3選擇域名解析服務進行修改


ASPEN.NS.CLOUDFLARE.COM COLEMAN.NS.CLOUDFLARE.COM
匿名域名注冊及配置完畢!
2.匿名注冊免費CDN服務Cloudflare
2.1登錄注冊賬號
https://www.cloudflare.com/zh-cn/
2.2配置域名使用CDN
2.2.1添加站點

2.2.3選擇免費計劃

2.2.4直接配置使用CDN代理模式進行域名解析提供服務
上面1.4,配置NameServer更換解析服務器的原因就是,將wikisoft.tk域名的所有解析功能都托管在Cloudflare,這樣Cloudflare可以提供CDN的解析功能!

2.2.5 自動配置全部選擇關閉

2.2.6配置SSL/TLS加密方式(默認不加密,有興趣的自己嘗試其他加密的區別)

注意:Cloudflare的CDNhttp、https代理模式有個特點,如果用其他端口的話,是監聽不到的!
因為我是使用的國內云主機,且zh.wikisoft.tk沒有進行備案,所以沒有辦法使用80、8080、443、8443端口提供服務;所以我真實云主機的回連端口使用的是http—2095!如果你用的是國外云主機,那就直接用80!
Cloudflare支持的HTTP端口是:
80,8080,8880,2052,2082,2086,2095 Cloudflare支持的HTTPs端口是:443,2053,2083,2087,2096,8443
到此域名+CDN全部搞定!開始測試!
3.配置listener
HTTP Host Header,必須填寫你的域名!這是CDN技術的原理要求;在下面的“域名前置方”案中我們再解釋

4.生成payload,運行測試
4.1運行payload,主機可以成功上線;

4.2查看受控主機本地回接C2服務器的ip地址為 172.67.159.243:2095(CDN節點ip);而不是我們自己服務器的真實ip

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

三、使用域名前置(Domain Fronting)
一句話核心原理:底層技術還是上面的CDN,但是我們使用了其他正規可靠的域名進行連接(比如:www.baidu.com),通過設置HOST=zh.wikisoft.tk修改host頭的原理,讓CDN將連接指向我們期望的C2服務器;最終實現受控主機通過回連!如果使用https的話,除非逆向程序獲取host頭信息,否則無法獲取到真實連接域名!

方案分析:
適合用戶:這種隱藏域名及ip的方案適合于有公網服務器
優點:本方案使用高信譽域名進行連接,通常安全設備很難檢測,也很難封堵;
缺點:配置和準備條件較多步驟比較復雜;如果能利用好上面的域名+CDN也挺好。
使用流程:
小坑提醒:我嘗試使用http域名前置進行原理演示,因為 Cloudflare免費版CDN不支持上傳自定義ssl網站證書,只能升級成企業版才可以實現https!(如果你是企業版,就是通過修改上面的“2.2.6配置SSL/TLS加密方式”這一節就能完成https通的聯通及域名前置!可需要申請域名的https證書,現在各種云平臺都有一年免費證書可用,方法“參考文章4、5”。)
1.完成上面域名+CDN的所有配置
2.獲取其他也托管在Cloudflare并使用CDN的合法域名(比如:commonlit.app)

3.配置listener
HTTP Host Header,必須填寫你的域名zh.wikisoft.tk,這是CDN技術的原理要求;CDN的ip都一樣,如何判斷用戶訪問的時候baidu 還是 qq呢?實際上就是通過http 頭里面的host字段進行判斷的!詳細內容學習“參考文章6、7、8”

4.生成payload,運行測試
4.1運行payload,主機可以成功上線;

4.2查看受控主機本地回接C2服務器的ip地址為 104.21.41.43:2095(CDN節點ip);而不是我們自己服務器的真實ip

4.2.1查看DNS數據包,可以確認連接過程是查詢commonlit.app:2095這個地址,進行連接的;

4.2.2查看連接數據包,http方式還是可以看到host信息的;

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

備注:使用https的方式進行域名前置,除非逆向程序獲取shellcode里面的host內容,否則無法獲取真實域名zh.wikisoft.tk,也無法溯源真實后端服務器的IP!使用了https域名前置,就是在上面的CDN直接使用zh.wikisoft.tk域名的基礎上又增加了一層安全保障!如何逆向二進制,也有教程文檔“參考文章9”
四、使用云服務API網關/云函數
一句話核心原理:api網關透明轉發代理后端服務!(了解一kong網關,原理一樣);云函數底層使用的就是api網關,只是云函數的功能更高級一點,當client調用網關接口時,通過編程進行修改輸入參數;同理api網關接受到代理的后臺服務返回的內容是可以再次修改返回內容,最終將信息返回給client;

方案分析:
適合用戶:這種隱藏域名及ip的方案適合于有公網服務器,注冊了云服務商網關或者云函數產品;
優點:本方案使用高信譽域名進行連接,通常安全設備很難檢測,也很難封堵;
缺點:配置和準備條件較多步驟比較復雜;如果能利用好上面的域名+CDN也挺好。
使用流程:
備注:這一方案,只是原理學習,沒有考慮到安全性;所以直接用了國內的云服務產品!!!各位可以自己尋找“安全”的云服務!云函數的學習“參考文章10、11”,下面只說明底層的api網關內容
1.注冊Q云,完成相關認證
2.配置API網關透明傳輸
2.1新建service

2.2新建API代理并完成透明代理配置
小坑提示:前端、后端代理的超時時間都設置的長一點!以免超時!

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


2.3查看公網接口調用地址

3.配置listener

4.生成payload,運行測試
4.1運行payload,主機可以成功上線;

4.2查看受控主機本地回接C2服務器的ip地址為 152.136.8.215:80(Q網關節點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范圍!)
如有侵權,請聯系刪除