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

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

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

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

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

Категории

Все категории
Loading categories
warcannon — Высокая скорость/Низкая стоимость CommonCrawl RegExp в Node.js | Kitploit
Инструменты/GitHubGitHub/c6fc/warcannon
OSINT (Разведка открытых источников)Эксфильтрация данныхСбор информацииБезопасность облачных средУтилиты и фреймворкиКраулер
GitHubc6fc/warcannon

warcannon

Высокая скорость/Низкая стоимость CommonCrawl RegExp в Node.js

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

Популярное

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

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

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

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

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

WARCannon — катастрофически мощная параллельная обработка WARC

Image

WARCannon был создан для упрощения и удешевления процесса «поиска по всему интернету».

С WARCannon вы можете:

  • Создавать и тестировать регулярные выражения на реальных данных Common Crawl
  • Легко загружать наборы данных Common Crawl для параллельной обработки
  • Масштабировать вычислительные возможности для асинхронной обработки WARC-файлов с, прямо скажем, неадекватной производительностью.
  • Сохранять и легко извлекать результаты

Как это работает

WARCannon использует продуманное применение технологий AWS для горизонтального масштабирования до любого размера, минимизации затрат за счёт spot-флотов и передачи данных внутри одного региона, выкачивания данных из S3 с невероятной скоростью (до 100 Гбит/с на узел), параллелизации на сотнях ядер CPU, отправки статуса через DynamoDB и CloudFront, а также хранения результатов через S3.

В целом, WARCannon может обработать несколько шаблонов регулярных выражений по 400 ТБ за несколько часов примерно за 30 долларов.

Установка через CloudShell

Самый быстрый и простой способ начать работу — использовать AWS CloudShell. Просто вставьте эту однострочную команду:

source <(curl https://raw.githubusercontent.com/c6fc/warcannon/master/cloudshell/deploy.sh)

Если вы хотите использовать ветку WARCannon, отличную от master, просто введите:

export GIT_BRANCH=branch_name
source <(curl https://raw.githubusercontent.com/c6fc/warcannon/$GIT_BRANCH/cloudshell/deploy.sh)

Примечание: Развёртывание через CloudShell использует эфемерное хранилище, что означает, что пользовательские шаблоны регулярных выражений будут потеряны при выходе из CloudShell. Если вы собираетесь часто использовать WARCannon, рекомендую использовать «Локальную установку» ниже.

Локальная установка

WARCannon требует установки следующего:

  • awscli (v2)
  • cmake3
  • node.js (v17.0.1+)

Совет профессионала: Чтобы не создавать путаницу с другими ресурсами, которые могут быть у вас в AWS, НАСТОЯТЕЛЬНО рекомендуется разворачивать WARCannon в свежем аккаунте. Вы можете легко создать новый аккаунт из консоли «Организации» в AWS. Под «НАСТОЯТЕЛЬНО рекомендуется» я имею в виду «серьёзно, не устанавливайте это рядом с другими вещами».

Сначала клонируйте репозиторий и скопируйте пример настроек.

$ git clone [email protected]:c6fc/warcannon.git
$ cd warcannon
warcannon$ cp settings.json.sample settings.json

Отредактируйте settings.json по своему вкусу:

Обязательные настройки

  • nodeInstanceType: Массив типов инстансов для параллельной обработки. Типы «c» — лучший выбор для этой цели, можно использовать любой размер. Для настоящих кампаний рекомендуется значение ["c5n.18xlarge"].
  • nodeCapacity: Количество узлов, запрашиваемых при параллельной обработке. Результирующие узлы будут произвольно распределены по указанным nodeInstanceTypes.
  • nodeParallelism: Количество одновременно обрабатываемых WARC-файлов на vCPU. Хорошее значение — 2. Если у узлов недостаточно RAM для работы с таким уровнем параллелизма (что может случиться с инстансами типа «c»), они будут работать с максимально безопасным параллелизмом.
  • nodeMaxDuration: Максимальная продолжительность жизни вычислительных узлов в секундах. Узлы будут автоматически завершены после этого времени, если задача ещё не выполнена. Значение по умолчанию — 24 часа.

Опциональные настройки (полностью пропустите, если не используются)

  • sshKeyName: Имя SSH-ключа EC2, который уже существует в us-east-1.
  • allowSSHFrom: Маска CIDR для разрешения SSH. Обычно это будет &lt;ваш_публичный_ip&gt;/32

Для установки выполните:

$ npm install
$ npm link
$ warcannon deploy

Быстрый старт

Запуск кампании в WARCannon использует простой и понятный рабочий процесс, который лучше всего описать в несколько шагов:

  1. Разверните инфраструктуру: warcannon deploy
  2. Разработайте и протестируйте шаблоны регулярных выражений локально: warcannon testLocal -s
  3. Проверьте шаблоны регулярных выражений в AWS через Lambda: warcannon test
  4. Просмотрите доступные обходы: warcannon list 2022
  5. Заполните очередь выбранным обходом: warcannon populate 2022-21
  6. Выполните кампанию: warcannon fire
  7. Дождитесь завершения кампании, затем получите результаты из S3 с помощью warcannon syncResults

Читайте далее для более детального понимания каждого шага.

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

WARCannon питается от Common Crawl через программу AWS Open Data. Common Crawl уникален тем, что данные, собранные их пауками, содержат не только текст веб-сайтов, но и другие текстовые материалы, такие как JavaScript, TypeScript, полный HTML, CSS и т. д. Создавая подходящие регулярные выражения, способные идентифицировать уникальные компоненты, исследователи могут определять веб-сайты по используемым ими технологиям, и делать это, не обращаясь к самому сайту. Проблема в том, что для этого требуется обработать сотни терабайт данных, что является серьёзной задачей независимо от имеющихся ресурсов. К счастью, WARCannon предоставляет несколько инструментов для её решения!

Разработка регулярных выражений

Поиск по всему интернету не для слабонервных, но начать с эффективного фильтра — первый шаг. WARCannon поддерживает это, позволяя локально проверять регулярные выражения на реальных данных Common Crawl. Сначала откройте lambda_functions/warcannon/matches.js и измените объект regex_patterns, включив в него регулярные выражения в формате name: pattern. Вот пример из набора поиска по умолчанию:

exports.regex_patterns = {
	"access_key_id": /(\'A|"A)(SIA|KIA|IDA|ROA)[JI][A-Z0-9]{14}[AQ][\'"]/g,
};

Строки, соответствующие этому выражению, будут сохранены под соответствующим ключом в результатах; в данном случае access_key_id. Совет профессионала: Используйте RegExr с форматом «JavaScript» для создания и тестирования регулярных выражений на известных совпадениях.

У вас также есть возможность сохранять результаты только с указанных доменов. Для этого просто заполните массив domains полными доменными именами (FQDN), которые вы хотите включить. Рекомендуется оставить его пустым [], так как это почти никогда не стоит того (экономия вычислительных усилий очень мала), но в некоторых специфических случаях это может быть полезно.

exports.domains = ["example1.com", "example2.com"];

После заполнения matches.js выполните следующую команду:

warcannon$ warcannon testLocal -s

При желании вы можете указать путь к WARC-файлу в бакете commoncrawl S3, но в противном случае будет использоваться жёстко заданное значение по умолчанию.

WARCannon будет обрабатывать WARC-файл в потоковом режиме (или загрузит его полностью, если вы опустите -s) для поиска настроенных совпадений. WARCannon сохранит результаты в папку ~/.warcannon/, когда вы прервёте выполнение с помощью ctrl+c или когда обработка завершится. Это позволяет очень быстро тестировать распространённые совпадения с минимальным использованием пропускной способности.

В дополнение ко всему, WARCannon попытается оценить общую вычислительную стоимость ваших регулярных выражений при локальном запуске. Таким образом, вы сможете узнать, повлияет ли данное регулярное выражение на производительность до выполнения кампании.

Image

Выполнение кастомной обработки

Иногда простого шаблона регулярного выражения недостаточно, и вам нужны дополнительные шаги, чтобы убедиться, что вы возвращаете правильную информацию. В этом случае достаточно добавить функцию в объект exports.custom_functions с тем же именем ключа, чтобы выполнить любую дополнительную обработку, какую вы сочтёте нужной.

Скачать инструмент