hacktricks/forensics/basic-forensic-methodology/malware-analysis.md
2024-02-11 01:46:25 +00:00

16 KiB
Raw Blame History

Analiza złośliwego oprogramowania

Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks:

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:

  1. Otwórz terminal i wpisz poniższą komendę, aby zainstalować ClamAV:
sudo apt-get install clamav
  1. Po zakończeniu instalacji, wykonaj poniższą komendę, aby zaktualizować bazy danych wirusów:
sudo freshclam
  1. 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
  1. 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
  1. Znajdź linię #Example i usuń znak # na początku linii, aby odkomentować tę linię.

  2. Zapisz plik i zamknij edytor.

  3. 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 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 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: