Strona używa cookies (ciasteczek). Dowiedz się więcej o celu ich używania i zmianach ustawień. Korzystając ze strony wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.    X

[Bezpieczeństwo] Teoria obejścia SSL w Facebooku

Witam.

Ostatnio zabrałem się za pisanie sniffera który potrafi zgarnąć login i hasło z ponad 4 najpopularniejszych skryptów forum (phpBB, myBB, vBulletin, IPB), milionów blogów na Wordpressie, dobrychprogramów czy demotywatorów.
Czas przyszedł aby rozgryźć Facebooka i jego SSL.

Gdzie może tkwić wada SSL w Facebooku?

Zauważcie, że po wejściu na facebook.com strona domyślnie nie jest szyfrowana a na niej jest formularz logowania.

<form method="POST" action="https://www.facebook.com/login.php login_attempt=1" id="login_form" onsubmit="return Event.__inlineSubmit(this,event)"> <input type="hidden" name="charset_test" value="&euro;,&acute;,€,´,?,?,?" /><input type="hidden" name="lsd" value="Vqkhs" autocomplete="off" /> <input type="hidden" id="locale" name="locale" value="pl_PL" autocomplete="off" /><input type="text" class="inputtext" name="email" id="email" tabindex="1" /> <input type="password" class="inputtext" name="pass" id="pass" tabindex="2" /><input value="Zaloguj się" tabindex="4" type="submit" id="u519277_3" /> <input type="checkbox" class="inputcheckbox" value="1" id="persistent" name="persistent" checked="1" /> <input type="hidden" name="default_persistent" value="1" /> <input type="hidden" name="charset_test" value="&euro;,&acute;,€,´,?,?,?" /><input type="hidden" id="lsd" name="lsd" value="Vqkhs" autocomplete="off" /></form>

Rzecz jasna możliwe jest przechwycenie formularza, można by w nim zastąpić https na http a wtedy logowanie odbywało by się bez SSL.

Co potrzeba by było zrobić?

1. Zesniffować pakiety z formularzem (nie problem)
2. Skleić w sesję TCP (nie problem)
3. Oddzielić nagłówki od skompresowanej treści strony w GZIP (lekki problem)
4. Podmienić treść strony (https na http)
5. Skompresować
6. Podzielić na pakiety tak jak było przedtem (tutaj mógłby wystąpić ewentualny problem)
7. Wysłać

Pytanie do czytelników; Czy według Was to możliwe? To tylko moja teoria. 

Komentarze

0 nowych
Ryan   15 #1 10.04.2011 17:32

1. Nigdy nie masz gwarancji, że serwis udostępnia to samo po http i https, a zatem zmiana protokołu wystarczy. Przykładem takiego zachowania jest strona mBanku, która zależnie od protokołu serwuje inną stronę (winietę banku albo ekran dostępu do konta).

2. Przypadkiem FB pozwoli Ci na coś takiego, ale nie masz gwarancji, że zawsze tak będzie.

3. Skrypt dokonujący takiej podmiany to jedna linijka w Fiddlerze.

pilarek   5 #2 10.04.2011 17:34

Niezbyt mi się podoba, że takie rzeczy są opisywane na takim portalu.

webnull   9 #3 10.04.2011 17:58

@Ryan (redakcja)
W sumie później też pomyślałem, że można by puścić użytkownika przez transparentne proxy to by było chyba prostsze.

przemor25   14 #4 10.04.2011 20:33

@pilarek

To nie jest gotowiec w stylu: jak się włamać na FB tylko teoretyczne dywagacje na temat możliwości przychwycenia loginów i haseł użytkowników. Prawdopodobnie kto ma odpowiednią wiedzę to być może udałoby mu się coś takiego sklecić i bez tego wpisu. A kto nie ma odpowiedniej wiedzy - to i tak nic nie zrobi bo nie będzie potrafił (co najwyżej przestraszy się, że coś takiego teoretycznie jest możliwe). Gdyby to był poradnik pt. "Łamanie DRMów" to wtedy faktycznie wpis powinien być od razu usunięty przez Moderatora. Zresztą: to tylko teoria.

XeonBloomfield   5 #5 10.04.2011 20:45

@pilarek | 10.04.2011 17:34:

Zgadzam się z przedmówcą (przemor25 | 10.04.2011 20:33)...

Jest to sucha teoria z zakreślonymi prawdopodobnymi krokami działania.

Dodatkowo uważam, że nie ma problemu, aby taki wpis egzystował na takim portalu jak dobreprogramy.pl... Blog jak już pisała wiele razy redakcja może służyć do dzielenia się ze światem swoimi odkryciami, przemyśleniami oraz nie mieć ogromnej cenzury, bo nawet tematy, których nikt nie rusza muszą być kiedyś poruszone...

