# Yaygın Kötü Amaçlı Yazılımlarda Kullanılan API'lar
Sıfırdan Kahraman Olmaya AWS hackleme öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı) ile! HackTricks'ı desteklemenin diğer yolları: * **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin! * [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com) * [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz * **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.** * **Hacking püf noktalarınızı göndererek HackTricks ve HackTricks Cloud** github depolarına PR'lar gönderin.
**Try Hard Güvenlik Grubu**
{% embed url="https://discord.gg/tryhardsecurity" %} *** ## Genel ### Ağ | Ham Soketler | WinAPI Soketleri | | ------------- | -------------- | | socket() | WSAStratup() | | bind() | bind() | | listen() | listen() | | accept() | accept() | | connect() | connect() | | read()/recv() | recv() | | write() | send() | | shutdown() | WSACleanup() | ### Kalıcılık | Kayıt Defteri | Dosya | Servis | | ---------------- | ------------- | ---------------------------- | | 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**
{% embed url="https://discord.gg/tryhardsecurity" %}
Sıfırdan Kahraman Olmaya AWS hackleme öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı) ile! HackTricks'ı desteklemenin diğer yolları: * **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin! * [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com) * [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz * **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.** * **Hacking hilelerinizi göndererek PR'ler oluşturarak paylaşın** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına.