Fuser es una herramienta con la que me tope al no poder usar una webcam con una aplicacion por el error “the device is not connected or busy” esta utilidad te permite justamente ver que procesos estan accediendo a un socket, o archivo. Y si queres los podes matar agregandole -k.

Por ejemplo si quiero saber quien esta usando el recurso “juan.pdf”

fuser ./juan.pdf
./juan.pdf: 5542

El resultado va a ser (en el caso que este siendo utilizado por alguna aplicacion) el nombre del recurso seguido por el numero de PID, 5542 en el ejemplo. Si queremos saber a que pertenece ese PID podemos valernos del comando ps.

ps -e | grep 5542

En mi caso esto me retorna

5542 ?        00:00:01 evince

Para mas info hace un man fuser

Graficador matemático K3DSurf

Posted: 11th February 2010 by Nicolas Ardison in Analisis Matematico

Buscando un graficador 3d para la facu encontre k3dsurf el cual cumple con mis espectativas por hacer lo que quiero que haga, y ser facil de usar.

Tiene gran cantidad de funciones como seno, coseno, (cos()) y permite escribir las ecuaciones de una forma sencilla del estilo x+y^z, tanto en forma carteciana como parametrica.

k3dsurf

La página del proyecto es http://k3dsurf.sourceforge.net/ y tambien esta disponible para Mac y W#nd*w$.

Navegando encontre un post sobre como leer conversaciones de msn de otra persona en una LAN haciendo un ataque MitM (Man in the Middle), por lo que me puse a leer un poco mas sobre el tema, en los ataques MitM el objetivo del atacante es interceptar las comunicaciones de la victima, esto se puede hacer de varias formas, una de ellas es el ARP spoofing (envenenamiento ARP).

Escenario del ataque

La siguiente imagen grafica como seria el ataque, “Attacker” es como su nombre lo indica el atacante, que intercepta las comunicaciones entre Bob y Alice que son las victimas (Como su nombre lo indica (?) ). Una de las victimas podria ser un gateway, cosa de ver el trafico que entra y sale a internet, y ver donde navega Bob, y que escribe en msn, cuales son sus contraseñas (Toda la informacion que viaje en forma plana puede ser facilmente interpretada por un software especializado, ahora si esta encriptada como una comunicacion ssh se complica la cosa)arp-spoofing

Que es ARP, como funciona, que es su tabla

ARP es el protocolo encargado de traducir las direcciones fisicas (MAC address) a direcciones logicas, para esto el concentrador de red generalmente tiene una tabla con las direcciones mac y las direcciones ip de los hosts conectados.

Este es el resultado del comando arp -a ejecutado en mi router, (Un Linksys WRT54GL con Obelisco Linux basado en OpenWRT) que nos muestra la tabla ARP antes y despues del ataque.

root@router:~# arp -a
IP address       HW type     Flags       HW address            Mask     Device
10.4.19.148      0x1         0x2         00:16:E3:20:FB:C2     *        br0
10.4.19.151      0x1         0x2         00:11:2F:E6:D4:34     *        br0
root@router:~# arp -a
IP address       HW type     Flags       HW address            Mask     Device
10.4.19.148      0x1         0x2         00:16:E3:20:FB:C2     *        br0
10.4.19.151      0x1         0x2         00:16:E3:20:FB:C2     *        br0

Notece que despues del ataque se duplico mi MAC address en la tabla del router, ahora el router piensa que yo soy 10.4.19.151.

Realizando el ataque + usando ettercap

El software para realizar el ataque es ettercap, para instalarlo en debian y similares un apt-get install ettercap, si queres el fuente, la pagina del proyecto es http://ettercap.sourceforge.net.

nicolas-ard@laptop:~#  ettercap --iface wlan0 -T -M arp:remote /10.4.19.129/ /10.4.19.151/

Explicación de los parametros del comando

–iface [Interface]  : Permite seleccionar la placa de red en la que vamos a trabajar.

Agrego solo este parametro, ya que el resto de los comandos estan explicados en el post de donde me base para hacer esta ampliacion asi que no hace falta que lo escriba de nuevo.

