
Lepus — это инструмент для перечисления поддоменов, проверки возможности перехвата поддоменов и сканирования портов — и, чёрт возьми, он быстр!
lepus.py yahoo.com
Режимы перечисления — это различные способы, которые lepus использует для идентификации поддоменов для заданного домена. Эти режимы:
Кроме того:
Режим сборщиков собирает поддомены из следующих сервисов:
| Сервис | Требуется API |
|---|---|
| Censys | Да |
| CertSpotter | Нет |
| CRT | Нет |
| DNSTrails | Да |
| FOFA | Да |
| Google Transparency | Нет |
| HackerTarget | Нет |
| PassiveTotal | Да |
| Project Discovery Chaos | Да |
| Project Crobat | Нет |
| Project Sonar | Нет |
| Riddler | Да |
| Shodan | Да |
| Spyse | Да |
| ThreatCrowd | Нет |
| ThreatMiner | Нет |
| VirusTotal | Да |
| Wayback Machine | Нет |
| ZoomEye | Да |
Вы можете добавить свои ключи API в файл config.ini.
Модуль сборщиков будет запускаться по умолчанию в lepus. Если вы не хотите использовать сборщики во время выполнения lepus (чтобы не исчерпать лимиты ключей API), вы можете использовать аргумент -nc или --no-collectors.
Режим словаря можно использовать, когда вы хотите предоставить lepus список поддоменов. Вы можете использовать аргумент -w или --wordlist, за которым следует имя файла. С lepus поставляется собственный список, расположенный в lists/subdomains.txt. Пример запуска:
lepus.py -w lists/subdomains.txt yahoo.com
Режим перестановок выполняет изменения в списке идентифицированных поддоменов. Для каждого поддомена выполняется ряд перестановок на основе файла lists/words.txt. Вы также можете предоставить собственный файл со словами для перестановок с помощью аргумента -pw или --permutation-wordlist, после которого указывается имя файла. Пример запуска:
lepus.py --permutate yahoo.com
или
lepus.py --permutate -pw customsubdomains.txt yahoo.com
Режим обратного DNS собирает все IP-адреса, которые были разрешены, и выполняет обратный DNS-запрос для каждого из них, чтобы обнаружить больше поддоменов. Например, если www.example.com разрешается в 1.2.3.4, lepus выполнит обратный DNS для 1.2.3.4 и соберёт любые другие поддомены, принадлежащие example.com, например www2, internal или oldsite.
Чтобы запустить модуль обратного DNS, используйте аргумент --reverse. Кроме того, можно использовать --ripe (или -ripe), чтобы указать модулю запрашивать базу данных RIPE, используя домен второго уровня для поиска возможных сетевых диапазонов. Более того, lepus поддерживает аргумент --ranges (или -r). Вы можете использовать его для выполнения обратных DNS-запросов к CIDR, принадлежащим целевому домену.
По умолчанию этот модуль учитывает все ранее определённые IP-адреса, затем заданные диапазоны, затем диапазоны, определённые через базу данных RIPE. Если вы хотите запустить модуль только для указанных или определённых через RIPE диапазонов, а не для всех уже определённых IP-адресов, используйте аргумент --only-ranges (-or).
Пример запуска:
lepus.py --reverse yahoo.com
или
lepus.py --reverse -ripe -r 172.216.0.0/16,183.177.80.0/23 yahoo.com
или только для определённых или определённых через RIPE диапазонов
lepus.py --reverse -or -ripe -r 172.216.0.0/16,183.177.80.0/23 yahoo.com
Подсказка: lepus будет идентифицировать ASN и Сети во время перечисления, поэтому вы также можете использовать эти диапазоны для обнаружения дополнительных поддоменов при последующем запуске.
С помощью этого модуля Lepus будет использовать цепи Маркова для самообучения и последующей генерации поддоменов на основе уже известных. Чем больше общая поверхность, тем лучше инструмент сможет обучиться и, соответственно, тем лучше будут результаты.
Модуль активируется аргументом --markovify. Параметры также включают размер состояния Маркова, максимальную длину сгенерированного кандидата и количество генерируемых кандидатов. Предопределённые значения — 3, 5 и 5 соответственно. Эти аргументы можно изменить с помощью -ms (--markov-state), -ml (--markov-length) и -mq (--markov-quantity) в соответствии с вашими потребностями. Имейте в виду, что чем больше эти значения, тем больше времени потребуется Lepus для генерации кандидатов.
Следует отметить, что разные выполнения этого модуля могут порождать разных кандидатов, поэтому не стесняйтесь запускать его несколько раз подряд. Имейте в виду, что чем выше значения -ms, -ml и -mq, тем больше времени потребуется для генерации кандидатов.
lepus.py --markovify yahoo.com
или
lepus.py --markovify -ms 5 -ml 10 -mq 10
Lepus имеет список сигнатур для определения возможности перехвата домена. Вы можете использовать его, указав аргумент --takeover. Этот модуль также поддерживает уведомления Slack после обнаружения потенциального перехвата, добавив токен Slack в файл config.ini. Проверки выполняются для следующих сервисов:
Модуль сканирования портов проверяет открытые порты на целевом хосте и записывает их в результаты. Вы можете использовать аргумент --portscan, который по умолчанию сканирует порты 80, 443, 8000, 8080, 8443. Вы также можете использовать пользовательские порты или выбрать предопределённый набор портов.