使用 Smbexec 破解隐藏密码

使用 Smbexec 破解隐藏密码

我们定期撰写有关黑客如何利用漏洞的文章 没有恶意代码的黑客方法以避免被发现。 他们字面上 “在牧场上生存”,使用标准 Windows 工具,从而绕过防病毒软件和其他用于检测恶意活动的实用程序。 作为防御者,我们现在被迫应对这种巧妙的黑客技术所带来的不幸后果:一名合适的员工可以使用相同的方法来秘密窃取数据(公司知识产权、信用卡号码)。 如果他不着急,而是慢慢地、安静地工作,这将是极其困难的——但如果他使用正确的方法和适当的方法,这仍然是可能的。 工具, — 识别此类活动。

另一方面,我不想妖魔化员工,因为没有人愿意在奥威尔《1984》中的商业环境中工作。 幸运的是,有一些实用的步骤和生活技巧可以让内部人士的生活变得更加困难。 我们会考虑 隐蔽攻击方法,由具有一定技术背景的员工黑客使用。 我们将进一步讨论降低此类风险的选项 - 我们将研究技术和组织选项。

PsExec 有什么问题吗?

无论正确与否,爱德华·斯诺登已经成为内幕数据盗窃的代名词。 顺便说一句,别忘了看一下 这张纸条 关于其他也值得享有一定声誉的内部人士。 关于斯诺登使用的方法,值得强调的一个重要点是,据我们所知,他 没有安装 没有外部恶意软件!

相反,斯诺登使用了一些社会工程,并利用他作为系统管理员的职位来收集密码并创建凭据。 没什么复杂的——没有 米米卡兹, 攻击 人在这方面的中间人 или Metasploit的.

组织员工并不总是处于斯诺登的独特地位,但从“放牧生存”的理念中可以学到很多教训,要注意——不要从事任何可以检测到的恶意活动,尤其要谨慎使用凭证。 记住这个想法。

执行 和他的表弟 破解图执行程序 给无数渗透测试者、黑客和网络安全博主留下了深刻的印象。 当与 mimikatz 结合使用时,psexec 允许攻击者在网络内移动,而无需知道明文密码。

Mimikatz 拦截来自 LSASS 进程的 NTLM 哈希,然后传递令牌或凭据 - 即所谓的。 “传递哈希”攻击 – 在 psexec 中,允许攻击者以以下身份登录到另一台服务器 另一 用户。 随后每次转移到新服务器时,攻击者都会收集额外的凭据,从而扩大其搜索可用内容的能力范围。

当我第一次开始使用 psexec 时,它对我来说很神奇 - 谢谢 马克·鲁西诺维奇, psexec 的杰出开发者 - 但我也知道他的 嘈杂 成分。 他从来不隐秘!

关于 psexec 的第一个有趣的事实是它使用极其复杂的 SMB网络文件协议 来自微软。 使用 SMB,psexec 传输小数据 二进制 文件复制到目标系统,将它们放置在 C:Windows 文件夹中。

接下来,psexec 使用复制的二进制文件创建一个 Windows 服务,并以极其“意外”的名称 PSEXECSVC 运行它。 同时,您实际上可以像我一样通过观看远程计算机来看到这一切(见下文)。

使用 Smbexec 破解隐藏密码

Psexec 的电话卡:“PSEXECSVC”服务。 它运行通过 SMB 放置在 C:Windows 文件夹中的二进制文件。

最后一步,打开复制的二进制文件 RPC连接 到目标服务器,然后接受控制命令(默认通过 Windows cmd shell),启动它们并将输入和输出重定向到攻击者的家庭计算机。 在这种情况下,攻击者会看到基本的命令行 - 就像直接连接一样。

很多组件和一个非常嘈杂的过程!

psexec 的复杂内部结构解释了几年前第一次测试时令我困惑的消息:“正在启动 PSEXECSVC...”,然后在命令提示符出现之前暂停。

使用 Smbexec 破解隐藏密码

Impacket 的 Psexec 实际上显示了幕后发生的事情。

毫不奇怪:psexec 在幕后做了大量的工作。 如果您有兴趣了解更详细的解释,请查看此处 通过这个 精彩的描述。

显然,当用作系统管理工具时, 最初的目的 psexec,所有这些 Windows 机制的“嗡嗡声”并没有什么问题。 然而,对于攻击者来说,psexec 会造成麻烦,而对于像斯诺登这样谨慎而狡猾的内部人士来说,psexec 或类似的实用程序风险太大。

然后是 Smbexec

SMB 是一种在服务器之间传输文件的巧妙而秘密的方式,几个世纪以来黑客一直在直接渗透 SMB。 我想每个人都已经知道这是不值得的 打开 SMB 端口 445 和 139 连接到互联网,对吗?

在 Defcon 2013 上,Eric Millman (布拉夫0哈克斯) 呈现 SMB执行程序,以便渗透测试人员可以尝试秘密的 SMB 黑客攻击。 我不知道整个故事,但后来Impacket进一步完善了smbexec。 事实上,为了进行测试,我从 Impacket in Python 下载了脚本 Github上.

