- Introducción
- Tipos de vulnerabilidad
- Taxonomía de vulnerabilidad
- Escaneo de vulnerabilidades con Kali Linux
- Análisis de vulnerabilidades de aplicaciones Web
- Nikto2
- OWASP ZAP
- Nessus
- Escaneo de vulnerabilidades de red
- Análisis de CISCO
- Análisis SNMP
- Evaluación de bases de datos en Kali Linux
- SQLMap
- Conclusión
Introducción
El mapeo de vulnerabilidades es una actividad realizada para identificar fallas de seguridad que pueden resultar en el compromiso de un sistema. A veces, los investigadores usan el término » evaluación de vulnerabilidad «en lugar de » mapeo de vulnerabilidad».»Sin embargo, son la misma cosa.
En el pentesting y la piratería maliciosa, el mapeo de vulnerabilidades es un paso que sigue después de que el probador o el hacker haya realizado adecuadamente la recopilación de información y la enumeración de la red o el host objetivo.
En este artículo, veremos cómo se pueden implementar varias herramientas dentro del Sistema Operativo Kali Linux para descubrir vulnerabilidades que podrían llevar a comprometer objetivos y, por lo tanto, provocar que el hacker o el probador de penetración violen la confidencialidad, integridad y disponibilidad de un sistema empresarial.
Tipos de vulnerabilidad
Hoy en día, existen tres clases principales de vulnerabilidades de las que se puede hacer una clara distinción. Las tres clases son:
- Vulnerabilidades de diseño: Estos se descubrirán a través de debilidades que resultan de las especificaciones de software. Estos son, con mucho, los más engorrosos de resolver, ya que requieren que se apliquen parches basados en los requisitos de seguridad dados por las vulnerabilidades de implementación de pentester
- : Cada vez que se descubren fallos dentro del código de software, se clasifican aquí.
- Vulnerabilidades operativas: Estas vulnerabilidades resultarán de una configuración e implementación incorrectas del software.
Las clases de vulnerabilidades anteriores se producirán de forma local o remota dentro del entorno de destino.
Las vulnerabilidades locales requerirán que el probador o atacante tenga acceso local al sistema de destino para explotarlas. Un buen ejemplo de esto es el CVE-2013-0232, también conocido como GP Trap Handler nt!KiTrap0D, que permitiría a un atacante o probador con acceso a una máquina vulnerable de Windows Server 2008 obtener acceso privilegiado escalado.
Las vulnerabilidades remotas permiten que se produzca la explotación sin acceso físico al sistema de destino. Estos podrían ocurrir desde Internet o dentro de la red en la que se encuentra el sistema vulnerable. Un ejemplo común de esto es la vulnerabilidad del servicio de Windows Server MS08-067, que afecta a los sistemas Windows XP.
Taxonomía de vulnerabilidad
A medida que el número de tecnologías aumenta a diario, ha habido numerosos intentos de diseñar una taxonomía que mejor se adapte a las vulnerabilidades comúnmente identificables. A pesar de estos esfuerzos, todavía no es posible dar cuenta de todos los errores de codificación que se pueden cometer.
Las organizaciones han creado los siguientes estándares que incluso se han implementado en muchas herramientas que se pueden utilizar al buscar vulnerabilidades.
Taxonomía de seguridad | Enlace de recursos |
Enumeración de Debilidades Comunes | http://cwe.mitre.org/data/index.html |
Top de OWASP 10 | https://www.owasp.org/index.php/Category:OWASP_Top_Ten_Project |
Clasificación de Amenazas WASC | http://projects.webappsec.org/w/page/13246978/Threat%20Classification |
Base de Datos Nacional sobre Vulnerabilidad | https://nvd.nist.gov/vuln |
Base de datos de Hackeo de Google (GHDB) | https://www.exploit-db.com/google-hacking-database/ |
Escaneo de vulnerabilidades con Kali Linux
Kali Linux viene con numerosas herramientas para el probador de penetración. Algunas de estas herramientas se pueden usar de manera efectiva durante una participación de pentest para realizar un mapeo de vulnerabilidades en las tres clases mencionadas anteriormente.
Análisis de vulnerabilidades de aplicaciones Web
Las aplicaciones web se generan a diario, pero la mayoría de los programadores no observan los principios de codificación segura que deben seguirse al diseñar aplicaciones. Las siguientes herramientas permiten a un desarrollador o pentester descubrir vulnerabilidades que se incluyen en la documentación disponible en la tabla anterior.
Nikto2
Nikto2 es un escáner de vulnerabilidades de aplicaciones web muy simple construido sobre LibWhisker2, lo que significa que tiene numerosas capacidades. Por ejemplo, se puede implementar multiplataforma, admite SSL, puede administrar la autenticación de host a través de NTLM e incluso puede administrar la evasión de IDS.
Lanzar Nikto contra un host como se muestra arriba con el comando «nikto-h» devolverá resultados que variarán dependiendo de cuán vulnerable sea el objetivo. Puede estar seguro de que Nikto detectará implementaciones de servidor obsoletas, archivos de instalación predeterminados, configuraciones erróneas del servidor y muchos otros problemas de seguridad. También puede especificar el puerto añadiendo «- p » después de especificar el destino para encontrar cualquier problema en los puertos deseados.
OWASP ZAP
El Proxy de ataque Zed de OWASP (ZAP) es creado por el proyecto OWASP, una de las partes de la tabla anterior. Es una herramienta proxy de aplicación web de código abierto y ofrece algunas buenas funciones, como el análisis de vulnerabilidades de aplicaciones web.
En Kali Linux, simplemente emitiendo el siguiente comando en la terminal:
#owasp-zap
se le presentará la pantalla principal. Sin embargo, realizar un escaneo es bastante simple. Emitiría el objetivo para ser escaneado como se muestra a continuación:
Una vez que presione el botón «Ataque», comenzará el escaneo y verá algo de actividad en la sección de abajo en su pantalla.
OWASP ZAP rastrea el sitio web de destino en busca de vulnerabilidades. También identificará algunas configuraciones erróneas que aparecerán dentro de la pestaña Alertas, así que mantén un ojo en esa pestaña también. OWASP ZAP le permitirá reducir los enlaces afectados, como se muestra a continuación:
Un competidor comercial de ZAP es BurpSuite, que ofrece una funcionalidad similar con su versión gratuita, pero mucho más en su versión comercial.
Nessus
Nessus le proporcionará un análisis automatizado de vulnerabilidades de aplicaciones web para aquellas situaciones en las que tenga un tiempo limitado y necesite una evaluación rápida de vulnerabilidades o pentest.
Nessus se puede ejecutar de forma gratuita con capacidades limitadas, o como una herramienta comercial con muchas más capacidades que pueden ser útiles, especialmente para equipos y compromisos pentest grandes.
Para realizar un análisis de vulnerabilidades, primero debe instalar la versión gratuita de Nessus y, a continuación, navegar por el navegador hasta https://localhost:8834. Ver a continuación:
A continuación, pulse el botón «Nuevo escaneo» de arriba y seleccione el tipo de escaneo que desea realizar de las numerosas plantillas disponibles.
Las plantillas que se muestran arriba estarán limitadas dentro de la versión gratuita de Nessus si ejecuta eso, pero son mucho más en número y capacidad en la versión comercial.
entonces emitir sus objetivos. Nessus es capaz de realizar escaneos en múltiples destinos separados por comas o emitidos en formato CIDR.
una Vez que haya terminado de llenar los campos requeridos, se le presentará la pantalla de arriba. Haga clic en el icono «reproducir» para iniciar el escaneo.
Las vulnerabilidades se presentarán de la manera en la pantalla anterior, resumiendo la gravedad y las instancias de los problemas descubiertos.
Nessus incluso le permite profundizar en hosts y vulnerabilidades específicos y obtener más información sobre cómo se descubrieron, junto con recomendaciones sobre cómo parchear los riesgos identificados.
Escaneo de vulnerabilidades de red
Kali Linux también proporciona herramientas capaces de escanear dispositivos de red como bases de datos, enrutadores, conmutadores y protocolos como SNMP y SMB. Hay numerosas herramientas, pero echaremos un vistazo a las más comunes.
Análisis de CISCO
Los dispositivos CISCO son susceptibles a una serie de vulnerabilidades que se pueden evaluar con un par de herramientas. Al auditar enrutadores, Kali Linux se incluye con la Herramienta de auditoría de Cisco (CAT), que puede ayudar a un atacante o probador de penetración a identificar vulnerabilidades que van desde cadenas de comunidad SNMP hasta errores antiguos de CISCO y credenciales predeterminadas que se pueden usar para obtener acceso ilegal al enrutador.
Para probar nuestro host en Kali, ejecutamos el siguiente comando:
#CAT -h 192.168.67.73 -w lists/community -a lists/passwords -i
CAT procede a auditar las credenciales predeterminadas y las cadenas de comunidad SNMP como se muestra arriba.
Análisis SNMP
Kali Linux también permite a atacantes y pentesters obtener información de hosts con el protocolo de Administración de Red Simple (SNMP). Esto puede ser extremadamente vital en la preparación de nuevos ataques dirigidos al anfitrión.
En nuestra máquina atacante, ejecutamos el comando a continuación y pudimos obtener una tonelada de información sobre nuestro objetivo.
Como se puede ver más arriba, pudimos identificar la información de la tarjeta ethernet, el tiempo que el sistema había estado conectado a través de esa tarjeta, el nombre de host y, como se muestra a continuación, el número de interfaces de red con su información respectiva.
Evaluación de bases de datos en Kali Linux
Kali Linux permite probar bases de datos MySQL, Oracle y Microsoft MSSQL para detectar vulnerabilidades como la inyección SQL. Algunas herramientas también admiten pruebas en directivas de contraseñas y comprobaciones de contraseñas predeterminadas.
SQLMap
SQLMap es una herramienta ordenada dentro de Kali Linux que es capaz de realizar varias pruebas de inyección SQL en un par de bases de datos como PostgreSQL, MSSQL, Oracle y MySQL. Es capaz de detectar y explotar los defectos detectados, por lo que es una herramienta muy común para atacantes y probadores. SQLMap puede ayudarlo rápidamente a llevar a cabo los siguientes ataques, que de otro modo serían difíciles y consumirían mucho tiempo:
- Inyección SQL inferencial ciega
- Inyección SQL de consulta de UNIÓN
- Inyección SQL de consulta apilada
- Inyección SQL ciega basada en el tiempo
En nuestro sistema Kali Linux, ejecutamos el comando a continuación para intentar descubrir información sobre nuestra base de datos subyacente dentro de nuestro sistema de destino.
# sqlmap -u "http://192.168.0.30/mutillidae/index.php?page=view-someones-blog.php" --forms --batch --dbs
El resultado anterior nos muestra las bases de datos disponibles y también nos permite conocer los parámetros inyectables dentro de nuestra aplicación Web en la URL dada.
Para encontrar el contenido de la base de datos «owasp10», emitiremos el siguiente comando:
# sqlmap -u "http://192.168.0.30/mutillidae/index.php?page=view-someones-blog.php" --forms --batch -D owasp10 –tables
La opción-D especifica la base de datos a utilizar y-tables pide a SQLMap que enumere las tablas disponibles.
SQLMap ofrece mucha más funcionalidad que no se cubrirá, pero que debe verificar dentro de la documentación de ayuda con el comando «sqlmap-h».
También existen otras herramientas, como SQLNinja, que son similares en funcionalidad a SQLMap.
Conclusión
Después de que haya mapeado las vulnerabilidades utilizando las herramientas disponibles que se discutieron anteriormente, ahora puede continuar con la siguiente fase que durante una prueba de penetración o un ataque sería explotación. Sin embargo, solo podría interesarle enumerar vulnerabilidades para una Evaluación de vulnerabilidades. En este caso, las herramientas anteriores funcionarán.