El framework Netcap (NETwork CAPture) convierte eficazmente un flujo de paquetes de red en registros de auditoría estructurados de tipo neutro que representan protocolos específicos o abstracciones personalizadas. Estos registros de auditoría pueden almacenarse en el disco o intercambiarse a través de la red, y son muy adecuados como fuente de datos para los algoritmos de aprendizaje automático. Dado que el análisis sintáctico de entradas no fiables puede ser peligroso y que los datos de la red son potencialmente maliciosos, se utiliza para la implementación un lenguaje de programación que proporciona un tiempo de ejecución seguro de recogida de basura en memoria.
Netcap utiliza los Protocol Buffers de Google para codificar su salida, lo que permite acceder a ella a través de una amplia gama de lenguajes de programación. Alternativamente, la salida puede ser emitida como valores separados por comas, que es un formato de entrada común para las herramientas y sistemas de análisis de datos. La herramienta es extensible y ofrece múltiples formas de añadir soporte para nuevos protocolos, a la vez que implementa la lógica de análisis sintáctico de forma segura para la memoria. Proporciona datos de alta dimensión sobre el tráfico observado y permite al investigador centrarse en la experimentación de enfoques novedosos para la detección de comportamientos maliciosos en entornos de red, en lugar de tener que juguetear con los mecanismos de recopilación de datos y los pasos de post-procesamiento. Tiene un diseño concurrente que hace uso de arquitecturas multinúcleo.
El nombre de Netcap se eligió por ser sencillo y descriptivo. La herramienta de línea de comandos se diseñó teniendo en cuenta la facilidad de uso y la legibilidad, y muestra el progreso al procesar los paquetes. La última versión ofrece 58 tipos de registros de auditoría, de los cuales 53 son específicos de protocolo y 5 son modelos de flujo.
Para más detalles, consulta la documentación, visita la página web y lee la tesis:
https://github.com/dreadl0ck/netcap/blob/master/mied18.pdf
Instalación
Tienes dos opciones: instalar una versión binaria o compilar desde el código fuente.
- Instalar la versión binaria: Descarga la última versión desde aquí.
https://github.com/dreadl0ck/netcap/releases
Compilar desde el código fuente
- Instalar Go
Se recomienda instalar Go vía snap en sistemas Debian, los paquetes de aptitude suelen estar desactualizados
# instalar el gestor de paquetes snap
$ sudo apt install snapd
$ sudo systemctl start snapd
$ sudo systemctl enable snapd
# instalar go
$ sudo snap install go --classic
# asegúrate de que el servicio de apparmor se está ejecutando y se reiniciará automáticamente
# para evitar errores al ejecutar los binarios instalados a través de snap después de reiniciar
$ sudo systemctl start apparmor
$ sudo systemctl enable apparmor
añade los siguientes directorios como prefijo a tu PATH en el archivo ~/.zshrc
(opcionalmente también a /root/.zshrc
):
export PATH="/home/kali/go/bin:/snap/bin:/usr/local/bin:$PATH"
$ source ~/.zshrc
$ go version
go version go1.16.3 linux/amd64
Instala las dependencias: Necesitas las cabeceras de desarrollo de libpcap:
$ sudo apt install libpcap-dev
ahora es el momento de obtener el código fuente de NETCAP y utilizar los scripts de construcción para compilar.
$ mkdir -p /home/kali/go/src/github.com/dreadl0ck
$ cd /home/kali/go/src/github.com/dreadl0ck
$ git clone https://github.com/dreadl0ck/netcap
Compilar con DPI:
Compilar con DPI
Compilar sin DPI
$ cd /home/kali/go/src/github.com/dreadl0ck/netcap
$ zeus/generated/install-linux-nodpi.sh
De cualquier forma, ahora debería tener el binario de net en tu PATH, verifícalo ejecutando:
$ net
/ |
_______ ______ _10 |_ _______ ______ ______
/ / \ / / \ / 01/ | / / | / / \ / / \
0010100 /|/011010 /|101010/ /0101010/ 001010 |/100110 |
01 | 00 |00 00 | 10 | __ 00 | / 10 |00 | 01 |
10 | 01 |01001010/ 00 |/ |01 \_____ /0101000 |00 |__10/|
10 | 00 |00/ / | 10 00/ 00/ / |00 00 |00/ 00/
00/ 10/ 0101000/ 0010/ 0010010/ 0010100/ 1010100/
00 |
Network Protocol Analysis Framework 00 |
created by Philipp Mieden, 2018 00/
v0.5.13
available subcommands:
> capture capture audit records
> util general util toool
> proxy http proxy
> label apply labels to audit records
> export exports audit records
> dump utility to read audit record files
> collect collector for audit records from agents
> transform maltego plugin
> help display this help
usage: ./net <subcommand> [flags]
or: ./net <subcommand> [-h] to get help for the subcommand
Ejemplo de Uso
Una simple demostración de la generación de registros de auditoría a partir de un archivo de volcado PCAP, consultando y mostrando la información recogida de varias maneras:
Y operación en vivo decodificando el tráfico de una interfaz de red inalámbrica, mientras se navega por la web:
Objetivos de Diseño
- seguridad de la memoria al analizar datos no fiables
- facilidad de ampliación
- formato de salida interoperable con muchos lenguajes de programación diferentes
- diseño concurrente
- reunir todo, separar lo que se puede entender de lo que no
- permitir la implementación de abstracciones personalizadas
- soporte de plataformas y arquitecturas ricas
Casos de Uso
- monitorización de honeypots
- monitorización de dispositivos médicos/industriales
- investigación de mecanismos de detección basados en anomalías
- análisis de datos forenses
Componentes del Framework
El Framework consta de 9 herramientas lógicamente separadas y compiladas en un único binario:
capture
(captura de registros de auditoría en vivo o a partir de archivos de volcado)dump
(volcado de registros de auditoría en varios formatos)label
(herramienta para crear conjuntos de datos CSV etiquetados a partir de datos netcap)collect
(servidor de colección para la colección distribuida)agent
(agente de sensores para la colección distribuida)proxy
(proxy inverso http para capturar el tráfico de los servicios web)util
(herramienta de utilidad para validar los registros de auditoría y convertir las marcas de tiempo)export
(exportador de métricas prometheus)transform
(plugin de transformación de maltego)
Integraciones
Métricas de Prometheus
Ejemplo de cuadro de mando general:
Puede leer más sobre la integración de Prometheus en la documentación.
Maltego
Extrae la información DHCP de los dispositivos de la red local de un archivo de volcado PCAP:
Extracción de archivos HTTP:
Análisis de inyección de comandos de parámetros HTTP:
Puedes leer más sobre la integración de Maltego en la documentación.
https://github.com/dreadl0ck/netcap