Sysdig 威胁研究团队 (TRT) 发现了对 2024 年 1 月 4 日发布的名为SSH-Snake的新网络映射工具的恶意使用。SSH -Snake 是一种自我修改蠕虫,它利用在受感染系统上发现的 SSH 凭据来启动在整个网络中传播。该蠕虫会自动搜索已知的凭据位置和 shell 历史文件以确定其下一步行动。SSH-Snake 被威胁行为者积极用于攻击行动。
SSH-Snake 活动可以通过运行时威胁检测工具来识别,例如 Sysdig Secure 或Open Source Falco。本文末尾有几条可用于检测此威胁的 Falco 规则。
传统 SSH 蠕虫
攻击者获得系统访问权限后最常见的策略之一是发现其他目标并尝试到达它们,称为横向移动。
在之前的研究中,我们发现了一种蠕虫,该蠕虫会寻找系统上托管的 SSH 凭据,该凭据可用于连接到另一个系统,并重复该过程。下图是LABRAT滴管中使用的示例。
SSH-Snake 通过更彻底地发现私钥,将这种横向移动概念提升到另一个层次。通过避免与脚本攻击相关的易于检测的模式,该新工具比典型的 SSH 蠕虫提供了更大的隐蔽性、灵活性、可配置性和更全面的凭证发现,因此更加高效和成功。
SSH-Snake
来自自述文件:
“🐍 SSH-Snake 是一款功能强大的工具,旨在使用系统上发现的 SSH 私钥执行自动网络遍历,目的是创建网络及其依赖关系的全面映射,确定使用 SSH 和网络可能受到损害的程度。从特定系统开始的 SSH 私钥。”
SSH-Snake 是一个 bash shell 脚本,它可以自动搜索运行它的系统以获取 SSH 凭据。一旦找到凭据,脚本就会尝试登录目标系统,然后将自身复制到那里以重复该过程。攻击者可以获得蠕虫活动的结果,攻击者可以在以后使用它们来继续他们的操作。
自修改和无文件
SSH-Snake 的一个独特之处是,它在首次运行时会进行自我修改,以使其变得更小。所有注释、空格和不必要的函数都被删除。由于 shell 脚本传递参数并允许其保持无文件的方式,这样做是出于必要。与以前的 SSH 蠕虫相比,由于扩展的功能和可靠性,其初始形式要大得多。
该脚本本质上是即插即用的,但可以轻松根据您的用例进行定制。您可以禁用和启用它的不同部分,包括用于发现私钥的不同策略以及这些私钥可能用于连接的目的地。与传统脚本不同,SSH-Snake 设计为可在任何设备上运行。它是完全自我复制和自我传播的——并且完全无文件。
收藏
SSH-Snake 使用多种方法搜索位于目标系统上的多种类型的私钥。下面的代码片段显示了 SSH-Snake 查找密钥的位置。正如您所看到的,它会查看信息源,包括Last和arp来收集目标数据。
最有趣的功能之一是find_from_bash_history ,其中搜索并解析ssh、scp和rsync命令。这些条目包含与私钥位置、凭证和目标相关的丰富知识。为了完整解释 SSH-Snake 的工作原理,作者写了一篇文章,对其进行了深入解释。
操作使用
Sysdig TRT 发现了部署 SSH-Snake 的威胁行为者的命令和控制 (C2) 服务器。该服务器拥有一个文件存储库,其中包含它们已访问的每个目标的 SSH-Snake 的输出。
在 C2 服务器上发现的文件名包含受害者的 IP 地址,这使我们能够做出高度可信的评估,这些威胁行为者正在积极利用已知的 Confluence 漏洞,以获得初始访问权限并部署 SSH-Snake。这并不排除其他漏洞的利用,但许多受害者都在运行 Confluence。
SSH-Snake 的输出包含找到的凭据、目标的 IP 以及受害者的 bash 历史记录。我们目睹受害者名单不断增加,这意味着这是一项持续的行动。截至撰写本文时,受害者人数约为100人
使用 Falco 检测 SSH-Snake
Falco是 CNCF 旗下的孵化项目,提供云原生环境中异常活动的实时检测警报。用户可以选择在 Falco 中实施默认的 Falco 规则,或使用其简单且适应性强的语言创建自己的自定义规则。
Falco 可用于检测运行时中 SSH-Snake 的使用情况,使用默认规则可以检测运行时中 SSH-Snake 的使用情况,但如果您想改进检测,也可以修改或制作新规则。在该工具上运行 SSH-Snake 时触发的默认 Falco 规则为:
- rule: Disallowed SSH connection
desc: Detect any new SSH connection on port
22
to a host other than those in an allowed list of hosts. This rule absolutely requires profiling your environment beforehand.
Condition: >
inbound_outbound
and
ssh_port
and
not
allowed_ssh_hosts
Output: Disallowed SSH Connection (connection=%fd.name lport=%fd.lport rport=%fd.rport fd_type=%fd.type fd_proto=fd.l4proto evt_type=%evt.type user=%user.name user_uid=%user.uid user_loginuid=%user.loginuid process=%proc.name proc_exepath=%proc.exepath parent=%proc.pname command=%proc.cmdline terminal=%proc.tty %container.info)
priority: NOTICE
可用性:Falco OSS、Sysdig 运行时值得注意的事件(Sysdig 安全策略)
- rule: Read sensitive file trusted after startup
condition: >
open_read
and
sensitive_files
and
server_procs
and
not
proc_is_new
and
proc.name!=
"sshd"
and
not
user_known_read_sensitive_files_activities
output: Sensitive file opened
for
reading by trusted program after startup (file=%fd.name pcmdline=%proc.pcmdline gparent=%proc.aname[
2
] ggparent=%proc.aname[
3
] gggparent=%proc.aname[
4
] evt_type=%evt.type user=%user.name user_uid=%user.uid user_loginuid=%user.loginuid process=%proc.name proc_exepath=%proc.exepath parent=%proc.pname command=%proc.cmdline terminal=%proc.tty %container.info)
priority: WARNING
可用性:Falco OSS、Sysdig 运行时值得注意的事件(Sysdig 安全策略)
- rule: System user interactive
condition: >
spawned_process
and
system_users
and
interactive
and
not
user_known_system_user_login
output: System user ran an interactive command (evt_type=%evt.type user=%user.name user_uid=%user.uid user_loginuid=%user.loginuid process=%proc.name proc_exepath=%proc.exepath parent=%proc.pname command=%proc.cmdline terminal=%proc.tty exe_flags=%evt.arg.flags %container.info)
priority: INFO
可用性:Falco OSS、Sysdig 运行时值得注意的事件(Sysdig 安全策略)
- rule: Search Private Keys
or
Passwords
condition: >
(spawned_process
and
((grep_commands
and
private_key_or_password)
or
(proc.name =
"find"
and
(proc.args contains
"id_rsa"
or
proc.args contains
"id_dsa"
or
proc.args contains
"id_ed25519"
or
proc.args contains
"id_ecdsa"
or
(services_credentials_files))))
output: Grep private
keys
or
passwords activities detected on %container.name with cmdline %proc.cmdline
and
parent %proc.pname under user %user.name
priority: WARNING
可用性:Falco OSS、Sysdig 运行时威胁检测(Sysdig 安全策略)
结论
SSH-Snake 是威胁行为者通常部署的恶意软件的一个进化步骤。它更智能、更可靠,一旦威胁行为者站稳脚跟,他们就可以更深入地进入网络。使用 SSH 密钥是 SSH-Snake 试图利用的推荐做法来进行传播。它也是无文件的,这会使静态检测变得困难。
这就是为什么需要运行时解决方案(例如 Sysdig Secure 和 Falco)。在攻击发生时立即检测到攻击可以加快调查过程,并将您的暴露风险降至最低。
https://github.com/MegaManSec/SSH-Snake
原文始发于微信公众号(Ots安全):【国外近期热点】SSH-Snake:新的蠕虫威胁
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论