一、C&C通信
這里的C&C服務器指的是Command & Control Server--命令和控制服務器,說白了就是被控主機的遙控端。一般C&C節點分為兩種,C&C Server 和 C&C Client。Server就是就是黑客手里的遙控器。Client就是被控制的電腦,也就是受害者。C&C通信就是Client和Server之間的通信。再說具體一點,就是Client上被植入的木馬或者后門程序與Server上的遠控程序之間的通信。
二、普通C&C通信:
一般網絡通信,都是兩台機器之間建立tcp連接,然后正常數據通信。而數據通信建立起連接需要依靠對端地址去建立連接。知道IP可以直接發送報文,當不知道的時候就會使用域名解析成IP進行互相通信。建立起連接后C&C服務器傳遞指令給client上的木馬后門程序執行,client成為肉雞,接受控制。但是現在的網絡情況是一把都會有軟硬件防火牆檢查對外連接情況,另外很多廠商都有收集C&Cserver的相關域名、IP、URL等威脅情報數據,從而幫助防火牆進行阻斷。這樣一來C&C通信就會被切斷。從而引發了使用各種隧道技術進行C&C通信的技術。
三、使用DNS隧道技術的C&C通信:
DNS隧道技術的根源在與一中DNS查詢方式:
Client(木馬程序進程)-----請求查詢 "AABBCCDD.example.com"----->(DNS-Server)
(DNS-Server)-----(知道example.com,但是不知道子域名,於是迭代請求)----------------->dns.example.com(這個域名服務器是攻擊者控制的)
dns.example.com-----返回給--------->(DNS-Sserver)-------返回給----------->Client(木馬程序進程)
這個過程看起來沒有任何問題,但本質問題就是,你預期的返回應該是ip地址,但事實上不是,返回可以是任何字符串,包括加了密的c&c指令。
四、為什么這樣做:
因為軟硬件防火牆正常情況下是不對阻斷DNS請求的,這是現代互聯網的一個基礎請求。從而C&C可以繞過防火牆的阻斷,甚至也繞過了某些審計,避免了報警。
五、類似的常見隧道:
1、SSH隧道:
主機B:
ssh -p 22 -qngfNTR 6766:127.0.0.1:22 192.168.1.1
然后在A 上利用6766 端口反向SSH 到B:
主機A:
1 ssh -p 6766 userb@127.0.0.1
這樣就OK了,達成了SSH隧道。
2、HTTP隧道:
A需要與C通信,但是非HTTP的TCP通信被防火牆阻止,那么可以使用HTTP隧道:
A---HTTP Request(data:原始通信數據報文)---->B-------解HTTP,處理好原始通信數據報文(TCP)--------->C
C-------正常響應回復TCP信息------------>B--把C回復的信息打包好裝在HTTP的響應報文的數據部分響應---->A
3、ICMP隧道:
就是正常的ICMP報文,把數據或者惡意信息放在payload部分,響應報文會拷貝這段payload信息,放在響應報文中作為匹配檢查特征。可以繞過一些防火牆,比較適用於竊取信息類的木馬后門。
