Archivo

Archive for the ‘Informática’ Category

Post Dominguero: Si es que van provocando…

16 junio, 2011 13 comentarios

Vamos con otro post de tarde dominguera…

Hoy vamos a hacer algo rapidito y para toda la familia. Seguro que todos hemos oído aquello de que hay que cambiar las claves por defecto y tal. Bueno, pues hoy vamos a ver por qué…

Ante la dura imagen de otro lunes que se acerca, a uno le entran unas ganas locas de darse al noble arte de la cata de licores variados, o de, directamente, putear a alguien. Lanzamos nuestro dado de 20 caras para buscar un objetivo aleatorio y, zas!, aparece el término “webcam”…

Y es que no sólo de bases de datos vive el cracker (si no que se lo digan a los de Inteco), sino que cualquier dispositivo conectado a una red es susceptible de estar expuesto a miradas indiscretas…

 Sí amiguitos, hoy día casi todo está conectado a la red (he visto hasta cafeteras que twittean los cafés que sirven), por lo que no está demás tener un poco de cuidado. Una sencilla búsqueda en Google nos puede proporcionar numerosos modelos de webcams que incorporan un simple servidor web para mostrar al mundo su particular visión del ídem. Cogeremos un modelo al azar, por ejemplo, el modelo “Wit-Eye” de Softwell Technology. ¿Por qué no? Buscando una imagen de la cámara, encontramos que este modelo en concreto no se trata de una webcam como tal, sino de una controladora con varias entradas de señal que se usa para administrar varias cámaras a la vez.

Ahora buscaremos lo que los que saben de esto llaman “vector de ataque”, que básicamente viene a ser por dónde le vamos a meter mano al tema. ¿Buscaremos un exploit conocido para el servidor web? ¿Buscaremos datos para un ataque de ingeniería social? ¿Intentaremos romper la clave de acceso por fuerza bruta, diccionario,etc? ¿O por el contrario utilizaremos una complicada pero brillante inyección SQL?

Bueno, no sé si he dicho que es domingo, estoy vago y en Ferrari la han vuelto a liar… Pues no, nada de complicaciones. Lo primero es probar lo más fácil, que en este caso es usar las credenciales por defecto de este dispositivo (ah… pensamiento lateral, lo llaman). Otra búsqueda en Google y, vaya…, debería haberlo supuesto, admin:admin… ¡glorioso!

¿Qué nos queda? Pues un conejillo de indias con el que comprobar el nivel de seguridad medio de un usuario de este tipo de cámaras. ¿Cómo lo encontramos? Bueno, pues creo que este tema lo iba a tratar uno de los compañeros del blog, pero ya que estamos, este post os puede servir de introducción de lo que se llama “Google Hacking” (mola el término, eh?). Todos los buscadores permiten afinar sus búsquedas mediante el uso de ciertas palabras clave. ¿Nunca habéis visto en el cine cómo desde el navegador sacan hasta las multas de tráfico de alguien? Pues no es tan complicado, creedme… En este ejemplo voy a usar la siguiente búsqueda en Google:

allintitle:”dvr login”

¿Qué creéis que me devolverá? Exacto, todas las páginas que tengan en su título la cadena exacta “DVR Login”, que viene a ser el panel de acceso. Ahora simplemente iremos cogiendo los resultados y meteremos las credenciales por defecto… A mí me ha costado exactamente cuatro intentos (no es coña) encontrar un resultado en el que no las haya cambiado, lo que significa, según este riguroso estudio, que al 25% de los usuarios de estas webcams les importa bastante poco su privacidad.

Pantalla de Login del dispositivo

Una vez dentro, ¡¡¡ que empiece la fiesta !!! A ver qué tenemos…

Panel de control de las cámaras

Este es el panel de control del dispositivo. Desde él podemos controlar hasta 16 cámaras al mismo tiempo (ideal para negocios, empresas, bancos, jeje)… Una de las primeras cosas que se me ocurren es cambiar el pass del dispositivo, pero como eso está muy mal visto hoy en día, podría crearme una nueva cuenta de administrador, por ejemplo.

Gestión de cuentas de usuario

Como podéis ver, tengo acceso a todo el sistema, puedo ver todo lo que las cámaras muestran, podría activarlas y desactivarlas a mi antojo, etc… Vamos, una maravilla…

Alarm Log

Hay un apartado muy interesante que es “Alarm Log”. En él se guarda un registro de ciertos eventos que han sucedido, como cambios de configuración, determinados fallos, etc… Como podemos observar, parece ser que la configuración ha sido modificada el pasado 01/06/2011, tras varios fallos de disco.

