12.5.09

Nmap vs Conficker??

Creo q a esta altura ya todos habran oido hablar d Conficker, el gusano d moda en la red… xD. La principal via d propagacion del mismo es la vulnerabilidad MS08-067 q c soluciona con el parche KB958644 que se puede descargar como siempre desde la pagina de Microsoft:

http://www.microsoft.com/downloads/en/results.aspx?pocId=&freetext=KB958644&DisplayLang=en

... aunque tambien esta presente la propagacion x usb y algun otro metodo, el parche es el 1er paso para evitar la reproducción del gusano en la red. En 1 equipo hogareño la desinfección es bastante facil, pero en 1 red corporativa la cosa c complica 1 poco mas.

No voy a entrar demasiado en detalle sobre la accion del Conficker ya q abunda info y no es el tema central, pero si dar algunos consejos para ayudar a limpiar la red infectada. Las acciones pueden llevar desde la mas extrema, q es poner en cuarentena la red y limpiar estaciones d trabajo y servers, hasta metodos mas sutiles, q llevan mas tiempo pero no comprenden paralizar completamente la red. Hay q tener en cuenta q no siempre es posible paralizar 1 empresa aunque sea 1 solo dia...

En el 1er caso, la desconexion d las pcs d la red impide la reinfeccion y el tema seria bastante facil. Desinfectar con cualquiera d las herramientas gratuitas d av q andan x internet, aplicar parche y x las dudas scannear otra vez hasta limpiar el total d las maquinas.

La 2da opcion queda a criterio d quien este encargado d la red ya q según su extensión podria llevar varios dias. El 1er paso como siempre es parchar las pcs, q x otro lado ya deberian estar hace rato xq la actualizacion c libero en octubre d 2008, y ahí justamente tenemos el 1er punto para resaltar.

Es normal q 1 user hogareño no tenga sus pcs actualizadas al dia pero es casi imperdonable q 1 red corporativa no tenga 1 actualizacion d hace 6 meses, tal vez esto ayude a q los admins no sean tan negligentes con estas cosas y den mas importancia a las actualizaciones. D este punto c agarra Microsoft para lavarse las manos del asunto... “yo saque mi actualizacion... vos no la bajaste... tu culpa” xD

Otro punto q ayuda a parar la infeccion es cerrar el puerto 445 en las pcs. Este puerto c encarga del directory service (Microsoft-ds) y es el q usa el gusano. Esto puede hacerse x regla del mismo firewall d win o tal vez x el mismo antivirus si tiene opcion d blockeo d puertos. Desde la controla central c puede agregar la politica a los clientes y cerrar rapidamente esa via d infeccion.

Tambien podemos deshabilitarlo borrando el siguiente valor del registro:

HKLM\System\CurrentControlSet\Services\NetBT\Parameters\TransportBindName


Despues d esto, como en el caso anterior limpiar el sistema con alguna utilidad y x supuesto actualizar el av local q probablemente no lo estaba haciendo.

Otra consecuencia del virus es q si existe en la red 1 politica d blockeo d passwords en X intentos fallidos, muchas d las cuentas apareceran blockeadas constantemente ya que trata de crackear x medio d fuerza bruta passwords del sistema para seguir la propagacion.

La versión C entre otras “mejoras” instala 1 falso parche 958644 q aparenta ser el d Microsoft y d hecho repara la vulnerabilidad pero contiene 1 backdoor para futuras reinfecciones, x lo cual podriamos pensar q 1 maquina esta limpia y parchada cuando no lo esta realmente...



Nmap

A partir d la versión 4.85b5 nmap puede detectar remotamente maquinas infectadas, lo cual facilita muchisimo el trabajo, ya q x lo gral las consolas d av son demasiado lentas y generar 1 informe para cientos d maquinas para tener 1 panorama claro lleva tiempo, ademas del proceso d comunicación entre el cliente y el servidor, y las molestias en la red q ocasiona el gusano.

Con nmap en unos pocos mins tenemos los resultados bastante claros en 1 scan completo d la red. El comando para scannear buscando Conficker seria el siguiente:

nmap -PN -T4 -p139,445 -n -v --script=smb-check-vulns --script-args safe=1 [rango ip]

el resultado en 1 cliente limpio seria “Conficker: Likely CLEAN” y en 1 infletado “Conficker: Likely INFECTED”. Ademas de mostrar el estado d los puertos 139 y 445.

Algo todavía mas interesante es scannear tambien en busca del parche. Lo cual hacemos cambiando el ultimo modificador x unsafe:

nmap -PN -T4 -p139,445 -n -v --script=smb-check-vulns --script-args unsafe=1 [rango ip]

en 1 pc parchada el resultado seria “MS08-067: FIXED”, y en 1 q no lo esta “MS08-067: VULNERABLE”.

Pero eso no es todo, ya q cabe tambien la posibilidad d q el parche sea el generado x el gusano y esto tambien es posible verlo en el scanneo. El resultado seria “MS08-067: PATCHED (possibly by Conficker)”. En este caso el parche es falso. Hay q desinstalarlo, scannear e instalar el verdadero.

A pesar d q mucha gente d IT mira despectivamente al nmap como 1 herramienta d “hackers” creo q no hay forma mas rapida d tener 1 informe claro del grado d infección y x lo tanto erradicarla lo mas rapido posible.

Descarga d nmap:

http://nmap.org/download.html

no tengan miedo... usenlo!!! xD

19.3.09

ARP Poisoning


Este ataque tan d moda esta bastante explicado en la parte d la puesta en practica, se pueden encontrar x toda la red tutoriales con titulos como “Como hackear contraseñas de Hotmail, Gmail, etc” o “Sea juacker en 3 rapidas lecciones”, con capturas d pantalla e instrucciones paso a paso d como sniffar redes, hacer ataques mitm, etc. Eso si... lo unico q c explica es “abri esto”, hace click alla, después en el otro lado... y asi... je

Lo q no esta tan explicado es la teoria, en consecuencia hay cantidad d gente x ahí mandando paquetes arp sin saber mucho d lo q hacen realmente... y aunq consigan su objetivo, siempre es bueno saber como y xq funcionan las cosas.

Para los q quieren enterarse 1 poco voy a tratar d explicar d manera facil d entender como funciona el tema. Proximamente en otra entrada, para no ser menos, 1 poco d practica con Ettercap o Cain.




ARP, NIC, MAC... y todo eso…

Como todos sabemos el dispositivo d red tiene 1 direccion IP (Internet Protocol) q es la q lo diferencia d los demas y nos brinda la forma d ubicarlo dentro d la red. La ip es unica e irrepetible y blah blah blah... hasta ahí llegamos con eso xq c supone q saben lo q es 1 IP. Para el q no lo sepa q empiece leyendo aca:

http://es.wikipedia.org/wiki/Direcci%C3%B3n_IP

IP es 1 sistema bastante bueno en muchos sentidos pero tiene el problema d q las direcciones pueden ser tanto estaticas como dinamicas y las estaticas tambien pueden ser cambiadas en algun momento... las dinamicas, según el leasing q otorgue el DHCP d nuestra red y la cantidad d peticiones, podriamos llegar a desconectar el cable y tener 1 nueva direccion al reconectar... como entonces podemos reconocer 1 dispositivo sin temor a equivocarnos?

Ahí entra en juego la MAC (Media Access Control). 1 dispositivo d red tiene 2 direcciones, la IP (d la q hablábamos), y la MAC, q es la dirección física, la cual tambien es unica para cada dispositivo o NIC (Network Interface Card).

La MAC viene d fabrica grabada en 1 chip, a diferencia d la IP q es asignada ya sea x DHCP o el SO, y “teóricamente” es imposible d cambiar. Digo teóricamente xq en la practica no lleva mucho + q 3 o 4 clicks en win y 1 linea d consola en *nix. X supuesto q sigue teniendo la misma dir y es el SO el q emula 1 distinta, aunque para todo efecto se cambio y la vieja ya no existe en la red, pero eso es otro tema...

Esta dirección esta compuesta x 6 campos d 1 byte d longitud (FFh) d los cuales los 3 1eros corresponden al fabricante y son asignados x la IEEE Standards Association. Este codigo es llamado OUI (Organizationally Unique Identifier) y se puede consultar en esta dirección:

http://standards.ieee.org/

los ultimos campos son la identificación unica del dispositivo, la cual queda a criterio del fabricante.

Como c puede ver la MAC es algo mucho + estatico q la IP y x lo tanto tiene la desventaja d no poderse ordenar en rangos o subredes como podemos hacer fácilmente con las IPs. Ademas d q una MAC no es routeable y x lo tanto no sirve para protocolos d internet, solamente comunicación d hardware a nivel d red local, x esa razon todos estos ataques sirven solamente en 1 LAN (Local Area Network) o “red local”... perfecto para empresas, escuelas, etc.

Lo unico q nos faltaria ahora para identificar “sin temor a confundirnos” 1 dispositivo es poder asociar 1 direccion con la otra y para eso tenemos justamente el protocolo ARP (Address Resolution Protocol).




ARP

En la capa física de la red solo tenemos NICs q c comunican unos con otros a traves d su MAC. Para llegar a esto, como deciamos anteriormente, necesitamos asociar la dirección IP (d la capa d red) con la MAC address. D eso justamente c ocupa el protocolo ARP.

La mejor explicación q recuerdo d lo q hace este protocolo es 1 maestra en la escuela tomando lista d asistencia el 1er dia d clases. Va diciendo los nombres 1 x 1, todos escuchan la lista pero solo responden al suyo, la maestra mientras tanto asocia nombres con caras.

Ahora supongamos q la PC1 quiere mandar 1 archivo a la PC2, lo 1ero q obtiene PC1 (digamos q tiene la dir 192.168.0.90) es la IP de PC2 (192.168.1.100). A partir d este dato tira 1 paquete ARP request a toda la red (FF:FF:FF:FF:FF:FF) diciendo:

- Soy la MAC xx:xx:xx:xx:xx:xx con la ip 192.168.0.90. Quien tiene la IP 192.168.1.100?

Todos los dispositivos hacen caso omiso salvo PC2 que responde con 1 ARP reply algo como:

- Yo tengo esa IP y mi MAC es yy:yy:yy:yy:yy:yy.

Con esto PC1 puede enviar los datos directamente al hardware de PC2. Ademas PC2 d ahora en adelante “recuerda” la MAC de PC1. Esto sucede gracias a que cada vez q 1 dispositivo c relaciona con otro estos datos quedan almacenados en el cache ARP. Este cache es 1 segmento de memoria q el sistema usa para almacenar la tabla de direcciones q ya conoce para no tener q repetir el procedimiento. D manera q si PC1 tiene q mandar alguna otra cosa a PC2 no es necesario q repita todo el proceso xq simplemente ya conoce su dirección física.

