Malware Analizi - 04
Malware Analizi
Malware Analizi serisinin ilk bölümüne ulaşmak için: Malware Analizi - 01
Windows API
NOT: Bazı fonksiyonların sonunda Ex, A ve W karakterleri yer alıyor. Ex, sonuna geldiği fonksiyonun bir önceki sürümüne göre genişletildiğini daha fazla içerik eklendiğini ifade eder. Ex ifadesinden sonra A ve W karakterleri de gelebilir. A, fonksiyonun girdi olarak ANSI standardında string almasını sağlarken W ise UNICODE string girdisini ifade eder.
Dosya İşlemleri İle İlgili API’ler
Yeni bir dosya oluşturmayı, dosyaları okumayı, yazmayı ve bir kaynağın konumunu belirtilen modül içinde bulmayı sağlar.
- CreateFile
- ReadFile
- WriteFile
- FindResource
- LoadResource
Kayıt Defteri İle Alakalı API’ler
Kayıt defteri üzerindeki kayıtların veya değerlerin değiştirilmesi, görüntülenmesi ve güncellenmesini sağlayan modüllerdir.
- RegOpenKeyEx
- RegSetValueEx
- RegGetValue
Ağ Erişimi -> WinSock API
Sistem üzerinde oluşturulan soketler ve bunların yönetimi ile alakalı API’leri kapsar. Soketlerin başlatılması, durumu ve soketler üzerinden veri aktarımı gibi işlevleri vardır.
- WSAStartup
- WSAGetLastError
- connect
- accept
- socket
- send
- recv
- listen
- getaddrinfo
Internet Erişimi -> WinINet API
İnternet erişimi olması durumunda internet üzerinden dosya okuma, FTP sunucusuna bağlanma, GET isteği gönderip gelen isteklere cevap vermeye kadar bütün esnekliği sağlayan API’ler sayesinde bir zararlının sadece bu API’lere sahip olması bile yeterlidir.
- InternetOpen
- InternetOpenURL
- InternetConnect
- InternetReadFile
- InternetWriteFile
- HTTPOpenRequest
- HTTPSendRequest
- HTTPQueryInfo
Internet Erişimi -> Urlmon
İnternetten indirdiği veriyi dosyaya yazar.
- URLDownloadToFile
Keylogger Fonksiyonalitesi Sağlayan API’ler
Sistemde kullanılan klavyenin tuş konumlarından tutun hangi tuşa ne kadar basıldığının bilgisini dahi sunan bu API’ler bir keylogger’ın olmazsa olmazıdır.
- SetWindowsHookEx
- CallNextHookEx
- MapVirtualKey
- GetKeyState
- GetAsyncKeyState
- GetForegroundWindow
- AttachThreadInput
Process İşlemleri
- VirtualAlloc
- VirtualProtectEx
- OpenProcess
- EnumProcesses
- EnumProcessModules
- CreateRemoteThread
- Process32First/Process32Next
- Module32First/Modeule32Next
- WriteProcessMemory -> Verileri belirli bir bellek alanına yazmak için
- AdjustTokenPrivileges
- IsWow64Process
- QueueUserAPC -> Asenkron Process Çağırma
DLL Yükleme ve Fonksiyon Adresi Bulma
- LoadLibrary
- GetProcAddress
- LdrLoadDll
Debugger Tespit Amacıyla Kullanılan API’ler
- IsDebuggerPresent
- CheckRemoteDebuggerPresent
- FindWindow -> Açık uygulamaları tespit için
- GetTickCount -> Sistem açıldıktan sonraki geçen süre
- NtQueryInformationProcess
- OutputDebugString
Sistemde Kalıcılık Sağlamak İçin Kullanılabilecek API’ler
- CreateService
- ControlService
Diğer Dosyalara Atlama
Sistemde dosya arama, dosyanın yapısını görüntüleme ve çağrılan bir processin adres alanındaki dosya yapısına erişmeyi sağlar.
- FindFirstFile
- FindNextFile
- NtQueryDirectoryFile
- CreateFileMapping
- MapViewOfFile
COM Nesnesi -> http://www.csharpnedir.com/articles/read/?id=73
COM, bir komponent geliştirme standartıdır. Öyleki COM standartlarına uygun geliştirilen bütün komponentler COM nesnelerinin kullanılabildiği bütün diller tarafından kullanılabilir. API’ler sayesinde de COM nesneleri üzerinde işlemler gerçekleştirebiliriz. .NET geliştirirken kullanılan bir standarttır.
- OleInitialize
- CoInitializeEx
Veri Sızdırmak İçin Kullanılabilecek API’ler
Amaç -> Sistem üzerindeki hassas bilgilere erişim sağlamak ve bunlar üzerindeki değişiklik yapmak.
- LsaEnumerateLogonSessions
- SamIConnect
- SamIGetPrivateData
- SamQueryInformationUse
- NetShareEnum -> SAM veritabanındaki parola hashlerini dump etmek için
- ReadProcessMemory
- Toolhelp32ReadProcessMemory
Diğer API’ler
- CreateMutex -> Aynı anda tek bir instance çalıştırmak için
- CreateProcess
- ShellExecute
- WinExec -> Belirtilen bir uygulamayı çalıştırmak için kullanılabilir.
- System -> Sistem üzerindeki herhangi bir uygulamayı çalıştırmak için kullanılabilir.
- CryptAcquireContext
- EnableExecuteProtectionSupport
- NtSetInformationProcess
- GetSystemDefaultLangId
- GetTempPath
- SetFileTime
- StartServiceCtrlDispatcher
- IsNTAdmin
- IsUserAnAdmin