我是否正在经历蛮力攻击?

信息安全 SSH 蛮力
2021-08-12 08:29:42

使用以下命令检查服务器的身份验证日志时:

grep sshd.\*Failed /var/log/auth.log | less

我看到成千上万行这样的:

    Jan 12 11:27:10 ubuntu-leno1 sshd[8423]: Failed password for invalid user admins from 172.25.1.1 port 44216 ssh2
    Jan 12 11:27:13 ubuntu-leno1 sshd[8425]: Failed password for invalid user phoenix from 172.25.1.1 port 20532 ssh2
    Jan 12 11:27:17 ubuntu-leno1 sshd[8428]: Failed password for invalid user piglet from 172.25.1.1 port 24492 ssh2
    Jan 12 11:27:22 ubuntu-leno1 sshd[8430]: Failed password for invalid user rainbow from 172.25.1.1 port 46591 ssh2
    Jan 12 11:27:25 ubuntu-leno1 sshd[8432]: Failed password for invalid user runner from 172.25.1.1 port 57129 ssh2
    Jan 12 11:27:34 ubuntu-leno1 sshd[8434]: Failed password for invalid user sam from 172.25.1.1 port 11960 ssh2
    Jan 12 11:27:37 ubuntu-leno1 sshd[8437]: Failed password for invalid user abc123 from 172.25.1.1 port 5921 ssh2
    Jan 12 11:27:40 ubuntu-leno1 sshd[8439]: Failed password for invalid user passwd from 172.25.1.1 port 21208 ssh2
    Jan 12 11:27:43 ubuntu-leno1 sshd[8441]: Failed password for invalid user newpass from 172.25.1.1 port 65416 ssh2
    Jan 12 11:27:46 ubuntu-leno1 sshd[8445]: Failed password for invalid user newpass from 172.25.1.1 port 26332 ssh2
    Jan 12 11:27:49 ubuntu-leno1 sshd[8447]: Failed password for invalid user notused from 172.25.1.1 port 51126 ssh2
    Jan 12 11:27:52 ubuntu-leno1 sshd[8449]: Failed password for invalid user Hockey from 172.25.1.1 port 14949 ssh2
    Jan 12 11:27:56 ubuntu-leno1 sshd[8451]: Failed password for invalid user internet from 172.25.1.1 port 35105 ssh2
    Jan 12 11:27:59 ubuntu-leno1 sshd[8453]: Failed password for invalid user asshole from 172.25.1.1 port 7916 ssh2
    Jan 12 11:28:02 ubuntu-leno1 sshd[8456]: Failed password for invalid user Maddock from 172.25.1.1 port 26431 ssh2
    Jan 12 11:28:05 ubuntu-leno1 sshd[8458]: Failed password for invalid user Maddock from 172.25.1.1 port 53406 ssh2
    Jan 12 11:28:09 ubuntu-leno1 sshd[8460]: Failed password for invalid user computer from 172.25.1.1 port 23350 ssh2
    Jan 12 11:28:15 ubuntu-leno1 sshd[8462]: Failed password for invalid user Mickey from 172.25.1.1 port 37232 ssh2
    Jan 12 11:28:19 ubuntu-leno1 sshd[8465]: Failed password for invalid user qwerty from 172.25.1.1 port 16474 ssh2
    Jan 12 11:28:22 ubuntu-leno1 sshd[8467]: Failed password for invalid user fiction from 172.25.1.1 port 29600 ssh2
    Jan 12 11:28:26 ubuntu-leno1 sshd[8469]: Failed password for invalid user orange from 172.25.1.1 port 44845 ssh2
    Jan 12 11:28:30 ubuntu-leno1 sshd[8471]: Failed password for invalid user tigger from 172.25.1.1 port 12038 ssh2
    Jan 12 11:28:33 ubuntu-leno1 sshd[8474]: Failed password for invalid user wheeling from 172.25.1.1 port 49099 ssh2
    Jan 12 11:28:36 ubuntu-leno1 sshd[8476]: Failed password for invalid user mustang from 172.25.1.1 port 29364 ssh2
    Jan 12 11:28:39 ubuntu-leno1 sshd[8478]: Failed password for invalid user admin from 172.25.1.1 port 23734 ssh2
    Jan 12 11:28:42 ubuntu-leno1 sshd[8480]: Failed password for invalid user jennifer from 172.25.1.1 port 15409 ssh2
    Jan 12 11:28:46 ubuntu-leno1 sshd[8483]: Failed password for invalid user admin from 172.25.1.1 port 40680 ssh2
    Jan 12 11:28:48 ubuntu-leno1 sshd[8485]: Failed password for invalid user money from 172.25.1.1 port 27060 ssh2
    Jan 12 11:28:52 ubuntu-leno1 sshd[8487]: Failed password for invalid user Justin from 172.25.1.1 port 17696 ssh2
    Jan 12 11:28:55 ubuntu-leno1 sshd[8489]: Failed password for invalid user admin from 172.25.1.1 port 50546 ssh2
    Jan 12 11:28:58 ubuntu-leno1 sshd[8491]: Failed password for root from 172.25.1.1 port 43559 ssh2
    Jan 12 11:29:01 ubuntu-leno1 sshd[8494]: Failed password for invalid user admin from 172.25.1.1 port 11206 ssh2
    Jan 12 11:29:04 ubuntu-leno1 sshd[8496]: Failed password for invalid user chris from 172.25.1.1 port 63459 ssh2
    Jan 12 11:29:08 ubuntu-leno1 sshd[8498]: Failed password for invalid user david from 172.25.1.1 port 52512 ssh2
    Jan 12 11:29:11 ubuntu-leno1 sshd[8500]: Failed password for invalid user foobar from 172.25.1.1 port 35772 ssh2
    Jan 12 11:29:14 ubuntu-leno1 sshd[8502]: Failed password for invalid user buster from 172.25.1.1 port 18745 ssh2
    Jan 12 11:29:17 ubuntu-leno1 sshd[8505]: Failed password for invalid user harley from 172.25.1.1 port 38893 ssh2
    Jan 12 11:29:20 ubuntu-leno1 sshd[8507]: Failed password for invalid user jordan from 172.25.1.1 port 64367 ssh2
    Jan 12 11:29:24 ubuntu-leno1 sshd[8509]: Failed password for invalid user stupid from 172.25.1.1 port 27740 ssh2
    Jan 12 11:29:27 ubuntu-leno1 sshd[8511]: Failed password for invalid user apple from 172.25.1.1 port 22873 ssh2
    Jan 12 11:29:30 ubuntu-leno1 sshd[8514]: Failed password for invalid user fred from 172.25.1.1 port 54420 ssh2
    Jan 12 11:29:33 ubuntu-leno1 sshd[8516]: Failed password for invalid user admin from 172.25.1.1 port 58507 ssh2
    Jan 12 11:29:42 ubuntu-leno1 sshd[8518]: Failed password for invalid user summer from 172.25.1.1 port 48271 ssh2
    Jan 12 11:29:45 ubuntu-leno1 sshd[8520]: Failed password for invalid user sunshine from 172.25.1.1 port 5645 ssh2
    Jan 12 11:29:53 ubuntu-leno1 sshd[8523]: Failed password for invalid user andrew from 172.25.1.1 port 44522 ssh2

