# Malware'da Kullanılan Yaygın API'ler {% hint style="success" %} AWS Hacking'i öğrenin ve pratik yapın:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ GCP Hacking'i öğrenin ve pratik yapın: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
HackTricks'i Destekleyin * [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin! * **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter**'da **bizi takip edin** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** * **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
{% endhint %} ## Genel ### Ağ | Ham Soketler | WinAPI Soketleri | | -------------- | ----------------- | | socket() | WSAStratup() | | bind() | bind() | | listen() | listen() | | accept() | accept() | | connect() | connect() | | read()/recv() | recv() | | write() | send() | | shutdown() | WSACleanup() | ### Süreklilik | Kayıt | Dosya | Servis | | --------------- | ------------- | --------------------------- | | RegCreateKeyEx()| GetTempPath() | OpenSCManager | | RegOpenKeyEx() | CopyFile() | CreateService() | | RegSetValueEx() | CreateFile() | StartServiceCtrlDispatcher()| | RegDeleteKeyEx()| WriteFile() | | | RegGetValue() | ReadFile() | | ### Şifreleme | İsim | | --------------------- | | WinCrypt | | CryptAcquireContext() | | CryptGenKey() | | CryptDeriveKey() | | CryptDecrypt() | | CryptReleaseContext() | ### Analiz/VM'ye Karşı | Fonksiyon Adı | Assembly Talimatları | | --------------------------------------------------------- | --------------------- | | IsDebuggerPresent() | CPUID() | | GetSystemInfo() | IN() | | GlobalMemoryStatusEx() | | | GetVersion() | | | CreateToolhelp32Snapshot \[Bir sürecin çalışıp çalışmadığını kontrol et] | | | CreateFileW/A \[Bir dosyanın var olup olmadığını kontrol et] | | ### Gizlilik | İsim | | | ------------------------ | -------------------------------------------------------------------------- | | VirtualAlloc | Bellek ayırma (paketleyiciler) | | VirtualProtect | Bellek izni değiştirme (paketleyici bir bölüme yürütme izni verme) | | ReadProcessMemory | Dış süreçlere enjekte etme | | WriteProcessMemoryA/W | Dış süreçlere enjekte etme | | NtWriteVirtualMemory | | | CreateRemoteThread | DLL/Süreç enjekte etme... | | 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 aktarma * GetProcAddress() -- Kütüphane içe aktarma * CreateToolhelp32Snapshot() -- Çalışan süreçleri 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 ## Malware Teknikleri ### DLL Enjeksiyonu Başka bir süreç içinde rastgele bir DLL yürütün 1. Kötü amaçlı DLL'yi enjekte etmek için süreci bulun: CreateToolhelp32Snapshot, Process32First, Process32Next 2. Süreci açın: GetModuleHandle, GetProcAddress, OpenProcess 3. Süreç içinde DLL'nin yolunu yazın: VirtualAllocEx, WriteProcessMemory 4. Kötü amaçlı DLL'yi yükleyecek bir iş parçacığı oluşturun: CreateRemoteThread, LoadLibrary Kullanılacak diğer fonksiyonlar: NTCreateThreadEx, RtlCreateUserThread ### Yansıtıcı DLL Enjeksiyonu Normal Windows API çağrılarını yapmadan kötü amaçlı bir DLL yükleyin.\ DLL, bir süreç içinde haritalanır, ithalat adreslerini çözer, yeniden konumlandırmaları düzeltir ve DllMain fonksiyonunu çağırır. ### İş Parçacığı Ele Geçirme Bir süreçten bir iş parçacığı bulun ve onu kötü amaçlı bir DLL yüklemesi yapın 1. Hedef iş parçacığını bulun: CreateToolhelp32Snapshot, Thread32First, Thread32Next 2. İş parçacığını açın: OpenThread 3. İş parçacığını askıya alın: SuspendThread 4. Kurban sürecinin içine kötü amaçlı DLL'nin yolunu yazın: VirtualAllocEx, WriteProcessMemory 5. Kütüphaneyi yükleyen iş parçacığını devam ettirin: ResumeThread ### PE Enjeksiyonu Taşınabilir Yürütme Enjeksiyonu: Yürütülebilir dosya, kurban sürecinin belleğine yazılacak ve oradan yürütülecektir. ### Süreç Boşaltma Kötü amaçlı yazılım, sürecin belleğinden meşru kodu kaldıracak ve kötü amaçlı bir ikili dosya yükleyecektir. 1. Yeni bir süreç oluşturun: CreateProcess 2. Belleği boşaltın: ZwUnmapViewOfSection, NtUnmapViewOfSection 3. Süreç belleğine kötü amaçlı ikili dosyayı yazın: VirtualAllocEc, WriteProcessMemory 4. Giriş noktasını ayarlayın ve yürütün: SetThreadContext, ResumeThread ## Hooking * **SSDT** (**Sistem Servis Tanımlayıcı Tablosu**), kullanıcı süreçlerinin bu fonksiyonları çağırabilmesi için çekirdek fonksiyonlarına (ntoskrnl.exe) veya GUI sürücüsüne (win32k.sys) işaret eder. * Bir rootkit, bu işaretçileri kontrol ettiği adreslere değiştirebilir. * **IRP** (**G/Ç İstek Paketleri**), bir bileşenden diğerine veri parçaları iletir. Çekirdek içinde hemen hemen her şey IRP'leri kullanır ve her cihaz nesnesinin kendi işlev tablosu vardır ve bu tabloya hook yapılabilir: DKOM (Doğrudan Çekirdek Nesne Manipülasyonu) * **IAT** (**İthalat Adres Tablosu**), bağımlılıkları çözmek için yararlıdır. Bu tabloyu hooklamak, çağrılacak kodu ele geçirmek için mümkündür. * **EAT** (**İhracat Adres Tablosu**) Hook'ları. Bu hook'lar **kullanıcı alanından** yapılabilir. Amaç, DLL'ler tarafından ihraç edilen fonksiyonları hooklamaktır. * **Inline Hook'lar**: Bu türler elde edilmesi zor. Bu, fonksiyonların kendisinin kodunu değiştirmeyi içerir. Belki de bunun başına bir atlama koyarak. {% hint style="success" %} AWS Hacking'i öğrenin ve pratik yapın:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ GCP Hacking'i öğrenin ve pratik yapın: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
HackTricks'i Destekleyin * [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin! * **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter**'da **bizi takip edin** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** * **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
{% endhint %}