hacktricks/forensics/basic-forensic-methodology/malware-analysis.md
2024-02-10 15:36:32 +00:00

14 KiB
Raw Blame History

Malware-Analyse

Lernen Sie AWS-Hacking von Grund auf mit htARTE (HackTricks AWS Red Team Expert)!

Andere Möglichkeiten, HackTricks zu unterstützen:

Forensik-Spickzettel

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

Online-Dienste

Offline-Antiviren- und Erkennungstools

Yara

Installation

sudo apt-get install -y yara

Vorbereitung der 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

The first step in malware analysis is to scan the suspicious file or program. This can be done using various tools and techniques. The purpose of scanning is to identify any known malware signatures or indicators of compromise (IOCs) that may be present in the file.

Some popular scanning tools include antivirus software, sandboxing tools, and static analysis tools. These tools can help detect and analyze the behavior of the file, identify any malicious code or behavior, and provide information about the file's structure and functionality.

During the scanning process, it is important to compare the file against a database of known malware signatures and IOCs. This can help determine if the file is a known malware variant or if it exhibits any suspicious behavior that may indicate the presence of malware.

Additionally, scanning can also help identify any potential vulnerabilities or weaknesses in the file that could be exploited by attackers. This information can be useful in understanding how the malware operates and how it can be mitigated or prevented.

Overall, scanning is an essential step in malware analysis as it helps identify and understand the nature of the suspicious file or program. It provides valuable insights into the file's behavior, structure, and potential risks, allowing for effective mitigation and prevention strategies.
Der erste Schritt bei der Malware-Analyse besteht darin, die verdächtige Datei oder das verdächtige Programm zu scannen. Dies kann mit verschiedenen Tools und Techniken durchgeführt werden. Der Zweck des Scannens besteht darin, bekannte Malware-Signaturen oder Indikatoren für Kompromittierungen (IOCs) zu identifizieren, die in der Datei vorhanden sein können.

Einige beliebte Scanning-Tools sind Antivirensoftware, Sandbox-Tools und statische Analyse-Tools. Diese Tools können dabei helfen, das Verhalten der Datei zu erkennen und zu analysieren, bösartigen Code oder Verhalten zu identifizieren und Informationen über die Struktur und Funktionalität der Datei bereitzustellen.

Während des Scannens ist es wichtig, die Datei mit einer Datenbank bekannter Malware-Signaturen und IOCs zu vergleichen. Dies kann dabei helfen festzustellen, ob die Datei eine bekannte Malware-Variante ist oder ob sie ein verdächtiges Verhalten aufweist, das auf das Vorhandensein von Malware hinweisen könnte.

Darüber hinaus kann das Scannen auch dabei helfen, potenzielle Schwachstellen oder Schwachstellen in der Datei zu identifizieren, die von Angreifern ausgenutzt werden könnten. Diese Informationen können dabei helfen, zu verstehen, wie die Malware funktioniert und wie sie gemildert oder verhindert werden kann.

Insgesamt ist das Scannen ein wesentlicher Schritt bei der Malware-Analyse, da es dabei hilft, die Natur der verdächtigen Datei oder des verdächtigen Programms zu identifizieren und zu verstehen. Es liefert wertvolle Einblicke in das Verhalten, die Struktur und potenzielle Risiken der Datei und ermöglicht effektive Strategien zur Minderung und Prävention.
yara -w malware_rules.yar image  #Scan 1 file
yara -w malware_rules.yar folder #Scan the whole folder

YaraGen: Überprüfen Sie auf Malware und erstellen Sie Regeln

Sie können das Tool YaraGen verwenden, um Yara-Regeln aus einer Binärdatei 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

To install ClamAV, follow these steps:

  1. Update the package list:

    sudo apt update
    
  2. Install ClamAV:

    sudo apt install clamav
    
  3. Update the virus database:

    sudo freshclam
    
  4. Verify the installation:

    clamscan --version
    

    The output should display the ClamAV version.

Scanning Files

To scan a file or directory with ClamAV, use the following command:

clamscan [options] [file/directory]

Replace [options] with any desired scanning options and [file/directory] with the path to the file or directory you want to scan.

Updating the Virus Database

To update the ClamAV virus database, run the following command:

sudo freshclam

This will download the latest virus definitions and keep your system protected against new threats.

Scheduling Scans

To schedule regular scans with ClamAV, you can use the cron utility. Edit the crontab file by running:

crontab -e

Add the following line to schedule a daily scan at 2:00 AM:

0 2 * * * clamscan -r /path/to/scan > /dev/null 2>&1

Replace /path/to/scan with the actual path you want to scan.

Save the file and exit the editor. The scan will now run automatically at the specified time.

sudo apt-get install -y clamav

Scannen

Scannen Sie die verdächtige Datei oder den verdächtigen Code mit einem zuverlässigen Antivirenprogramm, um nach bekannten Malware-Signaturen zu suchen. Verwenden Sie auch andere Sicherheitswerkzeuge wie Sandbox-Analysatoren, um das Verhalten der Datei in einer isolierten Umgebung zu überprüfen.

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

Capa

Capa erkennt potenziell schädliche Fähigkeiten in ausführbaren Dateien: PE, ELF, .NET. Es findet 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-Repository.

IOCs

IOC steht für Indicator Of Compromise. Ein IOC ist eine Reihe von Bedingungen, die 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 andere Blue Teams sie verwenden können, um die Malware schneller zu identifizieren, wenn sie auf einem Computer erkannt wird und ein IOC für diese Malware erstellt wird.

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

Loki

Loki ist ein Scanner für einfache Indikatoren für Kompromittierung.
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 wird und speziell für die Bedrohungen in gemeinsam genutzten Hosting-Umgebungen entwickelt wurde. Er verwendet Bedrohungsdaten von Intrusion-Detection-Systemen am Netzwerkrand, um aktiv genutzte Malware bei Angriffen zu erkennen und Signaturen zur Erkennung zu generieren. Darüber hinaus werden Bedrohungsdaten auch aus Benutzereinreichungen mit der LMD-Checkout-Funktion und aus Ressourcen der Malware-Community abgeleitet.

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 Zeichenketten in ausführbaren Dateien mithilfe verschiedener Techniken zu finden.

PEpper

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

PEstudio

PEstudio ist ein Tool, das Informationen über Windows-Executable-Dateien wie Imports, Exports und Header abruft, aber auch VirusTotal ü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 um Packer zu finden.

NeoPI

NeoPI ist ein Python-Skript, das verschiedene statistische 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 Webshell-Code zu helfen.

php-malware-finder

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

Apple-Binärsignaturen

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

Datei-Stacking

Wenn Sie wissen, dass sich in einem Ordner die Dateien eines Webservers befinden, die zuletzt am Datum X aktualisiert wurden, überprüfen Sie das Erstellungs- und Änderungsdatum aller Dateien auf dem Webserver. 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-Wert der ursprünglichen Dateien des Ordners berechnen und mit den aktuellen Dateien vergleichen. Alles, was geändert wurde, ist verdächtig.

Statistische Analyse

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

Lernen Sie AWS-Hacking von Grund auf mit htARTE (HackTricks AWS Red Team Expert)!

Andere Möglichkeiten, HackTricks zu unterstützen: