hacktricks/reversing/common-api-used-in-malware.md

8.9 KiB

Često korišćene API u Malveru

Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u:

Try Hard Security Group

{% embed url="https://discord.gg/tryhardsecurity" %}


Generičko

Mreža

Raw Sockets WinAPI Sockets
socket() WSAStratup()
bind() bind()
listen() listen()
accept() accept()
connect() connect()
read()/recv() recv()
write() send()
shutdown() WSACleanup()

Upornost

Registar Fajl Servis
RegCreateKeyEx() GetTempPath() OpenSCManager
RegOpenKeyEx() CopyFile() CreateService()
RegSetValueEx() CreateFile() StartServiceCtrlDispatcher()
RegDeleteKeyEx() WriteFile()
RegGetValue() ReadFile()

Enkripcija

Ime
WinCrypt
CryptAcquireContext()
CryptGenKey()
CryptDeriveKey()
CryptDecrypt()
CryptReleaseContext()

Anti-Analiza/VM

Ime Funkcije Skup Instrukcija
IsDebuggerPresent() CPUID()
GetSystemInfo() IN()
GlobalMemoryStatusEx()
GetVersion()
CreateToolhelp32Snapshot [Provera da li je proces pokrenut]
CreateFileW/A [Provera da li fajl postoji]

Skrivanje

Ime
VirtualAlloc Alocira memoriju (paketi)
VirtualProtect Menja dozvole memorije (paket daje dozvolu za izvršenje sekciji)
ReadProcessMemory Ubrizgavanje u spoljne procese
WriteProcessMemoryA/W Ubrizgavanje u spoljne procese
NtWriteVirtualMemory
CreateRemoteThread Ubrizgavanje DLL/procesa...
NtUnmapViewOfSection
QueueUserAPC
CreateProcessInternalA/W

Izvršenje

Ime Funkcije
CreateProcessA/W
ShellExecute
WinExec
ResumeThread
NtResumeThread

Razno

  • GetAsyncKeyState() -- Snimanje tastera
  • SetWindowsHookEx -- Snimanje tastera
  • GetForeGroundWindow -- Dobijanje imena pokrenutog prozora (ili sajta iz pretraživača)
  • LoadLibrary() -- Uvoz biblioteke
  • GetProcAddress() -- Uvoz biblioteke
  • CreateToolhelp32Snapshot() -- Lista pokrenutih procesa
  • GetDC() -- Snimak ekrana
  • BitBlt() -- Snimak ekrana
  • InternetOpen(), InternetOpenUrl(), InternetReadFile(), InternetWriteFile() -- Pristup internetu
  • FindResource(), LoadResource(), LockResource() -- Pristup resursima iz izvršnog fajla

Tehnike Malvera

Ubrizgavanje DLL-a

Izvršava proizvoljni DLL unutar drugog procesa

  1. Locirajte proces za ubrizgavanje zlonamernog DLL-a: CreateToolhelp32Snapshot, Process32First, Process32Next
  2. Otvorite proces: GetModuleHandle, GetProcAddress, OpenProcess
  3. Napišite putanju do DLL-a unutar procesa: VirtualAllocEx, WriteProcessMemory
  4. Kreirajte nit u procesu koja će učitati zlonamerni DLL: CreateRemoteThread, LoadLibrary

Druge funkcije za korišćenje: NTCreateThreadEx, RtlCreateUserThread

Reflektivno Ubrizgavanje DLL-a

Učitava zlonamerni DLL bez pozivanja normalnih Windows API poziva.
DLL je mapiran unutar procesa, rešavaće adrese uvoza, popravljaće premeštanja i pozvaće funkciju DllMain.

Preuzimanje Niti

Pronađite nit iz procesa i naterajte je da učita zlonamerni DLL

  1. Pronađite ciljnu nit: CreateToolhelp32Snapshot, Thread32First, Thread32Next
  2. Otvorite nit: OpenThread
  3. Pauzirajte nit: SuspendThread
  4. Napišite putanju do zlonamernog DLL-a unutar procesa žrtve: VirtualAllocEx, WriteProcessMemory
  5. Nastavite nit koja učitava biblioteku: ResumeThread

PE Ubrizgavanje

Ubrizgavanje Pokretne Izvršne Datoteke: Izvršna datoteka će biti upisana u memoriju procesa žrtve i izvršena odande.

Procesno Ispraznjenje

Malver će ukloniti legitimni kod iz memorije procesa i učitati zlonamerni binarni fajl

  1. Kreirajte novi proces: CreateProcess
  2. Uklonite memoriju: ZwUnmapViewOfSection, NtUnmapViewOfSection
  3. Napišite zlonamerni binarni fajl u memoriju procesa: VirtualAllocEc, WriteProcessMemory
  4. Postavite tačku ulaska i izvršite: SetThreadContext, ResumeThread

Hakovanje

  • SSDT (Tabela Deskriptora Sistemskih Servisa) pokazuje na jezgro funkcija (ntoskrnl.exe) ili GUI drajver (win32k.sys) tako da korisnički procesi mogu pozvati ove funkcije.
  • Rootkit može modifikovati ove pokazivače na adrese koje kontroliše
  • IRP (I/O Zahtev Paketi) prenose delove podataka od jednog komponenta do drugog. Skoro sve u jezgru koristi IRP-ove i svaki objekat uređaja ima svoju funkcionalnu tabelu koja može biti hakovana: DKOM (Direktno Manipulisanje Objektima Jezgra)
  • IAT (Tabela Adresa Uvoza) je korisna za rešavanje zavisnosti. Moguće je hakovati ovu tabelu kako bi se preotela koda koja će biti pozvana.
  • EAT (Tabela Adresa Izvoza) Hakovi. Ovi hakovi mogu biti urađeni iz userland-a. Cilj je hakovati izvožene funkcije od strane DLL-ova.
  • Inline Hakovi: Ovaj tip je teško postići. Uključuje modifikovanje koda samih funkcija. Možda postavljanjem skoka na početku ovoga.

Try Hard Security Group

{% embed url="https://discord.gg/tryhardsecurity" %}

Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u: