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
fingerprintx — ¡Utilidad independiente para el descubrimiento de servicios en puertos abiertos! | Kitploit
Herramientas/GitHubGitHub/praetorian-inc/fingerprintx
ReconocimientoMapeo de RedesEscaneo de PuertosRecopilación de InformaciónUtilidades y FrameworksArchived
GitHubpraetorian-inc/fingerprintx

fingerprintx

¡Utilidad independiente para el descubrimiento de servicios en puertos abiertos!

Ver Repositorio
7587811hace 8 mesesRevisado 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

fingerprintx

Características • Instalación • Uso • Ejecutar fingerprintx • Uso como biblioteca • ¿Por qué no nmap? • Notas • Agradecimientos

fingerprintx es una utilidad similar a httpx que también admite el fingerprinting de servicios como RDP, SSH, MySQL, PostgreSQL, Kafka, etc. fingerprintx se puede usar junto con escáneres de puertos como Naabu para identificar el servicio que se ejecuta en un conjunto de puertos detectados durante un escaneo de puertos. Por ejemplo, un ingeniero puede querer escanear un rango de IPs y luego identificar rápidamente el servicio que se ejecuta en todos los puertos descubiertos.

Características

  • Identificación rápida de servicios expuestos
  • Descubrimiento de servicios a nivel de aplicación
  • Funciona bien con otras herramientas de línea de comandos
  • Recopilación automática de metadatos de servicios identificados

https://user-images.githubusercontent.com/69640071/193334167-8405dd50-f9bf-4386-b7b8-83255af41a8b.mov

Ejemplo de Fingerprintx

Ejemplo de cadena de Fingerprintx

Ejemplo de SMB con Fingerprintx

Protocolos soportados:

51 plugins de detección de servicios que admiten protocolos TCP y UDP:

Características destacadas:

  • Bases de datos vectoriales: ChromaDB, Milvus, Pinecone
  • Bases de datos relacionales: PostgreSQL, MySQL, MSSQL, OracleDB, DB2, Sybase, Firebird
  • Bases de datos NoSQL: MongoDB, CouchDB, Cassandra, Redis, Elasticsearch, InfluxDB, Neo4j
  • Herramientas de desarrollo: JDWP (Java Debug Wire Protocol), Java RMI
  • Protocolos industriales: Modbus, IPMI
  • Mensajería: Kafka, MQTT, SMTP
  • Acceso remoto: SSH, RDP, Telnet, VNC
  • Transferencia de archivos: FTP, SMB, Rsync
  • Telecomunicaciones/AAA: Diameter (redes 3GPP, LTE/5G), SMPP (pasarelas SMS)

Instalación

Desde Github

root@kitploit:~
go install github.com/praetorian-inc/fingerprintx/cmd/fingerprintx@latest

Desde el código fuente (versión de go > 1.18)

root@kitploit:~
$ git clone [email protected]:praetorian-inc/fingerprintx.git
$ cd fingerprintx

# con go version > 1.18
$ go build ./cmd/fingerprintx
$ ./fingerprintx -h

Docker

root@kitploit:~
$ git clone [email protected]:praetorian-inc/fingerprintx.git
$ cd fingerprintx

# construir
docker build -t fingerprintx .

# y ejecutarlo
docker run --rm fingerprintx -h
docker run --rm fingerprintx -t praetorian.com:80 --json

Uso

root@kitploit:~
fingerprintx -h

La opción -h mostrará todas las banderas admitidas para fingerprintx.

root@kitploit:~
Uso:
  fingerprintx [flags]
ESPECIFICACIÓN DEL OBJETIVO:
	Requiere un host y número de puerto o una IP y número de puerto. Se asume que el puerto está abierto.
	HOST:PUERTO o IP:PUERTO
EJEMPLOS:
	fingerprintx -t praetorian.com:80
	fingerprintx -l archivo-de-entrada.txt
	fingerprintx --json -t praetorian.com:80,127.0.0.1:8000

Banderas:
      --csv               formato de salida en csv
  -f, --fast              modo rápido
  -h, --help              ayuda para fingerprintx
      --json              formato de salida en json
  -l, --list string       archivo de entrada con los objetivos
  -o, --output string     archivo de salida
  -t, --targets strings   objetivo o lista de objetivos separados por comas
  -w, --timeout int       tiempo de espera (milisegundos) (por defecto 500)
  -U, --udp               ejecutar plugins UDP
  -v, --verbose           modo verbose

El modo fast solo intentará identificar el servicio predeterminado asociado con ese puerto para cada objetivo. Por ejemplo, si la entrada es praetorian.com:8443, solo se ejecutará el plugin https. Si https no se está ejecutando en praetorian.com:8443, NO habrá salida. ¿Por qué hacer esto? Es una manera rápida de identificar la mayoría de los servicios en una lista grande de hosts (piensa en la regla 80/20).

Ejecutar Fingerprintx

Con un objetivo:

root@kitploit:~
$ fingerprintx -t 127.0.0.1:8000
http://127.0.0.1:8000

Por defecto, la salida tiene la forma: SERVICIO://HOST:PUERTO. Para obtener una salida de servicio más detallada, especifica JSON con la bandera --json:

root@kitploit:~
$ fingerprintx -t 127.0.0.1:8000 --json
{"ip":"127.0.0.1","port":8000,"service":"http","transport":"tcp","metadata":{"responseHeaders":{"Content-Length":["1154"],"Content-Type":["text/html; charset=utf-8"],"Date":["Mon, 19 Sep 2022 18:23:18 GMT"],"Server":["SimpleHTTP/0.6 Python/3.10.6"]},"status":"200 OK","statusCode":200,"version":"SimpleHTTP/0.6 Python/3.10.6"}}

Redirige la salida de otro programa (como naabu):

root@kitploit:~
$ naabu 127.0.0.1 -silent 2>/dev/null | fingerprintx
http://127.0.0.1:8000
ftp://127.0.0.1:21

Ejecutar con un archivo de entrada:

root@kitploit:~
$ cat input.txt | fingerprintx
http://praetorian.com:80
telnet://telehack.com:23

# o si prefieres
$ fingerprintx -l input.txt
http://praetorian.com:80
telnet://telehack.com:23

Con más metadatos de salida:

root@kitploit:~
$ cat input.txt | fingerprintx --json
{"host":"praetorian.com","ip":"146.148.61.165","port":80,"service":"http","transport":"tcp","metadata":{"responseHeaders":{"Connection":["keep-alive"],"Content-Type":["text/html"],"Date":["Mon, 19 Sep 2022 18:37:55 GMT"],"Etag":["W/\"5e3e263f-1703\""],"Keep-Alive":["timeout=20"],"Server":["nginx"],"Vary":["Accept-Encoding"]},"status":"404 Not Found","statusCode":404,"version":"nginx"}}
{"host":"telehack.com","ip":"64.13.139.230","port":23,"service":"telnet","transport":"tcp","metadata":{"serverData":"fffb03"}}

Uso como biblioteca

fingerprintx se puede importar a tu proyecto para escanear servicios en puertos abiertos. En el directorio de ejemplos se proporciona un código de ejemplo sobre cómo hacerlo. Compila con go build scan.go. Otro archivo que puede ser útil como referencia al importar fingerprintx en tu propio proyecto es el ejecutor de línea de comandos.

¿Por qué no Nmap?

Nmap es el estándar para el escaneo de redes. ¿Por qué usar fingerprintx en lugar de nmap? Las dos razones principales son:

  • fingerprintx trabaja de manera más inteligente, no más dura: el primer plugin que se ejecuta contra un servidor con el puerto 8080 abierto es el plugin http. El enfoque de servicio predeterminado reduce el tiempo de escaneo en el mejor de los casos. La mayoría de las veces, los servicios que se ejecutan en los puertos 80, 443, 22 son http, https y ssh, así que eso es lo que fingerprintx verifica primero.
  • fingerprintx admite salida JSON con la bandera --json. Nmap admite numerosas opciones de salida (normal, xml, grep), pero a menudo son difíciles de analizar y scriptear adecuadamente. fingerprintx admite salida JSON, lo que facilita la integración con otras herramientas en tuberías de procesamiento.

Notas

  • ¿Por qué tienes una carpeta third_party que importa las bibliotecas criptográficas de Go?
    • ¡Buena pregunta! El módulo de fingerprinting de ssh identifica las diversas opciones criptográficas que admite el servidor al recopilar metadatos durante el proceso de handshake. Esto hace uso de algunas funciones no exportadas, por lo que las bibliotecas criptográficas de Go se incluyen aquí con un archivo export.go.
  • Fingerprintx no está diseñado para identificar puertos abiertos en los sistemas objetivo y asume que cada entrada objetivo:puerto está abierta. Si ninguno de los puertos está abierto, no habrá salida, ya que no hay servicios ejecutándose en los objetivos.
  • ¿Cómo se compara esto con zgrab2?
    • El uso (y caso de uso) de la línea de comandos de zgrab2 es ligeramente diferente al de fingerprintx. Para zgrab2, el protocolo debe especificarse de antemano: echo praetorian.com | zgrab2 http -p 8000, lo que asume que ya sabes lo que se está ejecutando allí. Para fingerprintx, ese no es el caso: echo praetorian.com:8000 | fingerprintx. El enfoque de escaneo de protocolo de "capa de aplicación" es muy similar.

Agradecimientos

fingerprintx es el trabajo de muchas personas, incluida nuestra gran clase de pasantes de 2022. Aquí hay una lista de colaboradores hasta ahora:

  • [Soham Roy]praetorian-sohamroy
  • [Jue Huang] (https://github.com/jue-huang)
  • [Henry Jung] (https://github.com/henryjung64)
  • [Tristan Wiesepape][qwetboy10] (https://github.com/qwetboy10)
  • [Joseph Henry][jwhenry28] (https://github.com/jwhenry28)
  • [Noah Tutt][noahtutt] (https://github.com/noahtutt)
  • [Nathan Sportsman][nsportsman] (https://github.com/nsportsman)
Descargar herramienta
SERVICIOTRANSPORTE
CassandraTCP
ChromaDBTCP
CouchDBTCP
DB2TCP
DHCPUDP
DiameterTCP
DNSTCP/UDP
EchoTCP
ElasticsearchTCP
FirebirdTCP
FTPTCP
HTTP/HTTPSTCP
IMAPTCP
InfluxDBTCP
IPMITCP
IPSECUDP
Java RMITCP
JDWPTCP
KafkaTCP
LDAPTCP
Linux RPCTCP
MemcachedTCP
MilvusTCP
ModbusTCP
MongoDBTCP
MQTTTCP
MSSQLTCP
MySQLTCP
Neo4jTCP
NetBIOS-NSUDP
NTPUDP
OpenVPNUDP
OracleDBTCP
PineconeTCP
POP3TCP
PostgreSQLTCP
RDPTCP
RedisTCP
RsyncTCP
RTSPTCP
SMBTCP
SMPPTCP
SMTPTCP
SNMPUDP
SNPPTCP
SSHTCP
STUNUDP
SybaseTCP
TelnetTCP
VNCTCP