2024年4月24日发(作者:)
Botnet的发现与控制
摘要:本文描述了Botnet的网络行为以及通过IDS和Honeypot发现Hotnet的方
法并对比了两者的利弊。阐述了控制Botnet的前提和方法。最后说明了近期和
长期的研究重点。
声明:
如果特殊说明,本文的数据都来自CNCERT/CC。本文所说的Bot和Botnet默认是
指IRC类型的。
BOTNET的发现(Botnet Tracking)
一.
僵尸程序与控制者的网络行为
无论是僵尸程序(Bot)还是控制者(Controller),都必须与Comande and
Control Server(简写为C&C S)通信。Bot与C&C S通信的目的是1)接收控
制命令 2)汇报工作状态;控制者的目的是1)发送控制命令 2)掌握Botnet
的运行情况。
一般地,Bot启动后,会主动与C&C S通信,通信过程如下:
1.建立连接
如果bot内置了C&C S的域名,则先解析域名;为了灵活和安全,
bot通常采用动态域名。当一个C&C S所在主机被破坏后,可以切换到另
一个C&C S,保证botnet继续运行。
通常,C&C S也是一台被控制的主机。
为增强安全性,有的C&C S还设置了连接密码。连接密码在tcp三
次握手后,通过PASS命令发送(注释1):
->PASS ConnetionPassn
2.发送NICK和USER命令
NICK通常有一个固定的前缀,如CHN!2345、[Nt]-15120、ph2-1234。
->NICK [Nt]1234rnUSER [Nt]1234 0 0 :[Nt]1234rn
3. 加入预定义的频道
频道名一般硬编码在Bot体内。
->JOIN #mole-phat2n
为增强安全性,有的控制者为频道设定了密码。
CNCERT/CC的监测数据表明,规模较大(控制1万台以上计算机)
的Botnet通常设置了频道密码,但设置服务器连接密码的Botnet还在
少数。加入含有密码的频道的命令为:
->JOIN #mole-phat2 deddymann
设置频道密码的命令为:
->MODE #mole-phat2 +k deddymann
使用该命令的客户端可能是控制者或代理。
4.将频道主题解释为控制命令执行(可选)
Bot加入频道后,通常会将频道主题(TOPIC)作为命令执行,典
型的TOPIC类似于1).advscan lsass 200 5 0 -r –s含义是利用LSASS漏洞,启
动200个并发线程,在5秒钟以后开始随机(-r = random)扫描,扫描结
果不用向服务器汇报(-s = silent) 2). http:/server/
c: 1含义是从server下载文件,保存到c:盘并执行(参数1)。
CNCERT/CC监测发现,有的控制者还通过设置频道TOPIC通知Bot
转移到新的频道,该TOPIC为“JOIN #newchannel”。
5.向频道发送状态信息
Bot收到控制者命令后,按照命令参数决定是否向频道发送执行命令
的情况,上例中的’-s’参数指示Bot保持沉默。如果不加这个参数,Bot
可能会向频道发送大量状态信息,如:
->PRIVMSG #!nt :Downloading / c: 1n
->PRIVMSG #ntscan[SCAN] : Random Port Scan started on :445 with a delay
of 5 seconds for 0 minutes using 120 threads.n
->PRIVMSG #xtc-scan :CSendFile(0x007AEEC0h): Transfer to 61.151.24.101 finished.
以上为bot和C&C S的通信内容,下面再看控制者和C&C S的通信。
控制者通过C&C Server控制整个botnet的过程如下。
1.认证(authenticate)自己
控制者首先作为一个普通用户登陆C&C S,加入和Bot同样的频道。在
此阶段,他的通信过程与bot没有差别。
之后,控制者使用.login、!logon、!auth诸如此类的命令认证自己。
服务器将该信息转发给频道内所有的bot,bot将该密码与硬编码在文件
体内的密码比较,相同则将该用户的nick名称记录下来,以后可以执行
该用户发送的命令。
对于复杂点的认证方式,还包括host名的认证和密码的加密机制。下
面以rBot v0.6.5为例,它的认证过程如下。
1) 控制者发送认证命令给C&C S;
->PRIVMSG #rbot .login password –sn
发送该消息的源地址是可疑的控制者IP。
2) C&C S将消息转发给频道内所有bot;
<-:ControllerNICK!ControllerUSER@host PRIVMSG #rbot :.login password -srn
有时我们不能监测到1)的消息,但可以获得2)的消息,同样可能提
取出可疑的控制者IP。该消息的源地址为C&C S,目的地址为Bot所在
主机,但 host信息可能携带控制者IP,这种情况是常见的。
<-:ControllerNICK!ControllerUSER@202.108.1.1 PRIVMSG #rbot :.login password
-srn
说明202.108.1.1的主机曾经向C&C Server发送.login消息。
3) RBot可以根据C&C S转发的消息,同时获得发送消息用户(控
制者)的NICK(ControllerNICK)、USER(ControllerUSER)、host、命
令(.login)和命令参数(password -s)。rBot首先验证密码是否正确,它将
密码进行编码后和体内硬编码的密码(编码后存储,预防静态分析)
进行比较,相同后再比较user和host是否满足条件。rBot硬编码了两
类可信任的用户和host,分别为*@*.net和"*@*.com" ,含义为来自.net
或.com的任意用户。RBot定义了通配符,如果host中包含.com或.net
字符串,则任意用户名(*)都会匹配成功。
发布评论