Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
Strumenti/GitHubGitHub/synacktiv/prox-ez
Proxy Web e IntercettazioneStrumenti di ImpersonificazioneMovimento LateralePost-ExploitPenetration TestingAutenticazioneRed Teaming
GitHubsynacktiv/prox-ez

Prox-Ez

Proxy di intercettazione HTTP/HTTPS per testare i meccanismi di autenticazione Windows, con supporto per NTLM, Kerberos, pass-the-hash, pass-the-ticket e attacchi relay, dotato di generazione integrata di certificati per il MITM.

Vedi Repository
110112 mesi faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Prox-Ez: il coltellino svizzero dell'autenticazione HTTP

Questo proxy HTTP gestisce tutte le autenticazioni HTTP per tuo conto.

Supporta NTLM EPA (channel binding e service binding), Kerberos, pass-the-hash, overpass-the-hash (pass-the-key) e pass-the-ticket (TGT e TGS).

Articoli correlati:

  • Dissezionare NTLM EPA con amore e costruire un proxy MitM
  • Uno studio sull'autenticazione HTTP di Windows (Parte II)

Installazione

  1. Installa le dipendenze
root@kitploit:~
$ # In un venv
$ python3 -m venv venv
$ source venv/bin/activate
$ python3 -m pip install -r requirements.txt

Oppure puoi usare pip/pipx per installare direttamente il progetto

root@kitploit:~
$ # Con pip
$ pip3 install git+https://github.com/synacktiv/Prox-Ez
root@kitploit:~
$ # Con pipx
$ pipx install git+https://github.com/synacktiv/Prox-Ez
  1. Goditelo.

Utilizzo

Avvio rapido

Eseguilo così: proverà ad autenticarsi con le credenziali mydomain/myusername:mypassword su qualsiasi sito web che richieda l'autenticazione:

root@kitploit:~
python3 proxy.py -dc mydomain/myusername:mypassword

Lo stesso ma usando l'NT hash al posto della password:

root@kitploit:~
python3 proxy.py -dc mydomain/myusername --hashes :31d6cfe0d16ae931b73c59d7e0c089c0

Con BurpSuite

Per funzionare con BurpSuite:

  • Disabilita il supporto HTTP/2: Project options -> HTTP -> HTTP/2 -> deseleziona Enable HTTP/2
  • Deseleziona Set response header "Connection: close" poiché NTLM autentica una connessione TCP: Proxy -> Options -> Miscellaneous -> deseleziona Set response header "Connection: close".
  • Deseleziona Set "Connection" header on incoming requests when using HTTP/1: Proxy -> Options -> Miscellaneous -> deseleziona Set "Connection" header on incoming requests when using HTTP/1

Successivamente, devi solo specificare un proxy upstream in Burp, così che usi questo proxy per l'host con cui non riesci ad autenticarti:

  • In Project options -> Connections -> Upstream Proxy Servers -> clicca Add -> specifica l'hostname remoto che causa problemi con l'autenticazione NTLM, l'host e la porta del proxy configurati nello strumento e lascia Authentication type su None.
  • Potresti anche dover disabilitare il proxy SOCKS se abilitato.

Aiuto

root@kitploit:~
$ python3 proxy.py -h
usage: proxy.py [-h] [--listen-address LISTEN_ADDRESS] [--listen-port LISTEN_PORT] [--cacert CACERT] [--cakey CAKEY] [--cakey-pass CAKEY_PASS] [--certsdir CERTSDIR] [--singleprocess] [--debug] [--dump-keys DUMP_KEYS] [--creds CREDS]
                [--default-creds DEFAULT_CREDS] [--hashes HASHES] [--kerberos] [--dcip DCIP] [--spn SPN] [--spn-force-fqdn] [--no-epa]

Prox-Ez: The Swiss Army Knife of HTTP auth.

optional arguments:
  -h, --help            show this help message and exit
  --listen-address LISTEN_ADDRESS, -l LISTEN_ADDRESS
                        Address the proxy will be listening on, defaults to 127.0.0.1.
  --listen-port LISTEN_PORT, -p LISTEN_PORT
                        Port the proxy will be listening on, defaults to 3128.
  --cacert CACERT       Filepath to the CA certificate, defaults to ./cacert.pem. Will be created if it does not exists.
  --cakey CAKEY         Filepath to the CA private key, defaults to ./cakey.pem. Will be created if it does not exists.
  --cakey-pass CAKEY_PASS
                        CA private key passphrase.
  --certsdir CERTSDIR   Path to the directory the generated certificates will be stored in, defaults to /tmp/Prox-Ez. Will be created if it does not exists.
  --singleprocess, -sp  Do you want to be slowwwww ?! Actually useful during debug.
  --debug, -d           Increase debug output.
  --dump-keys DUMP_KEYS, -dk DUMP_KEYS
                        File to dump the SSL/TLS keys to. Useful when trying to debug. When this option is specified, --singleprocess is implied.
  --creds CREDS         Path to the credentials file, for instance: { "my.hostname.com": { "creds": "domain/user:password", "spn": "HTTP/anothername" }, "my.second.hostname.com": { "creds": "domain1/user1", "hashes": ":nthash1" } }
  --default-creds DEFAULT_CREDS, -dc DEFAULT_CREDS
                        Default credentials that will be used to authenticate.
  --hashes HASHES       Could be used instead of password. It is associated with the domain and username given via --default_creds. format: lmhash:nthash or :nthash.
  --kerberos, -k        Enable kerberos authentication instead of NTLM.
  --dcip DCIP           IP Address of the domain controller (only for kerberos).
  --spn SPN             Use the provided SPN when an SPN is needed. More details in the article.
  --spn-force-fqdn      Force the usage of the FQDN as the SPN instead of what was specified in the URL.
  --no-epa              Deactivate the NTLM EPA feature.

Problemi noti

  • Nessun supporto per WebSocket. Genererà errori di asserzione come:
root@kitploit:~
DEBUG:Proxy.ProxyToServerHelper:Our state: MIGHT_SWITCH_PROTOCOL; their state: SEND_RESPONSE
[...]
    assert self.conn.our_state in [h11.DONE, h11.MUST_CLOSE, h11.CLOSED] and self.conn.their_state is h11.SEND_RESPONSE
AssertionError
Scarica lo strumento