Common API used in Malware
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
socket()
WSAStratup()
bind()
bind()
listen()
listen()
accept()
accept()
connect()
connect()
read()/recv()
recv()
write()
send()
shutdown()
WSACleanup()
RegCreateKeyEx()
GetTempPath()
OpenSCManager
RegOpenKeyEx()
CopyFile()
CreateService()
RegSetValueEx()
CreateFile()
StartServiceCtrlDispatcher()
RegDeleteKeyEx()
WriteFile()
RegGetValue()
ReadFile()
WinCrypt
CryptAcquireContext()
CryptGenKey()
CryptDeriveKey()
CryptDecrypt()
CryptReleaseContext()
IsDebuggerPresent()
CPUID()
GetSystemInfo()
IN()
GlobalMemoryStatusEx()
GetVersion()
CreateToolhelp32Snapshot [Check if a process is running]
CreateFileW/A [Check if a file exist]
VirtualAlloc
Alokuj pamięć (pakery)
VirtualProtect
Zmień uprawnienia pamięci (pakery nadające uprawnienia do wykonania sekcji)
ReadProcessMemory
Wstrzykiwanie do zewnętrznych procesów
WriteProcessMemoryA/W
Wstrzykiwanie do zewnętrznych procesów
NtWriteVirtualMemory
CreateRemoteThread
Wstrzykiwanie DLL/procesu...
NtUnmapViewOfSection
QueueUserAPC
CreateProcessInternalA/W
CreateProcessA/W
ShellExecute
WinExec
ResumeThread
NtResumeThread
GetAsyncKeyState() -- Rejestrowanie klawiszy
SetWindowsHookEx -- Rejestrowanie klawiszy
GetForeGroundWindow -- Uzyskaj nazwę działającego okna (lub strony internetowej z przeglądarki)
LoadLibrary() -- Importuj bibliotekę
GetProcAddress() -- Importuj bibliotekę
CreateToolhelp32Snapshot() -- Lista działających procesów
GetDC() -- Zrzut ekranu
BitBlt() -- Zrzut ekranu
InternetOpen(), InternetOpenUrl(), InternetReadFile(), InternetWriteFile() -- Dostęp do Internetu
FindResource(), LoadResource(), LockResource() -- Dostęp do zasobów wykonywalnych
Wykonaj dowolny DLL w innym procesie
Zlokalizuj proces, do którego wstrzykniesz złośliwy DLL: CreateToolhelp32Snapshot, Process32First, Process32Next
Otwórz proces: GetModuleHandle, GetProcAddress, OpenProcess
Zapisz ścieżkę do DLL wewnątrz procesu: VirtualAllocEx, WriteProcessMemory
Utwórz wątek w procesie, który załaduje złośliwy DLL: CreateRemoteThread, LoadLibrary
Inne funkcje do użycia: NTCreateThreadEx, RtlCreateUserThread
Załaduj złośliwy DLL bez wywoływania normalnych wywołań API Windows. DLL jest mapowany wewnątrz procesu, rozwiązuje adresy importu, naprawia relokacje i wywołuje funkcję DllMain.
Znajdź wątek z procesu i spraw, aby załadował złośliwy DLL
Znajdź docelowy wątek: CreateToolhelp32Snapshot, Thread32First, Thread32Next
Otwórz wątek: OpenThread
Wstrzymaj wątek: SuspendThread
Zapisz ścieżkę do złośliwego DLL wewnątrz procesu ofiary: VirtualAllocEx, WriteProcessMemory
Wznów wątek ładujący bibliotekę: ResumeThread
Wstrzykiwanie Portable Execution: Wykonywalny kod zostanie zapisany w pamięci procesu ofiary i będzie wykonywany stamtąd.
Złośliwe oprogramowanie usunie legalny kod z pamięci procesu i załaduje złośliwy binarny
Utwórz nowy proces: CreateProcess
Usuń mapę pamięci: ZwUnmapViewOfSection, NtUnmapViewOfSection
Zapisz złośliwy binarny w pamięci procesu: VirtualAllocEc, WriteProcessMemory
Ustaw punkt wejścia i wykonaj: SetThreadContext, ResumeThread
SSDT (System Service Descriptor Table) wskazuje na funkcje jądra (ntoskrnl.exe) lub sterownik GUI (win32k.sys), aby procesy użytkownika mogły wywoływać te funkcje.
Rootkit może modyfikować te wskaźniki do adresów, które kontroluje
IRP (I/O Request Packets) przesyłają fragmenty danych z jednego komponentu do drugiego. Prawie wszystko w jądrze używa IRP, a każdy obiekt urządzenia ma swoją własną tabelę funkcji, która może być podłączona: DKOM (Direct Kernel Object Manipulation)
IAT (Import Address Table) jest przydatna do rozwiązywania zależności. Możliwe jest podłączenie tej tabeli, aby przejąć kod, który będzie wywoływany.
EAT (Export Address Table) Hooki. Te hooki mogą być realizowane z userland. Celem jest podłączenie funkcji eksportowanych przez DLL.
Inline Hooks: Ten typ jest trudny do osiągnięcia. To wymaga modyfikacji kodu samych funkcji. Może poprzez umieszczenie skoku na początku tego.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)