Управление скоростью сканирования с помощью потоков в Gobuster

Beginner
Практиковаться сейчас

Введение

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

Запуск сканирования с количеством потоков по умолчанию (10)

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

Откройте терминал и выполните следующую команду:

gobuster dir -u http://127.0.0.1:8080 -w /tmp/wordlist.txt
  • gobuster dir: Указывает, что вы хотите выполнить сканирование методом перебора каталогов/файлов.
  • -u http://127.0.0.1:8080: Устанавливает целевой URL для сканирования. В этой лабораторной работе мы нацеливаемся на локальный HTTP-сервер, работающий на порту 8080.
  • -w /tmp/wordlist.txt: Указывает список слов (wordlist), который будет использоваться в процессе перебора. Этот файл содержит распространенные имена каталогов и файлов.

Наблюдайте за выводом. Вы увидите, как Gobuster начинает сканирование, указывая используемое количество потоков (по умолчанию 10), а затем перечисляет обнаруженные каталоги или файлы. Обратите внимание на скорость появления результатов.

===============================================================
Gobuster vX.X.X-XXXXXX
===============================================================
[+] Url:            http://127.0.0.1:8080
[+] Threads:        10
[+] Wordlist:       /tmp/wordlist.txt
[+] Status codes:   200,204,301,302,307,401,403
[+] User Agent:     gobuster/X.X.X
[+] Timeout:        10s
===============================================================
XXXX/XX/XX XX:XX:XX Starting gobuster in directory enumeration mode
===============================================================
/admin                (Status: 200)
/login                (Status: 200)
/secret               (Status: 200)
/index                (Status: 200)
===============================================================
XXXX/XX/XX XX:XX:XX Finished
===============================================================

Вывод показывает конфигурацию, использованную для сканирования, включая URL, список слов и, что важно, количество потоков. Обнаруженные пути, такие как /admin, /login, /secret и /index, перечислены с соответствующими кодами состояния HTTP.

Увеличение количества потоков до 50 с помощью флага -t

На этом шаге вы увеличите количество потоков, используемых Gobuster, до 50. Это делается с помощью флага -t, который позволяет указать желаемое количество одновременных потоков. Большее количество потоков обычно приводит к более быстрому сканированию, поскольку одновременно отправляется больше запросов.

Выполните следующую команду в терминале:

gobuster dir -u http://127.0.0.1:8080 -w /tmp/wordlist.txt -t 50
  • -t 50: Этот новый флаг устанавливает количество потоков равным 50.

Снова наблюдайте за выводом. Вы должны заметить, что сканирование завершается намного быстрее, чем с использованием 10 потоков по умолчанию. Начальный вывод подтвердит, что используется 50 потоков.

===============================================================
Gobuster vX.X.X-XXXXXX
===============================================================
[+] Url:            http://127.0.0.1:8080
[+] Threads:        50
[+] Wordlist:       /tmp/wordlist.txt
[+] Status codes:   200,204,301,302,307,401,403
[+] User Agent:     gobuster/X.X.X
[+] Timeout:        10s
===============================================================
XXXX/XX/XX XX:XX:XX Starting gobuster in directory enumeration mode
===============================================================
/admin                (Status: 200)
/login                (Status: 200)
/secret               (Status: 200)
/index                (Status: 200)
===============================================================
XXXX/XX/XX XX:XX:XX Finished
===============================================================

Обратите внимание на строку [+] Threads: 50 в выводе, которая подтверждает использование указанного вами количества потоков. Сканирование должно завершиться почти мгновенно из-за небольшого списка слов и локальной цели.

Наблюдение за увеличением скорости сканирования

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

Хотя предыдущие сканирования были очень быстрыми из-за небольшого списка слов и локального сервера, вы должны были заметить значительную разницу во времени, которое потребовалось для появления вывода. Когда вы увеличили количество потоков с 10 до 50, сканирование завершилось почти мгновенно.

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

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

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

Уменьшение количества потоков до 5 для более медленного сканирования

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

Выполните следующую команду в терминале:

gobuster dir -u http://127.0.0.1:8080 -w /tmp/wordlist.txt -t 5
  • -t 5: Устанавливает количество потоков равным 5, что вдвое меньше значения по умолчанию.

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

===============================================================
Gobuster vX.X.X-XXXXXX
===============================================================
[+] Url:            http://127.0.0.1:8080
[+] Threads:        5
[+] Wordlist:       /tmp/wordlist.txt
[+] Status codes:   200,204,301,302,307,401,403
[+] User Agent:     gobuster/X.X.X
[+] Timeout:        10s
===============================================================
XXXX/XX/XX XX:XX:XX Starting gobuster in directory enumeration mode
===============================================================
/admin                (Status: 200)
/login                (Status: 200)
/secret               (Status: 200)
/index                (Status: 200)
===============================================================
XXXX/XX/XX XX:XX:XX Finished
===============================================================

Строка [+] Threads: 5 подтверждает уменьшенное количество потоков. Даже с нашим небольшим списком слов вы должны заметить небольшую задержку по сравнению с предыдущими запусками. Это иллюстрирует прямую зависимость между количеством потоков и продолжительностью сканирования.

Понимание влияния потоков на целевой сервер

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

Высокое количество потоков (например, 50 или более):

  • Плюсы: Более быстрое завершение сканирования.
  • Минусы:
    • Увеличенная нагрузка на сервер: Одновременная отправка большого количества запросов может перегрузить целевой сервер, что потенциально приведет к отказу в обслуживании (DoS) или снижению производительности.
    • Ограничение скорости/блокировка: Многие веб-серверы и WAF (Web Application Firewalls) реализуют ограничение скорости для предотвращения атак методом перебора. Высокое количество потоков может быстро вызвать срабатывание этих механизмов защиты, что приведет к временной или постоянной блокировке вашего IP-адреса.
    • Сетевая перегрузка: Может потреблять значительную пропускную способность сети, особенно если цель находится удаленно.
    • Подозрение: Высокая частота запросов часто указывает на вредоносную активность и может предупредить команды безопасности.

Низкое количество потоков (например, 1-5):

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

Выбор правильного количества потоков: Оптимальное количество потоков зависит от нескольких факторов:

  • Пропускная способность целевого сервера: Какую нагрузку может выдержать сервер?
  • Сетевая задержка: Более высокая задержка может потребовать больше потоков для поддержания приемлемой скорости.
  • Политики ограничения скорости: Существуют ли какие-либо известные ограничения скорости или WAF?
  • Ваша цель: Приоритет отдается скорости или скрытности?

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

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

Резюме

В этой лабораторной работе вы успешно научились управлять скоростью сканирования Gobuster, регулируя количество потоков с помощью флага -t. Вы начали с запуска сканирования с использованием стандартных 10 потоков, затем увеличили их до 50, чтобы наблюдать значительное улучшение скорости, и, наконец, уменьшили до 5, чтобы увидеть замедление сканирования.

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