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

  • 相关阅读:
    XCode快捷键 转
    [iOS] UIView的clipsTobounds属性
    ios 重用UI部分代码的好方法(再也不用为局部变量的命名而烦恼啦!)
    symbol(s) not found for architecture armv7
    duplicate symbol _main in: / linker command failed with exit code 1
    xcode4.3.2 arc模式下导入非arc的文件 转
    objective-c block 详解 转
    将asi-http-request引入到ARC工程需要做的 转
    浅用block 转
    在Xcode4.5中禁用ARC(Automatic Referencing Counting) 转
  • 原文地址:https://www.cnblogs.com/KevinGeorge/p/8412934.html
Copyright © 2020-2023  润新知