`

木马客户端与服务端隐蔽通讯解析

 
阅读更多

现代木马的实现是建立在一种既可靠,又不易被宿主发现的通讯方案上的,本文就是对各种方案的实现方法,可靠性,安全性做了一些理论上的探讨。充分的理解木马的客户端和服务端是怎么进行隐藏的,不但可以帮助您能深刻的理解网络通信的原理,也可以更有效的做好安全防范。基于此我们编发了此文,下面我们进入正题。

首先应该明确的是受害者的机器上运行的木马程序我们称之为服务端,控制者机器上运行的我们称之为客户端(其实对于现代的木马,已经很难说谁是客户,谁是服务了,不过我们还是继续用这种叫法)。另外虽然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。

通讯隐藏技术只是木马隐藏诸技术中得一部分,但也是最重要的一部分。因为他不但要保护木马,还要保护木马得控制者,所以不管是木马编写者,还是防火墙编写者,都应该对这一部分给于足够的重视。

作者:王一峰 来源:黑鹰基地 

分享到:
评论

相关推荐

    c#屏幕监视木马分客户端和服务端(基于socket)

    可监视被控段屏幕!监视对方屏幕的C#写的木马分客户端和服务端(基于socket)

    浅析木马服务端的生成技术.pdf

    浅析木马服务端的生成技术.pdf 浅析木马服务端的生成技术.pdf 浅析木马服务端的生成技术.pdf

    北理大学计算机实验基础-实验18实验报告表.docx

    步骤 电脑客户端 远程客户端 远程服务端 2 电脑客户端 正常 正常 无法通讯 远程客户端 正常 正常 无法通讯 远程服务端 无法通讯 无法通讯 正常 3 电脑客户端 正常 正常 正常 远程客户端 正常 正常 正常 远程服务端 ...

    远程木马上传控制客户端

    该文件分服务端和客户端,直接将客户端上传到空间就可以在服务端操作了。

    CS4.9.1.1-CobaltStrike4.9.1.1版

    自3.0以后已经不在使用Metasploit框架而作为一个独立的平台使用,分为客户端与服务端,服务端是一个,客户端可以有多个,非常适合团队协同作战,多个攻击者可以同时连接到一个团队服务器上,共享攻击资源与目标信息...

    特种木马防御与检测技术研究pdf

    特种木马防御与检测技术研究》以作者近几年的研究经历为基础,系统介绍了木马检测与防护的关键技术。内容涵盖木马行为的基本理论、木马基本特征、木马检测与防护各阶段的关键技术。 《特种木马防御与检测技术研究》...

    特洛伊木马隐蔽性研究

    从木马原理出发,分析了几种木马隐蔽方法,并对各自优缺点进行了简要评论。

    匿名信使:木马隐蔽通信浅谈.pdf

    匿名信使:木马隐蔽通信浅谈 安全运营 安全意识教育 移动安全 威胁情报 数据分析

    igniter:Android的木马客户端(UNDER CONSTRUCTION)

    点火器 Android的木马客户端。谢谢Dreamacro /冲突bingoogolapple / BGAQRCode-Android 聚苯乙烯已从迁移到进行QR码扫描。

    内核级木马隐藏技术研究与实现

    本论文的工作主要创新之处在于: 利用隐蔽通道技术和实时检测...木马隐藏技术与检测技术是攻与防、矛与盾的关系, 它们是互相促进,螺旋式上升的。 关键字:特洛伊木马,后门,隐蔽通道,L K M ,隐藏,检测,内存映射

    icmp(ping)木马解析

    一篇icmp(ping)木马解析

    木马病毒的解析与防范

    在网络信息系统中, 木马技术已成为黑客攻击或不法分子入侵或控制他人网络或...系统地分析木马病毒的起源和种类、工作原理、木马种植的技巧、木马自启动以及隐藏的方法, 并对木马攻击提出了相应的解决方法和防范办法。

    木马 病毒 预防 清除 删除

    3. 即时通讯软件木马 4. 网页点击类木马 5. 下载类木马 6. 代理类木马 木马病毒的危害 如何防御木马病毒? 如何查出木马的一些方法 一、检测网络连接 二、禁用不明服务 三、轻松检查账户 如何删除木马病毒 ? ...

    木马通信的隐蔽技术[汇编].pdf

    木马通信的隐蔽技术[汇编].pdf

    计算机病毒与木马解析

    对计算机病毒的全面解析 让病毒、木马程序在你面前赫然开阔。

    木马攻击与防范(ppt 详细讲述木马的攻击与如何防范)

    木马攻击与防范(ppt 详细讲述木马的攻击与如何防范),让你更好的了解如何不被人利用木马攻击

    木马原理与现状+毕业论文

    第一章 木马概述 - 4 - 1.1“木马”名称的由来 - 4 - 1.2木马病毒发展史 - 4 - 1.2.1第一代木马 :伪装型病毒 - 4 - 1.2.2第二代木马 :AIDS型木马 - 4 - 1.2.3第三代木马:网络传播性木马 - 5 - 1.3研究木马...

    木马清道夫木马清道夫木马清道夫木马清道夫木马清道夫

    木马清道夫木马清道夫木马清道夫木马清道夫木马清道夫木马清道夫木马清道夫木马清道夫木马清道夫木马清道夫木马清道夫木马清道夫木马清道夫木马清道夫木马清道夫木马清道夫木马清道夫木马清道夫木马清道夫木马清道夫...

    木马常见植入技术大剖析

    首先介绍了木马的定义,概括了木马的特征——隐蔽性、欺骗性、自启动性和自动恢复性,并简单介绍了木马的结构和功能。随后,从缓冲区溢出、网站挂马、电子邮件、QQ传播等方面介绍了木马的植入技术,重点从通信隐藏、进程...

    服务端生成

    服务端 生成 木马

Global site tag (gtag.js) - Google Analytics