Logs de control de acceso -> BORRAR HUELLAS !!!

Cómo no, el apartado “Login Logs” nos mostrará todos los accesos al sistema e incluso podremos exportar estos datos. Esto es interesante si quisiéramos continuar realizando otro tipo de ataques. Por ejemplo, aparecen numerosos accesos como admin desde las mismas IPs, lo cual significa que esas son las IPs desde las que se administra este sistema (¿y quizás otros?). La opción de “Exportar” es especialmente útil en este caso, jeje… Además, desde aquí podremos borrar nuestras huellas eliminando aquellas entradas en las que aparecemos. No nos gustaría recibir la visita del cartero con un sobre certificado…

Por último, y por mera curiosidad, vamos a ver a dónde nos estamos conectando. Una visita a GeoIP, metemos la IP del sitio y …

¿Quién eres?

Bueno, por lo visto se trata de una empresa de comunicaciones de EE.UU, con sede en Virginia… Con todos estos datos casi podríamos meternos hasta la cocina, pero creo que ya es suficiente por hoy, ¿no?. La moraleja de todo esto es que SIEMPRE debemos cambiar las contraseñas que vienen por defecto.

Como dije en el título de la entrada, es que hay algunos que van provocando…

Categorías:Informática, Redes Etiquetas: , , ,

Post Dominguero: Haciéndonos un crawler básico

6 junio, 2011 4 comentarios

Inauguramos una nueva sección llamada “Post Dominguero”, donde recogeremos esas cosillas que puedes hacer una tarde de domingo sin partidos de liga, después de ver ganar a Nadal (otra vez) Rolland Garros…

Uno de los primeros pasos que se dan a la hora de meterle mano a una web es revisar el código de la página en busca de datos que nos permitan hacernos una idea de la composición del sitio, de la tecnología que utiliza, etc. Buscar direcciones de correo en el código, revisar los comentarios, buscar campos ocultos, la estructura de carpetas, etc, puede ser algo bastante aburrido y, sobre todo, tedioso si el sitio es un poco grande. Para ello existen los crawlers, que son programitas que se encargan de hacer este trabajo por nosotros y ahorrarnos un montón de tiempo. También son muy utilizados por los motores de búsqueda para indexar las webs y mostrarlas en los resultados de las búsquedas, pero lo que buscan estos últimos es muy diferente de lo que vamos a buscar nosotros.
El camino fácil es coger un crawler conocido como BlackWidow, Sam Spade o Teleport y dejarle que haga el trabajo sucio pero, como lo que nos mola es aprender cómo funcionan las cosas, vamos a hacernos uno sencillito, con un simple script para la consola. En este caso he elegido hacerlo para Linux, pero si se quiere hacer para Windows simplemente cambiaremos grep por findstr (o similares).
Lo primero que necesitamos es hacernos una copia local del sitio en nuestra máquina (por aquello de la velocidad y tal…). Podemos currarnos un programita que recorra todas las páginas de un sitio y las copie en el disco duro pero, es domingo, tengo resaca y conozco un programa que ya lo hace: WGET. Además hay versión tanto para Windows como para Linux, así que, p’alante!
Supogo que sabemos cómo funciona wget (y si no, nos leemos la ayuda, que es muy fácil, jeje), así que el comando que necesitaríamos para descargarnos una web sería el siguiente:
Este comando nos va a generar una carpeta con el nombre de la web y nos va a dejar dentro todos los ficheros de la misma respetando la estructura de carpetas (esto es importante, ya que así podremos hacernos una idea de cómo se estructura el sitio, qué tipo de aplicaciones alberga y qué tecnologías utiliza).
Una vez que ha acabado de copiar (puede tardar bastante si el sitio es un poco grande), necesitamos filtrar cada uno de los ficheros y buscar lo que queremos. ¿Qué usaremos para filtrar? a mí me mola grep para linux y findstr para windows, pero es una cuestión de gustos. Ahora viene lo importante: ¿Qué queremos buscar? Bueno, en este ejemplo sencillo, buscaremos lo más básico, que viene a ser:
  1. Comentarios: Os sorprendería ver lo que nos podemos encontrar comentado en cualquier código, desde credenciales de acceso, hasta referencias a ficheros de configuración, logs, etc, que nos pueden ayudar muchísimo a la hora de buscarle las cosquillas al asunto. Los comentarios en html empiezan con la misma cadena,  así que ya sabemos cómo sacarlos…
  2. Enlaces: Por supuesto, cualquier link que venga en el código. Podemos encontrar referencias a scripts, ficheros, carpetas, etc. Yo buscaré cadenas HREF (podemos buscar también por ACTION, pero estoy vago…).
  3. Direcciones de correo: Fundamental. Tanto para hacer ingeniería social como para su posible uso como usuario, ¿Cuántas webs conoces en las que el usuario es una dirección de correo? Pues eso, a buscar @…
  4. Campos ocultos: ¿Por qué se oculta un campo en una web? Porque seguro que es importante. Así que, al saco todo aquello que ponga type=hidden
  5. Meta Tags: Estas etiquetas que se añaden al código pueden contener direcciones, teléfonos, nombres, etc. Son una buena fuente de información para ataques de ingeniería social, así que, si pone meta…
  6. Scripts: Por supuesto, si hay algún script, lo quiero ver.
