Eyeballer CNN Analizar Capturas Pantalla para Pentesting
Eyeballer CNN Analizar Capturas Pantalla para Pentesting

Eyeballer: CNN para Analizar Capturas de Pantalla para Pentesting

Haz una rápida revisión de esas capturas de pantalla tuyas.

Eyeballer está pensado para pruebas de penetración de red de gran alcance en las que se necesita encontrar objetivos “interesantes” de un enorme conjunto de hosts basados en la web. Adelante, utiliza tu herramienta favorita para hacer capturas de pantalla de forma normal (EyeWitness o GoWitness) y luego páselas por Eyeballer para que te diga qué es probable que contenga vulnerabilidades y qué no.

Ejemplo de etiquetas

Etiquetas Red Neuronal Convolucional

Qué significan las etiquetas

Sitios de aspecto antiguo. Marcos de bloques, CSS roto, ese cierto “no sé qué” de un sitio web que parece haber sido diseñado a principios de los años 2000. Lo reconoces cuando lo ves. Los sitios web antiguos no sólo son feos, sino que también suelen ser muy vulnerables. Cuando se busca hackear algo, estos sitios web son una mina de oro.

Páginas de inicio de sesión. Las páginas de inicio de sesión son valiosas para las pruebas de penetración, ya que indican que hay una funcionalidad adicional a la que no tienes acceso actualmente. También significa que hay un simple proceso de seguimiento de ataques de enumeración de credenciales. Podrías pensar que puedes establecer una simple heurística para encontrar páginas de inicio de sesión, pero en la práctica es realmente difícil. Los sitios modernos no utilizan una simple etiqueta de entrada que podamos buscar.

Webapp. Esto te dice que hay un grupo más grande de páginas y funcionalidad disponible aquí que puede servir como superficie para atacar. Esto contrasta con una simple página de inicio de sesión, sin ninguna otra funcionalidad. O una página de aterrizaje de IIS por defecto que no tiene ninguna otra funcionalidad. Esta etiqueta debería indicarte que aquí hay una aplicación web para atacar.

404 personalizados. A los sitios modernos les encanta tener páginas 404 personalizadas con imágenes de robots rotos o perros de aspecto triste. Por desgracia, también les encanta devolver códigos de respuesta HTTP 200 mientras lo hacen. Más a menudo, la página “404” ni siquiera contiene el texto “404”. Estas páginas suelen ser poco interesantes, a pesar de tener mucho que ver visualmente, y Eyeballer puede ayudarte a filtrarlas.

Configuración

Descarga los paquetes necesarios en pip:

sudo pip3 install -r requirements.txt

O si quieres soporte para GPU:

sudo pip3 install -r requirements-gpu.txt

NOTA: La configuración de una GPU para su uso con TensorFlow va mucho más allá del alcance de este README. Hay que tener en cuenta la compatibilidad del hardware, los controladores que hay que instalar… Hay muchas cosas. Así que vas a tener que resolver esta parte por tu cuenta si quieres una GPU. Pero al menos desde la perspectiva del paquete Python, el archivo de requisitos anterior te cubre.

Modelos previamente entrenados (Pretrained Weights)

Para obtener los últimos pesos preentrenados, consulta las publicaciones.

Datos de entrenamiento. Puedes encontrar los datos de entrenamiento aquí.

Muy pronto, se añadirá esto como un TensorFlow DataSet, por lo que no es necesario descargar esto por separado como este. También permitirá versionar los datos un poco mejor. Pero por ahora, sólo trata con él. Hay dos cosas que necesitas de los datos de entrenamiento

  1. Carpeta images/,contiene todas las capturas de pantalla (reducidas a 224×140. Pronto tendremos las imágenes a tamaño completo)
  2. labels.csv que contiene todas las etiquetas
  3. bishop-fox-pretrained-v2.h5 Un archivo de pesos preentrenados que puedes usar directamente sin entrenamiento.

Copie los tres en la raíz del árbol de código de Eyeballer.

Predicción de etiquetas

Para ver algunas capturas de pantalla, basta con ejecutar el modo “predict”:

eyeballer.py --weights YOUR_WEIGHTS.h5 predict YOUR_FILE.png

O para todo un directorio de archivos:

eyeballer.py --weights YOUR_WEIGHTS.h5 predict PATH_TO/YOUR_FILES/

Eyeballer escupirá los resultados en un formato legible para el ser humano (un archivo results.html para que puedas navegar fácilmente) y en un formato legible para la máquina (un archivo results.csv).

Entrenamiento

Para entrenar un nuevo modelo, ejecuta:

eyeballer.py train

Necesitarás una máquina con una buena GPU para que esto se ejecute en un tiempo razonable. Sin embargo, la configuración está fuera del alcance de este manual.

Esto producirá un nuevo archivo de modelo (weights.h5 por defecto).

Evaluación

Acabas de entrenar un nuevo modelo, ¡genial! Veamos cómo se comporta frente a algunas imágenes que nunca has visto antes, a través de una variedad de métricas:

eyeballer.py --weights YOUR_WEIGHTS.h5 evaluate

El resultado describirá la exactitud del modelo en cuanto a la recuperación y la precisión para cada una de las etiquetas del programa. (Incluyendo “none of the above” (ninguna de las anteriores) como pseudoetiqueta)

Más artículos
Comandos Básicos y Esenciales de Linux
Comandos Básicos y Esenciales de Linux/Unix