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
Alokacija memorije (paketari)
VirtualProtect
Promena dozvola memorije (paketari daju dozvolu izvršenja sekciji)
ReadProcessMemory
Injekcija u spoljne procese
WriteProcessMemoryA/W
Injekcija u spoljne procese
NtWriteVirtualMemory
CreateRemoteThread
DLL/injekcija procesa...
NtUnmapViewOfSection
QueueUserAPC
CreateProcessInternalA/W
CreateProcessA/W
ShellExecute
WinExec
ResumeThread
NtResumeThread
GetAsyncKeyState() -- Snimanje tastera
SetWindowsHookEx -- Snimanje tastera
GetForeGroundWindow -- Dobijanje imena aktivnog prozora (ili veb stranice iz pretraživača)
LoadLibrary() -- Uvoz biblioteke
GetProcAddress() -- Uvoz biblioteke
CreateToolhelp32Snapshot() -- Lista aktivnih procesa
GetDC() -- Slikanje ekrana
BitBlt() -- Slikanje ekrana
InternetOpen(), InternetOpenUrl(), InternetReadFile(), InternetWriteFile() -- Pristup internetu
FindResource(), LoadResource(), LockResource() -- Pristup resursima izvršnog fajla
Izvršavanje proizvoljnog DLL-a unutar drugog procesa
Pronađite proces u koji ćete injektovati zlonamerni DLL: CreateToolhelp32Snapshot, Process32First, Process32Next
Otvorite proces: GetModuleHandle, GetProcAddress, OpenProcess
Napišite putanju do DLL-a unutar procesa: VirtualAllocEx, WriteProcessMemory
Kreirajte nit u procesu koja će učitati zlonamerni DLL: CreateRemoteThread, LoadLibrary
Ostale funkcije za korišćenje: NTCreateThreadEx, RtlCreateUserThread
Učitajte zlonamerni DLL bez pozivanja normalnih Windows API poziva. DLL se mapira unutar procesa, rešava adrese uvoza, ispravlja relokacije i poziva DllMain funkciju.
Pronađite nit iz procesa i naterajte je da učita zlonamerni DLL
Pronađite ciljnu nit: CreateToolhelp32Snapshot, Thread32First, Thread32Next
Otvorite nit: OpenThread
Suspendujte nit: SuspendThread
Napišite putanju do zlonamernog DLL-a unutar procesa žrtve: VirtualAllocEx, WriteProcessMemory
Nastavite nit koja učitava biblioteku: ResumeThread
Injekcija prenosivog izvršenja: Izvršni fajl će biti napisan u memoriju procesa žrtve i biće izvršen odatle.
Zlonamerni softver će ukloniti legitimni kod iz memorije procesa i učitati zlonamerni binarni fajl
Kreirajte novi proces: CreateProcess
Uklonite mapiranje memorije: ZwUnmapViewOfSection, NtUnmapViewOfSection
Napišite zlonamerni binarni fajl u memoriju procesa: VirtualAllocEc, WriteProcessMemory
Postavite ulaznu tačku i izvršite: SetThreadContext, ResumeThread
SSDT (Tabela deskriptora sistemskih usluga) pokazuje na kernel funkcije (ntoskrnl.exe) ili GUI drajver (win32k.sys) tako da korisnički procesi mogu pozivati te funkcije.
Rootkit može izmeniti ove pokazivače na adrese koje kontroliše
IRP (Paketi zahteva za ulaz/izlaz) prenose delove podataka od jednog komponente do druge. Gotovo sve u kernelu koristi IRP-ove i svaki objekat uređaja ima svoju funkciju koja može biti "hook-ovana": DKOM (Direktna manipulacija kernel objektima)
IAT (Tabela adresa uvoza) je korisna za rešavanje zavisnosti. Moguće je "hook-ovati" ovu tabelu kako bi se preuzela kontrola nad kodom koji će biti pozvan.
EAT (Tabela adresa izvoza) Hook-ovi. Ovi hook-ovi mogu biti napravljeni iz userland. Cilj je "hook-ovati" izvođene funkcije od strane DLL-ova.
Inline Hooks: Ova vrsta je teška za postizanje. Ovo uključuje modifikaciju koda samih funkcija. Možda stavljanjem skoka na početak ovoga.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)