1
0
mirror of https://github.com/nganhkhoa/malware.git synced 2024-06-10 21:32:07 +07:00

Update malware-analysis_ref_and_memo.md

This commit is contained in:
mether049 2020-03-14 22:43:10 +09:00 committed by GitHub
parent 602774279a
commit b021164821
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -43,67 +43,67 @@ DFIR,マルウェア解析OSINTに特化したUbuntuベースのディスト
|[Snowman](https://derevenets.com/)||free|windows||||||
### Tracer
- [drltrace](https://github.com/DynamoRIO/drmemory/tree/master/drltrace)
- **[drltrace](https://github.com/DynamoRIO/drmemory/tree/master/drltrace)**
- [DynamoRIO](https://github.com/DynamoRIO/dynamorio) based
- ライブラリトレーサ(Windows版ltrace)
- [drstrace](http://drmemory.org/strace_for_windows.html)
- **[drstrace](http://drmemory.org/strace_for_windows.html)**
- DynamoRIO based
- システムコールトレーサ(Windows版strace)
- [memtrace](https://github.com/DynamoRIO/dynamorio/blob/master/api/samples/memtrace_simple.c)
- **[memtrace](https://github.com/DynamoRIO/dynamorio/blob/master/api/samples/memtrace_simple.c)**
- DynamoRIO based
- メモリトレーサ
- [bbbuf](https://github.com/DynamoRIO/dynamorio/blob/master/api/samples/bbbuf.c)
- **[bbbuf](https://github.com/DynamoRIO/dynamorio/blob/master/api/samples/bbbuf.c)**
- DynamoRIO based
- べーシックブロックトレーサ
- [API Monitor](http://www.rohitab.com/apimonitor)
- **[API Monitor](http://www.rohitab.com/apimonitor)**
- GUI(Windows)
- APIコールを監視ツール
- [Captain](https://github.com/y3n11/Captain)
- **[Captain](https://github.com/y3n11/Captain)**
- APIフックを行いAPIの呼び出しを監視
- yaml形式で記載されたシグネチャをもとにDLLインジェクションマクロ実行lsassメモリダンプwmicおよびmshtaマルウェアの検出を行うことが可能
- 現在はアルファ版(2020/02/23時点)
### Instrumentation
- [drcov](http://dynamorio.org/docs/page_drcov.html)
- **[drcov](http://dynamorio.org/docs/page_drcov.html)**
- DynamoRIO based
- カバレッジ計測
- drrun経由で実行
```
> drrun.exe -t drcov -- [program name] [arguments]
```
- Intel PIN
- **Intel PIN**
### Traffic Analysis tools
- Wireshark
- **Wireshark**
- ref:
- [Wireshark Tutorial,Unit42(2019)](https://unit42.paloaltonetworks.com/tag/tutorial/)
- tcpdump
- scapy
- [Fiddler](https://www.telerik.com/fiddler)
- **tcpdump**
- **scapy**
- **[Fiddler](https://www.telerik.com/fiddler)**
- Web Proxy debugger
- [EKFiddle](https://github.com/malwareinfosec/EKFiddle)
- **[EKFiddle](https://github.com/malwareinfosec/EKFiddle)**
- URLパターンIPなどから特定のマルウェアやEKの通信を識別することが可能
- ref:
- [Malicious Traffic Analysis with EKFiddle(2019-03)](https://drive.google.com/file/d/1VhZyCiHgtDwcCh7cpVWMCTi9B_Nj66AC/view)
- Burp Suite
- **Burp Suite**
- ローカルプロキシツール
- プラグイン
- [awesome-burp-suite](https://github.com/alphaSeclab/awesome-burp-suite)
- Fake-net NG
- INetSim
- Noriben
- [Parse User Agents](https://developers.whatismybrowser.com/)
- **Fake-net NG**
- **INetSim**
- **Noriben**
- **[Parse User Agents](https://developers.whatismybrowser.com/)**
- User AgentをパースするWebサービス
- User Agentに含まれる情報の調査に利用したり一般的なUser Agentが田舎の判断に利用することが可能
- 数百万のUser Agentに対応
### Forensic
- Sysinternals
- **Sysinternals**
- Sysmon
- ホスト上で発生したプロセスファイルレジストリネットワークWMI関連のインベントをEventLog(.evtx)に記録する
- ref:
- [SysmonCommunityGuide](https://github.com/trustedsec/SysmonCommunityGuide)
- [**Volatility**](https://github.com/mether049/malware/edit/master/malware-analysis_ref_and_memo.md)
- **[Volatility](https://github.com/mether049/malware/edit/master/malware-analysis_ref_and_memo.md)**
- DFIRやマルウェア解析に焦点を当てたメモリダンプ調査フレームワーク
- プラグインが充実している
- プロファイルの指定が必要である(メモリダンプがどのシステム(OSデータ構造シンボル)で使用したものなのかを識別するため)
@ -149,7 +149,7 @@ DFIR,マルウェア解析OSINTに特化したUbuntuベースのディスト
|[malconfscan](https://github.com/JPCERTCC/MalConfScan)|-|python vol.py malconfscan -f images.mem --profile=Win7SP1x64|マルウェアのコンフィグ情報の抽出cuckooと組み合わせることが可能|[wiki](https://github.com/JPCERTCC/MalConfScan/wiki)|
|[malstrscan](https://github.com/JPCERTCC/MalConfScan)|-|python vol.py malstrscan -a -f images.mem --profile=Win7SP1x64|||
- [Hexinator](https://hexinator.com/)
- **[Hexinator](https://hexinator.com/)**
- バイナリエディタ
- 各種ファイルタイプの構造が定義されたgrammarと呼ばれるxmlファイルを用いて開いたファイルの構造を認識しファイルヘッダやデータ内の各パラメータをバイナリエディタ上でカラーリングして表示
- パラメータの値の閲覧,編集も可能
@ -158,19 +158,19 @@ DFIR,マルウェア解析OSINTに特化したUbuntuベースのディスト
- バイナリの差分の確認も可能
### Threat hunting
- EQL
- **EQL**
### .NET analysis
- [dnspy](https://github.com/0xd4d/dnSpy)<br>
- **[dnspy](https://github.com/0xd4d/dnSpy)<br>**
.NETデコンパイラ,C#やVBで作成された実行ファイルを高精度でデコンパイルする
### Utilities
- PeBear
- PeStudio
- [ResourceHacker](http://www.angusj.com/resourcehacker/)
- **PeBear**
- **PeStudio**
- **[ResourceHacker](http://www.angusj.com/resourcehacker/)**
- PEファイルからリソースファイルの抽出編集が可能なツール
- PEiD
- [010 Editor](https://www.sweetscape.com/)
- **PEiD**
- **[010 Editor](https://www.sweetscape.com/)**
- 有償1ヶ月Trialありのテキストエディタバイナリエディタ
- Script機能による自動化
- [official repo](https://www.sweetscape.com/010editor/repository/scripts/)や個人サイトからダウンロード可能
@ -183,22 +183,22 @@ DFIR,マルウェア解析OSINTに特化したUbuntuベースのディスト
- [君にもできる目grepを使わない目grepリローデッドへの挑戦 (010 Editor編)](https://gist.github.com/yoggy/4116843)
- [Li-Script](https://github.com/lich4/personal_script)
- [010Editor-stuff](https://github.com/strazzere/010Editor-stuff)
- Process Hacker
- **Process Hacker**
- Mutexの確認が可能
- RegShot
- RegistryChangesView
- [CyberChef](https://gchq.github.io/CyberChef/)
- **RegShot**
- **RegistryChangesView**
- **[CyberChef](https://gchq.github.io/CyberChef/)**
- input(ファイル,文字列,データ)に対して様々なOperation(暗号化,復号,エンコード,デコード,情報抽出,変換,置換,計算,その他多数)を適用・組み合わせてOutputするWebサービス
- 適用・組み合わせたOperantinをレシピとしてURLで共有することができる
- [Chepy](https://github.com/securisec/chepy)と呼ばれるpython用ライブラリも開発されている
- [レシピ集](https://github.com/mattnotmax/cyberchef-recipes)
- [StringSifter](https://github.com/fireeye/stringsifter)
- **[StringSifter](https://github.com/fireeye/stringsifter)**
- 機械学習モデルによってファイルの含まれる文字列とマルウェアとの関連性をランク付けする
- [010 Editorに組み込むことも可能](https://www.sweetscape.com/010editor/repository/scripts/file_info.php?file=RateStrings.1sc&type=1&sort=)
- ref:
- [Learning to Rank Strings Output for Speedier Malware Analysis](https://www.fireeye.com/blog/threat-research/2019/05/learning-to-rank-strings-output-for-speedier-malware-analysis.html)
- wql
- **wql**
- wqlで子プロセスの検索
```
$procs=Start-Process "programname.exe" -PassThru
@ -227,29 +227,31 @@ echo $child_process
|MalwareConifg|https://malwareconfig.com/|特定マルウェアからconfig情報を抽出|
### Unpacker/Decryptor/Decoder/Extractor/Memory Scanner
- [TAFOF-Unpacker](https://github.com/Tera0017/TAFOF-Unpacker)<br>
- **[TAFOF-Unpacker](https://github.com/Tera0017/TAFOF-Unpacker)<br>**
攻撃者グループTA505が利用するマルウェア(GetandGoDll, Silence, TinyMet, Azorult, KBMiner, etc.)の静的アンパッカー<br>
- [Trickbot artifact decrypter](https://github.com/snemes/malware-analysis/tree/master/trickbot)<br>
- **[Trickbot artifact decrypter](https://github.com/snemes/malware-analysis/tree/master/trickbot)<br>**
Trickbotのartifactを取得するためのdecrypter<br>
- [VolatilityBot](https://github.com/mkorman90/VolatilityBot)<br>
- **[trick_settings_decoder.py](https://github.com/hasherezade/malware_analysis/tree/master/trickbot)**
Trickbotのartifactを取得するためのdecryter<br>その2
- **[VolatilityBot](https://github.com/mkorman90/VolatilityBot)<br>**
マルウェアサンプルやメモリダンプの自動分析(コードインジェクションの抽出プロセスダンプyaraスキャン文字列の抽出)<br>
- [Loki - Simple IOC Scanner](https://github.com/Neo23x0/Loki)<br>
- **[Loki - Simple IOC Scanner](https://github.com/Neo23x0/Loki)<br>**
IoCスキャナー(パス・ファイル名の正規表現マッチファイルとプロセスメモリのyaraスキャンhashマッチc2 IoCスキャンPE-Sieve)<br>
- [flare-floss](https://github.com/fireeye/flare-floss)<br>
- **[flare-floss](https://github.com/fireeye/flare-floss)<br>**
FireEye Labsの静的解析分析技術を利用して難読化された文字列を自動的に検知抽出デコード<br>
- [PE-Sieve](https://github.com/hasherezade/pe-sieve)<br>
- **[PE-Sieve](https://github.com/hasherezade/pe-sieve)<br>**
Process Hollowing,Injectionされた特定のプロセスをダンプ<br>
- [HollowsHunter](https://github.com/hasherezade/hollows_hunter)<br>
- **[HollowsHunter](https://github.com/hasherezade/hollows_hunter)<br>**
全プロセスもしくは特定の名称のプロセスのメモリをスキャンしProcess HollowingやInjectionを検知するすることが可能。[Pe-Sieve](https://github.com/hasherezade/pe-sieve)のと同じ開発者によって作成されたツールでありPe-Sieveのdllが内部で用いられている<br>
- [strings2](http://split-code.com/strings2.html)<br>
- **[strings2](http://split-code.com/strings2.html)<br>**
ファイルやプロセスメモリ内の文字列の抽出<br>
- [mnemosyne](https://github.com/nccgroup/mnemosyne)<br>
- **[mnemosyne](https://github.com/nccgroup/mnemosyne)<br>**
文字列,正規表現でプロセスメモリをスキャン<br>
- **ref:**<br>
- [Memory Scraping for Fun & Profit - Matt Lewis, NCC Group at CRESTCon & IIP Congress,youtube](https://www.youtube.com/watch?v=5HdYcE-woDc)
- [Memhunter](https://github.com/marcosd4h/memhunter)<br>
- **[Memhunter](https://github.com/marcosd4h/memhunter)<br>**
Injecition/Hollowingされたプロセスの自動検出<br>
- **ref:**<br>
- ref:<br>
- [Memhunter (Memory resident malware hunting at scale)](https://docs.google.com/presentation/d/1hgx2FTNIkry9Nt8LOJVz_rHNhcGfJChxZVGckv7VI8E/edit#slide=id.g5712e7065f_1_1)<br>
- [Reflective DLL Injection Detection through Memhunte,youtube](https://www.youtube.com/watch?v=t_fR1sCENkc)<br>
- [Process Hollowing Injection Detection through Memhunter,youtube](https://www.youtube.com/watch?v=QxCguP76uyg)<br>
@ -263,39 +265,39 @@ Injecition/Hollowingされたプロセスの自動検出<br>
> - Image Load Operations<br>
> - Kernel Audit APIs usage<br>
> - etc.<br>
- [Bisonal Analysis Utils](https://www.nttsecurity.com/docs/librariesprovider3/resources/Japan/bisonal-utils)
- **[Bisonal Analysis Utils](https://www.nttsecurity.com/docs/librariesprovider3/resources/Japan/bisonal-utils)**
- Bisonalに含まれる文字列のデコード通信の復号yaraルール
# Docment file Analysis
- VBA マクロの解析についての資料<br>
[Advanced VBA Macros Attack&Defence,BHEU2019](https://www.decalage.info/files/eu-19-Lagadec-Advanced-VBA-Macros-Attack-And-Defence.pdf)<br>
- [rtfobj](https://github.com/decalage2/oletools/wiki/rtfobj)<br>
- **[rtfobj](https://github.com/decalage2/oletools/wiki/rtfobj)<br>**
RTFファイルからOLEパッケージオブジェクトを検出し、埋め込みファイルを抽出<br>
# Other various file Analysis
### lnk file
- [LnkParse](https://pypi.org/project/LnkParse3/)
- **[LnkParse](https://pypi.org/project/LnkParse3/)**
- .lnkファイルのパーサ
- [[MS-SHLLINK]: Shell Link (.LNK) Binary File Format](https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-shllink/16cb4ca1-9339-4d0c-a68d-bf1d6cc0f943?redirectedfrom=MSDN)
- .lnkファイルのバイナリフォーマット
# C2 Analysis
- [C2MATRIX](https://www.thec2matrix.com/matrix)<br>
- **[C2MATRIX](https://www.thec2matrix.com/matrix)<br>**
- オープンソースのC2フレームワークとその比較表
- [SpreadSheet](https://docs.google.com/spreadsheets/d/1b4mUxa6cDQuTV2BPC6aA-GR4zGZi0ooPYtBe4IgPsSc/edit#gid=0)
### Emotet
- [Emutet](https://github.com/d00rt/emotet_network_protocol)<br>
- **[Emutet](https://github.com/d00rt/emotet_network_protocol)<br>**
- Emotetのc2通信部分のエミュレータ<br>
### Ursnif
- Ursnif(version 2)のc2通信の仕組みと復号ツールについて<br>
- **Ursnif(version 2)のc2通信の仕組みと復号ツールについて<br>**
- [Writing Malware Traffic Decrypters for ISFB/Ursnif](https://labs.sentinelone.com/writing-malware-traffic-decrypters-for-isfb-ursnif/)
# Binary Analysis
### Unpacking
- アンパックの流れ
- **アンパックの流れ**
- OEPの特定し,OEPまで実行
- pushad命令popad命令に着目。popad命令後のjmpでOEPに遷移する可能性がある(pushadした際のスタックのアドレスにハードウェアブレークポイントを設定することで監視)
- 動的に生成された領域に着目(領域にアクセスし,実行されるかをメモリブレークポイントを設定することで監視)
@ -308,16 +310,16 @@ RTFファイルからOLEパッケージオブジェクトを検出し、埋め
- PEヘッダはパックされたコードのIATを示しているので新たににインポートセクションを追加しそのセクションを認識するようにPEヘッダを修正する
- 基本的にツールを用いる
### [Microsoft Windows Library](https://en.wikipedia.org/wiki/Microsoft_Windows_library_files)
- NTDLL.DLL
- **NTDLL.DLL**
- Windows Native APIを提供
- Native APIはKERNEL32.DLLによってエクスポートされるKernel APIやbase APIの多くで使用されている
- Windows applicationから直接的に呼ばれることはほとんどない
- 公式ではドキュメント化されていないが,[こちら](https://undocumented.ntinternals.net/)からある程度確認可能
- KERNEL32.DLL
- **KERNEL32.DLL**
- メモリ操作入出力プロセスやスレッド管理同期処理を行うWin32 base APIを提供する
- USER32.DLL
- **USER32.DLL**
- GUIなどユーザインターフェース関連のAPIを提供
- MSVCRT.DLL
- **MSVCRT.DLL**
- ランタイム(CRT)ライブラリ
- MSVCコンパイラ用の標準C関数等(printf,malloc,etc.)の提供
- [Microsoft's C++ Standard Libraryのソースコード](https://github.com/llvm/llvm-project/tree/47282b1b4bf3e18d2e2166b87159115ed520a2aa)
@ -361,24 +363,24 @@ to do...
- [WMI 101 for Pentesters](https://www.ethicalhacker.net/features/root/wmi-101-for-pentesters/)
# Training Material
- [Malware-Traffic-Analysis(TRAFFIC ANALYSIS EXERCISES)](https://www.malware-traffic-analysis.net/training-exercises.html)<br>
- **[Malware-Traffic-Analysis(TRAFFIC ANALYSIS EXERCISES)](https://www.malware-traffic-analysis.net/training-exercises.html)<br>**
- pcap解析(マルウェア感染等のセキュリティインシデントに関わるトラフィック解析)に関するトレーニング教材<br>
- [Malware-Analysis-Training](https://github.com/OpenRCE/Malware-Analysis-Training)<br>
- **[Malware-Analysis-Training](https://github.com/OpenRCE/Malware-Analysis-Training)<br>**
- 初心者/中級者向けのマルウェア解析トレーニング教材<br>
- 教材自体は2010年頃のもので2020年にオープンソース化
- 内容:
- IDA proやOllyDBG等の解析ツールについて
- アセンブリ言語について
- パッキング,耐解析機能,バイナリ差分と比較,難読化,隠ぺい技術等
- [Advanced Binary Deobfuscation](https://github.com/malrev/ABD)
- **[Advanced Binary Deobfuscation](https://github.com/malrev/ABD)**
- バイナリの難読化解除に関するトレーニング教材
- 内容:
- 難読化技術や難読化解除技術について
- データフロー分析やシンボリック実行
- [Adversary Tactics: PowerShell](https://github.com/specterops/at-ps)
- **[Adversary Tactics: PowerShell](https://github.com/specterops/at-ps)**
- PowerShellスクリプトとセキュリティに関するトレーニング教材
- [CS6038 (Spring 2020) - Malware Analysis](https://www.youtube.com/playlist?list=PLFvh_k-n27CnAyfsMDowQmogkG5MbZkXz)
- [CS6038/CS5138 Malware Analysis, UC](https://class.malware.re/)
- **[CS6038 (Spring 2020) - Malware Analysis](https://www.youtube.com/playlist?list=PLFvh_k-n27CnAyfsMDowQmogkG5MbZkXz)**
- **[CS6038/CS5138 Malware Analysis, UC](https://class.malware.re/)**
- シンシナティ大学のマルウェア解析講義(Youtube,資料)
- [ExploitingBooks](https://github.com/hdbreaker/ExploitingBooks)
- **[ExploitingBooks](https://github.com/hdbreaker/ExploitingBooks)**
- ReverseEngineering,Exploitの資料集