脚本编写与执行
开始之前
我们在开始之前先来介绍在windows平台中常用到的几种脚本
Bat
这就是我们常用的Bat脚本,全名为批处理文件,脚本中就是我们在CMD中使用到的命令,这里提一个小问题: CMD的命令行执行命令的优先级是.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH
,那么假如我通过修改PATHEXT解析顺序后放一个cmd.bat在system32目录下,那么优先执行的是cmd.bat,这里面的内容就变得不可描述起来了
VBscript
执行vbs就是常说的vbscript,是微软为了方便自动化管理windows而推出的脚本语言,这里了解一下即可,不是文章重点。
Powershell
这就是我们的主角,在现在和未来一定是powershell占据主要地位(对于这一点搞Win多一点的朋友一定不会怀疑),首先我们来看一个简单的例子
Powershell执行策略
那么你可能会在调用脚本的时候出现报错,这是powershell的安全执行策略,下面我们来了解一下执行策略: PowerShell 提供了 Restricted、AllSigned、RemoteSigned、Unrestricted、Bypass、Undefined 六种类型的执行策略 简单介绍各种策略如下:
那么我们如何绕过这些安全策略呢?下面提供几种方法,网上还有很多的绕过方法,大家可以自行研究:
powershell的脚本调用方法:
如果脚本是直接写的代码而不是只定义了函数那么直接执行脚本.\script.ps1即可
但是如果是载入里面的函数需要
.+空格+.\script.ps1
或者使用Import-Module .\script.ps1, 这样才能直接使用脚本的函数
通过控制台执行Powershell
对于我们安全测试人员通常获取到的一个Shell是CMD的, 那么我们想要尽可能少的操作就可以直接通过控制台来执行powershell的命令, 那么先来看一个简单的例子:
最后举一个执行Base64代码的例子:
我们先试用上面一个表格提到的编码代码编码命令
whoami
, 得到字符串:dwBoAG8AYQBtAGkACgA=
通过下面的命令来执行代码
那么这种需求在什么地方呢? 比如我们的代码特别长或者会引起一起歧义的时候就需要我们使用这种方式去执行, 同时也是一个混淆的方式。
最后更新于