.hta文件的后渗透利用(绕过PowerShell的限制模式)

  • A+
所属分类:网络安全文章

应用白名单绕过

“hta”代表“HTML应用程序”,除了使用mshta.exe运行外,它与普通的HTML页面基本相同并且支持其他的脚本语言。mshta.exe是在windows自带的应用程序,通常在应用程序的白名单中。所以,我们可以使用其他的脚本语言(特别是vb sc ript)做很多有趣的事情。

假设您处于一个无法访问命令行或PowerShell的环境中,您想做一些简单的事情,比如ping一台电脑。您可以使用包含以下内容的hta文件:

  1. <sc ript LANGUAGE="vb sc ript">
  2. Set cmd = Createob ject("Wsc ript.Shell")
  3. cmd.run("ping 1.1.1.1")
  4. </sc ript>

上面的hta文件不是很完美…你可以看到命令在另一个窗口中打开运行,并且在它完成后立即消失,使得读取其输出变得困难。我们可以通过捕获命令的输出并在HTML应用程序中显示以下内容来更好地实现这一点:
.hta文件的后渗透利用(绕过PowerShell的限制模式)
这个hta文件使用“Wsc ript.Shell”运行命令,与使用cmd不同。所以内建的函数,如dir无法运行,而且也不能执行复合命令(例如ping 1.1.1.1 && pause),所以让我们继续尝试。

使用.hta运行PowerShell或c

要运行PowerShell命令。我们可以使用c#的管道类。要在锁定的系统上运行任意的c#命令,我们将使用我在NOTSOSECURE的高级基础设施黑客课程中学到的技术。我们可以使用InstallUtil.exe(内置的windows程序),用于在卸载任意可执行文件。此外,我们将使用另一个内置在window程序csc.exe,来编译任意c#代码。手工一步步完成以上操作是一种痛苦,而且很难记住,所以我们使用.hta来打包所有的步骤。完成后的hta文件将执行以下步骤:

  1. 1.写一些c#代码到一个文件,c#包含一个卸载钩子
  2.  2.使用csc.exe将步骤1中的c#代码编译为.exe
  3.  3.编写你需要运行的PowerShell命令到文件中。c#卸载钩子将读取这些命令并在管道中执行它们
  4.  4.uninstallUtil.exe将在第2步的exe上使用Wsc ript.Shell对象执行命令
  5.  5.在HTML应用程序中显示uninstallUtil的输出。

值得一提的是,通过c#管道运行PowerShell绕过了限制模式。所以你可以使用powershell.hta运行某些渗透测试工具,否则会被阻塞;-)

隐藏hta

我通常不需要隐藏,但如果你需要,你可以在一个隐藏窗口运行hta,payload下:

  1. <sc ript LANGUAGE="vb sc ript">
  2. set a = Createob ject("Wsc ript.Shell")
  3. visible = false
  4. a.run "mshta.exe ""file:///evil.hta""", visible
  5. window.close()
  6. </sc ript>

虽然不会有可见的窗口,但是mshta.exe的进程将出现在任务管理器中,这在任务管理器看起来应该像一个疼痛的大拇指一样突出…

非文件化hta

甚至根本不需要hta文件!mshta.exe能解析ja vasc ript,因此您可以使用类似于下面的命令来运行渗透工具,而且不需要在磁盘上运行文件。

  1. mshta.exe ja vasc ript:“<language=vb sc ript>createob ject(\"Wsc ript.Shell\").run(\"calc \")\r\nclose()</sc ript>

持久性

在Windows 10(以及Windows Server 2016)中,Windows在关闭计算机之前会重新启动一些正在运行的应用程序。下次登录系统时,它会自动运行这些应用程序。可以通过在系统关闭之前向run-once注册表键写入一个实体来实现这一点。

mshta.exe是可以利用这个特性的程序之一。你可以滥用这个来让windows为你保驾护航!不幸的是,Windows无法恢复使用Wsc ript.Shell脚本的mshta,这样您就不能轻松地执行隐式持久化(即运行您的mshta)。但是它确实可以与ja vasc ript URI一起工作,所以您可以实现某种隐形的无文件持久性(run-once注册表键只在系统启动和用户登录之间出现)。

  • 服务器购买微信群
  • 阿里云&腾讯云&国外VPS
  • weinxin
  • 服务器购买QQ群
  • 阿里云&腾讯云&国外VPS
  • weinxin
CE安全网

发表评论

您必须登录才能发表评论!