Wifileaks

Door Slurpgeit op maandag 10 december 2012 22:25 - Reacties (47)
Categorie: -, Views: 8.512

Eigenlijk loop ik al langer te spelen met dit onderwerp, maar ik kan niet echt besluiten of het spannend genoeg is om tijd aan te besteden. Dat en luiheid, vooral luiheid. Maargoed, nu dan toch.

Ik denk dat de meeste mensen ondertussen wel bekend zijn met het prachtverschijnsel WiFi (wat kort is voor "Wireless Fidelity" maar toch ook niet). Wat vooral onwijs handig is, is dat er op veel plekken "gratis" openbare hotspots worden aangeboden. Nu denk je natuurlijk: "Ja, pff, ga anders nog even lopen miepen over het gebrek van encryptie, huilie". Maar neen! Dit stukje gaat meer over zakkenrollen dan over afluisteren.

Vertel Bert, vertel..
Het leuke is dus, dat apparaten 99 van de 100 keer onthouden met welke access points ze ooit verbonden zijn. Lekker belangrijk, zul je denken, maar zolang ze geen verbinding hebben met een ander access point (En zelfs dan soms nog, those cheating bastards), zoeken ze naar alle access points uit het lijstje. Wat voor nog meer vermaak zorgt, is dat elke jongeman (of vrouw) met een handigheid in techniek, en dan vooral computers dit kan zien. Mits in bereik natuurlijk. Zie hier:

https://dl.dropbox.com/u/7521450/blog/wifileaks/probes.png

"Grote neukende overeenkomst", hoor ik je denken. Nou ja, je kan er natuurlijk bij sommige mensen redelijk goed aan zien waar ze bijvoorbeeld allemaal uithangen, en hoe het WiFi netwerk thuis heet (Wat misschien inzicht geeft in een denkwijze, weet ik 't). Maar het echte spannende is als je netwerk namen ziet verschijnen als:
  • KPN
  • Free-hotspot.com
  • $randomhotel-guest
  • Belgacom
  • Gastwifi
  • etc..
https://dl.dropbox.com/u/7521450/blog/wifileaks/freeprobe.png

Maar, waarom dan?
Omdat de lieve apparaten niet alleen zoeken naar die netwerken, maar ook vaak verbinden mits het type encryptie overeen komt. En dan is het opeens wel spannend dat ze dat niet gebruiken, want dan kan je natuurlijk ook gewoon zelf een nep access point opzetten.

Pff, zo technisch ben ik niet
Gelukkig is het niet zo moeilijk. Iedere malloot met backtrack kan het. Daarin zit namelijk de mooie tool: SET (Of "Social Engineer Toolkit"). Je loopt een mooie wizard door, en voor je het weet, profit:

https://dl.dropbox.com/u/7521450/blog/wifileaks/set.png

Opzich kan je zelf al een beetje uitzoeken wat het doet, aan de hand van de tekst. Maar de TL;DR versie is:
  • Kijk naar welke netwerken gezocht wordt
  • Maak neppe access points aan met al die namen
  • Zorg dat iedereen kan verbinden en internet toegang heeft
  • Onderschep al het verkeer
Goed, omdat ik niet mijn hele straat op m'n dak wil hebben aan het einde van dit blog, doe ik het liever even zelf. Paar minuten later, draait er een Access Point met de naam KPN, en een DHCP server om voor de IP's te zorgen:

https://dl.dropbox.com/u/7521450/blog/wifileaks/airbase.png
https://dl.dropbox.com/u/7521450/blog/wifileaks/dhcp.png

Wifi op m'n tablet aan, wanneer plots:

https://dl.dropbox.com/u/7521450/blog/wifileaks/connect.png
https://dl.dropbox.com/u/7521450/blog/wifileaks/dhcpack.png

En ik kan vrolijk internetten op m'n tablet.

Goedzo, je bent nu een gratis internet provider. En nu?
Verkeer sniffen. Soms zegt een simpel plaatje gewoon meer :Y)

https://dl.dropbox.com/u/7521450/blog/wifileaks/wireshark1.png

Het enige probleem is die vervelende SSL versleuteling. Het enige wat je daarvan ziet is:

https://dl.dropbox.com/u/7521450/blog/wifileaks/ssl.png

De trouwe tweaker ziet hier een verzoek naar facebook, wat eigenlijk direct met een 302 een omleiding krijgt naar de HTTPS variant. Vervolgens zie je alleen garbage.

