Mostrando entradas con la etiqueta contraseñas. Mostrar todas las entradas
Mostrando entradas con la etiqueta contraseñas. Mostrar todas las entradas

lunes, 12 de enero de 2015

Contraseñas guardadas en claro

Recientemente me han llegado una serie de correos de spam un tanto extraños. Pero, por ciertas circunstancias, resulta que por el asunto de los mismos me eran muy familiares. Sobretodo porque también venía una descripción de cosas que hice hace bastantes años. Además, también estaba incluido el nombre del servicio que utilicé en su momento.

El tema es que eran unos foros de esos gratuitos que podías incluir en tus páginas. Por lo que después de echarles un vistazo y los contenidos no me sonaban de nada. Nada de nada. Aún así, yo sabía que tuve foros relacionados con los títulos de estos foros. Por lo que me propuse acceder al panel de control.

Mi primer problema: ni idea de qué usuario y contraseña utilicé por aquel entonces. Por lo tanto, mirando a qué dirección de correo me había llegado, me propuse a solicitar un reseteo de la contraseña. Lo solicito, y... ¿Os podéis imaginar qué me encuentro? Seguro que por el título os lo imaginaréis: La contraseña completamente en claro. ¡Increible!

Lo primero que quiero hacer es quitarme estos foros de encima (para que ya no llegue spam) y eliminar la contraseña de una vez por todas. Si me puedo quitar la cuenta, mucho, mucho mejor.

Lo que no me puedo creer es que a estas alturas, aún siga habiendo servicios que estén funcionando y no metan las contraseñas en una cripta, (¿flame, cuando hasta hace unos pocos años atras yo dudaba de cuál era la correcta?) cifren las contraseñas.

Si tuvieras que contar cuántos servicios conoces que también las guardan así, sin meditarlo: ¿cuántos dirías? Por favor: seamos responsables y no demos nombres.

miércoles, 28 de mayo de 2014

Las contraseñas en los sitios

Después del "supuesto" incidente del otro día con ebay y todos los datos de sus usuarios filtrados, hemos tenido que cambiar la contraseña del sitio. Como de costumbre, una vez ésta es obtenida, aunque se encuentre hasheada.

Con este lío, respondí al tweet:




con




a lo que, a su vez, me respondieron:




a lo que, a la vez de darle la razón, también indiqué que muchos sitios limitaban los tipos de caracteres que se podían usar. A lo que me dijeron:




Todo esto para ver si podemos comentarlo por aquí. ¿Qué os parece que nos limiten el tamaño de una contraseña? Si es a la baja se comprende. ¿Pero a la alta? No me parece bien que nos fuercen a utilizar una contraseña cuya longitud máxima es 20. Y mucho peor si te limitan los caracteres que puedes utilizar. Con eso podrían reventarte tu "algoritmo" de contraseñas a la hora de crear una segura con una frase tuya y después sustituyendo algunas letras por algún carácter especial que podría estar restringido en ese sitio. Además de bajar la entropía de la combinatoría.

Lo dicho: ¿Qué opinión tenéis al respecto? ¿Sería una negligencia por su parte?

miércoles, 5 de junio de 2013

WCE: Windows Credential Editor

Hace poco os conté cómo me había olvidado de la contraseña del administrador de mi equipo, de las técnicas que utilicé para intentar recuperarla y de las que hubiera siguiendo utilizando de haberme hecho falta.

Pues bien, una de ellas era utilizar Windows Credential Editor. Esta herramienta, que los antivirus la detectan como una potencial amenaza, permite mostrar los usuarios de Windows, con sus contraseñas... en claro. Y no requiere de un diccionario para mostrarlas. En pocos segundos, no más de 5 o 10, nos las saca.

¿En qué se basa para obtenerlas? Si lo cuento yo, así, de memoria, las obtiene a partir de un servicio esencial de Windows que se llama lsass.exe. Si no me equivoco, y no he podido corroborarlo, este proceso es capaz de devolver la contraseña en base64. Y ahí es cuando se puede descifrar al texto plano. Para más información, en la cuenta de Shileshare de la RootedCon están las diapositivas de la presentación de la herramienta en 2011.