与 psexec 不同,smbexec 避免 将可能检测到的二进制文件传输到目标计算机。 相反,该公用事业公司完全从牧场到发射 当地 Windows 命令行。

它的作用是这样的:它通过 SMB 将命令从攻击机器传递到特殊的输入文件,然后创建并运行 Linux 用户熟悉的复杂命令行(如 Windows 服务)。 简而言之:它启动本机 Windows cmd shell,将输出重定向到另一个文件,然后通过 SMB 将其发送回攻击者的计算机。

理解这一点的最好方法是查看命令行,我可以从事件日志中获取命令行(见下文)。

使用 Smbexec 破解隐藏密码

这不是重定向 I/O 的最佳方式吗? 顺便说一句,服务创建的事件 ID 为 7045。

与 psexec 一样,它也创建一个完成所有工作的服务,但之后的服务 已移除 – 它只使用一次来运行命令,然后就消失了! 监控受害者机器的信息安全人员将无法检测到 明显的 攻击指标:没有启动恶意文件,没有安装持久服务,并且没有使用 RPC 的证据,因为 SMB 是唯一的数据传输方式。 杰出的!

从攻击者的角度来看,可以使用“伪 shell”,在发送命令和接收响应之间存在延迟。 但这对于攻击者(无论是内部人员还是已经站稳脚跟的外部黑客)来说已经足够开始寻找有趣的内容了。

使用 Smbexec 破解隐藏密码

为了将数据从目标机器输出回攻击者的机器,使用 客户端。 是的,这就是同一个桑巴舞 效用,但仅通过 Impacket 转换为 Python 脚本。 事实上,smbclient 允许您通过 SMB 秘密托管 FTP 传输。

让我们退一步思考一下这可以为员工做些什么。 在我虚构的场景中,假设博主、金融分析师或高薪安全顾问可以使用个人笔记本电脑进行工作。 由于某种神奇的过程,她对公司感到不满,并且“一切都变糟了”。 根据笔记本电脑操作系统的不同,它可以使用 Impact 的 Python 版本,也可以使用 Windows 版本的 smbexec 或 smbclient 作为 .exe 文件。

和斯诺登一样,她要么通过回头查看来发现另一个用户的密码,要么她很幸运,偶然发现了一个包含密码的文本文件。 在这些凭据的帮助下,她开始以新的权限级别挖掘系统。

黑客 DCC:我们不需要任何“愚蠢”的 Mimikatz

在我之前关于渗透测试的文章中,我经常使用 mimikatz。 这是拦截凭据的绝佳工具 - NTLM 哈希值,甚至隐藏在笔记本电脑内等待使用的明文密码。
时代变了。 监控工具在检测和阻止 mimikatz 方面已经变得更好。 信息安全管理员现在还有更多选择来降低与哈希传递 (PtH) 攻击相关的风险。
那么,聪明的员工应该如何做才能在不使用 mimikatz 的情况下收集额外的凭证呢?

Impacket 的套件包括一个名为 秘密转储,它从域凭据缓存(简称 DCC)检索凭据。 我的理解是,如果域用户登录服务器但域控制器不可用,DCC允许服务器对用户进行身份验证。 无论如何,secretsdump 允许您转储所有这些哈希值(如果可用)。

DCC 哈希值是 不是 NTML 哈希值 不能用于Pth攻击.

好吧,你可以尝试破解他们以获取原始密码。 然而,微软在 DCC 方面变得更加聪明,并且 DCC 哈希值变得极难破解。 是的,我有 hashcat,“世界上最快的密码猜测器”,但它需要 GPU 才能有效运行。

相反,让我们尝试像斯诺登一样思考。 员工可以进行面对面的社会工程,并可能找到有关她想要破解其密码的人的一些信息。 例如,查明该人的在线帐户是否曾被黑客入侵,并检查其明文密码是否有任何线索。

这就是我决定采用的场景。 假设一名内部人士得知他的老板 Cruella 在不同的网络资源上多次遭到黑客攻击。 在分析了其中几个密码后,他意识到克鲁拉更喜欢使用棒球队名称“Yankees”后跟当前年份的格式 - “Yankees2015”。

如果您现在尝试在家重现此内容,那么您可以下载一个小“C” ,它实现了DCC哈希算法,并编译它。 开膛手约翰对了,增加了对DCC的支持,所以也可以用。 让我们假设一个内部人士不想费心去学习 John the Ripper 并且喜欢在遗留的 C 代码上运行“gcc”。

我假装是内部人士,尝试了几种不同的组合,最终发现 Cruella 的密码是“Yankees2019”(见下文)。 任务完成!

使用 Smbexec 破解隐藏密码

一点点社会工程、一点算命和一点 Maltego,你就可以顺利破解 DCC 哈希了。

我建议我们到这里就结束了。 我们将在其他文章中回到这个主题,并研究更慢、更隐蔽的攻击方法,继续以 Impacket 的优秀实用程序集为基础。

来源: habr.com

添加评论