Common API used in Malware
Last updated
Last updated
Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
socket()
WSAStratup()
bind()
bind()
listen()
listen()
accept()
accept()
connect()
connect()
read()/recv()
recv()
write()
send()
shutdown()
WSACleanup()
RegCreateKeyEx()
GetTempPath()
OpenSCManager
RegOpenKeyEx()
CopyFile()
CreateService()
RegSetValueEx()
CreateFile()
StartServiceCtrlDispatcher()
RegDeleteKeyEx()
WriteFile()
RegGetValue()
ReadFile()
WinCrypt
CryptAcquireContext()
CryptGenKey()
CryptDeriveKey()
CryptDecrypt()
CryptReleaseContext()
IsDebuggerPresent()
CPUID()
GetSystemInfo()
IN()
GlobalMemoryStatusEx()
GetVersion()
CreateToolhelp32Snapshot [Перевірте, чи працює процес]
CreateFileW/A [Перевірте, чи існує файл]
VirtualAlloc
Виділення пам'яті (пакери)
VirtualProtect
Зміна дозволів пам'яті (пакер надає дозвіл на виконання секції)
ReadProcessMemory
Ін'єкція в зовнішні процеси
WriteProcessMemoryA/W
Ін'єкція в зовнішні процеси
NtWriteVirtualMemory
CreateRemoteThread
Ін'єкція DLL/процесів...
NtUnmapViewOfSection
QueueUserAPC
CreateProcessInternalA/W
CreateProcessA/W
ShellExecute
WinExec
ResumeThread
NtResumeThread
GetAsyncKeyState() -- Логування клавіш
SetWindowsHookEx -- Логування клавіш
GetForeGroundWindow -- Отримати назву активного вікна (або вебсайту з браузера)
LoadLibrary() -- Імпорт бібліотеки
GetProcAddress() -- Імпорт бібліотеки
CreateToolhelp32Snapshot() -- Список запущених процесів
GetDC() -- Скриншот
BitBlt() -- Скриншот
InternetOpen(), InternetOpenUrl(), InternetReadFile(), InternetWriteFile() -- Доступ до Інтернету
FindResource(), LoadResource(), LockResource() -- Доступ до ресурсів виконуваного файлу
Виконати довільну DLL всередині іншого процесу
Знайти процес для ін'єкції шкідливої DLL: CreateToolhelp32Snapshot, Process32First, Process32Next
Відкрити процес: GetModuleHandle, GetProcAddress, OpenProcess
Записати шлях до DLL всередині процесу: VirtualAllocEx, WriteProcessMemory
Створити потік у процесі, який завантажить шкідливу DLL: CreateRemoteThread, LoadLibrary
Інші функції для використання: NTCreateThreadEx, RtlCreateUserThread
Завантажити шкідливу DLL без виклику звичайних API Windows. DLL відображається всередині процесу, вона вирішить адреси імпорту, виправить переміщення та викличе функцію DllMain.
Знайти потік з процесу та змусити його завантажити шкідливу DLL
Знайти цільовий потік: CreateToolhelp32Snapshot, Thread32First, Thread32Next
Відкрити потік: OpenThread
Призупинити потік: SuspendThread
Записати шлях до шкідливої DLL всередині процесу жертви: VirtualAllocEx, WriteProcessMemory
Відновити потік, що завантажує бібліотеку: ResumeThread
Ін'єкція Portable Execution: Виконуваний файл буде записаний у пам'яті процесу жертви та буде виконаний звідти.
Шкідливе ПЗ зніме легітимний код з пам'яті процесу та завантажить шкідливий бінарний файл
Створити новий процес: CreateProcess
Зняти відображення пам'яті: ZwUnmapViewOfSection, NtUnmapViewOfSection
Записати шкідливий бінарний файл у пам'яті процесу: VirtualAllocEc, WriteProcessMemory
Встановити точку входу та виконати: SetThreadContext, ResumeThread
SSDT (Таблиця дескрипторів системних служб) вказує на функції ядра (ntoskrnl.exe) або драйвера GUI (win32k.sys), щоб користувацькі процеси могли викликати ці функції.
Руткіт може змінити ці вказівники на адреси, які він контролює
IRP (Пакети запитів вводу/виводу) передають частини даних з одного компонента в інший. Практично все в ядрі використовує IRP, і кожен об'єкт пристрою має свою власну таблицю функцій, яку можна підключити: DKOM (Пряме маніпулювання об'єктами ядра)
IAT (Таблиця адрес імпорту) корисна для вирішення залежностей. Можливо підключити цю таблицю, щоб перехопити код, який буде викликано.
EAT (Таблиця адрес експорту) Хуки. Ці хуки можуть бути виконані з userland. Мета полягає в тому, щоб підключити експортовані функції бібліотек DLL.
Inline Hooks: Цей тип важко досягти. Це передбачає модифікацію коду самих функцій. Можливо, шляхом вставлення стрибка на початку цього.
Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)