mirror of
https://github.com/nganhkhoa/malware.git
synced 2024-06-10 21:32:07 +07:00
23 KiB
23 KiB
Tools
- DFIRやマルウェア解析,OSINT,その他の多数のツールに関するデータベース
DFIR TRAINING(TOOLS) - infographicsやツールのチートシート
DFIR TRAINING(RESOUCES-Downloads-Infographics & Cheet Sheets) - マルウェアに含まれることが多い文字列とBase64エンコードの対応表
Learning Aid - Top Base64 Encodings Table
OS/VM
- FLARE VM
FireEye社が提供するマルウェア解析, DFIR, ペネトレーションテストに特化したWindowsベースのディストリビューション
Practical Malware Analysis Labsが同梱 - REMnux
SANSが提供するリバースエンジニアリング,マルウェア解析に特化したUbuntuベースのディストリビューション - Tsurugi Linux
DFIR,マルウェア解析,OSINTに特化したUbuntuベースのディストリビューション
Static Analysis and Debug tools
※空欄は調査中(更新予定)
name | disassembler | decompiler | debugger | reference |
---|---|---|---|---|
IDA pro | 〇 | 〇(Not free) | 〇 | |
Binary Ninja | 〇 | |||
Cutter | 〇 | r2dec,r2ghidra | native gdb windbg etc. |
INTRO TO CUTTER FOR MALWARE ANALYSIS(2019-03) megabeets.net Cutter: Presenting r2ghidra Decompiler,r2con 2019 |
Ghidra | 〇 | 〇 | Reversing WannaCry Part 2 - Diving into the malware with #Ghidra,youtube cheetsheet Scripting in Ghidra, Patching MacOS Image2Icon |
|
x64/x32dbg | 〇 | Snowman | 〇 | |
WinDbg | 〇 | 〇 | ||
GDB | 〇 | 〇 | ||
objdump | 〇 | |||
Snowman | 〇 |
name | plugin | price | platform | remarks |
---|---|---|---|---|
IDA pro | Lighthouse UEFI_RETool VT-IDA Plugin |
Not free | multi | |
Binary Ninja | Lighthouse | Not free | ||
Cutter | CutterDRcov Jupyter Plugin for Cutter x64dbgcutter etc. |
free | multi | |
Ghidra | pwndra ghidra_scripts OOAnalyzer |
free | multi | |
x64/x32dbg | DbgChild checksec idenLib xdbg ScyllaHide x64dbgpylib ClawSearch x64dbg-dark UaraGen xAnalyzer Unpacking Script |
free | windows | |
WinDbg | free | windows | Kernel mode debugging possible | |
GDB | gdbpeda pwngdb |
free | linux | |
objdump | free | linux | ||
Snowman |
Tracer
- drltrace
- DynamoRIO based
- ライブラリトレーサ(Windows版ltrace)
- drstrace
- DynamoRIO based
- システムコールトレーサ(Windows版strace)
- memtrace
- DynamoRIO based
- メモリトレーサ
- bbbuf
- DynamoRIO based
- べーシックブロックトレーサ
- API Monitor
- GUI(Windows)
- APIコールを監視ツール
- Captain
- APIフックを行いAPIの呼び出しを監視
- yaml形式で記載されたシグネチャをもとに,DLLインジェクション,マクロ実行,lsassメモリダンプ,wmicおよびmshtaマルウェアの検出を行うことが可能
- 現在はアルファ版(2020/02/23時点)
Instrumentation
- drcov
- DynamoRIO based
- カバレッジ計測
- drrun経由で実行
> drrun.exe -t drcov -- [program name] [arguments]
- Intel PIN
Traffic Analysis tools
- Wireshark
- tcpdump
- scapy
- Fiddler
- Web Proxy debugger
- EKFiddle
- URLパターン,IPなどから特定のマルウェアやEKの通信を識別することが可能
- ref:
- Burp Suite
- ローカルプロキシツール
- プラグイン
- Fake-net NG
- INetSim
- Noriben
- Parse User Agents
- User AgentをパースするWebサービス
- User Agentに含まれる情報の調査に利用したり,一般的なUser Agentが田舎の判断に利用することが可能
- 数百万のUser Agentに対応
Forensic
- Sysinternals
- Sysmon
- ホスト上で発生したプロセス,ファイル,レジストリ,ネットワーク,WMI関連のインベントをEventLog(.evtx)に記録する
- ref:
- Sysmon
- Volatility
- DFIRやマルウェア解析に焦点を当てたメモリダンプ調査フレームワーク
- プラグインが充実している
- プロファイルの指定が必要である(メモリダンプがどのシステム(OS,データ構造,シンボル)で使用したものなのかを識別するため)
- Volatility 3からは不要とのこと
- 対応しているメモリダンプのフォーマット
- Raw linear sample (dd)
- Hibernation file (from Windows 7 and earlier)
- Crash dump file
- VirtualBox ELF64 core dump
- VMware saved state and snapshot files
- EWF format (E01)
- LiME format
- Mach-O file format
- QEMU virtual machine dumps
- Firewire
- HPAK (FDPro)
- ref:
- Virtual Box上のゲストOSからメモリダンプ(VirtualBox ELF64 core dump)を取得する方法
- VBoxManageを利用してホストOSからゲストOSを起動する(VBoXManageで起動しないと原因は分からないがメモリダンプの取得でうまくいかなかった)
> .\VBoxManage.exe list vms # Virtual Boxで作成済みのゲストの名前とuuidの一覧を取得 > .\VBoxManage.exe startvm "guest name or uuid" #起動
- VboxManageでメモリダンプ(VirtualBox ELF64 core dump)を取得する
> .\VBoxMnage.exe debugvm "guest name or uuid" dumpvmcore --filename output.dmp
- この他に,vboxdump.pyというメモリダンプ作成用のpythonスクリプトもある
- ref:
- Plugins
name | default | how to use | description | reference |
---|---|---|---|---|
malfind | 〇 | python vol.py -f zeus.vmem malfind -p 1724 | ||
hollowfind | - | python vol.py -f infected.vmem --profile=Win7SP0x86 hollowfind | ||
yarascan | 〇 | python vol.py -f zeus.vmem yarascan --yara-file=/path/to/rules.yar | ||
malconfscan | - | python vol.py malconfscan -f images.mem --profile=Win7SP1x64 | マルウェアのコンフィグ情報の抽出,cuckooと組み合わせることが可能 | wiki |
malstrscan | - | python vol.py malstrscan -a -f images.mem --profile=Win7SP1x64 |
- Hexinator
- バイナリエディタ
- 各種ファイルタイプの構造が定義されたgrammarと呼ばれるxmlファイルを用いて,開いたファイルの構造を認識し,ファイルヘッダやデータ内の各パラメータをバイナリエディタ上でカラーリングして表示
- パラメータの値の閲覧,編集も可能
- freeで多くのgrammerが用意されているが,ツール自体は試用期間のみ無料
- ファイルの破損部分を確認する際に有用
- バイナリの差分の確認も可能
Threat hunting
- EQL
.NET analysis
- dnspy
.NETデコンパイラ,C#やVBで作成された実行ファイルを高精度でデコンパイルする
Utilities
-
PeBear
-
PeStudio
-
- PEファイルからリソースファイルの抽出,編集が可能なツール
-
PEiD
-
010 Editor
-
Process Hacker
- Mutexの確認が可能
-
RegShot
-
RegistryChangesView
-
- 機械学習モデルによってファイルの含まれる文字列とマルウェアとの関連性をランク付けする
- 010 Editorに組み込むことも可能
- ref:
-
wql
- wqlで子プロセスの検索
$procs=Start-Process "programname.exe" -PassThru
echo $procs.Id
$queryNameVersion="SELECT * FROM Win32_Process WHERE ParentProcessId=" + $procs.Id
$child_process=Get-WmiObject -Query $queryNameVersion
echo $child_process
Online Sandbox
name | site | remarks |
---|---|---|
AMAaaS | https://amaaas.com/ | apk only |
ANYRUN | https://app.any.run/#register | |
Intezer Analyze | https://analyze.intezer.com/#/ | |
IRIS-H | https://iris-h.services/pages/dashboard | maldoc only |
CAPE Sandbox | https://cape.contextis.com/ | |
Joe Sandbox Cloud | https://www.joesandbox.com/ | |
cuckoo | https://cuckoo.cert.ee/ | |
cuckoo | https://sandbox.pikker.ee/ | |
Hybrid Analysis | https://www.hybrid-analysis.com/?lang=ja | |
ViCheck | https://www.vicheck.ca/submitfile.php | |
Triage | https://tria.ge/ | |
Yomi Sandbox | https://yomi.yoroi.company/upload | |
UnpacMe | https://www.unpac.me/#/ | online unpacker,beta, extracting embedded AutoIT Script, extracting URL from VB6 downloader(GuLoader) |
MalwareConifg | https://malwareconfig.com/ | 特定マルウェアからconfig情報を抽出 |
Unpacker/Decryptor/Decoder/Extractor/Memory Scanner
- TAFOF-Unpacker
攻撃者グループTA505が利用するマルウェア(GetandGoDll, Silence, TinyMet, Azorult, KBMiner, etc.)の静的アンパッカー - Trickbot artifact decrypter
Trickbotのartifactを取得するためのdecrypter - VolatilityBot
マルウェアサンプルやメモリダンプの自動分析(コードインジェクションの抽出,プロセスダンプ,yaraスキャン,文字列の抽出) - Loki - Simple IOC Scanner
IoCスキャナー(パス・ファイル名の正規表現マッチ,ファイルとプロセスメモリのyaraスキャン,hashマッチ,c2 IoCスキャン,PE-Sieve) - flare-floss
FireEye Labsの静的解析分析技術を利用して,難読化された文字列を自動的に検知,抽出,デコード - PE-Sieve
Process Hollowing,Injectionされた特定のプロセスをダンプ - HollowsHunter
全プロセスもしくは特定の名称のプロセスのメモリをスキャンし,Process HollowingやInjectionを検知するすることが可能。Pe-Sieveのと同じ開発者によって作成されたツールであり,Pe-Sieveのdllが内部で用いられている - strings2
ファイルやプロセスメモリ内の文字列の抽出 - mnemosyne
文字列,正規表現でプロセスメモリをスキャン
- Memhunter
Injecition/Hollowingされたプロセスの自動検出
- ref:
- メモリダンプが不要で,感染環境でメモリスキャンを行う
- メモリスキャンのヒューリスティックトリガーにETWデータを利用している
- ETWのSuspicious Eventsとして以下を定義
- ref:
- Process Creattion
- Registry Operations
- Threads Operations
- Virtual Alloc Operations
- Image Load Operations
- Kernel Audit APIs usage
- etc.
- Bisonal Analysis Utils
- Bisonalに含まれる文字列のデコード,通信の復号,yaraルール
Docment file Analysis
- VBA マクロの解析についての資料
Advanced VBA Macros Attack&Defence,BHEU2019 - rtfobj
RTFファイルからOLEパッケージオブジェクトを検出し、埋め込みファイルを抽出
Other various file Analysis
lnk file
- LnkParse
- .lnkファイルのパーサ
- [MS-SHLLINK]: Shell Link (.LNK) Binary File Format
- .lnkファイルのバイナリフォーマット
C2 Analysis
- C2MATRIX
- オープンソースのC2フレームワークとその比較表
- SpreadSheet
Emotet
- Emutet
- Emotetのc2通信部分のエミュレータ
- Emotetのc2通信部分のエミュレータ
Ursnif
- Ursnif(version 2)のc2通信の仕組みと復号ツールについて
Binary Analysis
Unpacking
- アンパックの流れ
- OEPの特定し,OEPまで実行
- pushad命令,popad命令に着目。popad命令後のjmpでOEPに遷移する可能性がある(pushadした際のスタックのアドレスにハードウェアブレークポイントを設定することで監視)
- 動的に生成された領域に着目(領域にアクセスし,実行されるかをメモリブレークポイントを設定することで監視)
- WinMainCRTStartup,WinMainとの類似性からヒューリスティックに判断
- ツールを利用
- プロセスメモリのダンプ
- 基本的にツールを用いる
- IATの再構築(展開ルーチンのIAT再構築とは別)
- IATは展開ルーチンでローダによってそのときの実際のAPIのアドレスに書き換えられているため,ロード前に戻す必要がある
- PEヘッダはパックされたコードのIATを示しているので,新たににインポートセクションを追加し,そのセクションを認識するようにPEヘッダを修正する
- 基本的にツールを用いる
- OEPの特定し,OEPまで実行
Microsoft Windows Library
- NTDLL.DLL
- Windows Native APIを提供
- Native APIはKERNEL32.DLLによってエクスポートされるKernel APIやbase APIの多くで使用されている
- Windows applicationから直接的に呼ばれることはほとんどない
- 公式ではドキュメント化されていないが,こちらからある程度確認可能
- KERNEL32.DLL
- メモリ操作,入出力,プロセスやスレッド管理,同期処理を行うWin32 base APIを提供する
- USER32.DLL
- GUIなどユーザインターフェース関連のAPIを提供
- MSVCRT.DLL
- ランタイム(CRT)ライブラリ
- MSVCコンパイラ用の標準C関数等(printf,malloc,etc.)の提供
- ref about crt:
- ランタイム(CRT)ライブラリ
- ref:
- Loading a DLL from memory
- DLLをロードする流れやメモリからロードするツールについて
- Loading a DLL from memory
Symbolic Execurtion
to do...
Taint Analysis
to do...
Decompiler
to do...
Perspective
- topdown
- コードの先頭から解析
- bottom-up
- 表層解析で得たキー情報(Win32API,怪しい文字列,etc.)の周辺から解析
ref:
- Intel系アーキテクチャSoftware Developer向けのマニュアル
Intel® 64 and IA-32 Architectures Software Developer Manuals - PEファイルのフォーマットについて
Inside Windows An In-Depth Look into the Win32 Portable Executable File Format, Part 1(2002)
Peering Inside the PE: A Tour of the Win32 Portable Executable File Format(1994) - Windows APIに関するMSの公式ドキュメント
Windows API Index
Windows OS
- Windows Internalsを日本語で解説するプロジェクト
windows-internals-guid
Windows Command
- widows上で情報収集やフォレンジックに活用できるCommand Line CheetSheet
Training Material
- Malware-Traffic-Analysis(TRAFFIC ANALYSIS EXERCISES)
- pcap解析(マルウェア感染等のセキュリティインシデントに関わるトラフィック解析)に関するトレーニング教材
- pcap解析(マルウェア感染等のセキュリティインシデントに関わるトラフィック解析)に関するトレーニング教材
- Malware-Analysis-Training
- 初心者/中級者向けのマルウェア解析トレーニング教材
- 教材自体は2010年頃のもので2020年にオープンソース化
- 内容:
- IDA proやOllyDBG等の解析ツールについて
- アセンブリ言語について
- パッキング,耐解析機能,バイナリ差分と比較,難読化,隠ぺい技術等
- 初心者/中級者向けのマルウェア解析トレーニング教材
- Advanced Binary Deobfuscation
- バイナリの難読化解除に関するトレーニング教材
- 内容:
- 難読化技術や難読化解除技術について
- データフロー分析やシンボリック実行
- Adversary Tactics: PowerShell
- PowerShellスクリプトとセキュリティに関するトレーニング教材
- CS6038 (Spring 2020) - Malware Analysis
- CS6038/CS5138 Malware Analysis, UC
- シンシナティ大学のマルウェア解析講義(Youtube,資料)