Contactos

Rastreador de red de Windows. Olfateadores. Buenas intenciones y propósitos maliciosos

Cualquier seguimiento en línea se basa en el uso de tecnologías sniffer (analizadores de paquetes de red). ¿Qué es un rastreador?

Un rastreador es un programa informático o un equipo informático que puede interceptar y analizar el tráfico que pasa a través de una red digital o parte de ella. El analizador captura todos los flujos (intercepta y registra el tráfico de Internet) y, si es necesario, decodifica los datos, almacenando secuencialmente la información del usuario transmitida.


Matices del uso del seguimiento en línea a través de rastreadores.

En el canal de transmisión de la red informática LAN (Local Area Network) del usuario, dependiendo de la estructura de la red (switch o hub), los rastreadores interceptan el tráfico de toda o parte de la red proveniente de una computadora portátil o computadora. Sin embargo, utilizando varios métodos (por ejemplo, la suplantación de ARP) es posible lograr el tráfico de Internet y otros sistemas informáticos conectados a la red.

Los rastreadores también se utilizan a menudo para monitorear redes informáticas. Al realizar un monitoreo constante y continuo, los analizadores de paquetes de red identifican sistemas lentos y defectuosos y transmiten (por correo electrónico, teléfono o servidor) la información de falla resultante al administrador.

En algunos casos, utilizar grifos de red es una forma más confiable de monitorear el tráfico de Internet en línea que monitorear los puertos. Al mismo tiempo, aumenta la probabilidad de detectar paquetes (flujos) defectuosos, lo que tiene un efecto positivo en condiciones de alta carga de la red.
Además, los rastreadores son buenos para monitorear redes locales inalámbricas monocanal y multicanal (la llamada LAN inalámbrica) cuando se utilizan varios adaptadores.

En las redes LAN, un rastreador puede interceptar eficazmente tanto el tráfico unidireccional (transferencia de un paquete de información a una única dirección) como el tráfico de multidifusión. En este caso, el adaptador de red debe tener un modo promiscuo.

En las redes inalámbricas, incluso cuando el adaptador está en modo "promiscuo", los paquetes de datos que no se redirigen desde el sistema configurado (principal) se ignorarán automáticamente. Para monitorear estos paquetes de información, el adaptador debe estar en un modo diferente: monitoreo.


Secuencia de interceptación de paquetes de información.

1. Interceptar encabezados o contenido completo.

Los rastreadores pueden interceptar todo el contenido de los paquetes de datos o sólo sus encabezados. La segunda opción le permite reducir los requisitos generales para almacenar información, así como evitar problemas legales asociados con la eliminación no autorizada de información personal de los usuarios. Al mismo tiempo, el historial de encabezados de paquetes transmitidos puede tener una cantidad suficiente de información para identificar la información necesaria o diagnosticar fallas.


2. Paquetes de decodificación.

La información interceptada se decodifica de un formato digital (ilegible) a un tipo que sea fácil de percibir y leer. El sistema rastreador permite a los administradores del analizador de protocolos ver fácilmente la información enviada o recibida por un usuario.

Los analizadores se diferencian en:

  • capacidades de visualización de datos(creación de diagramas de tiempos, reconstrucción de protocolos de datos UDP, TCP, etc.);
  • tipo de aplicacion(para detectar errores, causas raíz o realizar un seguimiento de los usuarios en línea).

Algunos rastreadores pueden generar tráfico y actuar como dispositivo fuente. Por ejemplo, se utilizarán como probadores de protocolos. Estos sistemas de detección de pruebas le permiten generar el tráfico correcto necesario para las pruebas funcionales. Además, los rastreadores pueden introducir errores intencionadamente para probar las capacidades del dispositivo bajo prueba.


Rastreadores de hardware.


Los analizadores de tráfico también pueden ser de tipo hardware, en forma de sonda o matriz de discos (el tipo más común). Estos dispositivos graban paquetes de información o partes de los mismos en una matriz de discos. Esto le permite recrear cualquier información recibida o transmitida por el usuario a Internet o identificar rápidamente un mal funcionamiento en el tráfico de Internet.


Métodos de aplicación.

