什么是木马服务端?

什么是木马服务端?,第1张

首先应该明确的是受害者的机器上运行的木马程序我们称之为服务端,控制者机器上运行的我们称之为客户端(其实对于现代的木马,已经很难说谁是客户,谁是服务了,不过我们还是继续用这种叫法)。另外虽然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将数据发给木马客户端时来个后处理,不过我不知道怎么实现,不知哪为高手知道。

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

一、备份重要文件、数据后重装。

1、解释:很明显,你的服务器被人非法登录(入侵)。入侵后黑客可做的事很多,比如植入远程控制、远程上传下载类程序等。 故此,不要去想着如何清理。服务器的安全是非常重要的。

2、重装时,请选用比较新的服务器操作系统,在当前应选择windows 2003或windows 2008。

3、请使用可靠的win版本,千万不要使用所谓的“xxx专版”或“xxx免激活版”。如果你购买了正版,请使用正版,如果没有购买正版,可以考虑使用服务器品牌对应的OEM版或改服务器的BIOS伪装成某品版的机器后安装对应的OEM版(仅win2003有效)。

4、安装服务器时一定不要使用服务器上已存在任何文件,服务器C盘在安装过程中直接删去分区后重分。其它盘在安装过程中不要打开以防止“双击盘符便自动运行类病类”,并自个去网上查一下此类病毒的相关防护和处理办法(可以很方便地手工处理掉)(当然,你的机器上很可能没有,只是小心为好)。驱动请从可靠来源盘安装(比如正版光盘、随机光盘,或对无毒的机器上下载后刻录盘)。

5、安装完系统后不要访问任何不可靠网站,第一时间使用windows updata升级windows,完成所有可升级补丁后,对系统分区进行镜像备份。对于服务器来说,当前最可靠的还是在DOS下使用ghost进行系统备份。

6、加装杀毒软件、正确设定你的服务器的工作状态后,再一次使用ghost进行系统备份。服务器的网站目录、数据目录不应存在于系统分区,且应对它们进行每日备份。

7、在这里个人推荐Mcafee 8.7i。

二、安装、并设定好防火墙。

1、安装软件防火墙,使你的服务器的外联只开放最必要的端口。 个人推荐Mcafee的防火墙。

2、最好安装硬件防火墙,如果经济条件不足,至少买一个比较好的soho级的路由器(价格只需二百元左右),并使用端口印射来向外提供服务,这样,服务器就不直接与外界联通,黑客想单方面从外部攻入是非常难的。

三、控制好服务器硬盘的读写权,及网站读写权。

1、如果是win系的服务器,请一定使用NTFS,系统分区使用默认读写权(不要去修改),其它分区加上Users组的可读写权,并向下继承。

2、网站文件、数据文件不要放在“我的文档”中。

3、关闭所有网站的可持行权!除非你非常确信你在干嘛。

四、特别提示:服务器的管理员口令请全部更换,不要用原来的!

五、对于你的网页挂马,最简单的做法是将重要数据留下,所有的网页文件全更换为干净的。

六、对于网页挂马,当前最常用的方式是:服务器系统漏洞(从你的说法来看这是最可能的)、SQL注入(请升级你的数据库服务器到最新)。

目前比较流行的ASP木马主要通过三种技术来进行对服务器的相关操作。

一、使用FileSystemObject组件

FileSystemObject可以对文件进行常规操作

可以通过修改注册表,将此组件改名,来防止此类木马的危害。

HKEY_CLASSES_ROOT\Scripting.FileSystemObject\

改名为其它的名字,如:改为FileSystemObject_ChangeName

自己以后调用的时候使用这个就可以正常调用此组件了

也要将clsid值也改一下

HKEY_CLASSES_ROOT\Scripting.FileSystemObject\CLSID\项目的值

也可以将其删除,来防止此类木马的危害。

注销此组件命令:RegSrv32 /u C:\WINNT\SYSTEM\scrrun.dll

禁止Guest用户使用scrrun.dll来防止调用此组件。

使用命令:cacls C:\WINNT\system32\scrrun.dll /e /d guests

二、使用WScript.Shell组件

WScript.Shell可以调用系统内核运行DOS基本命令

可以通过修改注册表,将此组件改名,来防止此类木马的危害。

HKEY_CLASSES_ROOT\WScript.Shell\

HKEY_CLASSES_ROOT\WScript.Shell.1\

改名为其它的名字,如:改为WScript.Shell_ChangeName或WScript.Shell.1_ChangeName

自己以后调用的时候使用这个就可以正常调用此组件了

也要将clsid值也改一下

HKEY_CLASSES_ROOT\WScript.Shell\CLSID\项目的值

HKEY_CLASSES_ROOT\WScript.Shell.1\CLSID\项目的值

也可以将其删除,来防止此类木马的危害。

三、使用Shell.Application组件

Shell.Application可以调用系统内核运行DOS基本命令

可以通过修改注册表,将此组件改名,来防止此类木马的危害。

HKEY_CLASSES_ROOT\Shell.Application\

HKEY_CLASSES_ROOT\Shell.Application.1\

改名为其它的名字,如:改为Shell.Application_ChangeName或Shell.Application.1_ChangeName

自己以后调用的时候使用这个就可以正常调用此组件了

也要将clsid值也改一下

HKEY_CLASSES_ROOT\Shell.Application\CLSID\项目的值

HKEY_CLASSES_ROOT\Shell.Application\CLSID\项目的值

也可以将其删除,来防止此类木马的危害。

禁止Guest用户使用shell32.dll来防止调用此组件。

使用命令:cacls C:\WINNT\system32\shell32.dll /e /d guests

注:操作均需要重新启动WEB服务后才会生效。

四、调用Cmd.exe

禁用Guests组用户调用cmd.exe

cacls C:\WINNT\system32\Cmd.exe /e /d guests

通过以上四步的设置基本可以防范目前比较流行的几种木马,但最有效的办法还是通过综合安全设置,将服务器、程序安全都达到一定标准,才可能将安全等级设置较高,防范更多非法入侵。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/96927.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-08
下一篇2023-03-08

发表评论

登录后才能评论

评论列表(0条)

    保存