mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-26 06:30:37 +00:00
177 lines
12 KiB
Markdown
177 lines
12 KiB
Markdown
# Загальні API, які використовуються в шкідливому програмному забезпеченні
|
||
|
||
<details>
|
||
|
||
<summary><strong>Вивчайте хакінг AWS від нуля до героя з</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||
|
||
Інші способи підтримки HackTricks:
|
||
|
||
* Якщо ви хочете побачити вашу **компанію рекламовану в HackTricks** або **завантажити HackTricks у форматі PDF**, перевірте [**ПЛАНИ ПІДПИСКИ**](https://github.com/sponsors/carlospolop)!
|
||
* Отримайте [**офіційний PEASS & HackTricks мерч**](https://peass.creator-spring.com)
|
||
* Відкрийте для себе [**Сім'ю PEASS**](https://opensea.io/collection/the-peass-family), нашу колекцію ексклюзивних [**NFT**](https://opensea.io/collection/the-peass-family)
|
||
* **Приєднуйтесь до** 💬 [**групи Discord**](https://discord.gg/hRep4RUj7f) або [**групи Telegram**](https://t.me/peass) або **слідкуйте** за нами на **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||
* **Поділіться своїми хакерськими трюками, надсилайте PR до** [**HackTricks**](https://github.com/carlospolop/hacktricks) **та** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **репозиторіїв GitHub**.
|
||
|
||
</details>
|
||
|
||
**Група з безпеки Try Hard**
|
||
|
||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||
|
||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||
|
||
***
|
||
|
||
## Загальне
|
||
|
||
### Мережа
|
||
|
||
| Raw Sockets | WinAPI Sockets |
|
||
| ------------- | -------------- |
|
||
| 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 у іншому процесі
|
||
|
||
1. Знайдіть процес для впровадження шкідливої DLL: CreateToolhelp32Snapshot, Process32First, Process32Next
|
||
2. Відкрийте процес: GetModuleHandle, GetProcAddress, OpenProcess
|
||
3. Запишіть шлях до DLL у процес: VirtualAllocEx, WriteProcessMemory
|
||
4. Створіть потік у процесі, який завантажить шкідливу DLL: CreateRemoteThread, LoadLibrary
|
||
|
||
Інші функції для використання: NTCreateThreadEx, RtlCreateUserThread
|
||
|
||
### Відображене впровадження DLL
|
||
|
||
Завантажте шкідливу DLL без виклику звичайних викликів API Windows.\
|
||
DLL відображається у процесі, він вирішує адреси імпорту, виправляє перенесення та викликає функцію DllMain.
|
||
|
||
### Перехоплення потоку
|
||
|
||
Знайдіть потік з процесу та зробіть його завантаженням шкідливої DLL
|
||
|
||
1. Знайдіть цільовий потік: CreateToolhelp32Snapshot, Thread32First, Thread32Next
|
||
2. Відкрийте потік: OpenThread
|
||
3. Призупиніть потік: SuspendThread
|
||
4. Запишіть шлях до шкідливої DLL у процесі-жертві: VirtualAllocEx, WriteProcessMemory
|
||
5. Відновіть потік, завантажуючи бібліотеку: ResumeThread
|
||
|
||
### Впровадження PE
|
||
|
||
Впровадження Portable Execution: Виконуваний файл буде записаний у пам'ять процесу-жертви і виконаний звідти.
|
||
|
||
### Порожній процес
|
||
|
||
Шкідливе програмне забезпечення розмістить законний код з пам'яті процесу та завантажить шкідливий бінарний файл
|
||
|
||
1. Створіть новий процес: CreateProcess
|
||
2. Розмістіть пам'ять: ZwUnmapViewOfSection, NtUnmapViewOfSection
|
||
3. Запишіть шкідливий бінарний файл у пам'ять процесу: VirtualAllocEc, WriteProcessMemory
|
||
4. Встановіть точку входу та виконайте: SetThreadContext, ResumeThread
|
||
|
||
## Перехоплення
|
||
|
||
* **SSDT** (**System Service Descriptor Table**) вказує на функції ядра (ntoskrnl.exe) або драйвер GUI (win32k.sys), щоб користувацькі процеси могли викликати ці функції.
|
||
* Rootkit може змінювати ці вказівники на адреси, якими він керує
|
||
* **IRP** (**I/O Request Packets**) передають шматки даних від одного компонента до іншого. Майже все в ядрі використовує IRP, і кожен об'єкт пристрою має свою власну таблицю функцій, яку можна перехопити: DKOM (Direct Kernel Object Manipulation)
|
||
* **IAT** (**Import Address Table**) корисна для вирішення залежностей. Можливо перехопити цю таблицю, щоб перехопити код, який буде викликаний.
|
||
* **EAT** (**Export Address Table**) Перехоплення. Ці перехоплення можна виконати з **userland**. Мета - перехопити експортовані функції DLL.
|
||
* **Inline Hooks**: Цей тип важко досягти. Це включає модифікацію коду функцій самого себе. Можливо, вставивши стрибок на початку цього.
|
||
|
||
**Група з безпеки Try Hard**
|
||
|
||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||
|
||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||
|
||
<details>
|
||
|
||
<summary><strong>Вивчайте хакінг AWS від нуля до героя з</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||
|
||
Інші способи підтримки HackTricks:
|
||
|
||
* Якщо ви хочете побачити вашу **компанію рекламовану в HackTricks** або **завантажити HackTricks у форматі PDF**, перевірте [**ПЛАНИ ПІДПИСКИ**](https://github.com/sponsors/carlospolop)!
|
||
* Отримайте [**офіційний PEASS & HackTricks мерч**](https://peass.creator-spring.com)
|
||
* Відкрийте для себе [**Сім'ю PEASS**](https://opensea.io/collection/the-peass-family), нашу колекцію ексклюзивних [**NFT**](https://opensea.io/collection/the-peass-family)
|
||
* **Приєднуйтесь до** 💬 [**групи Discord**](https://discord.gg/hRep4RUj7f) або [**групи Telegram**](https://t.me/peass) або **слідкуйте** за нами на **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||
* **Поділіться своїми хакерськими трюками, надсилайте PR до** [**HackTricks**](https://github.com/carlospolop/hacktricks) **і** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **репозиторіїв на GitHub.**
|
||
|
||
</details>
|