Создание инструмента раскрывает решения зрелых сканеров: входные параметры, таймауты, параллельность, поля протоколов, ошибки и фильтры. Этот практический курс разрабатывает на Python инструменты разведки и связывает их результаты.
Вы создадите многопоточный TCP-сканер, соберёте ICMP/TCP-пакеты в Scapy и разработаете параллельный веб-перебор путей. Итог сканирует локальные веб-порты, проверяет словарь на каждом сервисе и пишет общий отчёт.
Чему вы научитесь
- Создавать CLI через
argparseдля цели и диапазона портов - Определять TCP-порты с
socket.connect_ex, таймаутами и исключениями - Сравнивать последовательное сканирование и потоки
- Составлять слои IP, ICMP и TCP в Scapy и изучать поля
- Отправлять один ICMP-запрос через
sr1и обрабатывать ответ или таймаут - Читать словарь путей и параллельно выполнять HTTP-запросы
- Фильтровать endpoints по HTTP-кодам и обрабатывать ошибки
- Связывать сканирование и поиск директорий в локальный отчётный инструмент
Для кого этот курс
Этот курс среднего уровня предназначен для изучающих кибербезопасность, сетевых инженеров и Python-разработчиков, желающих понять устройство сканеров. Он обучает реализации и безопасным тестам, а не заменяет Nmap или ffuf.
Предварительные требования: Функции Python, модули, коллекции, исключения и файлы, плюс основы TCP-портов, HTTP-кодов, заголовков IP/ICMP/TCP и терминала Linux.
Учебная среда: Ubuntu 22.04 с Python 3, Scapy, requests, локальными веб-серверами и словарями. Сканирование использует 127.0.0.1; пакетная лаборатория отправляет один ICMP Echo на 8.8.8.8 согласно сетевой политике.
Часто задаваемые вопросы
Можно ли направлять инструменты на любой хост?
Только на свои или явно разрешённые системы. Сканирование идёт по 127.0.0.1; Scapy отправляет один стандартный ICMP Echo к Google Public DNS для практики ответа.
Что если Scapy не получит ответ?
Это нормально при блокировке ICMP или raw-пакетов. Скрипт ждёт две секунды и обрабатывает отсутствие ответа; гарантированный Интернет не является целью.
Инструменты готовы к production?
Нет. Зрелым средствам нужны ограниченная параллельность, rate limiting, определение сервисов, повторы, wildcard-ответы, TLS, проверка ввода, детерминированный вывод и тесты.
Fuzzer здесь отправляет некорректные payloads?
Нет. Он перебирает словарные пути обычными GET и фильтрами HTTP-кодов. Мутации протокола, инъекции и тесты повреждения памяти не выполняются.



