Intrusiones en redes de area local por Man in the Middle

mono dsniffDsniff nos demuestra lo inseguras que son nuestras redes, sobretodo si nos empeñamos en enviar contraseñas en formato texto plano. Con este sniffer, nos daremos cuenta de los realmente importante que puede llegar a ser la utilizacion de la encriptacion en nuestras comunicaciones diarias …

Dsniff es una suite para redes de area local como el aircrack lo es en las redes wifi. Es muy potente y el autor advierte que no abusemos de este software. Esta suite incluye muchos programas, que ire explicando uno a uno:

Seguir leyendo

Instalar últimos drivers de ATI/NVIDIA fácilmente con Envy

Envy, es una de las soluciones que tenemos para instalar fácilmente nuestros drivers gráficos. Gracias a un estupendo trabajo de Alberto Milone podemos disfrutar de la instalación de nuestros drivers de manera gráfica, ya que el proyecto surge como un script, pero posteriormente adquirio una GUI sencilla, pero suficiente para lograr su objetivo.
Envy es una aplicación escrita en PyGTK la cual tienen la función de detectar, descargar e instalar el driver tu tarjeta de video.
Para instalarlo, simplemente vete a su página y bajate el último deb para tu versión de ubuntu, despues lo abrimos Aplicaciones \ Herramientas del sistema \ Envy y le damos a Instalar el driver de NVIDIA o ATI. Envy detecta tu tarjeta de gráfica y descarga los drivers propietarios directamente de la misma web de ATI o Nvidia según sea el caso.instala las dependencias para compilar el módulo, reescribe el archivo xorg.conf, reinicia las X y voilá ya tienes instalados tus drivers.
Ahora mismo las versiónes de Envy estan así:
Última versión de driver que esta instalando el envy:
  • NVIDIA: 169.09 , 96.43.01 y 71.86.01
  • ATI: 8.40.4, 8.01 y 8.28.8

Cuando querramos cambiar de versión de driver, el autor recomienda utilizar la opción del envy «Desinstalar driver». Pero si teneis un envy viejo (< 0.82) deberíais purgar el paquete. Lo mejor es que visiteis este FAQ que lo explica.

Fuente:

Poner Gmail como cliente de correo predeterminado en GNOME

Entiendo que la mayoría de los que leeis esto, usais Gmail normalmente… Para poner Gmail como cliente de correo predeterminado hay que recurrir a un script, hasta que sea incluido en alguna futura versión de gnome(ya existe la idea en ubuntu BrainStorm, además si mirais los comentarios un usuario hace referencia a esta extensión de firefox, que debería hacer lo mismo, de todas maneras, tener en cuenta que solo os funcionaría en firefox ). Con esta solución os funcionarían los «mailto:». Para ello:

Nos vamos a Sistema / Preferencias / Aplicaciones preferidas

gmail_correo

Debajo del lector de correo, seleccionamos Personalizar y en comando ponemos la ruta de un script que haremos posteriormente, el ejemplo es para mi pc, debeis poner la ruta del script, (%s representa el parametro que le pasara gnome a nuestro script):

/home/makiolo/scripts/open_mailto.sh %s

Lo siguiente es poner el script en se directorio ( en mi ejemplo /home/makiolo/scripts/). [Download]

Este es el contenido del script (modificado con la aportación de Spayder26 del gnome-open en vez de firefox):

#!/bin/sh
gnome-open "https://mail.google.com/mail?view=cm&tf=0&to=`echo $1 | sed 's/mailto://'`"

#Asegurate que copias la linea anterior entera

Recordar darle los permisos de ejecución, (o utilizar el nautilus):

  • chmod +x /home/makiolo/scripts/open_mailto.sh

Si quereis, lo podeis combinar con GMail Notify para que nos logee frecuentemente(Debeis añadir a vuestra sesión el comando gmail-notify para que arranque con vuestro gnome), y ya de paso nos mire el correo nuevo.

  • sudo apt-get install gmail-notify

Haz click en este falsoemail@email.es para probarlo.

Actualizar el Compiz Fusion que viene con Ubuntu

Actualizado: Al final he acabado quitando el repositorio, funciona bien, y muy bien por que te añade muchos plugins, pero a mi por lo menos me bajan las fps en algunos momentos críticos.

Si queremos probar las novedades que van pasando por nuestro querido proyecto compiz fusion es necesario ponernos el repositorio de compiz-fusion-git. La forma más fácil es añadir el repositorio de http://kwatrow.nl/repo/. Estoy suponiendo que tu distribución de linux viene con compiz (véase Ubuntu):

  • Escribimos en un terminal estas 2 lineas:
  • echo deb http://kwatrow.nl/repo Gutsy compiz-fusion-git | sudo tee -a /etc/apt/sources.list
  • echo deb-src http://kwatrow.nl/repo Gutsy compiz-fusion-git | sudo tee -a /etc/apt/sources.list
  • Nos bajamos la clave pública que nos autentifica en el repositorio: wget http://kwatrow.nl/repo/Quattro.gpg
  • Añadimos la clave : sudo apt-key add Quattro.gpg
  • Y borramos la clave : rm Quattro.gpg
  • Actualizamos los repositorios : sudo apt-get update
  • Deberian aparecernos estas 11 actualizaciones:
compiznuevo
  • Si te falta algún paquete añadelo(especialmente python-compizconfig) y asegurate que todos los paquetes que tengas relacionados con compiz, son de la versión del nuevo repositorio y no hay mezclas entre repositorios de ubuntu y de kwatrow.nl. No debería pasar, pero me dio un paquete roto con compiz-gnome que solucione facilmente.
  • Ahora solo nos queda cerrar el compiz: pulsa ALT+F2 y escrbimos metacity –replace (son 2 guiones)
  • Y lo volvemos abrir así: pulsamos ALT+F2 one more time y escribimos compiz –replace (son 2 guiones)
  • Nos vamos al Compiz Config Settings Manager y nos podemos tirar horas trasteando …
  • Un buen blog especificó del tema es : Compiz Fusion Revolution
  • Nota: si teneis problemas arrancando compiz, es posible que os ocurra que carge antes compiz que gnome, añadiros en sesiones un script que os carga un script con un sleep que será mayor o menor dependiendo de tu maquina. Además en apariencia poneos que no queréis efectos visuales, con esto además de solucionar el problema posiblemente gnome os carge más rápido. si teneis cualquier problema dejar un comentario y lo vamos mirando entre todos.

Actualizado : Si quereis emerald, os recomiendo, además de instalarlo ( sudo apt-get install emerald ) que os hagais este pequeño script, guardarlo y darles permiso de ejecución, y ponerlo que ejecute el inicio de la sesión:

#!/bin/sh
sleep 20
compiz --replace -c emerald

Ejecutar ASP .NET con MonoDevelop

Esta pequeño tutorial ha sido probado en ubuntu pero en otras distribuciones de linux no debería ser muy distinto.

Primero instalamos todos los paquetes relacionados con mono o monodevelop :

  • sudo apt-get install mono mono-gmcs mono-utils monodevelop monodoc mono-xsp monodoc-http monodoc-ipod-manual monodoc-njb-manual monodoc-nunit-manual monodoc-gtk2.0-manual monodoc-gecko2.0-manual monodoc-ipod-manual monodoc-njb-manual monodoc-nunit-manual monodoc-gecko2.0-manual mono-xsp2 monodevelop-java libnunit-doc monodevelop-nunit monodevelop-versioncontrol

Si os falta algún paquete, o teneis algún problema de dependencias, probar a poneros el repositorio de getdeb, que tiene versiones más actualizadas de mono y monodevelop:

  • echo deb http://ubuntu.org.ua/ getdeb/ | sudo tee -a /etc/apt/sources.list
  • Actualizamos la lista de repositorios : sudo apt-get update

Si quieres, instalate los ejemplos para ASP.NET 1.1 y 2.0:

  • sudo apt-get install asp.net-examples asp.net2-examples
  • El ejemplo de 2.0 tiene un bug tonto que se arregla : sudo cp /usr/share/asp.net2-demos/index.aspx /usr/share/asp.net2-demos/index2.aspx
  • Para ver el ejemplo nos vamos a:
    • nos vamos al directorio de trabajo que corresponde : cd /usr/share/asp.net-demos/
    • Ahora simplemente ponemos en consola xsp2
    • Nos monta un servidor donde podemos ver el ejemplo : http://127.0.0.1:8080/
    • El ejemplo de asp 1.1 es igual pero esta en cd /usr/share/asp.net-demos/y ejecutando xsp
    • Además del server de testing que montas sobre el actual directorio de trabajo en el puerto 8080, los paquetes mono-xsp y mono-xsp2 montan 2 demonios en el 8081 y el 8082 respectivamente. Yo los he dejado pero sabeis que podeis configurar los opciones por defecto de un demonio en /etc/default. En concreto en /etc/default/mono-xsp y /etc/default/mono-xsp2 respectivamente.

El ejemplo es poco educativo,así que vamos hacer un ejemplo para ir empezando:

  • Empezamos un proyecto en MonoDevelop:
monodevelop1
  • En Default.aspx escribimos entre las etiquetas body:
monodevelop2
  • En Default.aspx.cs detectamos el evento del boton:
monodevelop3
  • Ya esta ahora tenemos que construir el proyecto cada vez que modifiquemos algo. El ejecutar solo le damos la primera vez para montar el server xsp2 en http://localhost:8080/ y las siguientes veces el ciclo de desarrollo sera: 1º Realizar cambio, 2º Construir el proyecto y 3º Actualizar con F5 sobre la pestaña de firefox que corresponda :P
  • Por último, os explico alguna conceptos que pueden seros útil para ir empezando, tanto en visual studio como en monodevelop una solución es un conjunto de proyectos, mientras que un proyecto es un conjunto de paginas (en ASP.NET), por eso hay un botón para construir proyecto y otro para construir solución.
  • Una página tiene por un lado la vista(Default.aspx) y por otro lado la lógica de la pagina.
  • Los IDE suelen autogenerar parte de la lógica. Por ello la lógica a su vez se divide en dos.
  • Lógica para que el usuario añada a eventos concretos de la página(Default.aspx.cs), cuando empieza la carga, se pulsa un botón, empieza a escribir …,
  • La lógica autogenerada por el IDE (Default.designer.aspx.cs), que en el caso de MonoDevelop es editable.Estas dos páginas son la misma clase definida en 2 partes, que es una de las novedades de .NET 2.0, la inclusión de clases parciales. Por tanto las variables que añade automaticamente en Default.designer.aspx.cs tienen ambito visible desde Default.aspx.cs y nos permite hacer lo del ejemplo.
  • Nota: Si en la vista borrais un boton asp u otro objeto asp(borrando el html a pelo) que esta identificado por un id, y por tanto tiene una variable en Default.designer.aspx.cs, vereis que la variable no se borra. Parece que la versión de MonoDevelop 0.16 que uso solo añade lógica autogenerada pero nunca borra. La solución es simplemente borrar todas las variables que ha autodefinido y cuando construyas la solución o el proyecto se generaran las variables que falten.
  • Nota 2: Es imprescindible el uso de monodoc (además de google, no hace falta decirlo xD)
  • Hoy ha salido MonoDevelop 1.0, todavía no lo he probado, si algo de este tutorial ha cambiado (especialmente la nota anterior), editare el post en cuanto lo pruebe.

En definitiva, monodevelop para mí es un IDE que estoy empezando a tener en cuenta, yo estoy ahora mismo como programador PHP4(sin objetos)+MYSQL y no uso editores WYSIWYG para nada, utilizo eclipse+aptana si el pc en el que trabajo tiene bastante memoria y uso quanta en el curro que es un PIII justito. Cuando ya tienes experiencia con html+ css+ javascript + librerias ajax(jquery,mootols …) perfectamente puedes prescindir de este tipo de editores y tirar de F5 de firefox. No me convenze la POO de PHP5 y por eso veo mejor opción ASP.NET con C#, por la forma más correcta de tratar los objetos. Ante todo me gusta el software libre, por eso empeze con php, … pero aunque .NET heche atras por ser de M******** parece que se ha estandarizado, eso ha ayudado a la implementación que ha hecho la gente de Miguel Icaza. El problema es que pienso que en unos años ni M******** NO respetará su propio estandar con tal de marcar una diferencia de mercado. Hoy os digo que tengo intención es de aprender .NET profesionalmente asi que igual os digo mañana que no vale la pena por que todavía no se ha estabilizado como lenguaje.

SSH sin contraseña (usando certificados DSA)

ssh tunelPara autentificarnos por ssh hay 2 opciones:

  1. Por la contraseña clásica. Es el método síncrono tiene como inconveniente que hay que introducir la contraseña cada vez que intentamos autentificarlos.
  2. Mediante certificado RSA o DSA. Es el método asíncrono. Resumidamente consiste en generar una clave privada y otra pública, y distribuir la clave pública a los servidores que queremos conectar. Por supuesto la ventaja es que al no pedir contraseña podemos automatizar scripts junto con cron. Por ejemplo realizar una sincronización con unison entre 2 carpetas remotas remotas cada 5 minutos.

Puesto que la primera opción no tiene mucho misterio, voy a explicar como generar la clave y distribuirla, para realizar estos 2 tareas vamos hacer 2 alias, por que es normal que usemos frecuentemente estos comandos algo enrevesados nos ayudamos de los alias:

  • Abrimos el .bashrc : sudo gedit .bashrc y al final del fichero añadimos estos 2 líneas y guarda :
    alias generarClaveSSH='ssh-keygen -t dsa'
    
    alias distribuirClaveSSH='ssh-copy-id -i .ssh/id_dsa.pub'
  • Ahora vamos a generar las claves mediante DSA que corresponde al SSH2, teniendo muchos problemas menos de seguridad que RSA. Para ellos vamos a usar los alias, pero antes abre otra consola para que carge los alias : Escribimos generarClaveSSH . Le damos al enter a todas las preguntas, no escribimos nada, de esta manera no protegemos el certificado SIN un passphrase. Si hubieramos puesto un passphrase cada vez que conectasemos tendríamos que indicar un passphrase nuestro, asi que en principio estaríamos con el mismo problema que antes. Esto se usa para centralizar todas las claves en 1. Si le interesa a alguien lo puedo explicar un poco más, pero veo poco útil especificar un passphrase para el uso que le estoy dando.
  • Ahora simplemente falta distribuir la clave al ordenador remoto para ello necesitamos la IP y el USUARIO, escribimos: distribuirClaveSSH USUARIO@IP. En este momento os preguntara la contraseña de la cuenta USUARIO, la introducimos y a partir de ahora el servidor SSH montado en IP te aceptara directamente por que tiene tu clave pública.
  • Para probarlo como sabreis ssh USUARIO@IP

Nada más, espero que le sirve a alguien, dentro de unos días ampliare este post explicando el unison.

Editado: Aqui esta el post de unison : https://blogricardo.wordpress.com/2008/08/01/unison-sincronizacion-de-carpetas-en-local-o-remoto/