# Algemene API gebruik in Malware {% hint style="success" %} Leer & oefen AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ Leer & oefen GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
Ondersteun HackTricks * Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)! * **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** * **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
{% endhint %} ## Generies ### Netwerk | Rauwe Sockets | WinAPI Sockets | | ------------- | -------------- | | socket() | WSAStratup() | | bind() | bind() | | listen() | listen() | | accept() | accept() | | connect() | connect() | | read()/recv() | recv() | | write() | send() | | shutdown() | WSACleanup() | ### Volharding | Registrasie | Lêer | Diens | | ---------------- | ------------- | ---------------------------- | | RegCreateKeyEx() | GetTempPath() | OpenSCManager | | RegOpenKeyEx() | CopyFile() | CreateService() | | RegSetValueEx() | CreateFile() | StartServiceCtrlDispatcher() | | RegDeleteKeyEx() | WriteFile() | | | RegGetValue() | ReadFile() | | ### Enkripsie | Naam | | --------------------- | | WinCrypt | | CryptAcquireContext() | | CryptGenKey() | | CryptDeriveKey() | | CryptDecrypt() | | CryptReleaseContext() | ### Anti-Analise/VM | Funksie Naam | Assembly Instruksies | | --------------------------------------------------------- | --------------------- | | IsDebuggerPresent() | CPUID() | | GetSystemInfo() | IN() | | GlobalMemoryStatusEx() | | | GetVersion() | | | CreateToolhelp32Snapshot \[Kontroleer of 'n proses loop\] | | | CreateFileW/A \[Kontroleer of 'n lêer bestaan\] | | ### Stealth | Naam | | | ------------------------ | -------------------------------------------------------------------------- | | VirtualAlloc | Allokeer geheue (packers) | | VirtualProtect | Verander geheue toestemming (packer gee uitvoerings toestemming aan 'n afdeling) | | ReadProcessMemory | Inspuiting in eksterne prosesse | | WriteProcessMemoryA/W | Inspuiting in eksterne prosesse | | NtWriteVirtualMemory | | | CreateRemoteThread | DLL/Proses inspuiting... | | NtUnmapViewOfSection | | | QueueUserAPC | | | CreateProcessInternalA/W | | ### Uitvoering | Funksie Naam | | ---------------- | | CreateProcessA/W | | ShellExecute | | WinExec | | ResumeThread | | NtResumeThread | ### Divers * GetAsyncKeyState() -- Sleutel logging * SetWindowsHookEx -- Sleutel logging * GetForeGroundWindow -- Kry die naam van die lopende venster (of die webwerf van 'n blaaier) * LoadLibrary() -- Importeer biblioteek * GetProcAddress() -- Importeer biblioteek * CreateToolhelp32Snapshot() -- Lys lopende prosesse * GetDC() -- Skermskoot * BitBlt() -- Skermskoot * InternetOpen(), InternetOpenUrl(), InternetReadFile(), InternetWriteFile() -- Toegang tot die Internet * FindResource(), LoadResource(), LockResource() -- Toegang tot hulpbronne van die uitvoerbare ## Malware Tegnieke ### DLL Inspuiting Voer 'n arbitrêre DLL binne 'n ander proses uit 1. Vind die proses om die kwaadwillige DLL in te spuit: CreateToolhelp32Snapshot, Process32First, Process32Next 2. Maak die proses oop: GetModuleHandle, GetProcAddress, OpenProcess 3. Skryf die pad na die DLL binne die proses: VirtualAllocEx, WriteProcessMemory 4. Skep 'n draad in die proses wat die kwaadwillige DLL sal laai: CreateRemoteThread, LoadLibrary Ander funksies om te gebruik: NTCreateThreadEx, RtlCreateUserThread ### Reflektiewe DLL Inspuiting Laai 'n kwaadwillige DLL sonder om normale Windows API-oproepe te doen.\ Die DLL word binne 'n proses gemap, dit sal die invoeradresse oplos, die herlokasies regmaak en die DllMain-funksie aanroep. ### Draad Hijacking Vind 'n draad van 'n proses en laat dit 'n kwaadwillige DLL laai 1. Vind 'n teiken draad: CreateToolhelp32Snapshot, Thread32First, Thread32Next 2. Maak die draad oop: OpenThread 3. Suspend die draad: SuspendThread 4. Skryf die pad na die kwaadwillige DLL binne die slagoffer proses: VirtualAllocEx, WriteProcessMemory 5. Herbegin die draad wat die biblioteek laai: ResumeThread ### PE Inspuiting Portabele Uitvoering Inspuiting: Die uitvoerbare sal in die geheue van die slagoffer proses geskryf word en daarvandaan uitgevoer word. ### Proses Hollowing Die malware sal die wettige kode uit die geheue van die proses onttrek en 'n kwaadwillige binêre laai 1. Skep 'n nuwe proses: CreateProcess 2. Ontkoppel die geheue: ZwUnmapViewOfSection, NtUnmapViewOfSection 3. Skryf die kwaadwillige binêre in die proses geheue: VirtualAllocEc, WriteProcessMemory 4. Stel die ingangspunt in en voer uit: SetThreadContext, ResumeThread ## Hooking * Die **SSDT** (**System Service Descriptor Table**) wys na kernfunksies (ntoskrnl.exe) of GUI bestuurder (win32k.sys) sodat gebruikersprosesse hierdie funksies kan aanroep. * 'n Rootkit kan hierdie punte na adresse wat hy beheer, verander * **IRP** (**I/O Request Packets**) stuur stukke data van een komponent na 'n ander. Byna alles in die kern gebruik IRP's en elke toestel objek het sy eie funksietabel wat gehook kan word: DKOM (Direct Kernel Object Manipulation) * Die **IAT** (**Import Address Table**) is nuttig om afhanklikhede op te los. Dit is moontlik om hierdie tabel te hook om die kode wat aangeroep sal word, te kap. * **EAT** (**Export Address Table**) Hooks. Hierdie hooks kan vanaf **userland** gedoen word. Die doel is om geexporteerde funksies deur DLL's te hook. * **Inline Hooks**: Hierdie tipe is moeilik om te bereik. Dit behels die verandering van die kode van die funksies self. Miskien deur 'n sprongetjie aan die begin hiervan te plaas. {% hint style="success" %} Leer & oefen AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ Leer & oefen GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
Ondersteun HackTricks * Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)! * **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** * **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
{% endhint %}