Podríamos seguir añadiendo cosas para buscar, pero para el ejemplo, creo que es más que suficiente.
¿Cómo sería el comando para aplicar una de estas búsquedas? Por ejemplo, para sacar los enlaces sería muy sencillo:

cat ./www.unawebcualquiera.com/index.html | grep -i -F ‘href’

Nos sacaría por pantalla todas las líneas que contuvieran la cadena indicada. Lo que tendríamos que hacer es ir cambiando el patrón de búsqueda según el tipo, y sacarlo todo a un fichero de texto. Para ello, me he hecho un script en bash al que le paso dos parámetros: la carpeta con la web descargada y el fichero con los resultados.
#!/bin/bash
#para cada fichero de la carpeta de entrada, lo parseamos…
for i in $(find $1/)
do
echo “Parseando ” $i
if [ -f $i ];
then
echo “[” $i “]” >> $2
#Buscamos comentarios “<–“
echo “Comments” >> $2
echo “” >> $2
cat $i | grep -i -F ‘<– ‘ >> $2
echo “—————————————————————–” >> $2
#Buscamos correos “@”
echo “Emails” >> $2
echo “” >> $2
cat $i | grep -i -F ‘@’ >> $2
echo “—————————————————————–” >> $2
#Buscamos campos ocultos “hidden”
echo “Hidden Fields” >> $2
echo “” >> $2
cat $i | grep -i -F ‘type=hidden’ >> $2
echo “—————————————————————–” >> $2
#Buscamos Links “href”
echo “Links” >> $2
echo “” >> crawl
cat $i | grep -i -F ‘href=’ >> $2
echo “—————————————————————–” >> $2
#Buscamos Meta “Meta”
echo “Meta Tags” >> $2
echo “” >> $2
cat $i | grep -i -F ‘meta’ >> $2
echo “—————————————————————–” >> $2
echo “” >> $2
echo “—————————————————————–” >> $2
#Buscamos scripts “script”
echo “SCRIPTS” >> $2
echo “” >> $2
cat $i | grep -i -F ‘script’ >> $2
echo “—————————————————————–” >> $2
echo “” >> $2
echo “********************************************************” >> $2
echo “********************************************************” >> $2
echo “” >> $2
fi
done
echo “FIN!”
En este ejemplo, el fichero de resultado podría salir algo tosco si la web en cuestión no sigue una indentación correcta, pero como ejemplo nos sirve más que de sobra. Una forma de mejorar esto sería mediante el uso de expresiones regulares. Como no me quiero meter con ello en este post, simplemente os dejo un ejemplo de cómo se filtrarían las direcciones de correo mediante el uso de expresiones regulares:

grep -o -e “[A-Za-z0-9\._-]*@[A-Za-z0-9\._-]*\.[a-zA-Z]\{2,4\}” $i >> $2

En este ejemplo le estamos diciendo que sólo nos saque la cadena que coincida con el patrón que le indicamos (parámetro -o) y le indicamos el susodicho patrón (-e): una cadena de caracteres entre los que se pueden encontrar letras de la A a la Z (mayúsculas y minúsculas), números del 0 al 9 y los caracteres “.”, “_”,”-“, seguidos del carácter “@”, y después otra cadena con el mismo patrón, seguida de un “.” y otra cadena que sólo contenga letras mayúsculas o minúsculas, de un mínimo de dos caracteres y un máximo de cuatro… Un poco farragoso de leer, ¿no?, pero sin duda más amigable a la hora de presentar los resultados…
Como ya he dicho antes, si lo queremos hacer para Windows, simplemente cambiaríamos el cat por el type (comando para ver el contenido de un fichero en Windows), y el grep por findstr o similares.
Espero que os resulte útil.
CIAO!
P.D.: Sí, sí, ya sé que con grep, si ponemos el parámetro -r, nos recorre recursivamente un directorio y aplica el filtro a todos los ficheros, pero me molaba más así…
En el script de ejemplo, en la parte del filtrado de comentarios, a la cadena para buscar el comentario le falta !. Está así porque el editor de blogger se piensa que estoy metiendo un comentario y corta el post a partir de ahí…
Categorías:Informática Etiquetas: , , , , ,