看来我正在经历 ssh 蛮力攻击。这是常见的情况,还是我被专门针对?我现在应该怎么办?我应该认为攻击成功并采取措施吗?

- - -编辑 - - - -

攻击来自内部 IP 地址的事实可以通过该服务器从外部进行 ssh 重定向来解释。打开端口后很快就发生了,是否每个公共IP都在野外扫描以寻找背后的现有服务器?

4个回答

是的,看起来您正在经历蛮力攻击。攻击者位于 B 类私有地址上,因此很可能是可以访问组织网络的人进行攻击。从用户名看来,它们是通过常用用户名字典运行的。

查看“如何停止/防止 SSH 蛮力攻击”(Serverfault)“防止 SSH 蛮力攻击”(Rimu Hosting),了解如何采取措施减轻与 SSH 蛮力攻击相关的一些风险。

是的,这看起来完全像蛮力攻击,在谷歌搜索后admins phoenix piglet rainbow看起来这是攻击者正在使用的单词列表:https
://github.com/hydrogen18/kojoney/blob/master/fake_users 查看第 116 行以后。单词表的使用顺序完全相同。
这似乎是一个通用词汇表,因为它也出现在其他网站上。例如http://src.gnu-darwin.org/ports/net/kojoney/work/kojoney/fake_users

@TheJulyPlot 提供了一些关于如何减轻这种攻击的好信息。

关于 的快速注释fail2ban,正如很多人一直在提到的那样:前端是企业防火墙,后端只能看到来自防火墙的重定向/代理/内部地址。

所以不,172.25.1.1不是内部机器受损(并且答案中的评论和此处说明它是内部机器的其他答案在评论时都是错误的)。它是防火墙的内部 IP 地址之一。

后端的 Fail2ban 只会阻止一次使用 SSH 进行延伸的所有可能性,因为它只看到来自 172.25.1.1 的失败尝试。所以请继续阅读我的答案。

毫无疑问,正如其他帖子所提到的,很明显你正受到蛮力攻击。

但是,这并不意味着您在向我们展示的日志中以任何方式受到损害。唉,这些天 ssh 暴力攻击太常见了。大多数情况下,它们确实是自动化的,您不一定会成为目标。

作为一个轶事警告故事,几年前,我在 ISP 提供商中设置新服务器的第一天,对 Internet 开放的 ssh 在一个晚上就获得了 200k+ 的 ssh 扫描探测。

至于“内部 IP 地址”,要么您使用 SNAT 或 22/TCP 代理重定向,但不显示源 Internet IP(这不是最佳做法),或者您的路由器/电缆调制解调器是最坏的妥协。

