miércoles, 30 de septiembre de 2009

Proyecto Euler

Quieres aprender un nuevo lenguaje de programación? Quieres mejorar tus habilidades en un lenguaje que ya conoces? El Proyecto Euler te interesa. A día de hoy existen 256 ejercicios disponibles en la página, la mayoría de temática matemática. El enunciado se encuentra en inglés pero están muy claros la mayoría, te dan ejemplos detallados y al final una pregunta que debes responder para validar el ejercicio. Una vez resuelto el ejercicio se te abren dos posibilidades:
  • Consultar la documentación sobre la teoría específica de aquel ejercicio concreto ( por ejemplo: cómo calcular un palindromo ) y con una posible solución.
  • Un foro, dónde la gente que ha resuelto el ejercicio puede postear su código. Muy interesante para ver como la demás gente ha resuelto el mismo problema. Muy instructivo.
El lenguaje de programación lo eliges tu. Los ejercicios estan pensados para que haya una continuidad; el primer ejercicio va a ayudarte a entender ( o plantear ) el segundo ejercicio, etc... Otra cosa importante es que ( con una solución mas o menos optimizada ), todos los enunciados pueden ser solucionados por el ordenador en menos de un minuto. Ejemplos? Pues entre los mas simples hay:
  • Buscar el número Primo 1001
  • Suma de factoriales. Sumatorio(100!)
  • Buscar el palíndromo más grande que sea resultado de dos números de 3 cifras...
  • Estos son los mas simles...los ejercicios se complican bastante.
Si te gusta la programación y las matemáticas, ésta es tu pagina.

sábado, 26 de septiembre de 2009

Add-On's Firefox

Hoy toca hablar de los complementos de Firefox, y como hay muchos muchísimos, hablaremos mas concretamente de los complementos que yo uso habitualmente. Empezemos.

FireGPG: Nos permite gestionar nuestras cuentas de GnuPG y relizar tareas como: adminisitrar claves, añadir claves públicas de manera muy facil, cifrar/descifrar correos o ficheros, firmar correos, etc... Normalmente se integra con gmail para hacer que su uso sea aún mas facil, si cabe.
Ubiquity: Adquisición reciente. Muy bueno para la navegación 'rapida' y el ahorro de clics. Pulsando una combinación de teclas tenermos una miniconsola donde podemos escribir:
  • "go telefonica son unos tacaños" y esto significa: "en Google busca Telefonica son unos tacaños"
  • "map barcelona" y nos sacara la localización de barcelona
  • "get-last-mail" y nos dirá cual es el último email que hemos recibido en nuestra cuenta de GMail
  • "wiki Trafalgar" y nos abrirá la pagina correspondiente de Wikipedia
  • entre muchos otros comandos ( 79 default )
SpeedDial: Bueno, el típico. Pulsas Control+T para tener una pestaña nueva y te encuentras con una tabla con tus paginas preferidas de acceso habitual. Muy útil.
Delicious: Guarda tus Marcadores ( aka Favoritos en IE ) en la nube! Ademas puedes compartir con tus amigos los favoritos y enviarles los links que creas útiles. Muy recomendable. También es un fichaje reciente.
GMail Notifier: para tener controlada siempre tu bandeja de entrada. Muy util si recibes gran cantidad de correo, así ves cuando te van llegando.

Y tú? Que complementos del Firefox usas normlamente?

SSLStrip+Ettercap

Conseguir passwords en una red local con, o sin cifrado. Ea!

Distribución candidata: BackTrack 4 Pre Release grabada en un DVD o virtualizada con su herramienta favorita ( VMWare, VirtualBox, Qemu... ) y ejecutada como LiveCD. Evidentemente si lo virtualizamos necesitamos que la tarjeta de red esté en Bridged ( Puenteada ) con nuestra tarjeta de red, léase que debe tener una dirección IP diferente a maquina anfitrión y acceso a la red local. Enlace

(Nota: Si esto les ha sonado a chino, busquen manuales por este orden IntroducciónInformática>CómoGrabarUnCd>CómoGrabarUnDvd>que es un LiveCD>Internet, el gran desconocido>Hacking ético>Consola, mas que una pantalla negra con letras blancas>y finalmente vengan aqui a completar el manual. Mas o menos estos son los pasos que he seguido yo para conseguir los passwords de mi red =)

Herramientas que vamos a utilizar?

  • Ettercap: Para realizar el ataque MITM ( Man in The Middle ) sobre uno o varios elementos de la red.
  • SSLStrip: Para poder capturar la mayoría de datos que naveguen ( supuestamente ) de forma segura.
  • Macchanger: como simple precaución, cambiaremos la MAC de nuestra maquina virtual.
Bueno, la versión de Ettercap que viene con BackTrack ya nos servirá. Descargaremos la última versión de SSLStrip de la pagina web oficial ( creador Moxxie Marlinspike ) actualmente v0.6
De mientras iremos instalando las dependencias del programita.
  • sudo aptitude install python2.4 -y
  • sudo aptitude install python-twisted-web -y
Ejecutamos el comando 'macchanger -r' para establecer una MAC aleatoria y así proteger un poquito nuestra identidad. Vale, al lío.
  • Ejecutamos Ettercap-GTK por el menú o a través de la consola con un 'sudo nohup ettercap -G &'
  • Pulsamos Mayus+U ( o Sniff>Unified Sniffing ) y seleccionamos nuestra interface de red ( normalmente eth0... como podemos saber que interface es? con un 'ifconfig' en la consola. La interface que tenga una IP será la que estemos usando en la red )
  • Pulsamos Control+S ( o Hosts>Scan for Hosts ) y a continuación la tecla H ( o Hosts>Hosts list ).
Vale, hasta aqui qué tenemos? Una lista de los hosts que se encuentran disponibles en la red ( a excepción de nosotros mismos, claro ). Vale, y ahora qué? Pues podemos hacer un ataque MIMT a toda la red o podemos seleccionar un host de la lista y después en "Add to Target 1" y a continuación seleccionar el router ( ya que los datos cifrados viajaran entre el ordenador seleccionado y el router ) que presumiblemente es 192.168.1.1 y pulsar "Add to Target 2". El orden de Target1 o Target2 no es importante. Si no tocamos nada de Target1 o Target2, TODO el trafico de la red pasara por nuestro ordenador. Ventajas: puedes pillar mas contraseñas o información "útil". Inconvenientes, es mas facil de detectar para alguien que vigile y si hay muchos ordenadores - ergo hay mucho tráfico en la red - la velocidad de la red se verá afectada reduciendose drásticamente. Anyway! Lo mas facil es no tocar nada y seguir adelante:
  • Vamos a Mitm>Arp Poisoning, marcamos la primera casilla de Sniff remote conections y Aceptar. Dejemos un momento Ettercap aparcado que mas tarde lo usaremos.
  • Nos hemos descargado la última versión de SSLStrip, verdad? Entonces con la consola nos situamos en el mismo directorio donde esté el fichero y hacemos lo siguiente:
  • 'tar zxvf sslstrip-0.6.tar.gz' para descomprimir. Después hacemos un 'cd sslstrip-0.6' para situarnos en el directorio.
  • Ejecutamos: 'echo "1" > /proc/sys/net/ipv4/ip_forward' para decir al PC que redireccione los paquetes.
  • Y creamos una regla en iptables: 'iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port 10000' *nota: --to-port puede ser el puerto que os apetezca, a mi me gusta el 10.000
  • Activamos nuestro encantador programa SSLStrip con un: 'python sslstrip.py -l 10000'
  • Y como paso final vamos a Ettercap y pulsamos Control+W ( o Start>Start Sniffing )
  • Voilà! Ahora todo el trafico de la red pasa por nuestro ordenador y el programita SSLStrip se encarga de filtrar la información interesante. SSLStip va a escupir bastante información, pero los passwords se ven mejor en la parte inferior de Ettercap.
  • PRUEBA: Con otro PC de la red accede a www.google.com - o sucedáneo - y autentificate. El nombre de usuario&password deberían aparecer en Ettercap. Igual no puedes entrar dentro de la cuenta de correo porque google.com se da cuenta de que algo pasa, pero demasiado tarde ya que nosotros ya hemos capturado el user&password.
Conclusión. Las redes no son seguras ( já! ¿y para esta conclusión me he chupado todo este coñazo de HOW-TO? ). Podemos sacar información sensible de ellas sin dificultad. Esta información seguro que esta amparada por alguna ley, con lo que convierte nuestros actos de extracción de información en algo algo ilegal.
Uso del manual: entender que si tu eres capaz de capturar passwords, los demás también pueden ( desconfía de los cybers, puntos de acceso wifi, etc.... ) y el ejercicio ha sido por curiosidad académica, una demostración practica de que se puede hacer muy fácil.
Ala yo ya lo he dichooo, ahora a jugar! Que la cara de pillo que se te ha puesto no es por que si...

Mi primera vez

Aquí estamos. A ver cuanto dura la broma esta vez =)
Mis motivos para publicar un blog? Fácil respuesta: me gusta la informática, consumo mucha información cada día pero aporto poco a la comunidad. En este blog pretendo ir publicando todas aquellas cosas que encuentre interesante y que he encontrado en la web. Algún que otro manualillo y todo a disposición de quien quiera consumir la información. Mi intención no es llegar a un público amplio, sino esto va a ser mas bien un diario personal de mi batallita diaria. A ver cuando dura la broma esta vez.