Está en la página 1de 28

AntonioSnchezCamachokamskyadonis28850

Versinespecialparaelhacker.net!

1 AntonioSnchezCamacho
ndice:

Seguridad Bsica

WPA-PSK

WPA-RADIUS

WPA-TKIP

2 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:

3 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

4 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:

5 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.

6 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).

7 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?

8 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.

9 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 289f fda0 7bc4 ;PMK
1ffa 889a 3309 237a 2240 c934 bcdc 7ddb,
32, ; Longitud del PMK
Expansin de la clave, ;cadena de texto
000c 41d2 94fb 000d 3a26 10fb 893e e551 ; MAC y valores
Nonce
2145 57ff f3c0 76ac 9779 15a2 0607 2703 ;
8e9b ea9b 6619 a5ba b40f 89c1 dabd c104
d457 411a ee33 8c00 fa8a 1f32 abfc 6cfb
7943 60ad ce3a fb5d 159a 51f6, 76
)

PTK = ccbf 97a8 2b5c 51a4 4325 a77e 9bc5 7050 ; PTK resultado
daec 5438 430f 00eb 893d 84d8 b4b4 b5e8
19f4 dce0 cc5f 2166 e94f db3e af68 eb76
80f4 e264 6e6d 9e36 260d 89ff bf24 ee7e

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

MIC = HMAC_MD5(Clave MIC, 16, Paquete EAPoL)

MIC = HMAC_MD5(
ccbf 97a8 2b5c 51a4 4325 a77e 9bc5 7050, ; Primeros 16
bytes de la PTK
16, ; Longitud de la PTK
0103 005f fe01 0900 0000 0000 0000 0000 ; Paquete EAPoL
1400 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000
)

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

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 = ./seguridadCA

...

countryName_default = SP
stateOrProvinceName_default = Madrid
0.organizationName_default = UAH

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 = password
shortname = 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.

24 AntonioSnchezCamacho
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

También podría gustarte