Common API used in Malware

Leer AWS hakwerk vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun:

Probeer Hard Security Groep


Generies

Netwerke

Rou SocketsWinAPI Sockets

socket()

WSAStratup()

bind()

bind()

listen()

listen()

accept()

accept()

connect()

connect()

read()/recv()

recv()

write()

send()

shutdown()

WSACleanup()

Volharding

RegistreerLêerDiens

RegCreateKeyEx()

GetTempPath()

OpenSCManager

RegOpenKeyEx()

CopyFile()

CreateService()

RegSetValueEx()

CreateFile()

StartServiceCtrlDispatcher()

RegDeleteKeyEx()

WriteFile()

RegGetValue()

ReadFile()

Versleuteling

Naam

WinCrypt

CryptAcquireContext()

CryptGenKey()

CryptDeriveKey()

CryptDecrypt()

CryptReleaseContext()

Anti-Analise/VM

FunksienaamMonteerinstruksies

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

Funksienaam

CreateProcessA/W

ShellExecute

WinExec

ResumeThread

NtResumeThread

Verskeidenheid

  • GetAsyncKeyState() -- Sleutel log

  • SetWindowsHookEx -- Sleutel log

  • GetForeGroundWindow -- Kry die 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

  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 Inspruiting

Laai 'n skadelike DLL sonder om normale Windows API-oproepe te maak. Die DLL word in 'n proses afgebeeld, dit sal die invoeradresse oplos, die herlokalisasies regstel en die DllMain-funksie aanroep.

Draad Kaping

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

  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 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

  1. Skep 'n nuwe proses: CreateProcess

  2. Ontkoppel die geheue: ZwUnmapViewOfSection, NtUnmapViewOfSection

  3. Skryf die skadelike binêre lêer in die prosesgeheue: VirtualAllocEc, WriteProcessMemory

  4. 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 wysers 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 kap.

  • EAT (Uitvoeradrestabel) Haak. Hierdie hake kan vanuit gebruikersruimte gedoen word. Die doel is om uitgevoerde funksies deur DLL's te haak.

  • Inline Hake: 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

Leer AWS hakwerk vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun:

Last updated