hacktricks/reversing/common-api-used-in-malware.md
2024-02-11 02:07:06 +00:00

7.6 KiB

Leer AWS-hacking van nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun:

Vind kwesbaarhede wat die belangrikste is sodat jy dit vinniger kan regstel. Intruder volg jou aanvalsoppervlak, voer proaktiewe dreigingsskanderings uit, vind probleme regoor jou hele tegnologie-stapel, van API's tot webtoepassings en wolkstelsels. Probeer dit vandag nog gratis.

{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}


Generies

Netwerking

Rou Sokkels WinAPI Sokkels
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()

Enkripsie

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

Anti-Analise/VM

Funksienaam Monteerinstructies
IsDebuggerPresent() CPUID()
GetSystemInfo() IN()
GlobalMemoryStatusEx()
GetVersion()
CreateToolhelp32Snapshot [Kyk of 'n proses loop]
CreateFileW/A [Kyk of 'n lêer bestaan]

Versteek

Naam
VirtualAlloc Allokeer geheue (pakkers)
VirtualProtect Verander geheue toestemming (pakker gee uitvoeringsregte aan 'n afdeling)
ReadProcessMemory Injeksie in eksterne prosesse
WriteProcessMemoryA/W Injeksie in eksterne prosesse
NtWriteVirtualMemory
CreateRemoteThread DLL/Prosesinjeksie...
NtUnmapViewOfSection
QueueUserAPC
CreateProcessInternalA/W

Uitvoering

Funksienaam
CreateProcessA/W
ShellExecute
WinExec
ResumeThread
NtResumeThread

Verskeidenheid

  • GetAsyncKeyState() -- Sleutelloggery
  • SetWindowsHookEx -- Sleutelloggery
  • 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() -- 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-Injeksie

Voer 'n willekeurige DLL uit binne 'n ander proses

  1. Vind die proses om die skadelike 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 skadelike DLL sal laai: CreateRemoteThread, LoadLibrary

Ander funksies om te gebruik: NTCreateThreadEx, RtlCreateUserThread

Reflektiewe DLL-Injeksie

Laai 'n skadelike DLL sonder om normale Windows API-oproepe te maak.
Die DLL word gekaart binne 'n proses, dit sal die invoeradressering oplos, die herlokasies regstel en die DllMain-funksie aanroep.

Draadkaping

Vind 'n draad van 'n proses en maak dit 'n skadelike DLL laai

  1. Vind 'n teikendraad: CreateToolhelp32Snapshot, Thread32First, Thread32Next
  2. Maak die draad oop: OpenThread
  3. Stel die draad op: SuspendThread
  4. Skryf die pad na die skadelike DLL binne die slagofferproses: VirtualAllocEx, WriteProcessMemory
  5. Hervat die draad deur die biblioteek te laai: ResumeThread

PE-Injeksie

Portable Execution Injeksie: Die uitvoerbare lêer sal geskryf word in die geheue van die slagofferproses en van daar af uitgevoer word.

Prosesholing

Die malware sal die wettige kode uit die geheue van die proses uitkoppel en 'n skadelike binêre lêer laai

  1. Skep 'n nuwe proses: CreateProcess
  2. Skakel die geheue uit: ZwUnmapViewOfSection, NtUnmapViewOfSection
  3. Skryf die skadelike binêre lêer in die prosesgeheue: VirtualAllocEc, WriteProcessMemory
  4. Stel die intreepunt in en voer uit: SetThreadContext, ResumeThread

Haak

  • Die SSDT (System Service Descriptor Table) wys na kernel-funksies (ntoskrnl.exe) of GUI-bestuurder (win32k.sys) sodat gebruikersprosesse hierdie funksies kan aanroep.
  • 'n Rootkit kan hierdie wysers wysig na adresse wat hy beheer