w12scan
w12scan — это механизм обнаружения сетевых активов. Через веб-интерфейс отправляются задачи, и w12scan автоматически группирует связанные активы для удобного анализа. w12scan также является моей дипломной работой.
w12scan разделен на веб-часть (для отображения данных) и клиентскую часть (для поиска соответствующих активов).
Здесь представлена открытая программа веб-части, клиентская часть находится по адресу https://github.com/boy-hack/w12scan-client
Одно видео, чтобы узнать W12SCAN

Концепция дизайна
Основан на python3 + django + elasticsearch + redis (дедупликация + промежуточное ПО для связи веб-части и клиента). Используется WEB API для добавления целей сканирования. После завершения сканирования результаты отображаются на веб-части.

Особенности
Веб-часть
- Мощный синтаксис поиска
- С помощью синтаксиса поиска можно искать CMS, имена служб, заголовки, страны и регионы и т.д., что позволяет быстро находить соответствующие цели.
- title="abc" # поиск по заголовку
- header="abc" # поиск по HTTP-заголовку
- body="123" # поиск по содержимому body
- url = "*.baidu.com" # поиск поддоменов baidu.com,
* — это подстановочный символ
- ip = '1.1.1.1' # поиск IP, поддерживает CIDR
'192.168.1.0/24' и подстановочные символы '192.168.1.*'
- port = '80' # поиск порта
- app = 'nginx' # поиск компонента
- country = 'cn' # поиск страны
- service = 'mysql' # поиск службы
- bug = 'xx' # поиск существующей уязвимости
- Настраиваемая конфигурация активов
- С помощью настройки связанных доменов или IP-активов определенной компании, w12scan автоматически найдет соответствующие активы. При просмотре такого актива будет отображаться заметная метка, указывающая на принадлежность цели.
- Автоматическая связь
- При входе в детали цели, если цель — IP, автоматически связываются все домены на этом IP и все домены в этом C-сегменте. Если цель — домен, автоматически связываются смежные сайты, C-сегмент и поддомены.
- Управление несколькими узлами
- Веб-часть проверяет состояние узлов каждые несколько минут. Вы можете видеть количество сканирований узлов и их журналы.
- RESTful для задач
- Предоставляется интерфейс для добавления задач. Вы можете добавлять задачи через веб-интерфейс или интегрировать интерфейс в любое программное обеспечение.
Клиентская часть (Сканирование)
- Своевременная проверка PoC
- Через интеграцию с API airbug онлайн вызываются новейшие сценарии проверки PoC. airbug обеспечивает своевременность обновлений уязвимостей. Вы также можете форкнуть проект airbug и добавить собственные правила PoC.
- Проверка атак
- Клиентская часть включает в себя распространенные сервисы проверки уязвимостей. При каждом сканировании URL-адреса эти сервисы запускаются, и результаты в конечном итоге отображаются на веб-части w12scan.
- Сканирование и идентификация
- Сканирование портов с помощью masscan, идентификация портов с помощью nmap, идентификация веб-приложений с помощью wappalyzer и облегченной версии w11scan (идентификация отпечатков).
- Легкая распределенность
- Это было учтено при проектировании архитектуры программы: клиентская часть только принимает задачи, а конечные результаты взаимодействуют только с веб-частью. Поэтому распределение очень простое: просто запустите клиентскую часть на другой машине. Возможна распределенная работа на основе Docker, а также удобная интеграция с Celery.
Установка
Однокнопочное развертывание на основе Docker
mkdir ~/w12scan-data/db # этот каталог хранит результаты w12scan
mkdir ~/w12scan-data/data # этот каталог хранит результаты ES
git clone https://github.com/boy-hack/w12scan
cd w12scan
docker-compose up -d
Через некоторое время перейдите по адресу http://127.0.0.1:8000
Имя пользователя и пароль по умолчанию boyhack:boyhack
Хранение данных
- Вы можете изменить
docker-compose.yml, найти ~/w12scan-data/db или ~/w12scan-data/data, чтобы изменить расположение хранилища.
Связанные вопросы
- Для обеспечения высокой доступности подготовьте сервер с 8 ГБ ОЗУ и 4 ядрами (ES потребляет память). Если сервер не соответствует этим требованиям, добавьте
- "ES_JAVA_OPTS=-Xms2048m -Xmx2048m" в конфигурацию ES в Dockerfile, чтобы указать объем памяти, но это не гарантирует высокую доступность.
- При установке в Windows обратите внимание на формат файлов
.sh https://github.com/boy-hack/w12scan/issues/12 (спасибо @Hotsunrize).
- В: Как развернуть распределенную систему? О: Схема развертывания
- В: После запуска количество поисков равно 0? О: Необходимо добавить цели сканирования.
- Не выполняйте поиск одновременно со сканированием. Elasticsearch выполняет анализ, токенизацию и т.д. при вставке данных (в это время производительность низкая). Поиск в этот момент может вернуть 503. Рекомендуется выполнять поиск после завершения сканирования. (В дальнейшем это будет решено с помощью миграции данных.)
Связанные ссылки
Юридическая информация
Данная программа предназначена в основном для сбора сетевых данных с целью анализа и исследований. Пожалуйста, соблюдайте соответствующие местные законы при использовании этой программы.