如果您确实有 SNAT/代理 SSH 配置,我建议您考虑一下。您需要真实 IP 地址的日志,而不是您的网络的日志。

至于措施,我推荐一些:

  1. 不允许在 SSH 中使用密码;仅使用 RSA 证书登录;
  2. 不要对外开放ssh;将其限制在您的内部网络中;
  3. 从外部访问,通过VPN访问;不要将 SSH 暴露在整个互联网上;
  4. 来自外部的速率限制 SYN。

如果您绝对坚持仍然让 SSH 互联网对外开放,请注意,更改默认 SSH 端口只会给人一种虚假的安全感,而临时阻止 IP 地址只会减慢攻击速度,就像我们经常谈论的协调农场一样僵尸机器。

您可能想看看fail2ban您是否确实更改了配置以直接接收连接到您的公共 IP 地址;但是请考虑到,如果确实有任何外部 IP 与您的网关的 IP 地址一起到达,那么您实际上是在使用它锁定所有外部 SSH 访问。

还有其他警告;请注意,现在僵尸/恶意软件会考虑 fail2ban在内,并且会在默认超时期限后返回或轮流使用不同的 IP 地址。(我见过这种情况。)即使您使用强制 RSA 证书身份验证,密码攻击仍然会被记录下来,并且会消耗 I/O、磁盘空间和 CPU 周期。

至于VPN,你不需要专用硬件;在 Linux 或 FreeBSD 服务器中配置 VPN 很简单。

如果您不喜欢从头开始设置,我建议您使用带有pfSense 的 VM。对于 FreeBSD;strongSwan用于在 Linux 服务器中设置 VPN。

如果您的前端服务器是 Linux,另一种选择是端口敲击。然而,由于其固有的工作原理,我只推荐它用于家庭环境。正如@GroundZero 正确指出的那样, “端口敲门是一种隐蔽的安全性,攻击者可以主动监控您的网络流量以发现敲门序列。”

如何在 Ubuntu 上使用端口敲门对攻击者隐藏 SSH 守护进程

作为一项附加措施,您还可以在端口 22 中使用防火墙/iptables 规则 SYN 进行速率限制。这样,您就不会限制您的合法连接,并且 linux 中的 iptables 或大多数商业防火墙都允许该配置。我已经看到了令人讨厌的技巧,因为机器人在安全规则生效之前尽可能快地攻击一些守护进程。但是我确实相信实际上 ssh 有内置的防御措施。

要回答你关于猖獗的扫描,确实是的。您有很多不良行为者、僵尸网络和恶意软件不断扫描 IP 地址空间,以查找具有受损 sshd 版本、易受攻击/旧 sshd 版本的服务器、具有默认/错误密码/已知后门的服务器,以及仅具有 openssh 的服务器以获取通过暴力破解或通过网络钓鱼进行双管齐下的攻击,在非特权用户中立足。

在我目前的工作中,在我的堡垒主机中通过网络钓鱼(在不同的事件中)成功进行了三次成功攻击后,我决定进行双 ssh 配置,要求所有用户在 中提供 RSA 证书sshd_config,并且只有内部网络允许密码身份验证,添加到配置文件的末尾,如下所示:

# sshd configuration allowing only RSA certificates
Match Address 10.0.0.0/8,172.16.0.0/12,192.168.0.0/24
PasswordAuthentication yes

作为另一个可怕的轶事,在我更改为强制 RSA 证书之前,其中一个网络钓鱼攻击是在恰好一周内完成的,有两次内核更新允许特权升级到 root,如果我没有当场更新,我会已被 root 入侵。(如果我没记错的话,那是在 7 月 4 日左右……黑客喜欢在假期里保存那些讨厌的攻击)

至于实时实时攻击的图表,请查看:

为了完成答案:

不,您可能不会以任何方式受到损害。

是的,您必须采取措施提高您的安全级别。我会建议从外部到您的公司 VPN 服务器的 VPN 隧道/客户端。这就是我实际上正在做的事情。

我还有最后一条重要的建议:为确保普通帐户不被盗用,请检查您的/var/log/auth.log身份验证日志以获取成功的身份验证。有一些方法可以使用任何帐户登录 openssh,而无需注册/var/log/wtmp,因此不会出现在last命令中。

不用说,如果一个普通帐户在没有更新的旧机器上被盗用,那么所有的赌注都会被取消。不幸的是,在特权升级到 root 的情况下,甚至日志也可能受到损害。

是的,你被暴力破解了。但我认为你不应该担心你检测到的来自互联网的任何暴力破解。但是,您应该担心来自您自己网络的暴力攻击。

暴力破解很常见,只要你不使用 SSH 密码(或使用好的密码),攻击根本不会成功(尤其是每 3-4 秒猜测一次)。

不过,IP (172.25.1.1) 与您在同一个网络上。这是真正的问题,你应该尽快检查这台机器是否被入侵