
Implementazione di un proxy proof-of-concept per attacchi di STARTTLS stripping.

Un'implementazione generica di proxy TCP e strumento di audit per eseguire intercettazioni ssl/tls indipendenti dal protocollo e attacchi di rimozione STARTTLS su SMTP, POP3, IMAP, FTP, NNTP, XMPP, ACAP e IRC.
Python2!
//Hai scoperto una vulnerabilità con l'aiuto di questo progetto? Fammelo sapere!
SSLContext) < Python 3--key=server.pemRisultati:```python
[Vulnerable!] <class striptls.StripWithInvalidResponseCode at 0xffd3138c>
[Vulnerable!] <class striptls.StripWithTemporaryError at 0xffd4611c>
[ ] <class striptls.StripFromCapabilities at 0xffd316bc>
[Vulnerable!] <class striptls.StripWithError at 0xffd4614c>
[Vulnerable!] <class striptls.StripInboundTLS at 0x7f08319a6808>
[Vulnerable!] <class striptls.StripFromCapabilities at 0x7f08319a67a0>
[Vulnerable!] <class striptls.UntrustedIntercept at 0x7f08319a6870>
## Utilizzo```
#> python2 -m pip install striptls
#> python2 -m striptls --help
Lo strumento rileva automaticamente se viene eseguito in Github Actions e legge le variabili d'ambiente pertinenti.``` #> python -m striptls --help # from pip/setup.py #> python striptls --help # from source / root folder Usage: striptls.py [options]
example: striptls.py --listen 0.0.0.0:25 --remote mail.server.tld:25
Options: -h, --help show this help message and exit -q, --quiet be quiet [default: True] -l LISTEN, --listen=LISTEN listen ip:port [default: 0.0.0.0:<remote_port>] -r REMOTE, --remote=REMOTE remote target ip:port to forward sessions to -k KEY, --key=KEY SSL Certificate and Private key file to use, PEM format assumed [default: server.pem] -s, --generic-ssl-intercept dynamically intercept SSL/TLS -b BUFFER_SIZE, --bufsiz=BUFFER_SIZE -x VECTORS, --vectors=VECTORS Comma separated list of vectors. Use 'ALL' (default) to select all vectors, 'NONE' for tcp/ssl proxy mode. Available vectors: ACAP.StripFromCapabilities, ACAP.StripWithError, ACAP.UntrustedIntercept, FTP.StripFromCapabilities, FTP.StripWithError, FTP.UntrustedIntercept, GENERIC.Intercept, IMAP.ProtocolDowngradeToV2, IMAP.StripFromCapabilities, IMAP.StripWithError, IMAP.UntrustedIntercept, IRC.StripCAPWithNotRegistered, IRC.StripFromCapabilities, IRC.StripWithError, IRC.StripWithNotRegistered, IRC.StripWithSilentDrop, IRC.UntrustedIntercept, NNTP.StripFromCapabilities, NNTP.StripWithError, NNTP.UntrustedIntercept, POP3.StripFromCapabilities, POP3.StripWithError, POP3.UntrustedIntercept, SMTP.InboundStarttlsProxy, SMTP.InjectCommand, SMTP.ProtocolDowngradeStripExtendedMode, SMTP.StripFromCapabilities, SMTP.StripWithError, SMTP.StripWithInvalidResponseCode, SMTP.StripWithTemporaryError, SMTP.UntrustedIntercept, XMPP.StripFromCapabilities, XMPP.StripInboundTLS, XMPP.UntrustedIntercept [default: ALL]
## Installazione (opzionale)
da pip
#> pip install striptls
da sorgente
#> setup.py install
## Esempi
inbound outbound
[inbound_peer]<------------->[listen:proxy]<------------->[outbound_peer/target]
smtp-client striptls remote/target
local `smtp-client` -> `localhost:8825` (proxy) -> `mail.gmx.net:25`
### Intercettazione SSL/TLS generica
`--generic-ssl-intercept` è un interruttore globale per abilitare il rilevamento della stretta di mano ssl/tls generica e la conversione della sessione. Può essere combinato con qualsiasi mangle/vector.
`GENERIC.Intercept` è un'implementazione mangle/vector della funzionalità di rilevamento e conversione della stretta di mano ssl/tls.