Malware Analysis

AWSハッキングの学習と練習:HackTricks Training AWS Red Team Expert (ARTE) GCPハッキングの学習と練習: HackTricks Training GCP Red Team Expert (GRTE)

HackTricksのサポート

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

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

ツール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は、潜在的に望ましくないソフトウェアまたは確認されたマルウェアを識別する一連の条件です。ブルーチームは、この種の定義を使用して、自分たちのシステムネットワーク内のこの種の悪意のあるファイルを検索します。 これらの定義を共有することは非常に役立ちます。なぜなら、コンピューターでマルウェアが特定され、そのマルウェアの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 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シェルが最も多い可能性があります。

Last updated