La ENISA lanza una herramienta de evaluación de las estrategias de ciberseguridad

La ENISA (Agencia Europea de Seguridad de las Redes y de la Información) acaba de lanzar una nueva herramienta que ayudará a los Estados Miembros a evaluar sus prioridades de acuerdo con sus estrategias nacionales de ciberseguridad. Para cada objetivo estratégico, la herramienta ofrece recomendaciones e ideas sobre cómo mejorar. ENISA desarrolló la herramienta con el objetivo de proporcionar resultados de una manera rápida y fácil de usar.

https://www.enisa.europa.eu/topics/national-cyber-security-strategies/national-cyber-security-strategies-guidelines-tools/national-cyber-security-strategies-evaluation-tool


Las autoridades a cargo de monitorizar la implementación de la Estrategia Nacional de Seguridad Cibernética (NCSS) pueden usar la herramienta para seguir la implementación y para reflexionar sobre las próximas prioridades estratégicas. Las actualizaciones de la herramienta en el futuro incluirán nuevas preguntas y objetivos para cubrir las necesidades del panorama de ciberseguridad emergente. Esta herramienta también es compatible con los requisitos de la Directiva NIS para que todos los Estados miembros tengan un NCSS y lo actualicen regularmente.

ENISA también ha actualizado su mapa interactivo de la NCSS, mejorando su usabilidad e introduciendo nuevas características, tales como los objetivos implementados de la estrategia, ejemplos detallados, historial de versiones y selección de idioma.

Las nuevas herramientas se presentaron durante el sexto taller nacional de ENISA sobre Estrategias de seguridad cibernética. El taller se enfocó en las últimas noticias del panorama de NCSS y la colaboración a través de los Centros de Intercambio de Información y Análisis (ISAC). El Mecanismo «Conectar Europa» (CEF), un instrumento clave de financiación de la UE destinado a promover el crecimiento, el empleo y la competitividad a través de inversiones específicas en infraestructuras a nivel europeo, se presentó también en el taller.

La Autoridad Reguladora de Comunicaciones de Finlandia (FICORA) fue la anfitriona del evento en Helsinki, donde participaron más de 50 entidades interesadas tanto del sector público como del privado.

Información de background

Desde 2012, ENISA ha estado apoyando a los Estados miembros de la UE para desarrollar, implementar y evaluar sus estrategias nacionales de ciberseguridad. Para lograr este objetivo, ENISA ha desarrollado varias herramientas, estudios, directrices y un grupo de expertos.

Inicialmente, solo 12 Estados miembros implementaron tales estrategias en sus legislaciones nacionales. Actualmente, los 28 Estados miembros de la UE tienen una Estrategia Nacional de Seguridad Cibernética, mientras que muchos de ellos están desarrollando su segunda o incluso tercera versión.

Fuente: https://www.enisa.europa.eu/news/enisa-news/enisa-launches-the-cybersecurity-strategies-evaluation-tool

Laboratorio para practicar inyecciones SQL (más de 60 ejercicios/lecciones)

El holandés Audi-1 tiene un repositorio en Github muy interesante llamado SQLI-LABS que nos permitirá montar rápidamente una plataforma para aprender y practicar inyecciones SQL de diferentes tipos:

- Inyecciones basadas en error (Union Select): 1. String 2. Integer
- Inyecciones basadas en error (Double Injection Based)
- Inyecciones ciegas: 1. booleanas 2.basadas en tiempo
- Inyecciones de peticiones update
- Inyecciones de peticiones insert
- Inyecciones en la cabecera HTTP 1. basadas en referer. 2. basadas en user-agent. 3. basadas en la cookie
- Inyecciones de segundo órden
- Evasión de WAF
      - bypass de filtros de Blacklist: Stripping comentarios, OR & AND, espacios y UNION & SELECT
       - Impidence mismatch
- Bypass de addslashes()
- Bypass de mysql_real_escape_string. (bajo ciertas condiciones especiales)
- Inyecciones SQL de tipo stacked
- Extracción Secondary channel


Instrucciones

- Descomprime los contenidos dentro de la carpeta de apache, por ejemplo en /var/www. Esto creará el directorio sql-labs.
- Como alternativa, se puede usar el comando git directamente desde la carpeta /var/www: git clone https://github.com/Audi-1/sqli-labs.git sqli-labs
- Abre el archivo "db-creds.inc" que se encuentra debajo del dir sql-labs/sql-connections.
- Actualiza el nombre de usuario y la contraseña de la base de datos MYSQL. (Por defecto root:toor)
- Desde el navegador accede a la url con path sql-labs para cargar index.html.
- Haz clic en la configuración del enlace setup/resetDB para crear una base de datos, las tablas y completar los datos.
- Los labs ya estarían listos para usar, haz clic en el número de la lección para abrir la página correspondiente.
- Disfruta de los laboratorios!

Tienes videotutoriales, walkthroughts y explicaciones en distintos sites del autor:

- http://dummy2dummies.blogspot.com
- http://www.securitytube.net/user/Audi
- https://www.facebook.com/sqlilabs

También tiene un libro pero todavía está en desarrollo: https://leanpub.com/SQLI-LABS

Repo: https://github.com/Audi-1/sqli-labs

[HTB-writeup] Canape

¡Buenas! Hoy venimos con la última máquina retirada de la plataforma Hackthebox: Canape. Para resolverla necesitaremos tener conocimientos básicos de Linux, un poco de coding para explotar una vulnerabilidad PHP, aprovecharnos de una versión vulnerable de base de datos y finalmente, escalar privilegios vía sudo. Así que... ¡Vamos allá!

Scanning

Como siempre, comencemos con un SYN scan para ser rápidos y sigilosos y, después, comprobar versiones de servicios y ejecutar scripts seguros de NSE.

-sS

Un escaneo de los puertos más comunes no arroja toda la información que podemos obtener, y es cuando utilizamos el parámetro -p- (escanear todos los puertos) cuando descubrimos que hay otro puerto abierto.

Ilustración 1. Resultados SYN scan.

-sV

Ilustración 2. Scripts NSE y escaneo de versiones.

Nota: -sS = SYN scan; -sV = version scan; -sC = ejecutar scripts NSE seguros; -n = no resolver nombre; -Pn = no intentar comprobar si el host está vivo; -p = puertos -oA = todos los formatos de salida.

Enum
A primera vista ya encontramos mucha información interesante… un servidor SSH en el puerto 65535, un servidor web con un sitio fan de los Simpsons y… un repositorio GIT!
Usemos Burp para preparar un proxy que nos logee todas las peticiones hacia la web.

Ilustración 3. Árbol inicial en Burpsuite.

¿No has parcheado tu Windows esta semana? Pues ya han liberado un exploit que permite RCE (explotando MSXML)...

Microsoft publicó ayer un parche para una vulnerabilidad de corrupción de memoria en el parser MSXML (Microsoft XML Core Services). Mediante esta vulnerabilidad con CVE-2018-8420, un atacante podría engañar a cualquier usuario para que visite una página web especialmente diseñada para invocar MSXML a través de un navegador, lo que le permitiría ejecutar código y tomar el control del sistema de la víctima.

Y a lo que nos atañe: poco después de publicar el parche, Theropord publicó en su repositorio de Github una PoC totalmente funcional. Os recomiendo echar un vistazo al código (que no puede ser más sencillo) y probarlo para que veáis el peligro que supone para un sistema que no se ha actualizado... ¡este mismo martes!:


Poc modificación xml (PS) por Lz1y:


Productos afectados:

Windows 7 for 32-bit Systems Service Pack 1
Windows 7 for x64-based Systems Service Pack 1
Windows Server 2008 R2 for x64-based Systems Service Pack 1 (Server Core installation)
Windows Server 2008 R2 for Itanium-Based Systems Service Pack 1
Windows Server 2008 R2 for x64-based Systems Service Pack 1
Windows Server 2008 for 32-bit Systems Service Pack 2 (Server Core installation)
Windows Server 2012
Windows Server 2012 (Server Core installation)
Windows 8.1 for 32-bit systems
Windows 8.1 for x64-based systems
Windows Server 2012 R2
Windows RT 8.1
Windows Server 2012 R2 (Server Core installation)
Windows 10 for 32-bit Systems
Windows 10 for x64-based Systems
Windows Server 2016
Windows 10 Version 1607 for 32-bit Systems
Windows 10 Version 1607 for x64-based Systems
Windows Server 2016 (Server Core installation)
Windows 10 Version 1703 for 32-bit Systems
Windows 10 Version 1703 for x64-based Systems
Windows 10 Version 1709 for 32-bit Systems
Windows 10 Version 1709 for x64-based Systems
Windows Server, version 1709 (Server Core Installation)
Windows 10 Version 1803 for 32-bit Systems
Windows 10 Version 1803 for x64-based Systems
Windows Server, version 1803 (Server Core Installation)
Windows Server 2008 for Itanium-Based Systems Service Pack 2
Windows Server 2008 for 32-bit Systems Service Pack 2
Windows Server 2008 for x64-based Systems Service Pack 2
Windows Server 2008 for x64-based Systems Service Pack 2 (Server Core installation)

Repos:

- https://github.com/Theropord/CVE-2018-8420
- https://github.com/Lz1y/CVE-2018-8420  

Nota:  Por el momento se ha conseguido reproducir la PoC html en IE 9.0. Cualquier prueba no dudes en comentar!

Solución al reto 27: Boot2root Karim

{0x0} Introducción

Karim es un reto de tipo boot2root, que consiste en una máquina que debemos vulnerar para conseguir las flags de usuario (user.txt) y root (root.txt) suministrada por HackPlayers en su Reto 27 y creada por César Calderón aka @_stuxnet basada en Linux Ubuntu 17.10 OS, os mostraremos los pasos que hemos dado.

{0x1} Reconocimiento

Antes de empezar ponemos nuestra máquina de pentesting Kali Linux en Host-Only y la máquina hackplayers en Host-Only dentro del rango de red 192.168.153.0/24.

Y vamos a la tarea, lanzamos primeramente descubrimos la nuestra dirección IP y de la  máquina hackplayers a vulnerar



Y comprobamos que hay conexión con la máquina a vulnerar lanzado un ping:


{0x3} Escaneo

Realizamos un escaneo de puertos para comprobar los servicios que están abiertos y corriendo en la máquina a vulnerar:

Evadiendo WAFs mediante cifrados SSL no soportados

Hoy en día los WAFs (Web Application Firewalls) son un medio muy utilizado para proteger las aplicaciones web de los ataques más comunes. Eso sí, siempre han de verse como una medida de seguridad más, no como la única. Por ejemplo, si hay un fallo de la aplicación que permite una inyección de cualquier tipo hay que corregirlo en el código, no vale solo (o no debería valer) tener un WAF como única barrera porque, como veremos a continuación, pueden ser bypasseados mediante distintas técnicas. Una de ellas y de la que hablaremos en este post es la que plantea 0x09AL...

Los WAFs son como firewalls de nivel 7 o IPSs que inspeccionan el tráfico (y lo bloquean si es necesario) hacia la aplicación. El investigador 0x09AL recibió una alerta cuando accedió por primera vez a uno de estos WAF del tipo 'Unsupported SSL Ciphers', es decir, el WAF no soportaba ciertos algoritmos de cifrado en una conexión SSL... y en seguida comprendió que, si la aplicación que hay detrás soportaba un cifrado SSL que NO soportaba el WAF, una técnica fácil y eficaz sería comunicarse hacia el mismo usando uno de esos algoritmos. Es decir, el tráfico SSL que atravesara el WAF hacia la aplicación no podría ser inspeccionado, con lo que un atacante podría evadir el WAF... así de sencillo.

Basta con comparar los algoritmos que acepta uno y otro, el WAF y el servidor web respectivamente. Imaginar por ej. que el servidor web soporta TLSv1 de 256 bits ECDHE-RSA-AES256-SHA y el WAF no:

$ sslscan http://target/ | grep Accept

Accepted TLSv1 256 bits ECDHE-RSA-AES256-SHA

Herramienta: https://github.com/rbsec/sslscan

El atacante simplemente tendría que especificar ese algoritmo y el WAF no podría inspeccionar el tráfico:

$ curl --ciphers ECDHE-RSA-AES256-SHA https://waf-test.lab.local/ssl-cipher-test
<html lang=en>
  <title>HELLO </title>
  <p>Bypass worked</p>

En base a esta técnica, 0x09AL ha publicado también una herramienta llamada WAF_buster que nos facilita la tarea de bypassear los WAFs abusando de las suites de cifrado SSL. Primero busca todos los cifrados admitidos durante la negociación de SSL/TLS en el servidor web mediante SslScan y luego los prueba con un simple curl. Si encuentra cualquier cifrado no soportado por el WAF pero si por el Web Server nos mostrará un mensaje que dice "Firewall bypass".

$ git clone https://github.com/viperbluff/WAF_buster.git
$ cd WAF_buster

$ python2 WAF_buster.py --input


Repositorio: https://github.com/viperbluff/WAF_buster

[HTB write-up] Poison

Hoy quiero compartir con vosotros un writeup para comprometer una de las máquinas recientemente retiradas en HacktheBox: Poison, un FreeBSD de dificultad fácil pero que tiene su "miga"...


ENUMERACIÓN

nmap –T4 –sT –sC –A 10.10.10.84


Vemos que el puerto 80 está abierto, así que visitamos la url y nos encontramos lo siguiente.
 

Si vamos probando por los diferentes ficheros, ini.php, info.php, nos va dando diferente información de la configuración de nuestro php, pero el que nos interesa especialmente es el listfiles.php.
Así que introducimos en el campo del formulario listfiles.php y obtenemos la respuesta mostrada en la imagen de abajo, de la cual nos llama la atención el pwdbackup.txt:


Probamos a ver qué tiene el fichero pwdbackup.txt, introduciendo el nombre en el formulario o bien directamente en la url.

Nos encontramos con un base64, encodeado 13 veces.

A-Detector: un IDS basado en anomalías


Soy @alexfrancow en todas las redes sociales y este es un post resumiendo el trabajo que hice para el proyecto de fin de curso, el que quiera profundizar decir que tengo explicado lo que hace cada parte del código de la aplicación final en un jupyter notebook.

A-Detector es un software desarrollado para automatizar el análisis de anomalías de red en grandes datasets. Gracias a una serie de algoritmos, A-Detector puede detectar datos anómalos y mostrarlos en gráficos dinámicos.

Básicamente es capaz de automatizar el análisis de tráfico aprender de él y detectar el tráfico anómalo.

¿Cómo lo haría una persona?
 


Una persona abriría un .pcap, (el que se ve en la imagen de arriba) y claramente vería algo sospechoso: en menos de 1 segundo el destino ha recibido múltiples paquetes provenientes de la IP 192.168.60.6 por el protocolo SSH.

En este caso es fácil detectarlo, pero que pasaría si fuese un dataset muchísimo más grande, imaginaros 1 millón de paquetes, sería más complicado analizarlo.

(Podemos usar filtros y demás, peeeero somos muy vagos.)

¿Cómo lo hace A-Detector?

A-Detector hace por nosotros este trabajo, permitiéndonos así trabajar casi en tiempo real.

Mediante la librería PANDAS, que nos permite trabajar con tablas en Python y una serie de algoritmos de machine learning como pueden ser Isolation Forest y Escalado de variables, a-detector es capaz de hacer lo que haríamos nosotros analizando un dataset, pero de manera más eficiente.

Vamos por partes..

Busca y descarga exploits desde la línea de comandos con Getsploit

La gente de Vulners ha creado una herramienta inspirada en searchsploit que permite buscar de forma online en Exploit-DB, Metasplot, Packetstorm y otros y descargar de forma inmediata el código fuente del exploit en la ruta en la que se está trabajando.

Funciona con python 2.6, 2.7 y 3.6 con soporte SQLite FTS4.

Instalación:
# git clone https://github.com/vulnersCom/getsploit
# cd getsploit
# python setup.py install
(o 'pip install getsploit' directamente)

# cd getsploit
# ./getsploit.py -h

usage: Exploit search and download utility [-h] [-t] [-j] [-m] [-c COUNT] [-l]
                                           [-u]
                                           [query [query ...]]

positional arguments:
  query                 Exploit search query. See https://vulners.com/help for
                        the detailed manual.

optional arguments:
  -h, --help            show this help message and exit
  -t, --title           Search JUST the exploit title (Default is description
                        and source code).
  -j, --json            Show result in JSON format.
  -m, --mirror          Mirror (aka copies) search result exploit files to the
                        subdirectory with your search query name.
  -c COUNT, --count COUNT
                        Search limit. Default 10.
  -l, --local           Perform search in the local database instead of
                        searching online.
  -u, --update          Update getsploit.db database. Will be downloaded in
                        the script path.

Uso:

# ./getsploit.py apache struts 2


Descarga de exploits:
# ./getsploit.py -m apache struts 2
# ls ~/getsploit/apache-struts-2# ls
1337day-id-30956.txt  1337day-id-30966.txt  edb-id45262.txt                              packetstorm149086.txt  saint476415a034c3ac589a6ae035fc3b6e74.txt
1337day-id-30965.txt  edb-id45260.txt       msfexploitmultihttpstruts2_rest_xstream.txt  packetstorm149087.txt  saint9b0459bf5aaa66776c1635bf5af5a366.txt

Nota: Si obtienes un error al verificar el certificado SSL (CERTIFICATE_VERIFY_FAILED) puedes desactivar temporalmente la verificación con 'export PYTHONHTTPSVERIFY=0'

Además, si tu python soporta la lib (builtin) de sqlite3 mediante los parámetros --update y --local puedes descargar la base de datos entera de exploits a tu PC para realizar búsquedas offline
# ./getsploit.py --update
Downloading getsploit database archive. Please wait, it may take time. Usually around 5-10 minutes.
219642496/219642496 [100.00%]
Unpacking database.
Database download complete. Now you may search exploits using --local key './getsploit.py -l wordpress 4.7'

Proyecto: https://github.com/vulnersCom/getsploit

Reto 27: boot2root Karim

César Calderón aka @_stuxnet ha preparado otro reto de tipo boot2root, ya sabéis, una máquina que debemos vulnerar para conseguir las flags de usuario (user.txt) y root (root.txt) y que podemos descargar ya desde:

https://drive.google.com/file/d/1dgfY01tZkqfqP8Nd0MxAdkS5mujmvjrv/view?usp=sharing

La manera de resolver estos retos 'boot2root' debe hacerse como si fuera una máquina remota atacando y explotando sus servicios expuestos. Otros métodos posibles al disponer de la imagen una máquina virtual (protegida o no) como acceder al filesystem en modo recovery, modificar el arranque o montar directamente los discos no son permitidas para este reto.

- Los writeups deben enviarse como siempre a nuestra cuenta de correo hackplayers_at_ymail.com (ymail con "y" griega).
- El primero en conseguir la flag de root.txt y remitirnos el writeup ganará una entrada para la próxima conferencia h-c0n que tendrá lugar durante el próximo mes de febrero en Madrid (pendiente de confirmar la fecha por parte de la UPM).
- Los 5 primeros en comprometer la máquina y enviarnos el writeup con el procedimiento correcto entrarán también en nuestro eterno hall de la fama.
- El mejor writeup recibido será publicado en el blog con la atribución y referencias a su autor correspondientes.

Podéis comentar cualquier duda (no spoilers) sobre el reto comentanto este post o a través de nuestras RR.SS.