マルウェア分析

Reading time: 9 minutes

tip

AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE) Azureハッキングを学び、実践する:HackTricks Training Azure Red Team Expert (AzRTE)

HackTricksをサポートする

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

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

オンラインサービス

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

Yara

インストール

bash
sudo apt-get install -y yara

ルールの準備

このスクリプトを使用して、GitHubからすべてのyaraマルウェアルールをダウンロードしてマージします: 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を使用できます。これらのチュートリアルをチェックしてください: Part 1, Part 2, 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

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

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

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

IOCs

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

IOC を作成または修正するためのツールは IOC Editorです。
Redline のようなツールを使用して、デバイス内の定義された IOC を検索 できます。

Loki

Loki は、シンプルなコンプロマイズの指標をスキャンするツールです。
検出は、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 やマルウェアをチェックできます。

bash
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の目的は、隠れたウェブシェルコードの検出を支援することです。

php-malware-finder

PHP-malware-finderは、難読化された/怪しいコードや、マルウェア/ウェブシェルでよく使用される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

検出技術

ファイルスタッキング

ウェブサーバーのファイルを含むフォルダーが最終更新された日付を知っている場合、ウェブサーバーのすべてのファイルが作成および変更された日付確認し、疑わしい日付があれば、そのファイルを確認してください。

ベースライン

フォルダーのファイルが変更されるべきではなかった場合、フォルダーの元のファイルハッシュを計算し、現在のものと比較できます。変更されたものは疑わしいです。

統計分析

情報がログに保存されている場合、各ウェブサーバーのファイルがどれだけアクセスされたかなどの統計確認できます。ウェブシェルの一つが最も多いかもしれません。

tip

AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE) Azureハッキングを学び、実践する:HackTricks Training Azure Red Team Expert (AzRTE)

HackTricksをサポートする