Los analizadores de paquetes de red se utilizan para:

  • análisis de problemas existentes en la red;
  • detectar intentos de intrusión en la red;
  • determinar el abuso de tráfico por parte de los usuarios (dentro y fuera del sistema);
  • documentar los requisitos reglamentarios (posible perímetro de inicio de sesión, puntos finales de distribución de tráfico);
  • obtener información sobre posibilidades de intrusión en la red;
  • aislamiento de sistemas operativos;
  • monitorear la carga de canales de la red global;
  • utilizado para monitorear el estado de la red (incluida la actividad del usuario tanto dentro como fuera del sistema);
  • seguimiento de datos en movimiento;
  • Monitoreo de WAN y estado de seguridad de terminales;
  • recopilar estadísticas de la red;
  • filtrar contenido sospechoso proveniente del tráfico de la red;
  • crear una fuente de datos primaria para monitorear el estado y la gestión de la red;
  • seguimiento en línea como espía que recopila información confidencial del usuario;
  • depurar las comunicaciones del servidor y del cliente;
  • comprobar la eficacia de los controles internos (control de acceso, cortafuegos, filtros de spam, etc.).

Los organismos encargados de hacer cumplir la ley también utilizan rastreadores para monitorear las actividades de presuntos delincuentes. Tenga en cuenta que todos los ISP e ISP de EE. UU. y Europa cumplen con CALEA.


Rastreadores populares.

Los analizadores de sistemas más funcionales para el seguimiento online:


El programa espía NeoSpy, cuya actividad principal es monitorear las acciones de los usuarios en línea, incluye, además del código del programa rastreador universal, códigos de keylogger (keylogger) y otros sistemas de seguimiento ocultos.



Todos los artículos publicados en estas secciones son propiedad de sus autores.
La administración del sitio no siempre está de acuerdo con la posición de los autores de los artículos y no es responsable del contenido de los materiales publicados en el sitio en las secciones "Reseñas" y "Artículos".
La administración del sitio no es responsable de la exactitud de la información publicada en la sección "Reseñas".


¡Promoción! ¡10% de descuento por darle me gusta a VKontakte!

Haz clic en "Me gusta" y obtén un 10% de descuento en cualquier versión de NeoSpy para PC.

2) Haz clic en el botón "Me gusta" y "Cuéntaselo a tus amigos" en la parte inferior de la página principal;

3) Vaya a la página de compra, seleccione una versión y haga clic en "Comprar";

4) Ingrese su ID de VKontakte en el campo "Cupón de descuento", por ejemplo, su ID es 1234567, en este caso debe ingresar "id1234567" sin comillas en el campo.
Es necesario ingresar el ID de la página y no una dirección de texto breve.

Para ver tu identificación, ve a tu

Olfateadores- estos son programas que interceptan
todo el tráfico de la red. Los rastreadores son útiles para el diagnóstico de red (para administradores) y
para interceptar contraseñas (está claro para quién :)). Por ejemplo, si obtuvo acceso a
una máquina de red e instalé un rastreador allí,
luego pronto todas las contraseñas de
sus subredes serán tuyas. Conjunto de rastreadores
tarjeta de red en escucha
modo (PROMISC), es decir, reciben todos los paquetes. Localmente puedes interceptar
todos los paquetes enviados desde todas las máquinas (si no está separado por ningún concentrador),
Entonces
¿Cómo se practica la radiodifusión allí?
Los rastreadores pueden interceptarlo todo
paquetes (lo cual es muy inconveniente, el archivo de registro se llena terriblemente rápido,
pero para un análisis de red más detallado es perfecto)
o sólo los primeros bytes de todo tipo de
ftp, telnet, pop3, etc. (Esta es la parte divertida, normalmente en los primeros 100 bytes).
contiene nombre de usuario y contraseña :)). Olfateadores ahora
divorciado... Hay muchos rastreadores
tanto en Unix como en Windows (incluso en DOS lo hay :)).
Los rastreadores pueden
solo admite un eje específico (por ejemplo, linux_sniffer.c, que
soporta Linux :)), o varios (por ejemplo Sniffit,
funciona con BSD, Linux, Solaris). Los rastreadores se han vuelto tan ricos porque
que las contraseñas se transmitan a través de la red en texto claro.
tales servicios
mucho. Estos son telnet, ftp, pop3, www, etc. Estos servicios
usa mucho
gente :). Después del boom de los sniffer, varios
algoritmos
cifrado de estos protocolos. Apareció SSH (una alternativa
soporte telnet
cifrado), SSL (Secure Socket Layer, un desarrollo de Netscape que puede cifrar
sesión www). Todo tipo de Kerberous, VPN (Virtual Private
Red). Se utilizaron algunos AntiSniffs, ifstatus, etc. Pero esto fundamentalmente no es
cambió la situación. Servicios que utilizan
transmitir contraseña en texto plano
se aprovechan al máximo :). Por lo tanto, estarán olfateando durante mucho tiempo :).