Enter SSLstrip
Zoals de woorden hierboven doen vermoeden, is er een oplossing voor: sslstrip. Het idee is simpel. Al het normale web verkeer loopt via ssltrip, totdat deze een omleiding tegenkomt naar https. ssl strip zet zelf de SSL verbinding naar de doelserver op, en veranderd het verkeer zodat de client (In dit geval mijn tablet) gewoon netjes op http zonder versleuteling blijft. Zie hier, uw basis woman in the middle aanval. Nu is er opeens wel boeiende data te zien:

https://dl.dropbox.com/u/7521450/blog/wifileaks/login1.png

En nog één keer onder het rokje:

https://dl.dropbox.com/u/7521450/blog/wifileaks/login3.png

Nu is dit natuurlijk een beetje rommelige manier om het verkeer te bekijken, dus mocht je het willen, kan je er natuurlijk ook een intercepting proxy inzetten zoals Burp:

https://dl.dropbox.com/u/7521450/blog/wifileaks/burp.png

Het leuke is, dat je hiermee automatisch requests en responses van en naar de server kan aanpassen om allerlei leuke dingen te doen, maar dat laat ik aan jullie fantasie over.

..dat is alles?
Voor mobiele devices zo ongeveer wel ja. Maar gelukkig hebben laptops ook vaak WiFi. En als je daar het verhaal van hierboven mee combineert, kan je wat leuke bezigheden zelf wel verzinnen denk ik. Je hebt namelijk volledige controle over de internetverbinding. Ik noem:
  • DNS responses faken om andere sites te tonen
  • iframes injecteren in legitime responses om op de achtergrond exploit kits uit te voeren
Oftewel, toegang krijgen tot het besturingssysteem van de laptop zelf (Ja, ook Linux, ook Mac OS X). Kwestie van de fantastische browser autopwn van metasploit aanzetten, en er worden automagisch een bootlading zwarte pieten exploits afgevuurd op de systemen (Ook voor mobile devices, trouwens). Dat ziet er ongeveer zo uit:

https://dl.dropbox.com/u/7521450/blog/wifileaks/autopwn1.png

Met een grand total van:

https://dl.dropbox.com/u/7521450/blog/wifileaks/autopwn2.png

Daar moet wel iets tussen zitten toch? Even je target machine overhalen de link te bezoeken, en:

https://dl.dropbox.com/u/7521450/blog/wifileaks/autopwn3.png

Blijkbaar is de standaard Windows 7 SP1 installatie kwetsbaar voor MS11_003 :Y). En dat houdt in, een meterpreter shell op het systeem:

https://dl.dropbox.com/u/7521450/blog/wifileaks/autopwn4.png

Nu ben je vrij om te doen wat je wil op het systeem. Wachtwoorden dumpen, backdoor installeren die terug connect als de laptop thuis of op het werk wordt aangesloten, etc.

Nou, mooi, dan knikker ik gewoon alle netwerken uit m'n lijst na gebruik
Ja, inderdaad, en dat zou je ook moeten doen. Behalve, als je zo'n mooi stukje hardware hebt met een appeltje en iOS erop. Daar kan je namelijk alleen netwerken verwijderen, als ze ook daadwerkelijk ontvangen kunnen worden door het apparaat. Dus niet vergeten het netwerk te verwijderen als je klaar bent met je big tasty met bacon!

Digibewusteloos

Door Slurpgeit op maandag 3 december 2012 22:21 - Reacties (41)
Categorie: -, Views: 5.750

Zoals wel vaker luisterde ik ergens in de afgelopen week naar de radio. Normaal hoor ik het wel, maar luister ik niet echt. Dit keer schrok ik echter wakker uit mijn gebruikelijke stasis, doordat mijn onderbewustzijn triggerde op de woorden "Voer nu je wachtwoord in op digibewust.nl, en kijk hoe veilig jouw wachtwoord is!".

Geprikkeld en vol anticipatie volgde ik het commando op, en surfte naar http://www.digibewust.nl/. Ik klik op de grote groene knop "Test nu je wachtwoord", en terwijl ik denk "Je zal toch niet echt je wachtwoord..", zit ik op een website waar "Mooiboy, peter, en tijgertje" me streng aankijken. Ook staat er een tekstje waarin mij wordt medegedeeld dat ik moet zorgen voor een "sterk wachtwoord", want dat is "niet te raden en moeilijk te kraken". Verder staan er nog wat hippe schuifbalkjes en klikvakjes om aan te geven waar jouw wachtwoord uit bestaat, en onderaan komt het keiharde doch rechtvaardige oordeel over de veiligheid van jouw wachtwoord. Simpel toch? Om de één of andere reden kreeg ik opeens de onweerstaanbare drang om Ubuntu weer eens een slinger te geven, gewoon, om te kijken of het klopt. Dus, ik download de gelekte database van LinkedIn, en ga aan de slag.

De tools
  • i7 3770
  • 8GB Ram
  • 2x AMD HD5850 in Crossfire
  • oclHashcat-plus
De dolle stier methode
Beter bekend bij de mensen thuis als "brute force". Gewoon elke positie karaktjertje voor karaktertje wijzigen, tot er iets nuttigs uit komt. Voor de mensen die nu iets hebben van "OMGWTFBBQ, welk commando dan?", et voilà:

/tools/oclHashcat-plus-0.09/oclHashcat-plus64.bin -m 100 -n 160 -a 3 --gpu-temp-retain=80 --gpu-temp-abort=100 ./leakedIn.txt -o ./leakedIn.bf ?a?a?a?a?a?a?a?a?a?a?a
  • /tools/oclHashcat-plus-0.09/oclHashcat-plus64.bin - Het programma zelf
  • -m 100 - Het type hash dat gekraakt moet worden. 100 staat voor "SHA1".
  • -n 160 - Moar pwr captain! De workload voor de GPU's.
  • -a 3 - Attack type, 3 staat voor "Brute Force"
  • --gpu-temp-retain=80 --gpu-temp-abort=100 - Om te zorgen dat de arme 5850's geen *poef* doen.
  • ./leakedIn.txt - Input file met de hashes
  • -o leakedIn.bf - De resultaten van de aanval
  • ?a?a?a?a?a?a?a?a?a?a?a - Een brute force aanval van 11 karakters ("?a" staat voor 1 positie), met op elke positie uppercase, lowercase, number en special characters. Dit is uiteraard ook te tweaken. Bijvoorbeeld ?l voor alleen lowercase, ?u voor uppercase en zo verder.
Omdat ik eigenlijk niet alle tijd van de wereld heb, besloot ik deze aanval een fantastische 15 minuten te laten draaien. Het resultaat? Niet heel spannend, 44 gekraakte hashes:

https://dl.dropbox.com/u/7521450/blog/digibewusteloos/bf.png

Maar, terug naar het doel van deze hele onderneming, wat zeggen onze nieuwe vrienden hiervan? Nou, dit:
https://dl.dropbox.com/u/7521450/blog/digibewusteloos/11char.png

Vreemd.. Volgens die uitkomt zou ik er in m'n eentje een aantal millennia over doen om een wachtwoord te achterhalen, terwijl ik na 15 minuten al op een high-score van 44 zit. Oké, granted, dat hangt enorm af van het gebruikte versleutelingsalgoritme, en het al dan niet gebruiken van salt, en waarschijnlijk gaan de vriendjes ook uit van de tijd die nodig is om *alle* combinaties te achterhalen. Desalnietteminplusgedeelddoorkeeretc, vind ik dat een nogal gedurfde claim om te maken.

Nou, wat zeur je dan, 44 uit een lijst van een paar miljoen is onwijs weinig
Ah, ja. Maar we zijn nog niet klaar! We hebben ook nog de woordenlijsten. Dus ik heb via "bedrijfdeliefdemettimkuik.org" een paar woordenlijsten gedownload, en gebruikt met het volgende commando:

/tools/oclHashcat-plus-0.09/oclHashcat-plus64.bin -m 100 -n 160 -a 0 --gpu-temp-retain=90 --gpu-temp-abort=100 ./leakedIn.txt /tools/lists/wordlist.txt -o ./leakedIn.wordlist.txt


De slimme kijker merkt op dat er hier een paar dingen anders zijn dan het vorige commando:
  • -a 3 is vervangen door -a 0, om de aanvalsmethode op "Straight" (Lees: woordenlijst) te zetten.
  • /tools/lists/wordlist.tx is toegevoegd om het programma te vertellen welk lijstje hij mag gebruiken.
In slechts 30 seconden was het gedaan met mijn bescheiden lijstje, en stond er een lijstje resultaten klaar. *Drumroll*

1052 entries! Dat is al heel wat meer dan 44. Nu zal ik de kostbare tweakblog ruimte niet verspillen met de hele lijst, maar wat stats zijn altijd wel grappig. Gemaakt met het o zo handige programma pipal:


code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Password length (length ordered)
6 = 2 (0.19%)
7 = 54 (5.13%)
8 = 142 (13.5%)
9 = 236 (22.43%)
10 = 244 (23.19%)
11 = 170 (16.16%)
12 = 112 (10.65%)
13 = 45 (4.28%)
14 = 32 (3.04%)
15 = 15 (1.43%)

One to six characters = 2 (0.19%)
One to eight characters = 198 (18.82%)
More than eight characters = 854 (81.18%)

Character sets
loweralpha: 627 (59.6%)
mixedalpha: 266 (25.29%)
loweralphaspecial: 8 (0.76%)
mixedalphaspecial: 3 (0.29%)



Oke. Cool. Maar wat nu als er op mijn woordenlijst "welkom" staat, maar het te kraken wachtwoord is "Welkom01"?

Vrees niet! Ook daar is aan gedacht. oclHashcat heeft ook een feature genaamd "rules". Dit zijn bestandjes met regels welke worden toegepast op de woordenlijst om de bestanden te veranderen. Zo wordt "welkom" dus ook "Welkom" "WELKOM" "WeLkOm" en "Welkom01". Added bonus, veel regels zitten standaard bij oclHashcat!

Dus, nog maar een commandotje er tegenaan gooien:
/tools/oclHashcat-plus-0.09/oclHashcat-plus64.bin -m 100 -n 160 -a 0 --gpu-temp-retain=90 --gpu-temp-abort=100 ./leakedIn.txt /tools/lists/wordlist.txt -o ./leakedIn.wordlist.best64.txt -r /tools/oclHashcat-plus-0.09/rules/best64.rule


De oplettende kijker van net heeft ook nu weer gezien dat er wéér een extra optie wordt meegegeven, namelijk " -r /tools/oclHashcat-plus-0.09/rules/best64.rule". Dit is één van de (vele) rule bestanden standaard meegeleverd met oclHashcat.

And the final score is: ..
7497! Dat is al heel wat meer Bert! Ja Ernie, maar heb je ook weer statjes? Jahoor, Bert:


code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
6 = 271 (3.61%)
7 = 503 (6.71%)
8 = 2522 (33.64%)
9 = 1468 (19.58%)
10 = 1426 (19.02%)
11 = 609 (8.12%)
12 = 432 (5.76%)
13 = 132 (1.76%)
14 = 101 (1.35%)
15 = 33 (0.44%)

One to six characters = 271 (3.61%)
One to eight characters = 3296 (43.96%)
More than eight characters = 4201 (56.04%)

loweralpha: 3174 (42.34%)
mixedalphanum: 1713 (22.85%)
loweralphanum: 1287 (17.17%)
mixedalpha: 772 (10.3%)
upperalpha: 160 (2.13%)
loweralphaspecial: 25 (0.33%)
loweralphaspecialnum: 22 (0.29%)
mixedalphaspecialnum: 22 (0.29%)
mixedalphaspecial: 11 (0.15%)
specialnum: 1 (0.01%)



Maar, wat is je punt dan precies?
Nou, ja, mijn punt is dus dat het een leuke campagne is, maar niet heel erg waarheidsgetrouw, om het politiek correct af te drukken. Als "eindgebruiker" zou ik na de site te hebben bekeken denken dat mijn wachtwoord "Welkom123!@#" onwijs veilig is, terwijl niets minder waar is. Een gevalletje "False sense of security", om er maar eens wat buzz-words tegenaan te ketsen.

Begrijp me niet verkeerd, ik ben allang blij dat er überhaupt aandacht aan besteed wordt aan dit soort dingen, maar het lijkt erop dat de mensen achter deze site puur en alleen uit gaan van een scenario waarbij woordenlijsten niet bestaan, en alle websites de databases netjes hashen en salten. Het tegendeel is helaas al te vaak bewezen de afgelopen tijd.

Dus..
Dus zorg boven alles gewoon voor een *lang* wachtwoord. En dan bedoel ik, 15, 20 tekens of meer. Zorg ook vooral dat het wachtwoord niet één enkel woord is, met wat tekens en cijfers er omheen geplakt, maar mix het wat door elkaar. Of, pak gewoon iets als keepass, en gebruik overal een gegenereerd, lang, random wachtwoord. Al moet je dan natuurlijk niet "Letmein" gebruiken als keepass wachtwoord ;).

ps. ik haat mensen die beginnen met de tekst: "Dit is mijn eerste blog, dus go easy on me", vandaar dat ik het hier neer zet. Dit is mijn eerste blog, dus go easy on me