
تنفيذ POC لوكيل لهجمات تجريد STARTTLS

تطبيق بروكسي TCP عام وأداة تدقيق لتنفيذ اعتراضات ssl/tls مستقلة عن البروتوكول وهجمات تجريد STARTTLS على SMTP وPOP3 وIMAP وFTP وNNTP وXMPP وACAP وIRC.
Python2!
//اكتشفت ثغرة بمساعدة هذا المشروع؟ أرسل لي رسالة!
SSLContext) < Python 3--key=server.pemالنتائج:```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>
## الاستخدام```
#> python2 -m pip install striptls
#> python2 -m striptls --help
usage: httpx -u https://domain.com -debug
Note: use -debug flag to capture request and response.
...``` #> 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]
## تثبيت (اختياري)
من pip
#> pip install striptls
من المصدر
#> setup.py install
## أمثلة
inbound outbound
[inbound_peer]<------------->[listen:proxy]<------------->[outbound_peer/target]
smtp-client striptls remote/target
محلي `smtp-client` -> `localhost:8825` (وكيل) -> `mail.gmx.net:25`
### اعتراض SSL/TLS العام
`--generic-ssl-intercept` هو مفتاح عام لتمكين اكتشاف المصافحة SSL/TLS العام وتحويل الجلسة. يمكن دمجه مع أي mangle/vector.
`GENERIC.Intercept` هو تنفيذ mangle/vector لميزة اكتشاف وتحويل مصافحة SSL/TLS.