Implementaciones de sniffer de Windows

linsniffer
Este es un rastreador sencillo de interceptar.
inicios de sesión/contraseñas. Compilación estándar (gcc -o linsniffer
linsniffer.c).
Los registros se escriben en tcp.log.

linux_sniffer
linux_sniffer
requerido cuando quieras
Estudie la red en detalle. Estándar
Compilacion. Da todo tipo de basura extra,
como is, ack, syn, echo_request (ping), etc.

Huela esto
Sniffit - modelo avanzado
Sniffer escrito por Brecht Claerhout. Instalar (necesidad
libcap):
#./configurar
#hacer
Ahora lancemos
oledor:
#./huela esto
uso: ./sniffit [-xdabvnN] [-P proto] [-A char] [-p
puerto] [(-r|-R) archivo de registro]
[-l sniflen] [-L logparam] [-F snifdevice]
[Complemento -M]
[-D tty] (-t | -s ) |
(-yo|-yo) | -C ]
Complementos disponibles:
0 - ficticio
Enchufar
1 - Complemento DNS

Como puedes ver, sniffit soporta muchos
opciones. Puedes utilizar el sniffak de forma interactiva.
Aunque huele
Un programa bastante útil, pero no lo uso.
¿Por qué? Porque olfatear
Grandes problemas con la protección. Para Sniffit ya se han lanzado una raíz remota y dos
¡Linux y Debian! No todos los rastreadores se permiten hacer esto :).

CAZA
Este
mi olfateo favorito. Es muy fácil de usar,
apoya mucho genial
chips y actualmente no tiene problemas de seguridad.
Además no mucho
exigentes con las bibliotecas (como linsniffer y
Linux_sniffer). Él
puede interceptar conexiones actuales en tiempo real y
volcado limpio desde una terminal remota. EN
en general, secuestro
reglazz :). recomiendo
todos para un uso mejorado :).
Instalar:
#hacer
Correr:
#cazar -yo

LEERMB
El rastreador READSMB se corta de LophtCrack y se traslada a
Unix (por extraño que parezca :)). Readsmb intercepta SMB
paquetes.

TCPDUMP
tcpdump es un analizador de paquetes bastante conocido.
Escrito
persona aún más famosa: Van Jacobson, quien inventó la compresión VJ para
PPP y escribí un programa traceroute (¿y quién sabe qué más?).
Requiere una biblioteca
Libcap.
Instalar:
#./configurar
#hacer
Ahora lancemos
su:
#tcpdump
tcpdump: escuchando en ppp0
Todas sus conexiones se muestran en
Terminal. Aquí hay un ejemplo de salida de ping.

ftp.technotronic.com:
02:03:08.918959
195.170.212.151.1039 > 195.170.212.77.dominio: 60946+ A?
ftp.technotronic.com.
(38)
02:03:09.456780 195.170.212.77.dominio > 195.170.212.151.1039: 60946*
1/3/3 (165)
02:03:09.459421 195.170.212.151 > 209.100.46.7: icmp: eco
pedido
02:03:09.996780 209.100.46.7 > 195.170.212.151: icmp: eco
responder
02:03:10.456864 195.170.212.151 > 209.100.46.7: icmp: eco
pedido
02:03:10.906779 209.100.46.7 > 195.170.212.151: icmp: eco
responder
02:03:11.456846 195.170.212.151 > 209.100.46.7: icmp: eco
pedido
02:03:11.966786 209.100.46.7 > 195.170.212.151: icmp: eco
responder

En general, sniff es útil para depurar redes,
solución de problemas y
etc.

Dsniff
Dsniff requiere libpcap, ibnet,
libnids y OpenSSH. Los registros solo ingresan comandos, lo cual es muy conveniente.
A continuación se muestra un ejemplo de un registro de conexión.
en unix-shells.com:

02/18/01
03:58:04 tcp mi.ip.1501 ->
handi4-145-253-158-170.arcor-ip.net.23
(telnet)
stalsen
asdqwe123
es
persona con discapacidad
OMS
último
salida

Aquí
dsniff interceptó el nombre de usuario y la contraseña (stalsen/asdqwe123).
Instalar:
#./configurar
#hacer
#hacer
instalar

Protección contra rastreadores

La forma más segura de protegerse contra
rastreadores -
use CIFRADO (SSH, Kerberous, VPN, S/Key, S/MIME,
SHTTP, SSL, etc.). Bien
y si no desea renunciar a los servicios de texto sin formato e instalar servicios adicionales
paquetes :)? Entonces es hora de usar paquetes anti-rastreadores...

Antisniff para Windows
Este producto fue lanzado por un grupo famoso.
Desván. Fue el primer producto de este tipo.
AntiSniff como se indica en
Descripción:
"AntiSniff es una herramienta impulsada por una interfaz gráfica de usuario (GUI) para
detectar tarjetas de interfaz de red (NIC) promiscuas en su red local
segmento". En general, atrapa cartas en modo promisco.
Soporta enormes
número de pruebas (prueba DNS, prueba ARP, prueba de ping, delta de tiempo ICMP)
Prueba, prueba de eco, prueba de PingDrop). Se puede escanear como un coche,
y la grilla. Hay
soporte de registro. AntiSniff funciona en win95/98/NT/2000,
aunque recomendado
Plataforma NT. Pero su reinado duró poco y pronto
En ese momento apareció un rastreador llamado AntiAntiSniffer :),
escrito por mike
Perry (Mike Perry) (puede encontrarlo en www.void.ru/news/9908/snoof.txt).
basado en LinSniffer (que se analiza a continuación).

Detección del rastreador de Unix:
Oledor
se puede encontrar con el comando:

#ifconfig-a
lo Encapsulación de enlace:Local
Bucle invertido
Dirección Internet: 127.0.0.1 Máscara: 255.0.0.0
ARRIBA.
BUCLE EN EJECUCIÓN MTU:3924 Métrica:1
Paquetes RX: 2373 errores: 0
eliminado: 0 excesos: 0 fotograma: 0
Paquetes TX: 2373 errores: 0 descartados: 0
sobrecostos:0 transportista:0
colisiones:0 txqueuelen:0

Enlace ppp0
encap: protocolo punto a punto
dirección de Internet: 195.170.y.x
P-t-P:195.170.y.x Máscara:255.255.255.255
PROMISCO DE PUNTO ARRIBA
EJECUTANDO NOARP MULTICAST MTU:1500 Métrica:1
Paquetes RX: 3281
errores: 74 descartados: 0 desbordamientos: 0 fotograma: 74
Paquetes TX: 3398 errores: 0
caído: 0 excesos: 0 transportista: 0
colisiones:0 txqueuelen:10

Cómo
verá que la interfaz ppp0 está en modo PROMISC. Cualquiera de los operadores
subido sniff para
comprobaciones de red, o ya te tienen... Pero recuerda,
que ifconfig se puede hacer de forma segura
parodia, así que usa el cable trampa para detectar
cambios y todo tipo de programas
para comprobar si hay olfateos.

AntiSniff para Unix.
Trabaja para
BSD, Solaris y
Linux. Soporta prueba de tiempo ping/icmp, prueba arp, prueba de eco, dns
prueba, prueba de etherping, en general un análogo de AntiSniff para Win, solo para
Unix:).
Instalar:
#hacer Linux-todo

Centinela
También es un programa útil para
atrapar olfateadores. Soporta muchas pruebas.
Facil de
usar.
Instalar: #make
#./centinela
./centinela [-t
]
Métodos:
[ -una prueba ARP ]
[ -d prueba de DNS
]
[ -i Prueba de latencia de ping ICMP ]
[ -e Prueba de etherping ICMP
]
Opciones:
[-f ]
[ -v Mostrar versión y
salida ]
[ -norte ]
[ -I
]

Las opciones son tan simples que no
comentarios.

MÁS

Aquí hay algunos más
utilidades para comprobar su red (por
Unix):
packagestorm.securify.com/UNIX/IDS/scanpromisc.c -remoto
Detector de modo PROMISC para tarjetas ethernet (para red hat 5.x).
http://packetstorm.securify.com/UNIX/IDS/neped.c
- Detector de red Ethernet promiscua (requiere libcap y Glibc).
http://packetstorm.securify.com/Exploit_Code_Archive/promisc.c
- escanea los dispositivos del sistema para detectar olfateos.
http://packetstorm.securify.com/UNIX/IDS/ifstatus2.2.tar.gz
- ifstatus prueba las interfaces de red en modo PROMISC.

Rastreador de IP- un programa que le permite monitorear paquetes que pasan a través del Protocolo de Internet (IP). La funcionalidad del programa incluye la capacidad de decodificar paquetes y filtrarlos.

En la era de la tecnología moderna e Internet, la seguridad es lo primero. La computadora intercambia información digital con el mundo exterior a través de protocolos especiales. El Protocolo de Internet (IP) es uno de los más populares y populares debido a su seguridad y alta velocidad de transferencia de datos.

Fue con su aparición, en 1981, cuando los ordenadores pudieron enviarse mensajes entre sí en forma de paquetes de datos. Sniffer para Windows está diseñado para monitorear el tráfico y verificar el contenido de los paquetes. Por lo tanto, esta utilidad es una forma adicional de proteger su computadora. Descargar IP Sniffer es la mejor solución para mantener bajo control el tráfico y todos los flujos de información.

Descarga IP Sniffer gratis

Rastreador de IP para Windows (1,4 MB)

Características clave de IP Sniffer:

  • Multifuncionalidad;
  • Seguridad;
  • Talla pequeña;
  • Interfaz intuitiva.

La última versión del sniffer tiene una interfaz cómoda y sencilla. El programa le permite ver qué direcciones IP se utilizan con más frecuencia y cuáles están conectadas con mayor frecuencia a su máquina. Puede controlar cómodamente el volumen de tráfico. También puede finalizar por la fuerza una conexión particular utilizando la función Netstat. Se recomienda descargar el rastreador a su computadora si el usuario se enfrenta a la tarea de interceptar el tráfico entre hosts. Esto se puede hacer mediante la función Snoofing, que, entre muchas otras, admite el popular protocolo ARP. Otras funciones populares del sniffer en ruso son el ping de red, la capacidad de convertir una dirección IP en un nombre de host y viceversa y buscar servidores DHCP. También puede usarlo para obtener datos de Netbios para una dirección IP específica.

Se recomienda descargar el sniffer de forma gratuita si el usuario desea obtener un asistente confiable en el control del tráfico. El programa no requiere instalación ni configuración adicional. Puede usarlo inmediatamente después de descargarlo. La interfaz del programa es concisa y sencilla. Las ventanas y pestañas están ubicadas para que su uso sea lo más cómodo y cómodo posible. El desarrollador mejora y mejora constantemente su producto. Las actualizaciones se publican periódicamente. El programa es muy resistente a cualquier influencia maliciosa. Nuestro portal brinda a todos los visitantes la oportunidad de descargar el programa rastreador sin registro ni SMS.

En este artículo veremos cómo crear un rastreador simple para el sistema operativo Windows.
Cualquier persona interesada, bienvenido al gato.

Introducción

Objetivo: Escriba un programa que capture el tráfico de red (Ethernet, WiFi) transmitido a través del protocolo IP.
Instalaciones: Visual Studio 2005 o superior.
El enfoque descrito aquí no pertenece personalmente al autor y se utiliza con éxito en muchos programas comerciales, así como en programas completamente gratuitos (hola, GPL).
Este trabajo está dirigido principalmente a principiantes en programación de redes, quienes, sin embargo, tienen al menos conocimientos básicos en el campo de los sockets en general y de los sockets de Windows en particular. Aquí a menudo escribo cosas conocidas, porque el área temática es específica, si me olvido de algo, mi cabeza será un desastre.

