Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
domainim — Быстрый и всесторонний инструмент для сканирования корпоративных сетей | Kitploit
Инструменты/GitHubGitHub/pptx704/domainim
OSINT (Разведка открытых источников)РазведкаКартирование сетиСканирование портовПеречисление DNS и поддоменовСбор информацииТестирование на ПроникновениеАнализ DNS
GitHubpptx704/domainim

domainim

Быстрый и всесторонний инструмент для сканирования корпоративных сетей

Репозиторий
1381332 лет назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

DOMAINIM

Возможности • Использование • Установка • Использование • Участие • Дополнительные примечания

Domainim — это быстрый инструмент разведки доменов для сканирования организационных сетей. Инструмент предназначен для предоставления краткого обзора структуры организации с использованием таких методов, как OSINT, брутфорс, DNS-резолвинг и т.д.

Возможности

Текущие возможности (v1.0.1)-

  • Перечисление поддоменов (2 движка + брутфорс)
  • Удобный для пользователя вывод
  • Разрешение A-записей (IPv4)

  • Перечисление виртуальных хостов

  • Обратный DNS-запрос

  • Обнаружение wildcard-поддоменов (для брутфорса)

  • Базовое сканирование TCP-портов

  • Принимает поддомены в качестве входных данных

  • Экспорт результатов в JSON-файл

Некоторые возможности находятся в разработке. Подробнее см. в разделе Запланированные функции.

Проект вдохновлён Sublist3r. Модуль сканера портов во многом основан на NimScan.

Установка

Вы можете собрать этот репозиторий из исходников-

  • Клонируйте репозиторий
root@kitploit:~
git clone [email protected]:pptx704/domainim
  • Соберите бинарник
root@kitploit:~
nimble build
  • Запустите бинарник
root@kitploit:~
./domainim <domain> [--ports=<ports>]

Или же вы можете просто скачать бинарник со страницы релизов. Имейте в виду, что бинарник протестирован только на системах на базе Debian.

Использование

root@kitploit:~
./domainim <domain> [--ports=<ports> | -p:<ports>] [--wordlist=<filename> | l:<filename> [--rps=<int> | -r:<int>]] [--dns=<dns> | -d:<dns>] [--out=<filename> | -o:<filename>]
  • <domain> — домен, который нужно перечислить. Также может быть поддоменом.
  • --ports | -p — строковое указание сканируемых портов. Может быть одним из следующих:
    • all — сканировать все порты (1-65535)
    • none — пропустить сканирование портов (по умолчанию)
    • t<n> — сканировать top n портов (аналогично nmap). Например, t100 сканирует топ-100 портов. Максимальное значение — 5000. Если n больше 5000, оно будет установлено в 5000.
    • одно значение — сканировать один порт. Например, 80 сканирует порт 80
    • диапазон значений — сканировать диапазон портов. Например, 80-100 сканирует порты с 80 по 100
    • значения, разделённые запятыми — сканировать несколько портов. Например, 80,443,8080 сканирует порты 80, 443 и 8080
    • комбинация — комбинация вышеуказанных. Например, 80,443,8080-8090,t500 сканирует порты 80, 443, с 8080 по 8090 и топ-500 портов
  • — адрес DNS-сервера. Должен быть действительным IPv4-адресом и может опционально содержать номер порта:

Примеры

  • ./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 --outfile=results.json
  • ./domainim mysite.com --ports=t50,5432,7000-9000 --dns=1.1.1.1

Меню справки можно вызвать с помощью ./domainim --help или ./domainim -h.

root@kitploit:~
Usage:
    domainim <domain> [--ports=<ports> | -p:<ports>] [--wordlist=<filename> | l:<filename> [--rps=<int> | -r:<int>]] [--dns=<dns> | -d:<dns>] [--out=<filename> | -o:<filename>]
    domainim (-h | --help)

Options:
    -h, --help              Показать эту справку.
    -p, --ports             Порты для сканирования. [по умолчанию: `none`]
                            Может быть `all`, `none`, `t<n>`, одним значением, диапазоном, комбинацией
    -l, --wordlist          Список слов для брутфорса поддоменов. Брутфорс пропускается для недействительного файла.
    -d, --dns               IP и порт для DNS-резолвера. Должен быть действительным IPv4 с опциональным портом [по умолчанию: системный]
    -r, --rps               DNS-запросов в секунду [по умолчанию: 1024 req/s]
    -o, --out               JSON-файл, в который будет сохранён вывод. Имя файла должно заканчиваться на `.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 -t:1500 -o:results.json

Схема JSON для результатов выглядит следующим образом:

root@kitploit:~
[
  {
    "subdomain": string,
    "data": [
      "ipv4": string,
      "vhosts": [string],
      "reverse_dns": string,
      "ports": [int]
    ]
  }
]

Пример JSON для nmap.org можно найти здесь.

Участие

Принимаются contributions. Не стесняйтесь открывать pull request или issue.

Запланированные функции

  • Сканирование TCP-портов
  • Поддержка сканирования UDP-портов
  • Разрешение AAAA-записей (IPv6)
  • Пользовательский DNS-сервер
  • Добавлен брутфорс поддоменов с использованием списка слов
  • Принудительный брутфорс (даже если найден wildcard-поддомен)
  • Добавить больше движков для перечисления поддоменов
  • Вывод в файл (JSON)
  • Перечисление нескольких доменов
  • Подбор директорий и файлов

Прочее

  • Обновлён подробный вывод при возникновении ошибок (v0.2.0)
  • Показывать прогресс-бар для длительных операций
  • Добавить индивидуальный прогресс-бар для сканирования портов
  • Добавить тесты
  • Добавить комментарии и docstring

Дополнительные примечания

Этот проект всё ещё находится на ранней стадии. Я осознаю несколько ограничений.

Два движка, которые я использую (называю их движками, потому что так делает Sublist3r), в настоящее время имеют некоторое ограничение на количество ответов. dnsdumpster может получить до 100 поддоменов. crt.sh также рандомизирует результаты при слишком большом их количестве. Ещё одна проблема с crt.sh — иногда он возвращает SQL-ошибки. Поэтому для некоторых доменов результаты могут различаться при разных запусках. В будущем я планирую добавить больше движков (по крайней мере, движок брутфорса).

Сканер портов имеет только тайм-аут время ответа ping + 750 мс. Это может привести к ложноотрицательным результатам. Поскольку domainim предназначен не для сканирования портов, а для быстрого обзора, такие случаи приемлемы. Однако я планирую добавить флаг для увеличения тайм-аута. По той же причине фильтрованные порты не отображаются. Для более полного сканирования портов рекомендую использовать Nmap. Domainim также не обходит ограничение скорости (если оно есть).

Может показаться, что способ вывода vhost-имён приводит к повторению.

Возможно, было бы лучше печатать так:

root@kitploit:~
ack.nmap.org, issues.nmap.org, nmap.org, research.nmap.org, scannme.nmap.org, svn.nmap.org, www.nmap.org
  ↳ 45.33.49.119
    ↳ Обратный DNS: ack.nmap.org. 

Но ранее, во время тестирования, я обнаружил случаи, когда не все IP-адреса были общими для одного и того же набора vhost-имён. Поэтому я решил оставить так, как есть.

DNS-сервер может иметь некоторое ограничение скорости. Поэтому я добавил случайные задержки (от 0 до 300 мс) для разрешения IPv4 для каждого запроса. Это делается для того, чтобы DNS-сервер получал запросы не все сразу, а более естественным образом. Для метода брутфорса значение по умолчанию составляет от 0 до 1000 мс, но его можно изменить с помощью флага --rps | -t.

Одно ограничение, которое меня беспокоит, заключается в том, что DNS-резолвер не возвращает все IP-адреса для домена. Поэтому необходимо делать несколько запросов, чтобы получить все (или большинство) IP-адресов. Но опять же, невозможно узнать, сколько IP-адресов у домена. Мне ещё предстоит придумать решение этой проблемы. Кроме того, nim-ndns не поддерживает CNAME-записи. Поэтому, если у домена есть CNAME-запись, она не будет разрешена. Я жду ответа от автора по этому поводу.

На данный момент брутфорс пропускается, если найден возможный wildcard-поддомен. Это связано с тем, что если у домена есть wildcard-поддомен, брутфорс будет разрешать IPv4 для всех возможных поддоменов. Однако при этом будут пропущены и действительные поддомены (например, scanme.nmap.org будет пропущен, даже если он не является wildcard-значением). Позже я добавлю флаг --force-brute | -fb, чтобы принудительно выполнять брутфорс.

То же самое верно для перечисления VHost для входных поддоменов. Поскольку возвращаются URL-адреса, заканчивающиеся на заданный поддомен, поддомены аналогичных доменов не учитываются. Например, scannme.nmap.org не будет выведен для ack.nmap.org, но something.ack.nmap.org может быть. Я могу искать все поддомены nmap.org, но это противоречит цели использования поддомена в качестве входных данных.

Лицензия

Лицензия MIT. Полный текст см. в LICENSE.

Скачать инструмент
--dns | -d
  • a.b.c.d — использовать DNS-сервер по адресу a.b.c.d на порту 53
  • a.b.c.d#n — использовать DNS-сервер по адресу a.b.c.d на порту e
  • --wordlist | -l — путь к файлу со списком слов. Используется для брутфорса поддоменов. Если файл недействителен, брутфорс будет пропущен. Вы можете получить список слов из SecLists. Список слов также предоставлен на странице релизов.
  • --rps | -r — количество запросов в секунду во время брутфорса. Значение по умолчанию — 1024 req/s. Следует отметить, что DNS-запросы выполняются пакетами, и следующий пакет выполняется только после завершения предыдущего. Поскольку запросы могут быть ограничены по скорости, увеличение значения не всегда гарантирует более быстрые результаты.
  • --out | -o — путь к выходному файлу. Вывод будет сохранён в формате JSON. Имя файла должно заканчиваться на .json.