
Модульный распределённый движок фингерпринтинга
Scannerl — это модульный распределённый движок для снятия цифровых отпечатков (fingerprinting), реализованный компанией Kudelski Security. Scannerl может снимать отпечатки тысяч целей на одном хосте, но при этом легко распределяется между несколькими хостами. Scannerl для fingerprinting — это то же, что zmap для сканирования портов.
Scannerl работает на Debian/Ubuntu/Arch (но, скорее всего, будет работать и на других дистрибутивах). Он использует архитектуру «ведущий/ведомый», где ведущий узел распределяет работу (хост(ы) для fingerprinting) между своими ведомыми (локальными или удалёнными). Всё развёртывание прозрачно для пользователя.
При использовании обычных инструментов fingerprinting для крупномасштабного анализа исследователи безопасности часто сталкиваются с двумя ограничениями: во-первых, такие инструменты обычно созданы для сканирования сравнительно небольшого количества хостов за раз и непригодны для больших диапазонов IP-адресов. Во-вторых, если сканируется большой диапазон IP-адресов, защищённых устройствами IPS, вероятность попадания в чёрный список выше, что может привести к неполному набору информации. Scannerl разработан для обхода этих ограничений, предоставляя не только возможность одновременно снимать отпечатки множества хостов, но и распределяя нагрузку между произвольным количеством хостов. Scannerl также делает распределение этих задач полностью прозрачным, что упрощает настройку и обслуживание крупномасштабных проектов fingerprinting; это позволяет сосредоточиться на анализе, а не на геркулесовой задаче ручного управления и распределения процессов fingerprinting. Вдобавок к скорости, scannerl спроектирован так, чтобы можно было легко настроить конкретный анализ fingerprinting всего несколькими строками кода. Создание кластера fingerprinting не только просто в настройке, но и может быть доработано путём добавления тонко настроенных сканирований в ваши кампании fingerprinting.
Это самый быстрый инструмент для проведения крупномасштабных кампаний fingerprinting.
Подробнее:
Содержание
См. wiki для получения дополнительной информации.
См. различные варианты установки на странице установки wiki
Для установки из исходников сначала установите Erlang (не ниже версии 18), выбрав подходящий пакет для вашей платформы: Загрузки Erlang
Установите необходимые пакеты:
# на debian
$ sudo apt install erlang erlang-src rebar
# на arch
$ sudo pacman -S erlang-nox rebar
Затем соберите scannerl:
$ git clone https://github.com/kudelskisecurity/scannerl.git
$ cd scannerl
$ ./build.sh
Получите справку по использованию, выполнив
$ ./scannerl -h
Scannerl доступен в AUR для пользователей Arch Linux
DEB-пакеты (Ubuntu, Debian) доступны в релизах.
RPM-пакеты (Opensuse, Centos, Redhat) доступны на https://build.opensuse.org/package/show/home:chapeaurouge/scannerl.
Для выполнения распределённого сканирования необходимы два типа узлов:
На ведущем узле должен быть установлен и скомпилирован scannerl, в то время как на ведомом узле (узлах) требуется только установленный Erlang. Вся настройка прозрачна и выполняется автоматически ведущим узлом.
Требования для распределённого сканирования:
$ ./scannerl -h
____ ____ _ _ _ _ _ _____ ____ _
/ ___| / ___| / \ | \ | | \ | | ____| _ \| |
\___ \| | / _ \ | \| | \| | _| | |_) | |
___) | |___ / ___ \| |\ | |\ | |___| _ <| |___
|____/ \____/_/ \_\_| \_|_| \_|_____|_| \_\_____|
ИСПОЛЬЗОВАНИЕ
scannerl МОДУЛЬ ЦЕЛИ [УЗЛЫ] [ОПЦИИ]
МОДУЛЬ:
-m <mod> --module <mod>
mod: модуль fingerprinting для использования.
аргументы разделяются двоеточием.
ЦЕЛИ:
-f <target> --target <target>
target: список целей, разделённых запятыми.
-F <path> --target-file <path>
path: путь к файлу, содержащему по одной цели в строке.
-d <domain> --domain <domain>
domain: список доменов, разделённых запятыми.
-D <path> --domain-file <path>
path: путь к файлу, содержащему по одному домену в строке.
УЗЛЫ:
-s <node> --slave <node>
node: список узлов (имена хостов, не IP), разделённых запятыми.
-S <path> --slave-file <path>
path: путь к файлу, содержащему по одному узлу в строке.
узел также может быть указан с множителем (<node>*<nb>).