×

关注微信公众号

免备案网站空间虚拟主机双线空间域名查询PS数码后期
photoshop互助课堂数百G视频教程下载英语培训机构初中英语如何学随时随地聆听大师开讲/课堂
酷素材!视频教程打包下手绘教程抠图教程路径专辑photoshop cs3视频教程
查看: 78806|回复: 5

“红色代码”分析报告

[复制链接]
发表于 2006-7-10 03:12:57 | 显示全部楼层 |阅读模式
前几天,我们从两名网络管理员那里得知,他们管理的网络受到了大量数据包的攻击,攻击目标就是.ida网络漏洞。在查看了他们提供的系统日志之后,我们认定是有人在Internet上扩散了一种新型蠕虫,这种蠕虫可以快速地通过IIS web服务器得以在网络上扩散。


对.ida“红色代码”蠕虫的完整分析详尽地说明了这种蠕虫的功能和复制方式等众多细节。例如,这种蠕虫的最终目的似乎是对www.whitehouse.gov发起拒绝服务攻击。而且我们还发现,只有默认语言配置为美国英语的Windows NT/2000系统才会显示被篡改的网页(“Hacked by Chinese !”)。


我们认为这种蠕虫就是所谓的.ida“红色代码”蠕虫,这是因为,该蠕虫有些变体会把网页的内容篡改为“Hacked by Chinese”,而且也只有“红色代码”蠕虫和它如此相似,这就提醒我们顺其踪迹对这种蠕虫进行深入地研究。


解释


几星期前,.ida“红色代码”蠕虫经由.ida缓冲区溢出漏洞在因特网上的IIS Web服务器之间扩散。


下面是它感染一台有缺陷的Web服务器所采取的步骤。


1.在被感染的系统上设置蠕虫发作的初始环境。


2.蠕虫运行,产生100个线程


3.首先用99个线程扩散蠕虫(感染其他的Web服务器)。蠕虫通过创建随机的IP地址把自己扩散出去。不过,蠕虫所攻击的IP地址并不都具有很强的随机性。事实上,蠕虫似乎使用了一个静态的种子来产生新的IP地址供其发起针对性的攻击。因此这种蠕虫感染的每台计算机都将试图感染具有同一列表随机IP地址的主机。结果,因为按照随机IP地址的顺序在所有的IP地址之间传输的数据会被大量产生,所以蠕虫会反复感染系统而且在主机之间来回穿梭形成一种拒绝服务类型的效果。这种蠕虫能产生真正随机的IP地址,这样就可以让它更快地感染更多的系统。


4.第100个线程则检查蠕虫是否在设置默认语言为美国英语的Windows NT/2000系统上运行。


- 如果发现被感染系统配置的默认语言是美国英语,那么这种蠕虫就会接下来篡改被感染的系统站点。那意味……本地Web服务器的网页将被篡改成这样一条消息:Welcome to http://www.worm.com !, Hacked By Chinese! 这个被黑掉的网页消息将在Web服务器上“生存”10个小时左右的时间然后消失,并且,除非被感染的系统再次被另外的主机所感染,这个被篡改的页面就不再出现了。


- 如果系统语言不是美国英语Windows NT/2000系统,那么第100个蠕虫线程将去感染其他系统。


5.每一蠕虫线程都会检查c: otworm


- 如果文件c: otworm存在,蠕虫转为休眠。


- 如果该文件不存在,线程就继续感染更多的系统。


6.每个蠕虫线程都将检查被感染计算机的当前时间。


- 如果时间在20:00 UTC和23:59 UTC之间,那么蠕虫将继续使用这个线程攻击www.whitehouse.gov。在攻击中,被感染的系统将向www.whitehouse.gov的端口80发送100k字节的数据,结果就可能会产生对www.whitehouse.gov的拒绝服务攻击。


- 如果时间在20:00 UTC以下,这个蠕虫线程就会试着发现并且感染新的Web服务器。


在测试的时候,我们计算了一下,蠕虫在一天之内大约会感染50万左右的IP地址,并且这还是根据速度比较慢的网络所做的保守估计。


在写本文(7月18日下午6:49)的时候,已经有超过12000台左右的主机探查到了这种病毒。基本上也就意味着至少1万2千台主机被这种蠕虫感染了。


在测试的时候,我们发现有时蠕虫不能正确地被执行,结果就会不断地产生新线程直到被感染的主机崩溃为止。我们还没有找出出现这一问题的原因。


深入分析


以下是对蠕虫感染主机每一步骤的详细分析。对蠕虫的完整反编译和注释代码可以从这里获得。


我们用来进行这种详细分析的工具是:


IDA-交互式反汇编程序,可以从www.datarescue.com获得。IDA是一种高级的反汇编程序。


MS VC++ 调试环境-当蠕虫与IIS交互时,我们用它来监视蠕虫的修改部分。


在下面的分析引用中我们将主要引用这些反汇编的蠕虫代码。


为了能使您更容易理解这些尝试,我们把蠕虫的功能分成了3个部分:蠕虫核心功能、蠕虫篡改网页的功能和攻击www.whitehouse.gov的功能。


蠕虫核心功能



1.初始化感染目标(即存在.ida 攻击脆弱性并被蠕虫捕获的主机)。


当某台存在.ida攻击漏洞的Web服务器接收到一个特殊的HTTP请求时,初始化感染就开始了。这个特殊的HTTP请求包含了利用.ida 攻击并把这种蠕虫作为其负载的必要代码。


