Está en la página 1de 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)

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
)

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

16

OtraopcinserausarWPAconunservidordeautenticacin(normalmenteunservidor
RADIUS),quedistribuyeclavesdiferentesacadausuario(atravsdelprotocolo802.1x),
inicialmenteasescomofuediseadoloquepasaqueposteriormenteseintrodujoelmodo
deusoconclavecompartida(PSK)parausuariosdecasaypequeasoficinas.

Porltimo,siquisiramosmantenerelesquemaWPAPSK,lomseficazserausaruna
clavedelalongitudmxima(63caracteres),generadaaleatoriamente,deformaqueniun
ataquecondiccionarioniunataqueconfuerzabrutaseaviable.

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
stateOrProvinceName_default
0.organizationName_default

= SP
= Madrid
= 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
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.

24

Siestonofueraposiblesepodranintentarotrasmedidas:
ObligaralusodelatributoAutenticadordeMensajeentodoslosmensajesde
peticindeacceso
Usarautenticadoresdepeticincriptogrficamentefuertes
Obligaralusodecontraseasdeusuariorobustas
Usarunmecanismodecontabilidadybloquodeautenticacinparaprevenireluso
deataquesdediccionarioonlinecontralascontraseasdeusuario
Usarclavescompartidasconunaentropadealmenos128bits
ComoseespecificaenlaRFC2865unapeticindeautenticacinseguradebeserglobaly
temporalmentenica.Estapeticinjuntoalaclavecompartidaseunenparadeterminarla
claveusadaparaencriptarlacontraseadeusuarioyotrosatributos.Esposibleparaun
atacanteconlacapacidaddecapturartrficoentreelclienteyelservidorRadiusintentar
crearcrearundiccionarioconlaspeticionesdeautenticacinylacorrespondienteclavede
encriptacindelacontraseadeusuario.
Silapeticinnoessuficientementealeatoriapuedeserpredecida,porloqueelgenerador
debertenerunacalidadcriptogrfica,sinofueraassedeberausarIpsecconESPy3DES
almenos,cmovienedescritoenlaRFC3162.
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