mshta usage

【渗透测试笔记】之【免杀工具——ScareCrow】 项目地址 https://github.com/optiv/ScareCrow 安装方法 首先安装:golang、openssl、osslsigncode、mingw-w64 apt install golang openssl osslsigncode mingw-w64 -y 下载源码:https://github.com/optiv/ScareCrow/tags 进入根目录编译 go env -w GOPROXY=https://goproxy.cn # 使用国内原 go build Sca 阅读详情
  • mshta is short for MicroSoft Html Application. It could run html file or html string as a parameter.
  • what is interesting is you can use it in a batch command or batch file and you can use some functions like in the browser such as show a dialog and so on.
  • with mshta you can run javascript code and vbscipt code in windows command line or batch file.

Example 1, show a message box in many different ways.

mshta javascript:window.execScript("msgBox('hello world!'):window.close","vbs") 
mshta vbscript:window.execScript("alert('hello world!');close()","javascript") 
mshta vbscript:window.execScript("msgBox('hello world!'):window.close","vbs")
mshta javascript:alert("hello world!");close()
mshta vbscript:msgbox("hello world!",64,"Title")(window.close)
mshta vbscript:CreateObject("Wscript.Shell").popup("hello world!",7,"Title",64)(window.close) 

Example 2, execute more than one commands in one line.(In fact this already shows in Example 1, you must find it, it is the close command.)

mshta vbscript:execute("msgbox ""BOX one"":msgbox ""BOX two"":window.close") 
mshta vbscript:(msgbox("BOX one"))(msgbox("BOX two")(window.close))
mshta javascript:alert("BOX one",);alert("BOX two");close()
mshta javascript:execScript("msgBox('BOX one'):msgBox('BOX two'):window.close","vbs")

Example 3, use ActiveXObject in script to use more sophisticated functions of the OS.

mshta vbscript:createobject("sapi.spvoice").speak("Hello, I am tom, let's do something fun.")(window.close) 
mshta "javascript:close((V=(v=new ActiveXObject('SAPI.SpVoice')).GetVoices()).count&&v.Speak('Hello! I am '+V(0).GetAttribute('Gender')))"

Example 4, javascript is much more easy to use, because you do not have to add so many double qoutes like in vbscript.

mshta "javascript:var objFSO=new ActiveXObject('Scripting.FileSystemObject'); var objFile = objFSO.CreateTextFile('test.txt',true); objFile.Write('Hello World.');objFile.Close();close();"
mshta "javascript:var sh=new ActiveXObject( 'WScript.Shell' ); sh.Popup( 'hello world!', 10, 'Title!', 64 );close()"

Example 5, several ways to calculate the free memory of your computer.

mshta "javascript:close(new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1).Write(GetObject('winmgmts:').ExecQuery('Select * from Win32_PerfFormattedData_PerfOS_Memory').ItemIndex(0).AvailableBytes));"|more
for  /f "usebackq" %a in (`mshta ^"javascript^:close^(new ActiveXObject^(^'Scripting.FileSystemObject^'^).GetStandardStream^(1^).Write^(GetObject^(^'winmgmts:^'^).ExecQuery^(^'Select * from Win32_PerfFormattedData_PerfOS_Memory^'^).ItemIndex^(0^).AvailableBytes^)^);^"^|more`) do set free_mem=%a
mshta "javascript:close(new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1).Write(GetObject('winmgmts:').ExecQuery('Select * from Win32_PerfFormattedData_PerfOS_Memory').ItemIndex(0).AvailableMBytes));"|for /f %%a in ('more') do set free_mem=%%a

Example 6, another way to calculate free memory.

@echo off
setlocal
:: Define simple macros to support JavaScript within batch
set "beginJS=mshta "javascript:close(new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1).Write("
set "endJS=));""
:: Direct instantiation requires that output is piped
%beginJS% GetObject('winmgmts:').ExecQuery('Select * from Win32_PerfFormattedData_PerfOS_Memory').ItemIndex(0).AvailableBytes %endJS% | findstr "^"
:: FOR /F does not need pipe
for /f %%N in (
  '%beginJS% GetObject('winmgmts:').ExecQuery('Select * from Win32_PerfFormattedData_PerfOS_Memory').ItemIndex(0).AvailableBytes %endJS%'
) do set free_mem=%%N
echo free_mem=%free_mem%

Example 7, show color pallets dialog.

mshta "about:<script>function b(){new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1).Write(d.ChooseColorDlg().toString(16));close();}</script><body onload='b()'><object id='d' classid='clsid:3050f819-98b5-11cf-bb82-00aa00bdce0b'></object></body>"|more 

Example 8, show screen resolution.

mshta "javascript:res=screen.width+'x'+screen.height;alert(res);close();" 1 | more

Example 9, use clipboard data.

for /f "usebackq tokens=1,* delims=[]" %i in (`mshta "javascript:close(new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1).Write(clipboardData.getData('Text')));"^|find /v /n ""`) do @set "c[%i]=%j" 

Example 10, use javascript setTimeout to delay some time interval to execute a command.

mshta javascript:setTimeout('close()',10000)

Example 11, show File Open Select Dialog, you can redirect your output to the command window or to a file or to a variable.

mshta "about:<input type=file id=FILE><script>FILE.click();new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1).WriteLine(FILE.value);close();resizeTo(0,0);</script>"|more

mshta "about:<input type=file id=FILE><script>FILE.click();new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1).WriteLine(FILE.value);close();</script>">test.txt

mshta "about:<input type=file id=FILE><script>FILE.click();new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1).WriteLine(FILE.value);close();</script>">temp && set /p a=<temp

for /f "delims=" %%i in ('mshta "about:<input type=file id=FILE><script>FILE.click();new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1).WriteLine(FILE.value);close();</script>"') do set a=%%i

Example 12, show Open For Folder Dialog to select a directory, and you can assign it to a variable.

for /f "delims=" %%i in ('mshta "javascript:var folder=new ActiveXObject("Shell.Application").BrowseForFolder(0,'选择要处理的文件夹', 0, '').self.path;new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1).WriteLine(folder);close();"') do set input=%%i

Example 13, execute batch command with parameters which has spaces.

::a.bat
@echo off
set text=Hello World
mshta vbscript:createobject("WScript.Shell").Run("b.bat "+"""%text%""",0)(window.close)
::b.bat
@echo off
mshta "javascript:var sh=new ActiveXObject( 'WScript.Shell' ); sh.Popup( '%~1', 10, 'Title!', 64 ); close()"

Example 14, ultimate function, run a html file.

<!-- :: Batch section
@echo off
setlocal
echo Select an option:
for /F "delims=" %%a in ('mshta.exe "%~F0"') do set "HTAreply=%%a"
echo End of HTA window, reply: "%HTAreply%"
goto :EOF
-->

<HTML>
<HEAD>
<HTA:APPLICATION SCROLL="no" SYSMENU="no" >

<TITLE>HTA Radio Buttons</TITLE>
<SCRIPT language="JavaScript">
window.resizeTo(440,170);

var reply = "No button selected";
function closeHTA(){
   var fso = new ActiveXObject("Scripting.FileSystemObject");
   fso.GetStandardStream(1).WriteLine(reply);
   window.close();
}

</SCRIPT>
</HEAD>
<BODY>
<p>Which prize do you prefer?</p>
<label><input type="radio" name="prize" onclick="reply=this.value" value="House">House</label>
<label><input type="radio" name="prize" onclick="reply=this.value" value="Money">$1 million</label>
<label><input type="radio" name="prize" onclick="reply=this.value" value="None">No prize thanks, I'm already happy <b>:)</b></label>
<br><br>
<button onclick="closeHTA();">Submit</button>
</BODY>
</HTML>

reference1
reference2
reference3

使用mshta调用js或vbs脚本隐藏cmd窗口 【代码】使用mshta调用js或vbs脚本隐藏cmd窗口。 阅读详情

相关推荐

ros_control硬件接口实战:从零构建机器人控制框架

本文详细介绍了ros_control硬件接口在机器人控制框架中的核心作用与实践方法。通过解析硬件接口类型、实现标准接口、构建主控制循环及自定义功能扩展,帮助开发者从零构建高效的机器人控制系统,提升硬件与ROS的协同效率。

lstm7chronicler的博客 500

详细介绍ChooseColor()

书籍:《Visual C++ 2017从入门到精通》的2.3.8 Win32控件编程环境:visual studio 2022内容:【例2.32】颜色选择对话框说明:以下内容大部分来自腾讯元宝。是 Windows API 中用于显示颜色选择对话框的函数,允许用户通过图形界面自定义颜色。

felicity_one的博客 566

PointNet/PointNet++模型调参实战:如何用PyTorch让你的点云分割精度再涨5个点?

本文深入探讨了PointNet/PointNet++模型在点云分割中的调参技巧,通过PyTorch实现精度提升5个点的实战方法。重点分析了点云密度自适应策略、感受野与细节保留的平衡,以及训练加速与稳定性技巧,适用于电力巡检、自动驾驶等场景的激光点云数据处理。

weixin_30836759的博客 477

js色彩选择如何实现

第一种:                       在颜色选取                                  var       sInitColor       =       null;           function       callColorDlg(){                   if       (sInit

笨鸟快飞的专栏 729

自适应滤波算法综述

自适应滤波算法综述

xdzhujy的博客 5万+

抖音中动态生成msToken的方法

抖音中动态生成msToken的方法

sh_moranliunian的博客 2483

js调用系统调色板

function colorpicker() {    var sColor_tmp,sColor,color_len;    sColor_tmp=dlgHelper.ChooseColorDlg().toString(16);    color_len = sColor_tmp.length;    switch(color_len){                case 1:      

Tong's blog 3922

SAP 针对不同行业(制造业、零售业、金融业)推出了专属的云解决方案,以下是各行业的核心方案与特点

SAP推出行业专属云解决方案:制造业(SAP Digital Manufacturing Cloud)提供AI排产与质量预警,降低缺陷率;零售业(S/4HANA Cloud零售版)实现AI预测补货与全渠道库存同步,减少浪费;金融业(Business ByDesign)支持合规自动化与实时风控,降低审计成本。各方案均采用云原生架构,典型案例显示实施效果显著。

金牌架构师 491

HTML 中的几个小知识

1.div 自适应高度问题    在做过web前端开发的都知道,在div + Css 布局中经常用到 float 浮动布局,可以使页面公整,美观。但是随之而来就带来一些问题:    (1). 自适应高度问题          BackGround:                  如果没有克服这个问题,当要展示的数据超过div的高度的时候,那它超出的部分是会漂浮在下层的div上面的,这样

wodetiankong516的博客 911

【学习系列】SAP RAP 22:Excel文件上传和读取(非扩展&扩展方式)

本文介绍了在RAP中实现Excel文件上传处理的三种方法:1) 使用@Semantics.largeObject注解实现简单上传下载,但限制在ObjectPage页面使用;2) 通过自定义action弹窗实现上传功能,但存在无法自动刷新列表等限制;3) 结合CustomUIExtension实现更灵活的完整功能,但需要UI5开发技能。文章详细说明了每种方法的实现步骤,包括数据库表设计、注解配置、前端界面开发和后端处理逻辑,并比较了各自的优缺点。最后通过一个处理不同币种数据的示例,展示了如何实现业务处理逻辑。

DeveloperMrMeng的博客 623

YOLOv5基于深度学习的道路缺陷检测系统

然而,由于长期的自然侵蚀、车辆磨损等因素,道路表面容易出现裂缝、坑洼等缺陷。这些缺陷不仅会影响驾驶舒适性,还可能引发交通事故,尤其是在恶劣天气或夜间行车条件下。随着人工智能技术的快速发展,基于深度学习的道路缺陷检测技术能够在降低人力成本的同时提高检测效率,为道路维护提供了新的解决方案。本项目构建了基于YOLOv5的道路缺陷检测系统,结合PyQt5开发了用户友好的UI界面,具备实时检测和图片分析功能。工具对图片进行标注,生成YOLO格式的标注文件。上传包含道路裂缝或坑洼的图片,系统会标注出缺陷的位置及类别。

YOLO 1076

几个颜色选择器

 //var  sInitColor  =  null;function  callColorDlg(sInitColor){if  (sInitColor  ==  null)  //display  color  dialog  box var  sColor  =  dlgHelper.ChooseColorDlg();else var  sColor

tmac_的专栏 305

【大模型应用开发-FastAPI框架】(八)Sqlalchemy+postgresql简单增删改查

语言,为高效和高性能的数据库访问设计,实现了完整的企业级持久模型”。SQLAlchemy的理念是,的量级和性能重要于对象集合;而对象集合的抽象又重要于表和行。因此,SQLAlchemy采用了类似于。社区中成为广泛使用的ORM工具之一,不亚于Django的ORM框架。和declarative等可选插件可以让用户使用声明语法。SQLAlchemy首次发行于2006年2月,并迅速地在。SQLAlchemy“采用简单的。二、安装postgresql。一、SQLAlchemy简介。的数据映射模型,而不是其他。

2098

Microsoft-365-Defender-Hunting-Queries与MITRE ATT&CK框架的完美结合:提升企业威胁狩猎能力的终极指南

Microsoft-365-Defender-Hunting-Queries是一套专为Microsoft 365 Defender高级狩猎功能设计的查询样本集合,它与MITRE ATT&CK框架的结合为企业安全团队提供了强大的威胁检测与响应能力。本文将详细介绍如何利用这两个工具的协同作用,构建全面的安全防御体系。 ## 什么是Microsoft-365-Defender-Hunting-Quer

gitblog_00820的博客 608

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

信息安全事件监测方面的专业知识如何帮助创造优质产品

PT Expert Security Center 的知识如何帮助 MaxPatrol SIEM 更好地检测攻击

ptsecurity的博客 1706

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

远控免杀专题(16)-Unicorn免杀

0x01 免杀能力一览表 几点说明: 1、上表中标识 √ 说明相应杀毒软件未检测出病毒,也就是代表了Bypass。 2、为了更好的对比效果,大部分测试payload均使用msf的windows/meterperter/reverse_tcp模块生成。 3、由于本机测试时只是安装了360全家桶和火绒,所以默认情况下360和火绒杀毒情况指的是静态+动态查杀。360杀毒版本5.0.0.8160(202...

qq_41683305的博客 1195

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

批处理教程

批处理文件是无格式的文本文件,它包含一条或多条命令。它的文件扩展名为 .bat 或 .cmd。在命令提示下键入批处理文件的名称,或者双击该批处理文件,系统就会调用Cmd.exe按照该文件中各个命令出现的顺序来逐个运行它们。使用批处理文件(也被称为批处理程序或脚本),可以简化日常或重复性任务。当然我们的这个版本的主要内容是介绍批处理在入侵中一些实际运用,例如我们后面要提到的用批处理文件来给系

Execute的专栏 1017

批处理(bat)脚本Snippets

开头的字符串认为是八进制的数。直接截取时间字符串中的秒数给变量赋值时,如果时间是08或09秒就会报错,因为八进制中没有。数字常数只能是十进制(17),十六位进制(0x11)或八进制(021)。命令给变量赋值时,会把。

stayor的专栏 1235

windows 命令行下直接执行javascript语句

写hta  脚本时偶然发现的   一般可以用 mshta 后面加参数来执行js 语句    例如: mshta  "javascript:alert(0)window.close();" 但是这样有个问题 会弹出一下hta的窗口.. 现在的解决办法是加上 document.write() 不太清楚原理,是我偶然试出来的. 个人感觉是直接用write方法清空了页面的内容 所以

Karl's blog! 5879

windows下bat脚本执行javascript或vbscript

windows下bat脚本执行javascript或vbscript

Phoebus2617的博客 804

java 环境变量 批处理,想写一个批处理来实现配置java环境变量,求大神帮忙

设置JAVA环境变量window.resizeTo(400, 90);function getfolder(){var stdout=new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1)var Shell = new ActiveXObject("Shell.Application");var Folder = S...

weixin_34765290的博客 143

cscript 执行代码_在Windows上执行恶意代码 by cscript&mshta

Windows自带的可执行文件+合理构造的payload脚本=获得会话cscript简介在cscript.exe来寻找和连接脚本的运行库,最常见的有VBScript和JavaScript。WSH环境包括两个脚本宿主:基于控制台的CScript和基于GUI的WScript。这两个脚本宿主提供几乎相同的功能,在大多数情况下,使用哪个脚本宿主来运行脚本并不重要。两个例外在于您如何与脚本交互; 也就是说,...

weixin_28950403的博客 1684

vbs打开文件对话框

Function SelectFile() Set wShell=CreateObject("WScript.Shell") Set oExec=wShell.Exec("mshta.exe ""about:FILE.click();new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1).WriteLine(FI

baiyangliu 4571

IE自动跳转Edge最新解决方案

HTA是HTML Application的缩写(HTML应用程序),是软件开发的新概念,直接将HTML保存成HTA的格式,就是一个独立的应用软件,与VB、C++等程序语言所设计的软件界面没什么差别。mshta.exe是微软Windows操作系统相关程序,英文全称Microsoft HTML Application,可翻译为微软超文本标记语言应用,用于执行.HTA文件。新建→快捷方式→位置C:\Windows\System32\mshta.exe javascript:open();百度解释MSHTA如下。

m0_64521594的博客 1314

javascript不依赖库开发windows应用程序

其实javascript不仅可以做网页应用,也可以不依赖任何环境开发windows应用程序。windows系统自带mshta.exe,相当于一个javascript虚拟机,我们把.html文件扩展名改成.hta文件,网页就变成了hta应用程序,双击就可以执行。当然hta可以操作本地文件数据库等,功能比html强大许多,可以开发C/S应用程序。本人之前是个后台程序员,后来考上公务员之...

sdxjwkq01的博客 3719
上一篇: Caused by: java.lang.UnsatisfiedLinkError: Cannot load library
下一篇: WinRAR SFX Commands
SingingCoder
博客等级 码龄15年 9粉丝 32原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值