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

271 lines
14 KiB
Markdown
Raw Normal View History

2024-02-10 15:36:32 +00:00
# Malware-Analyse
2022-04-28 16:01:33 +00:00
<details>
2024-02-10 15:36:32 +00:00
<summary><strong>Lernen Sie AWS-Hacking von Grund auf mit</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
2022-04-28 16:01:33 +00:00
2024-02-10 15:36:32 +00:00
Andere Möglichkeiten, HackTricks zu unterstützen:
2023-12-30 10:12:47 +00:00
2024-02-10 15:36:32 +00:00
* Wenn Sie Ihr **Unternehmen in HackTricks bewerben möchten** oder **HackTricks als PDF herunterladen möchten**, überprüfen Sie die [**ABONNEMENTPLÄNE**](https://github.com/sponsors/carlospolop)!
* Holen Sie sich das [**offizielle PEASS & HackTricks-Merchandise**](https://peass.creator-spring.com)
* Entdecken Sie [**The PEASS Family**](https://opensea.io/collection/the-peass-family), unsere Sammlung exklusiver [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Treten Sie der** 💬 [**Discord-Gruppe**](https://discord.gg/hRep4RUj7f) oder der [**Telegram-Gruppe**](https://t.me/peass) **bei oder folgen** Sie uns auf **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
* **Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) **und** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **GitHub-Repositories senden.**
2022-04-28 16:01:33 +00:00
</details>
2024-02-10 15:36:32 +00:00
## Forensik-Spickzettel
2022-05-01 16:32:23 +00:00
[https://www.jaiminton.com/cheatsheet/DFIR/#](https://www.jaiminton.com/cheatsheet/DFIR/)
2024-02-10 15:36:32 +00:00
## Online-Dienste
* [VirusTotal](https://www.virustotal.com/gui/home/upload)
* [HybridAnalysis](https://www.hybrid-analysis.com)
* [Koodous](https://koodous.com)
* [Intezer](https://analyze.intezer.com)
* [Any.Run](https://any.run/)
2024-02-10 15:36:32 +00:00
## Offline-Antiviren- und Erkennungstools
### Yara
2024-02-10 15:36:32 +00:00
#### Installation
2020-12-21 20:50:30 +00:00
```bash
sudo apt-get install -y yara
```
2024-02-10 15:36:32 +00:00
#### Vorbereitung der Regeln
2024-02-10 15:36:32 +00:00
Verwenden Sie dieses Skript, um alle YARA-Malware-Regeln von GitHub herunterzuladen und zusammenzuführen: [https://gist.github.com/andreafortuna/29c6ea48adf3d45a979a78763cdc7ce9](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.
2020-12-21 20:50:30 +00:00
```bash
wget https://gist.githubusercontent.com/andreafortuna/29c6ea48adf3d45a979a78763cdc7ce9/raw/4ec711d37f1b428b63bed1f786b26a0654aa2f31/malware_yara_rules.py
mkdir rules
python malware_yara_rules.py
```
2024-02-10 15:36:32 +00:00
#### Scannen
```markdown
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.
```
```html
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.
2024-02-10 15:36:32 +00:00
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.
2024-02-10 15:36:32 +00:00
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.
```
2020-12-21 20:50:30 +00:00
```bash
yara -w malware_rules.yar image #Scan 1 file
2022-09-08 08:47:03 +00:00
yara -w malware_rules.yar folder #Scan the whole folder
```
2024-02-10 15:36:32 +00:00
#### YaraGen: Überprüfen Sie auf Malware und erstellen Sie Regeln
Sie können das Tool [**YaraGen**](https://github.com/Neo23x0/yarGen) verwenden, um Yara-Regeln aus einer Binärdatei zu generieren. Schauen Sie sich diese Tutorials an: [**Teil 1**](https://www.nextron-systems.com/2015/02/16/write-simple-sound-yara-rules/), [**Teil 2**](https://www.nextron-systems.com/2015/10/17/how-to-write-simple-but-sound-yara-rules-part-2/), [**Teil 3**](https://www.nextron-systems.com/2016/04/15/how-to-write-simple-but-sound-yara-rules-part-3/)
```bash
python3 yarGen.py --update
python3.exe yarGen.py --excludegood -m ../../mals/
```
### ClamAV
#### Installation
To install ClamAV, follow these steps:
1. Update the package list:
```bash
sudo apt update
```
2. Install ClamAV:
```bash
sudo apt install clamav
```
3. Update the virus database:
```bash
sudo freshclam
```
4. Verify the installation:
```bash
clamscan --version
```
2024-02-10 15:36:32 +00:00
The output should display the ClamAV version.
2021-08-16 23:29:43 +00:00
2024-02-10 15:36:32 +00:00
#### Scanning Files
To scan a file or directory with ClamAV, use the following command:
2021-08-16 23:29:43 +00:00
2021-08-18 23:59:47 +00:00
```bash
2024-02-10 15:36:32 +00:00
clamscan [options] [file/directory]
2021-08-18 23:59:47 +00:00
```
2024-02-10 15:36:32 +00:00
Replace `[options]` with any desired scanning options and `[file/directory]` with the path to the file or directory you want to scan.
2024-02-10 15:36:32 +00:00
#### Updating the Virus Database
2024-02-10 15:36:32 +00:00
To update the ClamAV virus database, run the following command:
```bash
sudo freshclam
```
2024-02-10 15:36:32 +00:00
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:
```bash
crontab -e
```
Add the following line to schedule a daily scan at 2:00 AM:
```bash
0 2 * * * clamscan -r /path/to/scan > /dev/null 2>&1
```
2024-02-10 15:36:32 +00:00
Replace `/path/to/scan` with the actual path you want to scan.
2024-02-10 15:36:32 +00:00
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.
2020-12-21 20:50:30 +00:00
```bash
sudo freshclam #Update rules
clamscan filepath #Scan 1 file
2022-09-08 08:47:03 +00:00
clamscan folderpath #Scan the whole folder
```
### [Capa](https://github.com/mandiant/capa)
2024-02-10 15:36:32 +00:00
**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:
2024-02-10 15:36:32 +00:00
* Überprüfung auf OutputDebugString-Fehler
* Ausführen als Dienst
* Prozess erstellen
2024-02-10 15:36:32 +00:00
Holen Sie es sich im [**Github-Repository**](https://github.com/mandiant/capa).
### IOCs
2021-08-16 23:29:43 +00:00
2024-02-10 15:36:32 +00:00
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.
2021-08-16 23:29:43 +00:00
2024-02-10 15:36:32 +00:00
Ein Tool zum Erstellen oder Ändern von IOCs ist der [**IOC Editor**](https://www.fireeye.com/services/freeware/ioc-editor.html)**.**\
Sie können Tools wie [**Redline**](https://www.fireeye.com/services/freeware/redline.html) verwenden, um nach definierten IOCs auf einem Gerät zu suchen.
2021-08-16 23:29:43 +00:00
### Loki
2024-02-10 15:36:32 +00:00
[**Loki**](https://github.com/Neo23x0/Loki) ist ein Scanner für einfache Indikatoren für Kompromittierung.\
Die Erkennung basiert auf vier Erkennungsmethoden:
```
1. File Name IOC
2024-02-10 15:36:32 +00:00
Regex match on full file path/name
2. Yara Rule Check
2024-02-10 15:36:32 +00:00
Yara signature matches on file data and process memory
3. Hash Check
2024-02-10 15:36:32 +00:00
Compares known malicious hashes (MD5, SHA1, SHA256) with scanned files
4. C2 Back Connect Check
2024-02-10 15:36:32 +00:00
Compares process connection endpoints with C2 IOCs (new since version v.10)
```
### Linux Malware Detect
2024-02-10 15:36:32 +00:00
[**Linux Malware Detect (LMD)**](https://www.rfxn.com/projects/linux-malware-detect/) 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
2020-12-23 19:52:25 +00:00
2024-02-10 15:36:32 +00:00
Tools wie [**rkhunter**](http://rkhunter.sourceforge.net) können verwendet werden, um das Dateisystem auf mögliche **Rootkits** und Malware zu überprüfen.
2020-12-23 19:52:25 +00:00
```bash
sudo ./rkhunter --check -r / -l /tmp/rkhunter.log [--report-warnings-only] [--skip-keypress]
```
### FLOSS
2024-02-10 15:36:32 +00:00
[**FLOSS**](https://github.com/mandiant/flare-floss) ist ein Tool, das versucht, obfuskierte Zeichenketten in ausführbaren Dateien mithilfe verschiedener Techniken zu finden.
### PEpper
2020-12-23 19:52:25 +00:00
2024-02-10 15:36:32 +00:00
[PEpper](https://github.com/Th3Hurrican3/PEpper) überprüft einige grundlegende Dinge in der ausführbaren Datei (Binärdaten, Entropie, URLs und IPs, einige Yara-Regeln).
2020-12-23 19:52:25 +00:00
### PEstudio
2024-02-10 15:36:32 +00:00
[PEstudio](https://www.winitor.com/download) 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)
2024-02-10 15:36:32 +00:00
[**DiE**](https://github.com/horsicq/Detect-It-Easy/) ist ein Tool, um festzustellen, ob eine Datei **verschlüsselt** ist, und um **Packer** zu finden.
### NeoPI
2024-02-10 15:36:32 +00:00
[**NeoPI**](https://github.com/CiscoCXSecurity/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**
2024-02-10 15:36:32 +00:00
[**PHP-malware-finder**](https://github.com/nbs-system/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.
2024-02-10 15:36:32 +00:00
### Apple-Binärsignaturen
2024-02-10 15:36:32 +00:00
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.
```bash
#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
```
2024-02-10 15:36:32 +00:00
## Erkennungstechniken
2024-02-10 15:36:32 +00:00
### Datei-Stacking
2024-02-10 15:36:32 +00:00
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
2024-02-10 15:36:32 +00:00
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**.
2024-02-10 15:36:32 +00:00
### Statistische Analyse
2024-02-10 15:36:32 +00:00
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.
2022-04-28 16:01:33 +00:00
<details>
2024-02-10 15:36:32 +00:00
<summary><strong>Lernen Sie AWS-Hacking von Grund auf mit</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
2022-04-28 16:01:33 +00:00
2024-02-10 15:36:32 +00:00
Andere Möglichkeiten, HackTricks zu unterstützen:
2023-12-30 10:12:47 +00:00
2024-02-10 15:36:32 +00:00
* Wenn Sie Ihr **Unternehmen in HackTricks bewerben möchten** oder **HackTricks als PDF herunterladen möchten**, überprüfen Sie die [**ABONNEMENTPLÄNE**](https://github.com/sponsors/carlospolop)!
* Holen Sie sich das [**offizielle PEASS & HackTricks-Merchandise**](https://peass.creator-spring.com)
* Entdecken Sie [**The PEASS Family**](https://opensea.io/collection/the-peass-family), unsere Sammlung exklusiver [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Treten Sie der** 💬 [**Discord-Gruppe**](https://discord.gg/hRep4RUj7f) oder der [**Telegram-Gruppe**](https://t.me/peass) **bei oder folgen** Sie uns auf **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
* **Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) **und** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **GitHub-Repositories senden.**
2022-04-28 16:01:33 +00:00
</details>