16 KiB
Analiza złośliwego oprogramowania
Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!
Inne sposoby wsparcia HackTricks:
- Jeśli chcesz zobaczyć swoją firmę reklamowaną w HackTricks lub pobrać HackTricks w formacie PDF, sprawdź PLAN SUBSKRYPCJI!
- Zdobądź oficjalne gadżety PEASS & HackTricks
- Odkryj Rodzinę PEASS, naszą kolekcję ekskluzywnych NFT
- Dołącz do 💬 grupy Discord lub grupy telegramowej lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Podziel się swoimi sztuczkami hakerskimi, przesyłając PR-y do HackTricks i HackTricks Cloud github repos.
Oszustwa dotyczące forensyki
https://www.jaiminton.com/cheatsheet/DFIR/#
Usługi online
Narzędzia offline do wykrywania i usuwania wirusów
Yara
Instalacja
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
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.
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.
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, aby generować reguły yara na podstawie pliku binarnego. Sprawdź te samouczki: Część 1, Część 2, Część 3
python3 yarGen.py --update
python3.exe yarGen.py --excludegood -m ../../mals/
ClamAV
Instalacja
Aby zainstalować ClamAV, wykonaj następujące kroki:
- Otwórz terminal i wpisz poniższą komendę, aby zainstalować ClamAV:
sudo apt-get install clamav
- Po zakończeniu instalacji, wykonaj poniższą komendę, aby zaktualizować bazy danych wirusów:
sudo freshclam
- 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:
- Otwórz terminal i wpisz poniższą komendę, aby zaktualizować bazy danych:
sudo freshclam
- 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:
- Otwórz terminal i wpisz poniższą komendę, aby edytować plik konfiguracyjny:
sudo nano /etc/clamav/freshclam.conf
-
Znajdź linię
#Example
i usuń znak#
na początku linii, aby odkomentować tę linię. -
Zapisz plik i zamknij edytor.
-
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.
sudo freshclam #Update rules
clamscan filepath #Scan 1 file
clamscan folderpath #Scan the whole folder
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.
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.
Możesz użyć narzędzi takich jak Redline, aby wyszukiwać zdefiniowane IOCs na urządzeniu.
Loki
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) 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 mogą być używane do sprawdzania systemu plików pod kątem możliwych rootkitów i złośliwego oprogramowania.
sudo ./rkhunter --check -r / -l /tmp/rkhunter.log [--report-warnings-only] [--skip-keypress]
FLOSS
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 sprawdza podstawowe informacje wewnątrz pliku wykonywalnego (dane binarne, entropia, adresy URL i IP, niektóre reguły yara).
PEstudio
PEstudio 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 to narzędzie do wykrywania, czy plik jest zaszyfrowany, a także znajduje pakery.
NeoPI
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 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.
#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.
Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!
Inne sposoby wsparcia HackTricks:
- Jeśli chcesz zobaczyć swoją firmę reklamowaną w HackTricks lub pobrać HackTricks w formacie PDF, sprawdź PLAN SUBSKRYPCYJNY!
- Zdobądź oficjalne gadżety PEASS & HackTricks
- Odkryj Rodzinę PEASS, naszą kolekcję ekskluzywnych NFT
- Dołącz do 💬 grupy Discord lub grupy telegramowej lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Podziel się swoimi sztuczkami hakerskimi, przesyłając PR-y do HackTricks i HackTricks Cloud github repos.