SOC Prime Bias: 中程度

29 Jan 2026 15:23 UTC

PyRATコード: PythonベースのRATの内部

Author Photo
Ruslan Mikhalov Chief of Threat Research at SOC Prime linkedin icon フォローする
PyRATコード: PythonベースのRATの内部
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

概要

この記事は、PyInstallerでELFバイナリとしてパッケージ化されたPythonベースのリモートアクセス型トロイの木馬(RAT)であるPyRATを紹介しています。PyRATはLinuxとWindowsの両方で動作し、暗号化されていないHTTP経由でC2サーバーと通信し、コマンド実行、ファイル搾取、スクリーンショットキャプチャ、自爆ルーチンをサポートします。持続性はLinuxではXDGオートスタート、Windowsではレジストリの「Run」キーを使用して実装されます。レポートでは、このツールが非常に軽量で、サイバー犯罪者によって簡単に再利用できる方法が強調されています。

調査

研究者たちは、pyinstxtractorで埋め込みPythonバイトコードを抽出し、モジュールを逆コンパイルして、ホストのフィンガープリンティング、UIDの生成、スレッド管理、C2コーディネーションを行う主要なAgentクラスを特定しました。静的解析では、重要なインポート、ファイル名、レジストリの操作、ビーコンニングに使用されるHTTP POSTエンドポイントが浮かび上がりました。動作テストでは、持続性の作成、コマンド実行、ファイル列挙、アップロード/ダウンロード操作、ZIPアーカイブの作成、スクリーンショットのキャプチャ、オプションとしてのアーティファクトのクリーンアップが示されました。

緩和策

ユーザーのプロファイルに作成された疑わしい.autostart .desktopファイルや、HKCURunレジストリキーへの見慣れない実行可能な名前の追加を監視してください。ネットワーク層では、未知のホストを対象とした/api/{uid}/helloエンドポイントへのHTTP POST送信を監視してください。エンドポイントでは、Pythonコンテンツを埋め込んだ未知のELFバイナリや頻繁なサブプロセス実行などの異常なプロセス動作をフラグします。

対応策

検出された場合は、システムを隔離し、ELFサンプルと関連する.desktopファイルを収集し、関連するレジストリの状態を保存してください。フォレンジクスの一環として、UID、C2アドレス、および実行中に転送されたファイルを抽出します。特定されたC2インフラをブロックし、持続性を除去し、完全なクリーンアップを完了します。露出している可能性のあるアカウントの資格情報をローテーションします。

アタックフロー

シミュレーション実行

事前条件: テレメトリーとベースライン事前チェックをパスする必要があります。

合理性: このセクションは、検知ルールをトリガーするように設計された対敵技術(TTP)の正確な実行を詳細に述べています。 コマンドや物語はTTPに直接反映され、検出ロジックによって期待される正確なテレメトリーを生成することを目指します。

  • 攻撃の物語とコマンド:

    攻撃者は、一般ユーザーのSSH資格情報を取得しました。ログイン後、 Living-off-the-land スクリプトを実行し、そのスクリプトは:

    1. 悪意のあるELFペイロードを書き込み、 (agent-svc.pycをユーザーのホームディレクトリに保存し、Pythonバイトコードファイルとして偽装しながら、実際にはELFバイナリです。
    2. Debianパッケージツールを偽装してコピーし named dpkgn を/usr/local/binに コピーし、実行権限を与えます。このツールは単にELFペイロードを起動する薄いラッパーです。オートスタートのデスクトップエントリをインストールし
    3. を~/.config/autostartに (を~/.config/autostartに設定し、ペイロードをグラフィカルセッションの開始時に実行します。 適切な権限を設定して すぐに疑われないようにします。
    4. 結合されたファイルイベント( )がルールの最初の条件を満たし、

    .desktopagent-svc.pyc and dpkgnファイルが2番目の条件を満たします。 .desktop file satisfies the second condition.

  • 回帰テストスクリプト:

    #!/usr/bin/env bash
    set -euo pipefail
    
    # 1. 偽装されたELFを.pcyとしてデプロイ
    MALWARE_PATH="$HOME/agent-svc.pyc"
    echo "偽装されたELFペイロード(ダミーバイナリ)を作成中..."
    dd if=/dev/zero bs=1 count=1024 of="$MALWARE_PATH" status=none
    chmod +x "$MALWARE_PATH"
    
    # 2. dpkgnという名前の偽のDebianツールをデプロイ
    FAKE_TOOL="/usr/local/bin/dpkgn"
    echo "#!/usr/bin/env bash" | sudo tee "$FAKE_TOOL" > /dev/null
    echo "exec "$MALWARE_PATH" "$@"" | sudo tee -a "$FAKE_TOOL" > /dev/null
    sudo chmod +x "$FAKE_TOOL"
    
    # 3. オートスタートのデスクトップエントリを作成
    AUTOSTART_DIR="$HOME/.config/autostart"
    mkdir -p "$AUTOSTART_DIR"
    DESKTOP_FILE="$AUTOSTART_DIR/dpkgn.desktop"
    cat > "$DESKTOP_FILE" <<EOF
    [Desktop Entry]
    Type=Application
    Exec=$FAKE_TOOL
    Hidden=false
    NoDisplay=false
    X-GNOME-Autostart-enabled=true
    Name=Package Manager
    Comment=System Update Service
    EOF
    
    echo "PyRAT持続性アーティファクトがデプロイされました。"
  • クリーンアップコマンド:

    #!/usr/bin/env bash
    set -euo pipefail
    
    # 悪意のあるELFを削除
    rm -f "$HOME/agent-svc.pyc"
    
    # 偽のツールを削除
    sudo rm -f /usr/local/bin/dpkgn
    
    # オートスタートエントリを削除
    rm -f "$HOME/.config/autostart/dpkgn.desktop"
    
    echo "クリーンアップ完了。"