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

11 KiB
Raw Blame History

マルウェア分析

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

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

バイナリからyaraルールを生成するために、ツールYaraGenを使用できます。これらのチュートリアルをチェックしてください: パート1, パート2, パート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は、望ましくないソフトウェアや確認されたマルウェアを特定する条件のセットです。Blue Teamsはこの種の定義を使用して、自分たちのシステムネットワーク内でこの種の悪意のあるファイルを検索します
これらの定義を共有することは非常に有用です。なぜなら、コンピュータにマルウェアが特定され、そのマルウェアのIOCが作成されると、他のBlue Teamsがマルウェアをより速く特定するために使用できるからです。

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

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 のようなツールは、ファイルシステムを rootkits やマルウェアの可能性についてチェックするために使用できます。

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

FLOSS

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

PEpper

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

PEstudio

PEstudio はWindows実行可能ファイルの情報を取得するツールで、インポート、エクスポート、ヘッダーを調べるだけでなく、virus totalをチェックし、潜在的なAtt&ck技術を見つけます。

Detect It Easy(DiE)

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

NeoPI

NeoPI は、テキスト/スクリプトファイル内の難読化された暗号化されたコンテンツを検出するために、さまざまな統計的方法を使用するPythonスクリプトです。NeoPIの目的は、隠されたウェブシェルコードの検出に役立てることです。

php-malware-finder

PHP-malware-finder は、難読化された/怪しいコード、および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

検出技術

ファイルスタッキング

あるフォルダに含まれるファイル最終更新日に更新されたことが分かっている場合。ウェブサーバーの全ファイルの作成日と変更日を確認し、怪しい日付があれば、そのファイルをチェックします。

ベースライン

フォルダのファイルが変更されていないはずの場合、フォルダのオリジナルファイルハッシュを計算し、現在のものと比較します。変更されたものは怪しいとされます。

統計分析

ログに情報が保存されている場合、ウェブサーバーの各ファイルがアクセスされた回数などの統計を確認できます。ウェブシェルは最も多くアクセスされる可能性があります。

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

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