
Prende un singolo elemento di una wordlist e lo testa uno per uno su una vasta collezione di siti web prima di passare al successivo. Crea firme per confrontare le vulnerabilità su più host.
Directory e file brute forcing su siti web a scala estrema.
CritHit prende un singolo elemento della wordlist e lo testa uno per uno su una vasta raccolta di host prima di passare all'elemento successivo. L'intenzione del brute forcing eseguito in questo modo è di evitare i blocchi dei Web Application Firewall (WAF) con limiti bassi e di consentire al brute forcing di essere più veloce rispetto all'approccio normale che invia più richieste simultanee a un singolo host.
CritHit può eseguire multiple verifiche dei risultati utilizzando liste di proxy, oltre a filtrare il rumore stabilendo una baseline dei siti web. Inoltre, se si cerca un elemento specifico su un gran numero di siti web (per confrontare una vulnerabilità su più host), è possibile creare e utilizzare --signatures per scrivere in un file di output solo gli host che contengono punti dati specifici.
I migliori risultati con CritHit si ottengono utilizzandolo come un rapido "primo passaggio" con una wordlist più piccola (100 elementi critici) e una lista di destinazioni molto ampia, per poi approfondire direttamente con un progetto come ffuf dove vengono trovati risultati.
Ispirato dai progetti di EdOverflow Megplus e TomNomNom meg che hanno affrontato la stessa idea.
Ringraziamo anche Hakluke e sml555_ per aver perfezionato il concetto centrale, per l'incoraggiamento e per i test.
Questo strumento gira incredibilmente veloce con le impostazioni predefinite. Se lavori su un target con un WAF condiviso tra domini, verrai rapidamente bannato. Regola -n (timeout) e -c (thread) secondo necessità.
Installa le dipendenze:
/dep/ di questo repository; deve essere sostituita per compilare in altri ambienti.BOOST_ROOT sulla directory principale della libreria estratta.libcrypto.so.1.1 e libssl.so.1.1 nella tua directory /usr/lib, che sono inclusi nella directory dep/ di questo repository.Poi:
sudo apt-get install libssl-dev
Genera i file CMake (opzionale se in /codingo/opt)
cmake -G "Unix Makefiles"
Crea la soluzione
make
In alternativa, modifica il seguente per il tuo ambiente di destinazione:
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_
Si consiglia di esaminare i parametri di input fino a quando non verrà aggiunta una documentazione adeguata a questo repository.
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.