IVRE


Описание IVRE

IVRE (Instrument de veille sur les réseaux extérieurs) или DRUNK (Dynamic Recon of UNKnown networks — динамическая разведка неизвестных сетей) — это фреймворк разведки сетей, включает два модуля: один для пассивной (основанной на p0f или основанной на Bro) и второй для активной разведки (основывается на Nmap и немного на ZMap).

Домашняя страница: https://ivre.rocks/

Автор: Pierre LALET

Лицензия: GPL

Справка по IVRE

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

ivre [КОМАНДА]
доступные команды:
  analyzercli
  getmoduli
  httpd
  ipdata
  ipinfo
  iphost
  p0f2db
  passiverecon2db
  passivereconworker
  plotdb
  runscans
  runscansagent
  runscansagentdb
  scan2db
  scancli
  scanstatus

Для получения помощи по команда наберите

ivre help [КОМАНДА]

Справка по командам (модулям) IVRE

analyzercli

Команда не документирована и(или) не дописана и(или) является составной частью другой программы.

getmoduli

Вывод этого инструмента может использоваться с инструментом fastgcd (доступен здесь https://factorable.net/resources.html) для эффективного выполнения атаки описанной в заметке "Mining your Ps and Qs: Detection of Widespread Weak Keys in Network Devices" («Высший пилотаж выявления широко распространённых слабых ключей в сетевых устройствах») (https://factorable.net/paper.html). Эта опция будет действительно быстрее, чем отдельный инструмент по атаке ключей.

Чтобы это сделать, вам нужно очистить вывод от информации после moduli. Для этого фокуса достаточно sed с 's# .*##'.

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


ivre getmoduli [-h] [-f ФИЛЬТЕР] [--passive-ssl] [--active-ssl]
                      [--active-ssh]

httpd

Эта программа запускает простой httpd сервер, для обеспечения доступа «из коробки» к пользовательскому веб-интерфейсу.

Этот скрипт следует использовать только для целей тестирования. Для рабочих задач следует использовать «реальный» веб-сервер (IVRE успешно протестирована и с Apache, и с Nginx).

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

ivre httpd [-h] [--bind-address ПРИВЯЗАННЫЙ_АДРЕС] [--port ПОРТ]
опциональные аргументы:
  -h, --help            показать справку и выйти
  --bind-address ПРИВЯЗАТЬ_АДРЕC, -b ПРИВЯЗАТЬ_АДРЕC
                        (IP) Адрес для привязки к серверу (по умолчанию
                        к 127.0.0.1).
  --port ПОРТ, -p ПОРТ  (TCP) Для использования (по умолчанию это 80)

ipdata

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

ivre ipdata [-h] [--init] [--ensure-indexes] [--download]
                   [--country-csv ФАЙЛ] [--asnum-csv ФАЙЛ] [--city-csv ФАЙЛ]
                   [--location-csv ФАЙЛ] [--import-all]
                   [--dont-feed-ipdata-cols] [--quiet]
                   [IP [IP ...]]

Этот инструмент может использоваться для управления связанными с IP адресами данными, такими как номер AS и информация о стране.

позиционные аргументы:
  IP                    Показать результаты по указанным IP адресам.

опциональные аргументы:
  -h, --help            показать справку и выйти
  --init, --purgedb     Очистить или создать и инициализировать базу данных.
  --ensure-indexes      Создать пропущенные индексы (заблокирует базу данных).
  --download            Извлечь информацию из всех файлов данных.
  --country-csv ФАЙЛ    Импортировать ФАЙЛ в базу данных стран.
  --asnum-csv ФАЙЛ      Импортировать ФАЙЛ в базу данных AS.
  --city-csv ФАЙЛ       Импортировать ФАЙЛ в базу данных городов.
  --location-csv FILE   Импортировать ФАЙЛ в базу данных локаций.
  --import-all          Импортировать все файлы в базы данных.
  --dont-feed-ipdata-cols
                        Не скармливать данные другим тематическим БД (в
                        настоящее время это оказывает эффект только на пассивные БД)
  --quiet, -q           Тихий режим.

ipinfo

Доступ и запрос к пассивным базам данных.

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

ivre ipinfo [-h] [--init] [--ensure-indexes] [--sensor СЕНСОР]
                   [--country СТРАНА] [--asnum ASNUM] [--torcert] [--dns DNS]
                   [--dnssub DNSSUB] [--cert CERT] [--basicauth] [--auth]
                   [--java] [--ua UA] [--ftp] [--pop] [--timeago TIMEAGO]
                   [--timeagonew TIMEAGONEW] [--short] [--tail COUNT]
                   [--tailnew COUNT] [--tailf] [--tailfnew] [--count]
                   [--explain] [--distinct FIELD] [--delete]
                   [ips [ips ...]]
позиционные аргументы:
  ips                   Отобразить результаты по указанным IP адресам или диапазонам.

Опциональные аргументы:
  -h, --help            показать справку
  --init, --purgedb     Очистить или создать и инициализировать базу данных.
  --ensure-indexes      Создать пропущенные индексы (заблокирует базу данных).
  --sensor СЕНСОР
  --country СТРАНА
  --asnum ASNUM
  --torcert
  --dns DNS
  --dnssub DNSSUB
  --cert CERT
  --basicauth
  --auth
  --java
  --ua UA
  --ftp
  --pop
  --timeago TIMEAGO
  --timeagonew TIMEAGONEW
  --short               Выводить только IP адреса, один на строку.
  --tail ЧИСЛО          Вывести последнее ЧИСЛО результатов.
  --tailnew ЧИСЛО       Вывести последнее ЧИСЛО новых результатов.
  --tailf               Выводить непрерывно последние результаты.
  --tailfnew            Выводить непрерывно последние результаты.
  --count               Подсчёт соответствующих результатов.
  --explain             Особая для MongoDB: .explain() (объяснить) запрос.
  --distinct ПОЛЕ       Вывести только уникальную часть ПОЛЯ в 
                        результатах, одну на строку.
  --delete              УДАЛИТЬ соответствующие результаты вместо их отображения.

iphost

Запрос к пассивной БД для преобразования DNS (пассивный DNS).

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

ivre iphost [-h] [-s СЕНСОР] [--sub]

p0f2db

Обновить базу данных из вывода процесса p0f

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

ivre p0f2db [-h] [--sensor СЕНСОР] [--mode {ACK,SYN+ACK,SYN,RST+}]
                   [--bulk]
                   filename [имя_файла ...]
позиционные аргументы:
  filename              Файл PCAP для чтения или интерфейс:[имя интерфейса]

опциональные аргументы:
  -h, --help            показать справку и выйти
  --sensor СЕНСОР, -s СЕНСОР
                        Имя сенсора
  --mode {ACK,SYN+ACK,SYN,RST+}, -m {ACK,SYN+ACK,SYN,RST+}
                        режим p0f
  --bulk                Использовать массовые вставки

passiverecon2db

Обновляет базу данных для вывода от скрипта Bro 'passiverecon'

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

ivre passiverecon2db [-h] [--sensor СЕНСОР] [--ignore-spec IGNORE_SPEC]
                            [--bulk]
опциональные аргументы:
  -h, --help            показать справку и выйти
  --sensor СЕНСОР, -s   СЕНСОР
                        Имя сенсора
  --ignore-spec IGNORE_SPEC, -i IGNORE_SPEC
                        Имя файла, содержащего игнорируемые опции
  --bulk                Использовать массовые вставки

passivereconworker

Управление файлами ivre passiverecon2db.

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

ivre passivereconworker [-h] [--sensor СЕНСОР[:СЕНСОР]]
                               [--directory ДИРЕКТОРИЯ] [--progname ПРОГРАММА]
опциональные аргументы:
  -h, --help                 показать справку и выйти
  --sensor СЕНСОР[:СЕНСОР]
                             сенсор для проверки, опционально с длинным именем,
                             по умолчанию все.
  --directory ДИРЕКТОРИЯ     базовая директория (по умолчанию to /ivre/passiverecon/).
  --progname ПРОГРАММА       Программа для запуска (по умолчанию ivre passiverecon2db).

plotdb

Строит графики по результатам сканирования.

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

ivre plotdb [-h] [--category КАТЕГОРИЯ] [--country КОД]
                   [--asnum ЧИСЛО[,ЧИСЛО[...]]] [--asname ИМЯ] [--source ИСТОЧНИК]
                   [--version ВЕРСИЯ] [--timeago СЕКУНДЫ] [--id ID [ID ...]]
                   [--no-id ID [ID ...]] [--host IP] [--hostname ИМЯ ХОСТА]
                   [--domain ДОМЕН] [--net IP/МАСКА] [--range IP IP]
                   [--hop IP] [--port ПОРТ] [--not-port ПОРТ] [--openport]
                   [--no-openport] [--countports ЧИСЛО ЧИСЛО]
                   [--no-countports ЧИСЛО ЧИСЛО] [--service СЛУЖБА]
                   [--label ГРУППА[:ТЭГ]] [--no-label ГРУППА[:ТЭГ]]
                   [--script ID[:ВЫВОД]] [--svchostname SVCHOSTNAME]
                   [--os ОС] [--anonftp] [--anonldap] [--authhttp]
                   [--authbypassvnc] [--ypserv] [--nfs] [--x11] [--xp445]
                   [--owa] [--vuln-boa] [--torcert] [--sshkey ОТПЕЧАТОК]
                   [--archives] [--2d] [--3d] [--alert-445] [--alert-nfs]
опциональные аргументы:
  -h, --help              показать справку и выйти
  --category КАТЕГОРИЯ    показать только результаты из этой категории
  --country КОД           показать только результаты из этой страны
  --asnum ЧИСЛО[,ЧИСЛО[...]]
                          только результаты из этой(этих) AS(es)
  --asname ИМЯ            показать только результаты из этой(этих) AS(es)
  --source ИСТОЧНИК       показать только результаты из этого источника
  --version ВЕРСИЯ
  --timeago СЕКУНДЫ
  --id ID [ID ...]        показать только результаты из этой(этих) ID
  --no-id ID [ID ...]     показать только результаты БЕЗ этого(этих) ID(s)
  --host IP
  --hostname ИМЯ ХОСТА
  --domain ДОМЕН
  --net IP/МАСКА
  --range IP IP
  --hop IP
  --port ПОРТ
  --not-port ПОРТ
  --openport
  --no-openport
  --countports ЧИСЛО ЧИСЛО
                        показать только результаты с количеством открытых
                        портов в приделах указанного диапазона
  --no-countports ЧИСЛО ЧИСЛО
                        показать только результаты с количеством открытых
                        портов НЕ в приделах указанного диапазона
  --service СЛУЖБА
  --label ГРУППА[:ТЭГ]  получить хосты отмеченные ТЭГОМ в ГРУППЕ, если ТЭГ не
                        указан, получить хосты с по крайней мере одним ТЭГОМ в ГРУППЕ
                        GROUP
  --no-label ГРУППА[:ТЭГ]
                        получить хосты БЕЗ отметки ТЭГОМ в ГРУППЕ, если ТЭГ
                        не указан, получить хосты БЕЗ каких либо ТЭГОВ в ГРУППЕ
  --script ID[:ВЫВОД]
  --svchostname SVCHOSTNAME
  --os ОС
  --anonftp
  --anonldap
  --authhttp
  --authbypassvnc
  --ypserv, --nis
  --nfs
  --x11
  --xp445
  --owa
  --vuln-boa, --vuln-intersil
  --torcert
  --sshkey ОТПЕЧАТОК
  --archives
  --2d, -2
  --3d, -3
  --alert-445
  --alert-nfs

runscans

Запускает массивные сканирования nmap.

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

ivre runscans [-h] [--categories КАТЕГОРИЯ [КАТЕГОРИЯ ...]] [--country КОД]
                     [--asnum AS] [--range НАЧАЛО КОНЕЦ] [--network СЕТЬ/МАСКА]
                     [--routable] [--file ИМЯ_ФАЙЛА] [--test ЧИСЛО]
                     [--zmap-prescan-port ZMAP_PRESCAN_PORT]
                     [--zmap-prescan-opts ZMAP_PRESCAN_OPTS]
                     [--nmap-prescan-ports NMAP_PRESCAN_PORTS [NMAP_PRESCAN_PORTS ...]]
                     [--nmap-prescan-opts NMAP_PRESCAN_OPTS] [--limit ПРЕДЕЛ]
                     [--state STATE STATE STATE STATE] [--nmap-template ИМЯ]
                     [--output {XML,XMLFull,XMLFork,Test,Count,List,ListAll,ListAllRand,ListCIDRs,CommandLine}]
                     [--processes ЧИСЛО] [--nmap-max-cpu ВРЕМЯ]
                     [--nmap-max-heap-size ВРЕМЯ] [--nmap-max-stack-size ВРЕМЯ]
                     [--again {up,down,unknown,all} [{up,down,unknown,all} ...]]
опциональные аргументы:
  -h, --help           показать справку и выйти
  --categories КАТЕГОРИЯ [КАТЕГОРИЯ ...]
                        присвоить результатам сканирования тэг с этой категорией
  --country КОД, -c КОД
                        выбрать страну
  --asnum AS, -a AS     выбрать автономную систему
  --range НАЧАЛО КОНЕЦ, -r НАЧАЛО КОНЕЦ
                        выбрать диапазон адресов
  --network NET/MASK, -n СЕТЬ/МАСКА
                        выбрать сеть
  --routable
  --file ИМЯ_ФАЙЛА, -f ИМЯ_ФАЙЛА
                        прочитать цели из файла
  --test ЧИСЛО, -t ЧИСЛО
                        выбрать ЧИСЛО адресов на локальном цикле
  --zmap-prescan-port ZMAP_PRESCAN_PORT
  --zmap-prescan-opts ZMAP_PRESCAN_OPTS
  --nmap-prescan-ports NMAP_PRESCAN_PORTS [NMAP_PRESCAN_PORTS ...]
  --nmap-prescan-opts NMAP_PRESCAN_OPTS
  --limit ПРЕДЕЛ, -l ПРЕДЕЛ
                        количество адресов для ввода
  --state STATE STATE STATE STATE
                        внутренние состояния LCG
  --nmap-template ИМЯ   Выбрать шаблон сканирования Nmap
  --output {XML,XMLFull,XMLFork,Test,Count,List,ListAll,ListAllRand,ListCIDRs,CommandLine}
                        выбрать метод вывода результатов сканирования
  --processes ЧИСЛО     запустить ЧИСЛО параллельных процессов nmap
                        (при указании опции --output=XMLFork)
  --nmap-max-cpu ВРЕМЯ  максимальное количество CPU времени (в секундах) на
                        процесс nmap
  --nmap-max-heap-size ВРЕМЯ
                        maximumt size (in bytes) of each nmap process's heap
  --nmap-max-stack-size ВРЕМЯ
                        maximumt size (in bytes) of each nmap process's stack
  --again {up,down,unknown,all} [{up,down,unknown,all} ...]
                        выбрать статус целей для повторного сканирования

runscansagent

Отправляет цели удалённому агенту.

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

ivre runscansagent [-h] [--categories КАТЕГОРИЯ [КАТЕГОРИЯ ...]] [--country КОД]
                          [--asnum AS] [--range НАЧАЛО КОНЕЦ]
                          [--network СЕТЬ/МАСКА] [--routable] [--file ИМЯ_ФАЙЛА]
                          [--test ЧИСЛО]
                          [--zmap-prescan-port ZMAP_PRESCAN_PORT]
                          [--zmap-prescan-opts ZMAP_PRESCAN_OPTS]
                          [--nmap-prescan-ports NMAP_PRESCAN_PORTS [NMAP_PRESCAN_PORTS ...]]
                          [--nmap-prescan-opts NMAP_PRESCAN_OPTS]
                          [--limit ПРЕДЕЛ] [--state STATE STATE STATE STATE]
                          [--category CAT] [--max-waiting TIME] [--sync]
                          [--dont-store-down] [--feed]
                          AGENT [АГЕНТ ...]
позиционные аргументы:
  AGENT                 агент для использования (адрес rsync)

опциональные аргументы:
  -h, --help             показать справку и выйти
  --categories КАТЕГОРИЯ [КАТЕГОРИЯ ...]
                         присвоить тэг с этой категорией результатам сканирования
  --country КОД, -c КОД
                         выбрать страну
  --asnum AS, -a AS      выбрать автономную систему
  --range НАЧАЛО КОНЕЦ, -r НАЧАЛО КОНЕЦ
                         выбрать диапазон адресов
  --network СЕТЬ/МАСКА, -n СЕТЬ/МАСКА
                         выбрать сеть
  --routable
  --file ИМЯ_ФАЙЛА, -f ИМЯ_ФАЙЛА
                         прочитать цели из файла
  --test ЧИСЛО, -t ЧИСЛО
                         выбрать ЧИСЛО адресов на локальном цикле
  --zmap-prescan-port ZMAP_PRESCAN_PORT
  --zmap-prescan-opts ZMAP_PRESCAN_OPTS
  --nmap-prescan-ports NMAP_PRESCAN_PORTS [NMAP_PRESCAN_PORTS ...]
  --nmap-prescan-opts NMAP_PRESCAN_OPTS
  --limit ПРЕДЕЛ, -l ПРЕДЕЛ
                         количество адресов для вывода
  --state STATE STATE STATE STATE
                         внутреннее состояние LCG
  --category КАТЕГОРИЯ   присвоить тэг с этой категорией результатам сканирования
  --max-waiting ВРЕМЯ    максимум ожидание цели
  --sync
  --dont-store-down
  --feed

runscansagentdb

Управление сканированиями, запущенными на удалённых агентах.

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

ivre runscansagentdb [-h] [--categories КАТЕГОРИЯ [КАТЕГОРИЯ ...]] [--country КОД]
                            [--asnum AS] [--range НАЧАЛО КОНЕЦ]
                            [--network СЕТЬ/МАСКА] [--routable]
                            [--file ИМЯ_ФАЙЛА] [--test ЧИСЛО]
                            [--zmap-prescan-port ZMAP_PRESCAN_PORT]
                            [--zmap-prescan-opts ZMAP_PRESCAN_OPTS]
                            [--nmap-prescan-ports NMAP_PRESCAN_PORTS [NMAP_PRESCAN_PORTS ...]]
                            [--nmap-prescan-opts NMAP_PRESCAN_OPTS]
                            [--limit LIMIT] [--state STATE STATE STATE STATE]
                            [--assign-free-agents] [--max-waiting ЧИСЛО]
                            [--source ИМЯ]
                            [--add-agent (ХОСТ:)ПУТЬ [(ХОСТ:ПУТЬ ...]]
                            [--add-local-master] [--master-path ПУТЬ]
                            [--list-agents] [--list-scans] [--list-masters]
                            [--assign АГЕНТ:СКАНИРОВАНИЕ] [--unassign AGENT] [--init]
                            [--sleep СПАТЬ] [--daemon]
опциональные аргументы:
  -h, --help            показать справку и выйти
  --categories КАТЕГОРИЯ [КАТЕГОРИЯ ...]
                        присвоить тэг с этой категорией результатам сканирования
  --country КОД, -c КОД
                        выбрать страну
  --asnum AS, -a AS     выбрать автономную систему
  --range НАЧАЛО КОНЕЦ, -r НАЧАЛО КОНЕЦ
                        выбрать диапазон адресов
  --network СЕТЬ/МАСКА, -n СЕТЬ/МАСКА
                        выбрать сеть
  --routable
  --file ИМЯ_ФАЙЛА, -f ИМЯ_ФАЙЛА
                        прочитать цели из файла
  --test ЧИСЛО, -t ЧИСЛО
                        выбрать ЧИСЛО адресов на локальном цикле
  --zmap-prescan-port ZMAP_PRESCAN_PORT
  --zmap-prescan-opts ZMAP_PRESCAN_OPTS
  --nmap-prescan-ports NMAP_PRESCAN_PORTS [NMAP_PRESCAN_PORTS ...]
  --nmap-prescan-opts NMAP_PRESCAN_OPTS
  --limit ПРЕДЕЛ, -l ПРЕДЕЛ
                        количество адресов для вывода
  --state STATE STATE STATE STATE
                        внутреннее состояние LCG
  --assign-free-agents  Назначить любого доступного агента (полезно
                        только при указания цели).
  --max-waiting ЧИСЛО   Максимальное ожидание целей (влияет только на --add-agent)
  --source ИМЯ          Имя источника (влияет только на --add-agent)
  --add-agent (ХОСТ:)ПУТЬ [(ХОСТ:)ПУТЬ ...]
  --add-local-master
  --master-path ПУТЬ    Отличный от пути по умолчанию для использования мастером (
                        (по умолчанию указан в конфигурационном файле атрибутом
                       `AGENT_MASTER_PATH`)
  --list-agents
  --list-scans
  --list-masters
  --assign АГЕНТ:СКАНИРОВАНИЕ
  --unassign АГЕНТ
  --init                Очистить или создать и инициализировать базы данных.
  --sleep SLEEP         Время ожидания между каждым циклом
                        скармливания/синхронизации  (полезно только с --daemon).
  --daemon              Запускать непрерывно цикл скармливания/синхронизации. 
                        Часть "sync" требует быть способной rsync к & из агентов не
                        интерактивно (без ввода пароля). Пожалуйста
                        помните, это *не* делает процесс демоном.

scan2db

Разбор результатов сканирования NMAP и добавление их в БД.

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


ivre scan2db [-h] [-c КАТЕГОРИИ] [-s ИСТОЧНИК] [-t] [--ports]
                    [--open-ports] [--never-archive] [--archive]
                    [--archive-same-host-and-source] [--merge] [--force-info]
                    [-r]
                    [СКАНИРОВАНИЕ [СКАНИРОВАНИЕ ...]]
позиционные аргументы:
  SCAN                  Результаты сканирования

опциональные аргументы:
  -h, --help            показать справку и выйти
  -c КАТЕГОРИИ, --categories КАТЕГОРИИ
                        Категории сканирования.
  -s ИСТОЧНИК, --source ИСТОЧНИК
                        Источник сканирования.
  -t, --test            Тестовый режим.
  --ports, --port       Сохранить только хосты с элементом "порты".
  --open-ports          Показать только хосты с открытыми портами.
  --never-archive       Никогда не архивировать.
  --archive, --archive-same-host
                        Архивировать результаты для того же хоста.
  --archive-same-host-and-source
                        Архивировать результаты с тем же хостом и источником
                        (это по умолчанию).
  --merge               Очистить результат предыдущего результата сканирования для того же хоста
                        и источника. Полезно для использования с множественными частичными
                        результатами сканирования (например, один с -p 80, другой с -p 21).
  --force-info          Принудительное обновление информации (AS, страна, город и т.д.)
                        (полезно только с форматом JSON)
  -r, --recursive       Импортировать все файлы из данных директорий.

scancli

Доступ и запросы к базе данных активных сканирований.

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

ivre scancli [-h] [--category КАТЕГОРИЯ] [--country КОД]
                    [--asnum ЧИСЛО[,ЧИСЛО[...]]] [--asname ИМЯ] [--source ИСТОЧНИК]
                    [--version ВЕРСИЯ] [--timeago СЕКУНДЫ] [--id ID [ID ...]]
                    [--no-id ID [ID ...]] [--host IP] [--hostname ИМЯ_ХОСТА]
                    [--domain ДОМЕН] [--net IP/МАСКА] [--range IP IP]
                    [--hop IP] [--port ПОРТ] [--not-port PORT] [--openport]
                    [--no-openport] [--countports ЧИСЛО ЧИСЛО]
                    [--no-countports ЧИСЛО ЧИСЛО] [--service СЛУЖБА]
                    [--label ГРУППА[:ТЭГ]] [--no-label ГРУППА[:ТЭГ]]
                    [--script ID[:ВЫВОД]] [--svchostname SVCHOSTNAME]
                    [--os ос] [--anonftp] [--anonldap] [--authhttp]
                    [--authbypassvnc] [--ypserv] [--nfs] [--x11] [--xp445]
                    [--owa] [--vuln-boa] [--torcert] [--sshkey ОТПЕЧАТОК]
                    [--archives] [--init] [--ensure-indexes] [--short]
                    [--json] [--no-screenshots] [--honeyd] [--nmap-xml]
                    [--graphroute {dot,rtgraph3d}]
                    [--graphroute-cluster {AS,Страна}]
                    [--graphroute-dont-reset]
                    [--graphroute-include {last-hop,target}] [--count]
                    [--explain] [--distinct ПОЛЕ] [--top ПОЛЕ / ~ПОЛЕ]
                    [--delete] [--move-to-archives] [--move-from-archives]
                    [--update-schema] [--csv ТИП] [--csv-separator РАЗДЕЛИТЕЛЬ]
                    [--csv-add-infos] [--csv-na-str CSV_NA_STR]
                    [--sort ПОЛЕ / ~ПОЛЕ [ПОЛЕ / ~ПОЛЕ ...]]
                    [--limit ПРЕДЕЛ] [--skip ПРОПУСТИТЬ]
опциональные аргументы:
  -h, --help            показать справку и выйти
  --category КАТЕГОРИЯ        показать только результаты из этой категории
  --country КОД        показать только результаты из этой страны
  --asnum ЧИСЛО[,ЧИСЛО[...]]
                        показать только результаты из этой(этих) AS
  --asname ИМЯ         показать только результаты из этой(этих) AS
  --source ИСТОЧНИК          показать только результаты из этого источника
  --version ВЕРСИЯ
  --timeago СЕКУНДЫ
  --id ID [ID ...]      показать только результаты с этого(этих) ID
  --no-id ID [ID ...]   показать только результаты БЕЗ этого(этих) ID
  --host IP
  --hostname ИМЯ ХОСТА
  --domain ДОМЕН
  --net IP/МАСКА
  --range IP IP
  --hop IP
  --port ПОРТ
  --not-port ПОРТ
  --openport
  --no-openport
  --countports ЧИСЛО ЧИСЛО
                        показать только результаты с числом открытых портов
                        в указанном диапазоне
  --no-countports ЧИСЛО ЧИСЛО
                        показать только результаты с числом открытых портов
                        НЕ внутри указанного диапазона
  --service СЛУЖБА
  --label ГРУППА[:ТЭГ]   получить хосты помеченные ТЭГОМ в ГРУППЕ, 
                        если ТЭГ не указан, получаются хосты с по крайне мере
                        одним ТЭГОМ в ГРУППЕ
  --no-label ГРУППА[:ТЭГ]
                        получить хост БЕЗ ярлыка ТЭГ в ГРУППЕ, если ТЭГ
                        не указан, получить хосты БЕЗ каких-либо тэгов в 
                        ГРУППЕ
  --script ID[:ВЫВОД]
  --svchostname SVCHOSTNAME
  --os ОС
  --anonftp
  --anonldap
  --authhttp
  --authbypassvnc
  --ypserv, --nis
  --nfs
  --x11
  --xp445
  --owa
  --vuln-boa, --vuln-intersil
  --torcert
  --sshkey ОТПЕЧАТОК
  --archives
  --init, --purgedb     Очистить или создать и инициализировать базу данных.
  --ensure-indexes      Создать пропущенные индексы (заблокирует базу данных).
  --short               Выводить только IP адреса, один на строку.
  --json                Вывести результаты как документ JSON.
  --no-screenshots      При использовании с --json, не выводить данные скриншотов.
  --honeyd              Вывод результатов как конфигурационный файл honeyd.
  --nmap-xml            Вывод результатов как XML файл вывода nmap.
  --graphroute {dot,rtgraph3d}
                        Создать график из результатов трассировки. dot: вывод
                        результата в формате Graphviz "dot" в стандартный вывод. rtgraph3d:
                        отправить результаты в rtgraph3d.
  --graphroute-cluster {AS,Страна}
                        Кластер IP в соответствии с указанным критерием (только
                        для --graphroute dot)
  --graphroute-dont-reset
                        НЕ сбрасывать график (только для --graphroute rtgraph3d)
  --graphroute-include {last-hop,target}
                        Как далеко должен зайти график? По умолчанию исключать
                        последний прыжок и цель для каждого результата.
  --count               Посчитать соответствующие результаты.
  --explain             Особая для MongoDB: .explain() (объяснить) запрос.
  --distinct ПОЛЕ      Вывод только уникальный частей ПОЛЯ результатов,
                        одна на строку.
  --top ПОЛЕ / ~ПОЛЕ  Вывод самых распространённых (наименее распространённых: ~) 
                        распространённых: ~)  значений для ПОЛЯ, по умолчанию это 10, 
                        используйте --limit для его изменения, --limit 0 означает неограниченно.
  --delete              УДАЛИТЬ совпадающие результаты вместо их отображения.
  --move-to-archives    АРХИВИРОВАТЬ совпадающие результаты вместо их отображения
                        (например, переместить результаты в архивные коллекции).
  --move-from-archives  РАЗАРХИВИРОВАТЬ совпадающие результаты вместо их
                        отображения (к примеру, переместить результаты из коллекции
                        архива в результаты «свежих» коллекций).
  --update-schema       обновить схему (хоста). Используйте с --version для указания
                        вашей текущей версии и запустите дважды, один с
                        --archive.
  --csv ТИП            Вывод результатов в файл CSV. Поддерживаемые результаты
                        для типов, в настоящий момент, это "ports" и "hops".
  --csv-separator РАЗДЕЛИТЕЛЬ
                        Выбрать разделитель для вывода --csv
  --csv-add-infos       Включить country_code и as_numberfields в файл CSV
  --csv-na-str CSV_NA_STR
                        Строка для использования в значении "Not Applicable"
                        (не применимо) (по умолчанию на "NA")
  --sort ПОЛЕ / ~ПОЛЕ [ПОЛЕ / ~ПОЛЕ ...]
                        Сортировать результаты в соответствии с ПОЛЕМ; используйте ~ПОЛЕ
                        для обратного порядка сортировки.
  --limit ПРЕДЕЛ         Вывод не более ПРЕДЕЛА результатов.
  --skip ПРОПУСК           Пропустить первые ПРОПУСК результаты.

scanstatus

Команда не документирована и(или) не дописана и(или) является составной частью другой программы.


Руководство по IVRE. Примеры запуска IVRE

Страница man отсутствует.

Пассивная разведка

Следующие шаги показывают некоторые примеры пассивной сетевой разведки с IVRE. Если вы хотите активную разведку (к примеру, на основе Nmap), то пропустите эту часть.

  • Используя Bro

Вам нужно запустить Bro (минимум 2.3) с опцией -b и указанием файла passiverecon.bro. К примеру если вы хотите запустить на интерфейсе eth0, то запустите:

/opt/bro/bin/bro -b /usr/local/share/ivre/passiverecon/passiverecon.bro -i eth0

Если вы хотите запустить в отношении захваченного файла (захват должен быть в файле PCAP), то выполните:

mkdir logs
/opt/bro/bin/bro -b /usr/local/share/ivre/passiverecon/passiverecon.bro -r capture

Это создаст файлы логов в директории logs. Для обработки этих файлов вам нужно запустить passivereconworker. Вы можете попробовать:

ivre passivereconworker --directory=logs

Эта программа остановится сама. Вы можете завершить её кнопкой (p) — это мягкая остановка (она полностью отключится после окончания обработки текущего файла).

  • Используя p0f

Для начала заполнения вашей базы данных информацией с интерфейса eth0 вам нужно запустить (passiverecon — здесь это просто название сенсора):

ivre p0f2db -s passiverecon iface:eth0

И также в отношении файла захвата:

ivre p0f2db -s passiverecon capture

Использование результатов пассивной разведки

Теперь у вас две опции:

  • инструмент командной строки ipinfo
  • модуль Python db.passive объект из ivre.db

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

К примеру, для показа всего, сохранённого об IP адресе или сети:

ivre ipinfo 1.2.3.4
ivre ipinfo 1.2.3.0/24

Справку по выводу смотрите в:


ivre ipinfo --help

Для использования модуля Python запустите, к примеру:

python
>>> from ivre.db import db
>>> db.passive.get(db.passive.flt_empty)[0]

Для дополнительной информации выполните help(db.passive) из шелла Python.

Активная разведка

  • Сканирование

Самый простой путь — это установить IVRE на «сканирующей» машине и запустить:

ivre runscans --routable --limit 1000 --output=XMLFork

Это запустит стандартное сканирование в отношении 1000 случайных хостов в Интернете, запустив 30 параллельных процессов nmap.

Помощь смотрите по команде ivre runscans --help.

Когда это закончено, то для импорта результатов в базу данных запустите:

ivre nmap2db -c ROUTABLE-CAMPAIGN-001 -s MySource -r scans/ROUTABLE/up

Здесь ROUTABLE-CAMPAIGN-001 — это категория (просто случайное имя, которое вы будете использовать позже для фильтра сканирования результатов) и MySource — это дружественное имя для вашей машины сканирования (это также произвольное имя, используемое для фильтрации результатов сканирования; по умолчанию, когда вы вставляете результат сканирования, если у вас уже есть результат для этого же адреса хоста с тем же адресом источника, предыдущий результат перемещается в коллекцию “archive” (меньше индексов), а новый результат вставляется в базу данных).

Использование результатов активного сканирования

У вас есть три опции:

  • инструмент командной строки scancli
  • модуль на Python объект db.nmap из ivre.db
  • веб-интерфейс

Интерфейс командной строки: scancli

Для получения всех хостов с открытым 22 портом:

ivre scancli --port 22

Модуль Python

Для использования модуля Python запустите, к примеру:

python
>>> from ivre.db import db
>>> db.nmap.get(db.nmap.flt_empty)[0]

Для подробностей запустите help(db.nmap) из шелла Python.

Веб-интерфейс IVRE

Интерфейс

Верх навигационного меню

Оно содержит несколько элементов; с лева на право:

  • Быстрый доступ к начальной странице, которая очищает все ключевые слова.
  • Кнопка для отображения страницы помощи.
  • Несколько меню с быстрым доступом к добавлению фильтров, сортировке или отображению команд.
  • Несколько ссылок для «общего доступа» (экспорта) текущей страницы.

Левая панель

Эта часть позволяет путешествовать по результатам. Будьте осторожны с последней кнопкой, которая ведёт на последнюю страницу результатов, это может быть очень медленно, когда доступно множество результатов.

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

Вторая часть позволяет добавить, изменить или удалить фильтр, сортировку или команды отображения.

Третья часть позволяет исследовать результаты через генерирование графиков, отображаемых в самой правой части экрана.

  • Первое поле отображает график с 15 самыми распространёнными значениями величин в фильтруемых результатах. Это может быть медленно, когда количество результатов сканирования важно. Вот список (иногда) интересных значений, которые стоит попробовать:

    • category, source
    • label, label:[группа], label:[группа]:[тэг]
    • country, city, as
    • domains, domains:[уровень]
    • hop, hop:[число]
    • port, port:[open/closed/filtered], port:[service] portlist:[open/closed/filtered]
    • service, service:[порт], product, product:[порт], version, version:[порт]
    • cpe, cpe.[тип/вендор/продукт/версия], cpe:[cpe spec], cpe.[тип/вендор/продукт/версия]:[cpe spec] (пример: cpe.product:a:microsoft покажет топ продуктов с именем в CPE от вендора microsoft, cpe.vendor:o:/^m/ покажет топ имён вендора в CPE которые начинаются с m)
    • devicetype, devicetype:[порт]
    • script
    • script:[имя скрипта]
    • file (или file.filename), file.time, file.size, file.uid, file.gid, file.permission
    • smb.os, smb.lanmanager, smb.domain, smb.dnsdomain, smb.forest, smb.workgroup
    • cert.issuer, cert.subject
    • modbus.deviceid, enip.vendor, enip.product, enip.serial, enip.devtype, enip.prodcode, enip.rev, enip.ip
  • Кнопка Пространства адресов отображает графическое представление фильтруемых адресов. Ось абсцисс представляет два верхних байта (или три, когда результат принадлежит той же /16 сети), а ось ординат представляет два нижних байта (или нижний байт)
  • Кнопка Карта отображает расположение результатов на карте мира.
  • Кнопки Временной шкалы и Временной шкалы 24h отображают графики линии времени, где ось абсцисс представляет время, а ось ординат представляет IP адрес.

Результаты сканирования

По умолчанию отображается (максимум) десять результатов на страницу.

Каждый результат имет свой собственный фрейм. В режиме отображения по умолчанию, отображается краткий итог по хосту. Длинный клик по фрейму результата переключит между кратким итогом и полным отображением результата.

Иконка карандаша в верхнем правом углу открывает страницу блокнота для текущего хоста в самой правой части экрана.

Каждый голубой элемент в результатах можно кликнуть для добавления фильтра.

Доступные команды

Спецификация команд

Команды требуют параметр, передаваемый после знака двоеточия :. Некоторые команды могут использоваться со значением отрицания если предварить их знаком ! или -.

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

В последующем списке [!] показывает, что она может использоваться со значением отрицания, а : после команды говорит о том, что она требует параметр.

Когда требуется параметр, требуется указать полную величину или, если это применимо, то можно использовать регулярное выражение, которое имеет синтаксис /[выражение]/[флаги] (пример: script:smb-enum-shares:/WRITE/).

Если ваша команда включает пробелы, то вам нужно защитить её используя одинарные или двойные кавычки.

Список команд

Фильтры

  • [!]archives показать результаты из архивной базы данных (и !archives не имеет эффекта, поскольку это поведение по умолчанию).
  • [!]host:[IP адрес] фильтровать по конкретному IP адресу. Использование напрямую IP адрес (без host:) является эквивалентом.
  • [!]net:[IP адрес/маска сети] фильтровать конкретные сети (CIDR нотация). Использование нотации CIDR напрямую (без net:) является эквивалентом.
  • [!]range:[IP адрес]-[IP адрес] фильтровать по указанному диапазону IP
  • [!]hostname:[FQDN] искать в результатах соответствующее имя хоста.
  • [!]domain:[FQDN] искать в результатах имя хоста с соответствующим доменом.
  • [!]category: фильтровать по категории.
  • [!]label, [!]label:[группа], [!]label:[группа]:[тэг] фильтровать в соответствии с ярлыками.
  • [!]country:[двух буквенный код] фильтровать по стране.
  • [!]city: фильтровать по городу (использовать с country:).
  • [!]asnum:фильтровать по номеру AS (разрешён список).
  • [!]asname: фильтровать по имени AS (разрешены регулярные выражения).
  • [!]source: фильтровать по источнику (указать имя источника).
  • [!]timerange:[временная метка]-[временная метка] фильтровать результаты внутри указанного диапазона времени.
  • [!]timeago: фильтровать довольно свежие результаты; значение может быть указано в секундах или или, с соответствующим суффиксом, в минутах (m), часах (h), днях (d) или годах (y).
  • service:[выражение], service:[выражение]:[номер порта] поиск выражения в имени служб.
  • product:[служба]:[продукт], product:[служба]:[продукт]:[номер порта] поиск продукта.
  • version:[служба]:[продукт]:[версия], product:[служба]:[продукт]:[версия]:[номер порта] поиск особых версий продукта.
  • script:[scriptid], script:[scriptid]:[вывод] поиск особого скрипта.
  • anonftp фильтровать результаты FTP с разрешённым анонимным входом.
  • anonldap поиск серверов LDAP, работающих с анонимным связыванием.
  • authbypassvnc поиск VNC серверов с аутентификацией, которая может быть пропущена.
  • authhttp ищет HTTP сервера с аутентификацией и дефолтными (к примеру, admin/admin) рабочими логином/паролем. Скрипт Nmap, судя по всему, имеет множество ложных срабатываний.
  • banner: ищет указанный баннер службы.
  • cookie: ищет HTTP сервера, устанавливающие специфичные кукиз.
  • file, file:[паттерн], file:[scriptid]:[паттерн], file:[scriptid],[scriptid],…:[паттерн] ищет паттерн (образец) в файлах с общим доступом (FTP, SMB, …).
  • geovision ищет веб-камеры GeoVision.
  • httptitle: ищет особые HTML значения заголовков домашних страниц сайтов.
  • nfs ищет NFS сервера.
  • nis, yp ищет NIS сервера.
  • mssqlemptypwd ищет MS-SQL сервера с пустым паролем для аккаунта системного администратора.
  • mysqlemptypwd ищет MySQL сервера с пустым паролем для аккаунта root.
  • owa ищет OWA (Outlook Web App) сервера.
  • phpmyadmin ищет phpMyAdmin сервера.
  • smb.dnsdomain:[FQDN] ищет результаты со службой SMB в указанном DNS домене.
  • smb.domain:[NetBIOS] поиск результатов со службой SMB в указанном NetBIOS домене.
  • smb.fqdn:[NetBIOS] поиск результатов со службой SMB в указанном имени хоста (FQDN).
  • smb.forest:[FQDN] поиск результатов со службой SMB в указанном forest (DNS имя).
  • smb.lanmanager:[менеджер LAN] поиск результатов со службой SMB со специфичным менеджером локальной сети.
  • smb.os:[ОС] поиск результатов со службой SMB со специфичной ОС.
  • smb.server:[NetBIOS] поиск результатов со службой SMB в специфичном имени хоста (NetBIOS).
  • smb.workgroup:[NetBIOS] поиск результатов со службой SMB в специфичной рабочей группе (NetBIOS).
  • smbshare, smbshare:[access mode] поиск результатов со службой SMB разделённой ос анонимным доступом. Доступ может быть be 'r', 'w' или 'rw' (по умолчанию это чтение и запись).
  • sshkey: поиск конкретного SSH ключа.
  • torcert поиск сертификатов Tor.
  • webfiles поиск "типичных" веб-файлов в директориях с общим доступом.
  • webmin поиск серверов Webmin.
  • x11open поиск открытых серверов X11.
  • x11srv поиск серверов X11.
  • xp445 поиск машин Windows XP с открытым портом TCP/445.
  • os: поиск конкретного значения ОС в результатах исследования.
  • devtype:, devicetype: поиск типа устройства.
  • netdev, networkdevice поиск сетевых устройств (файерволы, роутеры, …).
  • phonedev поиск устройств телефонии.
  • cpe(:[тип](:[вендор](:[продукт](:[версия])))) поиск заданного cpe. Каждое поле может быть /регулярным выражением/.
  • [!]hop:[IP], [!]hop:[IP]:[TTL] поиск конкретного IP адреса в результатах traceroute (трассировки).
  • [!]hopname: поиск соответствующего имени хоста в результатах traceroute (трассировки).
  • [!]hopdomain: поиск имени хоста внутри соответствующего доменного имени в результатах traceroute (трассировки).
  • [!]tcp/[номер порта], [!]udp/[номер порта], поиск открытого TCP или UDP порта (использование [!][имя порта] напрямую эквивалентно [!]tcp/[номер порта]).
  • [!]openport поиск хостов с по крайней мере одним открытым портом.
  • otheropenport:[имя порта], otheropenport:[имя порта],[имя порта],… поиск хоста с по крайней мере одним открытым портом отличным от этих указанных.
  • notes поиск результатов связанных с этой записью.

Сортировка

  • skip:[количество] пропустить количество результатов.
  • limit:[количество] показать только количество результатов.
  • [!]sortby:[имя поля] сортировать в соответствии с величиной поля. Будьте осторожны с этой настройкой, поскольку последствия для производительности могут быть ужасными.

Отображение

  • display:host установить режим отображения по умолчанию.
  • display:cpe показывать только CPE.
  • display:script:, display:script:[script id] or display:script:[script id],[script id],… показывать вывод только (конкретного) скрипта.
  • display:screenshot показать только скриншоты.

Установка IVRE

Установка в Kali Linux

Установка зависимостей и самой программы:

apt-get install python-pip python-dev mongodb tesseract-ocr geoip-bin geoip-database geoip-database-extra python-pymongo python-crypto apache2 dokuwiki python-pil
pip install ivre

Запуск службы БД:

service mongodb start

Инициализация БД:

ivre scancli --init
ivre ipinfo --init
ivre ipdata --init
ivre runscansagentdb --init

Если при перезапуске у вас возникает ошибка подключения к базе данных, то выполните

service mongodb start

Или добавьте службу MongoDB в автозапуск.

Загрузка и импорт IP данных

ivre ipdata --download
ivre ipdata --import-all --dont-feed-ipdata-cols

Настройка веб-интерфейса:

cd /var/www/html
rm index.html
ln -s /usr/local/share/ivre/web/static/* .
cd /usr/lib/cgi-bin
ln -s /usr/local/share/ivre/web/cgi-bin/* .
cd /var/lib/dokuwiki/data/pages
ln -s /usr/local/share/ivre/dokuwiki/doc
cd /var/lib/dokuwiki/data/media
ln -s /usr/local/share/ivre/dokuwiki/media/logo.png
ln -s /usr/local/share/ivre/dokuwiki/media/doc
cd /usr/share/dokuwiki
patch -p0 < /usr/local/share/ivre/dokuwiki/backlinks.patch
cd /etc/apache2/mods-enabled
for m in cgi rewrite ; do [ -L $m.load ] || ln -s ../mods-available/$m.load ; done
cd /usr/local/share/ivre/web/cgi-bin
sed -i 's/^\(\s*\)#Rewrite/\1Rewrite/' /etc/dokuwiki/apache.conf
service apache2 start

Активируем CGI:

a2enmod cgi
service apache2 reload

Графический веб-интерфейс теперь доступен по адресу: http://localhost/

Включение в IVRE функции захвата скриншотов

Требуется PhantomJS:

cd /tmp/ && wget https://bitbucket.org`curl -s https://bitbucket.org/ariya/phantomjs/downloads | grep -E -o '/ariya/phantomjs/downloads/phantomjs-[0-9]{1,2}.[0-9]{1,2}.[0-9]{1,2}-linux-x86_64.tar.bz2' | head -n 1` && tar xjf phantomjs-* && sudo mv `ls | grep 'phantomjs-' | head -n 1`/bin/phantomjs /usr/bin/ && cd `ls | grep 'phantomjs-' | head -n 1` && sudo mkdir /usr/share/phantomjs && sudo mv examples/ /usr/share/phantomjs && cd
ln -s /usr/bin/phantomjs /usr/local/bin/phantomjs
ln -s /usr/bin/phantomjs /usr/local/share/phantomjs

Если вы ставили без использования Docker, то нужно докачать отсутствующие файлы:

wget https://raw.githubusercontent.com/cea-sec/ivre/e2a23c8ca8d24112cfc78eb6d7e62e91c77f5034/docker/client/screenshot.js -O /usr/local/bin/screenshot.js
wget https://raw.githubusercontent.com/cea-sec/ivre/c3b0c61eb3af5fd919c6e3f99cd2713c6cd5eb08/docker/client/http-screenshot.nse -O /usr/share/nmap/scripts/http-screenshot.nse
chmod +x /usr/local/bin/screenshot.js
nmap --script-update

Возможна также альтернативная установка IVRE на машину сканирования, которая позволяет использовать несколько агентов от одного мастера.

 

 

Информация об установке в другие операционные системы будет добавлена позже.

Скриншоты IVRE

webui-home-heatmap

webui-details-heatmapzoom

webui-screenshots-solar-world

webui-topproducts-80

Инструкции по IVRE


Близкие программы:

  • SPARTA (100%)
  • Intrigue-core (95.7%)
  • Masscan (93.9%)
  • Maltego (89.6%)
  • XRay (88.8%)
  • Nmap (RANDOM - 76.3%)
  • Рекомендуется Вам:

    Comments are Closed