Searchsploit или готовый эксплойт не взломают систему за вас — без понимания сетевых сокетов, заголовков и терминала специалист остается лишь слепым оператором чужих скриптов. Путь в этичный хакинг начинается не с волшебных кнопок, а с жесткого контроля окружения: от развертывания Parrot OS и низкоуровневой сетевой разведки до фаззинга веб-панелей и написания собственного сканера на Python.
🐧 Погружение в Linux: основы Parrot OS, консольная навигация и сетевая диагностика 0:00
Дистрибутив Parrot OS и базовые команды терминала 0:39
Практический курс по этичному хакингу инструктор Деклан Мидд (Declan Midd) разворачивает в изолированной локальной лаборатории формата CTF . В качестве основной рабочей среды он выбирает Parrot OS . По своей внутренней структуре эта операционная система во многом идентична популярному дистрибутиву Kali Linux , отличаясь в основном визуальным оформлением, брендингом и набором предустановленного программного обеспечения . Деклан Мидд подчеркивает, что выбор конкретного дистрибутива не принципиален для этичного хакера , однако Parrot OS предлагает удобную конфигурацию «из коробки».
Главным инструментом специалиста по кибербезопасности выступает эмулятор терминала , обеспечивающий текстовый интерфейс для управления операционной системой . Перед запуском любых инструментов тестирования на проникновение Деклан рекомендует синхронизировать репозитории и обновить установленные компоненты :
sudo apt update -y && sudo apt upgrade
Связка двух команд через логический оператор && запускает процесс обновления пакетов последовательно , предотвращая сбои в зависимостях Python, менеджере pip и предустановленных утилитах . Деклан напоминает, что при запросе пароля суперпользователя в стандартной сборке Parrot OS по умолчанию используется значение parrot .
Навигация по файловой структуре, редакторы и системные параметры 5:02
Свободное перемещение по файловой системе и чтение системных логов — базовый навык пентестера, поскольку именно в терминале выполняется подавляющая часть аналитической работы . Команда ls отображает содержимое текущего каталога , а расширенный ключ ls -la выводит подробную таблицу с правами доступа, именами владельцев, размером объектов, датой их изменения и скрытыми файлами . Узнать текущее местоположение в дереве директорий позволяет утилита pwd (print working directory) .
Перемещение между папками осуществляется инструкцией cd , возврат на уровень выше — конструкцией cd .. , а генерация новых каталогов возложена на утилиту mkdir . Для создания пустых текстовых документов используется команда touch . Редактировать файлы Деклан предлагает встроенным редактором nano , где комбинация Ctrl+K быстро удаляет ненужную строку , а связка Ctrl+X с нажатием клавиши Y подтверждает сохранение правок . Для мгновенного вывода содержимого текстового файла прямо в окно консоли без перехода в редактор служит утилита cat .
В качестве более функциональной альтернативы Деклан выделяет редактор micro, который поддерживает подсветку синтаксиса и подключение пользовательских плагинов , отмечая при этом, что редактор Vim может оказаться излишне сложным для начинающих . Рекурсивное удаление папок вместе со всем содержимым инструктор выполняет через rm -r . Для очистки экрана от накопившегося текстового вывода автор рекомендует нажимать горячие клавиши Ctrl+L вместо регулярного ввода команды clear . На этапе первичного анализа машины также важно уметь идентифицировать окружение: выяснить имя текущей учетной записи через whoami , узнать сетевое имя хоста с помощью hostname и получить информацию о версии ядра Linux посредством uname -r .
Сетевая разведка: интерфейсы, фильтрация grep и диагностика ping 15:25
Сетевая диагностика начинается с анализа активных сетевых адаптеров хоста . Для просмотра конфигурации сетевых интерфейсов и назначенных IP-адресов Деклан применяет команду ip a либо утилиту sudo ifconfig , обращая внимание на строчку inet, в которой зафиксирован адрес машины . Поскольку сырой вывод терминала часто перегружен избыточными данными, инструктор использует конвейерную передачу через символ вертикальной черты (pipe) в утилиту grep . Подобный прием работает аналогично функции поиска по ключевому слову (Ctrl+F) , позволяя командой sudo ifconfig | grep inet отсечь лишние строки и изолировать целевой IP-адрес или маску сети .
Для инвентаризации соседних узлов в локальном сетевом сегменте применяется сканер sudo netdiscover . Он сканирует широковещательный домен и наглядно сопоставляет найденные в сети устройства с их IP-адресами, MAC-адресами и именами производителей оборудования . Проверка доступности узлов осуществляется утилитой ping , отправляющей эхо-запросы по протоколу ICMP.
В ходе демонстрации Деклан сталкивается с типовой неполадкой виртуализации: попытка отправить эхо-запрос на адрес домашнего маршрутизатора 192.168.1.1 завершается ошибкой «network is unreachable» . Инструктор поясняет, что этот ответ указывает на отсутствие маршрута к шлюзу по умолчанию, деактивированный сетевой адаптер или некорректную настройку режима моста (bridge) в гипервизоре . После восстановления сетевого подключения повторный запуск sudo ping 192.168.1.1 демонстрирует корректную передачу 44 пакетов без потерь данных .
Завершая разбор базового консольного инструментария, Деклан обращается к команде history , которая сохраняет хронологию всех ранее выполненных в сессии команд (в терминале автора накопилось уже 723 записи ). Для изучения синтаксиса и скрытых аргументов любых системных утилит он рекомендует открывать встроенные руководства man (например, man ls или man nmap ), закрыть которые можно сочетанием клавиш :q .
🛠️ Файловые операции и скриптинг: инструментарий автоматизации в Linux 26:05
Файловые манипуляции и системный поиск: от перенаправления до глубокого аудита 26:05
Практическая работа в терминале неизбежно требует быстрого создания, изменения и перемещения данных без использования графического интерфейса . Деклан Мидд демонстрирует, что для записи текстовых данных вовсе не обязательно открывать отдельный текстовый редактор : команда echo в связке с оператором перенаправления > мгновенно генерирует файл и вносит туда указанную строку . Например, команда вида echo "hello parrot OS" > notes.ext создает файл notes.ext и сразу записывает в него приветствие . Повторное применение одинарного оператора перенаправления перезаписывает существующий файл целиком , а содержимое проверяется утилитой cat .
Для дублирования объектов применяется команда cp, позволяющая скопировать исходный файл под новым именем в рабочей директории . При очистке рабочего пространства часто используется связка флагов рекурсивного и принудительного удаления rm -rf . Деклан Мидд отмечает, что запоминает эту комбинацию как «remove fully» , однако предостерегает новичков от неаккуратного использования подстановочного знака «звездочка» (*) . Ошибочный запуск подобной команды от имени привилегированного администратора root способен уничтожить системные каталоги операционной системы . Безопасный подход заключается в ограничении маски расширением, например rm -rf *.ext, что удалит исключительно файлы заданного формата .
Переименование и перенос файлов реализуются единой утилитой mv , а ускорить ввод длинных путей помогает клавиша Tab, автоматически дополняющая названия .
В процессе системной разведки специалист регулярно сталкивается с файлами неизвестного формата . Для их анализа применяется команда file, определяющая внутреннюю структуру объекта: так, скрипт penelope.py безошибочно распознается утилитой как код на Python . Чтобы оценить объем занятого пространства перед выгрузкой каталогов, Деклан использует команду оценки дискового пространства du -sh * , выводящую размер каждого элемента в удобном человекочитаемом виде .
Если же целевой объект скрыт глубоко в файловой системе, ручной перебор неэффективен — на помощь приходит поисковая утилита find . При глобальном сканировании с корневого каталога (find / -name hidden.ext) рядовой пользователь неизбежно сталкивается с ошибками доступа («permission denied») к системным веткам . Повышение привилегий через sudo позволяет утилите завершить глубокий поиск , благодаря чему скрытый файл с секретной строкой обнаруживается в каталоге /opt .
Автоматизация в Linux: создание первого Bash-скрипта и управление правами 39:12
Повторение рутинных действий вручную отнимает драгоценное время, поэтому ключевым навыком для исследователя безопасности становится написание командных сценариев на Bash . Bash представляет собой стандартный командный интерпретатор Linux , позволяющий объединять разрозненные терминальные команды в единую логическую цепочку . Деклан Мидд начинает демонстрацию с простого файла script.sh , куда помещает базовую команду вывода скрытых файлов ls -la .
Попытка прямого запуска только что созданного файла через ./script.sh завершается ошибкой отказа в доступе («permission denied») . Причина кроется в отсутствии у файла флага исполняемости . Инструктор исправляет ситуацию с помощью команды chmod 755 script.sh , которая выдает владельцу полные права на чтение, запись и исполнение, а остальным пользователям оставляет доступ только на чтение и запуск . После этого скрипт корректно выполняется и выводит содержимое директории .
Для изучения синтаксиса Деклан рекомендует обращаться к документации на DevDocs и примерам платформы W3Schools . Он объясняет фундаментальные правила построения сценариев:
- Переменные служат контейнерами для хранения данных , при этом в Bash критически важно не ставить пробелы вокруг знака равенства (например,
name="world"), иначе оболочка воспримет имя переменной как неизвестную команду ; - Условные конструкции
if-then-elseзадают логику ветвления программы в зависимости от соблюдения заданных параметров ; - Сравнение числовых значений (например, проверка числа 15 на превышение порога в 10) позволяет гибко реагировать на возвращаемые утилитами коды и метрики .
После устранения синтаксической ошибки с пробелом сценарий выводит персональное приветствие инструктора и результат проверки условий .
Разработка сканера разведки на Bash: циклы, пинг и проверка портов 46:57
В контексте этичного хакинга скрипты на Bash применяются для первичной разведки и автоматизации запусков тяжелых защитных утилит . Деклан Мидд переименовывает черновик в recon.sh с помощью mv и демонстрирует базовый скрипт сбора информации об удаленном узле . Сценарий запрашивает у пользователя IP-адрес или доменное имя цели для последующего тестирования .
Первым этапом алгоритм выполняет сетевой эхо-запрос: скрипт отправляет пакет утилитой ping и анализирует ответ хоста . Если удаленная система активна, блок if выводит статус «online», в противном случае ветка else сигнализирует об отсутствии отклика . После подтверждения доступности хоста сценарий переходит к обнаружению активных служб .
Деклан закладывает в скрипт цикл for port in ports, который поочередно проверяет массив ключевых сетевых портов :
- Цикл проходит по каждому номеру из заранее подготовленного списка ;
- В случае успешного соединения скрипт фиксирует открытое состояние порта ;
- На терминал выводятся сообщения о доступности сервиса и переходе к следующим проверкам .
Запустив сценарий против адреса локального маршрутизатора , автор получает мгновенный отчет о найденных службах . Скрипт выявляет порт 53, отвечающий за службу доменных имен DNS , стандартный HTTP-порт 80 , защищенный порт HTTPS , а также альтернативный веб-порт 8080 . Деклан Мидд подчеркивает, что наличие портов 80 и 8080 прямо указывает на работу веб-сервера на целевом адресе , что открывает дальнейший вектор для исследования через браузер .
🛡️ Разграничение привилегий в Linux и сборка полигона для атак 51:39
Администрирование Linux: работа с пользователями и группой sudo 51:39
В работе этичного хакера критически важно понимать механику разграничения прав доступа в операционных системах семейства Linux . Команда sudo (superuser do) предоставляет возможность выполнять операции с правами суперпользователя — системного администратора root . Деклан Мидд демонстрирует, как переход в интерактивную сессию суперпользователя с помощью вызова sudo su открывает полноценный root-шелл . При этом домашний каталог меняется на изолированную директорию /root, отдельную от пользовательских файлов . Инструктор подчеркивает опасность неосторожной работы на этом уровне: любая ошибка с наивысшими правами способна мгновенно повредить системные компоненты , поэтому после выполнения административных задач сессию следует немедленно закрывать командой exit .
Создание новой учетной записи производится утилитой adduser, принимающей имя создаваемого субъекта — например, student :
sudo adduser student
Система запрашивает установку пароля (в примере Деклан использует password123) и предлагает заполнить метаданные: полное имя, номер комнаты и контактные телефоны . После подтверждения операционная система автоматически формирует персональный домашний каталог пользователя с набором стандартных папок (Desktop, Documents, Downloads) .
Для смены пароля любой учетной записи администратор задействует утилиту passwd :
sudo passwd student
Деклан изменяет пароль пользователя на test123 , после чего переключается в его профиль через команду su student . Попытка выполнить sudo su от имени нового пользователя терпит неудачу : система сообщает, что аккаунт не состоит в файле конфигурации sudoers и не имеет административных полномочий . Чтобы наделить пользователя возможностью повышать привилегии, его необходимо включить во вторичную группу sudo :
sudo usermod -aG sudo student
Параметр -aG добавляет пользователя в указанную группу без перезаписи его остальных членств . После повторного ввода пароля test123 пользователь student успешно активирует root-доступ .
Полное удаление учетной записи и ее привилегий выполняется командами:
sudo deluser student
sudo deluser student sudo
Инструктор отмечает, что удалять активного пользователя изнутри его собственной сессии нельзя . Кроме того, deluser по умолчанию сохраняет пользовательскую папку на диске, поэтому каталог удаляется вручную . В завершение базового знакомства с администрированием Деклан предупреждает слушателей о команде sudo reboot, которая инициирует немедленный перезапуск ядра Linux и виртуальной среды .
Подготовка тестового полигона: импорт уязвимой машины Explorer 1:05:33
Для отработки практических навыков анализа безопасности и поиска уязвимостей необходим контролируемый локальный полигон . В качестве мишени Деклан Мидд выбирает общедоступную виртуальную машину Explorer формата CTF (Capture the Flag) с платформы VulnHub/Vulnix . Использование специализированных учебных образов обеспечивает полностью легальную и безопасную среду для взлома .
Процесс первичного развертывания мишени в гипервизоре Oracle VirtualBox на хостовой системе Windows 11 включает следующие шаги :
- Загрузка архива с образом виртуальной машины и распаковка пакета с файлом конфигурации OVA/OVF ;
- Двойной клик по файлу Explorer для автоматического запуска мастера импорта конфигурации виртуального устройства (Importing Appliance) ;
- Настройка сетевого адаптера: переключение режима сети на сетевой мост (Bridged Adapter) для прямой видимости в локальной сети ;
- Первичный запуск виртуальной машины для инициализации гостевой ОС .
Однако при первой попытке запуска гипервизор выдает ошибку конфигурации «Invalid settings detected» . Деклан диагностирует проблему: окружение VirtualBox было установлено некорректно из-за отсутствия критических системных библиотек хоста .
Устранение системных зависимостей и настройка сетевого моста 1:09:48
Для устранения возникшего конфликта Деклан Мидд полностью деинсталлирует текущую копию VirtualBox и загружает актуальный дистрибутив гипервизора с официального сайта . Инсталлятор VirtualBox явно указывает на отсутствующие системные зависимости — среду выполнения Python и соответствующие интерфейсы API .
Проблема решается установкой недостающих компонентов хоста:
- Инсталляция интерпретатора Python свежей версии с обязательным включением опции «Add Python to PATH» для глобального доступа из командной строки –.
- Установка глобального пакета
pywin32, необходимого для взаимодействия гипервизора с системными API Windows через терминал CMD –:
pip install pywin32
После завершения инсталляции библиотек Деклан повторно запускает установщик VirtualBox . Программа успешно интегрирует драйверы сетевых фильтров и компонентов виртуализации, не выдавая предупреждений . При повторном открытии виртуальной машины Explorer предупреждение о некорректных параметрах исчезает , и машина успешно запускается .
На этапе загрузки возникает еще один типичный сетевой нюанс: виртуальная машина не получает IP-адрес по DHCP . Инструктор переходит в свойства виртуальной машины и корректирует привязку сетевого моста, выбрав в выпадающем списке конкретный физический адаптер хоста, через который осуществляется реальное подключение к локальной сети .
После выключения и повторного запуска гостевая ОС Debian инициализирует системное ядро и успешно получает внутренний IP-адрес 192.168.1.56 . Целевой веб-сервер готов к дальнейшему сканированию и тестированию на проникновение из атакующей системы Parrot OS –.
🔍 Разведка периметра: от базового Nmap до веб-энумерации 1:15:48
Сетевое сканирование портов и служб с помощью Nmap 1:16:03
Перед началом активной фазы тестирования Деклан Мидд проверяет доступность целевого сервера утилитой ping . Убедившись, что узел активен, он приступает к первичной разведке через Nmap . Базовое сканирование IP-адреса целевой машины 192.168.1.56 мгновенно выявляет два открытых порта: 22 (SSH) и 80 (HTTP) . Открытие порта веб-сервера сразу подтверждается переходом в браузере на дефолтную страницу .
Для более глубокого понимания инфраструктуры инструктор задействует флаг определения версий сервисов -sV . Этот шаг позволяет выяснить, что на сервере развернут веб-сервер Apache 2.4.65 под управлением Debian Linux . Деклан отмечает, что проверка точных версий критична: их сигнатуры помогают найти готовые эксплойты или модули Metasploit . Чтобы сократить время сканирования, можно ограничивать выборку конкретными портами через параметр -p, например, -p 22,80,443,8080, отсекая неактивные защищенные сокеты .
Для удобства взаимодействия Деклан привязывает IP-адрес стенда к локальному псевдониму explorer.nyx в системном файле /etc/hosts . Дальнейшее сканирование связкой параметров -sC (запуск базовых скриптов NSE) и -sV приносит ключевую находку: скрипты автоматически считывают файл robots.txt . Внутри обнаруживается запрещенный к индексации скрытый каталог /extplorer, переход к которому открывает веб-панель авторизации .
Деклан также предостерегает от бездумного использования агрессивного режима -A . Хотя он сочетает определение ОС, версий и скрипты, такой опрос создает огромный шум в сети и моментально регистрируется межсетевыми экранами и системами обнаружения вторжений (IDS) . Если же требуется исследовать абсолютно весь спектр портов (от 1 до 65535), используется ключ -p-, а ход сканирования в реальном времени можно отслеживать флагом подробного вывода -v . Завершая этап, Мидд фиксирует результаты в отчете командой nmap -sC -sV -oN nmap_basic.txt explorer.nyx, поясняя, что ключ -oN сохраняет чистый текстовый лог для последующего документирования .
Методы маскировки: ложные адреса (decoys) и Proxychains 1:29:00
Агрессивные и прямые зондирования неизбежно выдают реальный адрес атакующего, поэтому Деклан переходит к разбору стелс-методик обхода систем защиты . Основой скрытного сбора данных выступает TCP SYN-сканирование через флаг -sS, при котором полноценное трехстороннее рукопожатие не завершается, что затрудняет протоколирование сессии . Для эффективного запутывания защитных систем в Nmap встроен механизм фиктивных источников (decoys) .
Команда вида nmap -sS -D RND:10 <цель> инструктирует сканер сгенерировать десять случайных IP-адресов, трафик от которых перемешивается с пакетами пентестера . При анализе сетевых логов администратор видит одновременный шквал запросов с 11 разных адресов и не может однозначно вычислить истинный источник . Однако Деклан предупреждает:
«Не стоит выставлять значение выше 50 или 100. Оптимальный диапазон — около 10 ложных адресов. Иначе вы рискуете вызвать лавинообразную нагрузку на целевую систему и спровоцировать срабатывание аварийной полосы пропускания» .
Помимо генерации ложных адресов внутри локального сегмента, в реальных операциях часто задействуется утилита Proxychains (в актуальной версии v4) . Она перехватывает сетевые вызовы Nmap и принудительно направляет сокеты через цепочку серверов SOCKS или сеть Tor . Хотя маршрутизация через сторонние узлы колоссально снижает скорость сканирования , она обеспечивает практическую анонимность.
Отдельное внимание уделяется правам доступа: операции формирования сырых пакетов (raw sockets) при SYN-опросе и подделке заголовков IP требуют привилегий суперпользователя, поэтому запуск выполняется строго через sudo . Процесс сканирования успешно завершается в скрытом режиме с фиксацией тех же служб . Деклан также напоминает, что перенаправить вывод сканирования можно не только флагом -oN, но и стандартным оператором оболочки > .
Веб-разведка: WhatWeb, заголовки ответа и перебор путей через Dirsearch 1:34:58
После обнаружения веб-инфраструктуры фокус смещается на энумерацию веб-приложений . Первым делом анализируется стек технологий с помощью консольной утилиты WhatWeb . По функционалу она сопоставима с браузерным расширением Wappalyzer, но работает непосредственно в терминале . Запуск whatweb explorer.nyx выполняет быстрый баннер-граббинг, раскрывая заголовки ответа: используемый сервер Apache, сборку ОС Debian и параметры базовых модулей . Для более глубокого зондирования WhatWeb поддерживает агрессивный уровень анализа ключом -a 3 .
Аналогичную первичную разведку можно осуществить и базовой командой curl с выводом HTTP-заголовков ответа, что незаменимо при отсутствии специализированных инструментов . Убедившись в наличии пути к robots.txt и безуспешно проверив стандартный sitemap.xml , Деклан обращается к активному фаззингу путей утилитой Dirsearch .
Базовый запуск dirsearch -u http://explorer.nyx/ инициирует скоростной перебор директорий по внутренним словарям, однако консоль начинает переполняться ответами 403 Forbidden . Чтобы очистить вывод от мусора, Деклан модифицирует команду аргументами краулинга и исключения статусов:
dirsearch -u http://explorer.nyx/ --crawl --exclude-status 403,404,503,301
Такая конфигурация исключает отображение ошибок запрета доступа и битых шлюзов, изолируя только информативные ответы сервера . Повторный прогон Dirsearch подтверждает наличие пути robots.txt и ранее изолированного каталога /extplorer .
🌐 Тестирование веб-приложений: фаззинг, перехват трафика и закрепление в системе 1:40:44
Фаззинг веб-ресурсов и поиск скрытых точек входа через FFuF 1:40:44
Для углубленного исследования веб-периметра Деклан Мидд (Declan Midd) переходит к утилите FFuF, используя базовый словарь директорий из состава dirb . Принципиальное отличие инструмента заключается в явном определении ключевого слова FUZZ, указывающего точное место подстановки полезной нагрузки в целевом URL . Чтобы терминальный вывод не превращался в монотонный массив нечитаемого текста , инструктор использует флаг -c для цветового форматирования и механизм фильтрации ответов .
В процессе сканирования сервер возвращает статусы 403 и стандартные страницы, которые легко скрыть с помощью фильтров объема ответа или кода состояния . Это позволяет быстро подтвердить наличие таких критических ресурсов, как index.html и robots.txt . Однако функциональность утилиты не ограничивается директориями:
- Фаззинг поддоменов реализуется путем подстановки маркера в заголовок
Hostили начало URL . При этом Мидд отмечает важность фильтрации ложных кодов200 OK, так как многие серверы настроены отдавать стандартный ответ на любые запросы к несуществующим субдоменам . - Перебор расширений файлов осуществляется с помощью аргумента
-e, который добавляет к каждому словарному значению суффиксы вроде.txt,.htmlили.php, позволяя выявлять исходные скрипты и забытые текстовые документы .
В качестве сопутствующего сканера уязвимостей Мидд демонстрирует работу Nikto , называя его аналогом «Nmap для веб-сайтов» . Этот сканер агрессивно проверяет серверные заголовки и версии сервисов , однако для прицельного исследования конкретной логики приложения требуется более тонкий ручной инструментарий .
Перехват и исследование параметров авторизации в Burp Suite 1:46:17
Обнаружив форму авторизации без видимых признаков ограничения попыток входа (rate limiting) , Деклан Мидд запускает специализированный прокси-сервер Burp Suite . Программа работает как посредник («man in the middle») между изолированным браузером и целевым сервером , позволяя инспектировать содержимое любого исходящего пакета до момента его фактической отправки .
Активировав перехватчик (Interceptor) , исследователь генерирует тестовый запрос на авторизацию . Burp Suite наглядно отображает структуру HTTP POST-запроса , раскрывая имена передаваемых параметров: действие option, имя пользователя и пароль .
Для первичного анализа запросы передаются в модуль Repeater . Здесь можно вручную модифицировать параметры и мгновенно наблюдать ответы бэкенда . Получив отрицательный ответ в теле отклика (login failed, success: false) , Мидд подчеркивает, что ручной перебор учетных данных неэффективен, и формирует план для автоматизации этой задачи .
Автоматизация брутфорса: от техники Cluster Bomb к подбору учетных данных 1:50:41
Чтобы автоматизировать атаку на веб-форму, исследователь копирует сырой HTTP-запрос из Burp Suite и сохраняет его в текстовый файл через редактор micro . Внутри тела запроса на место имени пользователя и пароля помещаются специальные маркеры — FUZZUSER и FUZZPASS .
Для одновременного перебора обоих параметров Деклан Мидд настраивает режим cluster bomb в утилите FFuF . Данный метод попарно сопоставляет элементы из двух словарей (например, словаря RockYou для каждого пользователя) , последовательно передавая их в указанный файл запроса с протоколом HTTP . Ввиду того, что полный двухмерный перебор по объемным базам требует колоссального времени , инструктор оптимизирует процесс: он фиксирует имя пользователя admin и оставляет маркер фаззинга исключительно для пароля .
Отфильтровав однотипные серверные отклики, сигнализирующие об ошибке , инструмент мгновенно изолирует аномальный ответ . В результате успешного брутфорса выявляется действующая комбинация admin:admin . Успешная аутентификация в административной панели подтверждает ценность автоматизированных инструментов перебора при аудите безопасности учетных записей .
Эксплуатация уязвимости загрузки файлов: поиск эксплойтов и запуск веб-шелла 1:58:26
Оказавшись в веб-интерфейсе системы eXtplorer , Мидд приступает к поиску известных уязвимостей в базе данных Exploit-DB с помощью консольной утилиты SearchSploit . База данных содержит сведения об уязвимости произвольной загрузки файлов (Arbitrary File Upload) , однако имеющийся готовый модуль Metasploit рассчитан на устаревшую ветку , в то время как на сервере развернута версия 2.1.15 .
Вместо автоматических эксплойтов специалист демонстрирует ручную загрузку веб-шелла p0wny-shell . Это легковесный PHP-скрипт , предоставляющий интерактивный терминал непосредственно в окне браузера . Процесс развертывания веб-шелла состоит из нескольких шагов:
- Исходный код p0wny-shell копируется в новый файл с расширением
.phpвнутри файлового менеджера приложения . - Сохраненный скрипт вызывается прямым обращением через адресную строку браузера .
- После инициализации скрипта открывается доступ к файловой структуре операционной системы хоста , позволяя исследовать внутренние директории целевого сервера без необходимости открытия внешнего обратного соединения (reverse shell) на стороне атакующего .
Подобные ошибки конфигурации и отсутствие валидации расширений загружаемых файлов представляют критическую угрозу целостности сервера . Завершая практический разбор взлома веб-приложения, Деклан напоминает, что публичные эксплойты требуют предварительного анализа перед запуском в изолированной лабораторной среде , после чего анонсирует переход к основам языка Python для создания собственных инструментов .
🐍 Автоматизация на Python: базовый синтаксис и сетевое взаимодействие 2:05:52
Базовый синтаксис Python: переменные, f-строки и ветвления 2:05:52
Для написания вспомогательных инструментов этичному хакеру необходим базовый язык программирования, и Деклан Мидд выбирает Python . Весь процесс разработки строится в связке текстового редактора и терминала, где скрипты построчно исполняются командой python3 basic.py . Автор начинает разбор с функции print, позволяющей выводить текстовые строки в консоль с использованием одинарных или двойных кавычек . В контексте практических задач этот метод служит для отображения ответов от удалённых серверов и форматирования результатов сканирования .
Деклан переходит к концепции переменных, определяя их как именованные области памяти для хранения значений любого типа данных . Для подстановки переменных в вывод он демонстрирует три подхода:
- Передачу переменной аргументом через запятую ;
- Конкатенацию строк с помощью оператора сложения
+; - Использование форматированных строк (f-strings) .
Деклан подчёркивает, что f-строки с синтаксисом префикса f и фигурными скобками являются наиболее чистым и читаемым стандартом в современном коде . Для интерактивного сценария используется встроенная функция input(), позволяющая динамически перехватывать ввод пользователя из терминала — например, запрашивать IP-адрес целевого хоста . Захваченные данные сохраняются в строковую переменную и могут передаваться другим функциям .
Логическая структура скриптов выстраивается с помощью условных операторов if/else . Деклан показывает их работу на примере сопоставления портов: если переменная равна целому числу 80, программа выводит уведомление об обнаружении HTTP-сервиса, в противном случае срабатывает ветка else . Для обхода нескольких сетевых портов применяется цикл for по массиву значений . Задав список типовых сервисов — 21, 22, 80 и 443, инструктор организует поочерёдную итерацию каждого элемента списка с печатью статуса проверки .
Сетевые библиотеки: проверка портов через socket и анализ HTTP через requests 2:17:52
Вместо реализации сетевых протоколов с нуля Деклан Мидд демонстрирует импорт внешних модулей, созданных сообществом разработчиков . Среди ключевых библиотек он выделяет socket для прямого взаимодействия с сетевым стеком и requests для обработки высокоуровневых HTTP-запросов . Недостающие модули в Linux-системах устанавливаются менеджером пакетов pip3 install . Базовый тест модуля socket инструктор проводит вызовом функции socket.gethostname(), которая возвращает локальное сетевое имя рабочей машины (parrot) .
Переходя к работе с веб-ресурсами, Деклан применяет библиотеку requests . Метод requests.get() направляет HTTP-запрос по указанному URL учебного хоста http://exploreryx . Полученный объект ответа содержит метаданные сервиса:
- Код состояния HTTP через атрибут
.status_code; - Заголовки ответа через словарь
.headers, раскрывающие тип и версию веб-сервера .
Связав логику запроса с проверкой if response.status_code == 200, скрипт валидирует доступность сервиса и выводит подтверждение активности узла .
При переходе к написанию структурированных сценариев Деклан Мидд внедряет общепринятый стандарт Python: конструкцию if __name__ == '__main__':, которая служит точкой входа программы и запускает главную функцию main() . В коде настраиваются отдельные вспомогательные блоки: текстовый баннер утилиты , а также изолированные функции обработки сетевых параметров.
Для преобразования доменных имен в сетевые адреса создаётся функция с блоком try...except . Этот механизм предотвращает аварийное завершение скрипта при ошибках резолвинга через socket.error . Запросы к заголовкам сайта через requests.get() Деклан сопровождает обязательным параметром timeout=5, чтобы сценарий не зависал при отсутствии ответа от удалённого узла .
🛠️ Разработка CLI-инструмента для веб-разведки на Python 2:30:55
Реализация парсинга HTTP-заголовков и обработки исключений 2:30:55
Завершая логику утилиты, Деклан Мидд (Declan Midd) переходит к сбору веб-метаданных целевого ресурса через свойство response.status_code . Для наглядного структурирования вывода в консоль добавляется блок печати заголовков ответа . Чтобы терминал не захламлялся сырым словарем, организуется цикл перебора ключей и значений . Конструкция обходит элементы коллекции response.headers.items() , после чего через форматированную строку (f-string) выводит имя каждого заголовка и ассоциированные с ним данные .
Неотъемлемой частью надежного сетевого скрипта является устойчивость к сетевым сбоям, для чего Деклан настраивает конструкцию try-except с перехватом requests.exceptions . Если веб-узел недоступен или запрос сбрасывается по таймауту , программа не должна аварийно завершаться с нечитаемым трассировочным следом . Вместо этого исключение перехватывается, и скрипт выводит информативное сообщение с точным текстом системной ошибки . Завершив описание вспомогательных механизмов, инструктор интегрирует вызов функции get_headers() с передачей целевого URL в основную ветку исполнения main .
Отладка скрипта: типичные ошибки при резолвинге и вызове функций 2:33:11
На этапе первого практического запуска утилита тестируется на домене explorer.nyx . Однако выполнение сразу прерывается системными ошибками в строках обработки сокетов и вызова процедур . Интерпретатор сообщает о неверном количестве переданных аргументов в сетевом методе . Анализируя проблему, Деклан обнаруживает, что ошибочно применил метод socket.gethostname() вместо парсера socket.gethostbyname() , который как раз принимает доменное имя в качестве входного параметра .
В подобных ситуациях инструктор рекомендует не паниковать, а сверяться с официальной справочной документацией стандартных библиотек Python . Исправив опечатку в методе резолвинга, Деклан запускает код повторно, но сталкивается с синтаксической неточностью в названии аргумента url функции получения заголовков . Быстро скорректировав вызов , он сталкивается с третьей ошибкой на строке вывода заголовков . Причиной становится банальная описка в имени итерируемой переменной value , вызванная слишком быстрым набором кода на клавиатуре .
Финальное тестирование и практическая польза автоматизации разведки 2:35:18
После устранения всех опечаток Деклан проводит контрольный прогон написанного сканера разведки . Программа запрашивает у оператора базовый домен и полный веб-адрес исследуемого сервиса (explorer.nyx и http://explorer.nyx) . Скрипт последовательно выполняет поставленные задачи: обращается к сетевому стеку для преобразования имени хоста в IP-адрес и затем отправляет тестовый HTTP-запрос . В консоли отображается результат разрешения имени — внутренний адрес 192.168.1.56 .
Следом инструмент рапортует об успешном подключении со статусом 200 OK и в чистом структурированном виде распечатывает весь массив полученных HTTP-заголовков сервера . Деклан подчеркивает, что подобный базовый скриптинг критически важен для этичного хакера, так как устраняет рутину и сохраняет часы ручного труда при исследовании масштабных инфраструктур . Возможность быстро написать собственный CLI-инструмент под специфическую задачу дает специалисту по безопасности колоссальное преимущество . Подводя итоги практического руководства, автор призывает продолжать совершенствовать навыки сетевой разработки и приглашает студентов в образовательное сообщество для дальнейшего профессионального роста , .