Todo parece muy bueno y eficiente, pero en realidad tiene varios problemas este sistema. Para empezar cada dispositivo tiene su propia tabla ARP, no es algo unificado x la red, y no todos los dispositivos renuevan su información con la misma frecuencia (como los routers x ej q son + lentos para refrescar) d manera q podemos llegar a estar mandando info a 1 dispositivo q ya no existe o a 1 equivocado o... montones d cosas, pero hay mas... je

El protocolo ARP no cuenta con ningun metodo d autenticacion, o sea q el dispositivo q hace el requerimiento “confia” en q la replica viene d la pc q tiene q venir... y no solo eso, sino q puede aceptar replicas sin haber hecho ningun requerimiento antes... xD

A esta altura, para los q tienen 1 poco d imaginación, ya esta bastante claro como trabaja el envenenamiento. En este escenario podriamos mandar replies ARP a cualquier dispositivo haciendole creer q la MAC q c nos ocurra esta asociada con la IP q nos convenga.

Esto nos lleva a multiples tipos d ataque, el mas facil y directo seria 1 D.O.S. (Denial of Service o Denegación de Servicio). Seria muy facil x ej envenenar la tabla d la victima para hacerle creer q la MAC del router q lo saca a internet pertenezca a X pc o a 1 q ni siquiera exista, con lo cual seguiría teniendo conexión con la LAN pero sin salida al exterior. O hacer lo mismo con 1 impresora o el dispositivo q sea para evitar la comunicación. X supuesto hay q estar constantemente mandando replicas ya q la tabla c renueva periódicamente y vuelve a la normalidad.

1 ataque como este podemos practicarlo con utilidades como Nemesis (disponible tanto para sistemas win como *nix):

http://nemesis.sourceforge.net/manpages/nemesis-arp.1.html

pero vamos a ver cosas + interesantes q 1 simple denegacion d servicio... ;)




M.I.T.M. (Man In The Middle)

Teniendo conocimiento d esta tecnica podriamos interceptar el trafico entre 2 dispositivos. Supongamos q la maquina q queremos interceptar tiene la IP 192.168.0.50 y el router la 192.168.0.1. Podriamos enviar replies ARP al router (sin q este haya solicitado nada como vimos antes) asociando la 192.168.0.50 con nuestra MAC y luego a la victima asociando a su vez la ip del router (192.168.0.1) tambien con nuestra MAC. D esta manera la victima nos estaria enviando todos los datos creyendo q somos el router y x medio d “IP forwarding” redirigimos todo el trafico hacia allí.

En el grafico siguiente podemos ver arriba el flujo normal d informacion y debajo el q seguiria durante el ataque:



X supuesto q en medio d todo esto vemos todas las claves d texto plano (ftp, telnet, etc) q manda la victima hacia fuera. El problema lo tendriamos en conexiones SSL (Secure Sockets Layer) donde c requiere 1 certificado para validar la sesion, pero utilidades como Ettercap o Cain nos dan la posibilidad d crear 1 falso certificado para engañar a la victima. El browser da aviso d q es “sospechoso”, pero como todos sabemos el user comun siempre hace click en “next”... je



Creo q con eso es suficiente como para aunque sea tener idea d lo q c hace cuando c practica este tipo d ataque. Esto no pretende ser mas que 1 explicacion algo “casera” d lo q es arp y arp poisoning, si a alguien le interesa profundizar en el tema hay muchas publicaciones profesionales donde leer y es 1 tema bastante interesante.



5.2.09

Grave falla en los nuevos Seagate 7200.11, ES.2 SATA y DiamondMax 22 (la plaga d las barracudas xD)


Estos dias estaba buscando hds para comprar, x supuesto seagate, la mejor marca del mercado y blah blah blah. Muchos diran "pero si la mejor marca es WD? (Western Digital)"... nah... WD era la mejor marca hace muchos años, cuando los discos tenian 1gb d almacenamiento o antes todavia, despues solo conservo el nombre como muchas otras marcas. No estoy diciendo q sean los peores discos (los peores son los hitachi xD), pero si q los seagate (o maxtor q los hace la misma empresa) son muy superiores.

... o eso creia hasta hace poco... :P

Parece que seagate metio la pata en el firmware d algunas series d sus discos nuevos y c clavan al poco tiempo d haber sido comprados... algunos en - d 1 mes. No pude ver ninguno personalmente pero x lo q dicen el drive funciona ok y d repente en algun booteo c blockea y no es detectado x el setup. El disco enciende, gira, pero es como si no estuviera para el setup d la maquina.

Los modelos afectados son:

Barracuda 7200.11

Barracuda ES.2 SATA

DiamondMax 22 (Maxtor)


En principio seagate estuvo censurando las protestas d los usuarios afectados en su web pero al parecer el problema c hizo demasiado grande para taparlo y tuvieron q aceptar la falla y hacerse cargo del problema ante la posibilidad d demandas y toneladas d reclamos.

La 1er muestra d aceptacion del problema fue 1 informe en su web y 1 firmware para parchar la falla:

http://seagate.custkb.com/seagate/crm/selfservice/search.jsp?DocId=207931

en la pag c minimiza el problema diciendo q afecta a 1 pequeño num d drives y q pueden usarse como estan... aunq recomiendan hacer el upgrade d firmware q c puede encontrar en el link anterior... xD

no todo termina ahi xq despues c encontro otro problema afectando a los modelos d 500GB, 750GB y 1TB del 7200.11. upgrade para eso aca:

http://www.seagate.com/www/en-us/support/downloads/other_downloads/cuda-fw

este problema afecta al parecer al uso del cache haciendo q el disco no lo aproveche en su totalidad... 1 vez + dicen q el hd puede ser utilizado asi pero... pero... mejor upgradear... je


En el mapa podemos ver los paises con reportes d fallas marcados en rojo.

volviendo al tema principal... donde esta el problema entonces ahora? si ya esta parchado!!!

no no, el problema es q si el disco ya c vio afectado y ya no lo reconoce el setup es imposible hacer 1 upgrade d firmware xq la placa logica del disco esta muerta y para la controladora no hay ningun hd. x supuesto q la info sigue estando en los platos del disco y blah blah blah pero no esta a la mano d cualquiera recuperarlo en s estado.

cambiando la logica seguramente c salve todo facilmente pero... d donde sacar 1 logica usada d 1 hd modelo recien salido d 1tb?? imposible.

despues la empresa ofrece cambiar el disco inservible x 1 nuevo pero a mucha gente q tenia montones d cosas en el no le gusto mucho la idea d perder todo y la recuperacion d datos es muy cara... mucho + q 1 disco nuevo, pero mucho - q la info q puede llegar a contener. finalmente al parecer seagate tambien c hace cargo d la recuperacion d los datos (estando el hd en gtia x supuesto). si ud es 1 afectado d la "plaga d las barracudas" puede pedir su recuperacion d datos aca:

http://www.seagate.com/www/en-us/about/contact_us/

ir a "data recovery" y llenar formularios... xD

esto seguramente va a traer muchas bajas en las ventas d seagate si no lo arreglan rapido y dejan a todos contentos (cosa q no creo muy probable) y seguramente muchos users van a volver a WD. es 1 lastima xq seagate venia muy bien, y es increible q pasen estas cosas teniendo encima la cantidad d tests q debe tener 1 producto antes d salir a la venta.

tengan cuidado xq en la calle hay discos afectados y con el firmware viejo, fijense bien al comprar o sino atenganse a las consecuencias!!



4.2.09

Brevisima historia de las redes.


Hace mucho tiempo (no tanto en realidad)... las computadoras eran complejos aparatos aislados unos d otros, c/u haciendo su trabajo x separado y tal vez intercambiando datos d vez en cuando x medio d tarjetas perforadas, cintas magneticas y medios d almacenamiento d este estilo...

Hasta q 1 dia alguien c dio cuenta del ahorro d tiempo, dinero y montones d otras cosas q c podia ganar interconectandolas. No solo a las computadoras sino a cualquier dispositivo q pudiera ofrecer alguna utilidad. En esa epoca impresoras, medios d almacenamiento y comunicación d datos, hasta llegar hoy en dia a tener la heladera conectada a internet entre muchas posibles cosas.

La 1era estructura d red c podria decir q fue el telegrafo en el sXIX, despues las redes telefonicas, hasta llegar a la comunicación entre computadoras. Esta c llevaba a cabo a traves d esta misma red usando MODuladores/DEModuladores (modems) q convertian la señal digital en analogica para poder usar el canal fisico (la linea telefonica) para transportarla hacia el otro extremo donde c hacia el proceso inverso (analogico/digital) para q la otra maquina pudiera entenderlo. Todo esto a traves d 1 cable d cobre q es el mismo q c utilizaba para las comunicaciones d voz y q hoy todavia existe (aunq muy mejorado) en el viejo dialup.

Este modelo d comunicación solo permitia la conexión d 1 cliente a 1 servidor pero no la interconexion d los clientes entre si. O sea q 1 maquina c conectaba contra otra y ahí quedaba todo. Esta forma d comunicación es llamada “circuit switching” o “conmutacion d circuito”.

Una comparacion facil con la conmutacion d circuito puede ser 1 conversacion telefonica normal (no ip). 1 persona establece comunicación con otra en otra parte del mundo y el canal d comunicación queda cerrado exclusivamente para esto hasta q las partes cortan como el cliente/servidor del q hablabamos antes...

Todo esto cambio en los 60´s con el concepto d “packet switching” o “conmutacion de paquetes”. La 1era red experimental d este tipo fue creada en Inglaterra, despues hubo algunas pruebas en Francia, hasta q a fines d los 60´s llego a USA donde cayo en manos del ARPA (Advanced Research Projects Agency Network). Esta creo ARPANET, q fue la 1era red operacional basada en este nuevo formato y es la base d lo q hoy conocemos como Internet.

En este modelo 1 maquina puede usar 1 unico canal d comunicación para intercambiar informacion con + d 1 sistema desensamblando los datos en datagramas y uniendolos en paquetes. De esta manera el canal puede ser compartido ademas d q los paquetes pueden ser dirigidos (routeados) independientemente unos d otros.

Desde q en 1965 c establecio la 1er red WAN del mundo, conectando 1 TX-2 en massachusets con 1 Q-32 en california (sin packet-switching) muchas cosas cambiaron, pero en resumen en 1969 c crea el 1er nodo d arpanet en la UCLA y las 1eras redes para los investigadores d ARPA y poco + tarde, en el mismo año para el resto d la comunidad universitaria.

En el ´70 nace el UNIX, poco + tarde el correo electronico y el famosisimo telnet, unos años despues el protocolo TCP/IP y las redes ethernet hasta q en el 90 arpanet deja d existir como tal y c convierte en “internet” poco despues d la aparicion d los 1eros ISP comerciales. entre unos pocos paises en argentina ya estabamos conectados... ;)

14.12.08

Teoria cientifica sobre papa noel (a.k.a. santa claus, san nicolas, etc)


Este texto es d 1 cadena d mail d hace mucho tiempo, cuando hotmail no era d microsoft, linux era solo para geeks y la internet no estaba tan atestada d gente... cada año lo pongo en algun lado para q no c pierda xq me parece uno d los textos navideños + graciosos q vi en mi vida.

espero q lo disfruten... xD



Conclusiones sobre la no existencia de Papa Noel:


1) Ninguna especie conocida de reno puede volar. No obstante, existen 300.000 especies de organismos vivos pendientes de clasificación, y si bien la mayoría son insectos y gérmenes, no es posible descartar completamente la existencia del reno volador de Laponia septentrional.

2) En la tierra habitan alrededor de 2.000 millones de niños (considerando únicamente como tales a los menores de 18 años). Si tenemos en cuenta que Papa Noel únicamente se ocupa de los niños de confesión cristiana, la cifra de niños bajo su responsabilidad se reduce a un 15% del total, alrededor de 378 millones de niños. Según las estadísticas de población mundial facilitadas por la ONU, corresponden a 3,5 niños por hogar lo que sitúa en 91,8 millones los hogares que debieran ser visitados, suponiendo, claro esta, que haya al menos un niño por hogar que se haya portado bien.

3) Papa Noel dispone de 31 horas en Nochebuena para realizar su trabajo, gracias a los diferentes usos horarios y la rotación de la tierra. Esto supone 822,6 visitas por segundo. En otras palabras Papa Noel dispone de una milésima de segundo para aparcar, salir del trineo, bajar por la chimenea, llenar los calcetines y en su caso dejar los demás regalos bajo el árbol, comerse lo que le hayan dejado, trepar otra vez por la chimenea, subir al trineo y marchar a la siguiente casa. Suponiendo que estas 91,8 millones de paradas este distribuida uniformemente sobre la superficie de la tierra (lo cual es completamente falso pero en este caso puede servirnos para los cálculos) habrá 1,2 km. entre casa y casa lo que hace un total de 110 millones de km. De todo ello se deduce que el trineo de Papa Noel se mueve a una velocidad media de unos 1000 km./seg., 3000 veces la velocidad del sonido, 70 veces la velocidad de la sonda espacial Ulises, el vehículo más veloz construido jamas por el ser humano, y 450.000 veces la velocidad punta de un reno convencional.

4) La carga del trineo, suponiendo que cada niño sólo se lleve un tente de tamaño medio, 0,9 kg, seria del orden de 321.000 toneladas, todo ello excluyendo el peso del propio Papa Noel, al que la iconografía clásica siempre describe como bastante orondo. Un reno convencional no es capaz de transportar más alla de 150 kg, aun suponiendo que el reno volador de la Laponia septentrional pudiera multiplicar por diez esa capacidad de carga, serian necesarios unos 214.000 renos voladores.

5) Sin contar con el peso del propio trineo, hablaríamos de 353.000 toneladas de materia viajando a 1000km/seg. Un movimiento de masas de tal calibre crearía una resistencia aerodinámica enorme, lo que supondría un calentamiento de los renos similar al que experimenta una nave espacial a su entrada a la atmósfera. Cada uno de los renos de cabeza absorbería un trillón de kilojulios por segundo lo que hace estimable que el tiro completo se vaporizase en 4,26 milésimas de segundo.

Papa Noel mientras tanto sufriría unas fuerzas centrifugas 17.500 veces superiores a las de la gravedad, lo cual, estimando su peso en unos benévolos 120 kg, significaría que seria aplastado contra el asiento con una fuerza equivalente a 2.000.000 de kg, lo cual le produciría la muerte instantánea

Y de todas formas fue asesinado por Chuck Norris cuando se le olvido el regalo de Navidad de este ultimo, todo apunta a una patada giratoria como causa principal de muerte.

Conclusión: ¿Papá Noel no existe? Eso es mentira. Chuck Norris es Papá Noel. Papá Noel son tus padres. Chuck Norris es Dios y Dios es el padre de todos.

16.10.08

Como apoderarse de un Active Directory por medio del cache local

Este texto es d nivel 1 poco + alto q los anteriores aunq si le prestan atención y buscan en google cualquiera con conocimientos básicos puede entenderlo. No voy a explicar todos los conceptos desde abajo ya q c espera q el lector tenga esos conocimientos... o c preocupe x obtenerlos... je... cualquier duda dejen comentarios y las contesto.

X lo gral, en las grandes redes, los administradores c preocupan de poner la mayor atención en la seguridad de sus servers dejando las estaciones d trabajo bastante + abandonadas. Esto tiene cierta logica ya q el mayor peligro esta en 1 atacante q logre acceso x ej al Domain Controller (d ahora en adelante DC) o simplemente a la clave d admin d dominio.

Teniendo los servers asegurados tenemos asegurada la bd d usuarios con sus hashes y teóricamente lo unico q podria conseguir 1 atacante desde 1 estacion d trabajo es alguna pass local q como mucho le serviria para moverse x las pcs (en entornos corporativos c usa la misma pass d admin local en los clientes en el 99% d los casos) pero no poder pasar d ahí hacia los servers... entonces el dominio estaria asegurado... o no?? xD

Hace unas semanas vimos como conseguir la pass local en pocos mins:

Crackear contraseñas locales de Windows

este metodo puede fallar pero teniendo 1 buen poder d proceso y tiempo todo c puede crackear (en el futuro veremos q hacer si el ophcrack no encuentra la pass), todo depende d si vale o no la pena el tiempo a invertir. Vamos a ver entonces como con derechos locales podemos conseguir algunos hashes de dominio y con 1 poco d suerte y casi nada d riesgo tal vez el del admin.


MSCache

Cuando logueamos en 1 dominio (ahora Active Directory o AD) nuestra contraseña se envia encriptada al DC donde c comprueba q sea correcta para dejarnos ingresar y aplicar nuestros derechos sobre la red. Todo este proceso es mucho + seguro q loguear en 1 pc local o en 1 grupo d trabajo... o tendría q serlo ya q teóricamente los passes deberían estar alojados solamente en el DC.

Q pasaria entonces si tenemos 1 laptop corporativa cuyo user loguea en el dominio d la empresa cuando este no esta en la misma? Para poder usar su maquina fuera del trabajo deberia tener 2 users, 1 local y 1 del AD, ya q al no poder acceder a la red no podria autenticar su pass y x lo tanto loguear en el sistema, acceder a su perfil d dominio, etc.

Pero parece q los sres d Microsoft creyeron q era demasiado trabajo para sus pobres users, y decidieron cachear la pass en el sistema para poder loguear cuando no este disponible el DC. De esta manera cuando ingresamos al dominio nuestra pass queda en cache en el registro d win y podemos loguear sin estar conectados a ninguna parte con la ultima q accedimos. X supuesto q si la pass c cambia en el DC mientras esta desconectada va a seguir usando la del cache hasta q vuelva a la red y vea q hay 1 nueva. A partir d s momento cachea la nueva pass.

A esta altura ya estaran viendo adonde apunta todo esto. Muy sencillo... conseguir el hash cacheado, crackearlo y... bue... 1 agujero de seguridad enorme!!... je


PWDumpX

PWDumpX es la herramienta con la q vamos a extraer los hashes. Tambien lo podriamos hacer con Cain, q vamos a usar + tarde para desencriptar, pero tenemos 1 pequeña desventaja... con Cain podemos sacar los hashes d dominio alojados localmente, en cambio con PWDumpX podemos sacarlos d cualquier pc d la red sobre la q tengamos derechos d admin local (el agujero c agranda xD)...

Esta herramienta fue escrita en perl x Reed Arbin y la pueden bajar de aca:

http://reedarvin.thearvins.com/tools.html

el uso es bastante sencillo. Descomprimimos a alguna carpeta en el rigido y lo corremos desde ahí. Esta es la ayuda:

Usage: PWDumpX [-clph]

[-clph] -- optional argument
-- required argument
-- required argument
-- required argument

-c -- Dump Password Cache
-l -- Dump LSA Secrets
-p -- Dump Password Hashes
-h -- Dump Password History Hashes

If the and arguments are both plus signs (+), the
existing credentials of the user running this utility will be used.

Examples:
PWDumpX 10.10.10.10 + +
PWDumpX 10.10.10.10 administrator password

PWDumpX -lp MyWindowsMachine + +
PWDumpX -lp MyWindowsMachine administrator password

PWDumpX -clph IPInputFile.txt + +
PWDumpX -clph IPInputFile.txt administrator password



Como podemos ver tambien puede extraer los hashes normales, lsa secrets, etc… pero lo q nos interesa a nosotros es la opcion “-c” o sea “dump password cache”. Entonces el formato seria:


Pwdumpx –c nombrepcvictima user password

X supuesto como ya dijimos el user debe tener derechos d admin sobre la victima. Si queremos usar las credenciales con las q estamos logueados seria asi:

Pwdumpx –c nombrepcvictima + +

En pantalla veriamos esto:



MULTIVAC-DC2 es el DC secundario d mi red. Lo hice contra s xq era lo q tenia + a mano, x supuesto q en la realidad c puede complicar 1 poco + y van a tener q buscar 1 pc donde c haya logueado el admin d dominio o el user q les interese.

El pwdumpx como vemos en la captura devuelve 1 fila llamada multivac-dc2-PWCache.txt, vamos a buscar el archivo y encontramos esto dentro:

Administrator:B3A0102769XXXXXXXXXXD535D35E8363:MULTIVAC:MULTIVAC.LOCUTUS

Los campos estan bastante claros. User, hash, nombre dominio (pre2k) y nombre del AD (multivac.locutus). Como pueden ver puse algunas “X” para q no salga el hash completo y alguno c ponga a crackearme la pass. xD

Si hay + passes cacheados salen en el mismo formato 1 debajo del otro, ya con ellos nos podemos ir a crackearlas a 1 lugar + tranquilo...

Esta tambien la opcion si a alguien le interesa d poner 1 lista d pcs victima en 1 txt para hacer 1 ataque masivo y llevarnos todos los hashes q podamos, c hace simplemente cambiando el campo nombredelavictima x el txt.


Crackeando con CAIN

No voy a ponerme tampoco a explicar el uso d CAIN. Se supone q el q lee esto tiene idea d como usarlo o las ganas d aprender ya q tampoco es tan difícil lo q tenemos q hacer. El CAIN se descarga d aca:

http://www.oxid.it/cain.html

abrimos el soft y vamos a la pestaña “cracker” y en la lista d la izquierda podemos ver en 3er lugar “mscache hashes”. Si hacemos click y presionamos el boton “+” q c encuentra arriba podemos extraer los locales, d forma q tambien podriamos usar cain sin tener q recurrir al pwdumpx si lo q queremos son los hashes d users d dominio almacenados localmente. Lo q no podemos hacer es extraer los remotos.

El problema con el q nos encontramos es q no nos permite importar y x lo tanto no podemos introducir los hashes q traemos del pwdumpx. Para esto vamos a hacer 1 pequeño truquito.

Con cain cerrado vamos al dir d instalación y buscamos el archivo “CACHE.LST”. Si le dimos al boton + antes y obtuvimos algo, podemos ver q en el archivo c encuentran los hashes q saco d la pc pero en este formato:

MULTIVAC LOCUTUS B713D9AXXXXXXXXXX9FA9FE639874737

O sea… dominio (pre2k), usuario y hash. Lo q tenemos q hacer es agregar el q tenemos debajo d este d manera q quedaria:

MULTIVAC LOCUTUS B713D9AXXXXXXXXXX9FA9FE639874737
MULTIVAC ADMINISTRATOR B3A0102769XXXXXXXXXXD535D35E8363

Muy importante... poner después d cada hash q c agrega 1 tabulacion y 1 salto d linea para q c vea. El formato final seria dominio – 1 tab – user - 2 tabs – hash – 1 tab – newline. Abrimos nuevamente cain y ya los podemos ver:



ahora nos queda lo + largo... crackearla. Para esto podemos usar distintos metodos según lo q tengamos. Haciendo click derecho sobre la entrada vemos las posibilidades:


Podemos elegir entre ataque x medio d diccionarios, fuerza bruta o rainbow tables. Las rainbow no son las estandard sino q son especificas para mscache. Pueden descargarlas d algun p2p o generarlas uds mismos con alguno d los softs q andan x ahí para s fin. Tambien tienen opcion d testear passes a mano si tienen alguna idea d q puede ser.

Finalmente lo unico q queda es ir a su trabajo, escuela o lo q sea y pasar a ser dueño absoluto d la red.... je... sean eticos y no hagan maldades.

Me olvidaba algo importante... xD

Hay una key en el registro para determinar cuantos users pueden almacenarse. la key es:

CachedLogonsCount

y esta en:

HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon

El valor x defecto es 20, o sea q el sistema cachea hasta 20 passes. Poniendo el valor en 0 se deshabilita el cacheo de passes d dominio, asi q los admins ya saben lo q tienen q hacer... ;)

2.10.08

TrueCrypt - Como mantener nuestros datos a salvo d extraños... (aunque nos apunten con 1 arma xd)


La privacidad es algo q la mayoria de la gente parece tomar muy en serio si c le pregunta, pero a la hora d preservar sus datos electronicos la mayoria son capaces de dejar en 1 txt del escritorio sus numeros de tarjeta con cvv incluido + num d cuenta del bco + pin. No hay una toma d conciencia d q los datos privados pueden ser accedidos x 1 atacante externo ya q hoy en dia todo esta conectado a internet, o tambien x alguien q logre acceso fisico a la pc.

Paranoia? Mmm... 1 poco tal vez. No c olviden nunca q 1 poco d paranoia es buena en este tema. 1 viejisimo dicho d la cultura under es el famoso “be paranoid”, q creo q nunca va a pasar d moda... y hasta puede ser q tenga cada dia + validez. Nuestros datos son solo nuestros y nadie tiene q andar husmeando x ahí... hay q tener en cuenta q cualquier cosa puede ayudar a conocer el perfil d 1 persona para luego usar con ella ingenieria social. Cualquier dato, al parecer d muchos insignificante, q nos puedan robar puede a ayudar a concretar 1 estafa o lo q sea. Hay q resguardar todo d ser posible, pero aunq sea empecemos x la info sensible. Despues si quieren encriptan todo el hd... ;)

Q podemos hacer para lograr esto? Simple... usar la criptografia o encriptación de nuestros datos. Veamos la definición d criptografia según wikipedia:

La criptografía (del griego κρύπτω krypto, «oculto», y γράφω graphos, «escribir», literalmente «escritura oculta») es el arte o ciencia de cifrar y descifrar información utilizando técnicas que hagan posible el intercambio de mensajes de manera segura que sólo puedan ser leídos por las personas a quienes van dirigidos.

Con más precisión, cuando se habla de esta área de conocimiento como ciencia se debería hablar de criptología, que engloba tanto las técnicas de cifrado, la criptografía propiamente dicha, como sus técnicas complementarias: el criptoanálisis, que estudia los métodos que se utilizan para romper textos cifrados con objeto de recuperar la información original en ausencia de las claves.

No voy a dar 1 explicacion de criptografia ya q no soy el + indicado, ademas d q no es el punto d este tema pero x lo q leemos arriba podemos darnos 1 idea d lo q estamos haciendo. La idea consiste en tomar 1 texto plano y, x medio d 1 algoritmo d encriptación y x lo gral 1 clave, convertirlo en algo ilegible e imposible d recuperar a – q tengamos la dicha clave.

Hay 1 soft muy bueno q nos va a ayudar a hacer esto y ademas d todo lo mejor es q... es completamente free!!. El software es el famoso Truecrypt y lo pueden bajar d su pagina oficial:

http://www.truecrypt.org/

viene tanto en versión windows como tambien osX y linux. La instalación es muy sencilla, el tipico next->next->finish. Podemos básicamente encriptar datos d 3 formas.

· Crear 1 contenedor para los archivos q después montamos como 1 unidad +
· Encriptar 1 particion q no tenga SO.
· Encriptar 1 particion q contenga 1 SO en la cual nos va a pedir clave en el booteo

Al iniciar el programa hacemos click en el boton “crear volumen” y nos aparece 1 ventana como esta:



ahí podemos ver las 3 opciones d las q hablábamos. Vamos a crear 1 contenedor q la verdad q me parece lo + comodo y lo + facil d ocultar. El principio basico es q si el atacante no sabe siquiera q hay datos encriptados o donde estan le va a resultar mucho + dificil conseguirlos desencriptados... xD

El contenedor es simplemente 1 archivo como cualquier otro q puede ser movido, copiado o borrado como cualquiera sin perder sus características. Entonces... “create a file container”, next y vemos esta otra pantalla:



tipo d volumen... standard u oculto... vamos a ver esto con 1 poco d detalle xq vale la pena.

El standard es lo q hablábamos antes, 1 fila encriptada normal a la cual podemos poner donde queramos o con los atributos q c nos ocurra. X ej podemos ponerla como oculta, sistema y ponerle algun nombre q parezca algo d nuestro SO... alguna dll inexistente d system32 x ej si usamos windows.

Pero q pasa si tenemos 1 atacante frente a frente q sabe q tenemos 1 particion oculta apuntándonos con 1 9mm amenazándonos con vaciar el cargador en nuestra cabezita si no le decimos donde esta el contenedor y le damos la pass?? O tal vez el asunto sea + leve pero llevandonos a la situación d tener q poner la pass y mostrar el contenido a otra persona. Demasiada paranoia?? Mmm.... hay q pensar en todo siempre. ;)

Para eso justamente existe el tipo d volumen oculto. Lo q hace este sistema es meter 1 particion encriptada dentro d otra. En este grafico c v bastante claro:



arriba vemos 1 particion standard d truecrypt, lo q esta en verde es la cabecera, lo violeta el espacio ocupado x archivos y finalmente lo gris es el espacio libre. El detalle es q el espacio libre esta formado x info aleatoria... esta es la forma en q c crea cualquier partición d truecrypt.

Ahora... si en s espacio libre metemos 1 particion a su vez encriptada seria imposible diferenciarla d los datos aleatorios... perfecto!!

En el 2do grafico ya tenemos la partición oculta representada x el color azul. Detrás de la cabecera d la anterior (verde) podemos ver 1 nueva cabecera en celeste q es la del volumen oculto. Tanto la cabecera como la partición son imposibles d reconocer sin la clave, sin ella siguen siendo “info aleatoria” exactamente igual al espacio libre... ;)

Entonces... vamos a tener 2 claves distintas. 1 para la partición encriptada “normal” y otra para la "oculta”. X supuesto q deben ser distintas. Entonces, cuando ponemos la pass d la 1era partición entra directamente a esta y toma el resto como “espacio libre” o “datos aleatorios”. Si ponemos en cambio la pass de la 2da, la 1er cabecera la toma como incorrecta y pasa el control a la 2da q monta la partición oculta.

Asi podemos tener en la 1era partición algun dato q no nos importe q vean y lo valioso en la 2da. No “pass incorrecta” ni nada d eso. Bueno... este metodo solo en caso d “extrema paranoia”. Sigamos con el metodo “normal”. Elegimos la opcion d “standard truecrypt volume” y vamos a la siguiente ventana:



nos pide 1 nombre d archivo para crear el volumen encriptado. Ponemos ruta y nombre q tengamos ganas. Recomendable como deciamos antes meterlo en algun lado q parezca algun archivo d sistema o cualquier cosa q no llame demasiado la atención. Tambien c puede seleccionar 1 archivo existente, el cual seria destruido en el proceso. Siguiente y vamos a:



el tipo d algoritmo d encriptación q queremos usar, todos son bastante difíciles d romper. Hay q tener en cuenta q a mayor complejidad del algoritmo mayor es el tiempo d encriptación/decriptacion d los archivos con los q trabajamos. Haciendo click en el boton “benchmark” c pueden comparar tiempos d c/u.



en la pantalla siguiente definimos el tamaño d la partición. Si solo queremos guardar unos pocos datos de texto con unos kbs alcanza. Next y vamos a la pantalla d password:



no pongan 12345... xD



después c formatea el archivo en el sistema q le digamos, pide mover el mouse para recolectar info aleatoria y ya tememos listo el archivo.

Para abrirlo desde la ventana principal de truecrypt seleccionamos 1 letra d unidad, clickeamos en “select file” y elegimos el archivo encriptado:



haciendo click en “mount” c abre el cuadro q nos pide el pass correspodiente y al introducirlo ya tenemos el volumen encriptado montado en la letra d unidad q elegimos.

Con esto sus datos ya deberían estar a salvo... ;)