
Берёт один элемент из списка слов и проверяет его по одному на большом наборе веб-сайтов, прежде чем перейти к следующему. Создаёт сигнатуры для перекрёстной проверки уязвимостей на нескольких хостах.
Брутфорс веб-сайтов по директориям и файлам с экстремальной скоростью.
CritHit берет один элемент из wordlist и последовательно проверяет его на большой коллекции хостов, прежде чем перейти к следующему элементу. Такой подход к брутфорсу позволяет избежать низких лимитов блокировок межсетевых экранов веб-приложений (WAF) и ускорить выполнение по сравнению с одновременными множественными запросами к одному хосту.
CritHit может выполнять множественные проверки результатов с помощью списков прокси, а также отфильтровывать шум, используя базовую оценку веб-сайтов. Кроме того, если нужно найти конкретный элемент на большом количестве веб-сайтов (чтобы сравнить уязвимость на множестве хостов), можно создать и использовать --signatures, чтобы записать в выходной файл только те хосты, которые содержат определённые точки данных.
Наилучшие результаты от CritHit можно получить, используя его как быстрый «первый проход» с небольшим (100 критических элементов) wordlist, очень большим списком целей, а затем проводить более глубокое исследование напрямую с помощью такого проекта, как ffuf, там, где найдены результаты.
Вдохновлено проектами EdOverflows Megplus и TomNomNom's meg, в которых реализована аналогичная идея.
Также благодарность Hakluke и sml555_ за доработку основной идеи, поддержку и тестирование.
При настройках по умолчанию работает безумно быстро. Если вы работаете с целью, имеющей общий WAF для доменов, вас быстро заблокируют. При необходимости настройте параметры -n (таймаут) и -c (потоки).
Установите зависимости:
/dep/ этого репозитория; для сборки в других средах её потребуется заменить.BOOST_ROOT, указав корень извлечённой библиотеки.libcrypto.so.1.1 и libssl.so.1.1 в директории /usr/lib; эти файлы находятся в dep/ данного репозитория.Затем:
sudo apt-get install libssl-dev
Создание файлов CMake (опционально, если находитесь в /codingo/opt)
cmake -G "Unix Makefiles"
Сборка решения
make
Альтернативно, измените приведённые ниже команды для вашей среды:
wget "https://dl.bintray.com/boostorg/release/1.70.0/source/boost_1_70_0.tar.gz"
tar -xvzf boost_1_70_0.tar.gz
export BOOST_ROOT="/home/boost_1_70_0"
cd crithit/crithit
cmake -G "Unix Makefiles"
make
./crithit -w _wordlist_ -t _hostnames_
cd crithit/crithit
docker build -t crithit .
docker run -v $(pwd):/input -t crithit -w /input/_wordlist_ -t /input/_hostnames_
Рекомендуется ознакомиться с входными параметрами до добавления полной документации в этот репозиторий.
USAGE:
./crithit [--os <filename>] [--signatures <filename>] [-e <filename>]
[-n <integer>] [--read-for <integer>] [-p <filename>]
[--max-sockets <integer>] [-V <integer>] [-r] [-b <string>]
[-s <string>] [-c <integer>] [-t <filename>] [-T <domain
name>] [--verbose] -w <filename> [-o <filename>] [--]
[--version] [-h]
Where:
--os <filename>
if --signatures is specified, this specifies the output file to write
result to
--signatures <filename>
file containing list of signatures to look out for in top-level
domains
-e <filename>, --exceptions <filename>
filename containing words...
-n <integer>, --wait-for <integer>
wait N seconds to connect/send data to server(default: 5secs)
--read-for <integer>
wait N seconds to receive data from server(default: 10secs)
-p <filename>, --proxy <filename>
a filename containing list of proxy names and port(IP:port)
--max-sockets <integer>
Number of sockets to use
-V <integer>, --verify <integer>
verify successful results with different proxies
-r, --randomize-agent
use random user agents for requests
-b <string>, --statuscodesblacklist <string>
Negative status codes (will override statuscodes if set)
-s <string>, --statuscodes <string>
Positive status codes (will be overwritten with statuscodesblacklist
if set)(default 200,204,301,302,307,401,403,408)
-c <integer>, --threads <integer>
Number of threads to use(default: 12)
-t <filename>, --target-list <filename>
a filename containing the list of targets
-T <domain name>, --target <domain name>
the target
--verbose
be verbose with output
-w <filename>, --word-list <filename>
(required) a filename containing list of words to use
-o <filename>, --output <filename>
output result to (default: stdout)
--, --ignore_rest
Ignores the rest of the labeled arguments following this flag.
--version
Displays version information and exits.
-h, --help
Displays usage information and exits.