30 nov 2011

Asociación GEISER y su I Jornada de Seguridad

Adrián e Isaac, de la asociación Geiser, a los cuales tuvimos el placer de conocer en la No cON Name 2k11, nos han hecho llegar este llamamiento para que la gente conozca un evento que se celebrará en Galicia, en Santiago para más señas.

Os dejo con la nota que nos enviaron:

Desde la Asociación GEISER se está organizando la I Jornada de Seguridad, en la Escuela Técnica Superior de Ingeniería de la Universidad de Santiago de Compostela.
A lo largo de todo el día varios profesionales de la seguridad informática expondrán diversas experiencias en sus trabajos.
  • Pedro Sánchez, del blog Conexión Inversa, contará lo que es un Análisis forense a través de un caso de extorsión en la red.
  • Javier Berciano, coordinador de servicios reactivos y operaciones de INTECO-CERT, junto con Valentín Gutiérrez, miembro del equipo técnico del CERT, contarán el trabajo realizado en un CERT y casos reales en los que han tomado parte.
  • Flu Project agasajará a los asistentes al Taller que impartirán con el buen funcionamiento de Flu, explicando como ponerlo en funcionamiento, y también explicarán algunas técnicas de hacking como Man in The Middle o hijacking, además de prometer alguna que otra sorpresa…
  • José Antonio Pizarro, responsable de la Unidad de Seguridad de la USC, explicará la arquitectura de seguridad utilizada en un ámbito tan abierto como una universidad, y alguno de los procedimientos que se siguen.
Las ponencias son de acceso libre, pero el taller que imparte Flu Project cuesta 20 euros por persona, limitado a 32 plazas, que se van agotando rápidamente.
Toda la información referente al evento, a la asociacion y las instrucciones para inscribirse en el taller en asociaciongeiser.org.

29 nov 2011

#FPR4 – ¿Quién es el mejor buscador?

Buenas a todos, hoy damos comienzo al cuarto reto hacking de la comunidad Flu Project. En el reto de hoy os presentamos una única prueba en la que se combinan varias técnicas que ya han sido abordadas en el blog, ¡por lo que no tenéis excusa para intentarlo!

En primer lugar os dejamos una captura de red tomada con Wireshark, que podéis descargar desde aquí. En esta captura de red tendréis que buscar la respuesta a la pregunta... ¿Quién es el mejor buscador?

Cuando sepáis la respuesta, podéis verificar que es correcta desde la aplicación web de validación, también incluía en el archivo comprimido del reto.

Para este reto os dejaremos algunos días más de la semana habitual, aprovechando que la semana que viene tenemos un puente de por medio. Y el viernes 9 de Diciembre solucionaremos el reto.
El hashtag de Twitter oficial para el reto es #FPR4.

Ánimo con el reto :)

Saludos!

  • Paso 1: Descarga el Reto de AQUÍ
  • Paso 2: Coloca los archivos en un Apache, y accede desde tu navegador al archivo HTML principal
  • Paso 3: ¡Resuelve el reto!

28 nov 2011

Analizando un dominio malicioso

Hola!

Muy buenas a todos/as!

En el día de hoy, vamos a analizar un dominio malicioso, y ver como funcionan este tipos de dominios para cometer robos de cuentas de mensajería instantánea, envío de mensajes SPAM, estos fraudes ocurren normalmente por correo electrónico y suelen llevar mensajes llamativos del estilo, “Traidores del MSN” o “Descubre quien te ha eliminado del MSN”

Este tipo de estafas además vienen siempre de la invitación de uno de tus contactos y es, en ese momento cuando para el usuario final es fácil caer en este tipo de estafas.

A nuestro buzón de correo nos puede llegar un correo del tipo:

Este tipo de correos a mi no me suelen causar ninguna confianza…

Si copiamos el contenido del enlace, nos lleva a:

http://zeppelinbv.nl/redir.html?inv=email@hotmail.com

Si observamos la URL le pasa como parámetro la URL del correo desde el que te llego la invitación.

Si nos bajamos el archivo redir.html, esto contiene:

seifreed$ more redir.html\?inv\=email\@hotmail.com<meta http-equiv=”refresh” content=”0;url=http://www.tu-msn.info/index.html”>

Podemos ver que en cuando la víctima visite la página enHTML redir.html será reenviado a tu-msn.info.

Si nos centramos en el primer dominio zeppelinbv.nl, podemos ver el whois asociado al dominio:

whois zeppelinbv.nlDomain name: zeppelinbv.nlStatus: activeRegistrar:Qweb Internet Services B.V.Piet Heinstraat 73115JC SCHIEDAMNetherlandsDomain nameservers:ns1.qweb.nl 217.18.64.241ns1.qweb.nl 2a00:19c0:445:2::2ns2.qweb.nl 217.18.68.241ns2.qweb.nl 2a00:19c0:1255:2::2

Si miramos que servicios tiene asociados

PORT STATE SERVICE REASON21/tcp open ftp syn-ack53/tcp open domain syn-ack80/tcp open http syn-ack110/tcp open pop3 syn-ack143/tcp open imap syn-ack995/tcp closed pop3s conn-refused3306/tcp open mysql syn-ack3389/tcp open ms-term-serv syn-ack

Servicio de email de  base de datos y hasta escritorio remoto!

Este es el servidor que se usa para los emailings y luego otro para cometer el fraude.

Si miramos la web de Robtex sólo nos cataloga 1 como web maliciosa

http://www.robtex.com/dns/zeppelinbv.nl.html?tab=blacklists

Si miramos que directorios tienen en el servidor podemos ver:

http://zeppelinbv.nl/Stats/==> DIRECTORY+ http://zeppelinbv.nl/cgi-bin/==> DIRECTORY+ http://zeppelinbv.nl/cgi-bin/(FOUND: 403 [Forbidden] – Size: 218)+ http://zeppelinbv.nl/images/==> DIRECTORY+ http://zeppelinbv.nl/stats/==> DIRECTORY

Encima que te envían SPAM, generan estadísticas….

Ahora nos dirigimos al otro dominio tu-msn.info

Este dominio es al que el usuario accedería una vez visitado el enlace que llega por correo.

Tiene  varios servicios abiertos

PORT STATE SERVICE REASON22/tcp open ssh syn-ack80/tcp open http syn-ack111/tcp open rpcbind syn-ack

Este dominio además el servidor está alojado en rusia y eso no me da muy buena espina :P

Si introducimos nuestro correo electrónico y el password conectará con Hotmail para enviar un correo a todos nuestros contactos.

Si miramos el whois

Domain ID:D44217103-LRMSDomain Name:TU-MSN.INFOCreated On:23-Nov-2011 13:21:10 UTCLast Updated On:23-Nov-2011 13:24:17 UTCExpiration Date:23-Nov-2012 13:21:10 UTCSponsoring Registrar:Key-Systems GmbH (R124-LRMS)Status:TRANSFER PROHIBITEDStatus:ADDPERIODRegistrant ID:JUM2383034204Registrant Name:Juan Manuel MartinezRegistrant Organization:Registrant Street1:Av. Mayo 217Registrant Street2:Registrant Street3:Registrant City:Capital FederalRegistrant State/Province:Registrant Postal Code:1581Registrant Country:ARRegistrant Phone:+54.91145681112Registrant Phone Ext.:Registrant FAX:Registrant FAX Ext.:Registrant Email:analizadorcontactos@gmail.comAdmin ID:JUM2383034204Admin Name:Juan Manuel MartinezAdmin Organization:Admin Street1:Av. Mayo 217Admin Street2:Admin Street3:Admin City:Capital FederalAdmin State/Province:Admin Postal Code:1581Admin Country:ARAdmin Phone:+54.91145681112Admin Phone Ext.:Admin FAX:Admin FAX Ext.:Admin Email:analizadorcontactos@gmail.comBilling ID:JUM2383034204Billing Name:Juan Manuel MartinezBilling Organization:Billing Street1:Av. Mayo 217Billing Street2:Billing Street3:Billing City:Capital FederalBilling State/Province:Billing Postal Code:1581Billing Country:ARBilling Phone:+54.91145681112Billing Phone Ext.:Billing FAX:Billing FAX Ext.:Billing Email:analizadorcontactos@gmail.comTech ID:JUM2383034204Tech Name:Juan Manuel MartinezTech Organization:Tech Street1:Av. Mayo 217Tech Street2:Tech Street3:Tech City:Capital FederalTech State/Province:Tech Postal Code:1581Tech Country:ARTech Phone:+54.91145681112Tech Phone Ext.:Tech FAX:Tech FAX Ext.:Tech Email:analizadorcontactos@gmail.comName Server:NS3.GRATISDNS.DKName Server:NS2.GRATISDNS.DKName Server:NS1.GRATISDNS.DKName Server:NS4.GRATISDNS.DKName Server:NS5.GRATISDNS.DKName Server:Name Server:Name Server:Name Server:Name Server:Name Server:Name Server:Name Server:

