ShadowHS: A Fileless Linux Post‑Exploitation Framework Built on a Weaponized Hackshell
Detection stack
- AIDR
- Alert
- ETL
- Query
概要
ShadowHSは、Linux向けのファイルレスポストエクスプロイトフレームワークであり、完全にメモリ内で武装化されたハックシェルを実行します。小さなローダーがAES-256-CBCペイロードを復号し、匿名ファイルディスクリプタを介して再構築し、ディスクに触れることなく実行します。実行されると、インタラクティブシェルと、資格情報の窃取、横方向移動、暗号通貨マイニング、静かなデータ漏洩のモジュールを提供します。設計は、異なるLinux環境でのステルス性、オペレーターの制御、耐久性のある持続性を優先します。
調査
Cybleのアナリストは、段階的なローダーを解析し、暗号化されたシェルスクリプトを復元し、Perlベースの復号チェーンをマッピングし、/proc/*/fd/パスを通じて実行を確認しました。EDR/AVチェック、競合抑止ロジック、SSHブルートフォース、カーネルエクスプロイト、GPUマイニングのためのオンデマンドモジュールを幅広く文書化し、テストで再現可能な結果を出しています。また、ハードコードされたC2エンドポイントとrsync-over-GSocketのデータ漏洩方法もリストされています。
緩和策
/proc/からのELF実行に注意し、/fd/、奇妙なOpenSSL/Perl復号チェーン、argv曖昧化の痕跡を確認します。削除済みまたはmemfdサポートのあるバイナリ、メモリダンプツール、非標準のrsyncトランスポートへの可視性を向上させます。既知のマイニングプールをブロックし、GSocketトンネルを制限して乱用を防ぎます。大規模なmemfd_createの不審な使用を警告します。
対応
検知した場合、ホストを隔離し、調査のためにメモリをキャプチャし、メモリ内フレームワークとマイニングラッパーを終了し、参照されたC2のIP/ドメインをブロックします。露出した資格情報をインベントリーし、キーとパスワードを回転させ、システムを強化します。横移動の試みとスキャン活動(rustscanやspiritの使用を含む)を追跡し、拡散を特定し再感染を防ぎます。
攻撃フロー
この部分はまだ更新中です。通知を受け取るためにサインアップしてください
通知を受け取る検出
GDBバッチモードを介したLinuxメモリダンプ(コマンドライン経由)
表示
パイプラインを介したLinux OpenSSL AES-256-CBC復号の可能性(コマンドライン経由)
表示
/proc/self/fdを通じたLinuxファイルレス実行の可能性(コマンドライン経由)
表示
検出するためのIOC (HashSha256): ShadowHS: 武装化されたハックシェル上に構築されたファイルレスLinuxポストエクスプロイトフレームワーク パート1
表示
検出するためのIOC (HashSha256): ShadowHS: 武装化されたハックシェル上に構築されたファイルレスLinuxポストエクスプロイトフレームワーク パート2
表示
検出するためのIOC (DestinationIP): ShadowHS: 武装化されたハックシェル上に構築されたファイルレスLinuxポストエクスプロイトフレームワーク
表示
検出するためのIOC (SourceIP): ShadowHS: 武装化されたハックシェル上に構築されたファイルレスLinuxポストエクスプロイトフレームワーク
表示
ShadowHSファイルレスLinuxポストエクスプロイトフレームワークの検出 [Linuxプロセス作成]
表示
AES-256-CBC -nosaltの誤用と/proc/*/exeの列挙を検出 [Linuxファイルイベント]
表示
シミュレーション実行
前提条件: テレメトリとベースラインのプリフライトチェックに合格している必要があります。
理論: このセクションでは、検出ルールをトリガーするために設計された敵対者の技術(TTP)の正確な実行を詳述します。コマンドと説明は特定されたTTPを直接反映し、検出ロジックが期待する正確なテレメトリを生成することを目指す必要があります。抽象的または無関係な例は誤診につながる可能性があります。
-
攻撃の説明とコマンド:
既にLinuxホストで足場を確保した攻撃者は、(1)追加のエントロピーチェックを避けるために塩を使用せず、OpenSSLを使用して以前に漏洩したデータブロブを復号し、(2)資格情報を含む可能性のある特権プロセスを発見したり、後で無効化するためのセキュリティツールを識別するために/proc/*/exeを列挙します。攻撃者はBashセッションにおいて以下のコマンドを実行します:-
OpenSSL復号(AES-256-CBC, no‑salt) – Sigmaルールが監視する正確な文字列を再現します:
openssl enc -d -aes-256-cbc -nosalt -in /tmp/stolen.enc -out /tmp/secret.txt -
Proc-exe列挙 – すべての数値PIDディレクトリをループし、
exesymlinkのターゲットを出力します: for pid in /proc/[0-9]*; do readlink "$pid/exe" done
これらのアクションは、ルールの
aesandproc_enum条件を満たす2つの異なるプロセス作成イベントを生成します。 -
-
回帰テストスクリプト:
#!/usr/bin/env bash set -euo pipefail # ==== 1. OpenSSL復号(AES-256-CBC, no‑salt) ==== # テスト用にダミーの暗号化ファイルを作成 echo "SensitiveData123" > /tmp/plain.txt openssl enc -aes-256-cbc -nosalt -salt -out /tmp/stolen.enc -pass pass:TestPass < /tmp/plain.txt # 正確な検出パターンを使用して復号 openssl enc -d -aes-256-cbc -nosalt -in /tmp/stolen.enc -out /tmp/secret.txt -pass pass:TestPass # ==== 2. /proc/*/exeシンボリックリンクを列挙==== for pid in /proc/[0-9]*; do readlink "$pid/exe" done echo "シミュレーション完了。SIEMで警告を確認してください。" -
クリーンアップコマンド:
#!/usr/bin/env bash set -euo pipefail rm -f /tmp/plain.txt /tmp/stolen.enc /tmp/secret.txt echo "クリーンアップ完了。"