evilsocket - разботчик беттеркап, когда-то сказал:
Код:
SSL Stripping
SSL stripping is a technique introduced by Moxie Marlinspike during BlackHat DC 2009, the website description of this technique goes like:
It will transparently hijack HTTP traffic on a network, watch for HTTPS links and redirects, then map those links into either look-alike HTTP links or homograph-similar HTTPS links.
Long story short, this technique will replace every https link in webpages the target is browsing with http ones so, if a page would normally look like:
... <a href="https://www.facebook.com/">Login</a> ...
During a SSL stripping attack its HTML code will be modified as:
... <a href="http://www.facebook.com/">Login</a> ...
Being the man in the middle, this allow us to sniff and modify pages that normally we wouldn't be able to even see.
в двух словах: первая версия
sslstrip просто перенаправляла запрос хттпс на хттп и все.
а потом, на следующий год, то есть в 2010 появился HTST
Код:
HSTS Bypass
SSL stripping worked quite well until 2010, when the HSTS specification was introduced, Wikipedia says:
HTTP Strict Transport Security (HSTS) is a web security policy mechanism which helps to protect websites against protocol downgrade attacks and cookie hijacking. It allows web servers to declare that web browsers (or other complying user agents) should only interact with it using secure HTTPS connections, and never via the insecure HTTP protocol. HSTS is an IETF standards track protocol and is specified in RFC 6797.
Moreover HSTS policies have been prebuilt into major browsers meaning that now, even with a SSL stripping attack running, the browser will connect to HTTPS anyway, even if the http:// schema is specified, making the attack itself useless.
то бишь HSTS вмонтирован в большинство современных браузеров. то есть ломится исключительно на https, если оно предусмотрено. даже если мы отправляем запрос http.
по этому в 2014 году появился
sslstrip2
Код:
For this reason, Leonardo Nve Egea presented sslstrip+ ( or sslstrip2 ) during BlackHat Asia 2014. This tool was an improvement over the original Moxie's version, specifically created to bypass HSTS policies. Since HSTS rules most of the time are applied on a per-hostname basis, the trick is to downgrade HTTPS links to HTTP and to prepend some custom sub domain name to them. Every resulting link won't be valid for any DNS server, but since we're MITMing we can resolve these hostnames anyway.
Let's take the previous example page:
... <a href="https://www.facebook.com/">Login</a> ...
A HSTS bypass attack will change it to something like:
... <a href="http://wwww.facebook.com/">Login</a> ...
Notice that https has been downgraded to http and www replaced with wwww ).
When the "victim" will click on that link, no HSTS rule will be applied ( since there's no rule for such subdomain we just created ) and the MITM software ( BetterCap in our case ^_^ ) will take care of the DNS resolution, allowing us to see and alter the traffic we weren't supposed to see.
смысл атаки в том, что в ту долю секунды, когда понижается протокол до хттп - происходит подмена доменного имени.
(кстати, тут прошу камрадов пояснить - это дсн спуффинг или обычный редирикт?)
так вот, и жертва посещает уже не
www.facebook.com
, а
[COLOR=rgb(226, 80, 65)]w[/COLOR]www.facebook.com
, который не существует во внешнем интернете, но существует у нас на локалке. А на локалке у нас зеркало фейсбука. По сути жертва идет к нам на сервер (на атакующую машину) по поддельному адресу и видит там поддельный (зеркалированный) сайт. Отправляет запрос к нам на ПК, мы его видим, включая содержимое, и перенаправляем на реальный сервер. Устанавливаем с реальным сервером сессию ssl, все как надо, все как положенно. Сервер выдает нам ответ, открытым текстом (для нас открытым, так как мы имеет ключ для расшифровки). И мы в свою очередь возвращаем это все дело жертве уже по хттп. уже на фейковом домене, который крутится у нас на атакующей машине.
снова вопрос камрадам форума: с помощью какого, чер-возьми, инструмента зеркалировать фейсбук в режиме реального времени?! КАК?
на сегодняшний дей существует еще одно решение данного вопроса:
sslsplit
Код:
SSLsplit is designed to transparently terminate connections that are redirected to it using a network address translation engine. SSLsplit then terminates SSL/TLS and initiates a new SSL/TLS connection to the original destination address, while logging all data transmitted. Besides NAT based operation, SSLsplit also supports static destinations and using the server name indicated by SNI as upstream destination. SSLsplit is purely a transparent proxy and cannot act as a HTTP or SOCKS proxy configured in a browser.
SSLsplit supports plain TCP, plain SSL, HTTP and HTTPS connections over both IPv4 and IPv6. It also has the ability to dynamically upgrade plain TCP to SSL in order to generically support SMTP STARTTLS and similar upgrade mechanisms. SSLsplit fully supports Server Name Indication (SNI) and is able to work with RSA, DSA and ECDSA keys and DHE and ECDHE cipher suites. Depending on the version of OpenSSL built against, SSLsplit supports SSL 3.0, TLS 1.0, TLS 1.1 and TLS 1.2, and optionally SSL 2.0 as well.
For SSL and HTTPS connections, SSLsplit generates and signs forged X509v3 certificates on-the-fly, mimicking the original server certificate’s subject DN, subjectAltName extension and other characteristics. SSLsplit has the ability to use existing certificates of which the private key is available, instead of generating forged ones. SSLsplit supports NULL-prefix CN certificates but otherwise does not implement exploits against specific certificate verification vulnerabilities in SSL/TLS stacks.
смысл в том, что это прозрачный прокси, который принимает на себя запрос хттпс, разрывает его, вклинивается в алгоритм, и устанавливает новое ssl подключение с обеих сторон. на сколько я понимаю, я могу ошибаться.
а еще у него большой обвес возможностей и функционала. типа ipv6 и так далее.
инструмент поддерживается, имеет частично закрытый код, и доступен на гитхабе
Transparent SSL/TLS interception. Contribute to droe/sslsplit development by creating an account on GitHub.
github.com