Si buscamos un poco de información este registrador de dominio ha registrado otros dominios para el mismo fin, generando así una red de SPAM muy grande

 

Hemos visto que hay web que, pareciendo legítimas usan nuestros datos para cometer SPAM a nuestros contactos

 

27 nov 2011

Informe Flu - 47

 

Disfrutad del resumen:Lunes 21 de Noviembre
  • Juan Antonio nos muestra un video de como detectar el MITM. Este video fue parte de una demo en un gran curso llevado a cabo por Juan Antonio. Grande Juanan!
Martes 22 de Noviembre
  • Seifreed nos muestra como hacer un poco de fingerprinting con DNSRecon y enumerar así el DNS. Marc está ultimamente activo en su blog "caminando entre bits", dale duro Marc!
Miércoles 23 de NoviembreJueves 24 de Noviembre
  • ¿Cómo crackear un hash en internet? Ésta es tu herramienta, FindMyHash.
Viernes 25 de NoviembreSábado 26 de NoviembreEstamos a 5 semanas de cumplir un año... la semana 52, ¡Flu Project tiene cuerda para rato!

26 nov 2011

Software de Windows en Mac

A pesar de que cada vez es más normal que un producto se encuentre en su versión para Mac, a veces tenemos la necesidad de hacer funcionar un software que únicamente está disponible para Windows o que lo tenemos licenciado para este S.O. Una opción muy recomendable es usar una máquina virtual, como por ejemplo Virtual Box, y tener instalado en el mismo una copia fresca del sistema operativo de Redmond. Si no queremos instalar todo un sistema paralelo, y de paso, ahorrarnos una licencia de Windows, podemos hacer uso de Wine.

Wine es software Open Source, que simula con un nivel aceptable, un entorno Microsoft Windows, haciendo creer a los programas que están siendo ejecutados en el mismo. Lo bueno es que no necesitaremos licencia de Windows y, normalmente, ninguna librería original de este sistema. Por supuesto que no todo el software para Windows es soportado, pero si necesitamos Internet Explorer, por necesidades de aplicaciones corporativas o el buscaminas por idéntica razón, podremos salir del paso con este simulador.

Para instalar Wine, podemos hacer uso de los ports de OSX y ejecutar en un terminal:

$ sudo port install wine

Nada más ejecutar esto, MacPorts se bajará y compilará todo el software necesario y podemos disponer del comando wine. A través de este comando podremos ejecutar el instalador del software de windows que queremos utilizar, y wine se encargará de crear todo lo necesario. En caso de que el software no venga con instalador, lo podrémos ejecutar directamente con el mismo comando:

$ wine programa.exe

Algunas de las capturas mostradas en el sitio web de wine, nos muestran software muy sencillo como el nombrado buscaminas, hasta juegos como WoW o Fallout, pasando por Adobe Photoshop y Microsoft Office 2010. Te recomiendo que te pases por la web de wine, para comprobar la funcionalidad del software para Microsoft Windows que vas a instalar y/o que visites alguna de estas direcciones:

Wine está disponible para otros Unix y para Linux. Los creadores de Wine, tiene una versión de pago (unos 45€ según la versión), que facilita el proceso de instalación y ejecución de algunas aplicaciones complejas como juegos o Microsoft Office, denominada CrossOver.

Saludos,

 

25 nov 2011

PoC - Captura de conversaciones de Facebook con Wireshark

Buenas a todos, hace algunos meses os hablamos en Flu Project de la herramienta Borogove. Se trataba de un script desarrollado en phyton el cual permitía a un atacante realizar un MiTM y recuperar todas las conversaciones que la víctima mantenía vía Facebook. Este script no funciona muy bien tras el lavado de cara que sufrió Facebook últimamente, pero a pesar de ello, sigue siendo posible y de una manera muy sencilla, recuperar las conversaciones del chat de Facebook.

Hoy os mostraremos un pequeño vídeo en el que os enseñaremos a visualizar en una conversación mantenida entre dos usuarios de Facebook los textos provenientes del chat. Para ello, hemos guardado una captura de red tomada con Wireshark, que procederemos a analizar en el vídeo.

[youtube WLvFixfSxsU nolink]

Saludos!

24 nov 2011

Findmyhash búsqueda de hash online

Hola!

Muy buenas a todos/as!

Cuando capturamos un hash de una contraseña a veces sea como sea el tipo de hash es complicado aplicar fuerza bruta por falta de tiempo, además es posible que ese hash ya haya sido crackeado por otra persona, en ese caso nos ahorramos el proceso de crackeo otra vez del password en cuestión.

Existe una herramienta llamada Findmyhash que hace la búsqueda en varios servicios web.

Un ejemplo con un hash de un hash MD5

findmyhash seifreed$ python findmyhash_v1.1.2.py MD5 -h 4c4eaa71a74c5965ee7f8742025bb776Execution error:The Python library libxml2 is not installed in your system.Because of that, some plugins aren’t going to work correctly.Please, install it before use this application.Cracking hash: 4c4eaa71a74c5965ee7f8742025bb776Analyzing with md5hashcracker (http://md5hashcracker.appspot.com)…… hash not found in md5hashcrackerAnalyzing with passcracking (http://passcracking.com)…… hash not found in passcrackingAnalyzing with askcheck (http://askcheck.com)…… hash not found in askcheckAnalyzing with fox21 (http://cracker.fox21.at)…INFO: You need libxml2 to use this plugin.… hash not found in fox21Analyzing with nicenamecrew (http://crackfoo.nicenamecrew.com)…… hash not found in nicenamecrewAnalyzing with joomlaaa (http://joomlaaa.com)…… hash not found in joomlaaaAnalyzing with md5-lookup (http://md5-lookup.com)…… hash not found in md5-lookupAnalyzing with md5.com.cn (http://md5.com.cn)…… hash not found in md5.com.cnAnalyzing with digitalsun.pl (http://md5.digitalsun.pl)…… hash not found in digitalsun.plAnalyzing with drasen.net (http://md5.drasen.net)…… hash not found in drasen.netAnalyzing with myinfosec (http://md5.myinfosec.net)…… hash not found in myinfosecAnalyzing with md5.net (http://md5.net)…… hash not found in md5.netAnalyzing with noisette.ch (http://md5.noisette.ch)…… hash not found in noisette.chAnalyzing with md5hood (http://md5hood.com)…… hash not found in md5hoodAnalyzing with stringfunction (http://www.stringfunction.com)…… hash not found in stringfunctionAnalyzing with 99k.org (http://xanadrel.99k.org)…… hash not found in 99k.orgAnalyzing with sans (http://isc.sans.edu)…… hash not found in sansAnalyzing with bokehman (http://bokehman.com)…… hash not found in bokehmanAnalyzing with goog.li (http://goog.li)…… hash not found in goog.liAnalyzing with schwett (http://schwett.com)…… hash not found in schwettAnalyzing with netmd5crack (http://www.netmd5crack.com)…… hash not found in netmd5crackAnalyzing with md5-cracker (http://www.md5-cracker.tk)…INFO: You need libxml2 to use this plugin.… hash not found in md5-crackerAnalyzing with benramsey (http://tools.benramsey.com)…… hash not found in benramseyAnalyzing with gromweb (http://md5.gromweb.com)…… hash not found in gromwebAnalyzing with hashcracking (http://md5.hashcracking.com)…… hash not found in hashcrackingAnalyzing with hashcracking (http://victorov.su)…… hash not found in hashcrackingAnalyzing with thekaine (http://md5.thekaine.de)…… hash not found in thekaineAnalyzing with tmto (http://www.tmto.org)…… hash not found in tmtoAnalyzing with rednoize (http://md5.rednoize.com)…… hash not found in rednoizeAnalyzing with md5-db (http://md5-db.de)…… hash not found in md5-dbAnalyzing with my-addr (http://md5.my-addr.com)…… hash not found in my-addrAnalyzing with md5pass (http://md5pass.info)…… hash not found in md5passAnalyzing with md5decryption (http://md5decryption.com)…… hash not found in md5decryptionAnalyzing with md5crack (http://md5crack.com)…… hash not found in md5crackAnalyzing with md5online (http://md5online.net)…… hash not found in md5onlineAnalyzing with md5-decrypter (http://md5-decrypter.com)…… hash not found in md5-decrypterAnalyzing with authsecu (http://www.authsecu.com)…… hash not found in authsecuAnalyzing with hashcrack (http://hashcrack.com)…… hash not found in hashcrackAnalyzing with c0llision (http://www.c0llision.net)…… hash not found in c0llisionAnalyzing with cmd5 (http://www.cmd5.org)…… hash not found in cmd5Analyzing with bigtrapeze (http://www.bigtrapeze.com)…… hash not found in bigtrapezeAnalyzing with hashchecker (http://www.hashchecker.com)…… hash not found in hashcheckerThe following hashes were cracked:———————————-NO HASH WAS CRACKED.

Es una manera de ahorrarnos el proceso de ruptura por fuerza bruta.

Un saludo a todos/as!

 

23 nov 2011

Controlando Time Machine desde línea de comandos

Una de las utilidades mas sencillas que he visto para realizar la copia de seguridad de nuestros datos, es Time Machine. No obstante, en ocasiones su configuración puede dejar fuera opciones tan interesantes como poder comparar directorios o ficheros, forzar el volumen sobre el que queremos hacer un backup, o simplemente calcular que tamaño tendría la próxima copia de seguridad.

Para todo esto, tenemos el comando tmutil. Con este comando, podremos hacer todas las opciones que comentaba anteriormente y alguna más. Entre otras acciones, con este comando podremos:

- Analizar los cambios entre cada copia de seguridad:

$ tmutil calculatedrift directorio_backup

- Mostrar el directorio actual asociado a Time Machine:

$ tmutil machinedirectory

- Mostrar el tamaño que ocupa determinado directorio en Time Machine:

# tmutil uniquesize directorio

- Habilitar Time Machine:

# tmutil enable

- Deshabilitar Time Machine

# tmutil disable

- Averiguar si un fichero / directorio está o no incluido en la copia de seguridad:

# tmutil isexcluded fichero

- Obligar a Time Machine a no hacer backup de un fichero o directorio:

# tmutil removeexclusion fichero

- Añadir un directorio o fichero a la lista de exclusión de Time Machine:

# tmutil addexclusion fichero

- Fijar la ruta para el destino de Time Machine:

# tmutil setdestination ruta

- Mostrar los cambios entre ficheros y directorios incluidos en un backup:

# tmutil compare fichero_en_backup fichero1 fichero2...

- Iniciar copia de seguridad:

# tmutil startbackup

- Detener copia de seguridad:

# tmutil stopbackup

 

Como siempre, recomiendo echarle un vistazo a la página del manual, en la cual se recogen todas las opciones de este comando, con las cuales nos podremos construir un script para ajustar aún más las necesidades de copia de seguridad, así como poder automatizar las mismas, de una forma totalmente controladas, sacar informes, etc.
Un Saludo,

 

22 nov 2011

DNSRecon enumeración DNS

Hola!

Muy buenas a todos/as!

Cuando queremos saber algo sobre un target específico al que queremos auditar intentamos siempre obtener información pública sobre el objetivo. Información que nos puede ser útil es obtener el registro DNS del objetivo, nos puede dar una idea del servicio que ofrecen y otras puertas de entrada por las que entrar.

Con DNSRecon es posible hacer pruebas y extraer información

Ponemos un ejemplo:

dnsrecon seifreed$ python dnsrecon.py -t axfr -d ejemplo.es[*] Testing NS Servers for Zone Transfer[*] Checking for Zone Transfer for ejemplo.es name servers[*] 127.0.0.1 Has port 53 TCP Open[*] Trying NS server 127.0.0.1[*] Zone Transfer was successful!![*]    SOA ejemplo1.ejemplo.com.[*]    NS ejemplo.ejemplo.com.[*]    NS ejemplo.ejemplo.com.[*]    TXT v=spf1 a mx ip4:127.0.0.1 ~all[*]    MX @.ejemplo.es mail[*]    A @.ejemplo.es 127.0.0.1[*]    A pop.ejemplo.es 127.0.0.1[*]    A ftp.ejemplo.es 127.0.0.1[*]    A www.ejemplo.es 127.0.0.1[*]    A ejemplo.ejemplo.es 127.0.0.1[*]    A localhost.ejemplo.es 127.0.0.1[*]    A mail.ejemplo.es 127.0.0.1[*]    A smtp.ejemplo.es 127.0.0.1[*]    A www.ejemplo.ejemplo.es 127.0.0.1[*] 127.0.0.1 Has port 53 TCP Open[*] Trying NS server 127.0.0.1[-] Zone Transfer Failed!

Podemos tambiñen usar google para enumerar también un ejemplo con uned

dnsrecon seifreed$ python dnsrecon.py -t goo -d uned.es[*] Performing Google Search Enumeration against uned.es[*]    A nlp.uned.es 62.204.192.135[*]    A www.uned.es 62.204.192.16[*]    A portal.uned.es 62.204.210.68[*]    A serviweb.uned.es 62.204.192.172[*]    A sameens.dia.uned.es 62.204.192.16[*]    A info.uned.es 62.204.192.16[*]    A biblioteca.uned.es 62.204.194.52[*]    A sensei.lsi.uned.es 62.204.192.135[*]    A rsc.uned.es 62.204.192.146[*]    A www.fisfun.uned.es 62.204.197.198[*]    A www.fundacion.uned.es 62.204.192.153[*]    A adenu.ia.uned.es 62.204.199.151[*]    A www.apsiol.uned.es 62.204.192.92[*]    A www.lsi.uned.es 62.204.192.87[*]    A www.ii.uned.es 62.204.199.30[*]    A intecca.uned.es 193.146.230.194[*]    A www.mat.uned.es 62.204.202.89[*]    A www.ia.uned.es 62.204.199.17[*]    A www.intecca.uned.es 193.146.230.194[*]    A volta.ieec.uned.es 62.204.201.30[*]    A www.euclides.dia.uned.es 62.204.199.111[*]    A www.issi.uned.es 62.204.207.126[*]    A enlace.uned.es 62.204.207.43[*]    A lab.dia.uned.es 62.204.199.62[*]    A wainu.ii.uned.es 62.204.199.31[*]    A ocw.innova.uned.es 62.204.210.8[*]    A atlas.uned.es 62.204.199.25[*]    A www.iwinac.uned.es 62.204.199.18[*]    A www.madrid.uned.es 62.204.192.153[*]    A aula.meca.uned.es 62.204.201.95[*]    A ltcs.uned.es 62.204.207.43[*]    A www.innova.uned.es 62.204.210.14[*]    A tallerdigital.uned.es 62.204.199.66[*]    A clubdelectura.uned.es 62.204.210.4[*]    A bender.lsi.uned.es 62.204.207.42[*]    A dfmf.uned.es 62.204.197.49[*]    A www.dfmf.uned.es 62.204.197.49[*]    A fundacionweb.uned.es 62.204.192.90[*]    A www.cvhce.uned.es 62.204.192.16[*]    A www.scc.uned.es 62.204.199.66[*]    A paraisomat.ii.uned.es 62.204.199.32[*]    A listserv.uned.es 62.204.192.34[*]    A apliweb.uned.es 62.204.192.171[*]    A www.cuid.uned.es 62.204.192.16[*]    A virtual0.uned.es 62.204.192.48[*]    A www.ieec.uned.es 62.204.201.31[*]    A www1.fundacion.uned.es 62.204.192.16[*]    A debian.adenu.ia.uned.es 62.204.199.172[*]    A sociored.uned.es 62.204.192.16

Esta herramienta nos puede ser útil para, de manera rápida obtener información que necesitemos

Para descargar la herramienta nos dirigimos aquí

Un saludo a todos/as!

 

21 nov 2011

PoC - Detectando MItM con Xarp

Buenas a todos, hoy os traemos un vídeo en el que os mostraremos como es posible mediante la herramienta Xarp detectar ataques de tipo Man in the Middle que intenten realizar un ARP Spoofing.

Para la demostración hemos utilizado una máquina virtual con Windows 7, que hará el papel de víctima, con Xarp instalado, y una máquina física que realizará el envenenamiento ARP con Cain.

[youtube 7abgvLxFkWE nolink]

Deciros también que la herramienta Xarp podría dar falsos positivos, por lo que nosotros solemos preferir utilizar nuestros propios scripts, como por ejemplo los siguientes para bash: http://www.flu-project.com/mitm-detectandolo.html, ¿os atrevéis a pasarlos a powershell?

Saludos

20 nov 2011

Informe Flu - 46

Disfrutad del resumen:

Lunes 14 de Noviembre
  • ¿Cain no recupera las credenciales de algún site? ¿Has probado a añadir nuevos campos que permitan a Cain identificar donde viaja el usuario y la contraseña en un formulario al hacer un submit? Aprendelo en el artículo: Cain: HTTP Fields
Martes 15 de NoviembreMiércoles 16 de NoviembreJueves 17 de NoviembreViernes 18 de NoviembreSábado 19 de Noviembre

19 nov 2011

Localizando el teléfono y la dirección de un famoso

Hace unos días saltó el boom a meneame sobre la página Web www.abctelefonos.com, desde la que con un simple número de teléfono se puede saber quién es el dueño de la línea, su dirección física y otros datos.

Esta práctica no es legal si no hay un consentimiento previo por parte de los usuarios. Según la AEPD, "el tratamiento de datos personales en las guías inversas, es decir, la posibilidad de averiguar datos personales relativos a la persona física a partir de un número de teléfono cuyo abonado es desconocido constituye un uso totalmente diferente de la finalidad establecida de las guías telefónicas convencionales, cuyo fin es revelar el número de teléfono de un abonado a partir del nombre"

Sin embargo, otra utilidad maliciosamente interesante que he visto es la de búsqueda de nombres, en vez de la de teléfonos. Para las personas fanáticas de algún "famoso", que estén dispuestas a ir a tocar el timbre de su casa si supiesen donde vive, les es tan sencillo como buscar su nombre completo en Wikipedia, copiarlo en el buscador de www.abctelefonos.com, y disfrutar de los resultados:

 

¿Ahora quién dice que no tenemos nuestra vida en Internet?

Saludos!

 

18 nov 2011

Explotar vulnerabilidad SSL

Hola!

Muy buenas a todos/as!

En una negociación SSL entre cliente servidor, cuando se negocia el cifrado en la parte servidor existe una gran carga de trabajo, en el servidor la carga de trabajo es 15 veces mayor que en el cliente. La vulnerabilidad se puede explotar con un simple openssl y pasándole unos parámetros. El atacante para explotar esta vulnerabilidad, buscará que el servidor además soporte renegociación, para que en una misma conexión TCP se pueda pedir varias veces renegociar la conexión de manera que el servidor se cargará con una gran carga de trabajo. He montado un servidor en local en el cual haremos las pruebas. La herramienta para explotar este fallo es thc-ssl-ddos

Aquí tenéis una imagen de la carga de un servidor web:

La carga del servidor es totálmente normal, ejecutamos la herramienta para explotar la vulnerabilidad.

La carga del servidor sube hasta el 100 por 100

Hemos podido comprobar como la carga del servidor ha subido bastante.

Las medidas para mitigar este ataque se basan en configurar que el servidor NO soporte renegociación y, además instalar aceleradores SSL por ejemplo.

El código del THC, se puede modificar y añadirle mas funcionalidades, por ejemplo el que se muestra aquí

 

Un saludo a todos

 

17 nov 2011

FScan: cuida tus malas configuraciones

Buenas a todos

Hoy os quiero hablar de una herramienta un tanto vieja pero funcional. Se  trata de Fast HTTP Auth Scanner creada por @atarasco; un software programado en C++ que nos permite escanear rangos de IP’s en busca de routers poco protegidos. Si bien con Nmap o cualquier otro escaner podríamos buscarlos, la gracia de esta aplicación es que no solo prueba los usuarios y contraseñas que traen por defecto, sino que podemos añadir nuestra propia lista de combinaciones, especificar los puertos por los que probar, el tipo de login que debe buscar el programa, etc.

Andrés Tarasco, creador de esta máquina de matar, publicó en su día el código de la aplicación por lo que podremos modificarlo a nuestro antojo además de estudiar el interesante comportamiento de la misma. Sin más teoría vamos a probar esta interesante “tool” que no debería faltar en nuestro kit de herramientas.

Al ejecutar fscan desde la línea de comandos, se nos muestra los atributos que podemos darle al programa, como podéis ver muy sencillos e intuitivos.

Aquí podéis ver un ejemplo sencillo, buscando routers con el puerto 80 abierto sin mayor complicación.

En el caso de hacer una auditoría a una empresa que tenga un rango de IPS estáticas contratadas, siempre puede ser útil probar si tienen algún despiste de estos para acceder a la configuración del Router y habilitar una VPN y conectarnos a la LAN corporativa. Como eso es poco probable, siempre nos queda la opción de buscar routers que quieran compartir su información con nosotros y pasar un buen rato :) siempre probando en nuestros propios equipos, ya que jugar con el router del vecino es una práctica ilegal!

16 nov 2011

SPF Security (Spam-Phising Fucked...) I de II

Buenas a todos, entre ofertas de viagra, alargamientos de pene, viajes a Cancún, cartas nigerianas y otras tantas variantes spamicas que surfean cada día por nuestros buzones de correo, parece más una tarde cualquiera de un programa de telecirco, que un buzón donde recibir los mensajes de correo cada día. Esta avalancha de SPAM, phising, etc. ha sido posible debido a que cuando se ideó el sistema de correo electrónico, éste no contemplaba la seguridad como una premisa, y se daba por supuesta la confianza de que los correos electrónicos llegarían de donde deberían llegar (ingenuos…)

Seguro que más de uno habréis recibido alguna vez un email en el que han suplantado la dirección del emisario. Es realmente sencillo enviar un e-mail simulando ser enviado desde por ejemplo una cuenta como jlrzapatero@lamoncloa.gob.es, y a menos que nuestro modo paranóico nos haga revisar la cabecera del email (que viendo el emisario yo al menos lo haría...), o de acostumbrarnos a enviar los mensajes firmados y cifrados, como ya os enseñamos en la cadena de artículos sobre GPG, podrían colarnos un fake por donde amargan los pepinos.

Para paliar este agujero de seguridad, hace unos años se creó el protocolo Sender Policy Framework, conocido como SPF y abierto como HTTP o SMTP. Su objetivo es identificar, a través de la dirección IP (por los registros DNS) a los servidores de correo SMTP que están autorizados para enviar correos desde un dominio concreto. Ahora hablaremos de él más en detalle, pero antes me gustaría comentar las alternativas propietarias por las que se han encaminado algunos fabricantes como Microsoft o Yahoo.

Microsoft propuso su propio protocolo para garantizar envíos seguros, al que denominó Caller-ID (implementado en Exchange). Es muy similar a SPF con la salvedad de que se basa en el estándar XML para el almacenamiento de los datos. Lo que a priori parece un pro, se convierte en un contra debido a que los registros DNS solo disponen de 512 bytes para almacenamiento, y todos sabemos que añadir etiquetas XML requiere de un mayor espacio, y por tanto en este caso, aumentan el peso de las peticiones. Por ello, Microsoft propone que las entradas DNS vayan sobre TCP.

Al otro lado del Ring tenemos a Yahoo, que propuso un sistema basado en claves asimétricas, muy semejante a PGP, al que denominó DomainKeys.

Hay algunas más, pero en este artículo no las analizaremos.

Volviendo al tema de los SPF, para que pueda funcionar este sistema son necesarias dos cosas, la primera es que el servidor emisario disponga del registro TXT en el servidor DNS y la segunda, lógicamente, que ambos servidores de correo, emisario y receptor, operen con registros SPF.

Vamos a ver un ejemplo de configuración SPF, por ejemplo, en el correo de Google. Para ello utilizaremos la herramienta nslookup (que tenéis disponible en Windows y Linux vía consola), de la que ya hemos hablado largo y tendido en nuestro libro La Biblia del Footprinting, y que integra Anubis v1.3:

C:\Users\Admin>nslookupServidor predeterminado:  ***.***.216.87.static.******.esAddress:  ***.***.1.65> set type=txt> google.comServidor:  ***.***.216.87.static.******.esAddress:  ***.***.1.65Respuesta no autoritativa:google.com  text = "v=spf1 include:_netblocks.google.com ip4:216.73.93.70/31 ip4:216.73.93.72/31 ~all"

Fijaros en el registro TXT:

"v=spf1 include:_netblocks.google.com ip4:216.73.93.70/31 ip4:216.73.93.72/31 ~all"

Como veis, se parece a lo siguiente:

"v=spf1 +a +mx +ptr include: flu-project.com exp=spf-err ~all"

Vamos a analizar cada una de las partes que podría contener:

v=spf1Número de versión, que siempre será la misma ya que actualmente solo existe una.
a, mx, ptr y include Los registros existentes (direcciones, correo, resolución inversa, etc.).
+, ~Prefijos que preceden a los registros
exp Modificadores.
allIndica todas las IPs.
include Dominios externos usados por los emisores de e-mails locales.
a Todas las IP del registro DNS A.
mx Todos los registros A de cada registro host MX.
ptr Todos los registros A de los registros host PTR.
ip4 Dominios que utilizan IPv4.
existsExcepciones.
redirectUtiliza los registros SPF del dominio definido
+ La dirección ha superado el test (+all)
- La dirección ha suspendido el test (-all)
~La dirección ha suspendido el test pero el resultado no es definitivo (Digamos que aplica la política de que si no está seguro, se abra la puerta al correo, ~all)
? La dirección no ha superado el test. Ejemplo: ?all

Como podéis ver, en el caso del correo de Google, tienen configurado SPF con ~All, lo que quiere decir que aunque suspenda un email el test, no es definitivo y puede que el correo sea aceptado (dependiendo de su contenido, como vamos a demostrar ahora). Veamos un par de ejemplos. Vamos a enviar un email a una cuenta de Gmail suplantando una cuenta de correo y añadiendo en el cuerpo del mensaje muchos enlaces y palabras como "Viagra" o "Porno", para intentar suspender el test, y por otro lado enviaremos un email suplantando una cuenta de correo, pero con un cuerpo de mensaje normal:

Mensaje con contenido poco agresivo con email suplantado, recibido correctamente en la bandeja de entrada:

Mensaje agresivo con email suplantado, recibido en la bandeja de SPAM:

Queda demostrado, que al menos en el caso de Gmail, el contenido importa ¿no?

Si analizamos el código fuente del mensaje, veremos como ambos han sido catalogados como "neutral":

Mientras que si analizamos el código fuente de un mensaje legítimo, veremos como ha sido catalogado como "pass":

En el próximo post hablaremos de como configurar el registro TXT.

Saludos!

15 nov 2011

BadStore, SQLi y otras chicas del montón

Buenas a todos otra vez, como no me quedé demasiado a gusto con que mi primer post aquí fuese “de opinión” me gustaría compartir una de las demos que no me dio tiempo a hacer (error de principiante :) en el HM.

No me voy a extender explicando lo que es un SQLi o inyección SQL porque en este blog hay información más que suficiente sobre el tema. El entorno que voy a utilizar es el siguiente:

- Badstore: Máquina virtual con aplicación web vulnerable.

- W3af: Escáner de vulnerabilidades web.

- SQLMap: “automatic SQL injection and database takeover tool”

NOTA: En este artículo de este mismo blog se explica como obtener la máquina virtual y ponerla andar.

El primer paso es identificar las vulnerabilidades, como sabéis, la forma típica suele ser introducir alguna comilla en algún formulario. Si probamos a pasarle una doble comilla en el campo “Search” pasa lo siguiente:

Vemos que tiene toda la pinta de que va a ser vulnerable :).

Para intentar encontrar más vulnerabilidades de este tipo vamos a utilizar el escáner W3af. Más de una vez escuché que la interfaz gráfica no va demasiado fina, lo cual es verdad si seleccionamos demasiados plugins, pero usando los típicos como “sqli” y “xss” no suele dar problemas. Por supuesto que no va a encontrar todas las vulnerabilidades de una aplicación, al igual que cualquier otro software de este tipo, pero está al nivel de los de pago en cuanto a las detecciones, aunque suele encontrar más falsos positivos que éstos.

Como vemos en la imagen la interfaz es sencilla de configurar, simplemente elegir “empty profile” y veremos que los plugins están colocados por grupos. Del grupo “Audit” seleccionamos “sqli” y de “Discover” hacemos lo propio con “webSpider”. Para la salida es cómodo seleccionar que, a mayores de mostrar los resultados en la propia aplicación, los almacene en otro formato para su posterior consulta, elijo “html” en este caso.

Al pulsar en el botón iniciar veremos como empieza a trabajar:

Y tras finalizar nos mostrará los resultados encontrados, 6 SQLi en este caso. Si seleccionamos en alguno, podemos consultar con más precisión que parámetro es vulnerable y la cadena con la que lo descubrió:

Podemos consultar además los resultados en formato html:

En este punto tenemos localizados los parámetros vulnerables, así que llegó el momento de explotarlos. Para hacerlo también de forma automática utilizaremos la herramienta SQLMap, lo primero es confirmar que no estemos ante un falso positivo, yo suelo hacerlo pidiéndole que identifique la versión del SGBD que utiliza la aplicación con el siguiente comando:

NOTA: En este ejemplo se intenta atacar el parámetro “searchquery”.

./sqlmap.py -u "http://192.168.122.63/cgi-bin/badstore.cgi?searchquery=hi&action=search&x=0&y=0" -b

Como vemos que parece que funciona le decimos ahora que nos identifique el nombre de la BD que utiliza la aplicación:

./sqlmap.py -u "http://192.168.122.63/cgi-bin/badstore.cgi?searchquery=hi&action=search&x=0&y=0" --current-db

Podríamos decirle también que intente identificar las tablas de esa BD, esto llevará un rato porque prueba con los nombres comunes:

./sqlmap.py -u "http://192.168.122.63/cgi-bin/badstore.cgi?searchquery=hi&action=search&x=0&y=0" --tables -D badstoredb

Ahora haríamos lo mismo para las columnas y seguiríamos utilizando los parámetros que nos ofrece la herramienta hasta obtener la información que creamos oportuna. Enumero aquí algunos interesantes para los que os apetezca probarlos ;)

wizard, is-dba, tor, gpage, cleanup, beep, current-user, dump[-all], agent ...

 

14 nov 2011

Cain: HTTP Fields

Cain & Abel es una herramienta que ya hemos utilizado en Flu Project y que es suficientemente conocida por entidad propia y por todos los años y servicios que ha dado a distintas generaciones de amantes de la seguridad informática. Las opciones de Caín parecen no finalizar, aumentando y mejorando en cada nueva versión.

Hoy os traigo los HTTP Fields, una pequeña base de datos que contiene los parámetros HTTP que Caín comprobará para capturar las credenciales en los paquetes HTTP. ¿Para qué? Alguna vez los usuarios podrán haberse preguntado, ¿Por qué Caín no me muestra la credencial de dicha página web si viaja en HTTP? Es fácil, puede ser que Caín no tenga configurado por defecto la opción para comprobar los parámetros que contienen el usuario y la contraseña en el paquete HTTP. A continuación os presento un ejemplo de lo que se comenta.

