ctf-malware
CTFチャレンジにおけるマルウェア解析とネットワークトラフィック分析のテクニックを提供します。難読化されたスクリプトや悪意あるパッケージ、カスタム暗号プロトコル、C2トラフィック、PE/.NETバイナリ、RC4/AES暗号化通信、YARAルール、シェルコード解析、マルウェアのメモリフォレンジクス(Volatility malfind・プロセスインジェクション検出)、アンチ解析技術(VM/サンドボックス検出・タイミング回避・APIハッシュ・プロセスインジェクション・環境チェック)、またはマルウェア設定値やIoCの抽出を行う際に使用してください。
description の原文を見る
Provides malware analysis and network traffic techniques for CTF challenges. Use when analyzing obfuscated scripts, malicious packages, custom crypto protocols, C2 traffic, PE/.NET binaries, RC4/AES encrypted communications, YARA rules, shellcode analysis, memory forensics for malware (Volatility malfind, process injection detection), anti-analysis techniques (VM/sandbox detection, timing evasion, API hashing, process injection, environment checks), or extracting malware configurations and indicators of compromise.
SKILL.md 本文
CTF マルウェア & ネットワーク分析
マルウェア分析 CTF チャレンジのためのクイックリファレンス。各手法の簡潔な説明はここに、完全な詳細とコードは補足ファイルを参照してください。
前提条件
Python パッケージ (全プラットフォーム):
pip install yara-python pefile capstone oletools unicorn pycryptodome \
volatility3 dissect.cobaltstrike
Linux (apt):
apt install strace ltrace tshark binwalk binutils
macOS (Homebrew):
brew install wireshark binwalk binutils ghidra
手動インストール:
- dnSpy — GitHub, .NET デコンパイラ (Windows)
追加リソース
scripts-and-obfuscation.md- JavaScript 難読化解析、PowerShell 分析、eval/base64 デコード、ジャンクコード検出、hex ペイロード、Debian パッケージ分析、動的分析技術 (strace/ltrace、ネットワーク監視、メモリ文字列抽出、自動サンドボックス実行)、マルウェア検出用 YARA ルール、シェルコード分析 (Unicorn Engine、Capstone)、マルウェア用メモリフォレンジクス (Volatility 3 malfind、プロセスインジェクション検出)、アンチ分析技術 (VM 検出、タイミング回避、API ハッシング、プロセスインジェクション)、トロイの木馬化されたプラグイン分析とカスタムアルファベット C2 デコードc2-and-protocols.md- C2 トラフィックパターン、カスタム暗号プロトコル、RC4 WebSocket、DNS ベース C2、ネットワークインジケータ、PCAP 分析、AES-CBC、暗号化 ID、Telegram ボット復旧、Poison Ivy RAT Camellia 復号化pe-and-dotnet.md- PE 分析 (peframe、pe-sieve、pestudio)、.NET 分析 (dnSpy、AsmResolver)、LimeRAT 抽出、サンドボックス回避、マルウェアコンフィグ抽出、PyInstaller+PyArmor
ピボットが必要な場合
- サンプルが単なる通常のクラックミー、パックされたチャレンジバイナリ、またはマルウェア動作のないカスタム VM である場合は、
/ctf-reverseに切り替えてください。 - メインの仕事がネットワーク復元、ディスク復旧、またはホストアーティファクト復旧である場合は、
/ctf-forensicsに切り替えてください。 - チャレンジが公開帰属またはインフラストラクチャトレーシングに発展する場合は、
/ctf-osintに切り替えてください。
クイックスタートコマンド
# 静的分析
file suspicious_file
strings -n 8 suspicious_file | head -50
xxd suspicious_file | head -20
# PE 分析
python3 -c "import pefile; pe=pefile.PE('mal.exe'); print(pe.dump_info())" | head
peframe mal.exe
# 動的分析 (サンドボックス化!)
strace -f -s 200 ./suspicious 2>&1 | head -100
ltrace ./suspicious 2>&1 | head -50
# ネットワークインジケータ
strings suspicious_file | grep -E '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}'
strings suspicious_file | grep -iE 'http|ftp|ws://'
# YARA スキャン
yara -r rules.yar suspicious_file
難読化されたスクリプト
eval/bashをechoに置き換えて基礎となるコードを出力; base64/hex blob を抽出してfileで分析します。scripts-and-obfuscation.mdを参照してください。
JavaScript & PowerShell 難読化解析
- JS:
evalをconsole.logに置き換え、unescape()、atob()、String.fromCharCode()をデコード。 - PowerShell:
-encbase64 をデコード、IEXを出力に置き換え。scripts-and-obfuscation.mdを参照してください。
ジャンクコード検出
- NOP スレッド、push/pop ペア、デッドライト、無条件ジャンプ (次の命令へ)。実際の
callターゲットを抽出するためにフィルタリング。scripts-and-obfuscation.mdを参照してください。
PCAP & ネットワーク分析
tshark -r file.pcap -Y "tcp.stream eq X" -T fields -e tcp.payload
異常なポートの C2 を探します。strings | grep で IP/ドメインを抽出。c2-and-protocols.md を参照してください。
カスタム暗号プロトコル
- ストリーム暗号は両方向のキーストリーム状態を共有; すべてのペイロードを時系列順に連結。
- ChaCha20 キーストリーム抽出: nullbytes を送信 (0 XOR anything = anything)。
c2-and-protocols.mdを参照してください。
C2 トラフィックパターン
- ビーコニング、DGA、DNS トンネリング、カスタムヘッダー付き HTTP(S)、エンコードされたペイロード。
c2-and-protocols.mdを参照してください。
RC4 暗号化 WebSocket C2
tcprewriteでポートをリマップ、TLS 復号化用 RSA キー追加、バイナリから RC4 キー検索。c2-and-protocols.mdを参照してください。
暗号化アルゴリズムの識別
- AES:
0x637c777bS-box; ChaCha20:expand 32-byte k; TEA/XTEA:0x9E3779B9; RC4: 順序付き S-box 初期化。c2-and-protocols.mdを参照してください。
マルウェア内の AES-CBC
- キー = ハードコードされた文字列の MD5/SHA256; IV = 暗号文の最初の 16 バイト。
c2-and-protocols.mdを参照してください。
PE 分析
peframe malware.exe # クイック トリアージ
pe-sieve # ランタイム分析
pestudio # 静的分析 (Windows)
pe-and-dotnet.md を参照してください。
.NET マルウェア分析
- dnSpy/ILSpy を使用してデコンパイル; AsmResolver をプログラム的分析に使用。LimeRAT C2: MD5 派生キーを持つ AES-256-ECB。
pe-and-dotnet.mdを参照してください。
マルウェアコンフィグ抽出
- .data セクション、PE/.NET リソース、レジストリキー、暗号化コンフィグファイルをチェック。
pe-and-dotnet.mdを参照してください。
サンドボックス回避チェック
- VM 検出、デバッガ検出、タイミングチェック、環境チェック、分析ツール検出。
pe-and-dotnet.mdを参照してください。
アンチ分析技術
VM 検出 (CPUID、MAC プレフィックス、レジストリ、ディスクサイズ)、タイミング回避 (sleep/RDTSC サンドボックス検出)、API ハッシング (ROR13/DJB2/CRC32 + hashdb ルックアップ)、プロセスインジェクション (ホローイング、APC、CreateRemoteThread)、環境チェック。scripts-and-obfuscation.md を参照してください。
トロイの木馬化されたプラグイン分析
悪質なプラグインを公式リリースと比較して、try/except ブロック内の注入されたコードを検出。カスタムアルファベットローテーション (C[(C.index(ch) - offset) % len(C)]) は C2 ドメインをデコード、XOR はエンドポイントパスをデコード。scripts-and-obfuscation.md を参照してください。
PyInstaller + PyArmor アンパック
pyinstxtractor.pyで抽出、PyArmor-Unpacker で保護されたコード。pe-and-dotnet.mdを参照してください。
Telegram ボットエビデンス復旧
- マルウェアソースからボットトークンを使用して
getUpdatesおよびgetFileAPI を呼び出し。c2-and-protocols.mdを参照してください。
Debian パッケージ分析
ar -x package.deb && tar -xf control.tar.xz # postinst スクリプトをチェック
scripts-and-obfuscation.md を参照してください。
マルウェア検出用 YARA ルール
YARA ルールを記述してバイトパターン、文字列、正規表現をファイルまたはメモリダンプと照合。XOR ループ ({31 ?? 80 ?? ?? 4? 75})、base64 blob、エンコードされた PowerShell を検出。yarac を使用してコンパイルし、より高速なスキャンを実現。scripts-and-obfuscation.md を参照してください。
シェルコード分析
objdump -b binary -m i386:x86-64 でディスアセンブル、Unicorn Engine でエミュレート (システムコールを安全にフック)、またはプログラム的ディスアセンブリに Capstone を使用。XOR デコーダ スタブを探します。scripts-and-obfuscation.md を参照してください。
マルウェア用メモリフォレンジクス
vol3 windows.malfind はインジェクトされたコード (マップされたファイルなしの PAGE_EXECUTE_READWRITE) を検出。windows.pstree は疑わしい親子関係を明らかにします。yarascan.YaraScan でメモリを YARA スキャン。scripts-and-obfuscation.md を参照してください。
ネットワークインジケータ クイックリファレンス
strings malware | grep -E '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}'
tshark -r capture.pcap -Y "dns.qry.name" -T fields -e dns.qry.name | sort -u
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- ljagiello
- リポジトリ
- ljagiello/ctf-skills
- ライセンス
- MIT
- 最終更新
- 不明
Source: https://github.com/ljagiello/ctf-skills / ライセンス: MIT
関連スキル
doubt-driven-development
重要な判断はすべて、本番環境への展開前に新しい視点から対抗的レビューを実施します。速度より正確性が重要な場合、不慣れなコードを扱う場合、本番環境・セキュリティに関わるロジック・取り消し不可の操作など影響度が高い場合、または後でバグを修正するよりも今検証する方が効率的な場合に活用してください。
apprun-skills
TypeScriptを使用したAppRunアプリケーションのMVU設計に関する総合的なガイダンスが得られます。コンポーネントパターン、イベントハンドリング、状態管理(非同期ジェネレータを含む)、パラメータと保護機能を備えたルーティング・ナビゲーション、vistestを使用したテストに対応しています。AppRunコンポーネントの設計・レビュー、ルートの配線、状態フローの管理、AppRunテストの作成時に活用してください。
desloppify
コードベースのヘルスチェックと技術負債の追跡ツールです。コード品質、技術負債、デッドコード、大規模ファイル、ゴッドクラス、重複関数、コードスメル、命名規則の問題、インポートサイクル、結合度の問題についてユーザーが質問した場合に使用してください。また、ヘルススコアの確認、次の改善項目の提案、クリーンアップ計画の作成をリクエストされた際にも対応します。29言語に対応しています。
debugging-and-error-recovery
テストが失敗したり、ビルドが壊れたり、動作が期待と異なったり、予期しないエラーが発生したりした場合に、体系的な根本原因デバッグをガイドします。推測ではなく、根本原因を見つけて修正するための体系的なアプローチが必要な場合に使用してください。
test-driven-development
テスト駆動開発により実装を進めます。ロジックの実装、バグの修正、動作の変更など、あらゆる場面で活用できます。コードが正常に動作することを証明する必要がある場合、バグ報告を受けた場合、既存機能を修正する予定がある場合に使用してください。
incremental-implementation
変更を段階的に実施します。複数のファイルに影響する機能や変更を実装する場合に使用してください。大量のコードを一度に書こうとしている場合や、タスクが一度では完結できないほど大きい場合に活用します。