Linux за българи: Форуми

Сигурност => Системна Сигурност => Темата е започната от: programings в Sep 03, 2014, 21:41



Титла: Как точно работи sslstrip?
Публикувано от: programings в Sep 03, 2014, 21:41
Още преди време, когато започнах да чопкам InfoSec, все съм си мислил, че инструментът sslstrip на Moxie Marlinspike разчита на осъществена man-in-the-middle атака, и просто маха s-то от https://-а на всеки един URL, който жертвата request-ва, и това си работи на сайтове, където HSTS не е имплементиран.

Днес обаче, докато си гледах един епизод на Hak5, съвсем случайно осъзнах, че съм живял в заблуда.

Изглежда действието на sslstrip зад завесата е доста по-сложно... явява се прокси лейър, който фалшифицира сертификати, но общо взето от наличното в мрежата въобще не можах да асимилирам как се осъществява процесът в детайли.

Може ли някой да обясни простичко как работи sslstrip?


Титла: Re: Как точно работи sslstrip?
Публикувано от: gat3way в Sep 03, 2014, 22:31
Никакви сертификати не фалшифицира, но наистина проксира съдържание. от sslstrip до сървъра комуникацията е https, оттам към жертвата е http, като всякакви линкове към https върнати от сървъра динамично се променят на http.

Някои кхм компании обаче и да "фалшифицират" сертификати се пробваха, благодарение на идиоти като Trustwave. В общи линии това е далеч по-ефективно, макар че и браузърите се научиха да pin-ват сертификати и да реват като не съответстват. Chrome-а например го прави по дефолт без никакви разширения за https сървърите на google, там дори тоя номер няма да мине...ако искаш да слухтиш https трафика за към google де.


Титла: Re: Как точно работи sslstrip?
Публикувано от: programings в Sep 03, 2014, 23:07
Тоест имаме схема от рода на:

Жертва < -- > HTTP < -- > sslstrip < -- > HTTPS < -- > Сървър ?

И, доколкото разбирам, нещата протичат така:

1. sslstrip слухти за минаващ HTTPS трафик.
2. Засича такъв, взима съответното съдържание през HTTPS от сървъра, и го кешира локално.
3. Обработва кешираните данни, променя всички https href-и на http, и го връща на жертвата over plain HTTP.
4. Примерно е логин страница, и жертвата си въвежда логин данните, което при изпращането на формата отива до sslstrip, и ни се output-ва.
5. За да имаме двустранна комуникация, sslstrip препраща данните през HTTPS до сървъра, и се осъществява логин.

Тук изниква следният въпрос: Ако спрем sslstrip, какво се случва с отворената SSL/TLS връзка, тъй като жертвата няма нужният public key на сървъра (нито пък е генерирала свой), и въобще не знае, че в бекграунд комуникацията и със сървъра минава през https, като затворената програма sslstrip се е грижила за това?
Терминира ли се?



Титла: Re: Как точно работи sslstrip?
Публикувано от: gat3way в Sep 04, 2014, 00:33
Схемата е такава, да.

Обаче sslstrip не слухти за минаващ HTTPS трафик, защото няма как да знае какво става там. TLS сесията се  установява преди да мине HTTP заявката и sslstrip на практика няма как да знае какво точно заявяваш. Сега теоретично може да може да гадае и да ти сервира нещо използвайки самоподписан сертификат, създаден динамично за целта но не мисля че е добра идея и определено доста ще бие на очи.

С други думи ако първата заявка която правиш към някой сайт е https и HTML документа който се зарежда няма никакви препратки към http ресурси, sslstrip няма как да сработи.

P.S под "първа заявка" разбирай да го нашиеш в URL bar-а на браузъра и да го отвориш, не да следваш линкове към него, линковете може вече да са "пренаписани".


Титла: Re: Как точно работи sslstrip?
Публикувано от: programings в Sep 04, 2014, 01:04
Ахаааа, ето каква била работата. Ясно.
Благодаря ти за обяснението.  :)

А за това да се форсира потребителският браузър да отваря даден ресурс през https още с първата заявка HSTS (чрез изпращане на даденият хедър и справка в листите със сайтове за които е сигурно, че поддържат SSL, hardcode-нати браузърите) ли се грижи?


Титла: Re: Как точно работи sslstrip?
Публикувано от: gat3way в Sep 04, 2014, 01:08
Браузърите се грижат. Дали подържат списък със сървъри за които е сигурно че подържат https не знам, не могада кажа, иначе подържат списък с такива за които вече е върнат хедъра и ги пазят там колко време е указано в него.

HSTS не е перфектното решение де, защото ако си нацелил да направиш първата заявка точно докато някой те mitm-ва, той спокойно може да не ти връща никакъв хедър. Та вероятно да, поради тази причина може в браузърите да има и хардкоднати списъци. За хрома и гугълските услуги примерно въобще не бих се учудил.


Титла: Re: Как точно работи sslstrip?
Публикувано от: programings в Sep 04, 2014, 01:17
Явно и Mozilla го правят - https://blog.mozilla.org/security/2012/11/01/preloading-hsts/

Цитат
Our “preload list” has been seeded with entries from Chrome’s list of a similar function.

 :D

И това ако не е доказателство, че Google контролира много неща при разработката на Firefox... например охромяването на интерфейса в новите версии, със закръглените табове, ма тва е извън темата.