Buscando una solucion al problema

Esta tal vez sea la parte mas provechosa de este post, primero es necesario saber que existe software que puede prevenir esto (NIPS = network intrusion prevention system), y software que informa alertas de cambio en la tabla ARP (NIDSnetwork intrusion detection system ), como arpalert. Tambien hay software mas completo que hace las dos cosas como Snort (cuando tenga mas tiempo probare), desde ya segun lei, los switchs de Cisco tienen formas de solventar esto.

Una solucion que no probe, es cargarle al router otra vercion de OpenWRT modificada que se llama PacketProtector.

Solucion cacera

Es setear de manera estatica hosts a la tabla arp, es simple y rapida, y se podria llegar a automatizar para que el dhcp se lance un script que agregue los datos a la tabla. El comando es simple y es el siguiente:

root@router:~# arp -s [ip_address] [mac_address]

Tras implementar esta solucion, el ataque no tuvo exito nuevamente, para eliminar un valor de la tabla arp usamos el siguien comando,

root@router:~# arp -d [ip_address]

Recuerdo que para ver como se usan todos los comandos de arp (en gnu/linux), solo basta hacer un man arp.

Nota: Con esto evitamos que el ataquente cambie a su gusto la tabla ARP del Router pero no la de la maquina victima, para eso tendremos que hacer lo mismo con la tabla arp de la maquina victima.

La otra vez encontre un post sobre como leer conversaciones de msn de otra persona en una LAN haciendo un ataque MitM (Man in the Middle), por lo que me puse a leer un poco mas sobre el tema, en los ataques MitM el objetivo del atacan

int to byte[] en Java

Posted: 23rd September 2009 by Nicolas Ardison in Java, Post recordatorio
Tags: , ,

La otra vez tenia la necesidad en Java de obtener los bytes que conforman un entero con signo (Integer) de 32 bits, para meterlos en un vector y enviarlos en un flujo de datos. Una solucion a esto, fue usar operadores binarios de corrimiento de bits.

int a = 345936243;
byte[] b=new byte[4];
b[0] = (byte) (>>24);
b[1] = (byte) ((<<8)>>24);
b[2] = (byte) ((<<16)>>24);
b[3] = (byte) ((<<24)>>24);

Si se tratara de un numero de 16 bits con signo solo se agarran los dos ultimos bytes.

int a = 135132;
byte[] b = new byte [2];
b[0] = (byte) ((<<16)>>24);
b[1] = (byte) ((<<24)>>24);

Post recordatorio de VirtualBox

Posted: 1st August 2009 by Nicolas Ardison in Post recordatorio
Tags:

virtualbox-logo Siempre que instalo VirtualBox, siempre tengo problemas con el modulo vboxdrv y toy como un dolobu buscando como solucionarlo y termino en cualquiera que me saca de tema, asi que aca tengo los pasos para instalar facilmente vbox con aptitude.

apt-get purge virtualbox-ose

Esto para eliminar cosas anteriores que instale y no andubo.

apt-get install virtualbox-ose-modules-2.6.26-2-686 (See note)

Instala los modulos para el kernel que estamos usando, luego sera necesario cargarlos, (Maldito modulo -,-), claro esta 2.6.26-2-686 varia dependiendo de la vercion de tu kernel.

apt-get install virtualbox-ose.

modprobe vboxdrv

Estos ultimos comandos instalan vbox, y cargan el modulo.

Tambien tenes que agregar tu usuario regular a vboxusers, para eso editamos el archivo /etc/group y agregamos la siguiente linea

vboxusers:x:117:nicolas-ard

nicolas-ard es mi usuario regular de todos los dias, con el que uso vbox.

Temporalmente offline

Posted: 18th July 2009 by Nicolas Ardison in Uncategorized

Bueno, por problemas con el antiguo servidor que estaba contratando (argentinareseller.com) no lo recomiendo, para no ponerce a criticar, digamos solo eso.

Este nuevo servicio de host lo ofrece Mandrake un flaco de buenosaireslibre.org.