Практический этичный хакинг: от консоли Linux до веб-эксплойтов

freeCodeCamp.org 56,5 тыс. 2 ч 37 мин 24 мин 28.10.2026
Главное

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: циклы, пинг и проверка портов 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 включает следующие шаги :

Однако при первой попытке запуска гипервизор выдает ошибку конфигурации «Invalid settings detected» . Деклан диагностирует проблему: окружение VirtualBox было установлено некорректно из-за отсутствия критических системных библиотек хоста .

Устранение системных зависимостей и настройка сетевого моста 1:09:48

Для устранения возникшего конфликта Деклан Мидд полностью деинсталлирует текущую копию VirtualBox и загружает актуальный дистрибутив гипервизора с официального сайта . Инсталлятор VirtualBox явно указывает на отсутствующие системные зависимости — среду выполнения Python и соответствующие интерфейсы API .

Проблема решается установкой недостающих компонентов хоста:

  1. Инсталляция интерпретатора Python свежей версии с обязательным включением опции «Add Python to PATH» для глобального доступа из командной строки –.
  2. Установка глобального пакета 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 . Однако функциональность утилиты не ограничивается директориями:

В качестве сопутствующего сканера уязвимостей Мидд демонстрирует работу 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-скрипт , предоставляющий интерактивный терминал непосредственно в окне браузера . Процесс развертывания веб-шелла состоит из нескольких шагов:

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

🐍 Автоматизация на Python: базовый синтаксис и сетевое взаимодействие 2:05:52

Базовый синтаксис Python: переменные, f-строки и ветвления 2:05:52

Для написания вспомогательных инструментов этичному хакеру необходим базовый язык программирования, и Деклан Мидд выбирает Python . Весь процесс разработки строится в связке текстового редактора и терминала, где скрипты построчно исполняются командой python3 basic.py . Автор начинает разбор с функции print, позволяющей выводить текстовые строки в консоль с использованием одинарных или двойных кавычек . В контексте практических задач этот метод служит для отображения ответов от удалённых серверов и форматирования результатов сканирования .

Деклан переходит к концепции переменных, определяя их как именованные области памяти для хранения значений любого типа данных . Для подстановки переменных в вывод он демонстрирует три подхода:

Деклан подчёркивает, что 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 . Полученный объект ответа содержит метаданные сервиса:

Связав логику запроса с проверкой 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-инструмент под специфическую задачу дает специалисту по безопасности колоссальное преимущество . Подводя итоги практического руководства, автор призывает продолжать совершенствовать навыки сетевой разработки и приглашает студентов в образовательное сообщество для дальнейшего профессионального роста , .

💬 Цитаты

«Every hacker uses Linux because every command that you type in here, this terminal performs a function. It performs an action.»

Деклан Мидд (Declan Midd) 05:29

«In relation to hacking of course we can use bash scripting to automate security tools.»

Деклан Мидд (Declan Midd) 46:57

«Не стоит выставлять значение выше 50 или 100. Оптимальный диапазон — около 10 ложных адресов. Иначе вы рискуете вызвать лавинообразную нагрузку на целевую систему и спровоцировать срабатывание аварийной полосы пропускания»

«So Burp Suite is a software that allows you to perform these requests, but you can actually see what the request does.»

«When you use searchsploit, it doesn't automatically hack anything. It helps you research known public vulnerabilities. Always read the exploit carefully and understand the affected version and test only in a legal lab environment.»

«This is a very clean way of utilizing Python scripting to save a lot of time when we do a lot of the manual work.»

Деклан Мидд (Declan Midd) 02:36:23
👥 Спикер
📖 Термины
Parrot OS
Дистрибутив Linux на базе Debian, оптимизированный для задач информационной безопасности, цифровой криминалистики и этичного хакинга.
Decoy (Nmap)
Техника маскировки сканирования, при которой генерируются запросы с фиктивных IP-адресов для сокрытия реального источника атаки в логах IDS.
Фаззинг (Fuzzing)
Метод тестирования ПО и веб-приложений путем массовой отправки нестандартных или полуслучайных входных данных для выявления скрытых путей и ошибок.
Web Shell
Вредоносный скрипт (например, на PHP), загружаемый на целевой веб-сервер для получения удаленного интерфейса управления системой через браузер.
Burp Suite
Интегрированная платформа и перехватывающий HTTP-прокси для аудита безопасности и анализа веб-приложений.
Технологии и IT Parrot OS Nmap Burp Suite FFuF Python для пентеста