Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
PowerSploit — PowerSploit - 一个 PowerShell 后期渗透利用框架 | Kitploit
工具/GitHubGitHub/powershellmafia/powersploit
权限提升侦察Payload生成持久化机制横向移动Shellcode后渗透利用渗透测试Archived
GitHubpowershellmafia/powersploit

PowerSploit

PowerSploit - 一个 PowerShell 后期渗透利用框架

查看仓库
13.1k4.7k76年前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

本项目已不再支持

PowerSploit 是一组 Microsoft PowerShell 模块,可用于在评估的各个阶段帮助渗透测试人员。PowerSploit 包含以下模块和脚本:

CodeExecution

在目标机器上执行代码。

Invoke-DllInjection

将DLL注入到你选择的进程ID中。

Invoke-ReflectivePEInjection

将Windows PE文件(DLL/EXE)反射加载到PowerShell进程中,或者将DLL反射注入到远程进程中。

Invoke-Shellcode

将shellcode注入到你选择的进程ID中,或在本地PowerShell内注入。

Invoke-WmiCommand

在目标计算机上执行PowerShell脚本块,并使用WMI作为C2通道返回其格式化输出。

ScriptModification

修改和/或准备在受损机器上执行的脚本。

Out-EncodedCommand

压缩、Base-64编码并生成PowerShell有效负载脚本的命令行输出。

Out-CompressedDll

压缩、Base-64编码并输出生成的代码,以便在内存中加载托管dll。

Out-EncryptedScript

加密文本文件/脚本。

Remove-Comment

从脚本中去除注释和多余空白。

Persistence

为PowerShell脚本添加持久化功能。

New-UserPersistenceOption

为Add-Persistence函数配置用户级持久化选项。

New-ElevatedPersistenceOption

为Add-Persistence函数配置提升权限的持久化选项。

Add-Persistence

为脚本添加持久化功能。

Install-SSP

安装安全支持提供程序 (SSP) dll。

Get-SecurityPackages

枚举所有已加载的安全包 (SSP)。

AntivirusBypass

AV在PowerShell面前毫无胜算!

Find-AVSignature

利用与"class101"中DSplit相同的方法定位单字节AV签名。

Exfiltration

你的数据全都归我!

Invoke-TokenManipulation

列出可用的登录令牌。使用其他用户的登录令牌创建进程,并在当前线程中模拟登录令牌。

Invoke-CredentialInjection

使用明文凭据创建登录,而不会触发可疑的事件ID 4648(显式凭据登录)。

Invoke-NinjaCopy

通过读取原始卷并解析NTFS结构,从NTFS分区卷复制文件。

Invoke-Mimikatz

使用PowerShell在内存中反射加载Mimikatz 2.0。可用于在不向磁盘写入任何内容的情况下转储凭据。可用于Mimikatz提供的任何功能。

Get-Keystrokes

记录按下的键、时间和活动窗口。

Get-GPPPassword

通过组策略首选项推送的帐户检索明文密码和其他信息。

Get-GPPAutologon

如果通过组策略首选项推送,则从registry.xml检索自动登录用户名和密码。

Get-TimedScreenshot

一个以固定间隔截取屏幕截图并将其保存到文件夹的函数。

New-VolumeShadowCopy

创建新的卷影副本。

Get-VolumeShadowCopy

列出所有本地卷影副本的设备路径。

Mount-VolumeShadowCopy

挂载卷影副本。

Remove-VolumeShadowCopy

删除卷影副本。

Get-VaultCredential

显示Windows保管库凭据对象,包括明文Web凭据。

Out-Minidump

生成进程的全内存迷你转储。

Get-MicrophoneAudio

从系统麦克风录制音频并保存到磁盘。

Mayhem

用PowerShell制造混乱。

Set-MasterBootRecord

概念验证代码,用你选择的消息覆盖主引导记录。

Set-CriticalProcess

导致退出PowerShell时机器蓝屏。

Privesc

帮助在目标上提升权限的工具。

PowerUp

常见权限提升检查的汇总库,以及一些利用向量。

Recon

帮助在渗透测试侦察阶段使用的工具。

Invoke-Portscan

使用常规套接字进行简单的端口扫描,大致基于nmap。

Get-HttpStatus

当提供字典文件时,返回指定路径的HTTP状态码和完整URL。

Invoke-ReverseDnsLookup

扫描IP地址范围以查找DNS PTR记录。

PowerView

PowerView 是一系列执行网络和Windows域枚举与利用的函数。

Recon\Dictionaries

用于帮助渗透测试侦察阶段的字典集合。字典来自以下来源。

  • admin.txt - http://cirt.net/nikto2/
  • generic.txt - http://sourceforge.net/projects/yokoso/files/yokoso-0.1/
  • sharepoint.txt - http://www.stachliu.com/resources/tools/sharepoint-hacking-diggity-project/

License

PowerSploit 项目及所有单个脚本均采用 BSD 3-Clause 许可,除非另有明确说明。

Usage

有关详细用法信息,请参阅每个脚本中基于注释的帮助。

要安装此模块,请将整个 PowerSploit 文件夹放入你的模块目录之一。默认的PowerShell模块路径列在$Env:PSModulePath环境变量中。

默认用户模块路径为:$Env:HomeDrive$Env:HOMEPATH\Documents\WindowsPowerShell\Modules

默认计算机级模块路径为:$Env:windir\System32\WindowsPowerShell\v1.0\Modules

要使用该模块,请输入 Import-Module PowerSploit

要查看导入的命令,请输入 Get-Command -Module PowerSploit

如果你运行的是PowerShell v3,并且想去除烦人的“你真的要运行从互联网下载的脚本吗”警告,请将PowerSploit放入模块路径后,运行以下单行命令:

$Env:PSModulePath.Split(';') | % { if ( Test-Path (Join-Path $_ PowerSploit) ) {Get-ChildItem $_ -Recurse | Unblock-File} }

关于每个单独命令的帮助,Get-Help 是你的好帮手。

注意:此模块中包含的工具均设计为可单独运行。将它们包含在模块中只是为了提高可移植性。

Contribution Rules

我们需要贡献!如果你对 PowerSploit 有好的想法,我们很乐意添加。新增内容需要满足以下要求:

  • 脚本必须遵守样式指南。任何对指南的例外都需要明确且合理的理由。
  • 模块清单需要更新以反映添加的新函数。
  • 在此README.md中添加函数的简要描述。
  • 所有新函数必须附带Pester测试。有关示例,请查看Tests文件夹,但我们希望测试至少涵盖基础知识,测试预期/非预期的输入/输出,并确保函数表现出所需功能。在提交拉取请求之前,确保函数通过了所有测试(最好在多个操作系统上)。谢谢!

Script Style Guide

对于所有 PowerSploit 的贡献者和未来的贡献者,我要求你在编写脚本/模块时遵循此样式指南。

  • 不惜一切代价避免使用 Write-Host。PowerShell 函数/cmdlet 不是命令行工具!包含使用 Write-Host 代码的拉取请求将不予考虑。你应改为输出自定义对象。有关创建自定义对象的更多信息,请阅读以下文章:

    • http://blogs.technet.com/b/heyscriptingguy/archive/2011/05/19/create-custom-objects-in-your-powershell-script.aspx
    • http://technet.microsoft.com/en-us/library/ff730946.aspx
  • 如果你想在屏幕上显示相关的调试信息,请使用 Write-Verbose。用户总是可以添加 -Verbose。

  • 始终为每个脚本提供描述性的、基于注释的帮助。同时,请确保包含你的姓名和BSD 3-Clause许可(除非存在阻碍应用BSD许可的特殊情况)。

  • 确保所有函数遵循正确的PowerShell动词-名词约定。使用 Get-Verb 列出PowerShell使用的默认动词。对支持动词的例外情况将逐案考虑。

  • 我更喜欢变量名大写并尽可能具有描述性。

  • 在代码之间提供合理的间距。缩进代码以提高可读性。

  • 如果发现自己重复编写代码,请编写一个函数。

  • 捕获所有预期的错误并提供有意义的输出。如果有应停止脚本执行的错误,请使用 'Throw'。如果错误不需要停止执行,请使用 Write-Error。

  • 如果你正在编写与Win32 API交互的脚本,尽量避免使用 Add-Type 内联编译C#。如果可能,请尝试使用PSReflect模块。

  • 不要使用硬编码路径。脚本应开箱即用。除非用户愿意,否则任何人都无需修改代码。

  • 强烈希望兼容PowerShell v2。

  • 使用位置参数,并在有意义时使参数成为必需。例如,我希望看到类似以下内容:

    • [Parameter(Position = 0, Mandatory = $True)]
下载工具
  • 除非为了接收管道输入而有意义,否则不要使用任何别名。它们会使不熟悉特定别名的人更难阅读代码。

  • 尽量不让命令运行过长时间。例如,管道是一个自然断行的位置。

  • 不要过度使用内联注释。仅当代码的某些方面可能让读者感到困惑时才使用它们。

  • 与其使用 Out-Null 来抑制不需要/无关的输出,不如将不需要的输出保存到 $null。这样做可以提供轻微的性能提升。

  • 在有意义的情况下为参数使用默认值。理想情况下,你希望脚本无需任何参数即可工作。

  • 如果脚本创建复杂的自定义对象,请包含一个ps1xml文件,该文件将正确格式化对象的输出。