特此声明!!!
PowerSploit 是一套高级的 PowerShell 渗透测试框架,包含了一系列模块化且高度自定义的安全工具,旨在帮助渗透测试人员和红队成员利用 PowerShell 实现权限提升、后门植入、信息收集等功能。
管道和重定向
管道是把上一条命令的输出作为下一条命令的输入。
例如通过ls获取当前目录的所有文件信息,然后通过Sort -Descending对文件信息按照Name降序排列,最后将排序好的文件的Name和Mode格式化成Table输出。
重定向是把命令的输出保存到文件中,‘>’为覆盖,’>>’追加。
脚本和批处理都属于伪可执行文件,它们只是包含了若干命令行解释器能够解释和执行的命令行代码。
执行批处理文件:批处理是扩展名为”.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
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论