技术解析

服务器被攻破,求查找原因
0
2021-07-05 06:33:36
idczone
RT
rc.local 文件被编辑, SElinux 被玩坏。

在装系统的时候有禁止 root 登录,限制 ssh 暴力破解,没有开web服务,没有开数据库,
然而系统还是悄无声息的被攻破了...
key 登录 + OTP
然后开端口的服务都 nobody 下跑
看还怎么被黑

你怎么发现服务器被攻破的?就凭 rc.local 文件?


rc.local 被修改就够严重了吧,何况还被添加了一条下载并执行未知程序的一行。

连日志都没有
让大伙怎么查?

第一,只开 web 端口,第二, ssh 端口只对固定 ip 开放。第三,上传文件也只通过 ssh 端口上传。 结束。

是攻破还是你机子中马了

你怎么发现的?
被害妄想症患者表示很想知道。

是不是用非官网下载的 putty

有没有关掉用户名密码登录?

fail2ban 走起。

last 里没有看到异常登录,其他的我也不知道该去看什么了。。。
除了第二条都有做,固定 ip 开放不太可行,但是有限制密码尝试次数。


不知道算是哪种,我只是知道 root 才能修改的文件被改动了,修改结果是自动下载并执行了一个文件。昨天系统出了奇怪的问题,所有用户都无法登录,显示 permission denial ,貌似是 SELinux 被玩坏了的原因,修改了/的权限并关闭了 SELinux 才解决问题。
啊,这个,它只是个计算服务器

没有关掉密码登录,只是禁用了 root
这个可能性很高,有很多普通用户都是小白, windows 下的软件很不注意的,我回头要强调一下
不过我们几个管理员都是用的 linux ,密码泄露的风险很小,普通用户提权应该很困难吧,用的 centos 系统,也有按时更新的。

晚上我去试试,非常有用的信息。

开启了阿里云盾,一天收到 20 多个暴力破解预警~~~现在扫描的人真多呀!

「没有关掉密码登录,只是禁用了 root 」.... 公网机器一律禁止密码认证,关闭 PAM ,只许可 key 认证。
开了密码认证,不排除有用户使用弱(智)密码 /自行修改为弱密码 的可能性。

我遇到过一次,原因最后查出是我们的 root 密码太简单了,被人扫描出来了

顺手查了下办公室里一台作为连接局端网络和自有公网段路由器的 debian , auth.log 昨天一天有 154 次 ssh 错误登录( 不存在的用户),给扫描用的 ssh 用户名排序,前 10 位列表:
7 oracle
6 git
5 admin
5 a
4 test
3 ubuntu
3 sergeev
3 r00t
3 postgres
3 nagios

我的服务器每天都有弱口令扫描
drop 列表已经长的看不下去了 扫描就扫描吧 反正错 2 次就封 2 周 我就不信能猜到密码

各位,我有个 kvm vm 被攻破了,我还不确定是被中木马还是其它,一开机就疯狂的向外发流量,估计是做 ddos ,所以我不敢开机,但是我可以使用 guestmount 来挂载这个 vm 的 image ,这种情况下该如何检查。

我不明白:为什么要开密码登录?
你们密码长度直接 4096 位长度?

很简单, ssh 配置私钥和公钥

直接扔个云盾上去看他们怎么玩

封闭所有端口, 除了必须公开的.

这服务器是你自己一个人用的,还是有别人有账号?

改个 5 位数端口就好了。

用了 key+禁止密码登陆,暴力破就老老实实的了

以后用 denyhosts 就行了,动态防止暴力破解。 google 开源出来的小工具。

禁止 root 登录,禁止密码登录,改 ssh 端口号,就差不多了。

iptables 禁止外网访问 开启外网访问白名单 就可以消除症状了 然后查找问题 并解决。
另外这个好处就是 即使服务器别人攻破 也不容易下载木马到服务器上

突然想起很久以前汉化版 putty 后门的事情
@algas


一天才 154 次?
重点机房 IP 段,一天 15400 次都不止
不改 ssh 端口就是噩梦……

「改个 5 位数端口就好了。」只改端口?别逗了,安慰剂不能滥用。

看上下文语境啊,这位。除非有人定点攻击你。否则的话,改个 5 位数端口,就能避免 99%的弱口令扫描。那种无脑扫描的不会把时间浪费在一个 IP 上面。

换个 SSH 端口呀。

如果你的服务器被人盯上了,不仅改端口没用,甚至你连只允许私钥登录都没用(0day 的后门多着哪,鬼才知道 Linux 有那些还没有被曝光的 oday 漏洞?)
但是一般情况下,你只改改 ssh 端口,的确能避免很多人的攻击.

我就说一个帖子里还没提到的:如果你有 redis ,并且以高权限的身份运行,还对外暴露了,那么可以通过 redis 持久化的方式,向指定路径写一个公钥,这样攻击者拿着对应的私钥就能直接 ssh 你的机器了。

建议日志专门用一台机器,把所有日志都集中收集起来,起码也方便以后查问题。

无任何线索,会不会是 heartbleed ?

最近观察了一下服务器的情况,顺便等计算任务结束,回复大家晚了很抱歉。
我会在附言里讲讲后来的处置,给故事结个尾。

我们也是猜可能是某个普通用户的密码泄漏了,然后被本地提权。

你提供的思路开阔眼界了,不过机器上没有开 redis 或类似的服务。

据说 heartbleed 不会导致 ssh 密钥泄漏

 你有泄露秘钥吗?我看你描述,有人非法登录的你的服务器而已,并不一定获取了你的私钥。


最近 ssh-client 爆出了一个漏洞,这个漏洞貌似可以使一台恶意配置的 ssh 服务器获取连接到这个 ssh-server 的计算机内存内容,获取用户用于 SSH 连接的私钥。
如果对方替换了服务器的 ssh-sever 程序,就有可能利用这个漏洞获得的私钥。

我说:可能是 heartbleed
你说: heartbleed 不会导致泄露私钥
我说:你并没有说你泄露了私钥,所以不能排除 heartbleed 的可能。
然后你的回复和话题好像是无关的?


你说不一定获取了私钥,
我理解成你问我为什么要重新生成本地的私钥(在附言里讲的那个),
所以我就解释了一下对方可能在获得 root 权限后把 ssh-server 换了。

哦,原来是这样。既然服务器已经 compromise 了,那就肯定要彻底清空重装了。

给你一次免费安全咨询:
1.Web 后门找到了没
2.找到入侵者的入口了没
3.还原攻击环节很重要
4.重装了但是你的内核版本升级了没,一般都有提权漏洞
5.跟 4 一个意思,“飞塔”查一下是什么
6.入口,入口很重要,看你的描述你的服务器已经成了一个马场


因为有很多人都了解和 linux 相关的事情,改成密钥登陆他们会比较费劲。
从安全角度来说,由于他们也基本不会改密码了,所以在实际使用上 10 位随机密码也不比密钥登陆危险太多

爲何不用密鑰?

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服