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

165 lines
8.6 KiB
Markdown
Raw Normal View History

2024-04-06 19:35:05 +00:00
# Analiza złośliwego oprogramowania
<details>
<summary><strong>Nauka hakowania AWS od zera do bohatera z</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
2024-04-06 19:35:05 +00:00
Inne sposoby wsparcia HackTricks:
* Jeśli chcesz zobaczyć swoją **firmę reklamowaną w HackTricks** lub **pobrać HackTricks w formacie PDF**, sprawdź [**PLANY SUBSKRYPCYJNE**](https://github.com/sponsors/carlospolop)!
2024-04-06 19:35:05 +00:00
* Zdobądź [**oficjalne gadżety PEASS & HackTricks**](https://peass.creator-spring.com)
* Odkryj [**Rodzinę PEASS**](https://opensea.io/collection/the-peass-family), naszą kolekcję ekskluzywnych [**NFT**](https://opensea.io/collection/the-peass-family)
* **Dołącz do** 💬 [**Grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegramowej**](https://t.me/peass) lub **śledź** nas na **Twitterze** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
* **Podziel się swoimi sztuczkami hakowania, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) na GitHubie.
2024-04-06 19:35:05 +00:00
</details>
## Arkusze oszustw w dziedzinie śledztw
2024-04-06 19:35:05 +00:00
[https://www.jaiminton.com/cheatsheet/DFIR/#](https://www.jaiminton.com/cheatsheet/DFIR/)
## Usługi online
* [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/)
## Narzędzia antywirusowe i wykrywania offline
2024-04-06 19:35:05 +00:00
### Yara
#### Instalacja
```bash
sudo apt-get install -y yara
```
#### Przygotuj zasady
2024-04-06 19:35:05 +00:00
Użyj tego skryptu do pobrania i połączenia wszystkich zasad malware Yara z githuba: [https://gist.github.com/andreafortuna/29c6ea48adf3d45a979a78763cdc7ce9](https://gist.github.com/andreafortuna/29c6ea48adf3d45a979a78763cdc7ce9)\
Utwórz katalog _**rules**_ i wykonaj go. Spowoduje to utworzenie pliku o nazwie _**malware\_rules.yar**_, który zawiera wszystkie zasady Yara dla malware.
2024-04-06 19:35:05 +00:00
```bash
wget https://gist.githubusercontent.com/andreafortuna/29c6ea48adf3d45a979a78763cdc7ce9/raw/4ec711d37f1b428b63bed1f786b26a0654aa2f31/malware_yara_rules.py
mkdir rules
python malware_yara_rules.py
```
#### Skanowanie
```bash
yara -w malware_rules.yar image #Scan 1 file
yara -w malware_rules.yar folder #Scan the whole folder
```
#### YaraGen: Sprawdź złośliwe oprogramowanie i Utwórz reguły
2024-04-06 19:35:05 +00:00
Możesz użyć narzędzia [**YaraGen**](https://github.com/Neo23x0/yarGen) do generowania reguł yara z pliku binarnego. Sprawdź te samouczki: [**Część 1**](https://www.nextron-systems.com/2015/02/16/write-simple-sound-yara-rules/), [**Część 2**](https://www.nextron-systems.com/2015/10/17/how-to-write-simple-but-sound-yara-rules-part-2/), [**Część 3**](https://www.nextron-systems.com/2016/04/15/how-to-write-simple-but-sound-yara-rules-part-3/)
2024-04-06 19:35:05 +00:00
```bash
python3 yarGen.py --update
python3.exe yarGen.py --excludegood -m ../../mals/
```
### ClamAV
#### Instalacja
```
sudo apt-get install -y clamav
```
#### Skanowanie
```bash
sudo freshclam #Update rules
clamscan filepath #Scan 1 file
clamscan folderpath #Scan the whole folder
```
### [Capa](https://github.com/mandiant/capa)
**Capa** wykrywa potencjalnie złośliwe **zdolności** w plikach wykonywalnych: PE, ELF, .NET. Dlatego znajdzie rzeczy takie jak taktyki Att\&ck lub podejrzane zdolności, takie jak:
2024-04-06 19:35:05 +00:00
- sprawdzenie błędu OutputDebugString
- uruchomienie jako usługa
- utworzenie procesu
2024-04-06 19:35:05 +00:00
Pobierz go z [**repozytorium Github**](https://github.com/mandiant/capa).
### IOCs
2024-04-06 19:35:05 +00:00
IOC oznacza Indicator Of Compromise. IOC to zestaw **warunków identyfikujących** potencjalnie niechciane oprogramowanie lub potwierdzony **malware**. Zespoły Blue używają tego rodzaju definicji do **wyszukiwania tego rodzaju złośliwych plików** w swoich **systemach** i **sieciach**.\
Dzielenie się tymi definicjami jest bardzo przydatne, ponieważ gdy złośliwe oprogramowanie zostanie zidentyfikowane w komputerze i zostanie utworzony IOC dla tego złośliwego oprogramowania, inne zespoły Blue mogą go użyć do szybszej identyfikacji złośliwego oprogramowania.
2024-04-06 19:35:05 +00:00
Narzędziem do tworzenia lub modyfikowania IOC jest [**Edytor IOC**](https://www.fireeye.com/services/freeware/ioc-editor.html)**.**\
Możesz użyć narzędzi takich jak [**Redline**](https://www.fireeye.com/services/freeware/redline.html) do **wyszukiwania zdefiniowanych IOC w urządzeniu**.
2024-04-06 19:35:05 +00:00
### Loki
[**Loki**](https://github.com/Neo23x0/Loki) to skaner dla prostych wskaźników kompromitacji.\
Wykrywanie opiera się na czterech metodach detekcji:
2024-04-06 19:35:05 +00:00
```
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/) to skaner złośliwego oprogramowania dla systemu Linux wydany na licencji GNU GPLv2, który został zaprojektowany wokół zagrożeń występujących w środowiskach hostowanych współdzielonych. Wykorzystuje dane dotyczące zagrożeń z systemów wykrywania intruzów na krawędzi sieci do wyodrębniania złośliwego oprogramowania, które jest aktywnie wykorzystywane w atakach, oraz generuje sygnatury do wykrywania. Ponadto dane dotyczące zagrożeń są również pochodne od zgłoszeń użytkowników za pomocą funkcji sprawdzania LMD oraz z zasobów społeczności związanych z złośliwym oprogramowaniem.
2024-04-06 19:35:05 +00:00
### rkhunter
Narzędzia takie jak [**rkhunter**](http://rkhunter.sourceforge.net) mogą być używane do sprawdzania systemu plików pod kątem możliwych **rootkitów** i złośliwego oprogramowania.
```bash
sudo ./rkhunter --check -r / -l /tmp/rkhunter.log [--report-warnings-only] [--skip-keypress]
```
### FLOSS
[**FLOSS**](https://github.com/mandiant/flare-floss) to narzędzie, które spróbuje znaleźć zaszyfrowane ciągi wewnątrz plików wykonywalnych, używając różnych technik.
2024-04-06 19:35:05 +00:00
### PEpper
[PEpper](https://github.com/Th3Hurrican3/PEpper) sprawdza podstawowe informacje wewnątrz pliku wykonywalnego (dane binarne, entropię, adresy URL i IP, niektóre reguły yara).
2024-04-06 19:35:05 +00:00
### PEstudio
[PEstudio](https://www.winitor.com/download) to narzędzie, które pozwala uzyskać informacje o plikach wykonywalnych systemu Windows, takie jak importy, eksporty, nagłówki, ale także sprawdzi VirusTotal i znajdzie potencjalne techniki Att\&ck.
2024-04-06 19:35:05 +00:00
### Detect It Easy(DiE)
[**DiE**](https://github.com/horsicq/Detect-It-Easy/) to narzędzie do wykrywania, czy plik jest **zaszyfrowany**, a także znajdzie **pakowacze**.
2024-04-06 19:35:05 +00:00
### NeoPI
[**NeoPI**](https://github.com/CiscoCXSecurity/NeoPI) to skrypt w języku Python, który używa różnorodnych **metod statystycznych** do wykrywania **zaszyfrowanych** i **zaszyfrowanych** treści w plikach tekstowych/skryptowych. Celem NeoPI jest pomoc w **wykrywaniu ukrytego kodu powłoki internetowej**.
2024-04-06 19:35:05 +00:00
### **php-malware-finder**
[**PHP-malware-finder**](https://github.com/nbs-system/php-malware-finder) robi wszystko, co w jego mocy, aby wykryć **zaszyfrowany**/** podejrzany kod**, a także pliki używające funkcji **PHP** często używane w **malware**/powłokach internetowych.
2024-04-06 19:35:05 +00:00
### Sygnatury binarne Apple
Podczas sprawdzania niektórych **próbek złośliwego oprogramowania** zawsze powinieneś **sprawdzić sygnaturę** binarną, ponieważ **deweloper**, który ją podpisał, może być już **powiązany** z **złośliwym oprogramowaniem**.
2024-04-06 19:35:05 +00:00
```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
```
## Techniki wykrywania
### Składanie plików
Jeśli wiesz, że pewny folder zawierający **pliki** serwera WWW został **ostatnio zaktualizowany w pewnej dacie**. **Sprawdź**, kiedy **pliki** w **serwerze WWW** zostały utworzone i zmodyfikowane, a jeśli któraś z dat jest **podejrzana**, sprawdź ten plik.
2024-04-06 19:35:05 +00:00
### Punkty odniesienia
Jeśli pliki w folderze **nie powinny być modyfikowane**, możesz obliczyć **skrót** **oryginalnych plików** z folderu i **porównać** je z **aktualnymi**. Wszelkie zmiany będą **podejrzane**.
2024-04-06 19:35:05 +00:00
### Analiza statystyczna
Gdy informacje są zapisywane w logach, możesz **sprawdzić statystyki, takie jak ile razy każdy plik serwera WWW był odwiedzany, ponieważ web shell może być jednym z najczęściej używanych**.