Введение
В этой лабораторной работе вы научитесь эффективно использовать Gobuster для перечисления DNS-субдоменов, уделяя особое внимание работе с записями DNS с подстановочными знаками (wildcard DNS records). Записи DNS с подстановочными знаками часто могут приводить к большому количеству ложных срабатываний при сканировании субдоменов, что затрудняет идентификацию легитимных субдоменов. Gobuster предоставляет флаг --wildcard, который помогает отфильтровывать эти ответы, обеспечивая более чистые и точные результаты. Вы определите домен с записью с подстановочными знаками, понаблюдаете за влиянием стандартного сканирования, а затем используете флаг --wildcard, чтобы увидеть разницу.
Определение домена с записью DNS с подстановочными знаками
На этом шаге вы определите домен, который использует запись DNS с подстановочными знаками (wildcard DNS record). Запись DNS с подстановочными знаками (*.example.com) означает, что любой субдомен, у которого нет конкретной записи DNS, будет разрешаться в предопределенный IP-адрес. Это может вызвать проблемы при перечислении субдоменов, поскольку многие несуществующие субдомены будут разрешаться, что приведет к ложным срабатываниям.
Мы будем использовать dig для запроса несуществующего субдомена для нашего целевого домена wildcard.labex.io, чтобы подтвердить его поведение с подстановочными знаками.
Сначала давайте проверим содержимое файла нашего целевого домена:
cat ~/project/target_domain.txt
В качестве вывода вы должны увидеть wildcard.labex.io.
Теперь давайте запросим несуществующий субдомен, например, nonexistent.wildcard.labex.io, используя dig. Если он разрешается в IP-адрес, это указывает на наличие записи с подстановочными знаками.
dig nonexistent.wildcard.labex.io
Наблюдайте за разделом ANSWER SECTION в выводе. Если вы увидите IP-адрес для nonexistent.wildcard.labex.io, это подтвердит наличие записи DNS с подстановочными знаками.
; <<>> DiG 9.18.1-1ubuntu1.7-Ubuntu <<>> nonexistent.wildcard.labex.io
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12345
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
;; QUESTION SECTION:
;nonexistent.wildcard.labex.io. IN A
;; ANSWER SECTION:
nonexistent.wildcard.labex.io. 300 IN A 192.0.2.123 ## Example IP, will vary
;; Query time: 0 msec
;; SERVER: 127.0.0.53#53(127.0.0.53) (UDP)
;; WHEN: Mon Jan 01 12:00:00 UTC 2023
;; MSG SIZE rcvd: 78
Наличие ANSWER SECTION для явно несуществующего субдомена подтверждает, что wildcard.labex.io имеет запись DNS с подстановочными знаками.
Выполнение стандартного сканирования DNS и наблюдение за ложными срабатываниями
На этом шаге вы выполните стандартное сканирование перечисления DNS-субдоменов на wildcard.labex.io с помощью Gobuster без какого-либо фильтрации подстановочных знаков. Это продемонстрирует, как записи DNS с подстановочными знаками могут приводить к многочисленным ложным срабатываниям, затрудняя различение между легитимными субдоменами и теми, которые разрешаются подстановочным знаком.
Мы будем использовать команду gobuster dns с флагом -d для домена и флагом -w для нашего списка слов (wordlist).
gobuster dns -d wildcard.labex.io -w ~/project/wordlist.txt
Наблюдайте за выводом. Скорее всего, вы увидите, что почти каждая запись из вашего списка слов разрешается в IP-адрес, даже если это не "реальный" субдомен. Это происходит потому, что запись DNS с подстановочными знаками перехватывает все эти запросы и разрешает их.
Gobuster v3.6
by OJ <oj@zerokopter.com>
[+] Url: wildcard.labex.io
[+] Threads: 10
[+] Wordlist: /home/labex/project/wordlist.txt
[+] Timeout: 10s
[+] User Agent: gobuster/3.6
2023/01/01 12:00:00 Starting gobuster
Found: test.wildcard.labex.io (192.0.2.123)
Found: dev.wildcard.labex.io (192.0.2.123)
Found: www.wildcard.labex.io (192.0.2.123)
Found: mail.wildcard.labex.io (192.0.2.123)
Found: blog.wildcard.labex.io (192.0.2.123)
Found: admin.wildcard.labex.io (192.0.2.123)
Found: api.wildcard.labex.io (192.0.2.123)
Found: cdn.wildcard.labex.io (192.0.2.123)
Found: ftp.wildcard.labex.io (192.0.2.123)
Found: vpn.wildcard.labex.io (192.0.2.123)
2023/01/01 12:00:05 Finished
Как вы можете видеть, все записи из списка слов были "найдены", что является обманчивым из-за записи DNS с подстановочными знаками. Это подчеркивает проблему ложных срабатываний при перечислении субдоменов.
Повторное выполнение сканирования с флагом --wildcard
На этом шаге вы повторно выполните сканирование Gobuster DNS, но на этот раз вы включите флаг --wildcard. Этот флаг указывает Gobuster выполнить первоначальную проверку записей DNS с подстановочными знаками, а затем отфильтровать любые последующие результаты, которые разрешаются в тот же IP-адрес, что и подстановочный знак. Это значительно уменьшает количество ложных срабатываний и обеспечивает гораздо более чистый вывод.
Выполните команду Gobuster еще раз, добавив флаг --wildcard:
gobuster dns -d wildcard.labex.io -w ~/project/wordlist.txt --wildcard
Обратите пристальное внимание на вывод. Вы должны заметить, что Gobuster сначала определяет IP-адрес подстановочного знака, а затем приступает к фильтрации результатов, которые ему соответствуют.
Gobuster v3.6
by OJ <oj@zerokopter.com>
[+] Url: wildcard.labex.io
[+] Threads: 10
[+] Wordlist: /home/labex/project/wordlist.txt
[+] Timeout: 10s
[+] User Agent: gobuster/3.6
[+] Wildcard DNS detected. Filtering responses for 192.0.2.123 ## Example IP
2023/01/01 12:00:00 Starting gobuster
2023/01/01 12:00:05 Finished
Обратите внимание на строку [+] Wildcard DNS detected. Filtering responses for 192.0.2.123. Это указывает на то, что Gobuster успешно определил IP-адрес подстановочного знака и теперь активно отфильтровывает результаты, которые разрешаются в него. В этом конкретном примере, поскольку все субдомены разрешаются в IP-адрес подстановочного знака, вы можете не увидеть никаких записей "Found", что является правильным поведением для домена с полной настройкой подстановочных знаков и отсутствием легитимных субдоменов в вашем списке слов.
Наблюдение за тем, как Gobuster отфильтровывает ответы подстановочных знаков
На этом шаге мы глубже изучим, как работает флаг --wildcard в Gobuster, наблюдая за его поведением в несколько измененном сценарии. В то время как наш предыдущий пример демонстрировал полную фильтрацию, важно понимать механизм. Gobuster сначала запрашивает случайный несуществующий субдомен (например, randomstring.yourdomain.com). Если этот запрос разрешается в IP-адрес, Gobuster считает этот IP-адрес IP-адресом подстановочного знака. Любой последующий субдомен, найденный во время перечисления, который разрешается в тот же IP-адрес подстановочного знака, будет отфильтрован. Будут сообщаться только субдомены, разрешающиеся в другой IP-адрес.
Чтобы проиллюстрировать это, давайте представим, что наш домен wildcard.labex.io также имел легитимный субдомен www.wildcard.labex.io, указывающий на другой IP-адрес. В этом случае Gobuster по-прежнему отфильтровывал бы все остальные записи подстановочных знаков, но сообщал бы о www.wildcard.labex.io.
Для целей этой лаборатории, поскольку wildcard.labex.io настроен так, что все субдомены разрешаются в один и тот же IP-адрес подстановочного знака, вывод из предыдущего шага (где не было "найдено" субдоменов) является ожидаемым и правильным поведением, демонстрирующим эффективную фильтрацию.
Давайте повторно выполним команду и сосредоточимся на начальной строке вывода, подтверждающей обнаружение подстановочного знака:
gobuster dns -d wildcard.labex.io -w ~/project/wordlist.txt --wildcard
Ключевая строка для наблюдения: [+] Wildcard DNS detected. Filtering responses for <IP_ADDRESS>. Это подтверждает, что Gobuster определил IP-адрес подстановочного знака и активно использует его для фильтрации результатов.
Gobuster v3.6
by OJ <oj@zerokopter.com>
[+] Url: wildcard.labex.io
[+] Threads: 10
[+] Wordlist: /home/labex/project/wordlist.txt
[+] Timeout: 10s
[+] User Agent: gobuster/3.6
[+] Wildcard DNS detected. Filtering responses for 192.0.2.123 ## Example IP
2023/01/01 12:00:00 Starting gobuster
2023/01/01 12:00:05 Finished
Этот шаг укрепляет понимание того, что флаг --wildcard в Gobuster имеет решающее значение для получения точных результатов перечисления субдоменов на доменах с записями DNS с подстановочными знаками.
Анализ более чистых и точных результатов
На этом заключительном шаге вы проанализируете разницу между результатами, полученными при стандартном сканировании Gobuster, и сканировании, выполненном с флагом --wildcard. Цель состоит в том, чтобы оценить, как флаг --wildcard обеспечивает более чистые и точные результаты, устраняя ложные срабатывания.
Вспомните вывод из Шага 2 (без --wildcard):
Каждая запись из списка слов была помечена как "Found" (найдено), хотя они разрешались только из-за записи DNS с подстановочным знаком. Этот вывод является избыточным и делает невозможным идентификацию реально существующих субдоменов.
Вспомните вывод из Шагов 3 и 4 (с --wildcard):
Gobuster явно указал [+] Wildcard DNS detected. Filtering responses for <IP_ADDRESS>. В нашем конкретном случае, поскольку все субдомены разрешаются в IP-адрес подстановочного знака, записи "Found" не были сообщены. Это правильный и точный результат, указывающий на то, что ни один из субдоменов в нашем списке слов не является легитимным и не разрешается в уникальный IP-адрес.
Если бы существовали легитимные субдомены (например, www.wildcard.labex.io, разрешающийся в другой IP-адрес, отличный от подстановочного знака), они были бы перечислены в выводе при использовании флага --wildcard. Это демонстрирует мощь флага в различении реальных субдоменов от записей подстановочных знаков.
Флаг --wildcard необходим для эффективного и точного перечисления субдоменов, особенно при работе с большими списками слов и доменами, которые активно используют записи DNS с подстановочными знаками. Он экономит время, уменьшая необходимость ручной фильтрации ложных срабатываний, и гарантирует, что ваши усилия по перечислению сосредоточены на действительно релевантных субдоменах.
Вы успешно научились идентифицировать записи DNS с подстановочными знаками и использовать флаг --wildcard в Gobuster для получения точных результатов перечисления субдоменов.
Резюме
В этой лаборатории вы получили практический опыт работы с записями DNS с подстановочными знаками при перечислении субдоменов с помощью Gobuster. Вы научились идентифицировать домены с записями подстановочных знаков, наблюдали, как стандартные сканирования дают ложные срабатывания, и, самое главное, освоили использование флага --wildcard для фильтрации этих вводящих в заблуждение результатов. Этот навык имеет решающее значение для всех, кто проводит разведку или тестирование на проникновение, поскольку он обеспечивает точность и эффективность вашего процесса обнаружения субдоменов. Применяя флаг --wildcard, вы можете сосредоточиться на легитимных субдоменах, экономя ценное время и ресурсы.
