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 на машину сканирования, которая позволяет использовать несколько агентов от одного мастера.
Информация об установке в другие операционные системы будет добавлена позже.
Comments are Closed