webnull   9 #6 10.04.2011 21:04

W końcu wycofałem się z tej metody głównie z powodu braku możliwości usunięcia starego pakietu z danymi w celu zastąpienia go nowym.

Teraz piszę sobie narzędzie "arproute" do ARP Spoofingu/Poisoningu.

Moje nowe narzędzie będzie przekierowywać ruch sieciowy na komputer z PROXY który będzie zmieniać "https" na "http" ;-)

XeonBloomfield   5 #7 10.04.2011 21:08

@webnull | 10.04.2011 21:04:

You are small beast...

webnull   9 #8 10.04.2011 21:09

@XeonBloomfield
No, no..

To dzięki mnie włączyłeś u Siebie szyfrowanie na sieci WiFi, gdybym Cię nie uświadomił to sąsiad by nadal korzystał...

XeonBloomfield   5 #9 10.04.2011 21:18

@webnull | 10.04.2011 21:09:

Pokazanie przykładów i ostatni projekt "extsniff" pokazały jak łatwo można zaingerować w czyjąś prywatność...

webnull   9 #10 10.04.2011 21:25

@XeonBloomfield
Przykladów będzie więcej bo ostatnio zagłębianie się w tematykę bezpieczeństwa stało się moją pasją ;-)

  #11 10.04.2011 21:27

O jaa, ludzie, ten wpis to taki Fakt wśród dzienników pokroju Rzeczpospolita. :D Dzieciaki w klasie maturalnej może jeszcze uwierzą w tę notatkę. Osoby które na studiach bawią się w szeroko pojęte programowanie (niezależnie od specjalności) mają teraz niezły ubaw :)

XeonBloomfield   5 #12 10.04.2011 21:32

@webnull | 10.04.2011 21:25:

Praktyka czyni mistrza - to przysłowie mimo wszytko jest zawsze na czasie... ;)

januszek   18 #13 11.04.2011 07:56

Miliony użytkowników phpBB, myBB, vBulletin, IPB, Wordpressa, dobrychprogramów i Facebooka na pewno poczuło strach i oblało się zimnym potem z przerażenia... ;P

tfl   8 #14 11.04.2011 08:47

To juz ktorys z kolei wpis, a "bezpieczenstwie" w sieci. Pokazujesz "metody" sniffowania, przekierowywania ruchu na http, etc. Piszesz "programy", stawiasz proxy itd. Wspaniale, ale...

jak juz napisal Ryan, a dotyczy tego posta, nie masz pewnosci ze serwis serwuje to samo na http, co na https. Jesli serwis daje to samo na http i https, to jest to wada systemu i nic user nie moze zrobic, poza nie logowaniem sie do tego serwisu.
a ja ze swojej strony dodam jeszcze, ze wszystko pieknie, fajnie, ale za kazdym razem Twoje metody beda dzialaly, gdy podlaczysz sie do sieci, w ktorej pracuje ofiara. Ataki typu man in the middle wymagaja ingerencji chocby w dns. Wobec tego w Twoim przypadku brakuje przynajmniej jednego kroku.

co nie zmienia faktu, ze nawet najprostsze rozwiazania zadzialaja na jakiegos uzytkownika, ktory po prostu nie wie co robi. idac krok dalej - najbardziej wysublimowana format ataku "oprogramowaniem" nie bedzie tak skuteczna jak w prosta, ale trafna metoda socjotechniczna.

anakkin   5 #15 11.04.2011 08:51

cóż, wygląda na to, że na http też się da zalogować...

webnull   9 #16 11.04.2011 09:11

@tfl
W wolnym czasie pobawię się w stawianie transparentnego proxy, wydaje mi się to już rozsądniejszym sposobem niż oryginalnym opisanym we wpisie.

webnull   9 #17 11.04.2011 09:12

@januszek
No a jak :-)

  #18 11.04.2011 11:31

że też moderatorzy akceptują tak wulgarne, nic nie wnoszące komentarze od trolli.

a ten Pan anonim brzmi nieco znajomo, prawie jak Nazir?

tfl   8 #19 11.04.2011 12:43

@webnull

No ok... masz to transparentne proxy... ale jak zmusisz klienta do przejscia przez nie? Musisz zmodyfikowac dns, tak by wskazane przez Ciebie adresy szly przez Twoj system. A dostanie sie do serwera dns juz nie jest takie proste i nie skonczy sie na prostym filtrowaniu pakietow

  #20 11.04.2011 14:11

