5/11/2013 FLU PROJECT ANUBIS REVOLUTION Captura de requisitos Juan Antonio Calles García
ÍNDICE Versiones del documento... 3 Definición de Requisitos... 4 Requisitos Funcionales... 4 Requisitos No Funcionales... 6
VERSIONES DEL DOCUMENTO Versión Autor modificación Fecha Detalles 0.1 Juan Antonio Calles 11/05/2013 Añadidos requisitos funcionales y no funcionales
DEFINICIÓN DE REQUISITOS REQUISITOS FUNCIONALES Requisitos para Auditoría de Seguridad y Test de Intrusión Debe permitir realizar fuzzing contra un sitio Web mediante diccionarios en formato txt. Debe permitir consultar el registrador de un dominio. Debe consultar el banner de un Servidor Web y de un Servidor FTP y detectar la versión y sistema operativo. Debe permitir la realización de trazas para analizar los puntos por los que pasa una petición de un dominio hasta su resolución final. Debe provocar errores 404 y detectar las posibles versiones del servidor web y sistema operativo. Debe automatizar la búsqueda de dominios con el verbo SITE de Google y Bing. Debe automatizar la búsqueda de dominios y subdominios por fuerza bruta con nslookup o similar consultando el registro a mediante diccionario o mediante permutaciones de un conjunto de símbolos alfanuméricos. Debe permitir la consulta de transferencias de zona. Debe localizar dominios que estén alojados en la misma máquina, para ello podría utilizarse por ejemplo la búsqueda con el verbo IP de Bing y la consulta en Robtex. Debe realizar reversing de los registros PTR de los DNS para buscar nuevos dominios a partir de una IP encontrada. Para saber el tamaño de los rangos a escanear de la nueva IP, se podría hacer una consulta a RIPE o ARIN para sacar el NETNAME y el NETRANGE. Debe integrar la búsqueda de puertos abiertos, sistemas operativos, y otros scripts. Debe permitir consultar los metadatos de todos los documentos alojados en un sitio Web. Extensiones: MS Office: doc, docx, xls, xlsx, ppt, pptx, ppsx y pps. Open Office: odf, ods, odt, odp, sxw, swi y sxc. Adobe: pdf, indd. Otros: wpd, svg y svgz. Imágenes: png, jpeg, gif, tiff, bmp, etc. Se debe dar la posibilidad de utilizar un proxy para anonimizar las búsquedas y protegerse de los límites de búsqueda impuestos por los buscadores. Permitir la búsqueda de Proxys. Añadir, entre otros, el puerto 3128 para la búsqueda de servidores proxy en los equipos de los dominios, ya que es el que habitualmente utiliza el servidor Squid Proxy. Debe permitir dado un listado de dominios e IPs, pintarlo de una manera amigable al usuario en formato de grafo dirigido o árbol. Debe permitir recorrer todos los enlaces de un sitio Web, sin salirse del dominio, y devolverlos en formato de lista (Spidering). Debe analizar todas las URL de una Web que tengan parámetros GET, ya que son uno de los lugares donde se producen vulnerabilidades por inyección de código. Para ello utilizar spidering y búsquedas en Google Hacking. Además se automatizarán consultas de inyecciones SQL, XSS y HTML, para ello el usuario podrá indicar que query utilizará para comprobar que la URL es vulnerable (or 1=1, etc.) y después analizará los resultados devueltos por la página para detectar el error provocado en la BBDD. Buscar subdominios a través de los registros del DNS: NS, MX, SPF, versión.bind (buscar versión servidor DNS), registros PTR y SOA (Start of Authority). Consultas SHODAN. Permitirá utilizar algún USER-AGENT que, o bien sea reconocible de forma única, para poder ser utilizado en procesos de pentesting autorizado y que los responsables de sistemas pudieran
monitorizar lo que se hace con la herramienta, o para que pudiera simular ser el Bot de Google o cualquier otra araña, etc. Debe comprobar si tiene activada la caché de DNS para hacer DNS Cache Snooping. Con DNS Cache Snooping, analizará a dónde navegan los usuarios del DNS de una determinada organización. Dado un servidor Web encontrado, permitirá descargar el certificado en la conexión https. Upload & Delete Ficheros en métodos PUT. Permitir explotar la vulnerabilidad de PUT o DELETE para subir o borrar un fichero en el servidor. Deberá reconocer si un sitio Web contiene páginas ASP, PHP, CFM, JSP, etc.. en el servidor Web, para así identificar de qué modelo se trata (Apache, Tomcat, IIS, etc.). Extracción de imágenes y metadatos de ficheros binarios. Permitir la geolocalización de direcciones IP. Permitir la búsqueda de redes WIFI cercanas (rango de 100m por ejemplo) a IPs geoposicionadas, utilizando los mapas de redes WIFI que se cuelgan en páginas web de Internet. Búsqueda de pertenencia de IPs a organizaciones. Búsqueda de e-mails de gente usando bases de datos de personas, redes sociales y buscadores. Identificar Sitios Web que permitan la subida de algún tipo de archivo al servidor. Búsqueda de ficheros RDP y CITRIX con los verbos EXT de Google y Bing. Búsqueda de ficheros backup de BBDD con los verbos EXT:sql de Google y Bing. Buscar rutas locales en ficheros SVG. Detección de blogs/gestores de contenidos como Wordpress, Joomla, etc. a través de los META del código fuente del site, del fichero readme.html en el caso de Wordpress, etc. Debe permitir buscar plugins fuzzeando con sus correspondientes versiones de Wordpress, Moodle (ya desarrollado en Flunym0us), Joomla, Drupal, etc. Búsqueda de ficheros.listing mediante Google Hacking y Bing Hacking con los verbos filetype. Descubrir aplicaciones JSP con Google Hacking explotando el error 404. Descubrir con Google Hacking aplicaciones Coldfusion con licencia caducada forzando errores 500. Descubrir rutas locales con Google Hacking explotando un 404 del framework de WebDNA. Barrido de sites que salen por puertos extraños mediante Google Hacking. Requisitos para Open Source Intelligent (OSINT), Búsqueda en fuentes abiertas y Sistema de Cibervigilancia Búsquedas en Redes Sociales (Tuenti, Instagram, Facebook, Twitter, Linkedin, etc.) o Búsqueda de términos o Búsqueda de perfiles o Búsqueda de hashtags o Asociación de perfiles que han escrito mensajes en los que aparezcan dichos términos (pintarlo en modo de grafo) o Asociación de perfiles con el mismo nombre o parecido en distintas redes sociales o Asociación de perfiles con sus followers, amigos, contactos, etc. (pintarlo en modo de grafo) o Asociación de perfiles que comparten grupos, aficiones, eventos, etc. (pintarlo en modo de grafo) o Búsqueda de información de una persona (fotos, aficiones, trabajo, etc.) a través de la información pública compartida en redes sociales y páginas tipo 123people.
Búsqueda en Páginas de Pegado (Pastebin, Pastebay, etc.) o Búsqueda de términos o Búsqueda de pastes escritos por el mismo usuario Búsqueda en blogs, periódicos, foros, redes sociales etc. de usuarios que escriban con un mismo perfil, y relacionarlos entre sí (pintarlo en modo de grafo. Requisitos de reporting El sistema debe mostrar toda la información de una manera cómoda y amigable (uso de grafos, listados expandibles) Debe mostrar reportes y estadísticas con gráficas de distintos tipos. Debe permitir generar informes automáticos con la información recuperada y exportarlos a distintos formatos (docx, pdf, etc.) REQUISITOS NO FUNCIONALES El sistema debe poder alojarse en un servidor Windows o Linux, y debe poder accederse remotamente desde cualquier tipo de navegador web (principales Firefox, Internet Explorer, Google Chrome y Safari). El sistema debe ser programado en lenguaje python. La interfaz web debe ser programada con django.