La página para la prueba es la de www.dealextreme.com, en la cual podremos obtener artículos interesantes a un coste bajo, e incluso con envío gratuito... pero esto no es publicidad, o al menos no nos la paga dealextreme así que hands on cain. En la siguiente imagen observamos dónde Caín muestra su pequeña base de datos sobre los HTTP Fields que buscará. Para mostrar la ventana de opciones hay que pulsar sobre Configure en el menú superior.

Ahora debemos buscar los parámetros de la petición HTTP que realizamos cuando nos estamos logueando sobre el servicio de DealExtreme. Abriremos un Wireshark para ayudarnos y poder visualizar correctamente y rápidamente los parámetros HTTP que contienen dicha información. Una vez dispongamos de ellos añadiremos dichos parámetros a esta pequeña base de datos.

Con Wireshark capturando, abriremos un navegador y probaremos a autenticarnos en el sistema de DealExtreme de una manera, totalmente, falsa. Nos vale detectar en Wireshark dicha petición y obtener los parámetros mediante un filtro en Wireshark. Toda esta acción se puede visualizar a continuación.

Copiamos mediante botón derecho Copy -> Bytes -> Printable Only Text el contenido filtrado y lo pasamos a un notepad o notepad++, para poder observarlo mejor. A continuación miramos los parámetros que contienen el usuario y contraseña que nosotros introducimos con anterioridad y disponemos de los parámetros HTTP para añadir a HTTP Fields.

Observamos como el parámetro de usuario se denomina txtLoginEmail y el de password se denomina txtPassword. Ahora lo añadimos a los HTTP Fields de Caín y conseguiremos que Caín los detecte automáticamente.

Os recomendamos la automatización de la captura de credenciales en plano, gracias a HTTP Fields. Opción muy interesante.

 

13 nov 2011

Informe Flu - 45

Disfrutad del resumen:

Lunes 7 de Noviembre
  • Pablo finaliza su cadena de artículos sobre pass the hash o impersonalización de credenciales de usuarios Windows, ¡no os lo perdáis!: Impersonalización (Parte II de II)
Martes 8 de Noviembre
  • Nuestra blogger Karina nos cuenta en este artículo sobre la mujer en el mundo de la seguridad y nos habla de algunas de las mujeres más importantes, que han revolucionado la informática como por ejemplo la increíble Joanna Rutkoska o Grace Murray HopperSeguridad, ¿Un área solo para hombres?
Miércoles 9 de Noviembre
  • El miércoles os hablamos sobre como podréis conseguir un 25% de descuento en las entradas de la conferencia SOURCE Con 2o11. , Para ello hemos creado un hashtag en twitter denominado #FluSource2k11 al que deberéis enviar un tweet escribiendo un mensaje para obtener el 25% de descuento en vuestra entrada.
Jueves 10 de NoviembreViernes 11 de NoviembreSábado 12 de Noviembre
  • Jorge se estrena como blogger en Flu Project hablándonos sobre las distintas plataformas móviles del mercado. En el primer artículo de esta cadena nos cuenta a modo introductorio los inicios de las plataformas líderes:  Plataformas móviles. Parte 1

12 nov 2011

Plataformas móviles. Parte 1

Este artículo en ningún momento pretende ser un calco de la historia de las diferentes plataformas, con todos los detalles y matices, como se podrá comprobar. Tampoco es una comparativa de las plataformas, que si una es mejor que otra y demás. Cada una tiene sus puntos buenos, y malos, como todo, al final son herramientas, que cada uno use la que mejor le venga.

Al lío. Hasta hace relativamente poco, los móviles eran esos aparatos con los que se podían realizar llamadas, enviar mensajes, funciones de calendario y poco más. Había un pequeño mercado para profesionales, donde dominaba RIM por la integración del correo de la empresa en el terminal. La esperanza de vida, dependiendo del tipo de usuario, podía estar entre 1, 3 o 5 años, pero los motivos de cambio creo que no han variado demasiado (más características como cámara, pantalla a color, vibrador o simple rotura). Daba igual, durara lo que durara, en todo

ese tiempo, no se actualizaba, ni se instalaban aplicaciones (algo en Java, juegos sobre todo, pero poquito)... Eso era cosa de los ordenadores (casi ni eso :P).

De repente, en el 2007 salió al mercado el iPhone. Supuso un antes y un después en muchos aspectos como en la interfaz de usuario, los gestos multitáctiles... pero también surgió una plataforma sobre la que poder desarrollar en el terminal móvil, tal vez no se vio así al principio pero cuando se lanzó la appstore ya quedó claro. Otro paso importante, casi definitivo para ver claramente a iOS como plataforma vino con su primera actualización, donde en el mismo terminal o dispositivo (también estaba el iPod Touch) se tenían nuevas funcionalidades (AppStore). No había que comprar un nuevo cacharro para disponer de las novedades y nuevas características.

Después han venido nuevas plataformas como Android, WebOS, Windows Phone, ¿Meego?... Sí, alguno pensará que me he olvidado de Symbian. Es cierto que lleva bastante más tiempo que el resto, pero el número de usuarios que lo usaban como plataforma (no como teléfono normal y corriente), los desarrolladores de aplicaciones... muy reducidos (supongo que se adelantó a su tiempo, ya que todo el auge de éstos dispositivos ha venido también con las líneas de datos a precio "decente" para la gente de a pie). Con iOS, de casualidad o no, llegó ese comportamiento de querer actualizar el SW para poder tener nuevas funcionalidades (vale, lo más llamativo fue el corta/pega después del acceso a la appstore), desde iTunes, se sugerían las nuevas versiones y, por lo general, la gente actualizaba/actualiza esperando nuevas características, pero también parcheando el sistema, aunque no lo supieran. Digamos que se consiguió integrar ese comportamiento en el usuario medio. Puede que éste no entienda para qué sirve, o las consecuencias, pero sí es cierto que tiene el terminal actualizado. No quiero decir que todos lo hagan pero sí muchos más de lo que lo hacen en otras plataformas.

Sirva esto como introducción, en la siguiente parte veremos cómo están implementadas las dos plataformas mayoritarias (Android e iOS), con sus pros y contras para el usuario normal, proceso de actualización del software de los terminales, bien por nuevas características, como por cuestiones de seguridad.

11 nov 2011

De paso por el Hackmeeting 2o11

Buenas a todos, me propusieron que hiciese una crónica sobre el Hackmeeting de este año (MeigHacks) en A Coruña y aquí estoy, pero antes de nada me gustaría dejar claro que este post refleja mi opinión personal y parcial, ya que solo pude asistir una tarde y una noche (sí, también hay charlas de noche :) principalmente por preparar lo mejor posible el nodo que impartí (allí las charlas se llaman así).

Lo primero es aclarar que el Hackmeeting (HM a partir de ahora) no es un CON de seguridad como se suele pensar en un principio, se trata de un evento en torno al hacktivismo y la cultura libre, especialmente sobre software y medios libres. Sí es verdad que a las primeras ediciones asistieron los principales grupos de hackers de la época, así que ésa era la idea que tenía yo desde hace bastantes años. Aquella época que nos pasábamos el día en el irc y leíamos la SET-ezine en la que yo no podía asistir :(. Por diversos problemas, en los que no voy a entrar para no extenderme, la presencia de temática sobre la seguridad de la información fue desapareciendo hasta el punto de que casi no se imparten nodos, para el que quiera enterarse un poco más del tema recomiendo esta lectura. Ésto en un principio me desanimó bastante pero luego decidí que iba a proponer uno, precisamente porque una de las ideas principales de este tipo de eventos es que si algo no te gusta puedes cambiarlo.

Otro aspecto a tener en cuenta es que se celebra siempre en una casa ocupada y se trata de un evento autogestionado, lo que quiere decir que todo el mundo participa en la organización en la medida que le apetece, con sus ventajas e inconvenientes. Así que, tanto si vas de visita como a dar un nodo, tómatelo con calma porque los horarios son muy muy flexibles, incluso el orden de las charlas. Un consejo, búscate alguien que amadrine tu nodo con tiempo, es una persona que suele conocer la casa y a la gente, se encarga de echarte una mano para conseguir el proyector, luz y demás... Aunque pueda sonar un poco extraño todo esto en un principio, este pequeño descontrol queda de sobra compensado con el buen ambiente y las ganas de hablar de todo el mundo, en especial de tecnología.

Respecto al nivel técnico, a mi me sugirieron que preparase algo sencillo para que todo el mundo puediese asistir, de hecho en las que tuve la oportunidad de ver era una constante, en temas que no controlas es de agradecer y en los que sí, se puede hacer algo pesado. En lo relativo al mío, el título de la charla era Herramientas de botón gordo y hacktivismo, así que todos os podéis hacer más o menos una idea, básicamente mostré como utilizar muchas de las herramientas que se tratan en este blog, entre ellas nuestro “verme” (como se dice por aquí ;) verde. Me comentaron que en la zona de “cacharreo” sí se tratan temas más en detalle, pero como estuve poco tiempo tampoco pude disfrutar esa parte como se merece.

Me gustaría animaros a todos asistir en próximas ediciones proponiendo nodos, porque creo que sería muy interesante volver a darle un poco el toque de seguridad y porque, por lo que noté, es algo que valoran mucho los asistentes. Incluso si no estás de acuerdo con los principios que defiende el hacktivismo y lo que te interesa son las charlas a nivel técnico, estoy seguro de que nadie va a poner ningún tipo de problema en que participes y las disfrutes como uno más.

Mi valoración final es más que positiva, primero porque desde pequeño quería asistir y acabé participando con un nodo y segundo porque, en el poco tiempo que estuve, tuve la oportunidad de conocer y hablar con un montón de gente interesante. De hecho, están montando un Hacklab para reunirnos gente de la zona, así que si alguno de los que lee anda por aquí y le apetece, que se anime a pasarse :).

10 nov 2011

Curso de introducción a Android VII (Broadcast Receivers, o cómo averiguar qué trama tu novia en su móvil..., Parte I)

Dejando un poco de lado el desarrollo del Flu Bot para móviles, hoy nos vamos a centrar en una funcionalidad que ofrece el SDK de Android y que permite el desarrollo de aplicaciones muy interesantes, la clase Broadcast Receiver.

En esta primera parte del artículo, vamos a centrarnos en definir qué es un Broadcast Receiver y qué se puede conseguir con esta clase. Posteriormente, mostraremos un ejemplo de aplicación que todos podréis probar en vuestro teléfono o emulador (siempre con fines didácticos por favor, lo del título es una coña :P)

¿Qué es un Broadcast Receiver?

Un Broadcast Receiver es una especie de receptor de los eventos que produce el sistema operativo Android. Típicamente, un Broadcast Receiver se utiliza para mostrar notificaciones de los eventos que ocurren en nuestro teléfono móvil, como por ejemplo el descubrimiento de una red wifi o el agotamiento de la batería. Nosotros vamos a aprovechar esta funcionalidad para hacer cosas un poco más maliciosas.

¿Qué eventos puedo capturar?

Me podría tirar todo el día escribiendo la cantidad de eventos del móvil que podemos capturar, de todas formas os pongo algunos de los más interesantes:

android.provider.Telephony.SMS_RECEIVED Evento de mensaje recibido.android.intent.action.PHONE_STATE Evento de llamadas recibidas.android.intent.action.AIRPLANE_MODE Evento modo vuelo. android.intent.action.BATTERY_LOW Evento batería baja.android.intent.action.BOOT_COMPLETED Evento de inicio del sistema operativo.android.intent.action.SCREEN_OFF Evento bloqueo de pantalla.android.intent.action.SCREEN_ON Evento desbloqueo de pantalla.android.bluetooth.intent.action.DISCOVERY_STARTED Evento comienzo de escáner Bluetooth.android.bluetooth.intent.action.ENABLED Evento Bluetooth habilitado.

Ejemplo de aplicación: nunca una llamada perdida fue tan peligrosa.

A continuación, vamos a poner en práctica la teoría propuesta con la realización de una aplicación basada en un Broadcast Receiver. Esta aplicación se ejecutará en el teléfono móvil de la víctima, de forma que cuando reciba una llamada perdida de un teléfono en concreto, enviará los mensajes de su bandeja de entrada a un servidor definido por nosotros.

Este Broadcast Receiver irá camuflado en una aplicación, aparentemente benévola, que será la encargada de lanzarlo. A continuación mostramos el código que lanza el Broadcast Receiver.

clip_image002

Como podemos observar, la aplicación que lanza el Broadcast Receiver es la más sencilla del mundo, no nos hemos complicado, ya que lo interesante está en las líneas de creación del Intent correspondiente al Broadcast Receiver y la forma de lanzarlo mediante el método sendBroadcast.

Después de ver la aplicación que lanza el Broadcast Receiver, vamos a ver qué pinta tiene el código del mismo.

clip_image004

Esta clase será la encargada de interceptar las llamadas que hagamos al teléfono. Como podemos ver, simplemente heredamos de la clase Broadcast Receiver y reescribimos el método onReceive que se activará cuando se produzca el evento al cual nos hemos registrado (más adelante veremos cómo registrarnos). Dentro del método onReceive activaremos el manejador necesario para tratar la llamada interceptada, este proceso se realiza mediante la instancia a la clase manager del teléfono TelephonyManager y a la implementación de un listener que implementará de la clase abstracta PhoneStateListener.

La clase correspondiente al listener de llamadas MyTelephonyManager tiene esta apariencia.

clip_image006

Lo primero que hacemos en el constructor de la clase es guardarnos el contexto que nos pasa el Broadcast Receiver, de esta forma podremos acceder a métodos que dependen de él más adelante. Posteriormente, cuando una llamada se produzca, se activará el método onCallStateChanged de nuestro listener y será ahí donde filtremos el tipo de llamada. En este caso no hemos filtrado por número, pero podéis hacerlo usando el parámetro incomingNumber del método. Una vez filtrado que la llamada está en estado RINGING (en el código os pongo los demás estados para indicar los que existen) procedemos a leer los mensajes de la bandeja de entrada mediante nuestro método moduleGetSMS. Dentro de este método nos declaramos la URI donde se encuentra la bandeja de entrada de los mensajes y nos ponemos a leer mediante un puntero a cada registro que compone un sms. Cada SMS leído tendrá esta pinta:

From:<tlf origen del sms> : <cuerpo del sms>

Una vez formado el string de los mensajes, lo mandamos por un socket mediante el método sendSMSInfo (si la información es muy grande lo ideal sería trocearla en varios String, este código es sólo una prueba).

Por último, debemos hacer unas pequeñas variaciones en nuestro querido AndroidManifest.xml. Estas variaciones consisten en dar permisos a la aplicación para que pueda manejar el manager de llamadas, el manager de mensajes, la salida a Internet y, por último, registrar el Broadcast Receiver para que capture eventos de llamadas. Nuestro AndroidManifest.xml quedaría de la siguiente manera:

clip_image008

Para finalizar, comentar que los Broadcast Receiver quedan registrados en el teléfono una vez lanzados, de forma que si lo reiniciamos seguiremos teniendo activa la funcionalidad. Otro detalle muy importante es que son invisibles, no aparecen ni en Aplicaciones Activas ni en Servicios en Ejecución y, por supuesto, no hace falta tener la aplicación que lo lanza activa para poder disfrutar de sus funciones.

Como siempre, os adjunto el código, espero que os guste...

Saludos!!

 

Recursos: Código Fuente

 

===============================================================

Curso de introducción a Android (Instalación del Android SDK + Hello World)

Curso de introducción a Android II (Creando nuestra primera aplicación)

Curso de introducción a Android III (Escáner de redes WIFI)

Curso de introducción a Android IV (Crackeando redes Wifi)

Curso de introducción a Android V (Flu-AD)

Curso de introducción a Android VI (Flu-AD)

Curso de introducción a Android VII (Broadcast Receivers, o cómo averiguar qué trama tu novia en su móvil..., Parte I)

===============================================================

 



9 nov 2011

SOURCE Con 2o11

En Barcelona se celebrará antes de finalizar el año una conferencia muy interesante que mezcla la seguridad informática desde el punto de vista técnico con el mundo empresarial. A continuación el señor Marc Rivero nos ha mandado la nota de prensa dónde se puede leer toda la información necesaria del evento.

SOURCE es la primera y única conferencia que combinaprácticas de tecnología y seguridad con el propio negocio de la seguridad.Con especial atención a los detalles y un énfasis en la calidade innovación de sus contenidos, SOURCE está comprometida con ladivulgación de información en un ambiente dinámico y divertido.SOURCE Barcelona 2011 tendrá lugar en el Museu Nacional D'art deCatalunya en Barcelona (España). Los trainings se llevarán a cabodurante los días 14 y 15 de noviembre, y la conferencia tendrá lugardel 16 de noviembre al 17.Este año, SOURCE contará con dos cursos: Training de pentest enplataformas móviles con Zach Lanier y Jon Oberheide y "Grepping forGold": detección e investigaciónde incidentes de seguridad con Wim Remes y Mertins Xavier.A lo largo de dos días de conferencias (en Inglés y Español), SOURCEBarcelona  se ocupará de temas vitales relacionados con la seguridad,incluida la seguridad móvil, la gestión del riesgo, prácticas deseguridad en la era del anonimato, penetrarion test, seguridad deaplicaciones web, malware, seguridad en la nube, análisis deregistros, la convergencia de seguridad y mucho más.El cartel de presentadores y charlas puede encontrarse en www.sourceconference.com

Concurso

Desde Flu Project nos han autorizado para realizar un 25% de descuento en las entradas de la conferencia, simplemente haciendo ver que vais de parte nuestra. ¿Cómo hacéis esto? Hemos creado un hashtag en twitter denominado #FluSource2k11 al que deberéis enviar un tweet escribiendo un mensaje para obtener el 25% de descuento en vuestra entrada. Cualquier duda no dudéis en comentar.

8 nov 2011

Seguridad, ¿Un área solo para hombres?

A menudo me he preguntado el motivo por el cual pocas mujeres estudian seguridad o se desempeñan en algún cargo a fin. ¿Acaso es una carrera de y para hombres? ¿Hay machismo dentro de ella? ¿Si hay muchas mujeres pero se escudan tras un seudónimo masculino?

Comencé a estudiar seguridad hace pocos años, no les negaré que en multitud de ocasiones me he sentido en un mundo de “hombres”, me he topado con personas que creen que la mujer solo es una envoltura bonita para atraer clientes, o que se solo se puede desempeñar en empleos que requieran poco esfuerzo mental, pero también he conocido personas profesionales, que miran más allá de una simple apariencia física y le dan a la mujer las mismas oportunidades que tienen los hombres.

Muchos se sorprenden de ver a una mujer que sienta pasión por el hacking, no soy una experta, estoy iniciando, pero ¿qué puedo hacer? Esto es lo que me apasiona. El hacking es un estilo de vida, una cultura. Simplemente me atrae.

La razón de este pequeño escrito, es para mostrarles que sí hay mujeres que han sobresalido en estas áreas, podemos mencionar algunas de ellas:

  • Grace Murray Hopper: Conocida como la  Amazing Grace. Fue la primera programadora que utilizó el Mark I, propició la aplicación de los compiladores para el desarrollo de los lenguajes de programación y métodos de validación. En su honor se establecieron los premios “Grace Murray Hopper Adward” que se otorgan a personalidades relevantes del mundo de la computación.
  • Jude Milhon. Hacker y feminista. Programadora informática, defensora de los ciber derechos, creadora del movimiento ciber punk y luchadora por la participación activa de las mujeres en la red.
  • Barbara Thoens una de las pocas integrantes femeninas de CCC (Chaos Computer Club), grupo de élite hacker en Alemania
  • Ø Joanna Rutkoska: posiblemente una de las mayores expertas del mundo en malware.
  • Marissa Mayer, vicepresidenta de Google para productos de búsqueda y experiencia del usuario.
  • Ane McGonigal, diseñadora de videojuegos y autora del libro "La realidad está descompuesta". Ha sido nombrada como una de las 20 mujeres más importantes en la industria de videojuegos.
  • Ada Augusta Byron King considerada como la primera programadora. Dedujo y previó la capacidad de los ordenadores para ir más allá de los simples cálculos de números, mientras que otros, incluido el propio Babbage, se centraron únicamente en estas capacidades.

Queda demostrado que la seguridad no fue hecha solo para los hombres. ¿pero sigo con la misma duda inicial, porque hay tan pocas? ¿Ustedes qué opinan?

7 nov 2011

Impersonalización (Parte II de II)

 

El presente artículo es la continuación de la serie sobre impersonalización realizada en Flu Project. En dicho artículo se tratará la técnica de pass the hash o impersonalización de credenciales de usuarios Windows de una forma práctica y sencilla. Utilizaremos distintas herramientas, las cuales serán explicadas intentando dar una visión global del objetivo y del uso de dicha herramienta.

La primera fase, que no está relacionada directamente con la impersonalización, es la obtención de los hashes y usuarios. Para lograr estas credenciales un atacante podría compremeter un equipo de manera remota, mediante algún exploit y a partir de ahí utilizar alguna herramienta como pwdump. De manera física una de las elevaciones de privilegios más conocidas es la de Sticky Keys, de la cual hablamos en Flu Project.

Proponemos el siguiente entorno, una máquina con XP en la que hemos conseguido un privilegio y podemos ejecutar la aplicación pwdump para obtener la lista de usuarios y hashes LM y NT que hay en el sistema. El objetivo de la propuesta es suplantar la identidad de un usuario de una máquina Windows 7. El usuario de la máquina Windows 7 se encontrará en la máquina XP, pero nosotros no sabemos la contraseña y perderíamos mucho tiempo en crackearla ya que la contraseña es de 14 caracteres o superior, ¿Por qué no?

En primer lugar obtenemos la lista de usuarios y hashes. A continuación vemos un CMD de XP dónde ejecutamos la aplicación con el ataque de Sticky Keys previo.

No hace falta más almacenamos esa información y no perdemos el tiempo en crackear credenciales, las suplantaremos en memoria. Ahora hablaremos de la aplicación Windows Credential Editor, WCE, la cual nos permite, entre otras cosas, realizar el cambio en memoria de las credenciales. Como modificador interesante mostraros el -l, con el que podremos listar las credenciales con las que estoy logueado en cada momento.

En esta imagen no vemos a ningún usuario logueado porque estamos con la máquina recién iniciada y con el ataque de Sticky Keys realizado. Tengo la lista de usuarios y hashes anterior. Con el modificador -s podré especificarle que usuario y hashes quiero suplantar. A continuación veis una imagen del proceso. Hay que introducir la siguiente orden: wce.exe -s <usuario>:<nombreEquipo>:<hashLM>:<hashNT>. Dónde nombre de equipo podría ser un dominio también.

Como aclaración ya hemos puesto el dominio/nombre máquina remota para ir más rápido. El XP tiene como nombre de máquina XP y la máquina Windows 7 a la que queremos acceder tiene como nombre wee-PC. Ya tenemos las credenciales en caliente suplantadas. Ahora entraremos a los recursos compartidos, siendo Administrador un recurso compartido interesante es c$, pero nos valdría para cualquier otro recurso de la máquina remota a la que ese usuario suplantado tuviera acceso.

Vemos el potencial que tiene este tipo de técnica, pero hay algo más la ejecución de procesos remotos gracias a la suplantación de las credenciales. Con la suite PSTools podemos realizar gran cantidad de acciones remotas, una de las más interesantes abrir una shell remota que se ejecuta en la máquina remota y que podemos controlar desde el equipo local. A continuación os dejo la captura utilizando la herramienta PsExec.exe de la suite. Os recomiendo que probéis las diferentes herramientas de la suite ya que son muy interesantes.

Para finalizar comentaros que esta técnica es útil para utilizar en ciertas auditorias y que la idea final es quién tiene un hash tiene acceso. Los usuarios ven importantes las contraseñas y el ponerlas robustas, pero las contraseñas robustas y las frágiles al fin y al cabo son sólo un simple hash LM o NT en los sistemas operativos Windows.

 

=========================================================- Impersonalización (Parte I de II)Impersonalización (Parte II de II)=========================================================