You are on page 1of 28

AntonioSnchezCamachokamskyadonis28850 Versinespecialparaelhacker.net!

1 AntonioSnchezCamacho

ndice:

Seguridad Bsica

WPA-PSK

WPA-RADIUS

WPA-TKIP

AntonioSnchezCamacho

SeguridadBsica:
AcontinuacinseanalizarelescenarioenelqueelAPestconfiguradoconelprotocolo WEP. 1. Primeropondremosuntamaodeclavede64bitsydichaclaveserunapalabrade diccionario. Loprimeroquedebemoshaceresconfigurarnuestratarjetaparaquepuedacapturartrfico, esdecir,enmodomonitor(similaralmodopromiscuodelastarjetasderedethernet). Paraellobastarconusarelsiguientecomando: #sudowlanconfigath1createwlandevwifi0wlanmodemonitor EstoestpicocuandoelchipsetdelatarjetaesAtherosyparacontrolarloseusanlosdrivers demadwifi.Conestecomandosimplementelehemosindicadoqueapartirdelinterfazfsicowifi0 creeunovirtualllamadoath1yquesepongaenmodomonitor. Acontinuacinsniffaremoseltrficoquehayaenelradiodealcancedenuestratarjeta haciendolosiguiente: #sudoairodumpngc1wwep_64_bitsath1 Usamoselprogramaairodumpng,unodelosqueposeelasuiteaircrackng(evolucinde aircrack).Leindicamosqueescucheenelcanal1(paraacelerarunpocoelprocesoyaque previamentesabamosquelaredobjetivoestabaenestecanal),queescribalasalidaalarchivo wep_64_bits,yquehagatodoestousandoelinterfazath1. Veremoscomoinmediatamenteempiezaacapturartrfico:

AntonioSnchezCamacho

Echandounvistazorpidopodemosobservarquehayvariasredescondiferentes configuracionesdeseguridad:Casasinningntipodeproteccin,linksys5(nuestroobjetivo)con WEP,LiveboxB540conWPATKIP,etc... VemostambinquehayusuariosconectadosalaredCasa,yalguienintentndoloaJazztel. Elsiguientepaso,yaquevemosquenohaynadieconectadoanuestroobjetivoyestopuede hacerelprocesomuylento,serhacerunafalsaautenticacinquegenerartrficoyqueluego usaremosparapoderreinyectar. Estanfcilcomo: #sudoaireplayng10elinksys5a00:13:10:3F:7B:65h00:13:f7:3b:b4:e0 \ath1 Dondevemosqueusamoselataquedefalsaautenticacin(1),nosreasociamos continuamente(0),elessiddelAPcontraelquequeremoslanzaresteataqueesellinksys5,cuya direccinMACesla00:13:10:3F:7B:65(seveenlasalidadelcomandoairodump),yfinalmente indicamoslaMACdenuestratarjtadered00:13:f7:3b:b4:e0. Sinosabemosestadireccinhayunautilidadmuycuriosallamadamacchangerdisponible enlosrepositoriosdeDebian/Ubuntu,conlaquepodremosentreotrascosassaberladireccinde enlacedenuestrastarjetasdered,cambiarla,generarlaalazar,ponerleunadelmismovendedor, etc...

Unavezhechoestoestaremoslistosparareinyectartrfico,elprocesoesbastantefcil, primerosdeberemosescucharhastaqueencontremosunapeticinARP,lacualusaremosa continuacinparareinyectartrficoyacelerarelprocesodecapturadeIV's: #sudoaireplayng3b00:13:10:3F:7B:65h00:13:f7:3b:b4:e0ath1

AntonioSnchezCamacho

Losparmetrossonigualesquelosanteriores,lonicoqueahoracambiamoseseltipode ataque(3).DespusdeesperarunintervalodetiempoycapturarunapeticinARPseprocederala reinyeccin,aumentandodrsticamentelavelocidadconlaquecapturamosIV's,acontinuacinse muestraelestadodelosataquesdespusdeunperiodode5minutos:

Sepuedeobservarcomosehancapturadocasi200.000IV's. ElltimopasoserunavezquetenemosunnsuficientedeIV'sprocederasacarla contraseaconayudadeotradelasutilidadesdelaSuite,enestecasoaircrackng: #sudoaircrackngz*.cap Leestamosindicandoqueuselosarchivosdecaptura(*.cap),parasacarlacontrasea medianteelmtodoPTWWEP(z),solopodremosusarestemtodosialcapturarlospaquetescon elairodumpnoleindicamosquefiltrarasololosIV's(conlaopcinivs) ComonohemosindicadosobrequeAPhacerelataquenossaldrunmencontodaslas posibilidades,dondeelegiremoselquenosinteresa,unavezhechoestoescasiautomticoelque encuentralacontrasea:

AntonioSnchezCamacho

Unavezhechoestoparaconectarnoslonicoquedeberemosdehaceserponerdenuevola tarjetaenmodomanaged,yteclearlosiguiente: #sudoiwconfigath1essidlinksys5channel1ap00:13:10:3F:7B:65key08C57F316D #sudodhclientath1 MomentoenelquesenosasignarunaIPmediantedhcpyestaremoslistosparasalira internet,descifrarpaquetesdeotrosusuariosconectadosalrouter,entraralrouterparaporejemplo medianteNATpoderconectarnosaloshostsdelosusuariosconectadosalrouter,yloquela imaginacinnosdicte...

2. Coneltamaodeclavede128bitselprocesoeselmismo,lonicoqueelnmerodeIV'sa capturarsermayor.Segnmiexperiencia,parauntamaodeclavede64bitsser suficientelacapturadeunos100.000300.000IV's,yparauntamaode128bitsbastarcon 600.0001.000.000. Hayquetenerencuentaqueestoesorientativoyqueestbasadoenquelaclavesusadasno pertenezcanaundiccionarioniseantriviales,yaqueencasodequeestoocurraelnmerode paquetesrequeridosdisminuyedrsticamente. Sinirmslejosprobaconfigurarelrouterlinksysconunaclavede128bitsperoconuna clavetrivialcomogatoymefuesuficienteconcapturar10.000IV'spararomperla.

AntonioSnchezCamacho

Posiblesmejoras:

ExisteunsistemaWEPde256bits,disponibleparaalgunosdesarrolladores,ycomoenel sistemaanterior,24bitsdelaclavepertenecenalIV,dejando232bitsparalaproteccin. Consistegeneralmenteen58caractereshexadecimales.(58x4=232bits)+24bitsIV= 256bitsdeproteccinWEP.EltamaodeclavenoeslanicalimitacinprincipaldeWEP. Crackearunaclavelargarequiereinterceptarmspaquetes,perohaymodosdeataqueque incrementaneltrficonecesario.HayotrasdebilidadesenWEP,comoporejemplola posibilidaddecolisindeIVsolospaquetesalterados,problemasquenosesolucionancon clavesmslargas. WepDinmico,cambialasclavesWEPdeformadinmica. Laideadelcambiodinmicosehizodentrode802.11icomopartedeTKIP,peronoparael actualalgoritmoWEP. Seestablecen2claves,unaclavedesesionyunaclavedebroadcast,laprimraesnicapara cadausuariomientasquelasegundaescompartidayseusaparaencriptareltrficode multidifusin. Lasclaveshanderotarenunperiodode5minutos(unperiodomenorafectaraalos clientes).

AntonioSnchezCamacho

WPAPSK:
Enestecasosquenecesitaremosunclientelegtimoconectadoalrouter,alcualdebemos desautenticarparaquealvolveraconectarsecapturemoselhandshakeyapartirdeahdescifrarel secretocompartido. Loharemosdedosformas,primerointentaremosdescifrarlaclavemedianteunataquede diccionarioydespusloharemosconunavariantedelasRainbowTables. Estastablasfuerongeneradasusandounalistaqueconsisteen172.000claves aproximadamenteyestnligadasaltop1000deSSID'smscomunes. Esteataqueesposibleyaqueelhashquesecapturaduranteelhandshakeesgenerado usandoelSSIDdelared. EnfoqueTerico:

CmofuncionaWPAPSK?

Enentornospersonales,comousuariosresidencialesypequeoscomercios,seutilizaWPA conclaveprecompartidaotambinllamadaWPAPSKyautenticacinIEEE802.1X.Enestos entornosnoesposiblecontarconunservidordeautenticacincentralizado,talycomohacela autenticacinEAP.Enestecontexto,WPAseejecutaenunmodoespecialconocidocomoHome ModeoPSK,quepermitelautilizacindeclavesconfiguradasmanualmenteyfacilitarasel procesodeconfiguracindelusuariodomestico. Elusuarionicamentedebeintroducirunaclavede8a63caracteresconocidacomoclave maestra,ensupuntodeacceso,mdemorouterinalmbricoresidencial,ascomoencadaunode losdispositivosquequiereconectaralared.Deestaformaslosepermiteaccesoaaquellos dispositivosquesonconocedoresdelacontrasea,loqueevitaataquesbasadosenescuchasas comoaccesodeusuariosnoautorizados.Ensegundolugarsepuedeasegurarquelaclaveproviene deunarelacindeacuerdonicoparagenerarelcifradoTKIP(TemporalKeyIntegrityProtocol)en lared,elcualdescribiremosmsadelante.Porlotantolacontraseapreestablecidaparala autenticacinescompartidaportodoslosdispositivosdelared,peronolosonlasclavesdecifrado, quesondiferentesparacadadispositivo,loquerepresentaunamejoraencuantoaWEP.Engeneral WPAparecerepresentarunnivelsuperiorencuantoalaseguridadqueofreciaWEP. AdiferenciadeWEP,WPAutilizavariasclavestemporalesdiferentesparacifrarelpayload dependiendodeltrficoalqueperteneceelpaquete(unicast,brodcastomulticast),yalasque denominaPTK(PrimaryTemporalKey)paraelprimeroyGTK(GroupTemporalKey)paralosdos restantes.EstasKeyssufrenunprocesoderegeneracindeclavescadaciertotiempo,conel objetivodeimpedirqueunaestacinlegtimapuedallegaracapturarlaclavedesesinutilizada. LaPSKesconocidaportodaslasestacionesdelmedioademsdelAP,yestformadapor unaseriedevaloresdependientesdelescenario.CabedestacarquelaPSKnoeslacadenautilizada paraencriptarlospaquetesdedatos;nisiquieraseutilizacomotalparaautenticarlaestacinenel AP,sinoqueparaelloseconstruyelallamadaPMK(PrimaryMasterKey)apartirdelaPSKyun procesodemodificacin;elresultadoesunacadenade256bits.Pero,quelementosseutilizan paraconstruirdichaPMK?

AntonioSnchezCamacho

Larespuestaesmuysencilla:lacontraseaprecompartida,elESSIDdelAP,lalongituddel ESSID,yunbarajadode4096procesos.Todoelloesgeneradoporunafuncinmatemticallamada PBKDF2(PBKDF2esunafuncindePKCS#5v2.0:PasswordbasedCryptographyStandard) ofreciendocomoresultadounaclavePMKde256bits: PMK=PBKDF2(Frasesecreta,ESSID,Long(ESSID),4096,256) Unavezobtenidaestaclave,comienzaelprocesodeautenticacinconelAPalquese denomina4WayHandshake,osaludoinicial,quesepuedeverenlaimagenposterior.Enese proceso,tantolaestacincomoelAPgeneranlaPTKylaGTKutilizadasparacifrarlosdatos, siendoambasdiferentesencadasesin. CmoesgeneradaestaPTK?ParaelloseutilizaunafuncinpseudoaleatoriaPRFXque tomacomofuentelosdatossiguientes:

PMK:CalculadamediantelaPSKyelalgoritmoPBKDF2. SNonce:Numeroaleatoriodeterminadoporlaestacin. ANonce:NmeroaleatoriodeterminadoporelAP. MACdelAP:MACdelpuntodeacceso. MACdelaestacin.

LacomunicacinesiniciadamedianteelenvodeunpaquetetipoEAPOLstartdesdela estacinalAP.SeguidamenteelAPgeneraunnmeroaleatorioANoncequeestransmitidoala estacin.stacontestaremitindoleotronmeroaleatoriollamadoSNonce.Llegadoestepunto, ambospuedengeneraryasuPTKconlaquecifrarneltrficounicastapartirdelosvalores mencionados.Asuvez,elAPestaendisposicindegenerarlaGTK,procediendoatransmitirlaala estacindeformacifrada.Comoltimopaso,seenvaunpaquetedereconocimientocerrandoasel procesodeautenticacin.Esteprocesosepuedeverenlasiguienteimagen.

AntonioSnchezCamacho

Labrechadeseguridadenelprotocolo(msenconcretoenel4WayHandshake),yqueun atacantepodrautilizar,seencuentratantoenelsegundocomoenelcuartopaquete,yaqueen amboslaestacintransmitealAPelMICocontroldeintegridad,yelmensajeEAPoLenclaro. (RecordemosqueelvalorMICconformaelresultadodeaplicarelalgoritmodecontrolde integridadMichaelalmensajeEAPoL.Dichafuncintomacomoentradaelpaquetededatos mismo,lasdireccionesMACorigen/destino,ypartedelaPTK;todoellogeneramediantela funcindeHASHHMAC_MD5lacadenadecontroldeintegridad.) Aspues,unatacantepodracapturarambosvalores:elMICyelpaquetesincifrarEAPoL, parainferirlaclavedecifradomediantefuerzabruta.Paraelloprimerosedebercalcular, realizandounaestimacin,laPMK,usandoparaello: (a)laPSKoclavecompartida, (b)elESSID. UnavezcalculadaunaposiblePMK,suresultadoesutilizadoporotrafuncinmatemtica quecalcularlaPTK,usandoparaellolasdireccionesMACdelosdispositivosylosdosvalores aleatoriosintercambiadosSNonceyAnonce.Enestepunto,elatacanteyapuedecalcularunvalor MICestimadoapartirdelpaquetededatosEAPoLcapturado,utilizandolaPTK.Elresultadode laestimacinescomparadoconelvalorcapturado,ysilosvaloresdeMICyMICsonidnticos,la PSKeslacorrecta.

Cmopodramosexplotaresto?

Paraayudaracomprendertodoelproceso,quecomosehavistonocarecedecomplejidad, nadamejorqueutilizarunacapturarealparaobservarelvalordelostrminoscomentados.Las siguientesimgenesmuestranelprocesodeautenticacin4WayHandshakeentreunaestaciny unpuntodeacceso.Paramayorclaridad,sehaeliminadotodoaqueltrficoquenocumpleel criteriodeperteneceraunpaquete802.1X(0888E). 1.AP>Estacin.Elprimerpaquetedeautenticacinnocontieneinformacinrelevanteparael atacante. 2.Estacin>AP.Estesegundopaquetecontieneinformacinrelevante;elatacantecapturael valoraleatorioSNonce,resaltadoenverdeenlaimagensiguiente:

10

AntonioSnchezCamacho

3.AP>Estacin.Enestetercerpaquetedeautenticacin,lainformacinrelevantecapturadaes tantoelnmeroaleatorioAnonce(colorverde),comolasdireccionesMACdelpuntodeaccesoyla estacinsuplicante(colorazulyrojorespectivamente).

4.Estacin>AP.ltimopaquetedelsaludo.LainformacincapturadaeselvalorMICcalculado mediantepartedelaPTKylatramadedatosutilizadaenlafuncindeHash(paqueteEAPoL). DestacarqueelvalordelMICesaadidoposteriormentealpaquete;hastaquesuvalornoes calculado,latramaserellenaconceros.

Acontinuacin,alatacantetansololequedaseguirlospasosqueacontinuacinsedetallan paradeterminarsisuestimacindelaPSKhasidolacorrecta: 1.MediantelosdatosobtenidosdelacapturasegenerarlaPMK,utilizandolafuncindeHASH SHA1.Destacarquedichafuncinrequieredeuncostecomputacionalelevadoyrepresentaunode losprincipalesescollosdelosataquesdefuerzabrutaydiccionario.


PMK = pdkdf2_SHA1 (frase secreta, SSID, longitud del SSID, 4096) PMK = pbkdf2_sha1 ("fraseTest","linksys",7,4096) ;Ejemplo

2.UnavezobtenidalaPMK,generarlaPTKmediantelafuncinpseudoaleatoriaPRFX, dondelaXindicaelvalorenbytesdelasalida:
PTK = PRF-X (PMK, Longitud(PMK), "Expansin de la clave", Min(AP_MAC, STA_MAC) || Max(AP_MAC, STA_MAC) || Min(ANonce, SNonce) || Max(ANonce, SNonce))

11

AntonioSnchezCamacho

PTK = SHA1_PRF( 9e99 88bd e2cb a743 95c0 1ffa 889a 3309 237a 2240 32, ; Longitud del PMK Expansin de la clave, 000c 41d2 94fb 000d 3a26 Nonce 2145 57ff f3c0 76ac 9779 8e9b ea9b 6619 a5ba b40f d457 411a ee33 8c00 fa8a 7943 60ad ce3a fb5d 159a ) PTK = ccbf daec 19f4 80f4 97a8 5438 dce0 e264 2b5c 430f cc5f 6e6d 51a4 00eb 2166 9e36 4325 893d e94f 260d

289f fda0 7bc4 ;PMK c934 bcdc 7ddb, ;cadena de texto 10fb 893e e551 ; MAC y valores 15a2 0607 2703 ; 89c1 dabd c104 1f32 abfc 6cfb 51f6, 76 a77e 84d8 db3e 89ff 9bc5 b4b4 af68 bf24 7050 ; PTK resultado b5e8 eb76 ee7e

3.AlcalcularlaPTK,tansloquedaradiferirelHashMICapartirdeesta.Paraellose utilizaunapartedelaPTK,lallamadaClaveMIC,quenoesmasqueunescisindela PTKconunalongitudn,pasadatambincomoparmetro.Ennuestroejemplosuvalores 16:


MIC = HMAC_MD5(Clave MIC, 16, Paquete EAPoL) 51a4 4325 a77e 9bc5 7050, ; Primeros 16 de la PTK 0900 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ; Paquete EAPoL 0000 0000 0000 0000 0000

MIC = HMAC_MD5( ccbf 97a8 2b5c bytes de la PTK 16, ; Longitud 0103 005f fe01 1400 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 )

MIC = d0ca 4f2a 783c 4345 b0c0 0a12 ecc1 5f77 integridad

; Control de

4.ElMICcapturadoescomparadoconelnuevoMICestimado,ysiamboscoinciden,el atacantehaobtenidolaPSK:
MIC' calculado usando el cuarto paquete EAPoL con fraseTest: d0ca 4f2a 783c 4345 b0c0 0a12 ecc1 5f77 MIC capturado:

12

AntonioSnchezCamacho

d0ca 4f2a 783c 4345 b0c0 0a12 ecc1 5f77 Los MIC calculados coinciden. Se ha conseguido la PSK: fraseTest.

EnfoquePrctico: Acontinuacinseimplementartodoloexplicadoanteriormentedeunamaneraprctica. Hayquetenerencuentaesqueparallevaracaboelataquedebedehaberunclientelegtimo conectado,asiqueprocederemosaconectarnosconunatarjetaderedalAPyluegoconlaotra llevaremosacaboelataque.TambienhadenotarsequecambielSSIDalinksysparapoderllevara caboelataqueconRainbowTables(enestecasounavariantedeestastablas) Paraconectarnosbajolinuxexisteunprogramallamadowpa_supplicantquepermitela conexinconcualquiertipodeprotocolodecifradoexistente. Loprimeroquedeberemosdehacersercrearunarchivodeconfiguracinqueserelque leaelsupplicantconlaconfiguracindenuestroAP,dichoarchivoennuestrocasosellamar wpa_supplicant_wpapsk.confycontendrlosiguiente:
ctrl_interface=/var/run/wpa_supplicant network={ ssid="linksys" ssiddenuestroAP key_mgmt=WPAPSK usamosWPAPSK psk="password" laPreSharedKey }

Despusmediantelineadecomandosnosconectaremosusandoestearchivoypediremos quenosasigneunaIPmedianteDHCP: #sudowpa_supplicantDwextiwlan0cwpa_supplicant_wpapsk.conf #sudodhclientwlan0 Unavezqueestamosconectadosprocederemosacapturarelhandshakeconelotrointerfaz dered,loprimeroserponerloenmodomonitor: #sudowlanconfigath1createwlandevwifi0wlanmodemonitor Ahoracomenzaremosasniffarpaquetesconlaayudadeairodumpng: #sudoairodumpngc6wwpapskath1 Comovemoshayunclienteconectado,porloqueesfcildeducirqueel4wayhandshake yasehaproducido,asiquedeberemosaobligarleaquesevuelvaaconectar,comohacemosesto?, conlaayudadeaireplayysuataquededesautenticacin: #sudoaireplayng00a00:13:10:3F:7B:65c00:13:02:19:12:5Bath1

13

AntonioSnchezCamacho

Dondeleindicamosquelleveacaboelataquemencionado(0),quemandepaquetesde desautenticacinhastaqueseloindiquemos(0)ylaMACdelAPydelclienteconectado. Unavezhechoestoelclientesedesconectarydeberavolverconectarse,momentoenel quecapturaremosconelairodumpeltanansiado4wayhandshake,comosepuedeverenla siguienteimagen:

Cuandotenemoselhandshakeyapodemosusarundiccionarioparaqueelaircrackng crackeelacontrasea.Enmicasoheusadounodelosdiccionariosquevienenyaenlinux,se encuentranenlacarpeta/etc/dictionariescommon: #sudoaircrackngw/etc/dictionariescommon/words*.cap Yveremoscomoelprogramaempiezaaprobarpalabraporpalabrahastadarconla adecuada,momentoenlaquelasalidaesesta:

14

AntonioSnchezCamacho

Podemosvercomohaencontradolaclave,enestecasopassword,yvemostambinel tiempoquehatardado:4mintuosy22segundos,enestecasolaclaveerafcilyaunashatardado bastante,asiqueesteprocesoenelcasodequelacontraseaseaunpocomsrebuscadaeincluso quenoseencuentreeneldiccionariosepuedehacerbastantecostosa,asquerealizaremosel mismoataqueperoenvezdeusarundiccionarioloharemosacontinuacinconunavariante RainbowTablesqueyaseexplicanteriormenteenqueconsisten. ParaesteataquevoyausarcoWPAtty,esunaprogramadeltipoaircrackperoqueaade2 funcionalidadesmuyinteresantes: LaprimeraeselusoensdelasRainbowTables,estarabienusarlasparaestaprctica,pero debidoaquesonmsde30Gbyademsnoaccesibles(almenosnolasheencontrado) desdedescargadirectaalargaramuchosudescarga Lautilidadtraeunprogramallamadogenpmk,queseusaparaprecomputarlosarchivos hashdeformasimilaracomosehaceenlasRainbowTables,yqueeslaherramientaqueen conjuncinconcoWPAttyvamosausar,yaqueparalaprcticaquesimplementeconsisteen hacerunapruebadeconceptoycompararlavelocidaddelataquedediccionariofrentealas RainbowTablesconsideroqueesvlido. ElprimerpasosergenerarloshashfilesparaunSSIDenespecfico,ennuestrocaso linksys: #./genpmkf/etc/dictionariescommon/wordsdhash_fileslinksys Comprobamosqueusamoselmismodiccionarioqueantes,yquelasalidaseharalarchivo hash_file. UnavezgeneradoelhashfilelopodemosusarcontracualquierredcuyoSSIDsealinksys,y procedemosaello: #./cowpattyr../prctica\seguridad\wifi/WPAPSK/*.capdhash_fileslinksys Acontinuacinvemoslasalidadelprograma:

Comovemoslamejoraencuantoatiempoesmsquesustancial. 15 AntonioSnchezCamacho

Posiblesmejoras:

WPA2esunsistemacreadoparacorregirlasvulnerabilidadesdetectadasenWPA. WPA2estbasadaenelnuevoestndar802.11i.WPA,porserunaversinprevia,quese podraconsiderarde"migracin",noincluyetodaslascaractersticasdelIEEE802.11i, mientrasqueWPA2sepuedeinferirqueeslaversincertificadadelestndar802.11i. LaalianzaWiFillamaalaversindeclaveprecompartidaWPAPersonalyWPA2 Personalyalaversinconautenticacin802.1x/EAPcomoWPAEnterpriseyWPA2 Enterprise. Losfabricantescomenzaronaproducirlanuevageneracindepuntosdeaccesosapoyados enelprotocoloWPA2queutilizaelalgoritmodecifradoAES(AdvancedEncryption Standard).Conestealgoritmoserposiblecumplirconlosrequisitosdeseguridaddel gobiernodeUSAFIPS1402. "WPA2estidealmentepensadoparaempresastantodelsectorprivadocmodelpblico. LosproductosquesoncertificadosparaWPA2ledanalosgerentesdeTIlaseguridadque latecnologacumpleconestndaresdeinteroperatividad"declarFrankHazlikManaging DirectordelaWiFiAlliance.

OtraopcinserausarWPAconunservidordeautenticacin(normalmenteunservidor RADIUS),quedistribuyeclavesdiferentesacadausuario(atravsdelprotocolo802.1x), inicialmenteasescomofuediseadoloquepasaqueposteriormenteseintrodujoelmodo deusoconclavecompartida(PSK)parausuariosdecasaypequeasoficinas. Porltimo,siquisiramosmantenerelesquemaWPAPSK,lomseficazserausaruna clavedelalongitudmxima(63caracteres),generadaaleatoriamente,deformaqueniun ataquecondiccionarioniunataqueconfuerzabrutaseaviable.

16

AntonioSnchezCamacho

WPARadius:
EnestatercerapartemontaremosunservidorRadiusparalaautenticacindelosusuarios(en estecasoFreeRADIUS),yconfiguraremoselAPmedianteWPAconprotocoloRadius EnfoqueTerico: RADIUSesunprotocoloampliamenteusadoenelambientederedes,paradispositivostales comorouters,servidoresyswitchesentreotros.Esutilizadoparaproveerautenticacincentralizada, autorizacinymanejodecuentaspararedesdeaccesodialup,redesprivadasvirtuales(VPN)y, recientemente,pararedesdeaccesoinalmbrico. UnclienteRADIUSenvacredencialesdeusuarioeinformacindeparmetrosdeconexin enformadeunmensajeRADIUSalservidor.steautenticayautorizalasolicituddelclientey enva de regreso un mensaje de respuesta. Los clientes RADIUS tambin envan mensajes de cuentasaservidoresRADIUS. LosmensajesRADIUSsonenviadoscomomensajesUDP.ElpuertoUDP1812esusado paramensajedeautenticacinRADIUSy,elpuertoUDP1813,esusadoparamensajesdecuentas RADIUS.AlgunosservidoresusanelpuertoUDP1645paramensajesdeautenticaciny,elpuerto 1646, para mensajes de cuentas. Esto ltimo es debido a que son los puertos que se usaron inicialmenteparaestetipodeservicio. FormatodePaquetes LosdatosentreelclienteyelservidorsonintercambiadosenpaquetesRADIUS.Cada paquetecontienelasiguienteinformacin:

http://ing.ctit.utwente.nl/WU5/D5.1/Technology/radius/

17

AntonioSnchezCamacho

DiagramadeSecuencia Elsiguientediagramamuestralasecuenciaseguidacuandounclienteaccedealaredyse desconectadelamisma.

http://ing.ctit.utwente.nl/WU5/D5.1/Technology/radius/

1. Elclienteenvasuusuario/contrasea,estainformacinesencriptadaconunallavesecretay enviadaenunAccessRequestalservidorRADIUS(FasedeAutenticacin). 2. Cuandolarelacinusuario/contraseaescorrecta,entonceselservidorenvaunmensajede aceptacin,AccessAccept,coninformacinextra(Porejemplo:direccinIP,mscaradered, tiempodesesinpermitido,etc.)(FasedeAutorizacin). 3. El cliente ahora enva un mensaje de AccountingRequest (Start) con la informacin correspondienteasucuentayparaindicarqueelusuarioestreconocidodentrodelared(Fase deAccounting). 4. ElservidorRADIUSrespondeconunmensajeAccountingResponse,cuandolainformacinde lacuentaesalmacenada. 5. Cuando el usuario ha sido identificado, ste puede acceder a los servicios proporcionados. Finalmente,cuandodeseedesconectarse,enviarunmensajedeAccountingRequest(Stop)con lasiguienteinformacin: o DelayTime.Tiempoqueelclientellevatratandodeenviarelmensaje. o InputOctets.Nmerodeoctetosrecibidoporelusuario. o OutputOctets.Nmerodeoctetosenviadosporelusuario. o SessionTime.Nmerodesegundosqueelusuariohaestadoconectado. o InputPackets.Cantidaddepaquetesrecibidosporelusuario. o OutputPackets.Cantidaddepaquetesenviadosporelusuario. o Reason.Raznporlaqueelusuariosedesconectadelared. 6. ElservidorRADIUSrespondeconunmensajedeAccountingResponsecuandolainformacin decuentaesalmacenada. 18 AntonioSnchezCamacho

EnfoquePrctico: Unavezcomentadocomofunciona,vamosahacerunaimplementacinbsicadelsistema. ParallevaracabonuestrocometidomontaremosunservidorRadius(enconcretofreeRadius), sobreunamquinavirtualconUbuntu8.04,configuraremoselrouter Syslink,yfinalmentenos conectaremosdesdeotramquinaconWindowsXPUeSP3. Elesquemaserelsiguiente:

Debidoaqueelmontajenoestrivialyhaymuchsimascosasconfigurables,tomcomo gualossiguientesartculos: http://www.linuxjournal.com/article/8095 http://www.linuxjournal.com/article/8151 Enellosseexplicadetalladamentelospasosaseguir,asquetampocovoyaprofundizar demasiado,simplementedelinearlaformaseguidayaclararalgunascosasqueenelartculogua estabanmal.

19

AntonioSnchezCamacho

1. InstalandoFreeRADIUS: Tenemos2opciones,laprimeraesbajarnoslosfuentesdelapginaoficialycompilarlos. Lasegunda(laelegida)esusarelpaqueteprecompiladoqueapareceenlosrepositoriosde Ubuntu: #sudoaptitudeinstallfreeradius Estonosinstalartantoelpaquetecomolasdependenciasnecesariasenelservidor. 2. CreandounaAutoridaddeCertificacin: AntesdeconfigurarelservidorFreeRadiusdebemoscrearunoscuantoscertificados,ypara podercrearlosnecesitamosunaAutoridaddeCertificacin. ParaelloprimeroinstalaremosOpenSSL: #sudoaptitudeinstallopenssl Yacontinuacineditaremoselfichedodeconfiguracin/ets/ssl/openssl.conf,cambiando losvaloresqueaparecenacontinuacin: [CA_default]
dir ... countryName_default stateOrProvinceName_default 0.organizationName_default = SP = Madrid = UAH = ./seguridadCA

HaremosquelavariableCATOPtengaelmismovalorquedirenelfichero/usr/lib/ssl/misc/ CA.sh: CATOP=./seguridadCA FinalmentecorreremoselscriptCA.shconelparmetronewca,momentoenelquedespus deresponderalgunaspreguntassobreelcertificado(password,etc...)secrearunnuevodirectorio llamadoseguridadCAconelnuevocertificadopblicocacert.pem. PorltimosiqueremospoderconectarnosdesdeclientesWindowsdebemoscrearunfichero llamadoxpextensionsquecontengalosiguiente: [xpclient_ext]


extendedKeyUsage = 1.3.6.1.5.5.7.3.2 [ xpserver_ext ] extendedKeyUsage = 1.3.6.1.5.5.7.3.1

20

AntonioSnchezCamacho

Acontinucinseveunacapturacontodolocomentadohastaahora:

3. Creandoloscertificados: Necesitamosalmenos2certificados,unoparaelservidorFreeRADIUS,yotroparalos clientesquepretendanconectarsealAP. Lospasosparacrearuncertificadosepuedenresumirenlosiguiente:


Generaruncertificadosinfirmar FirmarloconlaclavedelaAutoridaddeCertificacin Copiarloalhostdondesevayaausar

Primerocrearemoselcertificadoparaelservidoryacontinuacineldelcliente: #opensslreqnewnodeskeyoutserver_key.pemoutserver_req.pemdays730\ config./openssl.cnf #opensslcaconfig./openssl.cnf\ policypolicy_anythingoutserver_cert.pem\ extensionsxpserver_extextfile./xpextensions\ infiles./server_req.pem #catserver_key.pemserver.cert.pem>server_keycert.pem #opensslreqnewkeyoutclient_key.pem\ outclient_req.pemdays730config./openssl.cnf #opensslcaconfig./openssl.cnf\ policypolicy_anythingoutclient_cert.pem\ extensionsxpclient_extextfile./xpextensions\ infiles./client_req.pem #catclient_key.pemclient.cert.pem>server_keycert.pem #opensslpkcs12exportinclient_cert.pem\ inkeyclient_key.pemoutclient_cert.p12clcerts Loquehemoshechohasidocrearelcertificadosinfirmar,firmarloconlaclavedelaCA (quesenospedirenelmomentoadecuado),yconcatenarlaclaveyelcertificadoyunirloenun sloficherodesalida,laoperacinserepiteparaelcliente,aadiendounltimocomandoquesirve paraexportarelcertificadoenunformatoquepuedaentenderunsistemaWindows. 21 AntonioSnchezCamacho

4. ConfigurandoFreeRadius(enlamquinavirtual): Loprimeroquedebemosdehacerescopiarelcertificadoquecreamosanteriormenteala carpeta/etc/freeradius/certs,juntoalcopiaremostambinelcertificadodelaCA. Acontinuacincrearemos2archivosqueelservidornecesitaparausarTLS: UnarchivoDiffieHallman,usadoparanegociarlasclavesdesesinTLS #openssldhparamchecktext5512outdh

UnarchivoquecontieneunchorrodebitsaleatoriosusadotambinporTLS #ddif=/dev/urandomof=randomcount=2

Ahorapasaremosaconfigurarlos3archivosnecesariosparaFreeRADIUS:

radiusd.conf ...
user = nobody group = nobody ...

eap.conf
eap { default_eap_type = tls ... tls { ... private_key_password = password private_key_file = ${raddbdir}/certs/server_keycert.pem certificate_file = ${raddbdir}/certs/server_keycert.pem CA_file = ${raddbdir}/certs/cacert.pem dh_file = ${raddbdir}/certs/dh random_file = ${raddbdir}/certs/random ... }

clients.conf client192.168.0.10/24{
secret shortname } = password = seguridad_AP

Finalmentereiniciaremoseldemonioesperandoquetodovayabien:

22

AntonioSnchezCamacho

5. ConfigurandoelAP: Estaeslapartemsfcil,yaquesimplementeaccederemosalaconfiguracindelRouter,y loconfiguraremosadecuadamentecomosepuedeveracontinuacin:

ComovemosusamosWPARadius,ponemoslaIpdelamquinavirtualqueactuacomo servidor,dejamoselpuertopordefecto,yconfiguramoslaclavequequeremosusarparala autenticacin. 6. Configurandoelcliente: FinalmenteconfiguraremosunsistemaconWindowsXPparaquesepuedaaccederal router. Loprimerosercopiarelcertificadodelclientealhostyaadirlo,ascomoelcertificado pblicodelaCA.Estoestdetalladoenloslinksantessealadosynovoyaentrarenmsdetalles. PorltimocrearemosunperfilparanuestroAPenelqueconfiguraremostodosegnsenos vayapidiendoenelasistente. Sitodohamarchadoexistosamentenossaldreltpicoiconodeconectadoenlabarra inferior,Voil!

23

AntonioSnchezCamacho

Posiblesmejoras:

Pordefectonohayverificacincriptogrficadelosmensajesdepeticindeaccesoenel servidorRadius.ElservidorverificaqueelmensajetienecomoorigenunaIPdeuncliente legtimo,peroestopuedeserfcilmentespoofeado. LasolucinseraqueelclienterequieraqueelatributoMessageAuthenticatorestactivoen todoslosmensajesdepeticindeacceso(normalmenteesteatributosloserequierecuando elsistemaestconfiguradoconEAP) EnmuchasinstalacionesdeRadiusseusalamismaclavecompartidaparaprotegeralos diferentesclientes,esmenmuchoscasoslaclavecompartidanotienelasuficienteentropa paraprevenirunataquedediccionariooffline. Lasituacinesmsalarmantecuandoenalgunasimplementacionesselimitaeltamaode laclaveeinclusoloscaracteresaceptadosparaesta. Algunassolucionespodranser: Usargeneradoresautomricosdeclavesdelamximalongitudposible(enla RFC2865serecomiendaquealmenosseande16caracteres). Usarclavesdiferentesparacadacliente SeusalaclavecompartidadeRadius,elAutenticadordePeticinyelalgoritmoMD5para encriptarlacontraseadeusuarioyotrosatributoscomolacontraseadeltnel(RFC2868, seccin3.5)olasclavesMSCHAPMPPE(RFC2548,seccin2.4.1),estoesunerror bastanteconocidocomosepudeleerenlaRFC2865:
TheUserPasswordhidingmechanismdescribedinSection5.2hasnotbeensubjectedtosignificantamounts ofcryptanalysisinthepublishedliterature.SomeintheIETFcommunityareconcernedthatthismethodmight notprovidesufficientconfidentialityprotection[15]topasswordstransmittedusingRADIUS.Usersshould evaluatetheirthreatenvironmentandconsiderwhetheradditionalsecuritymechanismsshouldbeemployed.

LanicamaneraestandardeofrecermsproteccinaestosatributosesusarIpsecconESP (EncapsulatingSecurityPayload,elprotocoloESPproporcionaautenticidaddeorigen, integridadyproteccindeconfidencialidaddeunpaquete)yunalgoritmodeencriptacin comoAESparaofrecerconfidencialidadporcompletoalosmensajesRadius. Siestonofueraposiblesepodranintentarotrasmedidas: ObligaralusodelatributoAutenticadordeMensajeentodoslosmensajesde peticindeacceso Usarautenticadoresdepeticincriptogrficamentefuertes Obligaralusodecontraseasdeusuariorobustas Usarunmecanismodecontabilidadybloquodeautenticacinparaprevenireluso deataquesdediccionarioonlinecontralascontraseasdeusuario Usarclavescompartidasconunaentropadealmenos128bits ComoseespecificaenlaRFC2865unapeticindeautenticacinseguradebeserglobaly temporalmentenica.Estapeticinjuntoalaclavecompartidaseunenparadeterminarla claveusadaparaencriptarlacontraseadeusuarioyotrosatributos.Esposibleparaun atacanteconlacapacidaddecapturartrficoentreelclienteyelservidorRadiusintentar crearcrearundiccionarioconlaspeticionesdeautenticacinylacorrespondienteclavede encriptacindelacontraseadeusuario. Silapeticinnoessuficientementealeatoriapuedeserpredecida,porloqueelgenerador debertenerunacalidadcriptogrfica,sinofueraassedeberausarIpsecconESPy3DES almenos,cmovienedescritoenlaRFC3162. AntonioSnchezCamacho

24

WPATKIP,proofofconcept:
ElestndardecifradoWiFiProtectedAcess(WPA)hasidoparcialmentecrackeadoporlos investigadoresdeseguridadErikTewsandMartinBeck, Elataquepermitealatacanteleerlosdatosenviadosdelrouteralporttilyenviar informacinimprecisaalosclientesconectados.Segnafirmanhanencontradounamanerade romperelprotocoloTemporalKeyIntegrityProtocol(TKIP)usadoporelestndarWPAenmenos de15minutos,loqueesunperiodomuycortodetiempoencomparacinconelmtododefuerza brutausadohastaahora. Sinembargolosinvestigadoresnohanpodidocrackearlasclavesdecifradodelosdatosque vandelosordenadoresalrouter,aunqueprobablementeseacuestindetiempoyesquelas conexionesmssegurassonlashechasmedianteaccesofsicodirecto. SegnlosinvestigadoresWPA2noesmsseguroencuantoaestetipodeataquetoca,porlo quesilleganacompletarelsistemaquehanempezadoseraelfinaldelasredesinalmbricaspara redesempresarialesypersonalesquecontenganomuevandatosimportantes/confidenciales. Tewssediocuentaqueparapaquetesmuypequeos,porejemploARP's,sepuedenconocer todoslosdetallesdelpayloadexcepto2bytesdelaIP,8bytesdelcdigoMichaely4bytesdel checksum.Unavezquemedianteelataquechopchopsecrackeanestosltimos12bytes,los2 restantespuedenserprobadoscada60segundossincausarlacaidaylaregeneracindelasclaves. Aproximadamenteestasoperacionespuedentomarentre12y15minutos. Conestemtodoseobtieneelkeystream,estoenprincipionosirvedenadayaqueTKIP poseemecanismosparaevitarelreusodeestoskeystreams,sinembargoBeckdescubriqueenel estandar802.11eseespecificaunaformadereusarunkeystream,yaquesepermitelaretransmisin deunpaquetecondatosarbitrariosentre7y15veces. LaCalidaddeServicio(QoS),queseusaparapriorizarlospaquetes,fuedescritaporel grupodetrabajodel802.11e,seidepermitiendocolasdeprioridadesdeformaqueporejemplo paquetesdevoztenganpreferenciasobretextoplano. Asociadoconesascolasestlaposibilidaddeusarunkeystreamprovenientedeotracolasin violarlarestriccinderepeticindepaquetes.Tewsdijoqueaunqueenel802.11esepensen trabajarcon4colas,enelestandarfinalhay8,ademsdeotras8quehanencontradoenciertos paquetes,porloquefinalmentesetieneentre7y15posibilidadesdereplayparacadapaquete. EstopuedefuncionarconvariostiposdepaquetessegnTews:TCP/IPSYN,DNS queries,etc... Estemtodoslofuncionaenunadireccin,yaqueslolospaquetesqueenvaelAPal clientesonlosquerevelanlaclaveTKIPuotrocualquirtipodeclaveenuso. SegnTews:elARPpoisoningdeberasertrivial,tambincreequelosfirewallsqueslo bloqueeneltrficoentrante(deInternetalaLAN)puedenserpuenteadosconunapeticinARP quehagacreeraunclientequelapeticnprovienededentrodelaLAN.

25

AntonioSnchezCamacho

Parallevaracaboestapruebadeconceptosegueldocumentodelaherramientaqueesten procesodecrearseporlosdescubridoresdeestavulnerabilidadenWPATKIP. EsunaversinBetaporloqueaunnoestfuncional,enlapginadicenqueslofunciona demomentoconchipsetsRT73yRTL8187L,esms,dicenqueconlosdriversmadwifinofunciona (sonlosdriversqueyousoparamitarjetadered),aunashehechoelintentodeprobarlo. Laherramientanecesariaparahacerlapruebasellamatkiptunng,unavezdescargaday compiladalaversinBetadelaircrack(1.0rc3),configuroelAPcomoseveacontinuacin:

Comoseobservaeltiempoderegeneracindelasclaveseselquevienepordefectoyque comoyasecomentanteriormenteesdemasiadolargo. Despusprocedemosaconectarnosalrouterparagenerartrficoqueposteriormenteser capturado.Elprocesoeselmismoqueenelsegundoapartadodeestaprctica,configuramosun archivoqueluegolepasaremosalwpa_supplicant. Acontinuacinponemoselotrointerfazderedenmodomonitor,cambiamoslaMACpara quecoincidaconladelclientelegtimoconmacchanger(segnlosdesarrolladoresestoes necesario)yprocedemosalataque: #sudo../../aircrackng1.0rc3/src/tkiptunngh00:13:f7:3b:b4:e0a\ 00:13:10:3Fm80n100ath1 Estoharqueelclientesecaigaytengaquevolveraautenticarse,yacontinuacindespus decapturarelhandshakesedeberandecapturartambinpeticionesARPparadespusllevaracabo todoelprocesoantesexplicado,peroaquescuandofalla,yaquepormuchotrficoquegenereel programanoidentificaningunpaqueteARP... Acontinuacinmuestroelestadodelprograma,enesperadelospaquetesARP,ycomoS querealmentesegeneranpaquetesARP's,yaquelosgeneroyoamano: 26 AntonioSnchezCamacho

27

AntonioSnchezCamacho

Bibliografa:

http://www.google.es Losartculosyenlacesproporcionadosporelprofesor http://www.hsc.fr/ressources/articles/hakin9_wifi/hakin9_wifi_ES.pdf http://www.renderlab.net/projects/WPAtables/ http://wiki.freeradius.org/WPA_HOWTO http://www.dartmouth.edu/~pkilab/pages/EAPTLSwFreeRadius.html http://www.ietf.org/rfc/rfc3579.txt http://www.linuxjournal.com/article/8095 http://www.linuxjournal.com/article/8151 http://arstechnica.com/security/news/2008/11/wpacracked.ars http://arstechnica.com/security/news/2008/11/wpacracked.ars/2 http://www.aircrackng.org/doku.php?id=tkiptunng Pginasmandelosprogramasusados.

28

AntonioSnchezCamacho

You might also like