hacktricks/forensics/basic-forensic-methodology/malware-analysis.md

9.4 KiB
Raw Blame History

マルウェア分析

{% hint style="success" %} AWSハッキングの学習と練習:HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングの学習と練習: HackTricks Training GCP Red Team Expert (GRTE)

HackTricksのサポート
{% endhint %}

フォレンジックチートシート

https://www.jaiminton.com/cheatsheet/DFIR/#

オンラインサービス

オフラインアンチウイルスおよび検出ツール

Yara

インストール

sudo apt-get install -y yara

ルールの準備

このスクリプトを使用して、github からすべての yara マルウェアルールをダウンロードしてマージします: https://gist.github.com/andreafortuna/29c6ea48adf3d45a979a78763cdc7ce9
rules ディレクトリを作成して、それを実行します。これにより、マルウェアのすべての yara ルールが含まれる malware_rules.yar というファイルが作成されます。

wget https://gist.githubusercontent.com/andreafortuna/29c6ea48adf3d45a979a78763cdc7ce9/raw/4ec711d37f1b428b63bed1f786b26a0654aa2f31/malware_yara_rules.py
mkdir rules
python malware_yara_rules.py

スキャン

yara -w malware_rules.yar image  #Scan 1 file
yara -w malware_rules.yar folder #Scan the whole folder

YaraGen: マルウェアのチェックとルールの作成

バイナリからyaraルールを生成するためにツールYaraGenを使用できます。これらのチュートリアルをチェックしてください: Part 1, Part 2, Part 3

python3 yarGen.py --update
python3.exe yarGen.py --excludegood -m  ../../mals/

ClamAV

インストール

sudo apt-get install -y clamav

スキャン

sudo freshclam      #Update rules
clamscan filepath   #Scan 1 file
clamscan folderpath #Scan the whole folder

Capa

Capaは、実行可能ファイルPE、ELF、.NET内の潜在的に悪意のある機能を検出します。そのため、Att&ckの戦術や以下のような疑わしい機能を見つけることができます:

  • OutputDebugStringエラーのチェック
  • サービスとして実行
  • プロセスの作成

Githubリポジトリから入手できます。

IOCs

IOCはCompromiseのインジケーターを意味します。IOCは、潜在的に望ましくないソフトウェアまたは確認されたマルウェアを識別する一連の条件です。ブルーチームは、これらの定義を使用して、自分たちのシステムネットワーク内のこの種の悪意のあるファイルを検索します。
これらの定義を共有することは非常に役立ちます。なぜなら、コンピューターでマルウェアが特定され、そのマルウェアのIOCが作成されると、他のブルーチームがそれを使用してマルウェアをより速く特定できるからです。

IOCを作成または変更するためのツールはIOC Editorです。
Redlineなどのツールを使用して、デバイス内で定義されたIOCを検索することができます。

Loki

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)は、GNU GPLv2ライセンスの下でリリースされたLinux用のマルウェアスキャナーであり、共有ホスト環境で直面する脅威を中心に設計されています。ネットワークエッジ侵入検知システムからの脅威データを使用して、攻撃で実際に使用されているマルウェアを抽出し、検出用のシグネチャを生成します。さらに、脅威データは、LMDチェックアウト機能とマルウェアコミュニティリソースからも派生しています。

rkhunter

rkhunterのようなツールは、rootkitやマルウェアの可能性をチェックするために使用できます。

sudo ./rkhunter --check -r / -l /tmp/rkhunter.log [--report-warnings-only] [--skip-keypress]

FLOSS

FLOSSは、さまざまな技術を使用して、実行可能ファイル内の難読化された文字列を見つけようとするツールです。

PEpper

PEpperは、実行可能ファイル内の基本的な情報バイナリデータ、エントロピー、URLやIP、一部のyaraルールをチェックします。

PEstudio

PEstudioは、Windowsの実行可能ファイルのインポート、エクスポート、ヘッダなどの情報を取得できるツールであり、また、ウイルストータルをチェックし、潜在的なAtt&ck技術を見つけることもできます。

Detect It Easy(DiE)

DiEは、ファイルが暗号化されているかどうかを検出し、パッカーを見つけるツールです。

NeoPI

NeoPIは、Pythonスクリプトであり、さまざまな統計的手法を使用して、テキスト/スクリプトファイル内の難読化および暗号化されたコンテンツを検出します。 NeoPIの目的は、隠されたWebシェルコードの検出を支援することです。

php-malware-finder

PHP-malware-finderは、難読化/怪しいコードや、マルウェア/Webシェルでよく使用されるPHP関数を使用しているファイルを検出するために最善を尽くします。

Apple Binary Signatures

マルウェアサンプルをチェックする際には、バイナリの署名を常にチェックする必要があります。署名を行った開発者がすでにマルウェアと関連している可能性があるためです。

#Get signer
codesign -vv -d /bin/ls 2>&1 | grep -E "Authority|TeamIdentifier"

#Check if the apps 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シェルが最も多い可能性があります。