Skip to content
KitploitKITPLOIT
HerramientasBlog
Log in
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
Prober — Marco de pruebas automatizado y reproducible de seguridad de redes usando Ansible y BATS para verificar DNS, disponibilidad de hosts, puertos abiertos y configuración TLS desde múltiples puntos de vista. | Kitploit
Herramientas/GitLabGitLab/isnic/prober
Escáneres de VulnerabilidadesEscaneo de PuertosAuditoría de ConfiguraciónSeguridad de RedesPruebas de PenetraciónAnálisis de DNS
GitLabisnic/prober

Prober

Marco de pruebas automatizado y reproducible de seguridad de redes usando Ansible y BATS para verificar DNS, disponibilidad de hosts, puertos abiertos y configuración TLS desde múltiples puntos de vista.

Ver Repositorio
119hace 5 añosAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Verificar supuestos de red de forma reproducible

Este proyecto utiliza Ansible para generar archivos de prueba BATS que verifican supuestos de seguridad sobre la infraestructura de red. Las pruebas se ejecutan desde máquinas de prueba ("nodos prober") en las que se despliega Prober.

Esta herramienta está diseñada para pruebas automatizadas y reproducibles de redes propias. Admite múltiples nodos prober ejecutando pruebas, cada uno con una vista diferente de la red sondada — por ejemplo, una vista desde la zona externa, desde una zona interna, y una vista desde dentro de la DMZ.

Usar Prober para sondear redes para las que no estás autorizado podría ser ilegal.

Requisitos

En el maestro de Ansible utilizado para desplegar pruebas a los nodos prober:

  • ansible (¡obvio!)
  • python*-netaddr (en GNU/Linux) / py*-netaddr (en FreeBSD)

En los propios nodos prober:

  • bash
  • ssh
  • nmap
  • dig/kdig
  • testssl
  • y cualquier otra dependencia que instale el rol de Ansible.

En un sistema donde revises los resultados (archivos *.tap), quizás quieras instalar tappy. Los resultados se mantienen en cada nodo prober, en repositorios git locales (por defecto, en /var/run/prober/results/, ver más abajo las opciones de configuración), con commits etiquetados con la fecha de finalización de cada ejecución de escaneo, para registro histórico y fácil comparación.

Operación

Se utiliza Ansible para generar pruebas en los nodos prober. Un nodo prober puede ser cualquier host FreeBSD o GNU/Linux, siempre que sea posible instalar las dependencias de Prober. No necesita estar dedicado a pruebas, pero se recomienda — un escaneo de una red de tamaño razonable tomará horas, usará mucha CPU y generará bastante tráfico.

Tiene sentido desplegar Prober en varias máquinas diferentes para comprobar cómo se ve tu red desde distintos puntos de observación (por ejemplo: red interna, DMZ, Internet).

En el directorio de pruebas en los nodos prober se crea un script run-tests.sh para facilitar la ejecución de las pruebas. Las pruebas se ejecutan de manera que se asegure que <simultaneous_tests_count> pruebas se estén ejecutando simultáneamente en todo momento — esta variable es la forma principal de controlar cuántos recursos usa un escaneo y cuánto ancho de banda necesita.

Los resultados de las pruebas se guardan luego en un repositorio git local, con commits etiquetados con la fecha en que finalizó una ejecución determinada (que puede ser diferente de la fecha de inicio para algunas ejecuciones largas de escaneo).

Si se trata de una infraestructura más grande que solo unos pocos hosts, puede tener sentido usar una herramienta como Mitogen para acelerar drásticamente la generación de pruebas.

Inicio rápido

  1. Prepara un servidor Debian o FreeBSD para usarlo como nodo prober (llamémoslo prober.example.com), asegúrate de tener acceso SSH a él y poder hacer sudo en él.

  2. Copia el inventario de ejemplo como inventories/test/.

  3. En ese inventario test:

    1. edita group_vars/all.yml y establece zone_nameserver, zone_domains, address_blocks a tu gusto; supongamos que agregas example.com como el único dominio a sondear.
    2. edita el archivo hosts, configurando tu nodo prober prober.example.com en la sección [prober-nodes]; digamos que estableces tested_zone como test.
  4. Copia la configuración de zona de ejemplo como data/<tested_zone>.yml (por lo tanto, en nuestro caso: data/test.yml) y edítala; como mínimo, la clave tested_zone_settings.name debe contener el tested_zone (es decir, test).

  5. Exporta tu zona DNS y guárdala como data/<dns_zone>.zone (en nuestro caso: example.com).

  6. Ejecuta el playbook:

    ansible-playbook prober.yml -i inventories/test/ -vvv
    

    Esto generará las pruebas en el nodo prober y configurará un cronjob para ejecutarlas cada noche a la 01:00 AM

Ahora puedes hacer ssh al nodo prober e inspeccionar las pruebas generadas en /opt/prober/. Una vez que estés satisfecho, puedes ejecutarlas con: /opt/prober/run_tests.sh. Los resultados se guardarán en /var/run/prober/results.

Configuración

Variables de configuración (definidas en probers.yml):

  • tests_directory (por defecto: /opt/prober):
    directorio en los nodos prober donde se generan los archivos de prueba (archivos *.bats).

  • results_repo_directory (por defecto: /var/run/prober/results): directorio del repositorio para los resultados de las pruebas (archivos *.tap); allí se inicializa un repositorio git y se crea un subdirectorio tap/ para los resultados reales; los resultados se confirman en el repositorio git, los commits se etiquetan con una fecha en formato yyyy-mm-dd (el commit con los resultados de una prueba que finalizó el 19 de marzo de 2020 se etiqueta como 2020-03-19, por ejemplo).

  • simultaneous_tests_count (por defecto: 20):
    cuántas pruebas se ejecutan simultáneamente.

  • prober_dev (por defecto: sin definir):
    omite ciertas tareas que no tienen sentido en una máquina de desarrollo (como configurar cron o zabbix).

Zonas

Las zonas se definen en archivos ./data/<nombre_de_zona>.yml con la clave principal siendo la cadena "tested_zone_settings", que a su vez contiene las claves:

  • name: el nombre de la zona, que coincide con el nombre del archivo (sin extensión); por ejemplo: "internal", "external", "dmz"
  • default (opcional): la configuración predeterminada para todos los hosts en esta zona
  • claves de expresión regular (que comienzan necesariamente con un carácter "^") que coinciden con múltiples FQDN
  • una clave por cada FQDN que necesita configuración explícita

La clave default, cada clave de expresión regular y cada clave de dominio a su vez pueden contener estas claves:

  • resolve: si el host debe resolver a la dirección IP relevante (booleano true/false, o la cadena "skip")
  • ping: si el host debe responder a ping (booleano true/false, o la cadena "skip")
  • ports: lista de puertos TCP y UDP permitidos para estar abiertos (subclaves "tcp" y "udp", cada una contiene un array de enteros que definen los puertos permitidos, o la cadena "skip"), y puertos con TLS habilitado para hacer una inspección más profunda (la subclave tls, que contiene un dict con números de puerto como claves y el tipo de servicio TLS o la palabra "skip" como valor)
    ports: "skip" es una abreviatura de:
    ports:
      tcp: "skip"
      udp: "skip"
      tls: "skip"
    
    Los tipos de servicio TLS son los que testssl.sh soporta para la opción -t/--starttls, "https" para prueba HTTPS (incluyendo cabeceras), o "tls" para prueba TLS genérica.
    AVISO: Las pruebas TLS no se ejecutan a menos que el puerto también esté marcado como abierto en la clave "tcp".
  • skip: si el host debe omitirse por completo (booleano)

Puedes ver la configuración de ejemplo aquí.

Los valores predeterminados globales se definen en probers.yml. Para cada host sondado, estos se combinen con los valores predeterminados de la zona relevante, luego con las claves de expresión regular que coinciden con un nombre de host dado, y finalmente con la configuración específica del host.

Descargar herramienta