hacktricks/generic-methodologies-and-resources/basic-forensic-methodology/malware-analysis.md

8.5 KiB
Raw Blame History

Malware-Analyse

{% hint style="success" %} Lernen Sie AWS-Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen Sie GCP-Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Unterstützen Sie HackTricks
{% endhint %}

Forensik-Spickzettel

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

Online-Dienste

Offline-Antiviren- und Erkennungstools

Yara

Installieren

sudo apt-get install -y yara

Vorbereitung von Regeln

Verwenden Sie dieses Skript, um alle Yara-Malware-Regeln von GitHub herunterzuladen und zusammenzuführen: https://gist.github.com/andreafortuna/29c6ea48adf3d45a979a78763cdc7ce9
Erstellen Sie das Verzeichnis rules und führen Sie es aus. Dadurch wird eine Datei namens malware_rules.yar erstellt, die alle Yara-Regeln für Malware enthält.

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

Scannen

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

YaraGen: Überprüfen von Malware und Erstellen von Regeln

Sie können das Tool YaraGen verwenden, um Yara-Regeln aus einem Binärfile zu generieren. Schauen Sie sich diese Tutorials an: Teil 1, Teil 2, Teil 3

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

ClamAV

Installation

sudo apt-get install -y clamav

Scannen

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

Capa

Capa erkennt potenziell bösartige Fähigkeiten in ausführbaren Dateien: PE, ELF, .NET. Es wird also Dinge wie Att&ck-Taktiken oder verdächtige Fähigkeiten wie:

  • Überprüfung auf OutputDebugString-Fehler
  • Ausführen als Dienst
  • Prozess erstellen

Holen Sie es sich im Github-Repo.

IOCs

IOC bedeutet Indicator Of Compromise. Ein IOC ist eine Reihe von Bedingungen, die einige potenziell unerwünschte Software oder bestätigte Malware identifizieren. Blue Teams verwenden diese Art von Definition, um nach solchen bösartigen Dateien in ihren Systemen und Netzwerken zu suchen.
Das Teilen dieser Definitionen ist sehr nützlich, da, wenn Malware auf einem Computer identifiziert wird und ein IOC für diese Malware erstellt wird, andere Blue Teams es verwenden können, um die Malware schneller zu identifizieren.

Ein Tool zum Erstellen oder Modifizieren von IOCs ist der IOC-Editor.
Sie können Tools wie Redline verwenden, um definierte IOCs auf einem Gerät zu suchen.

Loki

Loki ist ein Scanner für einfache Indikatoren für Kompromittierungen.
Die Erkennung basiert auf vier Erkennungsmethoden:

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) ist ein Malware-Scanner für Linux, der unter der GNU GPLv2-Lizenz veröffentlicht wurde und der um die Bedrohungen herum entwickelt wurde, denen man in gemeinsam genutzten Hosting-Umgebungen gegenübersteht. Er verwendet Bedrohungsdaten von Netzwerkrand-Eindringungserkennungssystemen, um Malware zu extrahieren, die aktiv bei Angriffen verwendet wird, und generiert Signaturen zur Erkennung. Darüber hinaus stammen Bedrohungsdaten auch aus Benutzereinreichungen mit der LMD-Checkout-Funktion und aus Malware-Community-Ressourcen.

rkhunter

Tools wie rkhunter können verwendet werden, um das Dateisystem auf mögliche Rootkits und Malware zu überprüfen.

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

FLOSS

FLOSS ist ein Tool, das versucht, obfuskierte Zeichenfolgen in ausführbaren Dateien mithilfe verschiedener Techniken zu finden.

PEpper

PEpper überprüft einige grundlegende Dinge innerhalb der ausführbaren Datei (Binärdaten, Entropie, URLs und IPs, einige Yara-Regeln).

PEstudio

PEstudio ist ein Tool, das Informationen über Windows-Executable wie Imports, Exports, Header liefert, aber auch Virus Total überprüft und potenzielle Att&ck-Techniken findet.

Detect It Easy(DiE)

DiE ist ein Tool, um festzustellen, ob eine Datei verschlüsselt ist und auch Packer zu finden.

NeoPI

NeoPI ist ein Python-Skript, das eine Vielzahl von statistischen Methoden verwendet, um obfuskierte und verschlüsselte Inhalte in Text-/Skriptdateien zu erkennen. Der beabsichtigte Zweck von NeoPI besteht darin, bei der Erkennung von verstecktem Web-Shell-Code zu helfen.

php-malware-finder

PHP-malware-finder tut sein Bestes, um obfuskierten/fragwürdigen Code sowie Dateien zu erkennen, die PHP-Funktionen verwenden, die häufig in Malware/Webshells verwendet werden.

Apple Binary Signatures

Beim Überprüfen einer Malware-Probe sollten Sie immer die Signatur der Binärdatei überprüfen, da der Entwickler, der sie signiert hat, möglicherweise bereits mit Malware in Verbindung gebracht wird.

#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

Erkennungstechniken

Dateistapelung

Wenn Sie wissen, dass ein Ordner, der die Dateien eines Webservers enthält, zuletzt am Datum aktualisiert wurde. Überprüfen Sie das Datum, an dem alle Dateien im Webserver erstellt und geändert wurden, und wenn ein Datum verdächtig ist, überprüfen Sie diese Datei.

Baselines

Wenn die Dateien eines Ordners nicht geändert worden sein sollten, können Sie den Hash der ursprünglichen Dateien des Ordners berechnen und sie mit den aktuellen vergleichen. Alles, was geändert wurde, wird verdächtig sein.

Statistische Analyse

Wenn die Informationen in Protokollen gespeichert sind, können Sie Statistiken überprüfen, wie oft auf jede Datei eines Webservers zugegriffen wurde, da eine Webshell eine der häufigsten sein könnte.