Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Регистрируясь, я даю согласие на обработку данных и условия почтовых рассылок.
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр Отправляйся в Скайдом — волшебную страну, парящую высоко в небе среди пушистых облаков! Всё вокруг сияет яркими красками, а в самом сердце этого чудесного мира тебя ждет увлекательная арена, где можно с удовольствием и пользой провести время, собирая ряды из одинаковых элементов.

Скайдом: три в ряд

Три в ряд, Головоломки, Казуальные

Играть

Топ прошлой недели

  • Oskanov Oskanov 9 постов
  • Animalrescueed Animalrescueed 46 постов
  • AlexKud AlexKud 33 поста
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая «Подписаться», я даю согласие на обработку данных и условия почтовых рассылок.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Маркет Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
0 просмотренных постов скрыто
0
Блог компании
Finder
Finder
1 месяц назад

ТОП-21 курсов по пентесту: обучение на пентестера с нуля⁠⁠

Если вы давно задумывались о том, как работают хакеры и как защитить себя и компании от их атак, то курсы пентестера — это отличный старт. Представьте: вместо сухой теории — практические задания, реальные сценарии взлома и возможность почувствовать себя по другую сторону экрана. Такой путь не только захватывает, но и открывает перспективы в одной из самых востребованных IT-профессий.

Я изучил почти 40 программ от разных школ и платформ, чтобы отобрать 21 наиболее интересный и полезный вариант. Сначала познакомлю вас с топ-10 курсов, которые показались мне самыми сильными. Затем предложу подборку еще 8 достойных программ. А в завершение поделюсь бесплатными возможностями для изучения.

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

ТОП-10 лучших курсов пентестера в 2025 году

  1. Пентестер с нуля от Skillbox — обучение пентесту с отработкой реальных кибератак на облачных виртуальных машинах VK.

  2. Специалист по информационной безопасности от Нетологии — погружение в аудит, цифровую форензику и DevSecOps.

  3. Специалист по информационной безопасности: веб-пентест от Яндекс Практикум — симулятора реалистичных CTF-сценариев для практической отработки атак.

  4. Специалист по кибербезопасности от Skillbox —  курс пентеста с нуля с практикой защиты корпоративных систем и применением ИИ.

  5. Специалист по информационной безопасности от GeekBrains — курс по веб-пентесту с живыми онлайн-занятиями в мини-группах.

  6. «Белый» хакер от Skillfactory — кейс для реального работодателя с фидбеком и гарантия возврата денег при отсутствии трудоустройства.

  7. Пентест от Otus — симуляция атак через реальную веб-лабораторию, AD-атаки и эскалация привилегий под контролем экспертов.

  8. Этичный хакер от Coddy School — игровое обучение кибербезопасности для подростков.

  9. Тестирование на проникновение и анализ безопасности. Базовый уровень от Акадeмии АйТи — сжатый базовый курс для быстрого старта.

  10. WebSecOps от Pentestit — узкая специализация по работе с WAF и анализом инцидентов.

Обучение пентесту подойдет айти-специалистам: сетевикам, сисадминам и разработчикам, которые хотят перейти в востребованное и доходное направление. Это также хороший старт для студентов технических специальностей и тех, кто уже увлекается безопасностью и разбирается в сетях и работе с командной строкой.

Онлайн-курсы пентестера

1. Пентестер с нуля | Skillbox

Используйте промокод kursfinder, чтобы получить скидку 60%

Применить промокод>>> 

На этой программе вы освоите профессию, которая сейчас на пике спроса в IT — специалиста по проверке систем на устойчивость к внешним воздействиям. Вас ждет обучение через практику: будете разбирать кейсы под руководством действующих экспертов. Прокачаете навыки защиты сетей, изучите современные подходы к анализу рисков и получите практический опыт. Для тренировок школа создала 12 изолированных виртуальных площадок в облаке VK, которые повторяют структуру корпоративной сети — идеальные условия для безопасного экспериментирования и оттачивания мастерства.

  • Стоимость: 118 464 рубля

  • Длительность: по запросу

  • Формат обучения: вебинары, практика, видеолекции

  • Сертификат: сертификат установленного образца

Кому подойдет:

  • новичкам, которые хотят работать
в сфере кибербезопасности;

  • специалистам в сфере кибербезопасности.

Преимущества:

  • есть облачная платформа для практических занятий от VK;

  • 12 бесплатных виртуальных машин для отработки навыков поиска уязвимостей;

  • опыт реальной учебной атаки на ресурс в портфолио.

Недостатки:

  • не указана длительность обучения.

Программа обучения:

  • Методы социальной инженерии и защита от фишинга

  • Техники сканирования сетей

  • Атаки на веб-приложения

  • Сбор и взлом учетных данных

  • Принципы работы Active Directory

  • Атаки на Active Directory

  • Подготовка к внедрению защитных решений

  • Развертывание и интеграция защитных систем

  • Тестирование и документирование систем безопасности

  • Эксплуатация защитных систем

  • Источники данных о security-событиях

Ознакомиться с полной программой >>>


2. Специалист по информационной безопасности | Нетология

Используйте промокод kursfinder, чтобы получить скидку 7%

Применить промокод>>> 

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

  • Стоимость: от 130 200 рублей

  • Длительность: от 11 месяцев

  • Формат обучения: вебинары, лекции, проекты

  • Сертификат: диплом о профессиональной переподготовке

Кому подойдет:

  • новичкам с нуля;

  • системным администраторам;

  • специалистам по защите информации;

  • администраторам баз данных;

  • руководителям IT-проектов.

Преимущества:

  • персональная консультация;

  • в подарок еще пять курсов по разным темам;

  • четыре больших проекта для своего портфолио;

  • множество практических задач;

  • отбор на стажировку.

Недостатки:

  • длительная программа.

Программа обучения:

  • Базовые принципы защиты информации

  • Организация сетей и обеспечение их безопасности

  • Работа с системой контроля версий Git

  • Защита операционных систем и основы системного программирования

  • Профильные направления подготовки

  • Управление системами защиты информации

  • Современная киберпреступность и методы расследования

  • Реагирование на инциденты и proactive поиск угроз

  • Безопасность веб-приложений и DevSecOps

  • Attack & Defence: тестирование на проникновение

Ознакомиться с полной программой >>>


3. Специалист по информационной безопасности: веб-пентест | Яндекс Практикум

Купите любой курс с выгодой до 20% при оплате сразу

Получить скидку>>> 

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

  • Стоимость: от 110 000 рублей

  • Длительность: 4-6 месяцев

  • Формат обучения: вебинары, воркшопы, практические задания, домашняя работа

  • Сертификат: сертификат установленного образца

Кому подойдет:

  • разработчикам;

  • автоматизаторам тестирования;

  • системным администраторам;

  • студентам техвузов и начинающим пентестерам.

Преимущества:

  • возврат средств при необходимости;

  • поддержка в поиске работы;

  • регулярное обновление учебных материалов;

  • бесплатное пробное тестирование;

  • организация обучения для организаций;

  • доступ к вводным занятиям без оплаты;

  • возможность обучения в индивидуальном ритме;

  • консультации с использованием интеллектуальных помощников;

  • сжатые выводы после каждого занятия;

  • отработка навыков на примерах из реальной практики.

Недостатки:

  • не подойдет новичкам.

Программа обучения:

  • Принципы создания защищенных приложений

  • Документирование результатов и составление отчетов

  • Анализ уязвимостей в бизнес-логике

  • Риски небезопасной десериализации данных

  • Современные методы проверки подлинности

  • Системы контроля и разграничения доступа

  • Основные угрозы безопасности интерфейсов программирования

Ознакомиться с полной программой >>>


4. Специалист по кибербезопасности | Skillbox

Используйте промокод kursfinder, чтобы получить скидку 60%

Применить промокод>>> 

На этом курсе вас не только познакомят с теорией, но и покажут, как защищать компьютеры и сети от угроз. Научитесь распознавать кибератаки, предотвращать и создавать продуманные системы безопасности. В программе — все, что нужно для старта в профессии: от базовых принципов безопасности до тонкостей работы компьютерных сетей. Вы поймете, какие бывают кибератаки и как от них защищаться, разберетесь в шифровании, научитесь находить слабые места и работать с профессиональными инструментами кибербезопасности. Каждый этап подкреплен практикой, чтобы вы могли сразу применять знания в реальных ситуациях.

  • Стоимость: от 174 747 рублей

  • Длительность: от 12 месяцев

  • Формат обучения: видеолекции, практические задания и тестирования

  • Сертификат: сертификат установленного образца

Кому подойдет:

  • новичкам;

  • специалистам из других областей;

  • студентам и выпускникам;

  • людям, интересующимся кибербезопасностью.

Преимущества:

  • разбор помощи нейросети в работе IT-специалистов;

  • практика в облаке, которое предоставил партнер — VK;

  • CTF-формат: побываете и в роли атакующего, и в роли защитника;

  • помощь с поиском работы после обучения — если не получится, вернут деньги.

Недостатки:

  • количество мест ограничено.

Программа обучения:

  • Освоение командной строки (терминала) — основного инструмента работы

  • Понимание как Linux взаимодействует с оборудованием и устройствами

  • Работа с дисками, разделами и файловыми системами

  • Организация хранения данных и структура каталогов

  • Основы безопасности: защита системы и данных

  • Управление правами доступа для пользователей и групп

  • Работа с привилегиями и административными правами

  • Процесс загрузки системы и работа с ядром Linux

  • Управление запущенными процессами и службами

Ознакомиться с полной программой >>>


5. Специалист по информационной безопасности | GeekBrains

Используйте промокод kursfinder, чтобы получить скидку 7%

Применить промокод>>>

Этот курс — способ начать разбираться в digital-безопасности. Здесь дадут не просто теорию из учебников, а покажут, что работает на практике. Вы поймете, как сегодня воруют данные, какими программами пользуются защитники и как построить систему, которая не подведет. Вас ждет много живых примеров: настроите защиту как в компании, потренируетесь искать дыры в безопасности, попробуете отражать атаки. После обучения устроитесь в банк, госструктуру или IT-фирму — везде, где ценят людей, способных держать оборону в цифровом мире.

  • Стоимость: от 148 320 рублей

  • Длительность: около 10 месяцев

  • Формат обучения: мини-группы, вебинары, практические задания, видеоуроки

  • Сертификат: сертификат установленного образца

Кому подойдет:

  • новичкам;

  • специалистам по защите информации;

  • администраторам баз данных;

  • руководителям IT-проектов;

  • разработчикам программного обеспечения.

Преимущества:

  • скидка до 65% от начальной цены;

  • программы на выбор в подарок;

  • бесплатная консультация;

  • практические задания для наполнения портфолио;

  • поддержка в поиске работы после завершения курса;

  • гарантия возврата средств при необходимости;

  • оформление налогового вычета в 13% от стоимости;

  • персональные комментарии и рекомендации от экспертов;

  • разбор реальных задач и кейсов во время живых вебинаров.

Недостатки:

  • техническая поддержка не всегда отвечает быстро.

Программа обучения:

  • Основы работы с Linux

  • Система прав и привилегий

  • Управление правами доступа

  • Процесс загрузки ядра

  • Контроль работающих процессов

  • Администрирование системы

  • Мониторинг и анализ логов

  • Установка и удаление программ

  • Ключевые сетевые протоколы

  • Диагностика сетевых подключений

  • Решение проблем в локальной сети

Ознакомиться с полной программой >>>


6. «Белый» хакер | Skillfactory

В Skillfactory вы научитесь видеть дыры в защите программ и систем и латать их. Вместо сухой теории — живые примеры, как хакеры пытаются взломать сайты, серверы или приложения, и что делать, чтобы этого не допустить. Поймете, откуда ждать угрозу, как с ней бороться и как сделать так, чтобы данные были под надежным замком. Это обучение для тех, кто хочет не просто говорить о безопасности, а разбираться в ней — чтобы потом работать в IT-командах, помогать бизнесу избегать утечек или самому искать уязвимости, которые другие пропустили. В итоге вы получите как знания, так и умения, которые ценятся в digital-мире.

  • Стоимость: от 143 892 рублей

  • Длительность: 13 месяцев

  • Формат обучения: теоретические материалы, видеоуроки, практические задания

  • Сертификат: сертификат или диплом

Кому подойдет:

  • новичкам;

  • тестировщикам;

  • системным администраторам.

Преимущества:

  • возможность работать по специальности уже через полгода;

  • персональная скидка при общении с менеджером;

  • поддержка от опытных специалистов на всех этапах;

  • удобная рассрочка без переплат и скрытых комиссий;

  • несколько вариантов обучения, которые можно выбрать под свои цели и бюджет.

Недостатки:

  • не во всех тарифах есть индивидуальные консультации с ментором.

Программа обучения:

  • Основные инструменты для тестирования на проникновение

  • Организация и настройка учебной среды

  • Базовые элементы Python функции и переменные

  • Автоматизация проверок с помощью Python

  • Основы верстки HTML и CSS азы JavaScript

  • Введение в PHP и настройка XAMPP

  • Реляционные и нереляционные базы данных

  • Развертывание и структурирование баз данных

  • Сканирование и атаки на базы уязвимости SQLi

  • Практическое применение BurpSuite

  • Защита от атак на клиентские приложения

  • Уязвимости серверных компонентов

  • Техники HTTP Parameter Pollution и CRLF Injection

  • Методы SQL Injection и Template Injections

Ознакомиться с полной программой >>>


7. Пентест | Otus

Курс по pentest от Otus — это возможность научиться искать слабые места в защите систем, как это делают настоящие профессионалы. Вы освоите весь цикл работы: от сканирования сетей и поиска уязвимостей до тестирования веб-приложений и даже основ социальной инженерии. В программе — только практика: работа с реальными инструментами, перехват трафика, анализ рисков и правильное оформление отчетов. Важный акцент сделали на этике — чтобы вы понимали, как проводить проверки легально и безопасно для бизнеса.

  • Стоимость: 112 000 рублей

  • Длительность: 5 месяцев

  • Формат обучения: вебинары, сдача домашних работ и получение обратной связи от преподавателя

  • Сертификат: сертификат и удостоверение

Кому подойдет:

  • разработчикам, которые хотят оптимизировать свои приложения;

  • администраторам и devops-инженерам;

  • специалистам ИБ и тем, кто хочет развиваться как профессиональный пентестер.

Преимущества:

  • возврат денег за неиспользованный период обучения;

  • рассрочка без переплат;

  • возможность бесплатно проверить свой уровень перед началом;

  • есть обучение для корпоративных групп;

  • все практические задания выполняются на реальных системах.

Недостатки:

  • не всем подойдет четкое расписание занятий.

Программа обучения:

  • Инструменты для работы с сетевым трафиком

  • Компоненты системы защиты сети

  • Основные способы изменения сетевого трафика

  • Оценка уязвимостей и анализ потенциальных атак

  • Модели управления правами доступа

  • Механизмы защиты в операционной системе Windows

  • Атаки на домен Active Directory

  • Атаки на сервисы в операционной системе Linux

  • Социальная инженерия и тестирование людей

  • Проблемы безопасности в Kubernetes

  • Выбор темы и организация проектной работы

Ознакомиться с полной программой >>>


8. Этичный хакер | Coddy School

Полноценное обучение pentest с погружением в практику информационной безопасности. Вы научитесь выявлять уязвимости, противостоять современным угрозам и работать с сетевыми протоколами через живые примеры, а не голую теорию. Особый акцент сделан на инструментах, которые используют профессионалы, и на юридических аспектах работы — чтобы вы действовали не только эффективно, но и в правовом поле. В программе: настройка сетей, анализ трафика, написание скриптов на Python, сканирование систем и отработка атак. Вы освоите не только технику, но и soft skills — как доносить полученные данные до команды и заказчиков, выстраивать защиту и реагировать на инциденты. Все это пригодится вам в реальных проектах, а не останется просто знанием «в вакууме».

  • Стоимость: по запросу

  • Длительность: от 9 месяцев

  • Формат обучения: индивидуальные и групповые занятия, онлайн и офлайн, практические задания

  • Сертификат: именной сертификат Coddy

Кому подойдет:

  • новичкам;

  • детям от 12 до 16 лет.

Преимущества:

  • широкий выбор тем для изучения;

  • много практики — реальные задачи и проекты;

  • занятия в удобное время;

  • возможность найти единомышленников и расширить круг общения;

  • персональное внимание от наставников и поддержка на всех этапах;

  • игровой формат обучения для поддержания интереса и азарта;

  • качественная и развернутая обратная связь по всем работам.

Недостатки:

  • не указана стоимость обучения.

Программа обучения:

  • Принципы хеширования данных

  • Работа с классами в Python

  • Разновидности сетевых атак

  • Базовые знания HTML

  • Стилизация веб-страниц с помощью CSS

  • Суть фишинговых атак

  • Создание учебных фишинговых страниц

  • Основы JavaScript и сферы применения

  • Функции и обработка событий в JavaScript

  • Практическое применение JavaScript

  • Создание простой базы данных

  • Защита от SQL инъекций

  • Модель сетевого взаимодействия OSI

Ознакомиться с полной программой >>>


9. Тестирование на проникновение и анализ безопасности. Базовый уровень | Академия АйТи

Вы освоите инструменты и подходы, которые применяют специалисты по безопасности в реальной работе. Вас ждет не теория из учебников, а живые кейсы: научитесь работать с Nmap, Nessus и Metasploit, находить уязвимости в системах и оценивать риски. Отдельно разберете этическую сторону — как проводить проверки, не нарушая законов. В итоге сможете самостоятельно тестировать IT-системы на прочность, находить слабые места и давать рекомендации по защите. Эти навыки помогут вам реально укреплять безопасность компаний — от предотвращения атак до построения комплексной защиты.

  • Стоимость: 99 000 рублей

  • Длительность: 9 дней

  • Формат обучения: видеоуроки, практика

  • Сертификат: удостоверение о повышении квалификации

Кому подойдет:

  • квалифицированным специалистам;

  • системным администраторам;

  • специалистам в области информационных технологий.

Преимущества:

  • поддержка и консультации преподавателей;

  • гибкий график;

  • обновленная программа.

Недостатки:

  • не подходит новичкам.

Программа обучения:

  • Эволюция хакерства

  • Что подвергается атакам

  • Утечки данных

  • Поиск через сервисы Whois

  • Социальная инженерия

  • Цели сканирования сети

  • Методы сканирования

  • Определение структуры сети

  • Пользователи Windows

  • Группы Windows

  • Stack-based Buffer Overflow

  • Overflow using Format String

  • Цель DDoS-атаки

Ознакомиться с полной программой >>>


10. WebSecOps  | Pentestit

Этот курс научит вас искать слабые места в веб-приложениях и грамотно защищать их от атак. Вы освоите профессиональные инструменты вроде Burp Suite и OWASP ZAP, поймете, как работают системы защиты (WAF), и научитесь оперативно реагировать на кибератаки. Вместо абстрактной теории — реальные кейсы: от обнаружения уязвимостей до расследования инцидентов. После обучения вы сможете не только находить уязвимости, но и предотвращать угрозы — именно так, как это делают в современных IT-командах. Курс построен на практике: все навыки вы отработаете в условиях, максимально приближенных к реальным.

  • Стоимость: 78 500 рублей

  • Длительность: 21 день

  • Формат обучения: вебинары, практические задания

  • Сертификат: есть

Кому подойдет:

  • специалистам в области информационной безопасности;

  • пентестерам, разработчикам;

  • системным администраторам;

  • DevOps-инженерам.

Преимущества:

  • удобная специализированная лаборатория;

  • поддержка от опытного куратора;

  • скидка на повторное обучение.

Недостатки:

  • не предусмотрена рассрочка на обучение.

Программа обучения:

  • Архитектура веб-приложений

  • SQL-инъекции

  • NoSQL-инъекции

  • Cross Site Scripting (XSS)

  • XML External Entity (XXE)

  • Remote Code Injection (RCE)

  • OS Command Injection

  • Server-Side Template Injection (SSTI)

Ознакомиться с полной программой >>>


Еще 8 дополнительных курсов пентестера

В обзоре вы также найдете еще несколько дополнительных программ для глубокого погружения в профессию. Это узкоспециализированное обучение на пентестера, охватывающие определенные ниши.

  • Специалист по тестированию на проникновение веб-приложений от CyberED. Вы будете учиться в условиях, которые максимально похожи на реальные: отработаете 100 различных методов на трех уровнях сложности — от начального до профессионального. Такой подход поможет не только глубоко разобраться в теме, но и gain уверенность в своих силах при решении практических задач. 

  • Zero Security от Pentestit. Особое внимание здесь уделяется работе с WAF (Web Application Firewall). Вы научитесь не только настраивать защиту, но и детально разбирать инциденты, оттачивая навыки в условиях, максимально приближенных к реальным вызовам современной кибербезопасности.

  • Специалист по тестированию на проникновение от HackerU. Участникам предстоит не просто изучить, а привести в систему фундаментальные принципы безопасности, современные протоколы защиты и практические инструменты пентестера. Программа построена на полном погружении в методы этичного взлома, где каждая теоретическая концепция сразу подкрепляется практикой реального тестирования на проникновение, формируя не просто понимание, а готовый навык поиска уязвимостей.

  • СЕН2. Тестирование на проникновение хакера и анализ безопасности от Центра компьютерного обучения «Специалист» при МГТУ им.Н.Э.Баумана. Эта программа — это глубокое погружение в методы и инструменты пентеста, integrated в стратегию проверки защищенности сетей. Участники освоят не только точечные способы поиска слабых мест, но и системный подход к оценке рисков и созданию эффективной защиты от современных сетевых угроз.

  • Тестирование Веб-Приложений на проникновение от Codeby Security School. Интенсивное погружение в тестирование на проникновение построено по принципу «learning by doing»: вместо скучной теории — интерактивные имитации реальных атак. Вы будете отрабатывать каждую технику взлома в специально созданной лаборатории, которая включает 65 учебных и 16 экзаменационных заданий разной сложности.

  • Пентест инфраструктуры для начинающих от Stepik. Вы освоите методы, нужные для полной проверки защиты IT-инфраструктуры: тестирование безопасности компьютеров пользователей, серверных систем, служб Active Directory, бизнес-приложений и веб-интерфейсов. Программа построена на имитации реальных сценариев взлома корпоративных сетей, чтобы вы могли отработать действия в условиях, близких к профессиональным.

  • Этичный Веб хакинг (web hacking) для начинающих от Udemy предлагает глубокое погружение в использование критических уязвимостей веб-приложений, фокусируясь на трех опасных и частых атаках: SQL Injection, Path Traversal и Command Injection. Вы не просто узнаете теорию, а освоите практические методы поиска и использования этих уязвимостей в учебных условиях.

  • Все про пентест — Почему важна сетевая безопасность на Android от bitdegree. Программа фокусируется на одном из ключевых направлений современной кибербезопасности — поиске уязвимостей мобильных платформ. Вы погрузитесь в специальный раздел пентеста, посвященный ОС Android: от изучения устройства системы и способов создания учебных вредоносных программ до освоения инструментов на Ubuntu для разбора приложений, динамического анализа и проверки их защищенности.


Бесплатные курсы пентестера

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

  1. Белый хакинг — с нуля до первого пентеста от Skillbox. На примере веб-приложений вы исследуете элементарные методы атак и контратак, используя Python в качестве основного инструмента — сначала для моделирования взлома, а затем для создания эффективных механизмов защиты.

  2. Основы безопасности и анонимности в сети от GeekBrains. Курс подходит как для начинающих, так и для опытных специалистов в области IT-технологий.

  3. Введение в Информационную Безопасность от Stepik. Вы системно изучите ключевые дисциплины, входящие в сферу ИБ, и откроете для себя спектр профессиональных ролей, скрывающихся за этим понятием. На практике вас ждет знакомство с реальным арсеналом специалиста.


Что такое пентест и зачем нужен

Давайте представим, что вы построили крепость. Установили стены, ров и надежные ворота. Вроде бы все предусмотрели. Но как узнать, выдержит ли она штурм? Для этого вы нанимаете разведчиков и даете задание: попробуйте найти лазейки, подкопать, обойти защиту — сделайте, как сделал бы враг. Вот этот процесс и называется пентестом, или тестированием на проникновение. Это легальная и контролируемая попытка взломать собственные системы, чтобы найти слабые места до того, как их обнаружат злоумышленники.

Какими мягкими навыками (soft skills) должен обладать пентестер, кроме технических знаний

Пентестеру, помимо умения взламывать системы, критически важно уметь доносить мысли до людей. Придется общаться с сисадминами, руководителями отделов и топ-менеджерами, и для каждого находить слова. Техническому специалисту можно подробно рассказать о векторе атаки через уязвимость в протоколе, а директору — объяснить, какие финансовые и репутационные риски несет эта дыра и почему ее нужно закрыть в первую очередь. Если вы не сможете ясно и убедительно объяснить найденные проблемы, работа окажется отчетом, который ляжет в стол. Умение говорить на языке бизнеса, а не только на языке кода, — это то, что отличает специалиста, чьи рекомендации реализуют.

Вам потребуется огромное и внимательность к деталям. Поиск уязвимостей редко похож на сцену из фильма, где хакер за 30 секунд взламывает систему. Это часто монотонная работа: анализ тысяч строк логов, перебор настроек, поиск единственной опечатки, которая откроет путь внутрь. Бывает, что вы часами бьетесь над задачей, пробуете подходы и ничего не выходит. Здесь важно не сдаться, сохранить концентрацию и способность мыслить нестандартно. Порой решение приходит от того, что вы взглянули на задачу под другим углом, заметили то, что пропустили вначале.

Наконец, без этики в этой профессии делать нечего. Вам доверяют ключи от цифрового королевства компании — доступ к данным, которые дороже актива. Ваша задача — распорядиться этим доверием правильно. Это значит не только формально соблюдать договор, но и чувствовать ответственность за каждое действие. Любопытство — это хорошо, но с четкими границами. Вы должны быть тем человеком, который, даже имея возможности обойти защиту и зайти дальше оговоренного, не сделает этого без явного разрешения. Репутация в этой сфере строится годами, а разрушить ее можно одним неверным шагом.


Курсы пентестера выбирайте по себе: ориентируйтесь на свой уровень, цели и доступное время. Если нужна быстрая трудоустраиваемость — берите интенсивы с карьерной поддержкой и сертификатами; для глубокого погружения — долгие программы с подготовкой к OSCP/CEH. Обязательно проверяйте актуальность лабораторий и отзывы выпускников — это поможет понять, насколько курс дает реальные навыки.

Показать полностью 11
Обучение Образование Курсы Пентест Информационная безопасность Разработка IT Системное администрирование Блоги компаний Длиннопост
MarketerTLT
MarketerTLT
1 месяц назад

Киберброня под ударом: бизнес в зоне турбулентности⁠⁠

Киберброня под ударом: бизнес в зоне турбулентности

Исследование "МегаФона" выявило, что 96% компаний уязвимы для кибератак, причём у 60% обнаружены критические бреши, способные парализовать работу и привести к утечке конфиденциальных данных. Лишь 4% организаций могут похвастаться надёжной защитой, что подчёркивает масштаб проблемы. Спрос на пентесты взлетел на 48%, а количество расследований киберинцидентов удвоилось, что говорит о растущей обеспокоенности бизнеса.

Уязвимости на каждом шагу: от веб-приложений до энергетической инфраструктуры

Типичные слабые места: ошибки в авторизации, уязвимости веб-приложений и некорректные настройки сетевых сервисов. Критические уязвимости позволяют злоумышленникам захватывать доменные контроллеры и получать полный контроль над IT-инфраструктурой. Наиболее уязвимыми оказались энергетика, IT и промышленность (60% случаев), а также банки и финансовые организации (20%).

Пентест – уже не просто тест, а необходимость

Проверка на проникновение превратилась в критически важный инструмент для бизнеса. Спрос на комплаенс-аудиты вырос на 75%, что указывает на стремление компаний соответствовать требованиям регуляторов. По оценкам "МегаФона", рынок пентестов растёт беспрецедентными темпами, и к концу года объём тестирований удвоится.

Киберустойчивость – роскошь, доступная немногим

Только 32% компаний демонстрируют высокий уровень защиты от кибератак, 23% находятся в "средней зоне", а 45% остаются чрезвычайно уязвимыми. Наталья Талдыкина из "МегаФона" подчеркивает, что пентесты – это лишь первый шаг к созданию комплексной системы киберзащиты, необходимой для выживания в условиях растущей киберпреступности. Киберустойчивость перестала быть формальностью и превращается в элемент корпоративной стратегии наряду с аудитом и проверкой на соответствие требованиям регуляторов.

А еще больше интересной информации о маркетинге и рынках можно узнать здесь.

Показать полностью 1
[моё] Бизнес Информационная безопасность Пентест
2
0
Seberd.ITBase
Seberd.ITBase
4 месяца назад

Offensive и Defensive Security — два подхода к безопасности, которые нужно знать⁠⁠

🟥 Offensive и Defensive Security — два подхода к безопасности, которые нужно знать

В инфобезе существуют два основных подхода — offensive и defensive. Они не конкурируют, а дополняют друг друга.

Злоумышленник не будет ждать, ему все равно насколько хороша бумажная безопасность.

Как думаете сколько у вас времени на отражение атаки?

15 минут, час, сутки, неделя? Что за это время успеет сделать хакер?

Малые компании замечают атаку в среднем через 50–150 дней для фишинга или утечек данных, для шифровальщика через 1–30 дней, так как эффект заметен быстрее.

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

Offensive Security (Red Team) попытка войти в систему глазами злоумышленника. Здесь не важна идеальная настройка, а важен реальный результат.

Проверяется, что можно взломать, какие права получить и как быстро распространиться по инфраструктуре. Это не теория, а имитация настоящей атаки.

Defensive Security (Blue Team) отвечает за эшелонированную защиту. Контроль доступа, мониторинг, реагирование на угрозы.

Задача обнаружить и остановить злоумышленника, или хотя бы ограничить ущерб.

К тому же есть вероятность, что хакер не захочет тратить много времени и просто бросит эту затею. Да, важны понты, увидев дорогие системы, подзадумаешься.

И чем дольше времени хакер думает, чем больше эшелонов защиты проходит, тем больше времени на обнаружение и предотвращение атаки.

Не зная мотивацию злоумышленника, вполне реалистичное развитие событий. Буква "П" - психология.

#инфобез #кибербезопасность #offensecurity #defensesecurity #пентест #редтим #itбезопасность #уязвимости

Показать полностью
Кросспостинг Pikabu Publish Bot Информационная безопасность Пентест Уязвимость Текст
0
DELETED
9 месяцев назад

Создал приложение новое. Сканер по диапазону айпи адресов. KPortScan 3.0 Аля YobaParser⁠⁠

Данное приложение работает как на виндовс. Замена KPortScan 3.0 :-)

Приватное чудо. Со встроенным браузером.

Показать полностью
[моё] Хакеры Пентест Уязвимость Windows Android Видео YouTube
3
0
VitaminKas
VitaminKas
1 год назад

Фальшивая точка доступа с помощью WiFiPumpkin3⁠⁠

Фальшивая точка доступа с помощью WiFiPumpkin3

WiFiPumpkin3 - это инструмент для перехвата и анализа сетевого трафика в беспроводных сетей. Он предоставляет возможности для создания поддельных точек доступа, перехвата данных, анализа трафика и многих других функций.

Недавно его добавили в последнюю версию NetHunter. Теперь можно использовать его прямо со смартфона Android.

Источник

Показать полностью
[моё] Хакеры Пентест Взлом Информационная безопасность Социальная инженерия Фишинг
4
5
VitaminKas
VitaminKas
1 год назад

Ищем по SMB шарам в локальной сети⁠⁠

Ищем по SMB шарам в локальной сети

Manspider — это инструмент, который позволяет сканировать SMB-ресурсы для поиска файлов, содержащих чувствительную информацию. Он поддерживает поиск по содержимому файлов, используя регулярные выражения, что делает его отличным средством для сбора информации в локальной сети.

Репозиторий

Источник

Показать полностью
Хакеры Пентест Smb Взлом Информационная безопасность Telegram (ссылка)
0
0
DELETED
1 год назад

Osint инструмент sn0int⁠⁠

Osint инструмент sn0int

sn0int — фреймворк для сбора и полуавтоматической обработки информации о поддоменах, IP-адресах, скомпрометированных учетных записях, телефонных номерах и профилях в социальных сетях.

Помимо прочего, sn0int в настоящее время может:

Собирать поддомены из журналов прозрачности сертификатов и пассивного DNS.

Массовое разрешение собранных поддоменов и сканирование служб http или https.

Обогатить IP-адреса информацией asn и geoip.

Собирать электронные письма с серверов ключей pgp и whois.

Обнаруживать скомпрометированные логины при нарушениях

Находит чьи-либо профили в Интернете

Перечисляет локальные сети с помощью уникальных методов, таких как пассивный ARP.

Сбор информации о номерах телефонов

Сбор активность и изображения из профилей социальных сетей.

Базовая обработка изображений

sn0int во многом вдохновлен recon-ng и maltego, но остается более гибким. и имеет полностью открытый исходный код.

ссылка на репозиторий

Показать полностью 1
[моё] Telegram (ссылка) Информационная безопасность IT Пентест Linux Osint
13
PENTEST.DNA
PENTEST.DNA
1 год назад

Написание DNS-клиентов⁠⁠

Прежде чем начать знакомство с более сложными программами, рассмотрим ряд опций, доступных для клиентских операций. Встроенный в Go пакет net предлагает обширную функциональность и поддерживает большинство, если не все типы записей. Преимущество этого пакета — в простоте его API. Например, LookupAddr(addr string) возвращает список имен хостов для заданного IP-адреса. Недостаток же его заключается в невозможности указывать целевой сервер. Вместо этого пакет использует настроенный в операционной системе механизм распознавания. К недостаткам можно отнести также отсутствие возможности выполнения углубленного анализа результатов.

Для обхода этих недочетов мы задействуем отличный сторонний пакет Go DNS, написанный Миком Гибеном (Miek Gieben). Предпочесть этот DNS-пакет всем прочим стоит из-за его высокой модульности и грамотно написанного и протестированного кода. Вот команда для его установки:

$ go get <!--noindex--><a href="https://pikabu.ru/story/napisanie_dnsklientov_10882360?u=http%3A%2F%2Fgithub.com%2Fmiekg%2Fdns&t=github.com%2Fmiekg%2Fdns&h=2d1437a47e2440f3ccb0c882e1bcfdb5d80d6afc" title="http://github.com/miekg/dns" target="_blank" rel="nofollow noopener">github.com/miekg/dns</a><!--/noindex-->

$ go get github.com/miekg/dns

Установив пакет, вы будете готовы к проработке последующих примеров кода. Начнем с выполнения поиска А-записей для получения IP-адресов из имен хостов.


Извлечение А-записей:

Сперва познакомимся с поиском для полностью уточненного имени домена (fully qualified domain name, FQDN), которое указывает точное расположение хоста в иерархии DNS. Затем попробуем интерпретировать это FQDN в IP-адрес с помощью DNS-записи А. Эта запись связывает имя домена с IP-адресом. (Все листинги кода находятся в корневом каталоге /exist репозитория GitHub https://github.com/blackhat-go/bhg/.)

Код на языке Golang

Код на языке Golang

Сначала создается msg , после чего идет вызов fqdn(string) для преобразования этого домена в FQDN, которым можно обменяться с DNS-сервером . Далее нужно изменить внутреннее состояние Msg на вызов SetQuestion(string, uint16)

с помощью значения TypeA, указывающего, что нужно искать А-запись. (В пакете она определена как const. Другие поддерживаемые значения можно найти в документации.) В завершение мы помещаем вызов Exchange(*Msg, string) , чтобы отправить сообщение на предоставленный адрес сервера, в данном случае являющегося DNS-сервером, обслуживаемым Google.

Нетрудно заметить, что данный код не особо полезен. Несмотря на то что мы отправляем запрос к DNS-серверу и запрашиваем А-запись, ответ мы не обрабатываем, то есть с результатом ничего не делаем. Но прежде чем реализовать нужную функциональность в Go, давайте рассмотрим, как выглядит ответ DNS, чтобы лучше понять этот протокол и различные типы запросов.

Перед выполнением программы которая написана выше запустите анализатор пакетов, например Wireshark или tcpdump, чтобы просмотреть трафик. Вот пример возможного использования tcpdump на хосте Linux:

$ sudo tcpdump -i eth0 -n udp port 53

$ sudo tcpdump -i eth0 -n udp port 53

В отдельном окне терминала скомпилируйте и выполните программу:

$ go run main.go

$ go run main.go

После выполнения кода в выходных данных перехвата пакетов должны отобразиться подключение к 8.8.8.8 через UDP 53, а также детали DNS-протокола:

Две из получаемых при перехвате пакетов строчек нуждаются в дополнительном пояснении. Сначала запрос отправляется с 192.168.7.51 к 8.8.8.8 с помощью UDP 53, при этом происходит запрос А-записи. В ответе от DNS-сервера Google 8.8.8.8 содержится интерпретированный из имени домена IP-адрес 104.131.56.170.

С помощью анализатора пакетов можно преобразовать имя домена stacktitan.com в IP-адрес. Теперь посмотрим, как извлечь эту информацию, используя Go.


Отработка ответов от структуры Msg:


В качестве значения Exchange(*Msg, string) возвращает (*Msg, error). Возврат типа error имеет смысл и является стандартным для идиом Go, но почему в ответе приходит также изначально отправленная *Msg? Чтобы это понять, нужно взглянуть на определение этой struct в исходном коде:

Код на языке Golang

Код на языке Golang

Как видите, Msg struct содержит как вопросы (question), так и ответы (answer). Это позволяет объединять все DNS-вопросы и ответы на них в единую унифицированную структуру. Тип Msg располагает различными методами, упрощающими работу с данными. Например, срез Question изменяется с помощью метода setQuestion(). Это срез можно изменять напрямую, используя append(), и получать тот же результат. Срез Answer содержит ответ на запросы и имеет тип RR. Ниже будет показано, как эти ответы обрабатывать.

Обработка DNS-ответов:

Пример начинается с сохранения возвращенных от Exchange значений и их проверки на наличие ошибок. Если ошибка обнаружена, вызывается panic() для остановки программы. Функция panic() позволяет быстро просмотреть трассировку стека и определить место возникновения ошибки. Далее проверяется длина среза Answer. Если она меньше 1, это означает, что записей нет, и происходит возврат — бывают случаи, когда имя домена не может быть интерпретировано.

Тип RR является интерфейсом, имеющим всего два определенных метода, ни один из которых не дает доступа к IP-адресу, хранящемуся в ответе. Для доступа к этим адресам нужно применить утверждение типа, чтобы создать экземпляр данных в качестве нужного типа.

Сначала выполняем перебор ответов. Далее применяем в ответе утверждение типа, чтобы гарантировать работу с типом *dns.A. При выполнении этого действия можно извлечь два значения: данные в виде утвержденного типа и bool, отражающее успешность утверждения. После проверки успешности утверждения происходит вывод IP, сохраненного в a.A. Несмотря на тип net.IP, он реализует метод String(), поэтому его можно легко вывести на экран.

Поработайте с этим кодом, изменяя DNS-запрос и обмен (exchange) для поиска дополнительных записей. Утверждение типа может оказаться для вас незнакомым, но по своему принципу оно аналогично приведению типов в других языках.


Перечисление поддоменов:


Теперь, научившись использовать Go в качестве DNS-клиента, вы можете создавать полезные инструменты. В этом разделе мы создадим утилиту подбора поддоменов. Подбор поддоменов цели и других DNS-записей — основополагающий шаг в процессе разведки, так как чем больше поддоменов вам известно, тем обширнее поле атаки. Наша утилита будет угадывать их на основе передаваемого списка слов (файла словаря).

Используя DNS, можно отправлять запросы настолько быстро, насколько быстро система сможет обрабатывать пакеты данных. Узким местом здесь станут не язык или среда выполнения, а сервер назначения. При этом, как и в предыдущих главах, будет важно управление многопоточностью программы.

Сначала нужно создать в GOPATH каталог под названием subdomain_guesser, а затем файл main.go. После этого в начале создания нового инструмента необходимо решить, какие аргументы эта программа будет получать. В данном случае это будет несколько аргументов, включая целевой домен, имя файла, содержащего поддомены для подбора, используемый DNS-сервер, а также количество запускаемых воркеров. В Go для парсинга опций командной строки есть полезный пакет flag, который мы будем применять для обработки аргументов командной строки. Несмотря на то что мы используем этот пакет не во всех примерах кода, в данном случае он служит для демонстрации более надежного и изящного парсинга аргументов. Код этого процесса будет приведен ниже.

Создание программы подбора поддоменов на языке Golang

Создание программы подбора поддоменов на языке Golang

В начале строка кода, объявляющая переменную flDomain, получает аргумент String и объявляет пустое строковое значение для того, что будет парситься как опция domain. Следующая связанная строка — это объявление переменной flWorkerCount. Здесь в качестве опции командной строки c нужно предоставить значение Integer. В данном случае мы устанавливаем 100 воркеров. Но это значение можно счесть консервативным, так что в процессе тестирования смело экспериментируйте с увеличением их числа. В завершение вызов flag.Parse() заполняет переменные, задействуя предоставленный пользователем ввод.


ПРИМЕЧАНИЕ:


Вы могли обратить внимание на то, что этот пример идет вразрез с правилами Unix в том, что определяет необязательные аргументы, которые на деле являются обязательными. Можете свободно использовать здесь os.Args. Просто нам быстрее и удобнее поручить всю работу пакету flag.

При сборке данной программы должна возникнуть ошибка, указывающая на неиспользованные переменные. Добавьте приведенный далее код сразу после вызова flag.Parse(). Это дополнение выводит в stdout переменные наряду с кодом,
гарантируя передачу пользователем -domain и -wordlist:

Чтобы ваш инструмент сообщал, какие имена оказались интерпретируемыми, указывая при этом соответствующие им IP-адреса, нужно создать для хранения этой информации тип struct. Определите его над функцией main():

Для этого инструмента вы будете запрашивать два основных типа записей — А и CNAME. Каждый запрос будет выполняться в отдельной функции. Стоит создавать эти функции максимально небольшими и поручать каждой выполнение только одной задачи. Такой стиль разработки позволит в дальнейшем писать менее объемные тесты.


Запрос записей A и CNAME:


Для выполнения запросов мы создадим две функции: одну для А-записей, вторую для записей CNAME. Они обе будут получать FQDN в качестве первого аргумента и адрес DNS-сервера в качестве второго. Каждая из них должна возвращать срез строк и ошибку. Добавьте эти функции в код, который начали определять, расположив вне области main():

Этот код должен показаться вам знакомым, так как он практически идентичен коду, который мы писали в самом начале главы. Первая функция, lookupA, возвращает список IP-адресов, а lookupCNAME возвращает список имен хостов.

Записи CNAME (канонические имена) сопоставляют одно FQDN с другим, которое служит псевдонимом для первого. Предположим, что владелец организации example.com хочет разместить WordPress-сайт с помощью сервиса хостинга WordPress. У этого сервиса могут быть сотни IP-адресов для балансировки всех пользовательских сайтов, в связи с чем предоставить IP для отдельного сайта просто невозможно. Вместо этого данный хостинг может предоставить каноническое имя (CNAME), на которое и будет ссылаться example.com. В итоге адрес www.example.com получит CNAME, указывающее на somewhere.hostingcompany.org, которое, в свою очередь, будет иметь А-запись, указывающую на IP-адрес. Это позволит владельцу example.com разместить свой сайт на сервере, для которого у него нет IP-данных.

Зачастую это означает, что вам нужно проследить целый хвост из канонических имен, чтобы в итоге добраться до действительной А-записи. Мы говорим хвост, потому что из подобных имен может выстраиваться бесконечная цепочка. Добавьте приведенный далее код функции в область за пределами функции main(), чтобы понаблюдать, как использовать череду CNAMES для нахождения А-записи:

Сначала определяется срез для хранения результатов. Далее создается копия FQDN, переданного в качестве первого аргумента. В итоге вы не только не теряете исходный угаданный FQDN, но и можете задействовать его в первой попытке запроса. Начав бесконечный цикл, мы пробуем получить CNAME для этого FQDN. В случае отсутствия ошибок и возвращения не менее одного CNAME устанавливаем cfqdn равным этому возвращенному CNAME, используя continue для возврата к началу цикла. Данный процесс позволяет проследить череду CNAME до возникновения сбоя. Последний будет означать, что конец цепочки достигнут и можно искать А-записи. Но если возникнет ошибка, означающая, что при поиске записи возникли проблемы, то выход из цикла произойдет раньше. В случае обнаружения действительных А-записей каждый возвращенный IP-адрес добавляется в срез результатов, а цикл прерывается. В завершение results возвращается вызывающему.

Наша связанная с интерпретацией имен логика выглядит гладко, однако мы не учли производительность. Давайте совместим этот пример с горутинами, добавив в него многопоточность.


Переход к воркер-функции:


Мы создадим пул горутин, которые будут передавать работу воркер-функции, выполняющей единицу работы. Для распределения работы и сбора ее результатов задействуем каналы. Напомним, что нечто подобное мы уже делали в главе 2, когда создавали многопоточный сканер портов.

Продолжим расширять код Создание программы подбора поддоменов. Сначала создадим функцию worker(), разместив ее вне области функции main(). Она будет получать три аргумента каналов: канал для воркера, чтобы он сигнализировал о своем закрытии, канал доменов, в которых нужно получать работу, и канал для отправки результатов. Этой функции потребуется заключительный строковый аргумент для указания используемого DNS-сервера. Далее приведен пример кода для функции worker():

Прежде чем вводить функцию worker(), определим тип empty для отслеживания завершения выполнения воркера. Это будет структура без полей. Мы задействуем пустую struct, так как она имеет размер 0 байт и практически не создаст нагрузку при использовании. Далее в функции worker() происходит перебор канала доменов, используемый для передачи FQDN. После получения ответа от функции lookup() и проверки наличия не менее одного результата мы отправляем его в канал gather, который собирает все результаты обратно в main(). После того как канал закрывается и цикл совершает выход, структура empty отправляет в канал tracker сигнал вызывающему о завершении всей работы. Отправка пустой struct в канал отслеживания — это важный последний шаг. Если этого не сделать, возникнет состояние гонки, так как вызывающий компонент может выйти до получения каналом gather результатов.

Поскольку вся необходимая структура теперь настроена, можно переключиться обратно на main() и закончить программу, которую мы начали писать в Создание программы подбора поддоменов.

Определите переменные, которые будут содержать результаты и каналы, передаваемые в worker(), после чего добавьте в main() следующий код:

Создайте канал fqdns как буферизованный на основе предоставленного пользователем количества воркеров. Это позволит воркерам запускаться быстрее, поскольку канал сможет вместить больше одного сообщения до блокировки отправителя.


Создание сканера с помощью bufio:


Далее откройте файл, предоставленный пользователем в качестве списка слов, и создайте в нем новый scanner с помощью пакета bufio. Добавьте в main() код

Если возвращаемая ошибка не равна nil, используется встроенная функция panic(). При написании пакета или программы для применения другими людьми следует постараться представить эту информацию более ясно.

Мы будем применять новый scanner для захвата строки текста из переданного списка слов и создания FQDN путем совмещения этого текста с предоставленным пользователем доменом. Результат будет отправляться в канал fqdns. Но сначала нужно запустить воркеры, так как порядок важен. Если отправить работу в канал fqdns, не запустив их, этот буферизованный канал в итоге заполнится и функции-производители будут заблокированы. В main() нужно добавить приведенный далее код, чья задача — запускать горутины воркеров, читать вводный файл и отправлять работу в канал fqdns.

Создание воркеров с помощью этого паттерна похоже на то, что мы уже делали при построении многопоточного сканера портов: задействовали цикл for до момента достижения числа, переданного пользователем. Для захвата каждой строки в цикле используется scanner.Scan(). Этот цикл заканчивается, когда в файле не остается строк для считывания. Для получения строкового представления текста из отсканированной строки мы применяем scanner.Text().

Работа запущена! Отвлекитесь на секунду и ощутите свое величие. Прежде чем читать следующий код, подумайте, где вы находитесь в программе и что уже успели сделать за время чтения книги. Попробуйте самостоятельно закончить эту программу и затем перейти к следующему разделу, где мы поясним ее оставшуюся часть.

Сбор и отображение результатов

Проработку последней части мы начнем с запуска анонимной горутины, которая будет собирать результаты воркеров. Добавьте в main() следующее:

Перебирая канал gather, мы добавляем полученные результаты в срез results. Поскольку мы добавляем срез в другой срез, нужно использовать синтаксис … . После закрытия канала gather и завершения перебора, как и прежде, происходит отправка пустой struct в канал отслеживания. Это делается для предотвращения состояния гонки на случай, если append() не завершится к моменту итогового предоставления результатов пользователю.

Остается только закрыть каналы и представить результаты. Для этого добавьте следующий код в конец main():

Первым можно закрыть канал fqdns, так как мы уже отправили по нему всю работу. Далее нужно выполнить получение результатов в канале tracker по одному разу для каждого воркера, что позволит им обозначить свое полное завершение. После этого можно закрыть канал gather, потому что результатов для получения не остается. В завершение нужно выполнить еще одно получение результатов на канале tracker, чтобы позволить горутине окончательно завершиться.

Эти результаты пользователю еще не представлены. Нужно это исправить. При желании можно просто перебрать срез results и вывести поля Hostname и IPAddress, используя fmt.Printf(). Тем не менее мы предпочитаем задействовать для представления данных один из нескольких прекрасных пакетов Go, а именно tabwriter. Он позволяет выводить данные в красивых ровных столбцах, разбитых на вкладки. Для его применения добавьте в конец main() следующий код:


Снизу показана вся программа в сборе:

Package main

import (

"bufio"

"errors"

"flag"

"fmt"

"os"

"text/tabwriter"

"github.com/miekg/dns"

)

func lookupA(fqdn, serverAddr string) ([]string, error) {

var m dns.Msg

var ips []string

m.SetQuestion(dns.Fqdn(fqdn), dns.TypeA)

in, err := dns.Exchange(&m, serverAddr)

if err != nil {

return ips, err

}

if len(in.Answer) < 1 {

return ips, errors.New("no answer")

}

for _, answer := range in.Answer {

if a, ok := answer.(*dns.A); ok {

ips = append(ips, a.A.String())

}

}

return ips, nil

}

func lookupCNAME(fqdn, serverAddr string) ([]string, error) {

var m dns.Msg

var fqdns []string

m.SetQuestion(dns.Fqdn(fqdn), dns.TypeCNAME)

in, err := dns.Exchange(&m, serverAddr)

if err != nil {

return fqdns, err

}

if len(in.Answer) < 1 {

return fqdns, errors.New("no answer")

}

for _, answer := range in.Answer {

if c, ok := answer.(*dns.CNAME); ok {

fqdns = append(fqdns, c.Target)

}

}

return fqdns, nil

}

func lookup(fqdn, serverAddr string) []result {

var results []result

var cfqdn = fqdn // Не изменяем оригинал

For {

cnames, err := lookupCNAME(cfqdn, serverAddr)

if err == nil && len(cnames) > 0 {

cfqdn = cnames[0]

continue // Нужно обработать следующее CNAME

}

ips, err := lookupA(cfqdn, serverAddr)

if err != nil {

break // Для этого имени хоста нет А-записей

}

for _, ip := range ips {

results = append(results, result{IPAddress: ip, Hostname: fqdn})

}

break // Все результаты обработаны

}

return results

}

func worker(tracker chan empty, fqdns chan string, gather chan []result,

serverAddr string) {

for fqdn := range fqdns {

results := lookup(fqdn, serverAddr)

if len(results) > 0 {

gather <- results

}

}

var e empty

tracker <- e

}

type empty struct{}

type result struct {

IPAddress string

Hostname string

}

func main() {

var (

flDomain = flag.String("domain", "", "The domain to perform

guessing against.")

flWordlist = flag.String("wordlist", "", "The wordlist to use

for guessing.")

flWorkerCount = flag.Int("c", 100, "The amount of workers to use.")

flServerAddr = flag.String("server", "8.8.8.8:53", "The DNS server

to use.")

)

flag.Parse()

if *flDomain == "" || *flWordlist == "" {

fmt.Println("-domain and -wordlist are required")

os.Exit(1)

}

var results []result

fqdns := make(chan string, *flWorkerCount)

gather := make(chan []result)

tracker := make(chan empty)

fh, err := os.Open(*flWordlist)

if err != nil {

panic(err)

}

defer fh.Close()

scanner := bufio.NewScanner(fh)

for I := 0; i < *flWorkerCount; i++ {

go worker(tracker, fqdns, gather, *flServerAddr)

}

go func() {

for r := range gather {

results = append(results, I.)

}

var e empty

tracker <- e

}()

for scanner.Scan() {

fqdns <- fmt.Sprintf"%s.%", scanner.Text(), *flDomain)

}

// Заметьте: здесь можно проверить scanner.Err()

close(fqdns)

for i := 0; i < *flWorkerCount; i++ {

<-tracker

}

close(gather)

<-tracker

w := tabwriter.NewWriter(os.Stdout, 0, 8' ', ' ', 0)

for _, r := range results {

fmt.Fprint"(w, "%s\"%s\n", r.Hostname, r.IPAddress)

}

w.Flush()

}


На этом наша программа для подбора поддоменов готова. Теперь вы можете собрать и запустить этот инструмент. Опробуйте его на списках слов или словарях из открытых репозиториев (можете найти множество через Google). Поэкспериментируйте с количеством воркеров. Вы можете заметить, что при слишком быстрой обработке результаты получаются неоднозначные. Вот пример выполнения с использованием ста воркеров:

Вы увидите, что вывод показывает несколько FQDN и их IP-адреса. Мы смогли угадать значения поддоменов для каждого результата на основе списка слов, переданного в качестве вводного файла.

Теперь, когда вы создали собственный инструмент для подбора поддоменов и научились интерпретировать имена хостов в IP-адреса для перечисления разных DNS-записей, можно переходить к написанию собственного DNS-сервера и прокси.

ССЫЛКА НА ТЕЛЕГРАМ КАНАЛ АВТОРА

Показать полностью 20
Хакеры Программирование Информационная безопасность Взлом Программист Linux IT Google Golang Пентест Длиннопост Telegram (ссылка)
1
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Маркет Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии