lunes, 25 de marzo de 2013

Phishing - Un ejemplo universitario

  En una sociedad donde el phishing está a la orden del día moviendo ingentes cantidades de dinero es muy importante para los ciberdelincuentes tener grandes cantidades de cuentas de correo a la espera de recibir su ciber basura.

  En esta entrada, siguiendo el ejemplo de las añejas "Un ejemplo universitario", voy a mostrar como un atacante con malevolas intenciones puede obtener direcciones de correo válidas de todos los alumnos de la universidad. Además también tendrá al alcance información como su nombre y carrera que cursa. Con estos datos ya es posible crear perfectas estafas con falsas ofertas de trabajo personalizadas y empezar a difundir "trabajo", empecemos:


  """
  Somos un estudiante que conoce los recursos que ofrece nuestra universidad y sabemos que ésta tiene una página accesible a cualquiera mediante la que se puede buscar información de los usuarios. En ella existe un formulario para especificar más la búsqueda siendo posible buscar usuarios por nombre, correo, o su titulación:


 Al realizar una simple búsqueda, por ejemplo "titulación = ingenieria informatica", vemos que se los listan todos los usuarios matriculados en dicha carrera:


 Además se puede acceder a la información de cada alumno por separado ofreciéndonos valiosos datos como los comentados antes, entre ellos su correo electrónico:


 Nosotros, usuarios conocedores de los peligros de la red, sabemos que esta situación es perfecta para lanzar una campaña de phishing por toda la universidad y de forma personalizada, pues podemos ofrecer, por ejemplo, ofertas de trabajo a determinadas carreras, especificando además el nombre del usuario a que va dirigido. Es decir, al hacerlo mas personal el correo aumentamos enormemente las posibilidades de que la inocente víctima caiga en nuestras redes.

 Para aumentar las víctimas del ataque seria necesario conocer todas las carreras disponibles, información que la aplicación también nos proporciona, ¡¡ES PERFECTO!! :


 Ahora ya siendo conocedores de todos estos vectores de ataque, podríamos crear una aplicación que carrera a carrera fuera realizando búsquedas y "clasificando" a los usuarios mediante su nombre, correo y titulación en una base de datos para tenerlos accesibles de forma más directa. Aquí entra en juego el lenguaje más serpenteante, Python.


  Una vez están los usuarios almacenados en la base de datos, mediante simples consultas obtenemos los datos necesarios para realizar nuestro perverso ataque:



  Tenemos la información, pero ahora, ¿cómo la aprovechamos? Acudiendo en nuestra ayuda tenemos  S.E.T. que nos ofrece un framework para ataques de ingeniería social, con lo que, aprovechando la nueva relase del Backtrack Team (Kali Linux) vamos a trastear con la herramienta.

  Primero escogemos Social-Engineering Attacks pues es lo que vamos a intentar hacer engañando a nuestra inocente víctima:


  Acto seguido nos preguntará por el tipo de ataque, marcamos la quinta opción Mass Mailer Attack:


  Ahora se nos ofrece la posibilidad de atacar a una única víctima o varias a partir de un fichero. Puesto que nuestra genial aplicación en Python nos permite exportar a ficheros los correos obtenidos, el segundo camino es el seleccionado (E-Mail Attack Mass Mailer):


 Para acabar introducimos la localización del fichero con los correos, una dirección válida ya sea de gmail o nuestro propio servidor de correo, con lo que ya estaremos en disposición para especificar los datos del mensaje y enviarlo:



  Con esto solo nos quedará esperar que nuestros inocentes destinatarios caigan en nuestro malvado y sombrío ataque.

"""

  En resumen, el phishing es un problema presente en nuestros días y va a estarlo durante mucho tiempo debido a que no es fácil erradicarlo. Desde mi punto de vista hay que educar a los usuarios, no puede ser que para advertirles de los peligros utilicemos métodos tan "avanzados" como este que muestra una captura de Jose Selvi. Hay que enseñarles, aunque sea mediante créditos de libre elección, pues en nuestros días todos los estudiantes utilizan Internet pero ni una cuarta parte es consciente de como hacerlo correctamente, peligros como los puntos de acceso falsos, el uso de https, actualización del sistema y su software (no puede ser que los ordenadores de toda la facultad, en los que los profesores introducen sus datos para dar clases utilicen una versión de nuestro colega Java de hace más de un año) y así un gran etc de conceptos básicos que deberíamos conocer todos los que nos movemos en la red de redes.

 Con todo esto me despido, nos leemos en breve ;)


