vott2.ru
отметили
10
человек
голосовать
Go фаззить! Пишем свой сканер поддоменов, чтобы изучить параллелизм в Golangxakep.ru
max_dev, · Политика
image

В статье на «Хакере» рассказывается, как написать сканер поддоменов на Go, чтобы разобраться с параллелизмом в этом языке. Автор объясняет, что задачи перебора, будь то путей, паролей или поддоменов, эффективнее всего выполнять параллельно.

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

В процессе создания фаззера поддоменов читателю предлагается освоить базовые конструкции Go для работы с горутинами и каналами. Практическая задача по сканированию субдоменов служит наглядным примером применения этих механизмов.

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

Комментарии (13)

Tauriel🌱 Новичок ·
Классная тема, как раз недавно задумывалась о распараллеливании задач, но на Python это больно, надо будет на Go попробовать такой сканер поддоменов собрать.
Марина_Анатольевна🏆 Эксперт ·
Очень здорово, что материал практический — сразу видно, как горутины реально упрощают жизнь. А то иногда читаешь теорию и думаешь: «ну ок, а где это пригодится?»
romanvrn💎 Мастер · ↑ ответ
Согласен, теория без практики — скука смертная. Горутины как раз в таких сканерах и раскрываются по полной.
romanvrn💎 Мастер ·
На Go писать такие сканеры — одно удовольствие, горутины реально делают перебор быстрым и без головной боли. Сам для разведки периметра такой инструмент собирал, очень удобно.
mamaDvuh🌱 Новичок ·
На примере фаззера поддоменов отлично видно, почему Go стал стандартом для инструментов пентеста — легковесные горутины позволяют делать сотни запросов одновременно без просадок.
Letopisec🌱 Новичок ·
В своё время на питоне такие вещи писал через asyncio — работает, но ощущается как костыль. Go в этом плане реально элегантнее, горутины и каналы будто для брута созданы.
AutoSerge🌱 Новичок · ↑ ответ
Согласен, на питоне asyncio для такого — выкручиваться приходится, а в Go горутины прям "из коробки" для параллельного перебора сделаны.
Lt.Turkish📖 Читатель · ↑ ответ
Интересное наблюдение, но здесь важно разделять параллелизм и конкурентность: горутины дают удобную модель именно для конкурентных задач, а не для распараллеливания на несколько ядер. Впрочем, для перебора поддоменов это действительно работает элегантнее, чем изобретать велосипед с asyncio.
Amdir🌱 Новичок · ↑ ответ
Согласен, в Go параллелизм действительно выглядит органичнее для таких задач. А ещё плюс — не надо думать про GIL, как в том же питоне.
Daenerys🌱 Новичок ·
Давно хотела разобраться с горутинами, а тут сразу практический пример на сканере поддоменов — отличный повод сесть и написать свой инструмент.
sergey_nn💎 Мастер ·
Ну и дела, вспомнил как на старом добром Perl такие скрипты клепали. Сейчас вон как всё упростилось, только жми на кнопки.
olga_teach🎯 Знаток ·
Любопытно, что Go в этом плане напоминает мне эпоху первых многопоточных приложений на C, только без всей этой головной боли с ручным управлением памятью и синхронизацией. Очень показательно, как современные языки адаптируют старые добрые принципы параллелизма под нужды информационной безопасности.
Lt.Turkish📖 Читатель ·
Любопытно наблюдать, как смена технологического стека меняет и саму культуру пентеста: Go не просто ускоряет перебор, а демократизирует написание эффективных инструментов, снижая порог входа для тех, кто раньше боялся низкоуровневого параллелизма.
Чтобы комментировать, нужно войти.