一、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  -qngfNTR :127.0.0.1: 192.168.1.1

然后在A 上利用6766 端口反向SSH 到B:

主机A:

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

使用隧道技术进行C&C通信的更多相关文章

  1. SSH隧道技术----端口转发,socket代理

    原文的原始出处不详,本文也是在复制引用了某篇转载,并做了必要的整理与编辑. 本文的受众 如果你遇到了以下问题,那么你应该阅读这篇文章 我听说过这种技术,我对它很感兴趣 我想在家里访问我在公司的机器(写 ...

  2. 第11章 拾遗5:IPv6和IPv4共存技术(1)_双栈技术和6to4隧道技术

    6. IPv6和IPv4共存技术 6.1 双栈技术 (1)双协议主机的协议结构 (2)双协议栈示意图 ①双协议主机在通信时首先通过支持双协议的DNS服务器查询与目的主机名对应的IP地址. ②再根据指定 ...

  3. SSH隧道技术简介

    本文的受众如果你遇到了以下问题,那么你应该阅读这篇文章 我听说过这种技术,我对它很感兴趣 我想在家里访问我在公司的机器(写程序,查数据,下电影). 公司为了防止我们用XX软件封锁了它的端口或者服务器地 ...

  4. 迁移IPv6:6To4隧道技术

    1. IPv6 路由选择协议 首先要讨论的是RIPng(下一代).RIP非常适合用于小型网络.这正是它没有惨遭淘汰,继续用于 IPV6网络的原因.另外,还有EIGRPv6,因为它有独立于协议的模块,只 ...

  5. 利用SSH隧道技术穿越内网访问远程设备

    本文为作者原创,转载请注明出处:https://www.cnblogs.com/leisure_chn/p/11899478.html 通常,我们用于调试的计算机无法远程访问位于局域网中的待调试设备. ...

  6. 图解再谈ssh port forwarding-ssh隧道技术

    https://www.ramkitech.com/2012/04/how-to-do-ssh-tunneling-port-forwarding.html https://www.cnblogs.c ...

  7. 隧道技术(Tunneling)

    隧道技术及其应用 隧道技术(Tunneling)是一种通过使用互联网络的基础设施在网络之间传递数据的方式.使用隧道传递的数据(或负载)可以是不同协议的数据帧或包.隧道协议将其它协议的数据帧或包重新封装 ...

  8. ssh隧道技术

    大家都知道SSH是一种安全的传输协议,用在连接服务器上比较多.不过其实除了这个功能,它的隧道转发功能更是吸引人.下面是个人根据自己的需求以及在网上查找的资料配合自己的实际操作所得到的一些心得. SSH ...

  9. 第11章 拾遗5:IPv6和IPv4共存技术(2)_ISATAP隧道技术

    6.3 ISATAP隧道技术 (1)基本概念 ①在一个IPv4网络中主机与路由器之间创建一条ISATAP隧道,以便让该主机可以访问IPv6网络中的资源. ②条件:IPv4中的PC主机需要支持IPv4和 ...

随机推荐

  1. Linux环境进程间通信(一)

    1. 管道概述及相关API应用 1.1 管道相关的关键概念 管道是Linux支持的最初Unix IPC形式之中的一个.具有下面特点: 管道是半双工的,数据仅仅能向一个方向流动.须要两方通信时.须要建立 ...

  2. Dev属性设置

    DisplayFormat 设置显示格式如:{0:P}表示显示为百分号模式.如数据源中为0.5.表示出来为50% 2.GridContro总合计及分组合计: 常规总合计直接RunDesigner-Gr ...

  3. 大数据量下MySQL插入方法的性能比较

    不管是日常业务数据处理中,还是数据库的导入导出,都可能遇到需要处理大量数据的插入.插入的方式和数据库引擎都会对插入速度造成影响,这篇文章旨在从理论和实践上对各种方法进行分析和比较,方便以后应用中插入方 ...

  4. Redis(八):spring data redis 理解

    前言 Spring Data Redis project,应用了Spring概念来开发使用键值形式的数据存储的解决方案.我们(官方)提供了一个 "template" ,这是一个高级 ...

  5. Ubuntu 16.04下搭建kubernetes集群环境

    简介 目前Kubernetes为Ubuntu提供的kube-up脚本,不支持15.10以及16.04这两个使用systemd作为init系统的版本. 这里详细介绍一下如何以非Docker方式在Ubun ...

  6. 常用maven 仓库地址

    maven下载jar的时候会去寻国外的地址,因此造成了下载jar很缓慢,影响开发效率,于是就出现maven镜像地址,可以使我们开发人员迅速下载相关的jar. 在maven的config的setting ...

  7. ARM开发工具软件命令具体解释---嵌入式回归第三篇

    先从bootloader開始,由于临时眼下这些都会是裸机程序相关. 本人这里是VMwarm10.0上安装的红帽linux虚拟机.从以下的截图中能够看出 裸机开发流程: 这里先做第三步(第一步第二步已提 ...

  8. Decoration5:引入Actuator进行站点监控

    1.添加依赖 2.重启应用 3.下图显示了一些默认的监控端点 这是数据可以在前台用来做饼图和柱状图什么的,不过实际上我们现在还用不到,于是就不深入研究

  9. android.graphics(1) - Paint, Canvas, drawLine, drawPoint, drawRect, drawRoundRect, drawCircle, drawOval, drawArc

    一.Paint与Canvas 像我们平时画图一样,需要两个工具,纸和笔.Paint就是相当于笔,而Canvas就是纸,这里叫画布. 所以,凡有跟要要画的东西的设置相关的,比如大小,粗细,画笔颜色,透明 ...

  10. swift 运算符和控制流程

    闭区间运算符 闭区间运算符(a...b)定义一个包含从a到b(包括a和b)的所有值的区间,只能是数字 for index in 1...5 { println("\(index) * 5 = ...