.ida溢出系统堆栈内存的时候代码看起来像下面这个样子:


<MORE 4E 00>
4E 00 4E 00 4E 00 4E 00
4E 00 4E 00 4E 00 4E 00
4E 00 4E 00 4E 00 4E 00
92 90 58 68 4E 00 4E 00
4E 00 4E 00 4E 00 4E 00
FA 00 00 00 90 90 58 68
D3 CB 01 78 90 90 58 68
D3 CB 01 78 90 90 58 68
D3 CB 01 78 90 90 90 90
90 81 C3 00 03 00 00 8B
1B 53 FF 53 78



EIP被msvcrt.dll内的一个地址0x7801CBD3覆盖。0x7801CBD3处的代码反汇编为:


call ebx



当EIP被call ebx覆盖时,程序会转回堆栈。堆栈内的代码就跳进了在最初HTTP请求内包含的蠕虫代码。


2.设置一些初始堆栈变量


CODEREF :seg000:000001D6 WORM



这时正在执行蠕虫的初始化代码。发生的第一件事情是蠕虫为自己使用而安装了一个新堆栈。新堆栈大小是218h字节,充满了CCh。蠕虫代码随后进一步初始化它的函数表。


蠕虫侧重于使用基于EBP堆栈的内存偏移系统。这意味着所有的变量都被当作EBP-X值被引用。在我们的网站上有一个叫做worm-ebp.txt的文件记录了蠕虫代码执行过程中的堆栈用途。


3.装载函数(创建“函数表”)


CODEREF :seg000:00000203 DataSetup



蠕虫代码做的第一事情是引用在EBP-198h的可利用代码的数据部分。然后蠕虫需要设置其内部函数表。函数表就是一种基于堆栈的表,用来存放函数地址。它可以让蠕虫在运行的时候生成函数地址(这就可以让蠕虫得到在更多系统上执行的机会)。


这种蠕虫所采用的技术叫做RVA(相对虚拟地址)查找。基本上这就意味着所有的函数,或具体地说就是GetProcAddress,都可以在IIS以内被找到。要了解RVA的更多细节请咨询专家或者阅读一些PE(便携式可执行文件,微软平台的可执行文件格式)文档或读完这种蠕虫的汇编代码。


简单地说,RVA技术用来得到GetProcAddress的地址。


GetProcAddress随后用来得到LoadLibraryA的地址。在这两个函数之间蠕虫可能需要的其他所有函数也很容易找到。蠕虫就用了这两个函数来装载以下的函数:


从kernel32.dll中装载:
GetSystemTime
CreateThread
CreateFileA
Sleep
GetSystemDefaultLangID
VirtualProtect

从infocomm.dll中装载:
TcpSockSend

从WS2_32.dll中装载:
socket
connect
send
recv
closesocket



最后蠕虫保存w3svc.dll的基地址,该地址以后就可能用来篡改被感染的网站。


4.检查蠕虫创造的线程数。


CODEREF :seg000:00000512 FUNC_LOAD_DONE



这里蠕虫似乎执行了一次WriteClient(ISAPI扩展API之一),并向发起攻击的蠕虫发送“GET”。这可能是告诉攻击蠕虫他们已经成功地感染了一台新主机。


接下来蠕虫代码会计算已经处于活动状态的蠕虫线程的总数。如果线程的数字是100则控制转向蠕虫篡改网页的功能。


如果线程的数字小于100,蠕虫则继续创造一个新线程。每个新增加的线程都是蠕虫的准确复制品(使用同样的代码)。


蠕虫现在继续执行下一步。


6.检查c: otworm的存在


CODEREF :seg000:0000079D DO_THE_WORK



似乎这就是一种“赖氨酸缺乏症”的表现(在《侏罗记公园》里有其描写)。“赖氨酸缺乏症”是一种可以阻止恶性代码进一步传播的检查方式。


在这种情况下的“赖氨酸缺乏”就是对文件c: otworm 的存在与否进行检查。如果这个文件存在,那么蠕虫将转向休眠。这样它就不再尝试对其他IP地址进行感染。


如果这个文件不存在,蠕虫就执行下一步骤。


7.检查被感染系统的时间(计算机时钟)


CODEREF :seg000:00000803 NOTWORM_NO



蠕虫现在检查被感染系统的本地时间。如果小时数大于 20:00 UTC则蠕虫会转到攻击www.whitehouse.gov功能的第一步。


如果时间不到20:00 UTC,蠕虫则将继续感染新系统。
本帖的地址:http://bbs.jcwcn.com/forum.php?mod=viewthread&tid=19324
跟着教程做一遍,做完的图要到这里评论交作业,教程有看不懂的地方,可以在贴子下面评论
发表于 2018-6-13 11:28:54 | 显示全部楼层
酷素材
好帖就是要顶
回复 支持 反对

使用道具 举报

发表于 2018-6-13 11:00:06 | 显示全部楼层
不错不错
回复 支持 反对

使用道具 举报

发表于 2018-6-13 11:10:25 | 显示全部楼层
好帖子要收藏
回复 支持 反对

使用道具 举报

发表于 2018-6-13 11:14:25 | 显示全部楼层
酷素材
教程网我挺你
回复 支持 反对

使用道具 举报

发表于 2018-6-13 10:58:07 | 显示全部楼层
酷素材
楼主我支持你
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | [立即注册]

本版积分规则

2345