webnull, nie masz zielonego pojecia co robisz, tylko zapytales mnie co o tym sadze i teraz widze ze sprzedajesz moja wiedze jako twoja wlasna, ( http://logs.ubuntu-eu.org/freenode/2011/04/10/%23ubuntu-pl.html - dyskusja sie zaczyna gdzies tak kolo polowy loga), najpierw poczytaj o temacie doglebnie a potem pisz cos co ma sens a nie jakies pseudoteorie na podstawie cudzej wiedzy

  #21 11.04.2011 15:22

@webnull
Co się będziesz wysilał, pokaż jak się obchodzi SSL podczas logowania do któregoś z banków.

IuEnLaMondo   3 #22 11.04.2011 16:07

Trolle nie zauważają, że obejście SSL, a włamywanie się do systemu to dwie zupełnie inne sztuki. To tak jakby kazać gościowi, który potrafi zrobić SQLInjection napisać złośliwe oprogramowanie.
Poza tym w temacie wyraźnie jest zaznaczone, że to teoria, a pomiędzy teorią, a praktyką (niestety) stoi spory mur.

webnull   9 #23 11.04.2011 16:57

@zorak
Banki szyfrują całe połączenie od początku do końca w SSL dlatego to nie jest takie proste i praktycznie niemożliwe.

webnull   9 #24 11.04.2011 16:59

@jacekowski (niezalogowany)
A gdzie tam sprzedaję, spytałem o radę bo wiem, żeś doświadczony i mądry człowiek :-)

Mój sposób zawiódł do pewnego stopnia dlatego staram się zaimplementować sposób który mi podsunąłeś za który Ci bardzo dziękuję.

webnull   9 #25 11.04.2011 17:03

@tfl
Czemu od razu atakować DNS? ;-)

Można by podać się za access point i pośredniczyć w komunikacji co nazywa się man in the middle.

Wtedy postawić proxy np. paros.

Wystarczy ARP Poisoning + PROXY moim zdaniem.

Tyle co znalazłem w sieci na ten temat:
http://www.youtube.com/watch?v=TR8F23rx5oQ

Pięknie przedstawione, tyle że ja bym większość sobie ładnie do Pythona przepisał i zrobił większość z automatu (tyle ile można) i być może znalazł jakiś lepszy serwer proxy.

tomimaki   6 #26 11.04.2011 17:54

@webnull
Uważaj, bo ramones shakuje Ciebie NISem. ;P

  #27 11.04.2011 18:05

Znam gościa któremu udało się włamać na czyjeś konto na FB...

tfl   8 #28 11.04.2011 19:06

@webnull

arp -s adres.ip.bramy.1 jego:mac:adress:itd:itp

I po Twoim arp poisoningu... ataki arp to faktycznie spora moc, ale rowniez spore wymagania... trzeba sobie jasno powiedziec, ze na kazdy sposob, jest jakas forma obrony. I w druga strone rowniez- na kazda forme obrony, jest jakis sposob. Wszystko zalezy jednak od tego, jak doswiadczony jest uzytkownik.

I mozemy sie szarpac jak dzieci, Ty w swoja strone, ja w swoja, ale za kazdym razem mozemy sobie przytaczac jakies sposoby.

webnull   9 #29 11.04.2011 21:00

@tfl
Oczywiście, że można przyporządkować stały adres do danego komputera lokalnie i to jest bardzo dobre zabezpieczenie.

Lecz w publicznych sieciach WiFi takie zabezpieczenie nie ma raczej zastosowania ;-)

tfl   8 #30 11.04.2011 21:51

@webnull

jak to nie ma?

podpinam sie do publicznego wi fi, od dhcp dostaje adres ip, maske, brame. sprawdzam w arp adres fizyczny bramy, arp -s i mam adres bramy ustawiony statycznie, wskazuje wlasny adres dns (na przyklad googlwy). W tej chwili mam (no... nieomal) pewnosc, ze ktos sie mi nie podszyje pod bramke ani nie sprobuje phisingowac.
Oczywiscie, o ile ten publiczny wi fi nie jest z zalozenia jakas totalna kaszana, tylko zwyklym hotspotem na stacji.

nothing is secured, paranoia is your friend :)

webnull   9 #31 12.04.2011 09:50

@tfl
No to ja podstawię fałszywy serwer DHCP, i co? ;-)

tfl   8 #32 12.04.2011 10:26

@webnull

to juz nie jest arp poisoning.

webnull   9 #33 12.04.2011 11:17

@tfl
Wiem, ale to w sumie by wystarczyło.

tfl   8 #34 12.04.2011 15:31

@webnull

pod warunkiem, ze siec nie jest tak skonfigurowana, by wskazywala konkretny adres dhcp... itd, dla mnie koniec tematu

  #35 29.11.2012 19:16

Ja nie mogę wejśc na fb ponieważ włacza mi sie takie coś https://www.facebook.com/login.php?login_attempt=1 Pomoóżcie mi .! Z góry Dziękuje. :)