Skip to content
KitploitKITPLOIT
HerramientasBlog
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
pstf2 — Marco de Fingerprinting de Herramientas de Seguridad Pasivas | Kitploit
Herramientas/GitHubGitHub/g4lb1t/pstf2
Herramientas de PhishingEvasión de IDS/IPSSeguridad WebAprendizaje y EducaciónRed TeamingSuplantación de Huella Digital
GitHubg4lb1t/pstf2

pstf2

Marco de Fingerprinting de Herramientas de Seguridad Pasivas

Ver Repositorio
7496hace 5 añosRevisado por Kitploit

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

pstf^2

Framework de Fingerprinting Pasivo de Herramientas de Seguridad

¿Alguna vez has querido un bypass simple, fácil y sigiloso para múltiples clases de productos de seguridad? pstf^2 (se pronuncia pstf-square) es una implementación de un servidor HTTP capaz de realizar fingerprinting pasivo de navegadores, y podría ser justo lo que estás buscando. Cuando los atacantes intentan entregar un payload a través de internet, necesitan superar múltiples herramientas capaces de escanear enlaces entrantes. Filtros de correo electrónico, motores de escaneo e incluso el envío a un sandbox a través de URL: todo puede ser evadido una vez que pstf2 los detecta de forma pasiva. Una vez detectados, la herramienta permite diferenciar entre servicios de seguridad y víctimas potenciales y entregar una respuesta maliciosa o benigna.

Esta herramienta se presentó durante BlackHat EU 2020: https://www.blackhat.com/eu-20/arsenal/schedule/#pstf2-link-scanners-evasion-made-easy-21763

Los detalles de la investigación están disponibles en esta entrada de blog: https://blogs.akamai.com/sitr/2020/12/evading-link-scanning-security-services-with-passive-fingerprinting.html

¿Cómo funciona?

La verdadera pregunta es: ¿cómo funcionan los escáneres de enlaces? Inspeccionar un enlace malicioso es una acción que implica que un cliente web envíe una solicitud HTTP GET. Cada proveedor utiliza una implementación interna diferente, la mayoría intentando imitar una interacción de usuario real hasta cierto punto. pstf^2 es un servidor HTTP simple basado en Python que aplica tácticas bien conocidas de detección de bots para determinar si una solicitud entrante proviene de una herramienta de seguridad automatizada. El operador del servidor puede personalizar las respuestas, por ejemplo: si se detecta un escáner, redirigir a Google; de lo contrario, enviar contenido malicioso.

A continuación se presentan las principales tácticas implementadas como parte de pstf^2:

Capa de Aplicación

Agentes de Usuario Obsoletos

Las herramientas de seguridad intentan ocultarse como clientes legítimos, haciéndose pasar por navegadores reales, sin embargo, normalmente este no es el caso. Es común ver herramientas que no se mantienen adecuadamente usando cabeceras de user-agent falsas para versiones de navegador que tienen una década de antigüedad. pstf^2 te permite establecer un umbral mínimo para lo que consideras una versión real no obsoleta.

Anomalías HTTP Generales

Hay muchos tipos de implementaciones extrañas que la herramienta es capaz de detectar. Un par de ejemplos que se presentaron en la charla de BlackHat fueron:

  • Dejar una cabecera via: que revelaba la naturaleza del host virtual utilizado para el sandboxing.
  • Una cabecera referer: que sugería que el enlace se había alcanzado desde Google, por ejemplo, referer: google.com/search?q=specific.site.com. en los escenarios que probamos no tenía sentido ya que este producto escanea correos electrónicos y cuando alguien hace clic en un correo (no desde una interfaz web) esta cabecera está ausente.

Capa de Enlace, Red y Transporte

Correlación

Múltiples parámetros TCP pueden implicar una versión específica de SO o una variante específica. Algunos clientes falsifican la cabecera user-agent pero se ejecutan sobre un SO diferente al que declaran.

Valores de MTU

Los clientes alojados en redes de proveedores de nube específicos tienen un MTU diferente al valor estándar de 1500 bytes.

ASN

En algunos casos, la solicitud se envía desde un ASN asociado explícitamente con un proveedor de seguridad específico. En otros, el origen de la solicitud es un proveedor de hosting en la nube, y aunque no incrimina a un proveedor específico, es poco probable que sea un usuario típico.

Registros PTR de DNS

En casos raros, la dirección IP del cliente tiene un registro PTR, asociándola con una URL relacionada con un proveedor de seguridad.

Configuración de pstf^2

Usando Docker

Suponiendo que ya tienes Docker instalado, es tan simple como esto:

root@kitploit:~
docker-compose up 

Despliegue Manual

En caso de que quieras evitar Docker, sigue estos pasos.

Satisfacer los requisitos de Python

ejecuta:

root@kitploit:~
pip install requirements.txt

Esto instalará cualquier módulo externo de Python requerido.

Obteniendo p0f

Antes de desplegar pstf^2, descarga e instala p0f. Actualmente está disponible en:

https://lcamtuf.coredump.cx/p0f3/

Ahora, configura correctamente lib/servers/server_config.yml para que apunte a la ruta correcta, por ejemplo:

root@kitploit:~
p0f_config:
  # change your username at the very least, remember to change in both paths
  p0f_bin_path: '/Users/$your_user_name/$more_folders/web_fp/p0f-3.09b/p0f'
  p0f_fp_path: '/Users/$your_user_name/$more_folders/web_fp/p0f-3.09b/p0f.fp'
  iface: 'lo0'
  p0f_named_socket: '/tmp/p0f_socket'

También verifica que iface sea la misma interfaz que ejecuta tu servidor HTTP Python. En el ejemplo anterior, es la interfaz de loopback.

Ejecutando pstf^2

Una vez que se cumplan los requisitos, ejecuta:

root@kitploit:~
python driver.py

Puedes usar cualquiera de las siguientes banderas:

root@kitploit:~
  --p0f_bin_path P0F_BIN_PATH
  --p0f_fp_path P0F_FP_PATH
  --p0f_iface P0F_IFACE

Todas se usan para ajustar parámetros relacionados con p0f: el binario en sí, el archivo de fingerprinting y la interfaz que usamos, que por defecto es eth0.

Deberías ver una salida similar a la siguiente:

root@kitploit:~
2020-04-15 17:37:06,896 - pstf2_logger - INFO - Starting p0f...
2020-04-15 17:37:06,896 - pstf2_logger - INFO - Running command:
	/Users/gbitensk/work/web_fp/p0f-3.09b/p0f -i lo0 -s /tmp/p0f_socket -f /Users/gbitensk/work/web_fp/p0f-3.09b/p0f.fp
2020-04-15 17:37:06,898 - pstf2_logger - INFO - p0f started!
2020-04-15 17:37:06,898 - pstf2_logger - INFO - Starting HTTP server...
2020-04-15 17:37:06,898 - pstf2_logger - INFO - HTTP server started!
2020-04-15 17:37:06,899 - pstf2_logger - INFO - If you wish to terminate the server press CTRL+C

Termina el servidor presionando Ctrl+C, esto matará tanto la instancia HTTP como la de p0f. Deberías ver algo similar a:

root@kitploit:~
2020-04-15 17:37:48,263 - pstf2_logger - INFO - HTTP server stopped!
2020-04-15 17:37:48,263 - pstf2_logger - INFO - Killing p0f...
2020-04-15 17:37:48,263 - pstf2_logger - INFO - p0f killed!
2020-04-15 17:37:48,263 - pstf2_logger - INFO - exiting...

Ten en cuenta que configurar un registro DNS que apunte una URL a tu servidor está fuera del alcance de pstf^2 y es bajo tu propia responsabilidad.

Gestión de Payloads

pstf^2 tiene payloads predeterminados que se definen dentro de server_config.yml y se pueden personalizar fácilmente.

Respuesta Benigna

Hay dos modos, que se cambian alterando la variable rickroll_mode a YES o NO. Si está habilitada, la herramienta de seguridad será redirigida a una página de YouTube con la famosa película de Rickrolling; de lo contrario, servirá una cadena definida en el mismo archivo YAML.

Respuesta Maliciosa

Por defecto, la respuesta "maliciosa" se estableció en la cadena de prueba estándar EICAR.

¿Por qué pstf^2 es público?

Opté por publicar esta herramienta como un proyecto de código abierto porque:

  • Los enlaces maliciosos son utilizados por los malos a diario, a gran escala.
  • Las herramientas de seguridad no son lo suficientemente buenas; algunos de los métodos ilustrados por pstf^2 se abusan en la naturaleza.

Como parte de la construcción de la herramienta, se probó contra 15 productos diferentes, y todos fallaron. Si bien divulgué responsablemente los detalles sobre el ataque, todavía tenemos un largo camino por recorrer y mi expectativa es que al hacer pública la herramienta aumentaremos la conciencia sobre esas tácticas que ya están siendo abusadas por los "malos".

Agradecimientos Especiales

@Den1al por brindar asesoramiento al construir esta herramienta específicamente, y por escribir Python correctamente en general, así como por ayudar a crearla como una imagen Docker.

Descargar herramienta