miércoles, 20 de marzo de 2013

Acechando routers

  Cuando se quiere acceder a un router sobre el cual no se conocen las credenciales, bien sea porque, (en un hipotético caso) nos encontramos en una red ajena o hemos encontrado algún suculento objetivo mediante la herramienta Shodan, tenemos un par de alternativas para proceder.

 La primera opción seria buscar, si en un descuido del dueño o administrador, no se ha cambiado el dúo usuario/contraseña de acceso y continúan siendo vigentes los parámetros de fábrica. Para probar esta posibilidad basta con ir a una web como RouterPasswords.com y conociendo el fabricante obtener los datos necesarios:




  La segunda opción seria aprovecharse de una vulnerabilidad en el firmware del router para obtener acceso a éste. En este tipo de situaciones entra en juego RouterPWN que en forma de página web incluye una enorme cantidad de exploits para gran tipo de modelos de router, todo ello ordenado en función del fabricante:


   Su funcionamiento es muy simple, basta con pulsar en el fabricante del dispositivo objetivo y apareceremos en su respectiva sección junto con todos los exploits disponibles de este proveedor. Éstos están ordenados por fecha y acompañados de una breve descripción de su funcionamiento:


   Su funcionamiento es muy sencillo, solo hay que pulsar en [IP] para que nos salga un dialogo donde pondremos la dirección del router y a continuación se lanzará el exploit:


  Si queremos obtener mas información sobre el exploit o el código de éste debemos pulsar en [+] y seremos redireccionados a su fuente, un ejemplo:



  Uno de los impedimentos que puede surgir a la hora de lanzar un ataque de este tipo es desconocer el fabricante del router, pero en routerPWN tenemos un enlace que introduciendo la dirección MAC del dispositivo nos mostrará su fabricante, todo esto a partir de su respectivo OUI:






  También existe una versión móvil routerPWN para Android, la podemos obtener de la siguiente dirección:
https://play.google.com/store/apps/details?id=websec.routerpwn

 o bien mediante un código QR:


  Una vez descargada veremos que básicamente es la aplicación web empaquetada en una aplicación para Android, pues su interfaz y utilización son similares a la versión web:






 Por último para cerrar la entrada os dejo el vídeo de la presentación de la herramienta en la GuadalajaraCON del 2012:




 Y esto es todo, nos leemos en breve ;)


lunes, 11 de marzo de 2013

Cifrando particiones en ArchLinux



  Hace unos días me surgió la necesidad de formatear  porque me aburría la partición de GNU/Linux del netbook e instalar ArchLinux. Gracias a la sabiduría obtenida del podcast de @DaboBlog he desarrollado la costumbre de cifrar las particiones de mi pequeñín (el netbook), puesto que pasa todo el tiempo de un sitio para otro.

  En este punto me dirigí a la web que utilizaba como referencia, con lo que me dispuse a realizar todo el proceso cuando me encontré con un ligero contratiempo debido a la evolución de la distribución linuxera que utilizaba.
  Arch es una distro rolling release que evoluciona constantemente, con lo que el proceso de instalación ha cambiado respecto al del post que seguía y el sistema de arranque también, ya que ahora utiliza el famoso y raudo systemd. Con todo esto en mente me dispuse a realizar el proceso combinando el antiguo post, la wiki y la genial guía de instalación de Arch del Sr @Gespadas.

  Para realizar el cifrado comentado nos serviremos de LVM, con lo que el disco duro quedará dividido en 2 particiones dedicadas a Windows 8, una para el boot de Arch y la restante para el LVM que, éste a su vez, contendrá dos particiones para GNU/Linux como son la raiz y la memoria swap. Por tanto el particionado quedará como sigue:
  [+] /dev/sda1 -> Partición arranque de W8.
  [+] /dev/sda2 -> Partición para W8.
  [+] /dev/sda3 -> Partición boot.
  [+] /dev/sda4 -> LVM para Ñu/Linux.



