📄 6.htm
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD><TITLE>"Code Red" 蠕虫攻击方式分析</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<STYLE type=text/css>BODY {
FONT-SIZE: 9pt; FONT-FAMILY: "宋体"
}
TABLE {
FONT-SIZE: 9pt; FONT-FAMILY: "宋体"
}
TD {
FONT-SIZE: 9pt; FONT-FAMILY: "宋体"
}
INPUT {
FONT-SIZE: 9pt; FONT-FAMILY: "宋体"
}
TEXTAREA {
FONT-SIZE: 9pt; FONT-FAMILY: "宋体"
}
SELECT {
FONT-SIZE: 9pt; FONT-FAMILY: "宋体"
}
CODE {
FONT-SIZE: 9pt; FONT-FAMILY: "宋体r"
}
A {
COLOR: #005500
}
A:hover {
COLOR: #cc0000
}
.border {
BORDER-RIGHT: #000000 1px solid; BORDER-TOP: #000000 1px solid; LIST-STYLE-POSITION: inside; BORDER-LEFT: #000000 1px solid; BORDER-BOTTOM: #000000 1px solid; LIST-STYLE-TYPE: square; BACKGROUND-COLOR: transparent
}
</STYLE>
<META content="MSHTML 6.00.2600.0" name=GENERATOR></HEAD>
<BODY text=#000000 bgColor=#ffffff>
<TABLE borderColor=#339933 cellSpacing=0 borderColorDark=#ffffff cellPadding=0
width=288 align=center borderColorLight=#000000 border=1>
<TBODY>
<TR vAlign=center bgColor=#009900>
<TD >
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
<TBODY>
<TR>
<TD width=17> </TD>
<TD width=590>
<TABLE width="65%" align=center border=0>
<TBODY>
<TR>
<TD bgColor=#009900>
<DIV align=center><FONT
face="Verdana, Arial, Helvetica, sans-serif"
color=#ffffff><B>"Code Red" 蠕虫攻击方式分析</B></FONT></DIV>
</TD>
</TR>
</TBODY>
</TABLE>
</TD>
<TD width=19>
<DIV align=center></DIV>
</TD>
</TR>
</TBODY>
</TABLE>
</TD>
</TR>
<TR vAlign=center align=left bgColor=#cccccc>
<TD></TD>
</TR>
<TR vAlign=top>
<TD class=tenpt><CODE><FONT color=#000000><br>
</FONT></CODE><CODE><FONT color=#000000><FONT
color=#cc0000> </FONT></FONT></CODE><CODE><FONT color=#000000><FONT
color=#cc0000> 详细:CODE RED 利用 IIS WEB 服务器 .IDA 缓冲区溢出漏洞传播。 如果它感染了一个主机,将会在受影响机器上作如下活动:
<br>
1、建立起初始蠕虫环境 <br>
2、建立起100个蠕虫线程 <br>
3、前99个线程会传播感染其它主机 <br>
4、第100个线程会检查自身是否运行于一个英文版本的 Windows NT/2000 <br>
如果是,它将会替换该主机页面 <br>
Welcome to http://www.worm.com !, Hacked By Chinese! <br>
该信息会在10小时后自动消失,除非再次受到感染。 <br>
如果不是英文版本,它也会被用作感染其它主机。 <br>
5、每个线程会检查当地时间 <br>
如果时间位于 20:00 UTC 和 23:59 UTC 间,该线程会往 <br>
www.whitehouse.gov 发送 100K 字节数据。 <br>
如果小于 20:00 UTC,它会继续传播感染其它主机 <br>
在下面的详细分析中,将要用到 <br>
IDA(Interactive Disassembler) ,它来自www.datarescue.com。 <br>
MS VC++ 调试环境 <br>
我将该蠕虫分为三个部分以便研究:核心功能模块,hack web 页面模块,攻击 <br>
www.whitehouse.gov 模块。 <br>
一、核心功能模块 <br>
1、起始感染容器(已被感染并将传播蠕虫的主机) <br>
当被感染时,系统内存将会呈现如下信息: <br>
<MORE 4E 00> <br>
4E 00 4E 00 4E 00 4E 00 <br>
4E 00 4E 00 4E 00 4E 00 <br>
4E 00 4E 00 4E 00 4E 00 <br>
92 90 58 68 4E 00 4E 00 <br>
4E 00 4E 00 4E 00 4E 00 <br>
FA 00 00 00 90 90 58 68 <br>
D3 CB 01 78 90 90 58 68 <br>
D3 CB 01 78 90 90 58 68 <br>
D3 CB 01 78 90 90 90 90 <br>
90 81 C3 00 03 00 00 8B <br>
1B 53 FF 53 78 <br>
EIP 会被 0x7801CBD3 重写。在 0x7801CBD3 处的代码将会被分解成 call ebx ,当 EIP 被 call ebx
重写时,它会导致程序流重定向回堆栈。堆 <br>
栈上的代码将会跳到蠕虫代码,该蠕虫代码在起始 HTTP 请求体中。 <br>
2、建立起始堆栈变量 <br>
CODEREF: seg000:000001D6 WORM <br>
首先,蠕虫建立一个充满 CCh 的 218h 字节堆栈,然后它将转而激活跳转函数。 <br>
所有的变量会被引用为 EBP-X 值。 <br>
3、装载函数(建立跳转表"jump table") <br>
CODEREF: seg000:00000203 DataSetup <br>
首先,蠕虫会引用 exploit 代码在 EBP-198h 中的数据部分。然后,它需要创建自己内部函数跳转表。 <br>
该蠕虫用到了一项 RVA (Relative Virtual Addresses) 查询技术,在一个 nutshell 中,RAV 被用来得到
GetProcAddress 的地址。 <br>
GetProcAddress 然后被用来得到 LoadLibraryA 地址。它会用到这两个函数装载下面的函数: <br>
>From kernel32.dll: <br>
GetSystemTime <br>
CreateThread <br>
CreateFileA <br>
Sleep <br>
GetSystemDefaultLangID <br>
VirtualProtect </FONT></FONT></CODE>
<p>>From infocomm.dll: <br>
TcpSockSend </p>
<p>>From WS2_32.dll: <br>
socket <br>
connect <br>
send <br>
recv <br>
closesocket <br>
最后,蠕虫会存储 w3svc.dll 的基地址,该地址将被用来更改页面。 <br>
4、检查已经创建的线程: <br>
CODEREF: seg000:00000512 FUNC_LOAD_DONE <br>
它会运行 WriteClient (ISAPI Extension API 的一部分),发送"GET" 回进攻机。这应该是告诉告诉攻击机它已成功感染该机。
<br>
然后,它会计算活动的蠕虫线程 <br>
如果线程等于100,控制会转向 hack web 页面功能项。 <br>
如果线程小于100,它会创建新的线程。每一个新线程都是蠕虫的简单复制。 <br>
5、检查已存在的 c:\notworm <br>
它有一个"lysine deficiency" 功能,用来保持恶意代码进一步传播。 <br>
如果该文件存在,它不会作其它动作;如果不存在,它会进行下一步。 <br>
6、检查受影响系统时间: <br>
CODEREF: seg000:00000803 NOTWORM_NO <br>
CODEREF: seg000:0000079D DO_THE_WORK <br>
如果时间位于 20:00 UTC 和 23:59 UTC 间,该线程会往 <br>
www.whitehouse.gov 发送 100K 字节数据。 <br>
如果小于 20:00 UTC,它会继续传播感染其它主机 <br>
7、感染一个新的主机 <br>
如果能建立一个80端口连接,它将会发送自己的一个复制到那个 IP,如果发送成功,它会关闭 socket 并转到第5步,从而开始一个新的循环。
<br>
二、hack webpage 模块 <br>
如果100个线程产生,该模块会被调用 <br>
1、检查系统语言是否为英文,然后转到核心模块第5步 <br>
CODEREF: seg000:000005FE TOO_MANY_THREADS <br>
2、休眠2小时 <br>
CODEREF: seg000:00000636 IS_AMERICAN <br>
这应该是在更改页面之前作尽可能的传播。 <br>
3、试图改变受影响系统的 WEB 页面 <br>
CODEREF: seg000:0000064F HACK_PAGE <br>
三、攻击www.whitehouse.gov 模块 <br>
创建 socket 连接到 <br>
www.whitehouse.gov 80 端口发送 100K 字节数据: <br>
CODEREF: seg000:000008AD WHITEHOUSE_SOCKET_SETUP <br>
首先,它会创建一个 socket 并连接到 198.137.240.91 (www.whitehouse.gov/www1.whitehouse.gov)
80 端口, <br>
CODEREF: seg000:0000092F WHITEHOUSE_SOCKET_SEND <br>
如果连接成功,它会创建一个循环:发送18000h 单字节send()'s 到该站点 <br>
CODEREF: seg000:00000972 WHITEHOUSE_SLEEP_LOOP <br>
在 18000h send()'s 后,它会休眠4个半小时,然后重复此攻击。 </p>
<CODE><FONT color=#000000><FONT
color=#cc0000><BR>
</FONT></FONT></CODE></TD>
</TR>
</TBODY>
</TABLE>
<TABLE cellSpacing=0 width=545 align=center border=0>
<TBODY>
<TR>
<TD></TD>
</TR>
</TBODY>
</TABLE>
<P align=center> </P></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -