黑客风云——风云网络
设为首页 加入收藏 我要投稿 网站地图

您现在的位置: 黑客风云 >> 黑客文章 >> 网管频道 >> 入侵检测 >> 正文
·完美空间提供500M免费AS04-10·企业安全之YY内网准入以04-09
·企业安全之意识与策略04-09·剑走偏锋:IIS漏洞利用04-09
·我来免费网提供100M免费04-09·1122mb.com提供20G超大免04-08
·映像劫持与反劫持技术04-07·让所有"暴力删除工具"无04-07
·入侵88red系统的详细过程04-07·Sql Injection脚本注入终04-07
·vbs+delphi 反弹后门生成04-07·飞讯网提供100MB免费PHP04-07
·突破SQL注入攻击时输入框04-04·结合内核和病毒技术的最04-04
·Real Player rmoc3260.d04-04·亿万网络今月最后为您提04-04
·php+mysql 5 sql inject04-03·Real Player rmoc3260.d04-03
·oblog文件下载漏洞04-03·免费啦提供1G-2G免费全能04-03
·完全解析网页后门和挂马04-02·一句话开3389(只测试过04-02
·萧萧免费空间网提供100M04-02·谷道免费空间网提供1G免04-01
·从本地入手解决双线路由03-31·sablog 1.6 多个跨站漏洞03-31
·富文本编辑器的跨站脚本03-31·Cookie注入是怎样产生的03-31
[推荐]超强2000平台下Shell程序ACKcmd后门分析
      ★★★★

超强2000平台下Shell程序ACKcmd后门分析

文章整理发布:黑客风云 文章来源:www.05112.com 更新时间:2006-3-27 9:15:57

简介 
-=-=-=-=--=
ACKcmd是提供Win2000下远程命令Shell的一种后门,它使用TCP来传输,但是不同于一般正常的TCP连接有三次握手,ACKcmd仅使用了TCP ACK数据包,所以一般情况下可以穿越防火墙及躲避IDS的检测。

ACKcmd采用client/server结构,在目标机器上运行AckCmdS.exe植入后门,入侵者在客户端运行命令AckCmdC <target ip>即可获得一个远程的Shell。


分析
-=-=-=-=--=
我们现在用sniffit来观察ACKcmd的数据是怎样传输的。入侵者在192.168.0.29,连入目标机器192.168.0.2:

E:\Tools>ackcmdc 192.168.0.2

AckCmd 1.1 - The Ack Command Prompt for Windows 2000
           - (c) 2000, Arne Vidstrom, arne.vidstrom@ntsecurity.nu
           - For instructions see http://ntsecurity.nu/toolbox/ackcmd/

Type "quit" and press Enter to quit

AckCmd> net name    <------ 输入命令

名称
-------------
SERVER2000
ADMINISTRATOR
命令成功完成。

AckCmd> quit        <------ 退出

sniffit抓到的包如下:

TCP Packet ID (from_IP.port-to_IP.port): 192.168.0.29.80-192.168.0.2.1054       
   SEQ (hex): 6060606   ACK (hex): 6060606                                                         
   FLAGS: -A----   Window: 4000                                                                    
Packet ID (from_IP.port-to_IP.port): 192.168.0.29.80-192.168.0.2.1054           
45 E 00 . 00 . 38 8 00 . 00 . 00 . 00 . 80 . 06 . B9 . 50 P C0 . A8 . 00 . 1D .
C0 . A8 . 00 . 02 . 00 . 50 P 04 . 1E . 06 . 06 . 06 . 06 . 06 . 06 . 06 . 06 .
70 p 10 . 40 @ 00 . E6 . C6 . 00 . 00 . 02 . 04 . 05 . B4 . 01 . 01 . 04 . 02 .
6E n 65 e 74 t 20   6E n 61 a 6D m 65 e                                        


TCP Packet ID (from_IP.port-to_IP.port): 192.168.0.2.1054-192.168.0.29.80       
   SEQ (hex): 6060606      FLAGS: ---R--                                        
Packet ID (from_IP.port-to_IP.port): 192.168.0.2.1054-192.168.0.29.80          
45 E 00 . 00 . 28 ( 04 . A8 . 00 . 00 . 80 . 06 . B4 . B8 . C0 . A8 . 00 . 02 .
C0 . A8 . 00 . 1D . 04 . 1E . 00 . 50 P 06 . 06 . 06 . 06 . 06 . 06 . 06 . 06 .
50 P 04 . 00 . 00 . 11 . EB . 00 . 00 .                                        


TCP Packet ID (from_IP.port-to_IP.port): 192.168.0.2.1054-192.168.0.29.80       
   SEQ (hex): 6060606   ACK (hex): 6060606                                      
   FLAGS: -A----   Window: 4000                                                 
Packet ID (from_IP.port-to_IP.port): 192.168.0.2.1054-192.168.0.29.80           
45 E 00 . 00 . CD . 04 . A9 . 00 . 00 . 80 . 06 . B4 . 12 . C0 . A8 . 00 . 02 .
C0 . A8 . 00 . 1D . 04 . 1E . 00 . 50 P 06 . 06 . 06 . 06 . 06 . 06 . 06 . 06 .
70 p 10 . 40 @ 00 . 1C . C1 . 00 . 00 . 02 . 04 . 05 . B4 . 01 . 01 . 04 . 02 .
0D . 0A . C3 . FB . B3 . C6 . 20   20   20   20   20   20   20   20   20   20  
20   20   20   20   0D . 0A . 2D - 2D - 2D - 2D - 2D - 2D - 2D - 2D - 2D - 2D -
2D - 2D - 2D - 2D - 2D - 2D - 2D - 2D - 2D - 2D - 2D - 2D - 2D - 2D - 2D - 2D -
2D - 2D - 2D - 2D - 2D - 2D - 2D - 2D - 2D - 2D - 2D - 2D - 2D - 2D - 2D - 2D -
2D - 2D - 2D - 2D - 2D - 2D - 2D - 2D - 2D - 2D - 2D - 2D - 2D - 2D - 2D - 2D -
2D - 2D - 2D - 2D - 2D - 2D - 2D - 2D - 2D - 2D - 2D - 2D - 2D - 2D - 2D - 2D -
2D - 2D - 2D - 2D - 2D - 0D . 0A . 53 S 45 E 52 R 56 V 45 E 52 R 32 2 30 0 30 0
30 0 20   20   20   20   20   20   0D . 0A . 41 A 44 D 4D M 49 I 4E N 49 I 53 S
54 T 52 R 41 A 54 T 4F O 52 R 20   20   20   0D . 0A . C3 . FC . C1 . EE . B3 .
C9 . B9 . A6 . CD . EA . B3 . C9 . A1 . A3 . 0D . 0A . 0D . 0A .               

可以看出,这次操作总共传输了三个TCP包。客户端的端口号是80,服务器的端口号是1054,这种类似于HTTP的通信是很容易被网管忽略的。客户端的命令net name以明文方式放在TCP的数据段,服务器立刻返回一个TCP RST包,然后接着返回一个TCP ACK,其中带着命令执行后的输出结果。如果输出结果很长,ACKcmd只能返回部分数据,这是作者在设计时没有考虑的。你可以运行dir c:\winnt\system32看看,只能输出部分文件列表,最后附带信息“More...”表示并不是返回了全部数据。


检测
-=-=-=-=--=
首先,它采用的端口(80和1054)是固定的。要监控客户端发出的数据包,tcpdump的过滤规则为:

tcp[0:2] = 80 and tcp[2:2] = 1054

多做几次试验,可以发现它们之间通信的TCP ACK包中,序列号和ACK号都是0x06060606(十进制101058054),这也是一个很重要的特征。tcpdump的过滤规则为:

tcp[4:4] = 0x06060606 and tcp[8:4] = 0x06060606


缺陷
-=-=-=-=--=
正如作者所说,这是一个使用TCP ACK穿越防火墙的proof-of-concept,所以并不是很完善。数据的明文方式传输,以及在Win2000的任务列表中能看到AckCmdS.exe,所以此后门不难被发现。

文章录入:cainiaowang    责任编辑:cainiaowang 
【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
VIP 专 区
Copyright @2006 黑客风云 ●业务联系:QQ 联系怪人 联系奇人 Email:给怪人发邮件 给奇人发邮件
ICP备案:冀06009886