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

166 lines
8.5 KiB
Markdown
Raw Normal View History

2024-04-06 18:30:57 +00:00
# Malware-Analyse
{% hint style="success" %}
Lernen Sie AWS-Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Lernen Sie GCP-Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
2024-04-06 18:30:57 +00:00
<details>
2024-04-06 18:30:57 +00:00
<summary>Unterstützen Sie HackTricks</summary>
2024-04-06 18:30:57 +00:00
* Überprüfen Sie die [**Abonnementpläne**](https://github.com/sponsors/carlospolop)!
* **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 Hacking-Tricks, indem Sie PRs an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) Github-Repositories einreichen.
2024-04-06 18:30:57 +00:00
</details>
{% endhint %}
2024-04-06 18:30:57 +00:00
## Forensik-Spickzettel
[https://www.jaiminton.com/cheatsheet/DFIR/#](https://www.jaiminton.com/cheatsheet/DFIR/)
## 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/)
## Offline-Antiviren- und Erkennungstools
### Yara
#### Installieren
2024-04-06 18:30:57 +00:00
```bash
sudo apt-get install -y yara
```
#### Vorbereitung von Regeln
2024-04-06 18:30:57 +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.
2024-04-06 18:30:57 +00:00
```bash
wget https://gist.githubusercontent.com/andreafortuna/29c6ea48adf3d45a979a78763cdc7ce9/raw/4ec711d37f1b428b63bed1f786b26a0654aa2f31/malware_yara_rules.py
mkdir rules
python malware_yara_rules.py
```
#### Scannen
```bash
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
2024-04-06 18:30:57 +00:00
Sie können das Tool [**YaraGen**](https://github.com/Neo23x0/yarGen) verwenden, um Yara-Regeln aus einem Binärfile 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/)
2024-04-06 18:30:57 +00:00
```bash
python3 yarGen.py --update
python3.exe yarGen.py --excludegood -m ../../mals/
```
### ClamAV
#### Installation
```
sudo apt-get install -y clamav
```
#### Scannen
```bash
sudo freshclam #Update rules
clamscan filepath #Scan 1 file
clamscan folderpath #Scan the whole folder
```
### [Capa](https://github.com/mandiant/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:
2024-04-06 18:30:57 +00:00
* Überprüfung auf OutputDebugString-Fehler
* Ausführen als Dienst
* Prozess erstellen
Holen Sie es sich im [**Github-Repo**](https://github.com/mandiant/capa).
2024-04-06 18:30:57 +00:00
### 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.
2024-04-06 18:30:57 +00:00
Ein Tool zum Erstellen oder Modifizieren 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 **definierte IOCs auf einem Gerät zu suchen**.
2024-04-06 18:30:57 +00:00
### Loki
[**Loki**](https://github.com/Neo23x0/Loki) ist ein Scanner für einfache Indikatoren für Kompromittierungen.\
2024-04-06 18:30:57 +00:00
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)**](https://www.rfxn.com/projects/linux-malware-detect/) 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.
2024-04-06 18:30:57 +00:00
### rkhunter
Tools wie [**rkhunter**](http://rkhunter.sourceforge.net) können verwendet werden, um das Dateisystem auf mögliche **Rootkits** und Malware zu überprüfen.
```bash
sudo ./rkhunter --check -r / -l /tmp/rkhunter.log [--report-warnings-only] [--skip-keypress]
```
### FLOSS
[**FLOSS**](https://github.com/mandiant/flare-floss) ist ein Tool, das versucht, obfuskierte Zeichenfolgen in ausführbaren Dateien mithilfe verschiedener Techniken zu finden.
2024-04-06 18:30:57 +00:00
### PEpper
[PEpper](https://github.com/Th3Hurrican3/PEpper) überprüft einige grundlegende Dinge innerhalb der ausführbaren Datei (Binärdaten, Entropie, URLs und IPs, einige Yara-Regeln).
2024-04-06 18:30:57 +00:00
### PEstudio
[PEstudio](https://www.winitor.com/download) 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.
2024-04-06 18:30:57 +00:00
### Detect It Easy(DiE)
[**DiE**](https://github.com/horsicq/Detect-It-Easy/) ist ein Tool, um festzustellen, ob eine Datei **verschlüsselt** ist und auch **Packer** zu finden.
2024-04-06 18:30:57 +00:00
### NeoPI
[**NeoPI**](https://github.com/CiscoCXSecurity/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.
2024-04-06 18:30:57 +00:00
### **php-malware-finder**
[**PHP-malware-finder**](https://github.com/nbs-system/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.
2024-04-06 18:30:57 +00:00
### Apple Binary Signatures
2024-04-06 18:30:57 +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
```
## Erkennungstechniken
### Dateistapelung
2024-04-06 18:30:57 +00:00
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.
2024-04-06 18:30:57 +00:00
### 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.
2024-04-06 18:30:57 +00:00
### 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.