Следуйте инструкциям в видео ниже, чтобы узнать, как установить наш сайт как веб-приложение на главный экран вашего устройства.
Примечание: Эта функция может быть недоступна в некоторых браузерах.

✉️ Email: [email protected]
📲 Telegram канал: https://t.me/zer0kernelorg
💰 Donate (BTC): bc1qwvrgka76eeley8feqdxjxk2866sv0tnweylxjc
CreateRemoteThread здесь не срабатывает.QueueUserAPC:DWORD QueueUserAPC(
PAPCFUNC pfnAPC, // указатель на функцию для выполнения
HANDLE hThread, // дескриптор целевого потока
ULONG_PTR dwData // параметр, передаваемый в функцию
);
| Функция | Alertable | Условие |
|---|---|---|
SleepEx | Да | bAlertable = TRUE |
WaitForSingleObjectEx | Да | bAlertable = TRUE |
WaitForMultipleObjectsEx | Да | bAlertable = TRUE |
| ... |
Elf32_Ehdr или Elf64_Ehdr из заголовочного файла <elf.h>.e_ident, который определяет базовые свойства файла:| Индекс | Макрос | Значение |
|---|---|---|
| 0–3 | EI_MAG0–EI_MAG3 | Магическое число: 0x7f 'E' 'L' 'F' |
| 4 | EI_CLASS | Разрядность: ELFCLASS32 или ELFCLASS64 |
| 5 | EI_DATA | Порядок байтов: ELFDATA2LSB (little-endian) или ELFDATA2MSB (big-endian) |
| 6 | EI_VERSION | Версия спецификации (текущая — 1) |
| 7 | EI_OSABI | Целевая ОС/ABI: ELFOSABI_LINUX, ELFOSABI_SYSV, ELFOSABI_FREEBSD и др. |
| 8 | EI_ABIVERSION | Версия ABI |
| 9–15 | EI_PAD | Зарезервировано, заполнено нулями |
e_type — тип файла: ET_EXEC (исполняемый), ET_DYN (разделяемый объект), ET_REL (релоцируемый), ET_CORE (дамп памяти).e_machine — целевая архитектура: EM_X86_64, EM_386, EM_ARM, EM_AARCH64, EM_MIPS и т. д.e_entry — виртуальный адрес точки входа. Если файл не имеет точки входа (например, релоцируемый объект), поле равно нулю.e_phoff — смещение program header table в байтах от начала файла...CreateThread с флагом CREATE_SUSPENDED или SuspendThread для уже работающего потока. Для чужого процесса — OpenThread с правами THREAD_ALL_ACCESS.VirtualAlloc (локально) или VirtualAllocEx (удалённо) с флагами MEM_COMMIT | MEM_RESERVE и начальными правами PAGE_READWRITE.memcpy (локально) или WriteProcessMemory (удалённо).VirtualProtect / VirtualProtectEx переводит регион в PAGE_EXECUTE_READWRITE.GetThreadContext читает текущее состояние регистров, поле Rip (x86-64) заменяется на адрес payload, SetThreadContext записывает изменённый контекст обратно. После ResumeThread поток начинает выполнять внедрённый код.Rip — указатель на следующую инструкцию. Для минимального захвата достаточно установить флаг CONTEXT_CONTROL в поле ContextFlags структуры CONTEXT, что ограничивает область изменения регистрами управления (на x86-64 это Rip, Rsp и флаги процессора).CONFIG_DEBUG_INFO, CONFIG_GDB_SCRIPTS).-s (эквивалент -gdb tcp::1234) и -S (пауза до подключения отладчика).qemu-system-x86_64 \
-kernel bzImage \
-initrd initramfs.cpio.gz \
-append "console=ttyS0 nokaslr" \
-nographic \
-s -S
-nographic перенаправляет последовательный порт в терминал — это удобно для headless-отладки...syscall (x64) или sysenter (x86). Библиотека ntdll.dll содержит тонкие обёртки — так называемые системные вызовы-заглушки (syscall stubs), каждая из которых выполняет строго определённую последовательность:NtAllocateVirtualMemory PROC
mov r10, rcx ; первый аргумент в r10 (конвенция syscall)
mov eax, <SSN> ; System Service Number — индекс в таблице вызовов
syscall ; переход в ядро (ring 0)
ret
NtAllocateVirtualMemory ENDP
System Service Descriptor Table (SSDT). Значение SSN для одной и той же функции меняется от версии к версии Windows и даже между сборками. Например, NtMapViewOfSection имеет SSN 0x25 на Windows 7 SP1, 0x26 на Windows 8, 0x27 на Windows 8.1 и 0x28 на всех сборках Windows 10 начиная с 1507.ntdll.dll. Типичный хук заменяет первые байты функции на jmp к коду агента, который логирует аргументы вызова, проверяет их на подозрительные паттерны и только затем передаёт управление оригиналу.syscall напрямую, минуя заглушку в ntdll.dll. Если хук стоит на заглушке, а вызов происходит из другого места, хук не срабатывает. Это делает технику привлекательной для обхода userland-хуков.gs:[60h], определяет major version, minor version и build number, затем выбирает соответствующий SSN...CreateToolhelp32Snapshot с флагом TH32CS_SNAPPROCESS, затем итерация через Process32First/Process32Next.OpenProcess с правами PROCESS_ALL_ACCESS или комбинацией PROCESS_VM_WRITE | PROCESS_VM_OPERATION | PROCESS_CREATE_THREAD.VirtualAllocEx с флагами MEM_COMMIT | MEM_RESERVE и начальными правами PAGE_READWRITE.WriteProcessMemory копирует shellcode в выделенный регион.VirtualProtectEx переводит регион в PAGE_EXECUTE_READWRITE (RWX).CreateRemoteThread с адресом shellcode в качестве стартовой рутины.VirtualAllocEx создаёт новый узел в VAD-дереве целевого процесса. Для защитника это означает:MEM_PRIVATE (не привязан к...OpenProcess), увеличивает и счётчик ссылок, и счётчик открытых дескрипторов на единицу. Закрытие дескриптора через ZwClose уменьшает оба счётчика.ObReferenceObjectByHandle получают дескриптор и возвращают указатель на объект, увеличивая счётчик ссылок. После завершения работы с указателем драйвер обязан вызвать ObDereferenceObject.BootXXXX (например, Boot0000, Boot0001) — содержат путь к EFI-бинарнику и параметры.BootOrder — задаёт приоритет записей BootXXXX.BootOrder, находит первую активную запись и пытается загрузить указанный EFI-файл, предварительно проверив его подпись.| Тип | Модель соединения | Пример |
|---|---|---|
| Reverse shell | Цель инициирует соединение к атакующему | windows/meterpreter/reverse_tcp |
| Bind shell | Цель слушает порт, атакующий подключается | windows/meterpreter/bind_tcp |
| Download & execute | Цель скачивает и запускает файл по URL | windows/download_exec |
| Командный | Выполняет определённую команду | cmd/unix/reverse_python |
| Создание учётной записи | Добавляет пользователя на цель | windows/adduser |
| Деструктивный | Выключает или перезагружает систему | windows/shutdown |