PowerShell渗透测试工具之PowerSploit

admin 2025年5月30日12:58:04评论34 views字数 3138阅读10分27秒阅读模式
严正声明

本号所写文章方法和工具只用于学习和交流,严禁使用文章所述内容中的方法未经许可的情况下对生产系统进行方法验证实施,发生一切问题由相关个人承担法律责任,其与本号无关。

特此声明!!!

PowerSploit 是一套高级的 PowerShell 渗透测试框架,包含了一系列模块化且高度自定义的安全工具,旨在帮助渗透测试人员和红队成员利用 PowerShell 实现权限提升、后门植入、信息收集等功能。

powershell是一种命令行外壳程序和脚本环境,使命令行用户和脚本编写者可以利用 .NET Framework的强大功能,PowerShell脚本的文本文件,其文件名需要加上扩展名“.PS1”。PowerShell脚本可以运行在内存中,不需要写入磁盘。几乎不会触发杀毒软件。而且可以远程执行。使得Windows的脚本攻击变得更加容易。cmd.exe通常会被阻止运行,但是PowerShell不会。

Powershell有许多功能,我只举几个比较常用的:

管道和重定向

管道是把上一条命令的输出作为下一条命令的输入。

PowerShell渗透测试工具之PowerSploit

例如通过ls获取当前目录的所有文件信息,然后通过Sort -Descending对文件信息按照Name降序排列,最后将排序好的文件的Name和Mode格式化成Table输出。

PowerShell渗透测试工具之PowerSploit

重定向是把命令的输出保存到文件中,‘>’为覆盖,’>>’追加。

PowerShell渗透测试工具之PowerSploit
Powershell可运行文件和脚本

脚本和批处理都属于伪可执行文件,它们只是包含了若干命令行解释器能够解释和执行的命令行代码。

执行批处理文件:批处理是扩展名为”.bat”的文本文件,它可以包含任何cmd控制台能够处理的命令。当批处理文件被打开,Cmd控制台会逐行执行每条命令。PowerShell不能直接解释执行.bat批处理文件,但可以通过以下方式间接执行。PowerShell可以启动cmd.exe 来执行.bat文件。输入./文件名.bat。

在.bat文件目录中打开cmd进入cmd控制台,输入ping会发现执行的不是ping命令,而是直接运行.bat ,也就是说可以通过.bat 覆盖cmd命令。这种机制很危险,如果有人侵入电脑,并将系统内部命令篡改成自己批处理,那就太悲剧了。 这种命令与脚本的混淆不会发生在powershell中,因为powershell有更安全的机制。所以说有了powershell,可以禁用cmd.exe。

PowerSploit 的核心技术基于 PowerShell,应用于 Windows 系统管理。

通过 PowerShell,PowerSploit 能够实现以下技术功能:

代码执行:包括 DLL 注入、反射式 PE 文件加载、Shellcode 注入等,能够在目标机器上执行任意代码。

  • Invoke-DllInjection:将Dll注入到您选择的进程ID中。
  • Invoke-ReflectivePEInjection:反射性地将Windows PE文件(DLL/EXE)加载到PowerShell进程中,或者反射性地向远程进程注入DLL。
  • Invoke-Shellcode:将shellcode注入到您选择的进程ID中或在本地PowerShell中注入。
  • Invoke-WmiCommand:使用WMI作为C2通道,在目标计算机上执行PowerShell脚本块,并返回格式化的输出。

脚本修改:提供压缩、Base-64 编码、加密等功能,帮助渗透测试人员准备和修改脚本以适应不同的执行环境。

  • Out-EncodedCommand:压缩、Base-64编码PowerShell负载脚本,并生成命令行输出。
  • Out-CompressedDll:压缩、Base-64编码并输出用于内存中加载托管DLL的生成代码。
  • Out-EncryptedScript:加密文本文件/脚本。
  • Remove-Comment:从脚本中移除注释和多余的空白。

持久化:通过配置用户级和高权限持久化选项,确保脚本在目标系统上的持续运行。

  • New-UserPersistenceOption:为Add-Persistence函数配置用户级持久化选项。
  • New-ElevatedPersistenceOption:为Add-Persistence函数配置提升权限的持久化选项。
  • Add-Persistence:为脚本添加持久化能力。
  • Install-SSP:安装安全支持提供程序(SSP) DLL。
  • Get-SecurityPackages:枚举所有加载的安全包(SSPs)。

反病毒绕过:利用 PowerShell 的灵活性,绕过常见的反病毒软件检测。

  • Find-AVSignature:定位单字节防病毒签名。

数据外泄:提供多种数据外泄手段,如凭据注入、Mimikatz 集成、键盘记录等。

  • Invoke-TokenManipulation:列出可用的登录令牌,用其他用户的登录令牌创建进程,并模仿当前线程中的登录令牌。
  • Invoke-CredentialInjection:使用明文凭据创建登录,而不触发可疑的Event 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:显示包括清晰的Web凭据在内的Windows保管库凭据对象。
  • Out-Minidump:生成进程的完整内存dump。
  • Get-MicrophoneAudio:从系统麦克风录制音频并保存至磁盘。

制造混乱:通过修改主引导记录、蓝屏等手段,制造系统混乱。

  • Set-MasterBootRecord:概念验证代码,覆盖您选择的消息于主引导记录。
  • Set-CriticalProcess:当退出PowerShell时,导致您的计算机蓝屏。

权限提升:提供多种权限提升工具,帮助渗透测试人员获取更高的系统权限。

  • PowerUp:收集常见的特权提升检查和一些武器化向量。

侦察:包括端口扫描、HTTP 状态码检测、DNS 反向查询等,帮助渗透测试人员收集目标系统的信息。

  • Invoke-Portscan:使用常规套接字进行简单的端口扫描,基于(nmap)的较宽松实现。
  • Get-HttpStatus:当提供词典文件时,返回指定路径的HTTP状态码和完整URL。
  • Invoke-ReverseDnsLookup:扫描IP地址范围查找DNS PTR记录。
  • PowerView:一系列执行网络和Windows域枚举与利用的函数。

在红队演练中,PowerSploit 可以作为红队工具箱的一部分,模拟真实攻击者的行为,评估组织的防御能力。

下载

https://github.com/PowerShellMafia/PowerSploit

原文始发于微信公众号(老付话安全):PowerShell渗透测试工具之PowerSploit

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年5月30日12:58:04
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   PowerShell渗透测试工具之PowerSploithttps://cn-sec.com/archives/3942428.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息