Common API used in Malware

Sıfırdan Kahraman Olmaya AWS hackleme öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı) ile!

HackTricks'ı desteklemenin diğer yolları:

Try Hard Güvenlik Grubu


Genel

Ham SoketlerWinAPI Soketleri

socket()

WSAStratup()

bind()

bind()

listen()

listen()

accept()

accept()

connect()

connect()

read()/recv()

recv()

write()

send()

shutdown()

WSACleanup()

Kalıcılık

Kayıt DefteriDosyaServis

RegCreateKeyEx()

GetTempPath()

OpenSCManager

RegOpenKeyEx()

CopyFile()

CreateService()

RegSetValueEx()

CreateFile()

StartServiceCtrlDispatcher()

RegDeleteKeyEx()

WriteFile()

RegGetValue()

ReadFile()

Şifreleme

Adı

WinCrypt

CryptAcquireContext()

CryptGenKey()

CryptDeriveKey()

CryptDecrypt()

CryptReleaseContext()

Anti-Analiz/VM

Fonksiyon AdıMontaj Talimatları

IsDebuggerPresent()

CPUID()

GetSystemInfo()

IN()

GlobalMemoryStatusEx()

GetVersion()

CreateToolhelp32Snapshot [Bir işlemin çalışıp çalışmadığını kontrol et]

CreateFileW/A [Bir dosyanın var olup olmadığını kontrol et]

Gizlilik

Adı

VirtualAlloc

Bellek tahsisi (sıkıştırıcılar)

VirtualProtect

Bellek izni değiştirme (bir bölüme yürütme izni veren sıkıştırıcı)

ReadProcessMemory

Harici işlemlere enjeksiyon

WriteProcessMemoryA/W

Harici işlemlere enjeksiyon

NtWriteVirtualMemory

CreateRemoteThread

DLL/İşlem enjeksiyonu...

NtUnmapViewOfSection

QueueUserAPC

CreateProcessInternalA/W

Yürütme

Fonksiyon Adı

CreateProcessA/W

ShellExecute

WinExec

ResumeThread

NtResumeThread

Çeşitli

  • GetAsyncKeyState() -- Tuş kaydı

  • SetWindowsHookEx -- Tuş kaydı

  • GetForeGroundWindow -- Çalışan pencere adını al (veya bir tarayıcıdan web sitesini)

  • LoadLibrary() -- Kütüphane içe aktar

  • GetProcAddress() -- Kütüphane içe aktar

  • CreateToolhelp32Snapshot() -- Çalışan işlemleri listele

  • GetDC() -- Ekran görüntüsü

  • BitBlt() -- Ekran görüntüsü

  • InternetOpen(), InternetOpenUrl(), InternetReadFile(), InternetWriteFile() -- İnternete erişim

  • FindResource(), LoadResource(), LockResource() -- Yürütülebilir dosyanın kaynaklarına erişim

Kötü Amaçlı Yazılım Teknikleri

DLL Enjeksiyonu

Başka bir işlem içinde keyfi bir DLL'yi yürüt

  1. Kötü niyetli DLL'yi enjekte etmek için işlemi bul: CreateToolhelp32Snapshot, Process32First, Process32Next

  2. İşlemi aç: GetModuleHandle, GetProcAddress, OpenProcess

  3. DLL'nin yolunu işlemin içine yaz: VirtualAllocEx, WriteProcessMemory

  4. Kötü niyetli DLL'yi yükleyecek işlemde bir iş parçacığı oluştur: CreateRemoteThread, LoadLibrary

Kullanılacak diğer fonksiyonlar: NTCreateThreadEx, RtlCreateUserThread

Yansımalı DLL Enjeksiyonu

Normal Windows API çağrılarını yapmadan kötü niyetli bir DLL yükle. DLL, bir işlem içine eşlenir, içe aktarma adreslerini çözer, yer değiştirmeleri düzeltir ve DllMain işlevini çağırır.

İş Parçacığı Kaçırma

Bir işlemde bir iş parçacığını bul ve kötü niyetli bir DLL yüklemesini sağla

  1. Hedef iş parçacığını bul: CreateToolhelp32Snapshot, Thread32First, Thread32Next

  2. İş parçacığını aç: OpenThread

  3. İş parçacığını askıya al: SuspendThread

  4. Kötü niyetli DLL'nin yolunu kurban işlem içine yaz: VirtualAllocEx, WriteProcessMemory

  5. Kütüphaneyi yükleyen iş parçacığını devam ettir: ResumeThread

PE Enjeksiyonu

Taşınabilir Yürütme Enjeksiyonu: Yürütülebilir dosya, kurban işlemin belleğine yazılacak ve oradan yürütülecek.

İşlem Boşaltma

Kötü amaçlı yazılım, işlemin belleğinden meşru kodu kaldırır ve kötü niyetli bir ikili yükler

  1. Yeni bir işlem oluştur: CreateProcess

  2. Belleği kaldır: ZwUnmapViewOfSection, NtUnmapViewOfSection

  3. Kötü niyetli ikiliyi işlem belleğine yaz: VirtualAllocEc, WriteProcessMemory

  4. Giriş noktasını ayarla ve yürüt: SetThreadContext, ResumeThread

Hooking

  • SSDT (Sistem Hizmeti Tanım Tablosu), kullanıcı işlemlerinin bu işlevleri (ntoskrnl.exe) veya GUI sürücüsü (win32k.sys) çağırmasını sağlayan çekirdek işlevlerine işaret eder.

  • Bir rootkit, bu işaretçileri kendi kontrol ettiği adreslere değiştirebilir

  • IRP (Giriş/Çıkış İsteği Paketleri), bir bileşenden diğerine veri parçaları iletir. Çekirdekte neredeyse her şey IRP'leri kullanır ve her aygıt nesnesinin kendi işlev tablosu vardır ve bu tablo kancalanabilir: DKOM (Doğrudan Çekirdek Nesne Manipülasyonu)

  • IAT (İçe Aktarma Adres Tablosu), bağımlılıkları çözmek için kullanışlıdır. Bu tabloyu kancalamak, çağrılacak kodu ele geçirmeyi sağlar.

  • EAT (Dışa Aktarma Adres Tablosu) Kancalar. Bu kancalar kullanıcı alanından yapılabilir. Amaç, DLL'ler tarafından ihraç edilen işlevleri kancalamaktır.

  • İç Kancalar: Bu tür, zor bir hedeftir. Bu, işlevlerin kodunu değiştirerek yapılır. Belki de bunu başlangıcına bir sıçrama koyarak yapabilirsiniz.

Try Hard Güvenlik Grubu

Sıfırdan Kahraman Olmaya AWS hackleme öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı) ile!

HackTricks'ı desteklemenin diğer yolları:

Last updated