Espero lo encuentres interesante.

Teoría (la lectura no es obligatoria, pero sí recomendable)

Actualmente, la gran mayoría de las redes de información modernas se basan en la pila de protocolos TCP/IP. La pila de protocolos TCP/IP (Protocolo de control de transmisión/Protocolo de Internet) es un nombre colectivo para los protocolos de red de diferentes niveles utilizados en las redes. En este artículo nos interesará principalmente el protocolo IP, un protocolo de red enrutado que se utiliza para la entrega no garantizada de datos divididos en los llamados paquetes (un término más correcto es datagrama) de un nodo de la red a otro.
De particular interés para nosotros son los paquetes IP diseñados para transmitir información. Este es un nivel bastante alto del modelo de datos de red OSI, cuando puede aislarse del dispositivo y del medio de transmisión de datos, operando solo con una representación lógica.
Es completamente lógico que tarde o temprano hayan aparecido herramientas para interceptar, monitorear, registrar y analizar el tráfico de la red. Estas herramientas suelen denominarse analizadores de tráfico, analizadores de paquetes o sniffers (del inglés sniff - sniff). Se trata de un analizador de tráfico de red, un programa o dispositivo de hardware y software diseñado para interceptar y posteriormente analizar, o analizar únicamente, el tráfico de red destinado a otros nodos.

Práctica (conversación sustantiva)

Actualmente se ha creado bastante software para escuchar el tráfico. El más famoso de ellos: Wireshark. Naturalmente, el objetivo no es cosechar los laureles: nos interesa la tarea de interceptar el tráfico simplemente "escuchando" una interfaz de red. Es importante entender que no vamos a piratear ni interceptar extraño tráfico. Sólo necesitamos ver y analizar el tráfico que pasa por nuestro host.

Por qué esto puede ser necesario:

  1. Ver el flujo de tráfico actual a través de la conexión de red (entrante/saliente/total).
  2. Redirigir el tráfico para su posterior análisis a otro host.
  3. En teoría, puedes intentar usarlo para hackear una red WiFi (no vamos a hacer eso, ¿verdad?).
A diferencia de Wireshark, que se basa en la biblioteca libpcap/WinPcap, nuestro analizador no utilizará este controlador. Es más, no tendremos ningún controlador y no vamos a escribir nuestro propio NDIS (¡oh, qué horror!). Puedes leer sobre esto en este tema. Simplemente será un observador pasivo, utilizando solo Biblioteca WinSock. Usar un controlador en este caso es redundante.

¿Cómo es eso? Muy simple.
El paso clave para convertir una aplicación de red simple en un analizador de red es cambiar la interfaz de red al modo promiscuo, lo que le permitirá recibir paquetes dirigidos a otras interfaces de la red. Este modo obliga a la tarjeta de red a aceptar todas las tramas, independientemente de a quién estén dirigidas en la red.

A partir de Windows 2000 (NT 5.0), resultó muy fácil crear un programa para escuchar un segmento de red, porque su controlador de red le permite configurar el socket para recibir todos los paquetes.

Habilitando el modo promiscuo
bandera larga = 1; ZÓCALO ZÓCALO; #define SIO_RCVALL 0x98000001 ioctlsocket(socket, SIO_RCVALL, &RS_Flag);
Nuestro programa opera con paquetes IP y utiliza la biblioteca Windows Sockets versión 2.2 y sockets sin formato. Para obtener acceso directo a un paquete IP, el socket debe crearse de la siguiente manera:
Creando un socket sin formato
s = conector(AF_INET, SOCK_RAW, IPPROTO_IP);
Aquí en lugar de una constante SOCK_STREAM(protocolo TCP) o calcetín_dgram(protocolo UDP), utilizamos el valor calcetín_raw. En términos generales, trabajar con sockets sin formato es interesante no sólo desde el punto de vista de la captura de tráfico. De hecho, obtenemos un control total sobre la formación del paquete. O mejor dicho, lo formamos manualmente, lo que permite, por ejemplo, enviar un paquete ICMP concreto...

Adelante. Se sabe que un paquete IP consta de un encabezado, información de servicio y, de hecho, datos. Te aconsejo que mires aquí para actualizar tus conocimientos. Describamos el encabezado IP en forma de estructura (gracias al excelente artículo sobre RSDN):

Descripción de la estructura del paquete IP.
typedef struct _IPHeader (unsigned char ver_len; // versión y longitud del encabezado unsigned char tos; // tipo de servicio unsigned short length; // longitud de todo el paquete unsigned short id; // Id unsigned short flgs_offset; // banderas y desplazamiento sin firmar char ttl ; // protocolo char sin firmar de por vida; // protocolo sin firmar short xsum; // suma de comprobación sin firmar long src; // dirección IP del remitente sin firmar destino largo; // dirección IP de destino sin firmar short *params; // parámetros (hasta 320 bits) char unsigned *datos; // datos (hasta 65535 octetos) )IPHeader;
La función principal del algoritmo de escucha se verá así:
Función de captura de paquete único
IPHeader* RS_Sniff() ( IPHeader *hdr; int recuento = 0; recuento = recv(RS_SSocket, (char*)&RS_Buffer, tamaño de (RS_Buffer), 0); if (recuento >= tamaño de (IPHeader)) ( hdr = (LPIPHeader )malloc(MAX_PACKET_SIZE); memcpy(hdr, RS_Buffer, MAX_PACKET_SIZE); RS_UpdateNetStat(count, hdr); devuelve hdr; ) en caso contrario devuelve 0; )
Aquí todo es simple: recibimos un dato usando la función de socket estándar recv y luego copiarlos en una estructura como Encabezado IP.
Y finalmente, iniciamos un bucle interminable de captura de paquetes:
Capturemos todos los paquetes que llegan a nuestra interfaz de red.
while (true) ( ​​​​IPHeader* hdr = RS_Sniff(); // procesando el paquete IP if (hdr) ( // imprime el encabezado en la consola) )
un poco fuera de tema
Aquí y a continuación, el autor creó el prefijo RS_ (de Raw Sockets) para algunas funciones y variables importantes. Hice el proyecto hace 3 o 4 años y tuve la loca idea de escribir una biblioteca completa para trabajar con sockets sin formato. Como suele suceder, después de obtener algunos resultados significativos (para el autor), el entusiasmo se apagó y el asunto no pasó de un ejemplo de formación.

En principio, puede ir más allá y describir los encabezados de todos los protocolos posteriores ubicados arriba. Para hacer esto, necesita analizar el campo. protocolo en la estructura Encabezado IP. Mire el código de ejemplo (sí, debería haber un conmutador, ¡maldita sea!), donde el encabezado se colorea dependiendo del protocolo que el paquete haya encapsulado en IP:

/* * Resaltando un paquete con color */ void ColorPacket(const IPHeader *h, const u_long haddr, const u_long whost = 0) ( if (h->xsum) SetConsoleTextColor(0x17); // si el paquete no está vacío else SetConsoleTextColor(0x07); // paquete vacío if (haddr == h->src) ( SetConsoleTextColor(BACKGROUND_BLUE | /*BACKGROUND_INTENSITY |*/ FOREGROUND_RED | FOREGROUND_INTENSITY); // paquete "nativo" para devolución) else if (haddr == h->dest ) ( SetConsoleTextColor(BACKGROUND_BLUE | /*BACKGROUND_INTENSITY |*/ FOREGROUND_GREEN | FOREGROUND_INTENSITY); // paquete de recepción "nativo" ) if (h->protocol == PROT_ICMP || h->protocol == PROT_IGMP) ( SetConsoleTextColor (0x70) ; // paquete ICMP ) else if(h->protocol == PROT_IP || h->protocol == 115) ( SetConsoleTextColor(0x4F); // paquete IP-in-IP, L2TP ) else if(h - >protocolo == 53 || h->protocolo == 56) ( SetConsoleTextColor(0x4C); // TLS, IP con cifrado ) if(whost == h->dest || whost == h->src) ( SetConsoleTextColor (0x0A); ) )

Sin embargo, esto está mucho más allá del alcance de este artículo. Para nuestro ejemplo de capacitación, será suficiente mirar las direcciones IP de los hosts de donde y hacia qué proviene el tráfico y calcular su cantidad por unidad de tiempo (el programa terminado se encuentra en el archivo al final del artículo). .

Para mostrar los datos del encabezado IP, debe implementar una función para convertir el encabezado (pero no los datos) del datagrama en una cadena. Como ejemplo de implementación, podemos ofrecer la siguiente opción:

Convertir un encabezado IP en una cadena
char en línea* iph2str(IPHeader *iph) ( const int BUF_SIZE = 1024; char *r = (char*)malloc(BUF_SIZE); memset((void*)r, 0, BUF_SIZE); sprintf(r, "ver=% d hlen=%d tos=%d len=%d id=%d flags=0x%X offset=%d ttl=%dms prot=%d crc=0x%X src=%s dest=%s", BYTE_H (iph->ver_len), BYTE_L(iph->ver_len)*4, iph->tos, ntohs(iph->longitud), ntohs(iph->id), IP_FLAGS(ntohs(iph->flgs_offset)), IP_OFFSET (ntohs(iph->flgs_offset)), iph->ttl, iph->protocol, ntohs(iph->xsum), nethost2str(iph->src), nethost2str(iph->dest)); devuelve r; )
Con base en la información básica proporcionada anteriormente, obtenemos este pequeño programa (nombre espeluznante ss, abreviatura de simple sniffer), que implementa la escucha local del tráfico IP. Su interfaz se muestra a continuación en la figura.

Proporciono el código fuente y binario tal cual, como estaba hace varios años. Ahora tengo miedo de mirarlo y, sin embargo, es bastante legible (por supuesto, no puedes tener tanta confianza en ti mismo). Incluso Visual Studio Express 2005 será suficiente para la compilación.

Con lo que terminamos:

  • El rastreador funciona en modo usuario, pero requiere privilegios de administrador.
  • Los paquetes no se filtran y se muestran tal cual (puede agregar filtros personalizados; le sugiero que consulte este tema en detalle en el próximo artículo si está interesado).
  • También se captura el tráfico WiFi (todo depende del modelo de chip específico, puede que a ti no te funcione, como a mí hace varios años), aunque existe AirPcap, que puede hacer esto de maravilla, pero cuesta dinero.
  • Todo el flujo de datagramas se registra en un archivo (consulte el archivo adjunto al final del artículo).
  • El programa funciona como un servidor en el puerto 2000. Puede conectarse al host mediante la utilidad telnet y monitorear los flujos de tráfico. El número de conexiones está limitado a veinte (el código no es mío, lo encontré en Internet y lo usé para experimentos; no lo eliminé, es una pena)
Gracias por su atención, felicito a los residentes de Khabrovsk y a los residentes de Khabrovsk y a todos, a todos, ¡Feliz Navidad!

Olfateo inteligente le permite interceptar el tráfico de la red y mostrar su contenido en ASCII. El programa captura paquetes que pasan a través del adaptador de red y muestra el contenido de los paquetes en forma de texto (protocolos http, pop3, smtp, ftp) y como un volcado hexadecimal. Para capturar paquetes TCP/IP, SmartSniff utiliza las siguientes técnicas: sockets sin formato: sockets RAW, controlador de captura WinCap y controlador de monitor de red de Microsoft. El programa es compatible con el idioma ruso y es fácil de usar.

Programa rastreador para capturar paquetes.


SmartSniff muestra la siguiente información: nombre del protocolo, dirección local y remota, puerto local y remoto, nodo local, nombre del servicio, volumen de datos, tamaño total, hora de captura y hora del último paquete, duración, dirección MAC local y remota, países y paquete de datos. contenidos. El programa tiene configuraciones flexibles, implementa la función de un filtro de captura, descomprime respuestas http, convierte direcciones IP y la utilidad se minimiza en la bandeja del sistema. SmartSniff genera un informe sobre los flujos de paquetes como una página HTML. El programa puede exportar flujos TCP/IP.



¿Te gustó el artículo? Compártelo