Cuando uno habla de hacking o hacks, la mayoría de la gente lo asocia con el típico nerd que vive con su mama y que desde el sótano de su casa irrumpe en otras computadoras. En este articulo voy a hablar un poco de las herramientas disponibles para hacer precisamente eso, pero por motivos didácticos, así que no soy responsable de sus acciones. La mayoría de ustedes han escuchado de nmap y nessus pero que hay de las otras herramientas? echemosle un vistazo y juguemos un poco con la red.

La preferida por muchos es tcpdump, es una herramienta que simplemente nos permite escuchar todo el trafico de la red y graba todos estos paquetes para que luego los podamos analizar. Si tienes mas de una NIC, puedes especificar por cual quieres escuchar pasándole el parámetro -i interfaz. Una cosa que me gusta es que tcpdump pone tu NIC en modo promiscuo (o por lo menos intenta hacerlo) de forma predeterminada, de esta forma puede escuchar todo el trafico de ese segmento de la red. Para deshabilitar el modo promiscuo y limitar el trafico solo a el que le compete a tu NIC puedes usar el parámetro -p. Hay muchos otros parámetros que puedes usar, recuerda ejecutar man tcpdump para mas información.

Aquí les dejo un video que muestra como saber que sitios web estan visitanto desde nuestra red.


Ahora bien, vamos a cuidar nuestras espaldas y supongamos que queremos saber que ordenadores están en tu segmento de red pero queremos evitar enviar paquetes a la red preguntando por estos ordenadores para que no nos delate (recuerda, este tipo de actividad le puede parecer sospechoso al administrador). La herramienta indicada para esta tarea es p0f, esta usa técnicas pasivas para tratar de adivinar que sistemas existen en tu segmento de red y al igual que tcpdump permite especificar la interfaz a usar y grabar trafico guardándolo en un archivo estilo tpcdump.

Nuestras dos herramientas se empiezan a diferenciar a la hora de definir de forma predeterminada el estado de promiscuidad de nuestra NIC, p0f requiere que especifiques que quieres que la NIC este en modo promiscuo y solo escucha cuando un ordenador en nuestra red abre nuevas conexiones. Aquí una lista de parámetros útiles para p0f.

  1. -i Especifica la NIC por la que va a escuchar (p0f -i eth0)
  2. -w Guarda la salida en formato tcpdump (p0f -i eth0 -w laboratorio.dump)
  3. -o Al igual que -w guarda la salida de este comando pero en un archivo de texto sin formato tcpdump
  4. -O Proporciona una salida mas descriptiva. Tambien llamado modo ACK
  5. -p Indica que quieres que ponga la NIC en modo promiscuo (p0f -i eth0 -p)
  6. -s Analiza un archivo que previamente capturaste en formato tcpdump

El problema de todo esto hasta ahora es que es muy probable que el resto de las maquinas esten bajo una NAT y no podamos verlas como tal, solo veremos el router. Uno puede usar el parámetro -M que le indica a p0f que use un algoritmo de detección de enmascaramiento e intenta identificar estas maquinas individualmente.

Supongamos que ya sabemos cuales son los otros ordenadores que existen en nuestra red, ahora lo interesante es saber que tipo de trafico tienen, sera FTP? o tal vez HTTP?, POP?, IMAP? o cualquier otro que sea de nuestro interés. Lo segundo que en mi caso me llama la atención es ver desde donde viene este trafico, con quien se comunican estos otros ordenadores? para responder todo esto podemos usar nuestra tercera herramienta, dsniff.

Esta utilidad al igual que las anteriores nos permite especificar que interfaz queremos usar e incluso podemos usar el parámetro -p para que use archivos que han sido grabados previamente. Puedes habilitar la detección automática de protocolos usando el parámetro -m lo que te va dar detalles crudos de que hacen tus vecinos de red.

La salida de este comando luce algo asi:

~# dsniff -m
dsniff: listening on eth0
-----------------
02/01/11 09:50:19 tcp 10.153.212.26.46004 -> trillian.gtlib.gatech.edu.21 (ftp)
USER anonymous
PASS mailto:axel-devel@lists.alioth.debian.org

-----------------
02/01/11 09:51:50 tcp 10.153.212.26.48257 -> linux.nssl.noaa.gov.21 (ftp)
USER anonymous
PASS mailto:axel-devel@lists.alioth.debian.org

-----------------
02/01/11 09:53:06 tcp 10.153.212.26.39551 -> chernabog.cc.vt.edu.21 (ftp)
USER anonymous
PASS chrome@example.com

Ahora que sabemos quienes están a nuestro alcance, que hacen y con quien, podemos revisar la seguridad de los servicios que prestan, el mas común es el servicio web.

Una herramienta buena para revisar como esta la seguridad de nuestro servidor web es nitko. Puedes seleccionar el hostname con la opción -h incluso puedes pasarle una lista de host o IPs en un archivo de texto. nitko se enfoca en el puerto 80 de forma predeterminada pero puedes alterar esto usando el parámetro -p de hecho tiene un montón de parámetros que puedes usar para pruebas de seguridad especificas... mas de las que quisiera mencionar aquí.

No quería terminar este articulo sin antes mencionar chkrootkit, esta utilidad nos permite analizar sistemas y trata de terminar si han sido manipulados, para ver una lista de las pruebas disponibles puedes usar el parámetro -l. Útil para verificar si el sistema ha sido infectado o si tiene rootkits.

Este articulo es para fines didácticos, para que 'juegues' en tu propia red y no para que dañes sistemas ajenos ni adquieras a información que no te pertenece.

A todos nos ha pasado, estamos trabajando, por error le damos en el teclado a la flecha de arriba y pasa lo peor:

rm -f /home/m1n1m3/descargas/descargdor.sh

Cualquier entra en pánico al darnos cuenta que no teníamos respaldo de este script, pero en estos momentos es cuando mas calma se debe de tener. Analicemos la situación, aun hay procesos usando este archivo, en mi caso aun sigo descargando y compartiendo archivos vía torrents gracias a este script que acabo de eliminar. Lo primero es encontrar el PID para lo cual podemos ejecutar ps y hacer un grep por el nombre del archivo, el resultado tendrá en la primera columna el PID como lo podemos ver aquí:

ps -p | grep -i descargador.sh
30560 pts/3    Ss+    0:00 /bin/bash /home/m1n1m3/descargas/descargdor.sh

El sistema de ficheros /proc mantiene vínculos a los archivos abiertos por procesos dentro de el sub-directorio fd/ (File Descriptor) que a su vez esa anidado dentro de una carpeta con el nombre del PID del proceso y como acabamos de comprobar nuestro script aun se esta ejecutando.

Teniendo en cuenta el PID que obtuvimos anteriormente y ya que sabemos que la estructura de directorios es /proc/<pid>/fd/ podemos determinar que el archivo que acabamos de eliminar esta dentro de /proc/30560/fd/. Para determinar cual de todos es podemos hacer un ls -la y hacerle un grep por el nombre del archivo a la salida del ls -la. Todo esto se debería de ver así:

ls -la /proc/30562/fd/* | grep descargador.sh
/proc/30560/fd/51 -> /home/m1n1m3/descargas/descargador.sh (deleted)

Para recuperar el archivo eliminado solo debemos copiar el archivo dentro de fd/ a donde queramos, en mi caso, lo quiero restaurar, así que ejecutare:

cp /proc/30560/fd/51 /home/m1n1m3/descargas/descargador.sh

Listo, archivo restaurado.

Nota: Esto funciona también en Android

Sorry, the english section of my blog is under maintenance, I will start bringing content back up shortly, If you want to check my progress, here is the list of documents already translated:




In the mean time feel free to ping me via Twitter.

Hoy en día el cuello de botella a nivel de comunicación son los discos duros. con largos tiempos de búsqueda, escritura y lectura son excesivamente lentos si lo comparamos con las velocidades de RAM. Hace unos años era un lujo montar discos virtuales en RAM y se usaban temporalmente y para cosas puntuales como cuando en gentoo se hacia un emerge -e world y montaba /var/tmp/portage en RAM.

Para usuarios que el principal uso de su computadora es navegar en Internet bien sea por trabajo (nagios por ejemplo), escribir artículos o simplemente trolear este tip les puede ser útil si poseen suficiente RAM.

En Fedora podemos mover el cache de Google Chrome y de Firefox a RAM creando un ramdisk y montándolo, luego configuramos los exploradores para que usen estos directorios. Lo primero es editar el archivo /boot/grub/grub.conf y agrega ramdisk_size=512000 justo antes de quiet splash en la linea de kernel que este usando.

 title Fedora ramdisk (2.6.37.i686)
 root (hd1,0)
 kernel /boot/vmlinuz-2.6.37.i686 ro root=UUID=f91d2720-7838-43d3-a3a4-5c993533d0 rd_NO_LUKS rd_NO_LVM rd_NO_MD rd_NO_DM LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 KEYBOARDTYPE=pc KEYTABLE=us rhgb ramdisk_size=512000 quiet
initrd /boot/initramfs-2.6.37.img``

Luego edita tu /etc/rc.local y agrega estas lineas para formatear el ramdisk, montarlo, crear los directorios necesarios para FireFox y Chrome y darle la permisologia necesaria.

# RAM disck para cache de browsers
mke2fs -m 0 /dev/ram0
mount /dev/ram0 /tmp/ram/
mkdir -p /tmp/ram/firefox
mkdir -p /tmp/ram/chrome
chmod 777 /tmp/ram/ -R

Estos comandos me funcionan con Fedora (estoy seguro que en cualquier otra distro funcionaria). Para hacer que FireFox guarde su cache allí debes agregar o modificar su conflagración específicamente la llave browser.cache.disk.parent_directory con el valor /tmp/ram/firefox, Para Google Chrome es un poco mas fácil, simplemente pasale el parámetro –disk-cache-dir=”/tmp/ram/” al arranque.

[gallery link="file"]

Si aun no tienes root de tu teléfono, estas desperdiciando gran parte del potencial de tu dispositivo móvil hoy en día existen muchos mecanismos para lograrlo y el riesgo de ocasionar algún daño permanente se ha disminuido al mínimo.

Asumiendo que ya tienen CyanogenMod en su Android, los pasos para usar tu teléfono móvil como un modem y conectarte a internet son los siguientes:

  1. Click en 'Settings'.
  2. Click en 'Wireless & networks'.
  3. Click en 'Tethering & portable hotspots'.
  4. Selecciona de acuerdo a tus necesidades Wifi o USB.

Cuatro pasos sencillos para usar tu celular con Android como un modem

No deberías de incurrir en cargos adicionales siempre y cuando no sobrepases la cuota mensual de data (en caso de que tengas un limite). Personalmente recomiendo no pasar de 5GB al mes, muchas operadoras ofrecen 'Unlimited Data' pero en realidad tienen un soft-cap de 5GB y cualquier cosa por encima le hacen throtle o investigan que tipo de trafico es.

Una cosa que nunca me gusto de Android y de hecho fue una de las cosas que mas me costo acostumbrarme fue la resolución de la pantalla, los iconos y letras inmensas, me parecía un desperdicio de pantalla el no poder cambiarle la densidad al LCD, en especial cuando tienes 11 centímetros (4.3 pulgadas). Luego de rootear el teléfono me puse a buscar la forma de alterar esto y conseguí una app que se llama LCDDensity for Root.

El programa funciona de maravilla, excepto que en el nightly build que estoy usando de CyanogenMod la barra del ADW.Launcher se muestra descontinua y desalineada si se asigna el valor de 190 o por debajo de este. Conseguí un script que usando el terminal de android nos permite asignar un valor arbitrario así que me propuse buscar cual era el valor entre 190 y 200 en el que la barra no se distorsionaba y luego de un par de intentos di con el numero 192. Este es el script:

#!/system/bin/sh
#Version 0.1
#Created by lithid

mount -o rw,remount /system
cd /system
sed "s/ro.sf.lcd_density = .*/ro.sf.lcd_density = $1/g" build.prop > tmp

mv tmp build.prop
echo -n "Do you want to reboot now? (y or n) > "
read list
if [ "$list" = "n" ] || [ "$list" = "N" ]
  then echo "No Eh? Must not wanna see your changes."
  mount -o ro,remount /system
  exit 1
elif [ "$list" = "y" ] || [ "$list" = "Y" ]; then echo "Rebooting Device"
  sleep 1 reboot
else
  echo "That is not a yes or a no"
  echo "Leaving"
  mount -o ro,remount /system
  exit 1
fi
exit

Este script fue escrito por @lithid y publicado en los foros de CyanogenMod.

Tal como lo dice el titulo, sin preámbulos. Alguien me podría donar esa arduino? tengo tiempo buscando un juguete y creo que ese es el apropiado. Quien quita que pueda poner a correr orvtech.com y linuxevolution.org en un miniclusters de arduinos.

[caption id="attachment_167" align="aligncenter" width="473" caption="Make esta vendiendo este combo por un monto muy barato"]La Arduino One y un libro instructivo[/caption]

Links:

UPDATE: Debido a mi ultimo inconveniente con paypal, no puedo recibir donaciones monetarias por esa vía. Cualquier ayuda, colaboración es bienvenida. Puedes colaborar haciendo click en mis patrocinantes o donar el monto que quieras a travez de google checkout.

$  

Este fin de semana me toco viajar a Venezuela por unos 4 días, aproveche y me puse en contacto con los muchachos del LUG para ver si nos reunión y así fue. Ellos (gracias apolstols y tatica y a wattica por carretearme desde un polo de la ciudad a otro) coordinaron una reunión algo rápida y pude conocer en persona a algunos del canal de IRC #unplug en el servidor irc.unplug.org.ve. Aqui les dejo algunas fotos:

[gallery link="file"]

Primer paso: menu luego settingsDespués de un par de días con problemas tras un update de Touiteur encontré la solución para cuando el Google Play Store también conocido como Android Market hace crash al uno intentar cancelar una descarga.

Touiteur funcionaba bien pero segun el Google Play Store mostraba que aun se estaba descargando una versión nueva, decidí cancelarla e inmediatamente me salio un mensaje de error del market que debía cerrarse. Desinstalando la aplicación y haciendo logout y login en google talk no hicieron ninguna diferencia excepto que ahora no tengo la aplicación instalada y no la puedo instalar.

La solución es limpiar el cache de esa aplicación, la data local de esa aplicación. Para lograr esto solo debemos ir a Settings -->*Applications* -->*Manage Applications* -->*All* -->*Market* -->*Clear Data* y por ultimo luego forzamos la aplicación para que se sierre como se puede ver en estas imágenes:

[gallery link="file" order="DESC"]

Si tienes problemas específicamente actualizando aplicaciones que ya tienes instaladas o no te aparecen disponibles algunas aplicaciones que antes si aparecían disponibles, no dejes de leer: `Dispositivo no soportado tras actualización del Android Market - This item is not compatible with your device`_

Logos de Youtube y AndroidGoogle ha liberado la nueva aplicación de YouTube para el Android liberándola de los ROMs. Lo bueno de esto es que podemos esperar que nuevas funcionalidades sean publicadas mas seguido. El problema viene cuando intentas instalar la versión del Google Play Store. Como ya existe la versión del ROM el Google Play Store también conocido como Android Market no la puede remplazar/actualizar por que la partición /system esta montada como read only.

La solución:
Abrir la aplicación Terminal Emulator y ejecutamos esto:
cd /system su mount -o remount,rw /system rm -Rf YouTube.* reboot

Para que esto funcione debes de tener rooteado tu Android, luego de que se reinicie el teléfono regresas al market e instalas la aplicación sin problema.

Nota: Esto funciono en mi HTC Evo con CyanogenMod 6.