mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-15 01:17:36 +00:00
165 lines
9.4 KiB
Markdown
165 lines
9.4 KiB
Markdown
# マルウェア分析
|
||
|
||
{% hint style="success" %}
|
||
AWSハッキングの学習と練習:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||
GCPハッキングの学習と練習: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||
|
||
<details>
|
||
|
||
<summary>HackTricksのサポート</summary>
|
||
|
||
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||
* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォロー**してください。
|
||
* ハッキングトリックを共有するために、[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。
|
||
|
||
</details>
|
||
{% endhint %}
|
||
|
||
## フォレンジックチートシート
|
||
|
||
[https://www.jaiminton.com/cheatsheet/DFIR/#](https://www.jaiminton.com/cheatsheet/DFIR/)
|
||
|
||
## オンラインサービス
|
||
|
||
* [VirusTotal](https://www.virustotal.com/gui/home/upload)
|
||
* [HybridAnalysis](https://www.hybrid-analysis.com)
|
||
* [Koodous](https://koodous.com)
|
||
* [Intezer](https://analyze.intezer.com)
|
||
* [Any.Run](https://any.run/)
|
||
|
||
## オフラインアンチウイルスおよび検出ツール
|
||
|
||
### Yara
|
||
|
||
#### インストール
|
||
```bash
|
||
sudo apt-get install -y yara
|
||
```
|
||
#### ルールの準備
|
||
|
||
このスクリプトを使用して、github からすべての yara マルウェアルールをダウンロードしてマージします: [https://gist.github.com/andreafortuna/29c6ea48adf3d45a979a78763cdc7ce9](https://gist.github.com/andreafortuna/29c6ea48adf3d45a979a78763cdc7ce9)\
|
||
_**rules**_ ディレクトリを作成して、それを実行します。これにより、マルウェアのすべての yara ルールが含まれる _**malware\_rules.yar**_ というファイルが作成されます。
|
||
```bash
|
||
wget https://gist.githubusercontent.com/andreafortuna/29c6ea48adf3d45a979a78763cdc7ce9/raw/4ec711d37f1b428b63bed1f786b26a0654aa2f31/malware_yara_rules.py
|
||
mkdir rules
|
||
python malware_yara_rules.py
|
||
```
|
||
#### スキャン
|
||
```bash
|
||
yara -w malware_rules.yar image #Scan 1 file
|
||
yara -w malware_rules.yar folder #Scan the whole folder
|
||
```
|
||
#### YaraGen: マルウェアのチェックとルールの作成
|
||
|
||
バイナリからyaraルールを生成するためにツール[YaraGen](https://github.com/Neo23x0/yarGen)を使用できます。これらのチュートリアルをチェックしてください: [Part 1](https://www.nextron-systems.com/2015/02/16/write-simple-sound-yara-rules/), [Part 2](https://www.nextron-systems.com/2015/10/17/how-to-write-simple-but-sound-yara-rules-part-2/), [Part 3](https://www.nextron-systems.com/2016/04/15/how-to-write-simple-but-sound-yara-rules-part-3/)
|
||
```bash
|
||
python3 yarGen.py --update
|
||
python3.exe yarGen.py --excludegood -m ../../mals/
|
||
```
|
||
### ClamAV
|
||
|
||
#### インストール
|
||
```
|
||
sudo apt-get install -y clamav
|
||
```
|
||
#### スキャン
|
||
```bash
|
||
sudo freshclam #Update rules
|
||
clamscan filepath #Scan 1 file
|
||
clamscan folderpath #Scan the whole folder
|
||
```
|
||
### [Capa](https://github.com/mandiant/capa)
|
||
|
||
**Capa**は、実行可能ファイル(PE、ELF、.NET)内の潜在的に悪意のある**機能**を検出します。そのため、Att\&ckの戦術や以下のような疑わしい機能を見つけることができます:
|
||
|
||
- OutputDebugStringエラーのチェック
|
||
- サービスとして実行
|
||
- プロセスの作成
|
||
|
||
[**Githubリポジトリ**](https://github.com/mandiant/capa)から入手できます。
|
||
|
||
### IOCs
|
||
|
||
IOCはCompromiseのインジケーターを意味します。IOCは、潜在的に望ましくないソフトウェアまたは確認された**マルウェア**を識別する一連の**条件**です。ブルーチームは、これらの定義を使用して、自分たちの**システム**や**ネットワーク**内のこの種の悪意のあるファイルを**検索**します。\
|
||
これらの定義を共有することは非常に役立ちます。なぜなら、コンピューターでマルウェアが特定され、そのマルウェアのIOCが作成されると、他のブルーチームがそれを使用してマルウェアをより速く特定できるからです。
|
||
|
||
IOCを作成または変更するためのツールは[**IOC Editor**](https://www.fireeye.com/services/freeware/ioc-editor.html)**です。**\
|
||
[**Redline**](https://www.fireeye.com/services/freeware/redline.html)などのツールを使用して、デバイス内で定義されたIOCを**検索**することができます。
|
||
|
||
### Loki
|
||
|
||
[**Loki**](https://github.com/Neo23x0/Loki)は、シンプルなCompromiseのインジケーターのスキャナーです。\
|
||
検出は、4つの検出方法に基づいています:
|
||
```
|
||
1. File Name IOC
|
||
Regex match on full file path/name
|
||
|
||
2. Yara Rule Check
|
||
Yara signature matches on file data and process memory
|
||
|
||
3. Hash Check
|
||
Compares known malicious hashes (MD5, SHA1, SHA256) with scanned files
|
||
|
||
4. C2 Back Connect Check
|
||
Compares process connection endpoints with C2 IOCs (new since version v.10)
|
||
```
|
||
### Linux Malware Detect
|
||
|
||
[**Linux Malware Detect (LMD)**](https://www.rfxn.com/projects/linux-malware-detect/)は、GNU GPLv2ライセンスの下でリリースされたLinux用のマルウェアスキャナーであり、共有ホスト環境で直面する脅威を中心に設計されています。ネットワークエッジ侵入検知システムからの脅威データを使用して、攻撃で実際に使用されているマルウェアを抽出し、検出用のシグネチャを生成します。さらに、脅威データは、LMDチェックアウト機能とマルウェアコミュニティリソースからも派生しています。
|
||
|
||
### rkhunter
|
||
|
||
[**rkhunter**](http://rkhunter.sourceforge.net)のようなツールは、**rootkit**やマルウェアの可能性をチェックするために使用できます。
|
||
```bash
|
||
sudo ./rkhunter --check -r / -l /tmp/rkhunter.log [--report-warnings-only] [--skip-keypress]
|
||
```
|
||
### FLOSS
|
||
|
||
[**FLOSS**](https://github.com/mandiant/flare-floss)は、さまざまな技術を使用して、実行可能ファイル内の難読化された文字列を見つけようとするツールです。
|
||
|
||
### PEpper
|
||
|
||
[PEpper](https://github.com/Th3Hurrican3/PEpper)は、実行可能ファイル内の基本的な情報(バイナリデータ、エントロピー、URLやIP、一部のyaraルール)をチェックします。
|
||
|
||
### PEstudio
|
||
|
||
[PEstudio](https://www.winitor.com/download)は、Windowsの実行可能ファイルのインポート、エクスポート、ヘッダなどの情報を取得できるツールであり、また、ウイルストータルをチェックし、潜在的なAtt\&ck技術を見つけることもできます。
|
||
|
||
### Detect It Easy(DiE)
|
||
|
||
[**DiE**](https://github.com/horsicq/Detect-It-Easy/)は、ファイルが**暗号化**されているかどうかを検出し、**パッカー**を見つけるツールです。
|
||
|
||
### NeoPI
|
||
|
||
[**NeoPI**](https://github.com/CiscoCXSecurity/NeoPI)は、Pythonスクリプトであり、さまざまな**統計的手法**を使用して、テキスト/スクリプトファイル内の**難読化**および**暗号化**されたコンテンツを検出します。 NeoPIの目的は、**隠されたWebシェルコード**の検出を支援することです。
|
||
|
||
### **php-malware-finder**
|
||
|
||
[**PHP-malware-finder**](https://github.com/nbs-system/php-malware-finder)は、**難読化**/**怪しいコード**や、**マルウェア**/Webシェルでよく使用される**PHP**関数を使用しているファイルを検出するために最善を尽くします。
|
||
|
||
### Apple Binary Signatures
|
||
|
||
**マルウェアサンプル**をチェックする際には、バイナリの**署名**を常にチェックする必要があります。署名を行った**開発者**がすでに**マルウェア**と関連している可能性があるためです。
|
||
```bash
|
||
#Get signer
|
||
codesign -vv -d /bin/ls 2>&1 | grep -E "Authority|TeamIdentifier"
|
||
|
||
#Check if the app’s contents have been modified
|
||
codesign --verify --verbose /Applications/Safari.app
|
||
|
||
#Check if the signature is valid
|
||
spctl --assess --verbose /Applications/Safari.app
|
||
```
|
||
## 検知技術
|
||
|
||
### ファイルの積み重ね
|
||
|
||
Webサーバーの**ファイル**が含まれるフォルダが**ある日付に最後に更新された**ことを知っている場合は、**Webサーバーのすべてのファイルが作成および変更された日付**を**チェック**し、**疑わしい**日付があればそのファイルをチェックします。
|
||
|
||
### ベースライン
|
||
|
||
フォルダのファイルが**変更されていないはず**の場合、フォルダの**元のファイル**の**ハッシュ**を計算し、**現在の**ファイルと**比較**します。変更されたものは**疑わしい**です。
|
||
|
||
### 統計分析
|
||
|
||
情報がログに保存されている場合、Webサーバーの各ファイルがアクセスされた回数などの統計情報を**チェック**できます。Webシェルが最も多い可能性があります。
|