Ahí es nada. A donde iba. La cosa es que en ese momento, cuando quise utilizar esta herramienta, tuve varios problemillas. El primero de todos, y el que más fácil es de solventar, es que para lanzar la herramienta no puedes hacerlo con permisos de usuario mortal:

Lanzando WCE sin permisos
Lanzando WCE sin permisos
Por lo tanto, voy a elevar privilegios en la consola para poderlo lanzar en condiciones. Y, para mi sorpresa, me dice exactamente lo mismo. Es muy, muy raro. Si lo pruebo en la máquina virtual, instalada como 32 bits, me da el mismo aviso estando tanto como usuario normal como habiendo elevado privilegios. Si lo hago en mi equipo, que es 64 bits, me permite solicitar la ayuda siendo usuario mortal

Pidiendo ayuda en WCE sin privilegios. No permite listar los usuarios
Pidiendo ayuda en WCE sin privilegios. No permite listar los usuarios
Y, si intento listar los usuarios y su contraseña, tanto en LM como en NTLM:

Listando los usuarios y sus contraseñas cifradas
Listando los usuarios y sus contraseñas cifradas
Ahora, tocaría mirar las contraseñas sin cifrar, pero, no acaba siendo así:

WCE -l -w: Imprimir contraseñas en clear text. Pero no funciona
WCE -l -w: Imprimir contraseñas en clear text. Pero no funciona
Como podéis ver, no acaba de funcionar. En teoría, debería de mostrarlo. También hay que tener en cuenta que según las propias instrucciones, hay que haber explotado alguna vulnerabilidad para que funcione. El día que haga un artículo sobre la explotación de vulns utilizando metasploit, a ver si lo incluyo, que seguro que ahí sí que funciona. Porque ni siquiera con la máquina virtual, haciendo el "truco de los 5 shitfs", funciona. 

Al menos, os he enseñado lo que me hizo exactamente aquel día. 

lunes, 27 de agosto de 2012

Hash dumping en Windows

Ya se que este tema se ha tratado en multitud de blogs y que este post en concreto no acaba siendo obra mía. Pero, como últimamente acumulo muchas cosas por leer y aprender y me gustaría tenerlas a buen recaudo por si algún día las necesito, aquí lo dejo por si las moscas. Y, si a alguien le resulta de utilidad, pues bienvenido sea, ¿no?

Aquí dejo un resumen de una serie de posts que han escrito sobre los dumps de los hashes en sistemas Windows. Ya he hablado unas cuantas veces de este tema, y, he de reconocer, cada vez que leo algo al respecto, acabo aprendiendo más, o, como mínimo, asentando mejor lo que ya conocía.

Este primer artículo nos habla de cómo obtener los hashes en modo offline. O también, herramientas como kon-boot (esta la probé hace tiempo), BootRoot o SysRQ2, para (descrito un poco a lo burro) que salte el kernel y entrar en el sistema sin que el usuario seleccionado pida la contraseña. Eso sí, cuando probé el kon-boot, si se tenía puesto el Syskey, éste no se lo saltaba.

Otra posibilidad es resetear la contraseña de un usuario local con chntpw.

Más posiblidades explicadas en el artículo (y que también explicaban en el FTSAI): hacer un backup del sistema (el resgistro, al menos: SYSTEM y SAM). Después, lo volcabas a otra unidad o carpeta y a partir de ahí,  ya que no estaba en uso, podías leer los datos, desde, por ejemplo, Caín.

Más técnicas: el uso de shadow copies, herramientas como regback.exe...O, las herramientas que permiten hacer el dump desde memoria: pwdump6, pwdump7, fgdump, gsecdump, PWdumpX... (de las que también nos hablaron en el FTSAI). En general, y según he podido entender, alguno de estos métodos permiten inyectar en el servicio LSASS datos que permiten recuperar los hashes. Eso sí, se pueden producir BSODs.

El segundo post tratan el cómo obtener los hashes de un Active Directory. Para ello hará falta acceder a la base de datos que utiliza, y que se encuentra en %SystemRoot%\ntds\NTDS.DIT. También lo puedes obtener desde una copia del fichero SYSTEM. Una forma de poder hacer una copia de esos ficheros sería utilizar el comando ntdsutil que se encuentra a partir de los sistemas operativos Windows 2008.

Alguna de las herramientas que nos permita sacar las contraseñas serían Windows Password Recovery Toolntds_dump_hash.

Y, la tercera parte, nos habla sobre los históricos de las contraseñas (muy comunes en entornos corporativos y de AD). Sobretodo porque si se usan patrones, consiguiendo alguna contraseña antigua se podría encontrar la actual. También las contraseñas que se utilizan en servicios del sistema y para el autologon: encontrándose estas dos últimas en el LSA Secrets. La herramienta ya mencionada gsecdump se puede utilizar para obtenerlas. Sea cual sea la herramienta utilizada para obtener este tipo de contraseñas, se podrá conseguir en texto claro.

Además, sabiendo que se hay servicios arrancados con usuarios que son "Administradores de Dominio" o, incluso, "System", el agujero que tendremos en el sistema será de órdago.

jueves, 19 de julio de 2012

1, 2 ,3... 4, 5, 6

"123456" sigue siendo una de las contraseñas más utilizadas http://t.co/owytIHJu -- Andréz LAMOUROUX (@DarkOperator)

Hoy podemos hablar de este tweet. 1, 2, 3... Responda otra vez ¿Cómo es posible que lo usuarios estén usando estas contraseñas? Y no, no me refiero a que ellos decidan utilizarlas. La pregunta, realmente, es: ¿Por qué estos servicios permiten que se utilicen?

Cuando nos damos de alta en un servicio de estos, suelen tener una barra de colores que va indicando la fortaleza de la contraseña. Si saben que es débil: ¿No deberían de impedir guardarla? Vale. Ahí estaríamos pasando la responsabilidad de las contraseñas al usuario. Algo en lo que no están a favor el equipo que desarrolló "la Sibila" (NoConName 2011). Pero menos da una piedra. Así, luego putada lo que pasa. Con un diccionario y sus variantes sacas unos cuantos millones de contraseñas hasheadas (por ejemplo, sin saltear).

¿Alguna solución más para evitar esto? Y la formación de un usuario s torna complicada. Yo no la contaría como "solución".

lunes, 16 de julio de 2012

Julio, otro mes pasado por agua

Parece mentira que vuelva de Francia y me encontré Gong que se han filtrado contraseñas de Yahoo, NVidia y algún quite otro sitio más y, ahora que estoy esperanzo el tren para volver a casa a comer, me encuentro con este tweet:

Billabing ha sido hackeado y 20.000 contraseñas en texto sin cifrar han sido filtradas en línea http://t.co/2NJM07ta -- Oesia Seguridad (@oesia_seg)

Parece que tenemos otro mes "pasado por agua" con tanta filtración. Vale que hay meses que han sido peores, cono el pasado junio. Pero es otro más. Y otra excusa para tener algo que contar.

miércoles, 6 de junio de 2012

LinkedIn y sus passwords filtradas [updated]

Según acabo de leer en twitter, se ha producido una intrusión en los servidores de LinkedIn. Si bien un tweet suyo dice:
Our team continues to investigate, but at this time, we're still unable to confirm that any security breach has occurred. Stay tuned here. -- LinkedIn (@LinkedIn)
Según he podido leer, se han filtrado unas 6 millones y pico (tirando a 7) de contraseñas SIN la cuenta asociada. Aún así, se cree que éstas sí que se han visto comprometidas. Sobretodo porque los hay que dicen que ser password de 14 caracteres se encuentra en ese listado.
El costado bajo el que se encontraban era SHA-1 pero NO estaban salteadas (o aliñadas o como queráis llamarlo).
Cuando tenga más noticias, avisaré.

Update 2012-06-06, 22:42:

Me llega a través de la lista de correo de la Rooted una confirmación oficial. Según comentan, en efecto, se ha producido la intrusión. Y los usuarios con cuentas comprometidas recibirán instrucciones por e-mail, en los que no contendrán ningún enlace. También avanzan que están empezando a saltear (o, como dije antes, usad el término que más os guste) las contraseñas. A esto último: a buenas horas, mangas verdes.

martes, 2 de noviembre de 2010

A vueltas con... contraseñas en Windows

A lo largo de la semana tendría que haber jugado un poco más con el tamper data o con las cabeceras. Y, al final, he acabado haciendo otras cosas, que, aunque puede que no sean igual de interesantes, son válidas para escribir aquí. Por lo tanto, voy a la carga.

Hace meses escribí varias veces sobre las contraseñas en Windows: I, II, otro y... otro más. Pues, una vez más, tengo algo que decir al respecto.

Hace unos minutos un amigo ha enviado un correo de un sitio, que, una vez más, enlaza a otro mucho más interesante.

Como ya comentamos en su momento, cuando se almacena una contraseña lo que se hace es guardar su hash. Así, si este hash viaja por la red, se podría capturar, por ejemplo, con un ataque man in the middle y, después, buscar la contraseña que corresponda con ese hash.

Recordando un poco lo que comenté en su momento, hay varias formas de buscar esa correspondencia. O furza bruta: ir probando a pelo todas las combinaciones posibles hasta que una contraseña case con ese hash. O utilizar un diccionario de datos, lo mismo que la posibilidad anterior, pero buscando la posible contraseña en un fichero de texto. O con las rainbow tables.

Todas estas opciones pueden llevar su tiempo. Bastante tiempo. Pero, los sitios que acabo de enlazar lo tienen todo hecho. Le pasas el hash, y te devuelve la contraseña en apenas unos segundos.

He probado un hash al azar y no ha sido capaz de encontrar la contraseña. ¿Qué le vamos a hacer? La cosa está en que este servicio ayudará bastante a a la hora de buscar estas correspondencias.

Ya que estamos. Otro serivio de este estilo, pero para MD5, se puede encontrar en una comparativa que hizo SbD.

miércoles, 9 de diciembre de 2009

Contraseñas en Windows II

Si bien este post va dirigido a las contraseñas en Windows, se podría aplicar a las contraseñas en general.

Como ya comenté en un anterior post, nos podemos encontrar con unos ficheros llamados rainbow tables. Estos son unos ficheros donde se tiene una gran colección de hashes correspondientes a contraseñas. ¿Para qué sirve tener una colección de hashes? En principio, nos permitirá hacer unas cuantas cosas. Por ejemplo. Dado el hash de una contraseña, se puede buscar éste dentro de la tabla.

También hay que tener en cuenta que dependiendo del conjunto de caracteres que se esté empleando, será más fácil, o no, encontrar la contraseña. Por el lado de las rainbow tables la dificultad radicará en que si se están utilizando caracteres especiales, como pueden ser guiones bajos (_), guiones (-), o, si vamos más allá, eñes (Ñs), acentos, etc, hará que el fichero donde están almacenados los hashes ocupen más que si sólo se tuvieran las combinaciones sencillas del ASCII. Y, desde el punto de vista de la contraseña, porque cuantos más caracteres especiales se utilicen, unido a la longitud de ésta, más costará el poder encontrar dicha contraseña dentro de las tablas, si es que está representada ahí dentro. También es cierto que a medida que la tabla va creciendo es más probable que se produzca una colisión. Y cuando hay colisiones implica que hay un hash que valdría para más de una contraseña.

Es muy, muy importante darse cuenta de que a medida que se van añadiendo caracteres a la combinatoria de las posibles contraseñas de las que queremos almacenar su hash, más ocupará el fichero donde estén almacenadas. Ayer estuve buscando material para poder hacer alguna demo y, para que se vea hasta donde puede llegar el tamaño de una colección de estas, un bicharraco de estos que contenga los hashes para LM de una longitud máxima de 7 caracteres, ocupa 120 GB.

En este sitio hay una buena presentación en la que se ve cómo se pueden generar estas tablas, y algunas características que se me queden colgadas o que no sean muy precisas.

De momento no puedo dar muchos más detalles. De todas maneras, como ya he dicho, quiero hacer una demo con una de estas para que veáis cómo funcionan.

domingo, 6 de diciembre de 2009

Contraseñas en Windows I

Algo que es de cajón: En Windows se utilizan contraseñas.  Y éstas se almacenan en el sistema. Pero, si éstas se almacenaran en claro, del mismo modo que estamos leyendo este texto, sería muy, muy fácil obtenerlas. Sólo habría que encontrar el lugar donde están guardadas y abrir un bloq de notas. Ya está.

Y ahí está el quid de la cuestión. Que no es tan fácil hacer eso. Porque no se almacenan en claro. Estas se almacenan en lo que se llama (la) SAM (cuando se habla de eso se dice "la SAM esto, la SAM lo otro..."). La SAM es un fichero (no una BB.DD) que está en el registro de Windows donde se guarda la correspondencia usuario / contraseña utilizando hashes.

¿Qué es un hash? Un hash es un algoritmo que al aplicarlo sobre un elemento dado (en este caso, la contraseña), se bebería de obtener una codificación única. Y digo "se debería" porque si, dados dos elementos distintos, se produce el mismo hash, tenemos una colisión.

Ahora que sabemos dónde se guardan las usuarios y sus contraseñas (en la SAM) y qué usa para que no se vea la contraseña (un hash)... ¿Cuál es su algoritmo? Bueno. Yo puedo contar las características de los distintos algoritmos que utiliza. Porque, a lo largo del tiempo, Windows ha ido creando distintos formatos.


  • Hash LM (Lan Manager):


    • No se utiliza en red
    • Se mantiene por compatibilidad hacia atrás. Es decir, para mantener la compatibilidad con sistemas antiguos. 
    • La longitud máxima es de 14 caracteres. Si la contraseña tiene mayor longitud no se guarda con en este tipo de hash. Si es menor, se añaden nulos hasta alcanzar esta cifra máxima. 
    • No es case sensitive, sensible a mayúsculas / minúsculas. Se escriba como se escriba, se guardará en mayúsculas. 
    • Utiliza ASCII puro y duro. No valen las Ñs ni los acentos. Se pueden utilizar 142 símbolos.
    • La contraseña se separa en 2 mitades, cada una de 7 caracteres. (Por lo tanto, son 2 hashes, no 1). 
    • Como máximo, se puede conseguir una combinación de 6,8 · 1012 contraseñas.
    • A partir de GPOs (de las que puede que hable en otro post) se puede evitar utilizarlas
  • Hash NT
    • La contraseña tendrá una longitud no fija, pero como máximo podrá ser de 127 caracteres.
    • Es case sensitive, Permite utilizar 65.535 símbolos. 
    • Si nº caracteres es menor o igual a 14, llegamos aproximadamente a las 4,6 · 1025 contraseñas (set de caracteres de LM). Si es mayor, 2,7 * 1067 posibles contraseñas. (full charset). Si es igual a 127, podremos conseguir, 4,9  · 10611 combinaciones.
    • No se rellena si faltan carcateres para llegar a un valor determinado (lo contrario a lo que hacía LM).
    • Se utiliza el algorítmo MD4, por lo que hay colisiones. 

  • NTLM: v1 y v2
    • Permiten autenticación por red. 
    • Funcionan de un modo parecido al MS-CHAP, desafío / respuesta.
    • Se generan hashes de sesión, una vez se ha realizado la autenticación.
    • Entre la versión 1 y la 2, es preferible utilizar la 2 (capitán obvio al rescate!!). 
En general, los algoritmos de antes citados se pueden romper en mayor o menor medida por fuerza bruta. Si bien, los últimos, a nivel práctico, no sería viable por la gran cantidad de combinaciones existentes. Otra opción es utilizar unas rainbow tables. Unos ficheros con las contraseñas ya codificadas. (explicado de forma muy concisa). En otro post hablaré sobre las posibilidades de que esto puede brindar.

Espero que os gustara eso. Como siempre, se aceptan criticas.