Sei sulla pagina 1di 16

[//] Networking Center(R), 1999. [//] Centro de Informacion de Redes Informaticas y Telematicas. [//] Web: http://networking.home.dhs.

org [//] Lista de Correo: Networking-Center@eGroups.com [//] Titulo Documento: OCULTACION DE IPs [//] Autor: Aule <aule@mixmail.com> [//] Fecha: Septiembre 1999 [//] Parte: I [//] Documento Autorizado bajo los Estatutos de Networking Center(R), Estatutos de Instruccion y Documentos, segun los cuales el autor cede los derechos intelectuales a Networking Center(R). Prohibida su reproduccion sin la aparicion de los logotipos de Networking y Networking Center(R), ademas del autor del documento y las URLs correspondientes. [//] Networking Center(R) no se hace responsable del mal uso y/o interpretacion de los contenidos de este documento. Su autor tambien queda libre de toda responsabilidad. Networking Center(R) no tiene porque estar de acuerdo con las opiniones de sus instructores.

/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\ /*\ /*\ /*\ /*\ /*\ OCULTACION DE IPs /*\ /*\ /*\ /*\ aule@mixmail.com Aule /*\ /*\ /*\ \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/ Este texto es una explicacion para novatos(abstenerse gurus)de diversos terminos y tecnicas que nos sirven para ocultar nuestra direccion ip 1. 2. 3. 4. 5. Introduccion Proxys Wingates Bouncer IP-Spoofing

1- Introduccion Seguro que habeis oido hablar o leido en algun texto cosas como un Bouncer un Wingate o un Proxy pero es facil que no lo tengais muy claro o que tengais alguna duda, porque estos terminos se confunden bastante amenudo Antes de empezar quiero que entendais lo que realmente significa ocultar vuestra IP. Pues bien en internet vuestra IP es lo mismo que en la vida real pueden ser tus huellas dactilares, tu DNI o codigo genetico, sin estos datos podrias hacer "todo" lo que quisieras. Si lo piensas podrias decir que eres "invisible", pues en internet lo mismo, si "no tienes IP" eres un ordenador fantasma 2- Proxys Bien voy explicar lo que es un Proxy solo para los mas novatos porque

cualquiera que lea esto creo que ya lo tendria que saber :-P Cuando hablamos de una red siempre pensamos en un grupo mas o menos grande de ordenadores conectados entre si, pero esto no funciona solamente asi tiene que tener una determinada estructura, necesita lo que se llama un servidor, que no es otra cosa que una maquina con unas mejores prestaciones(aunque no siempre sea asi) y que usa un sistema operativo con distintos usuarios (server) |-----equipo A ------|-----|-----|-----equipo equipo equipo equipo B C D E

Bien pues cuando nuestra red necesita tener salida al exterior, ya sea a otra red local o a internet, decimos que es un servidor Proxy, todos los datos que lleguen de fuera de nuestra red tienen que pasar por esta maquina su funcion entonces seria la de un router(esto no es asi exactamente, que no me mate nadie xD), es entonces cuando tienen utilidad palabras como wingate o bouncer Existen muchos tipos de servidores proxy, sin ir mas lejos vuestro proveedor de internet funciona como un server proxy y vosotros formais parte de su red, solo que a diferencia de una pequea red local, el server de vuestro ISP tiene que asignar una ip distinta cada vez que accedeis a el(entre otras diferencias).En una red local (LAN) las ips suelen estar predefinidas. 3- Wingates Wingate es un programa que funciona en Win 95/98 y NT. Este programa lo usan los servers proxys para dirigir el trafico circula por una red local es lo que hace que realice funciones similares a un router Realmente todo el software que hace estas funciones es conocido con el nombre de wingate pero existen muchos programas que realizan esta funcion cada uno con su propio nombre pero el mas comun es el que realmente se llama wingate (mas adelante explicare como diferenciar los distintos wingates) Bien pues estos programas no es que sean muy dificiles de configurar pero amenudo los admis se dejan muchas puertas abiertas que el programa trae por defecto, sobre todo las versiones mas antiguas y sin parchear, las cuales permiten acceso telnet al puerto 23 sin pedir pass (jejeje :)) Con estos datos podemos usar el wingate para muchas cosas... cada uno... Podemos acceder al IRC para lo que solo necesitamos algunos comandos del mIRC 1 /server wiley231h038.roadrunner.nf.net 23 _WinGate>NICK Aule Connecting to host NICK...Host name lookup for 'NICK' failed USER aule "pss" "wiley231h038.roadrunner.nf.net" The truth is out there... Connecting to host USER aule "pss" "wiley231h038.roadrunner.nf.net" ...Host name lookup for 'USER aule "pss" "wiley231h038.roadrunner.nf.net" ' failed 2 /raw dubhe.irc-hispano.org 6667 -> Server: dubhe.irc-hispano.org 6667 Connecting to host dubhe.irc-hispano.org...Connected 3 /raw nick Aule -> Server: nick Aule

PING? PONG! 4 /raw user taigual kemasda el@mio.com ikepasa -> Server: user taigual kemasda el@mio.com ikepasa Welcome to the Internet Relay Network Aule Your host is dubhe.irc-hispano.org[dubhe.acn.es], running version u2.10.06.24.(nullchan) This server was created Mon Aug 16 1999 at 00:57:47 EDT dubhe.irc-hispano.org u2.10.06.24.(nullchan) dioswkg biklmnopstv Bueno y ya tamos dentro del irc usando un wingate :) tambien se puede usar el comando QUOTE en lugar de RAW y los puntos 3 y 4 pueden ir en orden contrario. Si te sientes intrigado por que es lo que has hecho hazte un whois y seguro que lo comprenderas. Tambien existen lo que son los socks que permiten el acceso al IRC atraves de la maquina Wingate pero por el puerto 1080. Con del mIRC su uso es de lo mas sencillo no tienes mas que indicarle al mIRC que usas a la maquina con el Wingate como un firewall y el puerto que usas para acceder a el, el 1080. Esto se hace en la ventana del setup del mIRC en la pestaa que pone firewall, hay distintas casillas, en la del host ponemos la direccion del Wingate, puerto 1080 que ya viene por defecto, y pulsamos los socks,bueno... y conectar con el server de IRC como haces siempre. La diferencia de hacerlo asi es que si realizamos un DCC con otro usuario este va conocer nuestra autentica IP Si eres un poco inteligente entenderas que con esto te puedes saltar cosas como un G-LINE y un KILL o bans en canales donde no te has portado bien :P Ademas si alguien te esta intentando nukear lo tiene mucho mas dificil porque intentara nukear al server del wingate no tu ordenador. Decir por ultimo del wingate en el IRC, que en la red hispano.org el uso de wingates esta en vias de extincion :(( pero esto no es el tema de este txt Bueno sigamos con nuestro amigo Wingate como dije antes el programa habre el puerto 23 y permite acceder a el sin pedirnos pass, con lo cual lo podemos usar para saltar a otras maquinas. Esto es lo que seria hacer Bouncing pero lo explico en este apartado por que es atraves de un wingate. Como dije antes no todos los Proxys usan el mismo software, existen distintos programas que usan estos servers cada uno tiene sus propios fallos de seguridad, pero vamos a diferenciar que tipo de soft se trata: - Winproxy realizamos un telnet al server --------------------------------------------------Trying 195.76.206.157... Connected to 195.76.206.157. Escape character is '^]'. Enter : <host> [port] : ---------------------------------------------------para estar seguros conectamos al ftp (puerto 21) -----------------------------------------------------Connected to 195.76.206.157. 220 WinProxy FTP Gateway ready, enter username@host[:port] ----------------------------------------------------esta claro que es un winproxy

- Wingate Esta claro el conocido Wingate :) Las ultimas versiones vienen parcheadas para que no se pueda acceder desde el exterior Realizamos un telnet y vemos clarito el prompt --------------------------------------------------Trying 195.76.206.62... Connected to 195.76.206.62. Escape character is '^]'. WinGate> --------------------------------------------------FTP -----------------------------------------------------Connected to 195.76.206.62. 220 WinGate V1.3 FTP Gateway ready, enter user@host[:port] -----------------------------------------------------sed buenos.... si podeis :P - S-Proxy Este es soft espaol! Telnet ---------------------------------------------------Trying 194.75.196.77... Connected to 194.75.196.77. Escape character is '^]'. Host: ---------------------------------------------------Para reconocerlo correctamente FTP ------------------------------------------------------Connected to 194.75.196.77. 220 S-Proxy preparado para recibir. ------------------------------------------------------cuando realizamos telnet solo nos deja hacerlo al puerto 23 lo que aumenta su seguridad pero nos permite Bouncear igualmente :) Creo que ya sabeis que es lo que se puede hacer con esto.. al hacer un telnet al wingate podemos saltar a cualquier otra maquina wingate> telnet mi.vecino.es 23 La ventaja es clara... no nos conectamos a la maquina de mi.vecino.es desde nuestro ordenador si no desde el del wingate quedando en la maquina de mi.vecino.es la IP del wingate y no la nuestra :P Pero no todo es tan facil :( en la maquina del wingate pueden quedar los logs asi que andar con cuidado 4- Bouncer Como la tecnica explicada en el apartado anterior existe alguna otra manera de hacer bouncing. Creo que ya entendeis lo que es bouncing pero bueno.... mi maquina Bouncer objetivo A ----------> B -----------> C

El bouncer puede ser como el caso anterior un wingate mal configurado o un programa colocado en la maquina B por una mano un tanto "inocente" Bouncing se puede hacer en maquinas Unix haciendo correr un daemond que nosotros hallamos colocado (ojo con el root!) solo le indicaremos el puerto por el que nosotros entraremos y la maquina y puerto al que "saltamos" Esto se puede usar para conectarse al IRC de forma mas segura o para otros menesteres ;> Aqui os dejo un Bouncer para acceder al IRC: --------------cut------------/* Distribution: Public */ /* Copyright: Held by the respective contributors */ /* Posted to USENET September '93 by Mark mark@cairo.anu.edu.au */ /* This file was telserv.c, part of the Telnet Server package v. 1.0, written by "Hal-9000". Much of that package was developed by Richard Stephens and his thanks go to "Xanadude" for providing him with that section. Performance fix by Darren Reed. */ /* Reworked to add concurrency, password checking and destination selection on the fly. - Mark 31st Aug 93 Now its a IRC bouncer - riley Nov 93. Compiled and tested on: HPUX 9.01 9000/700 series OSx Pyramid 90x BSD universe Ultrix 4.3 DEC RISC */ /*+ IRC Bouncer hacks +*/ #define IRCSERV "irc.lleida.net" #define IRCPORT 6667 #define IRCBNC 9999 #include #include #include #include #include #include #include #include #include #include #include #include #define <stdio.h> <sys/types.h> <sys/socket.h> <sys/time.h> <sys/resource.h> <sys/wait.h> <fcntl.h> <errno.h> <netinet/in.h> <netdb.h> <arpa/inet.h> <sys/ioctl.h> QLEN 5 NeXTStep 3.1 NeXT 68040 SunOS 5.2 sun4c

To compile, type "cc -O -s ts2.c -o ts2".

char sbuf[2048], cbuf[2048]; extern int errno; extern char *sys_errlist[]; void reaper(); int main();

void telcli(); int main(argc, argv) int argc; char *argv[]; { int srv_fd, rem_fd, rem_len, opt = 1; struct sockaddr_in rem_addr, srv_addr; #if !defined(SVR4) && !defined(POSIX) && !defined(linux) && !defined(__386BSD__) && !defined(hpux) union wait status; #else int status; #endif /* !defined(SVR4) */ bzero((char *) &rem_addr, sizeof(rem_addr)); bzero((char *) &srv_addr, sizeof(srv_addr)); srv_addr.sin_family = AF_INET; srv_addr.sin_addr.s_addr = htonl(INADDR_ANY); srv_addr.sin_port = htons(IRCBNC); /*+ IRC Bouncer hack +*/ srv_fd = socket(PF_INET, SOCK_STREAM, 0); if (bind(srv_fd, (struct sockaddr *) &srv_addr, sizeof(srv_addr)) == -1) { perror("bind"); exit(-1); } listen(srv_fd, QLEN); close(0); close(1); close(2); #ifdef TIOCNOTTY if ((rem_fd = open("/dev/tty", O_RDWR)) >= 0) { ioctl(rem_fd, TIOCNOTTY, (char *)0); close(rem_fd); } #endif if (fork()) exit(0); while (1) { rem_len = sizeof(rem_addr); rem_fd=accept(srv_fd, (struct sockaddr *) &rem_addr, &rem_len); if (rem_fd < 0) { if (errno == EINTR) continue; exit(-1); } switch(fork()) { case 0: /* child process */ close(srv_fd); /* close original socket */ telcli(rem_fd); /* process the request */ close(rem_fd); exit(0); break; default: close(rem_fd); /* parent process */ if (fork()) exit(0); /* let init worry about children */ break; case -1: fprintf(stderr, "\n\rfork: %s\n\r", sys_errlist[errno]); break; } } } void telcli(source)

int source; { int dest; int found; struct sockaddr_in sa; struct hostent *hp; struct servent *sp; char gethost[100]; char getport[100]; char string[100]; hp = gethostbyname(IRCSERV); if (hp) { found++; #if !defined(h_addr) /* In 4.3, this is a #define */ #if defined(hpux) || defined(NeXT) || defined(ultrix) || defined(POSIX) memcpy((caddr_t)&sa.sin_addr, hp->h_addr_list[0], hp->h_length); #else bcopy(hp->h_addr_list[0], &sa.sin_addr, hp->h_length); #endif #else /* defined(h_addr) */ #if defined(hpux) || defined(NeXT) || defined(ultrix) || defined(POSIX) memcpy((caddr_t)&sa.sin_addr, hp->h_addr, hp->h_length); #else bcopy(hp->h_addr, &sa.sin_addr, hp->h_length); #endif #endif /* defined(h_addr) */ } else { if (inet_addr(gethost) == -1) { found = 0; sprintf(string, "Didnt find address for %s\r\n", gethost); write(source, string, strlen(string)); } else { found++; sa.sin_addr.s_addr = inet_addr(gethost); } } sa.sin_family = AF_INET; sa.sin_port = htons((unsigned) IRCPORT); if (sa.sin_port == 0) { sp = getservbyname(getport, "tcp"); if (sp) sa.sin_port = sp->s_port; else { sprintf(string, "%s: bad port number\r\n", getport); write(source, string, strlen(string)); return; } } if ((dest = socket(AF_INET, SOCK_STREAM, 0)) < 0) { perror("telcli: socket"); exit(1); } connect(dest, (struct sockaddr *) &sa, sizeof(sa)); #ifdef FNDELAY fcntl(source,F_SETFL,fcntl(source,F_GETFL,0)|FNDELAY); fcntl(dest,F_SETFL,fcntl(dest,F_GETFL,0)|FNDELAY); #else fcntl(source,F_SETFL,O_NDELAY); fcntl(dest,F_SETFL,O_NDELAY);

#endif communicate(dest,source); close(dest); exit(0); } communicate(sfd,cfd) { char *chead, *ctail, *shead, *stail; int num, nfd, spos, cpos; extern int errno; fd_set rd, wr; chead = ctail = cbuf; cpos = 0; shead = stail = sbuf; spos = 0; while (1) { FD_ZERO(&rd); FD_ZERO(&wr); if (spos < sizeof(sbuf)-1) FD_SET(sfd, &rd); if (ctail > chead) FD_SET(sfd, &wr); if (cpos < sizeof(cbuf)-1) FD_SET(cfd, &rd); if (stail > shead) FD_SET(cfd, &wr); nfd = select(256, &rd, &wr, 0, 0); if (nfd <= 0) continue; if (FD_ISSET(sfd, &rd)) { num=read(sfd,stail,sizeof(sbuf)-spos); if ((num==-1) && (errno != EWOULDBLOCK)) if (num==0) return; if (num>0) { spos += num; stail += num; if (!--nfd) continue; } } if (FD_ISSET(cfd, &rd)) { num=read(cfd,ctail,sizeof(cbuf)-cpos); if ((num==-1) && (errno != EWOULDBLOCK)) if (num==0) return; if (num>0) { cpos += num; ctail += num; if (!--nfd) continue; } } if (FD_ISSET(sfd, &wr)) { num=write(sfd,chead,ctail-chead); if ((num==-1) && (errno != EWOULDBLOCK)) if (num>0) { chead += num; if (chead == ctail) { chead = ctail = cbuf; cpos = 0; } if (!--nfd) continue; } } if (FD_ISSET(cfd, &wr)) { num=write(cfd,shead,stail-shead); if ((num==-1) && (errno != EWOULDBLOCK))

return;

return;

return;

return;

if (num>0) { shead += num; if (shead == stail) { shead = stail = sbuf; spos = 0; } if (!--nfd) continue; } } } } --------------cut------------tambien os dejo otro Bouncer con acceso atraves de una pass, para que ningun listillo se aproveche de vuestro trabajo colocando un Bouncer y usandolo el. --------------cut------------/* Virtual Hostname/Machine IRC Bouncer *** Includes: -choose any irc server after connect! -virtual hostnames...duh! -password protected after connnect. *** Future Plans: To make it so it allows more than one connect. */ /* INSTRUCTIONS FOR USE: First, type export IRC_HOST=your.irc.host Next, Type ./vhost <port num> eg. ./vhost 9090 */ /* DEFINES */ #define password "darkk" #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <string.h> #include <sys/types.h> #include <sys/socket.h> #include <sys/time.h> #include <sys/wait.h> #include <netinet/in.h> #include <arpa/inet.h> #include <errno.h> #include <netdb.h> extern h_errno; /* SunOS 4.1.4 is really lame and doesn't define this */ #ifndef INADDR_NONE #define INADDR_NONE -1 #endif struct in_addr LocalHostAddr; /* m_strdup stolen from ircII epic */ /* changed to default malloc instead of ircII epic's new_malloc routine */ /* Hope it doesn't create any adverse affects */ char *m_strdup (const char *str) { char *ptr; char empty_string[] = "";

if (!str) str = empty_string; ptr = (char *)malloc(strlen(str) + 1); return strcpy(ptr, str); } int do_connect(char *hostname, u_short port) { int s = -1; struct hostent *he; struct sockaddr_in sin; struct sockaddr_in localaddr; s = socket(AF_INET, SOCK_STREAM, 0); if(s < 0) return -2; /* bind to the local address, this was a pain in the ass to understand */ memset(&localaddr, 0, sizeof(struct sockaddr_in)); localaddr.sin_family = AF_INET; localaddr.sin_addr = LocalHostAddr; localaddr.sin_port = 0; if (bind(s, (struct sockaddr *)&localaddr, sizeof(localaddr))) return close(s), -2; /* now connect from the address.. fun for the entire family. */ memset(&sin, 0, sizeof(struct sockaddr_in)); sin.sin_family = AF_INET; sin.sin_port = htons(port); sin.sin_addr.s_addr = inet_addr(hostname); if(sin.sin_addr.s_addr == INADDR_NONE) { he = gethostbyname(hostname); if(!he) return -1; memcpy(&sin.sin_addr, he->h_addr, he->h_length); } if(connect(s, (struct sockaddr *)&sin, sizeof(sin)) < 0) { close(s); return -2; } return s; } void server(int s) { int sock_c=-1; int maxfd = s+1; char buffer[1024]; char user[1024]; char nick[1024]; fd_set rset; u_short myport; char *cmd, *server, *port, *passwd; char myserver[1024];

memset(buffer, 0, 1023); if(read(s, buffer, 1024) <= 0) { close(s); return; } if(!strncmp(buffer, "USER", 4)) strcpy(user, buffer); else strcpy(nick, buffer); memset(buffer, 0, 1024); if(read(s, buffer, 1023) <= 0) { close(s); return; } if(!strncmp(buffer, "USER", 4)) strcpy(user, buffer); else strcpy(nick, buffer); sprintf(buffer, "NOTICE usr :****************************************\n"); sprintf(buffer, "NOTICE usr :* Welcome To Virtual IRC GateWay *\n"); sprintf(buffer, "NOTICE usr :****************************************\n"); sprintf(buffer, "NOTICE usr : Enter your password....\n"); sprintf(buffer, "NOTICE usr : e.g. /quote connect mypasswd irc.nwlink.com\n"); write(s, buffer, strlen(buffer)); while(1) { FD_ZERO(&rset); FD_SET(s, &rset); if(sock_c >= 0) FD_SET(sock_c, &rset); if(sock_c > s) maxfd = sock_c + 1; else maxfd = s + 1; select(maxfd, &rset, NULL, NULL, NULL); memset(buffer, 0, 1024); if(FD_ISSET(s, &rset)) { if(read(s, buffer, 1023) <= 0) { close(s); close(sock_c); return; } if(sock_c >= 0) { write(sock_c, buffer, strlen(buffer)); } else { cmd = NULL; server = NULL; port = NULL; passwd = NULL; cmd = strtok(buffer, " "); if(!cmd) continue;

if(strcmp(cmd, "connect")) continue; passwd = strtok(NULL, " \n\r"); if(!passwd) continue; if((strcmp(passwd, password) != 0)) { sprintf(buffer, "NOTICE usr :*** Password Invalid. UNAUTHORIZED ACCESS IS P ROHIBITED \n"); write(s, buffer, strlen(buffer)); continue; } server = strtok(NULL, " \n\r"); if(!server) continue; strcpy(myserver, server); port = strtok(NULL, " \n\r"); if(!port) port = "6667"; myport = atoi(port); sock_c = do_connect(myserver, myport); if(sock_c < 0) sock_c = -1; write(sock_c, user, strlen(user)); write(sock_c, nick, strlen(nick)); memset(buffer, 0, 1024); read(sock_c, buffer, 1023); if(strlen(buffer) > 0) { write(s, buffer, strlen(buffer)); } continue; } } if(sock_c >= 0) { if(FD_ISSET(sock_c, &rset)) { memset(buffer, 0, 1024); if(read(sock_c, buffer, 1023) <= 0) { close(s); close(sock_c); return; } write(s, buffer, strlen(buffer)); } } } } int main(int argc, char *argv[]) { int a_sock = 0; int s_sock = 0; char *LocalHostName = NULL; char *ptr = NULL;

char hostname[81]; struct hostent * hp; int dport; struct sockaddr_in sin; int sinlen; int xx; int mypid; if(argc >= 2) dport=atoi(argv[1]); else dport=9090; if ((ptr = getenv("IRC_HOST")) || (ptr = getenv("IRCHOST"))) LocalHostName = m_strdup(ptr); if ((gethostname(hostname, sizeof(hostname)))) if (!LocalHostName) exit(1); printf("Virtual host ircgate, *hop* Hold on..\n"); printf("Attempting to bind on port: %d\n",dport); if (LocalHostName) { printf("Attempting to bind on host: %s\n", LocalHostName); memset((void *)&LocalHostAddr, 0, sizeof(LocalHostAddr)); if ((hp = gethostbyname(LocalHostName))) memcpy((void *)&LocalHostAddr, hp->h_addr, sizeof(LocalHostAddr)); } else { if ((hp = gethostbyname(hostname))) memcpy((char *) &LocalHostAddr, hp->h_addr, sizeof(LocalHostAddr)); } s_sock = socket(AF_INET, SOCK_STREAM, 0); if(s_sock < 0) { perror("socket"); exit(0); } memset(&sin, 0, sizeof(struct sockaddr_in)); sin.sin_family = AF_INET; sin.sin_port = htons(dport); sin.sin_addr.s_addr = INADDR_ANY; if(bind(s_sock, (struct sockaddr *)&sin, sizeof(struct sockaddr_in)) < 0) { perror("bind"); exit(0); } if(listen(s_sock, 10) < 0) { perror("listen"); exit(0); } { xx = fork(); /* Fork the process */ if (xx == -1) { printf("FATAL ERROR: UNABLE TO FORK PROCESS!\n"); exit(1); } if (xx!=0) { printf("Launched into the background [pid: %d]\n\n",xx); setpgid(xx,xx); exit(0);

} setpgid(0,0); /* No more TTY i/o for us! */ freopen("/dev/null","r",stdin); freopen("/dev/null","w",stdout); freopen("/dev/null","w",stderr); while(1) { sinlen = sizeof(sin); close(a_sock); a_sock = accept(s_sock, (struct sockaddr *)&sin, &sinlen); if(a_sock < 0) { perror("accept"); continue; } #ifdef MULTIPLE_OCCURANCES switch(fork()) { case -1: continue; case 0: #endif server(a_sock); #ifdef MULTIPLE_OCCURANCES exit(0); } /* Might want to set the last param to WNOHANG if it hangs here... Careful, creates zombies if you do. */ while(waitpid(-1, NULL, NULL) > 0) ; #endif } } } --------------cut------------Para los usuarios Win y que no tengan una maquina Unix donde colocar estos programas deciros que existen distintos programas Win para hacer Bouncer, muchos de ellos los traen los scripts de IRC como el WANIRC del 7th sphere explicado por Qva$aR en su txt "como saltarse una k-line" en http://www.undersec.com o el famoso y conocido IRCap de GSi que incorpora un bouncer hecho por el (los que sepais algo de scripting podeis mirar y haceros uno a vuestro gusto). Existen mas programas de este tipo como el WinBouncer muy faciles de configurar y que podeis usar para cualquier cosa solo teneis que indicar los puertos y el host Muchos direis que como utilizo yo un Bouncer si no tengo ninguna shell y solo el PC de mi habitacion... pues para saltarse bans o jugar en el IRC podeis hacerlo con algun inconsciente amiguete que os deje usar su ip :) Si sois algo mas avispados o quereis hacer cosas mas interesantes en el hacking podeis colocarlo en ordenatas de vuestro instituto, en la academia donde estudiais, a ese pardillo que el otro dia a la noche estaba infectado con el netbus etc etc ... 5- IP-Spoofing Bueno llegamos a la parte mas dificil del texto seguro que la mayoria de vosotros habeis oido hablar de esta tecnica o teneis idea de en que consiste

pero no lo teneis muy claro. Veamos el IP-Spoofing es una tecnica bastante dificil y compleja que requiere bastantes conocimientos sobre todo del protocolo TCP-IP Explicandolo a la ligera podria decir que el IP-Spoofing consiste en engaar a una maquina (host A) haciendole creer que somos otra maquina (host B) que en realidad no somos acceso host B -------> host A sin pass Esta tecnica se basa en el procedimiento usado (mal usado) en algunos sistemas de permitir el acceso sin una comprobacion atraves de contrasea y utilizando la confianza en las direcciones IP El server A tiene depositada confianza en el server B (trust host), conoce la IP de este y no pide contrasea de entrada a su sistema desde esa maquina Supongo que ya ireis cogiendo la idea no??? Para realizar esta tecnica es necesario tener privilegios de Root desde la maquina que se realiza el ataque. Ademas hay que tener encuenta una cosa que os puede pasar y que es muy importante, cuando vosotros realizais el ataque modificais los paquetes de datos cambiando en estos vuestra direccion IP y usando la del Trust host (esto no se hace "a mano" lo realiza un software especifico para esta tarea, seguid leyendo) debido a esto las respuestas que la maquina objetivo mande a esa transmision TCP-IP no las recibireis vosotros sino el trust host pero no os preocupeis por esto porque seran ignoradas al no haber el realizado la conexion. El problema viene de que teneis que intuir las respuestas que manda y tb el tiempo para realizar el siguiente envio de datos esto dependera de la pericia de cada uno de vosotros :( Habia pensado incluir el codigo de un programa de IP-spoofing pero os lo dejo para vosotros porque la mayoria son mas grandes que todo este txt, de todas maneras en http://www.rootshell.org/ podeis encontrar cientos y para multitud de sistemas operativos, solo buscad por la palabra "spoof" XD Otro de los problemas con lo que os encontrareis es localizar el Trust host de la maquina que quereis atacar (si es que lo tiene!) y el momento de realizar el ataque porque si entre las dos maquinas estan realizando una comunicacion es imposible que vosotros os coleis en medio. Lo que debeis de hacer es cortar el trafico del trust host y asi poder realizar vosotros la conexion, esto se puede hacer de distintas maneras, procurad que no cante mucho, mirar cosas del protocolo TCP-IP,(TCP SYN flooding puede ser buena manera) Una vez que tengais controlado todo el proceso es decir tengais la maquina objetivo el trust host y os hallais asegurado que esta no reciba trafico TCP-IP Procedeis al ataque IP-Spoofing pero recordar que no recibireis respuestas por parte de la maquina objetivo. Bueno comentaros tambien la existencia de algun programa para Win 95/98 que utilizan su propio conjunto de instrucciones TCP (no el paquete de Win) realizan Ip-Spoofing uno de estos programas es el Aggressor Exploid, lo podeis encontrar en http://www.aggressor.net con este programa ademas de spoofear vuestra Ip tambien podreis realizar otros ataques :P pero sin tener relacion con lo que explique del Trust host que es la principal aplicacion del IP-Spoofing Existen otros programas que tambien spoofea la IP pero de dudosa efectividad y casi todos orientados al IRC "cambian" vuestra IP y hasta el nombre de vuestro host (similar al DNS-inject) estos programas son como un Bouncer pero sin la necesidad de usar una maquina puente con el server de IRC (dificil de realizar no?? al menos el cambio de IP desde Win) Con el DNS-inject conseguis que en vez de conectaros asi: *** LuKaS (~lukas@ctv21225137015.ctv.es) has joined #sexo

saldria esto otro *** LuKaS (~lukas@mi.polla.es.la.mas.grande) has joined #sexo mola??? :) algunos programas consiguen esto ultimo solo sin spoofear vuestra IP, otros hacen las dos cosas, hay muchas posibilidades, estos programas orientados al spoof en el IRC suelen venir en scripts asi que ya sabeis, si quereis provar si de verdad funcionan..... downdload RLz! ------------------------------------------------------------------------Todo lo explicado en este texto es con fines educativos, el autor no es responsable del mal uso de lo que aqui se cuenta. Este txt es de libre distribucion siempre que no se altere su contenido ni formato asi como el nombre de su autor Agradecimientos a M|Gel,Craig,aptc,y los que me dejo, por aguantarme :) Para cualquier duda, sugerencia, critica...... Buscame en el IRC-Hispano.org (www.irc-hispano.org) mi nick es Aule tb por mail a aule@mixmail.com ------------------------------------------------------------------------Open your eyes! Open your mind!! By Aule 1999

Potrebbero piacerti anche