Как за секунду извлечь все домены и поддомены из гигабайтов сырых логов без использования тяжелых парсеров?
Во время разведки (Recon) или анализа инцидентов приходится прочесывать гигантские текстовые дампы, DNS-кеши и логи веб-серверов. Использование стандартных утилит grep и sed с регулярными выражениями позволяет мгновенно профильтровать шум и получить чистый список доменных имен.
Ищем все строки, похожие на домены, и вырезаем только совпадения с помощью grep:
$ grep -oE '([a-zA-Z0-9-]+\.)+[a-zA-Z]{2,}' access.log > raw_domains.txt
Очищаем список от дубликатов, сортируем результаты и приводим всё к нижнему регистру:
$ sed 's/\.$//' raw_domains.txt | tr '[:upper:]' '[:lower:]' | sort -u > clean_domains.txt
Проверяем размер полученного списка и смотрим первые найденные уникальные поддомены:
$ wc -l clean_domains.txt && head -n 5 clean_domains.txt
Важно: регулярное выражение извлекает только валидные по синтаксису FQDN, но не проверяет их реальную существование или доступность — выполнять только в изолированной среде / по разрешению.
🔥 Экономит часы ручной работы при разведке внешней поверхности атаки и разборе сетевых дампов в CLI.
➡️ Hacking Ready | #совет
Во время разведки (Recon) или анализа инцидентов приходится прочесывать гигантские текстовые дампы, DNS-кеши и логи веб-серверов. Использование стандартных утилит grep и sed с регулярными выражениями позволяет мгновенно профильтровать шум и получить чистый список доменных имен.
Ищем все строки, похожие на домены, и вырезаем только совпадения с помощью grep:
$ grep -oE '([a-zA-Z0-9-]+\.)+[a-zA-Z]{2,}' access.log > raw_domains.txt
Очищаем список от дубликатов, сортируем результаты и приводим всё к нижнему регистру:
$ sed 's/\.$//' raw_domains.txt | tr '[:upper:]' '[:lower:]' | sort -u > clean_domains.txt
Проверяем размер полученного списка и смотрим первые найденные уникальные поддомены:
$ wc -l clean_domains.txt && head -n 5 clean_domains.txt
Важно: регулярное выражение извлекает только валидные по синтаксису FQDN, но не проверяет их реальную существование или доступность — выполнять только в изолированной среде / по разрешению.
🔥 Экономит часы ручной работы при разведке внешней поверхности атаки и разборе сетевых дампов в CLI.
➡️ Hacking Ready | #совет