
Быстрый и всесторонний инструмент для сканирования корпоративных сетей
Возможности • Использование • Установка • Использование • Участие в разработке • Дополнительные примечания
Domainim — это быстрый инструмент разведки доменов для сканирования организационных сетей. Инструмент предназначен для получения краткого обзора структуры организации с использованием таких методов, как OSINT, брутфорсинг, разрешение DNS и т. д.
Текущие возможности (v1.3.0)-

Перечисление виртуальных имён хостов
Обратный DNS-запрос
Обнаружение поддоменов с подстановочными знаками. Пассивные результаты, которые разрешаются только в IP-адреса подстановочных знаков, скрываются, если они не были обнаружены в TLS-сертификате. Брутфорсинг можно принудительно включить с помощью --force-brute, в этом случае результаты, разрешающиеся только в IP-адреса подстановочных знаков, отбрасываются
Базовое сканирование TCP-портов
Поддомены принимаются в качестве входных данных
Экспорт результатов в файл JSON
Некоторые возможности находятся в разработке. Подробнее см. в разделе Планируемые возможности.
Проект вдохновлён Sublist3r. Модуль сканера портов во многом основан на NimScan.
Вы можете собрать этот репозиторий из исходного кода-
git clone [email protected]:pptx704/domainim
nimble build
./domainim <domain> [--ports=<ports>]
Или вы можете просто скачать бинарный файл со страницы релизов. Учтите, что бинарный файл протестирован только на системах на базе Debian.
./domainim <domain> [--ports=<ports> | -p:<ports>] [--wordlist=<filename> | -l:<filename> [--rps=<int> | -r:<int>] [--force-brute | -f]] [--dns=<dns> | -d:<dns>] [--out=<filename> | -o:<filename>]
<domain> — домен, который нужно перечислить. Это также может быть поддомен.-- ports | -p — строковое указание портов для сканирования. Может быть одним из следующих:
all — сканировать все порты (1-65535)none — пропустить сканирование портов (по умолчанию)t<n> — сканировать n самых распространённых портов (аналогично nmap). То есть t100 сканирует топ-100 портов. Максимальное значение — 5000. Если n больше 5000, оно будет установлено в 5000.80 сканирует порт 8080-100 сканирует порты с 80 по 10080,443,8080 сканирует порты 80, 443 и 808080,443,8080-8090,t500 сканирует порты 80, 443, с 8080 по 8090 и топ-500 портов--dns | -d — адрес DNS-сервера. Должен быть корректным IPv4-адресом и может опционально содержать номер порта:
a.b.c.d — использовать DNS-сервер по адресу a.b.c.d на порту 53a.b.c.d#n — использовать DNS-сервер по адресу a.b.c.d на порту n--wordlist | -l — путь к файлу словаря. Используется для брутфорса поддоменов. Если файл некорректен, брутфорс будет пропущен. Пустые строки и строки, начинающиеся с #, игнорируются. Словарь можно получить из SecLists. Словарь также предоставлен на странице релизов.--force-brute | -f — выполнять брутфорс даже при обнаружении wildcard-записи. Поддомены, которые разрешаются только в wildcard-IP, отбрасываются.--rps | -r — количество запросов в секунду во время брутфорса. Значение по умолчанию — 1024 req/s. Следует отметить, что DNS-запросы выполняются пакетами, и следующий пакет выполняется только после завершения предыдущего. Поскольку запросы могут быть ограничены по частоте, увеличение значения не всегда гарантирует более быстрый результат.--out | -o — путь к выходному файлу. Вывод будет сохранён в формате JSON. Имя файла должно заканчиваться на .json.Примеры
./domainim nmap.org --ports=all./domainim google.com --ports=none --dns=8.8.8.8#53./domainim pptx704.com --ports=t100 --wordlist=wordlist.txt --rps=1500./domainim pptx704.com --ports=t100 --wordlist=wordlist.txt --out=results.json./domainim nmap.org --wordlist=wordlist.txt --force-brute./domainim mysite.com --ports=t50,5432,7000-9000 --dns=1.1.1.1Меню справки можно открыть с помощью ./domainim --help или ./domainim -h.
Usage:
domainim <domain> [--ports=<ports> | -p:<ports>] [--wordlist=<filename> | -l:<filename> [--rps=<int> | -r:<int>] [--force-brute | -f]] [--dns=<dns> | -d:<dns>] [--out=<filename> | -o:<filename>]
domainim (-h | --help)
Options:
-h, --help Show this screen.
-p, --ports Ports to scan. [default: `none`]
Can be `all`, `none`, `t<n>`, single value, range value, combination
-l, --wordlist Wordlist for subdomain bruteforcing. Bruteforcing is skipped for invalid file.
-f, --force-brute Bruteforce even if a wildcard record is found. Results resolving only to wildcard IPs are discarded.
-d, --dns IP and Port for DNS Resolver. Should be a valid IPv4 with an optional port [default: system default]
-r, --rps DNS queries to be made per second [default: 1024 req/s]
-o, --out JSON file where the output will be saved. Filename must end with `.json`
Examples:
domainim domainim.com -p:t500 -l:wordlist.txt --dns:1.1.1.1#53 --out=results.json
domainim sub.domainim.com --ports=all --dns:8.8.8.8 -l:wordlist.txt -r:1500 -f -o:results.json
Схема JSON для результатов выглядит следующим образом:
[
{
"subdomain": string,
"data": [
{
"ipv4": string,
"vhosts": [string],
"reverse_dns": string,
"ports": [int]
}
]
}
]
Пример json для nmap.org можно найти здесь.
Вклад приветствуется. Не стесняйтесь открывать pull request или issue.
Этот проект всё ещё находится на ранней стадии. Есть несколько ограничений, о которых я знаю.