Cifrando...

  Es recomendable sobrescribir todo el disco duro para que la información existente anteriormente "desaparezca", este proceso podemos realizarlo con dd, aunque tarda bastante tiempo (en función del tamaño del HD):
dd if=/dev/urandom of=/dev/sda
 /dev/sda es el disco duro que se desea borrar, en vuestro caso puede variar, tenedlo en cuenta ya que os podéis reír mucho si os cargáis el que no toca ;)

  Una vez esté todo borrado (o no), vamos a cargar el módulo necesario para cifrar el HD, para ello:
modprobe dm-crypt
  Acto seguido aplicamos el cifrado sobre la partición /dev/sda4:
cryptsetup -c aes-lrw-benbi -y -s 384 luksFormat /dev/sda4
  Una vez hayamos introducido la contraseña deseada podremos continuar con el proceso.

  Puesto que la partición ya se encuentra cifrada, debemos acceder a ésta:
cryptsetup luksOpen /dev/sda4 lvm
   Y procedemos a crear el grupo de volúmenes lógicos:
lvm pvcreate /dev/mapper/lvm
lvm vgcreate vgroup /dev/mapper/lvm
  A continuación definiremos las particiones dentro del grupo especificado antes (vgroup). El tamaño de cada uno viene a gusto de cada uno ;) :
lvm lvcreate -L 2GB -n swap vgroup
lvm lvcreate -l 100%FREE -n root vgroup
  En mi caso le he dado 2 GB a la memoria swap y el resto que quede libre para la partición root (en el netbook no separo home).



Instalando ArchLinux

  NOTA: Estos pasos los voy a definir muy ligeramente, en la guía de Gespadas y en la Beginners' Guide de Arch está todo infinitamente mejor explicado, yo solo me centraré en lo que cambia de una instalación norma a una instalación cifrada.


  Con las particiones definidas, vamos a particionarlas.
[+] La partición boot:
mkfs.ext2 /dev/sda3
[+] Cuando vamos a dar formato a la partición root es donde encontramos la primera diferencia a una instalación normal, pues ahora no trabajamos con /dev/sdaX, sino con /dev/mapper/vgroup-root:
mkfs.ext4 /dev/mapper/vgroup-root
[+] La partición swap es similar a la interior pues también se encuentra en el vgroup:
mkswap /dev/mapper/vgroup-swap
  y la activamos:
swapon /dev/mapper/vgroup-swap

 A continuación montamos las particiones, teniendo en cuenta que la partición root no es /dev/sdaX:
mount /dev/mapper/vgroup-root /mnt/
mkdir /mnt/boot
mount /dev/sda3 /mnt/boot/

  En el siguiente punto toca configurar la red. Puesto que no tiene sentido tratarlo en esta entrada la wiki de Arch será vuestra guía :D
https://wiki.archlinux.org/index.php/Beginners'_Guide#Establish_an_internet_connection
 Con conexión a la red de redes procedemos a instalar la distribución:
pacstrap /mnt base base-devel grub-bios
 Generamos el fichero fstab:
genfstab -p /mnt >> /mnt/etc/fstab
 Nos metemos en la jaula con chroot:
arch-chroot /mnt
 Cambiamos el nombre del equipo:
echo "nombre" >> /etc/hostname
La zona horaria:
ln -s /usr/share/zoneinfo/Europe/Madrid /etc/localtime 
 Configuramos la localización:
echo "LANG=es_ES.UTF-8" >> /etc/locale.conf
locale-gen
El teclado:
echo "KEYMAP=es" >> /etc/vconsole.conf 
Y ahora instalamos el grub:
grub-install /dev/sda 
 A continuación vamos a especificar un par de parámetros en la configuración del grub para que monte correctamente las particiones cifradas:
nano /etc/default/grub
  Buscamos la línea que ponga:
GRUB_CMDLINE_DEFAULT="quiet"
 y añadimos:
cryptdevice=/dev/sda4:vgroup

 Acto seguido generamos el grub.cfg:
grub-mkconfig -o /boot/grub/grub.cfg

Solo nos queda un archivo por modificar respecto a la instalación normal, y éste es /etc/mkinitcpio.conf:
nano /etc/mkinitcpio.conf
  buscamos la línea HOOKS y añadimos:
keyboard fsck encrypt lvm2

  Y ya podemos generar el disco RAM inicial:
mkinitcpio -p linux
 Cambiamos el password de root:
passwd
 Cerramos la jaula (chroot):
exit 
 Desmontamos las particiones que hemos montado antes:
umount /mnt/boot
umount /mnt/
  Y por último antes de reiniciar habilitamos con systemd el servicio para montar particiones mediante LVM:
systemctl enable lvm-monitoring
  Ya podemos reiniciar y proseguir con la creación de usuarios, instalación del entorno gráfico, etc...


 Con todo esto concluyo esta quimérica entrada, pues me he basado fragmentos de varias entradas para escribir ésta que permite cifrar particiones en ArchLinux con el sistema actual (systemd).


Fuentes:


Nos leemos en breve ;)

martes, 5 de marzo de 2013

Aplicaciones Android - Intercepter-NG

  Hace unos días, encontré un post en DragonJar titulado "Dispositivos Android como herramientas para test de penetración" que nos presenta, como su título indica, diversas aplicaciones que pueden ser útiles en un test de penetración. De ellas, algunas ya las he comentado en el blog, pero encontré algunas otras interesantes y a las que dedicaré algunas entradas.

NOTA: Para ejecutar la aplicación es necesario ser root en el dispositivo.

  Una de dichas herramientas es Intercepter-NG, que nos permite capturar tráfico en nuestra red, analizarlo (emulando al gran Wireshark con muchísimas menos opciones), ver cookies o realizar ataques más complejos (SSLStrip).
  La podemos obtener de la web del desarrollador o el enlace directo:
http://intercepter.nerf.ru/intercepter.apk
Este código QR lo he generado yo, no proviene del desarrollador ;)

  La aplicación nos presenta un diseño por pestañas, para que, una vez escogidos nuestros objetivos, aprovechar las distintas funciones que ésta ofrece. Lo primero que haremos sera buscar en la red los equipos conectados, para ello pulsamos el "radar" que aparece en la parte superior izquierda y empezarán a aparecer los equipos de la red:


  Una vez seleccionados los objetivos pulsamos en la flecha verde (izquierda superior derecha), con lo que ya estaremos en el menú de pestañas. Aquí se nos presentan las distintas opciones que nos ofrece la herramienta, la primera de ellas y necesaria para que el resto funcione es el Arp Poisoning (pulsando el botón play):


  Este nos mostrará las páginas a las que accede la víctima:



  En la segunda pestaña (cuyo icono recuerda al de la herramienta Wireshark) obtenemos una visión del trafico similar a la del famoso sniffer:



  La tercera posibilidad que se nos ofrece es el ver las cookies interceptadas:



  Por último nos muestra un panel de opciones donde podemos escoger funcionalidades añadidas como realizar un ataque de SSLstrip o salvar la captura en un archivo:



  Y esto es todo, una aplicación interesante que nos permite llevar un completo sniffer en nuestros dispositivos.

  Nos leemos en breve,