Si el sector de la construcción tuviese que trabajar como los informáticos

1 diciembre, 2010 1 comentario

Categorías:General, Informática Etiquetas: ,

Cómo restaurar los paneles de GNOME en Ubuntu

16 septiembre, 2010 1 comentario

El otro día se me fue la mano y, sin querer, me cargué uno de los paneles de mi escritorio de Gnome. Concretamente, el panel superior, en el que aparecen las aplicaciones, y los applets de cierre de sesión, estado de red, etc…
Aunque intenté crear un panel de nuevo, añadiendo los elementos que quería, el resultado no me acababa de satisfacer del todo, y por ello empecé a buscar por la red a ver si alguien había conseguido restaurar los paneles que vienen por defecto.
Y he aquí que en una de las entradas de OMG! Ubuntu! tenían la solución definitiva: un script que no sólo es capaz de restaurar la configuración de paneles por defecto, sino que además es capaz de hacer una copia de seguridad de nuestra configuración de paneles, y de posteriormente restaurarla si así fuera necesario.

Al lanzar el script, se nos presentará el siguiente menú, con las opciones del mismo. De manera rápida y sencilla podremos guardar nuestra configuración, restaurar una configuración previamente guardada o restaurar los valores por defecto de los paneles.

El script sería el siguiente:

#!/bin/sh
#
# GNOME Panel Save / Restore
#
DIR=$(pwd)
TITLE=”PanelRestore”
Main () {
CHOICE=$(zenity –list –title “$TITLE” –hide-column 1 –text “What do you want to do?” –column “” –column “” \
“0” “Save Panel Settings” \
“1” “Restore Panel Settings” \
“2” “Restore Default Panel Settings”)
if [ $CHOICE = 0 ]; then
Panel_Save
fi
if [ $CHOICE = 1 ]; then
Panel_Restore
fi
if [ $CHOICE = 2 ]; then
Panel_Defaults
fi
}
Panel_Restore () {
FILE=$(zenity –title “$TITLE: Open File” –file-selection –file-filter “*.xml” )
if [ -n “$FILE” ]; then
gconftool-2 –load “$FILE”
killall gnome-panel
fi
Main
}
Panel_Save () {
FILE=$(zenity –title “$TITLE: Save File” –file-selection –save –confirm-overwrite –filename “Gnome_Panel.xml” –file-filter “*.xml” )
if [ -n “$FILE” ]; then
EXT=$(echo “$FILE” | grep “xml”)
if [ “$EXT” = “” ]; then
FILE=”$FILE.xml”
fi
gconftool-2 –dump /apps/panel > $FILE
zenity –info –title “$TITLE: File Saved” –text “File saved as: \n $FILE”
fi
Main
}
Panel_Defaults () {
zenity –question –text=”Are you sure you want to restore the default top and bottom panels?”
gconftool-2 –recursive-unset /apps/panel
rm -rf ~/.gconf/apps/panel
pkill gnome-panel
exit
}
Main
# END OF Script

#!/bin/sh## GNOME Panel Save / Restore# Writen by PhrankDaChicken## http://ubuntu.online02.com### Updated to add restore defaults by jimjimovich# http://www.starryhope.com##

DIR=$(pwd)TITLE=”PanelRestore”
Main () { CHOICE=$(zenity –list –title “$TITLE” –hide-column 1 –text “What do you want to do?” –column “” –column “” \”0″ “Save Panel Settings” \”1″ “Restore Panel Settings” \”2″ “Restore Default Panel Settings”) if [ $CHOICE = 0 ]; then Panel_Save fi if [ $CHOICE = 1 ]; then Panel_Restore fi if [ $CHOICE = 2 ]; then Panel_Defaults fi }
Panel_Restore () { FILE=$(zenity –title “$TITLE: Open File” –file-selection –file-filter “*.xml” ) if [ -n “$FILE” ]; then  gconftool-2 –load “$FILE” killall gnome-panel fi Main}
Panel_Save () { FILE=$(zenity –title “$TITLE: Save File” –file-selection –save –confirm-overwrite –filename “Gnome_Panel.xml” –file-filter “*.xml” ) if [ -n “$FILE” ]; then  EXT=$(echo “$FILE” | grep “xml”) if [ “$EXT” = “” ]; then FILE=”$FILE.xml” fi gconftool-2 –dump /apps/panel > $FILE zenity –info –title “$TITLE: File Saved” –text “File saved as: \n $FILE” fi Main}
Panel_Defaults () { zenity –question –text=”Are you sure you want to restore the default top and bottom panels?” gconftool-2 –recursive-unset /apps/panel rm -rf ~/.gconf/apps/panel pkill gnome-panel exit}
Main
# END OF Script

Para ejecutarlo, lo copiamos en un fichero de texto, le damos permisos de ejecución, y listo.

Saludos!!!

Categorías:Informática Etiquetas: , , , , ,

Cómo auditar redes WPA

13 julio, 2010 32 comentarios

En este vídeo,  David Hoelzer nos enseña los principios básicos de la auditoría de redes WPA y WPA2 PSK. Durante unos diez minutos nos hará una demostración, explicando cada uno de los pasos necesarios, donde muestra la inseguridad de estas redes, especialmente si se se habilita el uso de “pre-shared keys”.

Podéis ver más en su sitio web.

Categorías:Informática, Redes Etiquetas: , , , , , ,

GoogleCL: Usa Google desde la línea de comandos

19 junio, 2010 Deja un comentario

Los de Google no paran. Lo último, una utilidad por línea de comandos desde la cual podemos tener acceso a todos sus servicios. Ahora podemos hacer un script para subir fotos de una carpeta a Picasa, postear en Blogger o añadir un evento a Google Calendar. Sí, sí, como suena.
Se trata de aplicación escrita en Phyton que utiliza llamadas a la API de Google a través de las librerías Python Gdata. Os dejo unos ejemplos:

Ejemplo para postear “mipost.html” en “Mi Blog” de Blogger con unas etiquetas:
$ google blogger post –blog “Mi Blog” –tags “python, googlecl, desarrollo” mipost.html

Ejemplo para añadir un evento al calendario:
$ google calendar add “Escribir un post sobre GoogleCL”

Ejemplo para crear un álbum en Picasa y subir las fotos de un directorio:
$ google picasa create –album “Mis Fotos” ~/fotos/misfotos/*.jpg

En esta página encontraréis más ejemplos de scripts para GoogleCL. También os dejo las instrucciones de instalación en los diferentes sistemas.

¡Saludos!

Categorías:Informática, Software Etiquetas: , , , ,

Troyanos En MAC: Puper/MacCodec

3 noviembre, 2007 1 comentario

Qué maravilla es oir decir a los maqueros y linuxeros que su sistema operativo está “blindado” frente a virus, troyanos y demás… Algún día pondré una lista de malware para estas plataformas y explicaré su funcionamiento. Para abrir boca, contemplemos el estreno del flamante Leopard (para el que no lo sepa es el nuevo sistema operativo de los MAC), que bonito es un rato, la verdad, pero seguro, como los anteriores…

El primer riesgo grave para la segurad de un MAC con Leopard se llama Puper/MacCodec que, como su propio nombre indica, tiene algo que ver con un codec (es que cuando me pongo, me pongo)… El bicho en cuestión actúa de la siguiente manera:

  1.  El usuario accede a una web para ver un determinado vídeo (cualquier vídeo, guarretes). En ese momento, se le solicita autorización para la descarga de un codec. Si se permite la descarga, se descargará un ejecutable para MAC (.dmg)
  2. Si el usuario ha sido tan osado como para desactivar en Safari (el navegador de los MAC, para el que no lo sepa) aquello de “abrir sólo archivos seguros”, etc, se instalará inmediatamente. Si no, el usuario, que para eso lo ha descargado, introducirá su cotraseña de administrador para permitir su ejecución y con ello, su instalación (la carne es débil).
  3. Lo que realmente se instala es un software que hace un DNS poisoning sobre nuestra máquina (modifica la relación nombre de la web-IP de la web). Para los no iniciados, cuando ponemos en el navegador una dirección web, ésta se traduce a una dirección IP. Igual que cuando el móvil seleccionamos Pepe y se marca el número de teléfono de éste. El programa modifica esta asociación, de tal manera que cuando accedemos a una web, en realidad estamos en otra (muy útil para sacar las claves de las webs de los bancos, verdad?).

No vamos a discutir la seguridad de los sistemas operativos, símplemente avisar al que se cree protegido de que no lo está tanto. El primer riesgo para la seguridad (y el causante del 90% de los males) está sentado delante del teclado, y eso es algo que sólo se puede solucionar con información.

Avisados quedan!

A %d blogueros les gusta esto: