mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-23 13:13:41 +00:00
284 lines
16 KiB
Markdown
284 lines
16 KiB
Markdown
# Analiza złośliwego oprogramowania
|
||
|
||
<details>
|
||
|
||
<summary><strong>Naucz się hakować 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>
|
||
|
||
Inne sposoby wsparcia HackTricks:
|
||
|
||
* Jeśli chcesz zobaczyć swoją **firmę reklamowaną w HackTricks** lub **pobrać HackTricks w formacie PDF**, sprawdź [**PLAN SUBSKRYPCJI**](https://github.com/sponsors/carlospolop)!
|
||
* 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 hakerskimi, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||
|
||
</details>
|
||
|
||
## Oszustwa dotyczące forensyki
|
||
|
||
[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 offline do wykrywania i usuwania wirusów
|
||
|
||
### Yara
|
||
|
||
#### Instalacja
|
||
```bash
|
||
sudo apt-get install -y yara
|
||
```
|
||
#### Przygotuj reguły
|
||
|
||
Użyj tego skryptu do pobrania i połączenia wszystkich reguł 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 reguły yara dla malware.
|
||
```bash
|
||
wget https://gist.githubusercontent.com/andreafortuna/29c6ea48adf3d45a979a78763cdc7ce9/raw/4ec711d37f1b428b63bed1f786b26a0654aa2f31/malware_yara_rules.py
|
||
mkdir rules
|
||
python malware_yara_rules.py
|
||
```
|
||
#### Skanowanie
|
||
|
||
To begin the malware analysis process, the first step is to scan the suspicious file or system for any signs of malicious activity. This can be done using various tools and techniques, such as antivirus software, sandboxing, and network traffic analysis.
|
||
|
||
##### Antivirus Scan
|
||
|
||
Running an antivirus scan is a quick and easy way to check if a file or system is infected with known malware. Antivirus software uses a database of known malware signatures to identify and remove malicious files. It is important to keep the antivirus software up to date to ensure it can detect the latest threats.
|
||
|
||
##### Sandbox Analysis
|
||
|
||
Sandboxing involves running the suspicious file or program in a controlled environment to observe its behavior. This can help identify any malicious activities, such as file modifications, network connections, or system changes. Sandboxing tools provide a safe and isolated environment to analyze potentially dangerous files without risking the host system.
|
||
|
||
##### Network Traffic Analysis
|
||
|
||
Analyzing network traffic can provide valuable insights into the behavior of malware. By monitoring network connections and traffic patterns, it is possible to identify any suspicious or malicious activities. Tools like Wireshark can be used to capture and analyze network packets, allowing for the detection of communication with malicious servers or the exfiltration of sensitive data.
|
||
|
||
##### File Analysis
|
||
|
||
Analyzing the suspicious file itself can reveal important information about its nature and purpose. This can be done using various techniques, such as static analysis and dynamic analysis.
|
||
|
||
- Static Analysis: Involves examining the file's structure, metadata, and code without executing it. This can include analyzing file headers, strings, and embedded resources. Tools like PEiD and ExifTool can be used for static analysis.
|
||
|
||
- Dynamic Analysis: Involves executing the file in a controlled environment and monitoring its behavior. This can include observing system calls, file system modifications, and network connections. Tools like Process Monitor and Process Explorer can be used for dynamic analysis.
|
||
|
||
By performing these scans and analyses, it is possible to gather valuable information about the malware, such as its behavior, capabilities, and potential impact on the system. This information can then be used to develop appropriate mitigation strategies and countermeasures.
|
||
```bash
|
||
yara -w malware_rules.yar image #Scan 1 file
|
||
yara -w malware_rules.yar folder #Scan the whole folder
|
||
```
|
||
#### YaraGen: Sprawdzanie złośliwego oprogramowania i tworzenie reguł
|
||
|
||
Możesz użyć narzędzia [**YaraGen**](https://github.com/Neo23x0/yarGen), aby generować reguły yara na podstawie 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/)
|
||
```bash
|
||
python3 yarGen.py --update
|
||
python3.exe yarGen.py --excludegood -m ../../mals/
|
||
```
|
||
### ClamAV
|
||
|
||
#### Instalacja
|
||
|
||
Aby zainstalować ClamAV, wykonaj następujące kroki:
|
||
|
||
1. Otwórz terminal i wpisz poniższą komendę, aby zainstalować ClamAV:
|
||
|
||
```
|
||
sudo apt-get install clamav
|
||
```
|
||
|
||
2. Po zakończeniu instalacji, wykonaj poniższą komendę, aby zaktualizować bazy danych wirusów:
|
||
|
||
```
|
||
sudo freshclam
|
||
```
|
||
|
||
3. Teraz możesz przeskanować pliki na swoim systemie, używając poniższej komendy:
|
||
|
||
```
|
||
clamscan -r /ścieżka/do/katalogu
|
||
```
|
||
|
||
Gdzie `/ścieżka/do/katalogu` to ścieżka do katalogu, który chcesz przeskanować. Możesz również użyć opcji `-r` w celu przeskanowania wszystkich plików rekursywnie.
|
||
|
||
Po zakończeniu skanowania, ClamAV wyświetli raport z wykrytymi wirusami lub oznaczy pliki jako bezpieczne.
|
||
|
||
#### Aktualizacja baz danych wirusów
|
||
|
||
Aby zaktualizować bazy danych wirusów ClamAV, wykonaj poniższe kroki:
|
||
|
||
1. Otwórz terminal i wpisz poniższą komendę, aby zaktualizować bazy danych:
|
||
|
||
```
|
||
sudo freshclam
|
||
```
|
||
|
||
2. Po zakończeniu aktualizacji, bazy danych wirusów będą zaktualizowane i gotowe do użycia.
|
||
|
||
#### Automatyczna aktualizacja baz danych wirusów
|
||
|
||
Aby skonfigurować automatyczną aktualizację baz danych wirusów ClamAV, wykonaj poniższe kroki:
|
||
|
||
1. Otwórz terminal i wpisz poniższą komendę, aby edytować plik konfiguracyjny:
|
||
|
||
```
|
||
sudo nano /etc/clamav/freshclam.conf
|
||
```
|
||
|
||
2. Znajdź linię `#Example` i usuń znak `#` na początku linii, aby odkomentować tę linię.
|
||
|
||
3. Zapisz plik i zamknij edytor.
|
||
|
||
4. Teraz możesz skonfigurować harmonogram automatycznej aktualizacji, wykonując poniższą komendę:
|
||
|
||
```
|
||
sudo systemctl enable --now clamav-freshclam
|
||
```
|
||
|
||
Po wykonaniu tych kroków, bazy danych wirusów ClamAV będą automatycznie aktualizowane zgodnie z harmonogramem.
|
||
```
|
||
sudo apt-get install -y clamav
|
||
```
|
||
#### Skanowanie
|
||
|
||
To begin the malware analysis process, the first step is to scan the suspicious file or system for any signs of malicious activity. This can be done using various tools and techniques, such as antivirus software, sandboxing, and network traffic analysis.
|
||
|
||
##### Antivirus Scan
|
||
|
||
Running an antivirus scan is a quick and easy way to check if a file or system is infected with known malware. Antivirus software uses a database of known malware signatures to identify and remove malicious files. It is important to keep the antivirus software up to date to ensure it can detect the latest threats.
|
||
|
||
##### Sandbox Analysis
|
||
|
||
Sandboxing involves running the suspicious file or program in a controlled environment to observe its behavior. This can help identify any malicious activities, such as file modifications, network connections, or system changes. Sandboxing tools provide a safe and isolated environment to analyze potentially dangerous files without risking the host system.
|
||
|
||
##### Network Traffic Analysis
|
||
|
||
Analyzing network traffic can provide valuable insights into the behavior of malware. By monitoring network connections and traffic patterns, it is possible to identify any suspicious or malicious activities. Tools like Wireshark can be used to capture and analyze network packets, allowing for the detection of communication with malicious servers or the exfiltration of sensitive data.
|
||
|
||
##### File Analysis
|
||
|
||
Analyzing the suspicious file itself can reveal important information about its nature and purpose. This can be done using various techniques, such as static analysis and dynamic analysis.
|
||
|
||
- Static Analysis: Involves examining the file's structure, metadata, and code without executing it. This can include checking file headers, strings, and embedded resources. Tools like PEiD and ExifTool can be used for static analysis.
|
||
|
||
- Dynamic Analysis: Involves executing the file in a controlled environment and monitoring its behavior. This can include observing system calls, file system modifications, and network connections. Tools like Process Monitor and Process Explorer can be used for dynamic analysis.
|
||
|
||
By performing a thorough scan of the suspicious file or system, it is possible to gather valuable information about the malware and its capabilities. This information can then be used to further analyze and mitigate the threat.
|
||
```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. Znajdzie takie rzeczy jak taktyki Att\&ck lub podejrzane zdolności, takie jak:
|
||
|
||
* sprawdzanie błędu OutputDebugString
|
||
* uruchamianie jako usługa
|
||
* tworzenie procesu
|
||
|
||
Pobierz go z [**repozytorium Github**](https://github.com/mandiant/capa).
|
||
|
||
### IOC
|
||
|
||
IOC oznacza Indicator Of Compromise. IOC to zestaw **warunków identyfikujących** potencjalnie niechciane oprogramowanie lub potwierdzone **złośliwe oprogramowanie**. 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 na komputerze i utworzony zostanie IOC dla tego złośliwego oprogramowania, inne zespoły Blue mogą go użyć do szybszego identyfikowania złośliwego oprogramowania.
|
||
|
||
Narzędzie do tworzenia lub modyfikowania IOC to [**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), aby **wyszukiwać zdefiniowane IOCs na urządzeniu**.
|
||
|
||
### Loki
|
||
|
||
[**Loki**](https://github.com/Neo23x0/Loki) to skaner dla prostych wskaźników kompromitacji.\
|
||
Wykrywanie opiera się na czterech metodach wykrywania:
|
||
```
|
||
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 w oparciu o zagrożenia występujące w środowiskach hostowanych współdzielonych. Wykorzystuje dane dotyczące zagrożeń z systemów wykrywania włamań na krawędzi sieci w celu wykrywania aktywnie wykorzystywanego złośliwego oprogramowania i generowania sygnatur do jego wykrywania. Dodatkowo, dane dotyczące zagrożeń są również pozyskiwane z zgłoszeń użytkowników za pomocą funkcji sprawdzania LMD oraz z zasobów społeczności zajmującej się złośliwym oprogramowaniem.
|
||
|
||
### 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 próbuje znaleźć zaszyfrowane ciągi wewnątrz plików wykonywalnych, używając różnych technik.
|
||
|
||
### PEpper
|
||
|
||
[PEpper](https://github.com/Th3Hurrican3/PEpper) sprawdza podstawowe informacje wewnątrz pliku wykonywalnego (dane binarne, entropia, adresy URL i IP, niektóre reguły yara).
|
||
|
||
### 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 sprawdza VirusTotal i znajduje potencjalne techniki Att\&ck.
|
||
|
||
### Detect It Easy(DiE)
|
||
|
||
[**DiE**](https://github.com/horsicq/Detect-It-Easy/) to narzędzie do wykrywania, czy plik jest **zaszyfrowany**, a także znajduje **pakery**.
|
||
|
||
### NeoPI
|
||
|
||
[**NeoPI**](https://github.com/CiscoCXSecurity/NeoPI) to skrypt Pythona, który używa różnych **metod statystycznych** do wykrywania **zaszyfrowanej** i **zaszyfrowanej** zawartości w plikach tekstowych/skryptowych. NeoPI ma na celu pomóc w **wykrywaniu ukrytego kodu web shell**.
|
||
|
||
### **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żywanych w **malware**/webshellach.
|
||
|
||
### Sygnatury binarne Apple
|
||
|
||
Podczas sprawdzania próbki **malware** zawsze powinieneś **sprawdzić sygnaturę** binarną, ponieważ **deweloper**, który ją podpisał, może być już **powiązany** z **malware**.
|
||
```bash
|
||
#Get signer
|
||
codesign -vv -d /bin/ls 2>&1 | grep -E "Authority|TeamIdentifier"
|
||
|
||
#Check if the app’s 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 pewien folder zawierający **pliki** serwera internetowego był **ostatnio zaktualizowany w pewnej dacie**, **sprawdź** datę utworzenia i modyfikacji wszystkich **plików** na serwerze i jeśli jakakolwiek data jest **podejrzana**, sprawdź ten plik.
|
||
|
||
### Punkty odniesienia
|
||
|
||
Jeśli pliki w folderze **nie powinny być modyfikowane**, możesz obliczyć **skrót** **oryginalnych plików** w folderze i **porównać** je z **aktualnymi**. Wszelkie zmodyfikowane pliki będą **podejrzane**.
|
||
|
||
### Analiza statystyczna
|
||
|
||
Jeśli informacje są zapisywane w logach, możesz **sprawdzić statystyki, takie jak ile razy każdy plik serwera internetowego był odwiedzany, ponieważ jeden z nich może być web shell**.
|
||
|
||
<details>
|
||
|
||
<summary><strong>Naucz się hakować 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>
|
||
|
||
Inne sposoby wsparcia HackTricks:
|
||
|
||
* Jeśli chcesz zobaczyć swoją **firmę reklamowaną w HackTricks** lub **pobrać HackTricks w formacie PDF**, sprawdź [**PLAN SUBSKRYPCYJNY**](https://github.com/sponsors/carlospolop)!
|
||
* 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 hakerskimi, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||
|
||
</details>
|