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:
- Ako želite da vidite vašu kompaniju reklamiranu na HackTricks-u ili preuzmete HackTricks u PDF formatu proverite PLANOVE ZA PRIJATELJSTVO!
- Nabavite zvanični PEASS & HackTricks swag
- Otkrijte Porodicu PEASS, našu kolekciju ekskluzivnih NFT-ova
- Pridružite se 💬 Discord grupi ili telegram grupi ili nas pratite na Twitteru 🐦 @carlospolopm.
- Podelite svoje hakovanje trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.
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
- Locirajte proces za ubrizgavanje zlonamernog DLL-a: 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
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
- Pronađite ciljnu nit: CreateToolhelp32Snapshot, Thread32First, Thread32Next
- Otvorite nit: OpenThread
- Pauzirajte nit: SuspendThread
- Napišite putanju do zlonamernog DLL-a unutar procesa žrtve: VirtualAllocEx, WriteProcessMemory
- 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
- Kreirajte novi proces: CreateProcess
- Uklonite memoriju: ZwUnmapViewOfSection, NtUnmapViewOfSection
- Napišite zlonamerni binarni fajl u memoriju procesa: VirtualAllocEc, WriteProcessMemory
- 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:
- Ako želite da vidite vašu kompaniju reklamiranu na HackTricks-u ili preuzmete HackTricks u PDF formatu proverite PLANOVE ZA PRIJATELJSTVO!
- Nabavite zvanični PEASS & HackTricks swag
- Otkrijte Porodicu PEASS, našu kolekciju ekskluzivnih NFT-ova
- Pridružite se 💬 Discord grupi ili telegram grupi ili nas pratite na Twitteru 🐦 @carlospolopm.
- Podelite svoje hakovanje trikove podnošenjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.