Malware Analysis

htARTE(HackTricks AWS Red Team Expert) でゼロからヒーローまでAWSハッキングを学ぶ

HackTricks をサポートする他の方法:

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

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

オンラインサービス

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

Yara

インストール

sudo apt-get install -y yara

ルールの準備

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

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: マルウェアのチェックとルールの作成

ツールYaraGenを使用して、バイナリからyaraルールを生成することができます。これらのチュートリアルをチェックしてください: 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は、実行可能ファイル(PE、ELF、.NET)で潜在的に悪意のある機能を検出します。Att&ckの戦術や疑わしい機能などを見つけることができます:

  • OutputDebugStringエラーのチェック

  • サービスとして実行

  • プロセスの作成

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

IOCs

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

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 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シェルがそのうちの1つである可能性があります。

Last updated