Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
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.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
Packet-Sniffer — Sniffer de paquetes de red basado en sockets sin procesar que captura y desensambla paquetes TCP/IP de interfaces de red para análisis de seguridad y uso educativo. | Kitploit
Herramientas/GitHubGitHub/eonraider/packet-sniffer
Sniffing y Análisis de PaquetesRecopilación de InformaciónSeguridad de RedesAprendizaje y Educación
GitHubeonraider/packet-sniffer

Packet-Sniffer

Sniffer de paquetes de red basado en sockets sin procesar que captura y desensambla paquetes TCP/IP de interfaces de red para análisis de seguridad y uso educativo.

Ver Repositorio
786111111hace 21 díasRevisado 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
# RootWire

[![CodeFactor](https://www.codefactor.io/repository/github/eonraider/rootwire/badge)](https://www.codefactor.io/repository/github/eonraider/rootwire)
[![CI](https://github.com/EONRaider/RootWire/actions/workflows/ci.yml/badge.svg)](https://github.com/EONRaider/RootWire/actions/workflows/ci.yml)
[![PyPI](https://img.shields.io/pypi/v/rootwire)](https://pypi.org/project/rootwire/)
![Python Version](https://img.shields.io/badge/python-3.12+-blue?logo=python)
![OS](https://img.shields.io/badge/OS-GNU/Linux-red?logo=linux)
[![License](https://img.shields.io/github/license/EONRaider/RootWire)](LICENSE)

Un monitor de tráfico de red para GNU/Linux — *anteriormente conocido como
Packet-Sniffer*. Las tramas se capturan desde una o varias interfaces de
red con un socket raw, con marca de tiempo del propio kernel, se decodifican
capa por capa con la librería
[NETProtocols](https://github.com/EONRaider/NETProtocols), y se renderizan en
vivo, se escriben a un pcap con precisión de nanosegundos, o se transmiten
como JSON:

```
[>] Frame #4 at 15:42:07 (wlan0, 74 bytes)
    [+] Ethernet 3c:7c:3f:1a:be:22 -> 9c:1e:95:aa:01:5f
        EtherType: IPv4
    [+] IPv4 192.168.1.96 -> 142.250.79.78
        TTL: 64 | Flags: Don't fragment (DF) | Total Length: 60 | ID: 39754
        Protocol: TCP | Checksum: 0x2b51
    [+] TCP 51888 -> 443
        Flags: 0x002 (SYN) | Seq: 3598801521 | Ack: 0
        Window: 64240 | Checksum: 0x2008
        Options: Maximum Segment Size (1460), SACK Permitted, Timestamps (3644437524, 0), No-Operation, Window Scale (7)
```

El decodificador cubre Ethernet (etiquetas VLAN 802.1Q, incluyendo el
etiquetado QinQ anidado), ARP, IPv4 (**opciones decodificadas** y
fragmentos), IPv6 **incluyendo cabeceras de extensión** (un informe MLD
renderiza su cadena completa Hop-by-Hop) y **Neighbor Discovery** (una
Solicitud o Anuncio de Router/Neighbor muestra su dirección objetivo y
opciones de capa de enlace), ICMPv4/v6, TCP (offsets de payload conscientes
de opciones, **opciones decodificadas**) y UDP. Cada checksum de
IPv4/ICMPv4/ICMPv6/TCP/UDP se verifica contra un recálculo, marcando una
discrepancia en línea (`Checksum: 0x0000 [!] mismatch (expected 0x1a2b)`) —
una señal real para tráfico corrupto o falsificado, silenciosa para un
fragmento no reensamblado, donde el checksum del cable cubre un datagrama
que RootWire nunca reconstruye. Las tramas malformadas o truncadas se
diagnostican en lugar de hacer fallar la captura, los protocolos
desconocidos terminan la cadena de forma controlada, y un límite de 16
capas evita que pilas de cabeceras de extensión fabricadas amplifiquen —
la captura sobrevive a lo que sea que entregue la red.

## Instalación

```
pipx install rootwire        # or: uv tool install rootwire
```

O ejecutar desde un clon con [uv](https://docs.astral.sh/uv/):

```
git clone https://github.com/EONRaider/RootWire.git
cd RootWire
uv sync
```

## Uso

```
rootwire [-h] [-i INTERFACE] [-r FILE] [-w FILE]
         [--filter NAME_OR_EXPR] [--json] [-d] [--version]

options:
  -i, --interface   interface to capture frames from; repeat to capture on
                    several interfaces concurrently (default: all interfaces)
  -r, --read FILE   replay frames from a pcap or pcapng file instead of live
                    capture (no privileges required; mutually exclusive
                    with -i)
  -w, --write FILE  also write every captured frame to a classic pcap file
  --filter NAME_OR_EXPR
                    attach a kernel-side capture filter so only matching
                    frames reach userspace: a canned name (arp, ip6, tcp,
                    udp) or a filter expression -- protocols tcp/udp/icmp/
                    arp/ip/ip6; host/port, each optionally prefixed with
                    src/dst; and/or/not; parentheses (e.g. "tcp and port
                    80"); live capture only
  --json            one NDJSON object per frame on stdout (banner and
                    statistics stay on stderr): pipe straight into jq
  -d, --data        also display each frame's raw payload (ignored with --json)
```

Las estadísticas de captura — tramas, bytes, tramas/s, conteos de
malformadas/truncadas, recuentos por protocolo — se reportan en stderr
cuando la captura termina, ya sea por Ctrl-C, `SIGTERM`, o (para `-r`) fin
de archivo: los tres desencadenan el mismo apagado limpio. Algunas
combinaciones favoritas:

```
sudo rootwire -i eth0 -w session.pcap             # capture and keep the evidence
sudo rootwire -i eth0 --filter tcp                # drop non-TCP in the kernel
sudo rootwire -i eth0 --filter "tcp and port 80"  # kernel-side filter expression
sudo rootwire -i eth0 -i wlan0                    # merge two interfaces into one stream
rootwire -r session.pcap                          # inspect it later, no root
rootwire -r session.pcap --json | jq .            # machine-readable analysis
```

La captura en vivo necesita un socket raw, lo que en Linux significa root
(`sudo rootwire -i eth0`) o conceder al intérprete la capacidad
`CAP_NET_RAW`. Reproducir archivos con `-r` nunca necesita privilegios.
Desde un clon, ejecútalo como `sudo .venv/bin/python -m rootwire`.

## Cómo funciona

El `capture_async()` de `capture.py` produce tramas raw — fusionadas desde
un socket `AF_PACKET` por interfaz, cada una con marca de tiempo del propio
kernel al llegar (`SO_TIMESTAMPNS`, no una lectura del reloj en espacio de
usuario) — como tuplas `(bytes, timestamp, interface)`; la reproducción
desde un archivo con `-r` adapta las tramas de `pcap.py`
a esa misma forma antes de que cualquiera de las fuentes llegue a
`decoder.py`, que recorre la cadena de protocolos de cada trama hasta un
`DecodedFrame` inmutable. Las salidas — el renderizador de pantalla, el
flujo NDJSON, el escritor de pcap, el recolector de estadísticas —
consumen cada trama a través de una pequeña interfaz `Output`. El recorrido
completo, incluyendo por qué la memoria se mantiene plana durante capturas
largas y cómo añadir una salida, está en
[ARCHITECTURE.md](https://github.com/eonraider/packet-sniffer/blob/master/ARCHITECTURE.md).

Todo excepto el socket raw se ejecuta en cualquier SO, por lo que la suite
de pruebas — que incluye un corpus de 65 tramas de tráfico real capturado
reproducido a través de todo el pipeline — no necesita ni root ni Linux:

```
uv run pytest
```

## Contribuir

Los informes de errores y las pull requests son bienvenidos. [CONTRIBUTING.md](https://github.com/eonraider/packet-sniffer/blob/master/CONTRIBUTING.md)
cubre la configuración de desarrollo, las comprobaciones que ejecuta CI, y
cómo se ve una buena pull request aquí.

## Aviso Legal

El uso del código contenido en este repositorio, ya sea en parte o en su
totalidad, para atacar objetivos sin consentimiento mutuo previo es
ilegal. **Es responsabilidad del usuario final obedecer todas las leyes
locales, estatales y federales aplicables.**

Los desarrolladores no asumen **ninguna responsabilidad** y no son
responsables de los malos usos o daños causados por cualquier código
contenido en este repositorio en cualquier evento en que, accidentalmente
o de otro modo, llegue a ser utilizado por un agente de amenaza o entidad
no autorizada como medio para comprometer la seguridad, privacidad,
confidencialidad, integridad y/o disponibilidad de sistemas y sus recursos
asociados. En este contexto, el término "comprometer" se entiende en
adelante como el aprovechamiento de la explotación de vulnerabilidades
conocidas o desconocidas presentes en dichos sistemas, incluyendo, pero no
limitado a, la implementación de controles de seguridad, habilitados por
humanos o electrónicamente.

El uso de este código es **solo** respaldado por los desarrolladores en
aquellas circunstancias directamente relacionadas con **entornos
educativos** o **compromisos de pruebas de penetración autorizados** cuyo
propósito declarado sea el de encontrar y mitigar vulnerabilidades en
sistemas, limitando su exposición a compromisos y exploits empleados por
agentes maliciosos según se define en sus respectivos modelos de amenaza.

## Licencia

[AGPL-3.0](https://github.com/eonraider/packet-sniffer/blob/master/LICENSE)
Descargar herramienta