По теме: обучение пентесту, этапы пентеста, кто такой пентестер, как стать Application Security Engineer, менторинг.
У начинающих специалистов часто повторяется одна и та же проблема: человек устанавливает Kali Linux, скачивает десятки утилит, запускает учебную машину и сразу теряется. Непонятно, где расположен конфигурационный файл сервиса, как проверить запущенные процессы, кто именно слушает сетевой порт и как прочитать права на файл. В результате начинается хаотичный поиск утилит, хотя проблема заключается исключительно в отсутствии базовой ориентации в операционной системе.
Для успешной работы в пентесте и Application Security (AppSec) терминал Linux необходим ежедневно. Даже если ваша основная специализация — исследование веб-приложений и API, в определённый момент вы получаете доступ к серверу или контейнеру и должны быстро собрать контекст окружения.
1. Kali Linux, Parrot OS или чистый Debian/Ubuntu
Kali Linux и Parrot OS — это стандартные дистрибутивы на базе Debian, в которые заранее предустановлен набор специализированного ПО. Однако сам по себе факт установки Kali не делает человека специалистом.
Главный навык — это умение ориентироваться на незнакомой системе независимо от графической оболочки и предустановленного софта. Попытки решить любую задачу запуском сторонних сканеров без понимания внутреннего устройства Linux приводят к потере времени.
Самопроверка базовой подготовки
Возьмите чистую установку Ubuntu или Debian без предустановленных инструментов безопасности и проверьте способность выполнить следующие шаги:
- Найти конфигурационные файлы интересующего сервиса в каталоге
/etc. - Расшифровать символьную строку прав доступа (например,
rwxr-xr-x). - Определить, какой конкретно процесс и под какой учётной записью слушает локальный сетевой порт.
- Отфильтровать логи сервиса с помощью стандартных утилит CLI.
- Сделать HTTP-запрос через
curl, перехватить заголовки и сохранить результат в файл.
Если эти действия выполняются на автомате, прохождение практических лабораторий (Hack The Box, TryHackMe, локальные стенды) пройдёт без лишних задержек.
2. Навигация и файловая система
Каждая рабочая сессия на хосте должна начинаться со сбора базового контекста: определение текущего местоположения, прав текущей учётной записи и окружения.
pwd # Просмотр текущей рабочей директории
ls -la # Вывод всех файлов, включая скрытые, с подробными правами и владельцамиСкрытые файлы и важные директории
Особое внимание следует уделять скрытым файлам и каталогам (начинающимся с точки). В них часто содержатся учётные данные, истории команд и ключи доступа:
.env— конфигурационные файлы с паролями и токенами API..bash_history,.zsh_history— история введённых команд предыдущих пользователей..ssh/— приватные ключи, известные hosts и файл авторизованных ключей (authorized_keys).
| Директория | Назначение и контекст для проверки |
|---|---|
/home | Домашние каталоги пользователей системы. |
/etc | Главный каталог конфигурационных файлов системы и установленных сервисов. |
/var/log | Системные логи и журналы веб-серверов, СУБД, авторизации. |
/var/www, /opt | Место размещения исходного кода веб-приложений и стороннего ПО. |
/tmp, /var/tmp | Временные каталоги, доступные на запись всем пользователям (место для загрузки скриптов и поиска остаточных файлов). |
Базовые команды CLI
Для анализа файлов используются стандартные утилиты: cd, cat, less, head, tail, file.
Поиск конфигурационных файлов без вывода ошибок доступа:
find /home -type f -name "*.conf" 2>/dev/nullПеренаправление 2>/dev/null отсекает сообщения Permission denied, оставляя только релевантный вывод.
Обязательно проверяйте карту пользователей в /etc/passwd:
cat /etc/passwdКаждая строка содержит: имя пользователя, зашифрованный пароль (x), UID, GID, описание, домашний каталог и системную оболочку (shell).
Проверка собственной учётной записи:
whoami # Текущее имя пользователя
id # UID, GID и список групп
groups # Группы, в которых состоит текущий пользователь3. Права доступа, SUID-бит и sudo
Разграничение прав в Linux основано на трёх категориях субъектов: Владелец (Owner), Группа (Group), Остальные (Others).
Команда ls -l выводит права в виде символьной строки:
-rwxr-xr-- 1 root www-data 4096 Aug 11 12:00 script.shr(read) — чтение файла / просмотр содержимого директории.w(write) — изменение файла / создание и удаление файлов в директории.x(execute) — запуск файла / вход в директорию.
Изменение прав и владельцев выполняется командами chmod и chown. Применение прав chmod 777 к исполняемым скриптам или конфигурациям является критической ошибкой конфигурации, так как даёт право записи абсолютно всем пользователям системы.
SUID-бит (Set User ID)
SUID — это специальный флаг прав доступа. Если он установлен на исполняемом файле, программа запускается с правами владельца файла (часто root), а не с правами пользователя, который её вызвал.
Поиск файлов с установленным SUID-битом:
find / -perm -4000 -type f 2>/dev/nullПроверка прав sudo
Команда sudo -l показывает, какие именно команды текущий пользователь может запускать от имени root или других пользователей без ввода пароля (или с паролем):
sudo -lАнализ вывода этой команды позволяет определить возможность легитимного повышения привилегий или выполнения административных задач.
4. Процессы, сервисы и системные логи
Для понимания состояния системы необходимо отслеживать активные процессы и службы.
Анализ процессов
ps aux # Полный список запущенных процессов с указанием пользователей и аргументов
ps -ef # Альтернативный формат вывода дерева процессовПри анализе процессов необходимо обращать внимание не только на название программы, но и на пользователя, от имени которого она запущена, а также на переданные аргументы (там могут содержаться пароли и ключи запуска).
Управление службами (systemd)
systemctl status <service_name> # Проверка статуса конкретной службы
systemctl list-units --type=service # Список всех активных сервисовЧтение логов
Анализ логов помогает понять поведение системы и найти следы работы сервисов:
journalctl -u ssh— просмотр логов конкретного сервиса через systemd./var/log/auth.log(или/var/log/secure) — логи аутентификации и попыток входа./var/log/nginx/или/var/log/apache2/— access и error логи веб-серверов.
Использование grep и less позволяет сузить выборку до нужных событий:
grep -i "error" /var/log/nginx/error.log | less5. Сетевая диагностика из терминала
Пентестеру и AppSec-инженеру необходимо уметь быстро оценивать сетевое состояние хоста изнутри.
Проверка сетевых интерфейсов и маршрутов
ip a # Список сетевых интерфейсов и IP-адресов
ip r # Таблица маршрутизацииАнализ открытых сокетов и портов
Для проверки слушающих портов используется утилита ss (современный аналог netstat):
ss -tulpn-t— TCP сокеты-u— UDP сокеты-l— только слушающие порты (listening)-p— показать PID и имя процесса-n— отображать порты в виде цифр, а не имён служб
Это позволяет мгновенно обнаружить сервисы, которые висят на 127.0.0.1 (localhost) и недоступны из внешней сети.
Взаимодействие с веб-сервисами через curl
curl -I https://example.com # Получение только HTTP-заголовков ответа
curl -i -X POST -d "param=value" http://target/api # POST-запрос с передачей данных
curl -k -L https://target # Игнорировать ошибки SSL и следовать по редиректамДля проверки работы DNS используются утилиты dig или nslookup:
dig A example.com +short6. Базовые концепции Bash
Сложные скрипты на старте не требуются, но необходимо свободно владеть конвейером (pipes) и перенаправлением потоков.
Перенаправление потоков и пайплайны
|(pipe) — передаёт стандартный вывод (stdout) первой команды на стандартный ввод (stdin) второй.>— перенаправляет вывод в файл с перезаписью.>>— дописывает вывод в конец файла.2>/dev/null— подавляет вывод стандартного потока ошибок (stderr).
Пример комбинации:
cat access.log | grep "POST" | awk '{print $1}' | sort | uniq -c | sort -nrЭтот конвейер извлекает IP-адреса, делавшие POST-запросы, подсчитывает их количество и сортирует по убыванию.
Конструкции циклов
Простой цикл for для последовательного выполнения проверок:
for ip in $(cat targets.txt); do curl -s -I "http://$ip" | head -n 1; done7. Четырёхнедельный план практического освоения
| Неделя | Фокус обучения | Практические задачи |
|---|---|---|
| Неделя 1 | Навигация и файловая система | Настройка чистой Ubuntu/Debian. Практика команд cd, ls -la, find. Изучение структуры /etc, /var/log, /home. Сбор карты системы в заметки. |
| Неделя 2 | Практика прав доступа и SUID | Разбор chmod, chown, маски прав. Поиск SUID-файлов. Анализ sudo -l. Составление краткого отчёта по найденным небезопасным правам на тестовой ВМ. |
| Неделя 3 | Процессы, логи и сеть | Мониторинг процессов (ps aux), служб (systemctl). Анализ сетевых сокетов (ss -tulpn). Работа с curl и фильтрация логов с помощью grep, awk. |
| Неделя 4 | Комплексная проверка на учебном боксе | Прохождение одной beginner-машины (TryHackMe / HTB) с ограничением: первые 45 минут работать исключительно встроенным shell, без запуска автоматических сканеров. |
8. Типичные ошибки начинающих
- Замена базовых знаний установкой инструментов: скачивание сотни утилит из меню Kali без умения прочитать конфигурационный файл вручную.
- Пассивный просмотр туториалов: чтение статей и просмотр видео без параллельного выполнения команд в терминале.
- Отсутствие ведения заметок: проведение проверок без фиксации выполнившихся команд, путей к файлам и полученных результатов.
- Игнорирование потока ошибок: игнорирование сообщений системного вывода при несработавших командах вместо анализа причин (нехватка прав, неверный путь, отсутствие бинарника).
- Слепое копирование чужих скриптов: запуск комплексных Bash/Python скриптов на целевой системе без понимания выполняемых ими действий.
9. Обучение и контакты
Если вам требуется системная подготовка по направлению Application Security и практическому пентесту (включая работу с Linux, Web/API и подготовку профессиональных отчётов), ознакомьтесь с деталями программы на странице Application Security Engineer.
Индивидуальный план подготовки под ваш текущий бэкграунд (QA, разработка, системное администрирование) можно обсудить в Telegram: @faroeman. Формат работы подробно описан в разделе менторинг по кибербезопасности.
Ещё по теме: обучение пентесту, этапы пентеста, кто такой пентестер, как стать Application Security Engineer, менторинг.
Разбираю Linux-базу, web/API и отчёты под вход в AppSec и пентест. Нужен план под ваш бэкграунд? Напишите в Telegram.
Смотреть программу Application Security · пишите в @faroeman.