Font size
WorksheetsPentest my question MT&ET
Total questions: 60
Worksheet time: 30mins
Какой эффект даёт компиляция с -z execstack (в учебной среде)? (2 Points)
Включает строгую проверку типов в стеке.
Шифрует исполняемый файл в стеке.
Отключает вывод в консоль из стека.
Делает стек исполняемым.
Включает автоматическое рандомизированное выравнивание в стеке.
Почему переменные окружения считаются частью поверхности атаки? (6 Points)
Потому что они не видны root и могут менять поведение запущенной программы.
Потому что они полностью контролируются программой и могут менять поведение программы.
Потому что они полностью контролируются пользователем и могут менять поведение программы.
Потому что они не контролируются пользователем и могут менять поведение запущенной программы.
Потому что они уничтожаются при fork() и могут менять поведение запущенной программы.
Как работает stack canary (Stack-Guard) для обнаружения переполнения? (4 Points)
Перенаправляет все входы в /dev/null.
Записывает журнал всех операций memcpy().
Увеличивает приоритет процесса при детектировании переполнения и рандомизирует базовые адреса (стек, heap, библиотеки), делая предсказание адреса shellcode ненадёжным.
Вставляет специальное значение перед return address и проверяет его целостность после возврата; если изменено – аварийный выход.
Блокирует system() вызовы stack canary (Stack-Guard) для обнаружения переполнения.
Какие два условия необходимы для эксплуатации Shellshock? (2 Points)
Клиент должен работать по протоколу RDP и иметь root-доступ к удалённому хосту.
Процесс должен запускать bash и получать ненадёжные данные через переменные окружения.
Процесс должен работать в режиме отладки и иметь открытую SSH-сессию.
Нужен доступ к BIOS и отключен режим Shellshock.
На машине должен быть установлен Perl и отключен режим Shellshock.
Какая функция в C возвращает значение переменной окружения?
getenv()
setenv()
putenv()
getenv_s()
getenvironment()
Что может произойти при перезаписи адреса возврата на стеке? (2 Points)
Увеличение скорости выполнения программы.
Автоматическое восстановление исходного кода.
Передача управления по произвольному адресу.
Переход в безопасный режим ОС и сжатие стека.
Сжатие стека и увеличение скорости выполнения программы.
Какой аргумент функции main в C содержит указатель на массив переменных окружения? (2 Points)
argc
argv
stdout
stdin
envp
Какая команда GDB предлагается для получения адреса system()? (2 Points)
disassemble system
info address
p system
run /bin/sh/address
set env SYSTEM
Почему сервисный подход более безопасен, чем Set-UID программы? (6 Points)
Потому что сервисы игнорируют файлы /proc и не зависят от переменных окружения пользователя.
Потому что сервисы всегда однопоточные и не зависят от переменных окружения пользователя.
Потому что сервисы не используют библиотеки и зависят от переменных окружения пользователя.
Потому что сервисы работают с root-привилегиями централизованно и не зависят от переменных окружения пользователя.
Потому что сервисы запускают только shell и зависят от переменных окружения пользователя.
Представьте, что setuid-программа использует execlp() для запуска /bin/ls без полного пути. Какой вектор атаки наиболее вероятен? (6 Points)
Переполнение стека через execlp().
Переполнение стека с помощью setuid-программы для запуска /bin/ls без указания полного пути.
Подмена программы ls в путях, указанных в переменной PATH, чтобы execlp() выполнил злоумышленный бинарник.
Подмена программы execlp() в путях, указанных в переменной FIND, чтобы execlp() выполнил злоумышленный бинарник.
Подмена программы ls в путях, указанных в переменной FIND, чтобы execlp() выполнил злоумышленный бинарник.
Какова роль переменной окружения при экспорте функции в bash? (4 Points)
Экспорт функции создаёт бинарный файл в /var/tmp, который затем дочерний bash распознает.
Экспорт функции превращает её текстовое определение в строку NAME=() { ... } в окружении, которую дочерний bash распознает.
Экспорт функции шифрует содержимое функции RSA-ключом.
Экспорт функции отключает другие переменные окружения, что позволяет запускать пользовательские приложения.
Экспорт функции переводит её в систему systemd unit.
Где можно увидеть переменные окружения процесса в Linux? (2 Points)
В /etc/log/env
В /var/log/environ
В /proc/<PID>/environ
В /usr/bin/environ
В /etc/log/environ.conf
Какая команда в Linux показывает все переменные окружения?
env
printenv
set
export
Что такое стек (stack) процесса? (2 Points)
Буфер в сетевом адаптере для пакетов, где хранятся локальные переменные.
Пул потоков ОС, где хранятся адрес возврата и saved registers.
Постоянное хранилище файлов на диске, где хранятся локальные переменные и адрес возврата.
Раздел ядра для драйверов, где хранятся локальные переменные, адрес возврата и saved registers.
Область памяти, где хранятся локальные переменные, адрес возврата и saved registers.
Почему использование system() в setuid-программах опасно? (4 Points)
Потому что system() автоматически удаляет переменные.
Потому что system() требует сетевого соединения.
Потому что system() не поддерживает execve.
Потому что system() всегда запускает root-процесс.
Потому что system() вызывает shell.
Как называется обобщённая техника, которая связывает множество коротких фрагментов кода (gadgets)?
Return-Oriented Programming (ROP)
Address Space Layout Randomization (ASLR)
Data Execution Prevention (DEP)
Цепочка переполнения буфера
Какая команда веб‑клиента используется в презентации, чтобы подставить произвольный User‑Agent? (2 балла)
curl -A "..."
wget --uh "..."
curl -H "..."
wget --ua "..."
curl -U "..."
Как новый процесс получает переменные окружения? (2 балла)
Через драйверы ядра из файла /boot/config при завершении текущего процесса.
Автоматически из сетевых настроек.
Из файла /boot/config при завершении текущего процесса.
Путём компиляции программы.
Через наследование от родителя при fork() и execve().
Что означает фраза «don’t mix code and data» в контексте вызова внешних команд? (4 Points)
Ставить execute-бит на все файлы данных.
Не разделять имя команды (код) и аргументы (данные), хранить исходный код и данные в одном бинарнике.
Запускать данные как скрипт, не разделяя имя команды (код) и аргументы (данные).
Загружать данные в раздел кода памяти.
Не формировать командную строку, передаваемую shell, чтобы пользовательские данные не исполнялись как код.
Какое поведение ОС/библиотеки делает exploit через LD_PRELOAD/LD_LIBRARY_PATH менее вероятным в setuid-контекстах, но не решает проблему Shellshock? (6 Points)
Динамический линкер/glibc игнорирует некоторые LD_* переменные в «secure execution» (setuid), однако это не предотвращает уязвимости парсинга функций в bash.
Сетевой стек шифрует переменные окружения и таким образом делает exploit через LD_PRELOAD/LD_LIBRARY_PATH менее вероятным в setuid-контекстах, но не решает проблему Shellshock.
Systemd всегда очищает LD_PRELOAD/LD_LIBRARY_PATH перед запуском сервисов и таким образом делает exploit менее вероятным в setuid-контекстах.
SSH при авторизации переписывает /etc/environment.
Kernel автоматически блокирует все env-переменные при execve.
Какой системный вызов запускает новую программу с передачей окружения?
execve()
fork()
system()
posix_spawn()
clone()
Что содержит переменная LD_PRELOAD? (4 Points)
Параметры, которые необходимо заменить для locale.
Путь к домашнему каталогу.
Параметры, которые необходимы для запуска bash перед программой.
Список общих библиотек.
Настройки swap-память.
Какое поведение предотвращает защита «non-executable stack (NX)»? (2 Points)
Отключает отправку ICMP-пакетов через стек для записи в лог-файлы.
Чтение с сетевого сокета в стек и запись в сетевой сокет.
Выполнение кода, расположенного в области стека.
Запись из стека в лог-файлы.
Установление соединения TCP с помощью стека для чтения и записи.
Что такое EUID (effective UID) процесса? (2 Points)
Идентификатор пользователя в /etc/passwd.
Размер стека процесса для эффективной реализации.
Идентификатор, по которому система определяет привилегии процесса
IP-адрес пользователя.
Идентификатор группы процесса, по которому система определяет владельца группы.
Какая разница между shell variables и environment variables? (2 Points)
Shell variables изменяются только через BIOS.
Environment variables исчезают при перезагрузке.
Environment variables видны только root.
Все environment variables наследуются дочерними процессами, shell variables — нет.
Shell variables хранятся в файле /etc/passwd, environment variables хранятся в файле /etc/shadow.
Почему ASLR усложняет эксплуатацию стекового переполнения? (4 Points)
Потому что запрещает использование execve() и таким образом усложняет эксплуатацию стекового переполнения.
Потому что рандомизирует базовые адреса (стек, heap, библиотеки), делая предсказание адреса shellcode ненадёжным.
Потому что отключает вывод ошибок, делая предсказание адреса shellcode ненадёжным.
Потому что меняет кодовую страницу на read-only.
Потому что увеличивает размер стека в два раза и рандомизирует адреса ASLR.
Что обозначает бит Set-UID у исполняемого файла в UNIX/Linux? (2 Points)
Файл автоматически шифруется.
Программа выполняется только от root.
Программа запускается в фоновом режиме (daemon).
При запуске программа получает эффективный UID владельца файла.
Файл становится только для чтения и в UNIX/Linux системах становится невидимым.
В чём отличие execve() от execvp() с точки зрения безопасности в контексте setuid? (4 Points)
execve() требует явного пути и окружения, тогда как execvp() ищет команду через PATH, что делает её уязвимой к подмене через PATH.
execve() всегда вызывает shell (/bin/sh -c), который использует PATH и переменные окружения, позволяя пользовательским данным превратиться в команды, а execvp() нет.
execve() автоматически проверяет формат входных данных, execvp() — нет.
execve() умеет выполнять только скрипты, execvp() — бинарники.
execve() всегда использует shell, а execvp() — нет.
Какое небольшое изменение помогает убедиться, что system() вернётся в exit() вместо краха? (4 Points)
Поместить jmp на ebp+12.
Очистить регистры перед возвратом, а затем записать адреса system() и exit().
Перезаписать GOT system() на exit(), чтобы процесс корректно завершился.
Изменить права файлов system и exit.
Поместить адрес exit() в слот fake-return (ebp+4), чтобы процесс корректно завершился.
Что нужно сделать, чтобы процесс корректно завершился? (4 Points)
Остановить все демоны.
Удалить все записи о пользователях в системе из файла /etc/passwd.
Отключить сеть.
Создать новую учетную запись root и удалить все записи о пользователях в системе в файле /etc/passwd.
Закрыть ненужные файловые дескрипторы (close).
Что делает ARP Poison?
Проводит XSS-атаку
Подменяет MAC-адрес в таблицах ARP
Сканирует порты
Перехватывает HTTP cookies
Впрыскивает SQL-код
Что такое CSRF-атака?
Атака, подменяющая DNS-запросы
Атака, в которой злоумышленник заставляет браузер жертвы выполнить нежелательный запрос
Анализ SQL-запросов
Эксплуатация ошибки сериализации
Перехват трафика по ARP
В чем опасность Stored XSS?
Код сохраняется в базе и выполняется у всех пользователей
Код выполняется один раз у жертвы
Код выполняется только на сервере
Код не выполняется без Cookies
Код искажается фильтрами
Основная цель XSS-атаки:
Фильтрация IP‑трафика
Внедрение и выполнение произвольного JavaScript‑кода в браузере
Перехват ARP‑трафика
Взлом MAC‑адресов
Модификация заголовков TCP
Что делает кейлоггер?
Определяет SQL‑инъекции
Шифрует сетевой трафик
Записывает нажатия клавиш
Перехватывает ARP‑запросы
Проверяет целостность диска
Для каких целей используется обратная оболочка?
Для удалённого выполнения команд атакующим
Для защиты от XSS
Для сниффинга ARP
Для брутфорса
Для фильтрации
Какие Cookies уязвимы при MITM?
Cookies с Secure
Cookies с HttpOnly
Cookies с SameSite=Strict
Session cookies без HTTPS
Шифрованные Cookies
Time-based Blind SQLi определяется по:
Отсутствию HTML
Изменению заголовков
Перегенерации cookies
Задержке ответа при выполнении определенных условий
Появлению ошибок
Как браузер непреднамеренно выполняет CSRF‑запрос?
Благодаря CSP
Из‑за ошибок DNS
Через ARP‑таблицу
Используя ранее сохранённые cookies
Через SQL‑инъекцию
Какой метод XSS не зависит от взаимодействия пользователя?
DOM‑based XSS
Stored XSS
Reflected XSS
Local XSS
Session XSS
Что делает backdoor, встроенный в веб-сервер?
Выполняет команды через HTTP-запросы
Устанавливает SameSite
Подменяет SQL-схему
Изменяет ARP
Шифрует HTML
Чем отличается Union-based SQLi?
Работает через ARP
Использует оператор объединения для извлечения данных
Изменяет структуру DOM
Основана на ошибках
Требует reverse shell
Почему DOM-based XSS сложнее обнаружить?
Сервер генерирует ошибки
Обработка происходит полностью в браузере без участия сервера
Код всегда отображается в HTML
HTML не меняется
Cookies не передаются
Почему MITM может перехватывать логины?
CSRF-токены неверные
SQL-сервер открыт
Cookies закодированы
Передаются в незашифрованных HTTP-запросах
XSS не активен
Как злоумышленник может получить shell через SQLi?
Вставляя HTML
Устанавливая CSRF‑токен
Модифицируя cookies
Подменяя ARP
Используя функции файловой системы и вызов системных команд
Какая Linux‑команда показывает сетевой трафик в реальном времени?
tcpdump
wireshark
netstat
top
Какой тип веб‑атаки позволяет выполнить JavaScript на стороне клиента?
XSS (Cross‑Site Scripting)
CSRF
Clickjacking
SQL‑инъекция
Какая утилита Linux показывает активные сетевые соединения?
netstat
ss
ifconfig
ping
Какой протокол используется для перехвата HTTPS при MITM посредством прокси‑инструментов?
TLS/SSL
HTTP
SSH
FTP
Какой модуль Python чаще применяется в кейлоггерах для работы с клавиатурой?
pynput
requests
numpy
pandas
Какой HTTP-метод чаще всего используется злоумышленниками в CSRF для тихого изменения данных?
GET
POST
PUT
DELETE
Какой метод перехвата трафика требует установки ложного шлюза в локальной сети?
ARP spoofing (ARP poisoning)
DNS-туннелирование
Port mirroring
SSL stripping
Какой протокол обычно применяют кейлоггеры для скрытой отправки логов через DNS-запросы?
SMTP
DNS (UDP)
ICMP
FTP
Какой формат чаще всего используют для хранения захваченных сетевых пакетов?
JSON
PCAP
CSV
XML
Какой термин описывает вредоносную программу, предоставляющую удалённый контроль над системой?
Бэкдор (Backdoor)
Руткит
Антивирус
Фаервол
Какая DLL Windows обычно перехватывается кейлоггерами для HOOK-инъекции?
kernel32.dll
user32.dll
wininet.dll
ntdll.dll
Какая Web API-функция в браузере чаще всего эксплуатируется для DOM XSS?
innerText
innerHTML
querySelectorAll
addEventListener
Какой MITM-инструмент позволяет внедрять JavaScript в незашифрованные HTTP-сессии?
Wireshark
Bettercap
Nmap
OpenSSL
Какой системный ключ реестра Windows отвечает за автоматическую загрузку программы при старте пользователя (автозапуск кейлоггера)?
HKLM\Software\Microsoft\Windows\CurrentVersion\Run
HKCU\Software\Microsoft\Windows\CurrentVersion\Run
HKCU\System\CurrentControlSet\Services
HKCR\Shell\Open\Command
Какой атрибут cookie предотвращает CSRF в браузерах при включённой SameSite-защите?
Secure
HttpOnly
SameSite=Strict
Path=/
