设为主页 | 加入收藏 | 繁體中文

木马客户端与服务端通讯是如何隐藏的

  一个成功的木马必需完成一种既牢靠,又不易被宿主发现的通讯方案,下面在我所知的范畴内对种种方案的完成要领,牢靠性,宁静性做一些探讨。文中错误之处一定许多,接待大家指出,更盼望能有木马开辟经验的高手写一些这方面的文章,能让不管是黑客,照旧普通用户,都失掉一定的进步。至于什么警告的我也未几说了,横竖看了文章你去做坏事与我是毫无干系的。下面进入正题。
  首先应该明白的是受害者的呆板上运行的木马步伐我们称之为服务端,控制者呆板上运行的我们称之为客户端(其实对付现代的木马,已经很难说谁是客户,谁是服务了,不过我们照旧连续用这种叫法)。另外固然Windows9x仍旧有宏大的用户底子,但是Windows9x向Windows XP迁移只是早晚题目,以是这里的讨论主要是针对NT/2000/XP平台的。
  1.利用TCP协议,服务端侦听,客户端连接。这是最简略,最早,最广泛利用的一种通讯方案。利用过冰河大概被冰河客户端扫过的对此一定不会陌生。这种通讯方案是服务端在宿主呆板上开一个TCP端口,然后等待客户端的连接,在经过对客户端的认证后,客户端就可以控礼服务端了。由于是建立在TCP协议底子上,以是通讯的牢靠性是失掉包管的。但是通讯的宁静性却很成题目。首先,利用像fport,tcpview pro这样的东西可以很容易的发如今某一端口上侦听的历程,以及历程对应的可实行文件。其次,在安置了防火墙的呆板上,当客户端连接到服务端时,很容易惹起防火墙报警。
  2.利用TCP协议,客户端侦听,服务端连接。这便是所谓的反向连接技能了。为了克服服务端在某一端口上侦听易被发现这一缺陷,如今服务端不再侦听端口,而是去连接客户端在侦听的某一端口。这样用一样平常的port scanner大概fport就很发现不了服务端了。而为了更好的麻痹宿主机,客户端侦听的端口一样平常是21,80,23这种任何人都要访问的端口。固然在安置了防火墙的呆板上,服务端去连接客户端照旧要惹起防火墙报警,但是一个粗心的用户很可能会忽略“应用步伐xxxxx试图访问xxx.xxx.xxx.xxx经过端口80”这样的警告。
  这种反向连接技能要解决的一个题目是,服务端怎样找到客户端。由于一样平常客户端都是拨号上网的,没有一个固定的IP,以是客户端IP不可能硬编码在服务端步伐中。固然由于拨号上网用户的IP一样平常都是处于一个固定的IP地点范畴内,服务端也可以扫描这个范畴,然后根据被扫描主机的反馈来确定是否是本身的客户端,但是服务端扫描一个IP地点范畴也太……另一个要领是客户端经过一个有固定IP大概固定域名的第三方颁布本身的IP,完成的要领就许多了,好比经过一个大众的邮箱,经过一个小我私家主页,就看你有多大的想象力的。
  3.利用UDP协议,服务端侦听,客户端连接;客户端侦听,服务端连接。要领和宁静性与利用TCP协议差未几。必要细致的是UDP不是一个牢靠的协议,以是,必需在UDP协议的底子上计划一个本身的牢靠的报文传递协议。
  4.解决防火墙题目,无论是服务端主动侦听,照旧服务端自动连接,在服务端和客户端试图建立连接时都市惹起防火墙得报警。终究粗心得用户不会许多,以是,解决防火墙报警是服务端必需要解决的一个题目。一种要领是代码注入,服务端将本身注入到一个可以正当的与外界举行网络通讯的历程(好比 IE, ICQ, OICQ, TELNTED, FTPD, IIS等)的地点空间中,然后大概可以以一个新线程的形式运行,大概只是修正宿主历程,截获宿主历程的网络体系调用(WinSock)。后者的完成可能要贫苦一些。要是是以新线程的形式运行,那么然后大概可以主动侦听,大概可以自动连接。
  无论哪种环境都不会惹起防火墙的报警(固然不是百分之百不会惹起防火墙报警)。但要细致的是要是是主动侦听的话,好比寄生在IE内,用fport会发现IE在某一个端口侦听,这有可能会惹起细心的用户的警觉。以是比力好得要领是在新线程内去自动连接客户端,而且连的是客户端的80端口;要是是寄生在OICQ内,何不连接客户端的8000端口。利用代码注入必要服务端具有多少特权,思量到一样平常用户都是以Admin身份启动NT的,这应该不是一个题目(要是服务端是作为一个service启动的话,就更没题目了)。
  5.再讨论一下服务端自动连接时客户端IP的颁布题目。
  利用第三方颁布客户端IP不是一种牢靠的要领。好比要是是经过一个小我私家主页颁布客户端IP的话,一旦由于种种原因,这个小我私家主页被主页提供商取消的话,服务端就找不到客户端了。而这种小我私家主页被主页提供商取消的可能性是很大的。同时客户端也要冒袒露本身的IP的风险。以是更好的要领是客户端经过某种要领自动告诉服务端本身的IP和端口,然后服务端来连接。这样可以包管最大的牢靠性,宁静性和机动性。
  服务端怎样收到客户端的通知呢?一种要领是我们截获其他历程收到的TCP数据大概UDP包,然后阐发截获的数据,从中确定是否客户端发来了一个报告其IP的数据片断。另一种要领是利用RAW socket来收听ECHO REPLY类型的ICMP包,在ICMP数据包的数据去就包含了客户端IP。而对付普通用户来说,由于要上网欣赏,这样的ICMP包是很少过滤失的。
  6.用ICMP来通讯。
  既然客户端可以经过发一个ICMP(ECHO REPLY)来告诉服务端它的IP,那为什么不把全部服务端和客户端的通讯都建立在ICMP的底子上呢?服务端向客户端发ICMP(ECHO REQUEST),客户端向服务端发ICMP(ECHO REPLY),然后可以在ICMP底子上建立一个本身的牢靠数据报通讯协议。要是不怕烦的话,还可以建立一个TCP over ICMP。由于一样平常的用户这两类ICMP包都是设为无警告放行的,这种要领的隐秘性照旧很强的。
  7. 用自定义的协议来通讯。
  我们知道IP头的协议字段指定了这个IP包承载得数据的协议,好比TCP,UDP,ICMP等等。我们完全可以把这个字段设为我们本身定义的值(>80),定义本身的通讯协议。不过估计这种IP包将会被全部的防火墙过滤失。
  8.关于服务器上的木马的通讯隐蔽。
  后面所说都是针对小我私家用户(大部门都是拨号用户,包罗Modem,ISDN,ADSL,FTTX+LA,Cable Modem)。对这类呆板来说,一样平常都没有开什么服务,而且一样平常都利用了小我私家防火墙,同时ICMP ECHO REPLY/REQUEST都是放行的,全部才有我们上述的种种方案。而对付服务器来说,至少要开HTTP服务,同时,又一样平常位于专门的防火墙之后。这个专门的防火墙很可能过滤失除类型为TCP,且目的端口为80的IP包之外的全部的IP包,更不要说种种ICMP包了。向下的方案通不过,我们可以试试向上的方案。一种要领便是注射到IIS服务的历程空间中,然后在IIS担当到木马客户端的恳求前来个预处置惩罚,在IIS将数据发给木马客户端时来个后处置惩罚,不过我不知道怎样完成,不知哪为高手知道。
  另一种要领便是写一个ISAPI AP,这样,木马客户端发个http://xxx.xxx.xxx.xxx/backdoor.dll?cmd=dir+c:\恳求来发下令了。固然,统统信息都是加密得。RPC除了RPC over SMB,RPC over TCP等等外,另有一个RPC over HTTP,究竟上QQ的http代理便是他本身定义的一个rpc over http,至少QQ本身是这么叫的。如今,我们也来了个rpc over http。
  通讯隐蔽技能只是木马隐蔽诸技能中得一部门,但也是最重要的一部门。因为他不但要掩护木马,还要掩护木马得控制者,以是不管是木马编写者,照旧防火墙编写者,都应该对这一部门给于充足的重视。


    文章作者: 福州军威计算机技术有限公司
    军威网络是福州最专业的电脑维修公司,专业承接福州电脑维修、上门维修、IT外包、企业电脑包年维护、局域网网络布线、网吧承包等相关维修服务。
    版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处 、作者信息和声明。否则将追究法律责任。

TAG:
评论加载中...
内容:
评论者: 验证码: