使用隧道技术进行C&C通信的学习

一、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信息,放在响应报文中作为匹配检查特征。可以绕过一些防火墙,比较适用于窃取信息类的木马后门。

参考文章:
https://www.freebuf.com/sectool/210450.html
https://www.cnblogs.com/KevinGeorge/p/8412934.html

    原文作者:q1352483315
    原文地址: https://blog.csdn.net/q1352483315/article/details/99816506
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