木马通信的隐蔽技术

来源 :电脑知识与技术 | 被引量 : 0次 | 上传用户:ranoelive
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:服务器和客户机如何通信是木马研究的一个核心技术,该文讲述了如何利用网络协议躲避了防火墙和系统工具的检查,成功实现了木马的隐蔽通信,给出的源代码均调试通过。
  关键词:木马通信;隐藏通信
  中图分类号:TP393文献标识码:A文章编号:1009-3044(2008)35-2481-03
  Covert Technologies on Communications of Trojan Horse
  ZHANG Chun-cheng, LU Gang, FENG Yuan
  (PLA Artillery Academy Computer Center,Hefei 230031,China)
  Abstracr:The communications between server and client is a kernel technology to research Trojan.This paper describes how to hide out inspect of firewall and system tools through network protocol, and successful implement on covert communications of Trojan. These sound codes are all debugged and passed.
  Key words:communications of trojan horse;covert communications
  
  1 引言
  
  木马通常需要利用一定的通信方式进行信息交流(如接收控制者的指令、向控制端传递信息等)。系统和应用程序一般采用 TCP/UDP 通信端口的形式与控制端进行通信。木马一般也是利用 TCP/UDP 端口与控制端进行通信。通常情况下,木马进行通信时直接打开一个或几个属于自己的 TCP/UDP 端口。早期的木马在系统中运行后都是打开固定的端口,后来的木马在植入时可随机设定通信时打开的端口,具有了一定的随机性。可是通过端口扫描很容易发现这些可疑的通信端口。事实上,目前的许多木马检测软件正是通过扫描本地和远程主机系统中打开的已知木马端口进行木马检测的。木马通信端口成为暴露木马形踪一个很不安全的因素。为此采用新技术的木马对其通信形式进行了隐蔽和变通,使其很难被端口扫描发现。
  
  2 木马通信形式的隐蔽技术
  
  木马为隐蔽通信形式所采用的手段有:端口寄生、反弹端口、潜伏技术,嗅探技术。
  2.1 端口寄生
  端口寄生指木马寄生在系统中一个已经打开的通信端口,如 TCP 80 端口,木马平时只是监听此端口,遇到特殊的指令才进行解释执行。此时木马实际上是寄生在系统中已有的系统服务和应用程序之上的,因此,在扫描或查看系统中通信端口时是不会发现异常的。在 Windows 9X 系统中进行此类操作相对比较简单,但是在 Windows NT/2K 系统中实现端口寄生相对比较麻烦。在控制端与木马进行通信时,如木马所在目标系统有防火墙的保护,控制端向木马发起主动连接就有可能被过滤掉。
  2.2 反弹端口
  反弹端口就是木马针对防火墙所采用的技术[1]。防火墙对于向内的链接进行非常严格的过滤,对于向外的连接比较信任。与一般的木马相反,反弹端口木马使用主动端口,控制端使用被动端口。木马定时监测控制端的存在,发现控制端上线,立即主动连接控制端打开的被动端口。为了隐蔽起见,控制端的被动端口一般开在 TCP80。这样,即使用户使用端口扫描软件检查自己的端口,发现的也是类似 TCP USERIP:1026 CONTROLLERIP:80 ESTABLISHED 这种情况,用户可能误认为是自己在浏览网页。这种反弹端口的木马常常会采用固定 IP 的第三方存储空间来进行控制端 IP 地址的传递。
  下面的代码演示了被控制端的客户套接字连接控制端的服务套接字。
  CServerSocket *pMy; //CServerSocket是CAsyncSocket的派生类
  ……
  //初始化是开始连接,同时建立定时器
  BOOL CServiceDlg::OnInitDialog()
  {
  CDialog::OnInitDialog();
  pMy=NULL;
  SetTimer(199,30000,NULL);
  pMy=new MySock;
  pMy->Create();
  pMy->Connect(m_ip,80); //连接目标的80端口,让人感觉在上网
  }
  //在定时器中检查是否有连接,否则试图重新连接
  Void CServiceDlg::OnTimer(UINT nIDEvent)
  {
  If(nIDEvent=199){
  If(pMy->Send(“test”,4)=SOCKET_ERROR){
  pMy->Detach();
  delete pMy;
  pMy=NULL;
  pMy=new MySock;
  pMy->Create();
  pMy->Connect(m_ip,80);
  }
  }
  CDialog::OnTimer(nIDEvent);
  }
  2.3 潜伏技术
  ICMP(互联网控制报文协议)是 IP 协议的附属协议,用来传递差错报文以及其他需要注意的消息报文。它是由内核或进程直接处理而不会打开通信端口。采用潜伏技术进行通信的木马一般都是使用 ICMP协议。由于不利用 TCP/UDP 协议,不会打开通信端口,所以不会被一些端口扫描软件和利用端口进行木马防范的软件检测到[2]。通常情况下,木马利用 ICMP 报文与控制端进行通信时将自己伪装成一个 Ping 的进程,这样系统就会将 ICMP_ECHOREPLY(Ping 的回包)的监听、处理权交给木马进程,一旦事先约定好的 ICMP_ECHOREPLY 包出现(可以判断包大小、ICMP_SEQ 等特征,这此包实为控制端发给木马的命令和数据),木马就会接受、分析并从报文中解码出命令和数据尽而采取相应的操作。
  有的采用潜伏技术的木马不会完全采用 ICMP 协议进行通信,它们只是监听 ICMP 报文,当出现特殊的报文时,例如特殊大小的包,特殊的报文结构等,它会打开 TCP 端口等待控制端的连接。在本地可以看到状态为 ESTABLISHED 的木马连接(如果端口的最大连接数设为 1,在远程用 CONNECT 方法进行端口扫描时没有办法发现)。一个严格采用潜伏技术的木马会严格地使用 ICMP 协议来进行数据和控制命令的传递(数据放在 ICMP 的报文中)。
  木马利用 ICMP 协议与控制端进行通信的基本过程如下:
  为了实现发送/监听 ICMP 报文,都要首先建立 SOCK_RAW(原始套接口)。建立 SOCK_RAW 之前需要定义一个 IP 首部,然后定义一个 ICMP 首部:
  typedef struct _ihdr {
  BYTE i_type; //8 位类型
  BYTE i_code; //8 位代码
  USHORT i_cksum; //16 位校验和
  USHORT i_id; //识别号(一般用进程号作为识别号)
  USHORT i_seq; //报文序列号
  ULONG timestamp; //时间戳
  }IcmpHeader;
  这时可以通过 WSASocket 建立一个原始套接口
  SockRaw=WSASocket(
  AF_INET, //协议族
  SOCK_RAW, //协议类型,SOCK_R
  IPPROTO_ICMP, //协议,IPPROT
  NULL, //WSAPROTOCOL_INFO 置空
  0, //保留字,永远置为 0
  WSA_FLAG_OVERLAPPED //标志位
  );
  随后使用 fill_icmp_data 子程序填充 ICMP 报文段,调用 CheckSum 子程序计算 ICMP 校验和。然后通过 sendto 函数发送 ICMP_ECHOREPLY 报文:
  sendto(sockRaw,icmp_data,datasize,0,(structsockaddr*)
其他文献
2005年9月份,我镇某猪场发生了一种以体温升高、呼吸迫促,关节肿胀,跛行,运动障碍,耳尖,胸腹侧皮肤呈紫红色,有出血斑点为特征的疾病。该病发病突然,死亡快。根据流行病学,临床症状,剖
UHF接收机是小卫星收发机分系统中的重要分机之一,其作用是将接收到的信号,经UHF接收机放大、变频、分路后,送人数字处理部分。该产品具有如下特点:
一、发病时间和症状的区别立枯病:发病较晚,三叶期秧田最易发病。早期发病,秧蓖砖菱、茎基部出现水浸状腐烂,手拔易断,后期发赛,堂星一鼻叶萎垂卷曲,茎基部腐烂变成黑褐色,潮湿时病基
小时候,听妈妈说,从生我前一年起,父亲张雪岩就再没回过潍坊老家。我满月的那一天,母亲带我和姐姐坐船去上海,爸爸到上海码头的船上来接我们。因年龄小,对上海至南京、南京至
近日,湖北三新磷酸有限公司经过自主创新,研发成功窑法磷酸生产技术,攻克了中低品位磷矿生产磷酸难题。这项技术日前通过了中国石油和化学工业协会组织的专家鉴定。
随着信息技术的快速发展,微课这一新型教学方式逐步进行了小学语文课堂,这种利用信息网络进行微型视频教学手段的出现,不仅能起到活跃课堂氛围提升学生学习积极性的作用,还能
介绍了双向时间传输的中频接收系统的数字化方案及其中采用的关键技术和算法.对伪码时域/频域二维N通道捕获、载波恢复FLL/PLL环进行了较详细的讨论.接收机硬件采用大规模可
虽然"微积分"课程是文科专业的一门专业必修课,但是部分文科学生并不重视。在国内大多数普通本科高等学校中,"微积分"课程不仅在理工类专业中有开设,而且在一些文科类专业也
本文简要介绍了我国林业发展的历程和林业可持续发展的含义,提出了实现林业可持续发展、建立林业可持续发展法律机制等对策。
针对中原石油化工有限责任公司乙烯裂解炉运行周期短、烧焦、频繁等问题,提出采取优化操作、加强管理、精心维护等措施,进一步提高裂解炉稳定性,延长运行周期。