9 KiB
Algemene API wat in Malware gebruik word
Leer AWS hakwerk vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)!
Ander maniere om HackTricks te ondersteun:
- As jy wil sien dat jou maatskappy geadverteer word in HackTricks of HackTricks aflaai in PDF-formaat Kyk na die INSKRYWINGSPLANNE!
- Kry die amptelike PEASS & HackTricks swag
- Ontdek Die PEASS Familie, ons versameling van eksklusiewe NFTs
- Sluit aan by die 💬 Discord groep of die telegram groep of volg ons op Twitter 🐦 @carlospolopm.
- Deel jou hakwerktruuks deur PRs in te dien by die HackTricks en HackTricks Cloud github repos.
Probeer Hard Security Groep
{% embed url="https://discord.gg/tryhardsecurity" %}
Generies
Netwerke
Rou Sockets | WinAPI Sockets |
---|---|
socket() | WSAStratup() |
bind() | bind() |
listen() | listen() |
accept() | accept() |
connect() | connect() |
read()/recv() | recv() |
write() | send() |
shutdown() | WSACleanup() |
Volharding
Registreer | Lêer | Diens |
---|---|---|
RegCreateKeyEx() | GetTempPath() | OpenSCManager |
RegOpenKeyEx() | CopyFile() | CreateService() |
RegSetValueEx() | CreateFile() | StartServiceCtrlDispatcher() |
RegDeleteKeyEx() | WriteFile() | |
RegGetValue() | ReadFile() |
Versleuteling
Naam |
---|
WinCrypt |
CryptAcquireContext() |
CryptGenKey() |
CryptDeriveKey() |
CryptDecrypt() |
CryptReleaseContext() |
Anti-Analise/VM
Funksie Naam | Monteerinstruksies |
---|---|
IsDebuggerPresent() | CPUID() |
GetSystemInfo() | IN() |
GlobalMemoryStatusEx() | |
GetVersion() | |
CreateToolhelp32Snapshot [Kyk of 'n proses loop] | |
CreateFileW/A [Kyk of 'n lêer bestaan] |
Steelsheid
Naam | |
---|---|
VirtualAlloc | Allokasie van geheue (pakkers) |
VirtualProtect | Verander geheue toestemming (pakker gee uitvoeringsreg aan 'n afdeling) |
ReadProcessMemory | Inspruiting in eksterne prosesse |
WriteProcessMemoryA/W | Inspruiting in eksterne prosesse |
NtWriteVirtualMemory | |
CreateRemoteThread | DLL/Proses inspuiting... |
NtUnmapViewOfSection | |
QueueUserAPC | |
CreateProcessInternalA/W |
Uitvoering
Funksie Naam |
---|
CreateProcessA/W |
ShellExecute |
WinExec |
ResumeThread |
NtResumeThread |
Verskeidenheid
- GetAsyncKeyState() -- Sleutel log
- SetWindowsHookEx -- Sleutel log
- GetForeGroundWindow -- Kry lopende vensternaam (of die webwerf van 'n blaaier)
- LoadLibrary() -- Importeer biblioteek
- GetProcAddress() -- Importeer biblioteek
- CreateToolhelp32Snapshot() -- Lys lopende prosesse
- GetDC() -- Skermkiekie
- BitBlt() -- Skermkiekie
- InternetOpen(), InternetOpenUrl(), InternetReadFile(), InternetWriteFile() -- Toegang tot die internet
- FindResource(), LoadResource(), LockResource() -- Toegang tot hulpbronne van die uitvoerbare lêer
Malware Tegnieke
DLL Inspruiting
Voer 'n willekeurige DLL binne 'n ander proses uit
- Vind die proses om die skadelike DLL in te spuit: CreateToolhelp32Snapshot, Process32First, Process32Next
- Maak die proses oop: GetModuleHandle, GetProcAddress, OpenProcess
- Skryf die pad na die DLL binne die proses: VirtualAllocEx, WriteProcessMemory
- Skep 'n draad in die proses wat die skadelike DLL sal laai: CreateRemoteThread, LoadLibrary
Ander funksies om te gebruik: NTCreateThreadEx, RtlCreateUserThread
Reflektiewe DLL Inspruiting
Laai 'n skadelike DLL sonder om normale Windows API-oproepe te maak.
Die DLL word binne 'n proses afgebeeld, dit sal die invoeradresse oplos, die herlokalisasies regstel en die DllMain-funksie aanroep.
Draad Ontvoering
Vind 'n draad van 'n proses en maak dit 'n skadelike DLL laai
- Vind 'n teikendraad: CreateToolhelp32Snapshot, Thread32First, Thread32Next
- Maak die draad oop: OpenThread
- Stel die draad op: SuspendThread
- Skryf die pad na die skadelike DLL binne die slagofferproses: VirtualAllocEx, WriteProcessMemory
- Hervat die draad wat die biblioteek laai: ResumeThread
PE Inspruiting
Portable Uitvoering Inspruiting: Die uitvoerbare lêer sal in die geheue van die slagofferproses geskryf word en van daar af uitgevoer word.
Proses Uitholling
Die malware sal die wettige kode van die geheue van die proses afkoppel en 'n skadelike binêre lêer laai
- Skep 'n nuwe proses: CreateProcess
- Ontkoppel die geheue: ZwUnmapViewOfSection, NtUnmapViewOfSection
- Skryf die skadelike binêre lêer in die prosesgeheue: VirtualAllocEc, WriteProcessMemory
- Stel die ingangspunt en voer uit: SetThreadContext, ResumeThread
Haak
- Die SSDT (System Service Descriptor Table) wys na kernelfunksies (ntoskrnl.exe) of GUI-bestuurder (win32k.sys) sodat gebruikersprosesse hierdie funksies kan aanroep.
- 'n Rootkit kan hierdie wysigers na adresse wat hy beheer, wysig
- IRP (I/O Aanvraagpakkette) stuur stukke data van die een komponent na die ander. Amper alles in die kernel gebruik IRPs en elke toestelobjek het sy eie funksietabel wat gehaak kan word: DKOM (Direkte Kernelobjekmanipulasie)
- Die IAT (Invoeradrestabel) is nuttig om afhanklikhede op te los. Dit is moontlik om hierdie tabel te haak om die kode wat geroep sal word, te ontvoer.
- EAT (Uitvoeradrestabel) Haak. Hierdie haak kan vanuit gebruikersruimte gedoen word. Die doel is om uitgevoerde funksies deur DLLs te haak.
- Inline Haaksele: Hierdie tipe is moeilik om te bereik. Dit behels die wysiging van die kode van die funksies self. Dalk deur 'n sprong aan die begin van hierdie te plaas.
Probeer Hard Security Groep
{% embed url="https://discord.gg/tryhardsecurity" %}
Leer AWS hakwerk vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)!
Ander maniere om HackTricks te ondersteun:
- As jy wil sien dat jou maatskappy geadverteer word in HackTricks of HackTricks aflaai in PDF-formaat Kyk na die INSKRYWINGSPLANNE!
- Kry die amptelike PEASS & HackTricks swag
- Ontdek Die PEASS Familie, ons versameling van eksklusiewe NFTs
- Sluit aan by die 💬 Discord groep of die telegram groep of volg ons op Twitter 🐦 @carlospolopm.
- Deel jou hacking truuks deur 'n PR in te dien by die HackTricks en HackTricks Cloud github repos.