martes, 13 de enero de 2015

Un "hack" con Latch para controlar accesos a Facebook

Autor: Javier Espinosa
Ingeniero "Latch" en Eleven Paths


Desde que se lanzó Latch hace ya un año, incontables han sido los comentarios de gente que se han preguntado si es posible utilizar Latch con los servicios de Internet más utilizados como Facebook, Gmail, Twitter, o para cuándo estaría Latch disponible en estos servicios. Es difícil de decir, cuando esas compañías integra cada una de ellas sus propias soluciones - y algunas de ellas no están disponibles ni tan siquiera en todos los países - como el OTP de Twitter en España y Latinoamérica. A nosotros nos encantaría que lo hicieran, pero mientras tanto, como también nos gusta jugar con la tecnología y aportar soluciones, yo me he hecho un hack para que si en algún momento alguien quiere ser avisado vía Latch en el momento en que alguien acceda a tu Facebook.


Figura 1: Un "hack" con Latch para controlar accessos a Facebook

Como sabéis Latch es sumamente fácil de integrar gracias a sus plugins y SDKs, por eso su variedad de usos y utilidades llegan tan lejos como las ideas de aquellos que decidan integrarlo. En este sentido ya hemos visto integraciones muy interesantes, desde para controlar cerrojos físicos a securizar un lector de DNI­e en el acceso a un recinto, pasando por integrar los routers OpenWRT, el uso de conexiones bluetooth, un servidor FTP, archivos con dos llaves, los propios sistemas OS X, el hot-plug de dispositivos USB o el login en Active Directory. Por eso decidimos premiar los mejores plugins en el concurso que termina esta semana.

Sesiones Activas en Facebook

Hoy vamos a ver cómo podemos añadir una protección extra en nuestra cuenta de Facebook sin necesidad de que este servicio haya realizado la integración con Latch, haciendo un hack para los amigos de hacer cosas curiosas con la tecnología. Para ello, vamos a hacer uso de la función “Dónde has iniciado sesión” que incorpora Facebook en su área de seguridad, dentro del perfil del usuario. En esta sección podemos ver información de que sesiones tenemos abiertas en cada momento, y desde qué dispositivos y plataformas se han abierto; pero sobre todo y lo más importante, incorpora unos enlaces que nos permite cerrar bien todas las sesiones abiertas o bien aquellas concretas que deseemos.

Figura 2: Sesiones abiertas en Facebook

Esto es lo que vamos a utilizar como comprobación y reacción a Latch. Es fácil caer en la cuenta que lo único que tenemos que hacer es monitorizar esta página y en el momento en que se detecte una nueva sesión, realizar una consulta a Latch para determinar si la mantenemos abierta o la invalidamos.

Paso 1: Creación de aplicación Latch para Facebook y el pareado

Por supuesto, lo primero que tenemos que hacer es crear nuestra aplicación en el área de desarrolladores de Latch para obtener tanto un Application Id como un Secreto, la configuraremos con OTP deshabilitado porque no vamos a hacer desafío respuesta con un código.

Figura 3: Creando la aplicación Latch en el Area de desarrolladores de Latch

Con la aplicación creada y, o bien mediante una llamada cURL o bien mediante cualquiera de los SDKs de Latch, realizaremos un pequeño script de pareado donde emparejaremos nuestra cuenta de Latch con esta nueva aplicación. Sirva de ejemplo el siguiente código PHP.

Figura 4: Código de PHP para obtener un pareado con un usuario de Latch

Tras ejecutar el script, obtendremos el AccountId de este usuario. Éste será el AccountId que debemos guardar ya que será sobre el que se deberán realizar las consultas de estado a los servidores de Latch posteriormente. 

Paso 2: Obteniendo las sesiones abiertas en Facebook

Configurada la cuenta de Latch, lo que tenemos que hacer es un servicio que constantemente consulte la siguiente URL, parsear su contenido y extraer en nuestro programa la información de las sesiones abiertas en Facebook:

Este trabajo también podemos realizarlo sobre la URL para la versión de móviles, cuyo contenido es menor y por tanto el proceso será mucho más eficiente en tiempo:


Para realizar esta tarea tenemos múltiples posibilidades, desde scripts que hagan llamadas curl a herramientas de automatización como por ejemplo el Web­driver de Selenium; lógicamente esta última opción ofrece peor performance puesto que estamos innecesariamente renderizando el contenido, pero ilustra mejor esta prueba de concepto. Hay que tener en cuenta que haciendo esto, estamos abriendo una nueva sesión que no deberemos cerrar, para mantener activo el servicio. En cada iteración y carga de dicha URL nuestro servicio deberá:
1. Comprobar las sesiones activas
2. Si aparece una sesión que no tuviéramos almacenada, realizar una llamada de status a la API de Latch.
3. Si la llamada devuelve status “off”, terminar la nueva sesión, en caso contrario almacenarla como sesión abierta.
4. Comprobar si alguna de nuestras sesiones abiertas ya no existe, para eliminarla.
5. Repetir el proceso volviendo a cargar el contenido.
Paso 3: Automatizando con Selenium

Como se ve a continuación podemos realizar en pocas lineas esta tarea con Selenium utilizando el WebDriver de Mozilla Firefox. El propio programa se encargara de lanzar el navegador, únicamente necesitamos tener instalado Firefox en nuestro equipo. El código completo de esta prueba de concepto puede consultarse aquí Hack de Latch para Facebook:

Figura 5: Automatización de Selnium para consultar Latch y bloquear sesiones Facebook
Con esto no estamos bloqueando el acceso a nuestra cuenta, pero si que nos servirá a modo de alertas para saber cuando se ha producido un acceso no autorizado y mitigar su efecto invalidando la sesión y dándonos prisa para cambiar todas las contraseñas.

El usuario será expulsado a los pocos segundos automáticamente o si intenta realizar cualquier acción como por ejemplo leer los mensajes se le redirigirá a la pantalla de login. En el siguiente vídeo podéis ver el funcionamiento de la monitorización con Selenium (parte izquierda) y de un intento de acceso teniendo Latch bloqueado (parte derecha).

Figura 6: Vídeo demostrativo de esta Prueba de Concepto de bloqueo de Facebook con Latch
Este hack se podría utilizar como sistema de alerta, no necesariamente con Selenium, sino con cualquier programa a medida que dejemos funcionando en un servidor en la cloud que nos sirva de "Vigilante" y que pueda usarse, por ejemplo, como forma de Control Parental del uso de Facebook en menores. Recuerda que en Facebook puedes activar el Generador de códigos de la app de Facebook para el terminal móvil, que protege contra conexiones infrecuentes.

Otros hacks posibles con Latch de forma similar

Adicionalmente podríamos utilizar todo el potencial de Latch, añadiendo operaciones para distintos tipos de sesiones dependiendo de dispositivos móviles, equipo de conexión, horas, ubicaciones o direcciones IP ya que toda esta información está disponible. Este mismo concepto, se puede aplicar también de forma análoga en cuentas de Google / Gmail, donde en la parte inferior de nuestra bandeja de entrada, encontraremos un enlace “Información detallada”.

Figura 7: Actividad de cuenta de Google (Gmail)

A través de este enlace podemos abrir una ventana con información de las sesiones activas. En este caso, no podemos cerrarlas individualmente, pero sí podremos invalidarlas todas, haciendo clic en el botón. Cómo veis las posibilidades de integración con Latch son múltiples. En una próxima entrada veremos cómo establecer un sistema de alertas en nuestra cuenta de Twitter con Latch, mientras tanto recordar que aún quedan algún tiempo para participar en el Concurso de plugins de Latch, donde se pueden ganar hasta 10.000$ con ideas - tal vez - como esta.


Fuente

sábado, 10 de enero de 2015

Crackeando redes WPA y WPA2 sin diccionario

Utilizar ingeniería social para crackear redes WPA y WPA2 sin diccionario no es una técnica nueva, pero como con casi toda técnica cuando se automatiza y se facilita su uso se incrementa su popularidad (¿alguien recuerda firesheep?), hoy varios medios se han hecho eco de la herramienta WiFiPhisher publicada en el sitio The Hacker News y la anuncian como si se tratara de una gran novedad. Lo que seguramente desconocen es que ya existían este tipo de herramientas hace años e incluso herramientas creadas por latinos como LINSET (Linset Is Not a Social Enginering Tool) del usuario vk496 de la comunidad SeguridadWireless supera con creses las prestaciones del ya famoso WiFiPhisher.

 

¿Como crackear redes WPA y WPA2 sin diccionario usando estos scripts?


El funcionamiento de todos los scripts de este tipo es básicamente el mismo y siguen el siguiente proceso:
  • Escanea la red buscando redes cercanas.
  • Nos arrojan el listado de redes disponibles (algunos filtran solo redes WPA y WPA2 otros no).
  • Después de seleccionar la red, intenta capturar el handshake (algunos permiten el uso sin el handshake)
  • Con el handshake se crea un falso ap con el mismo nombre que el original y se lanza un ataque DoS a los clientes conectados (buscando que se conecten al falso ap)
  • El script monta un server DHCP sobre la red falsa para que cada petición que haga la victima lo mande a un portal cautivo donde se pregunta la clave (algunos personalizan este portal según la marca del router victima)
  • Se verifica que la contraseña ingresada sea la correcta comparándola con el handshake (algunos permiten capturar simplemente la petición enviada)
  • Si la clave es correcta se detiene el ataque DoS, se baja el servidor web/DHCP y el falso AP y los usuarios pueden volverse a conectar al AP real.
  • El script limpia los temporales creados, limpia iptables, detiene los servicios y deja el sistema como antes de ejecutarse.

¿Por que usar LINSET para crackear redes WPA y WPA2 sin diccionario? 

 

  • Esta escrito nativamente en español
  • Es un solo archivo en el que ingeniosamente incluyen otros (al igual que en las viejas eZines)
  • Tiene soporte de una comunidad (SeguridadWireless)
  • Identifica el fabricante del router y si tiene una pagina para ese fabricante la selecciona
  • Tiene varios idiomas para los portales cautivos
  • Utiliza varios métodos para capturar el handshake
  • Tiene mas tiempo de desarrollo y esta mas maduro
  • Esta integrada en nuestro curso De 0 a Ninja en Seguridad Inalámbrica

¿Por que usar WiFiPhisher para crackear redes WPA y WPA2 sin diccionario?

 

  • Instala automáticamente las dependencias que hacen falta
  • Al tener los archivos separados es mucho mas fácil personalizar el portal cautivo
  • Recibe parámetros lo que permite automatizar un ataque
  • No es necesario capturar el handshake (pero nos pueden meter cualquier clave)
  • Ha ganado mucha free-press posiblemente se vuelva popular y mejore rápidamente

Este es el típico caso donde un proyecto latino que es muy superior es opacado por la falta de promoción por un proyecto europeo que apenas inicia y se dice “novedoso” pero realmente esta re-escribiendo la rueda.

domingo, 4 de enero de 2015

iDict, una herramienta de fuerza bruta para obtener contraseñas de usuarios de iCloud

@Pr0x13 pone a nuestra disposición un pequeño proyecto en Github con una herramienta en php para realizar ataques de diccionario contra IDs de iCloud de Apple, evadiendo las restricciones de bloqueo de cuentas y autenticación secundaria en cualquier cuenta.

Para usarlo simplemente hay que descargar y descomprimir la carpeta en el htdocs del servidor web (probado en XAMP) e instalar CURL en tu SO.
No olvides también habilitar la extensión CURL descomentando la siguiente línea en tu fichero php.ini:

;extension=php_curl.dll

Después ve a http://127.0.0.1/iDict/ en tu navegador web (preferiblemente Firefox, Chrome o Safari).
 

 
Wordlist.txt es de iBrute y satisface los requisitos de contraseña de iCloud

Su autor y por supuesto también nosotros no se hacen responsables de su uso (comprueba las restricciones de tu país). 
 
Actualización: publicada iDictPy, una (irónica lol!) versión en python https://github.com/Pilfer/iDictPy


Fuente 

domingo, 28 de diciembre de 2014

Lista de ciberataques y brechas de seguridad de 2014

Lewis Morgan nos regala una buena lista de ciberataques y brechas, mes a mes durante 2014:

Enero

 
1 Enero, 2014 – 1.1 MILLION customers’ credit card data was swiped in Neiman Marcus breach
20 Enero, 2014 – Credit Card Details of 20 Million South Koreans Stolen
21 Enero, 2014 – Microsoft blog hacked by Syrian Electronic Army
24 Enero, 2014 – CNN website, Twitter and Facebook hijacked by Syrian Electronic Army
25 Enero, 2014 – Michaels Stores confirms payment card information compromised in breach

 
Febrero

 
5 Febrero, 2014 – Texas health system attacked, data on more than 400K compromised
14 Febrero, 2014 – Forbes.com Hacked by Syrian Electronic Army Because of “Hate for Syria”
16 Febrero, 2014 – Kickstarter hacked: Passwords, phone numbers, and phone numbers stolen
24 Febrero, 2014 – YouTube ads spread banking malware
25 Febrero, 2014 – Mt. Gox exchange goes dark as allegations of $350 million hack swirl

 
Marzo

 
10 Marzo, 2014 – Hackers steal 12 million customer records from South Korean phone giant
14 Marzo, 2014 – Credit Card Breach at California DMV
17 Marzo, 2014 – Morrisons employee arrested following data breach involving details of 100k staff
20 Marzo, 2014 – EA Games website hacked to phish Apple IDs from users
28 Marzo, 2014 – Malware in 34 Spec’s stores, payment data compromised for 550K 

 
Abril 

 
7 Abril, 2014 – Germany suffers biggest ever data breach in its history
8 Abril, 2014 – The Heartbleed bug: serious vulnerability found in OpenSSL cryptographic software library
15 Abril, 2014 – German space centre endures cyber attack
15 Abril, 2014 – Welsh Councils break DPA 2.5 times a week
22 Abril, 2014 – Iowa State server breach exposes SSNs of nearly 30,000
29 Abril, 2014 – Security breach at AOL. Users told to change passwords

 
Mayo

 
8 Mayo, 2014 – Orange Suffers Data Breach Again, 1.3 Million Affected
9 Mayo, 2014 – WooThemes users notified of payment card breach, 300 reports of fraud
21 Mayo, 2014 – eBay Suffers Cyber Attack, Users Asked to Change Passwords
27 Mayo, 2014 – Avast Suffers Cyber Attack; 400,000 users affected

 
Junio

 
14 Junio, 2014 – P.F. Chang’s Confirms Credit Card Breach
17 Junio, 2014 – Hackers Takeaway Domino’s Pizza Customer Data; More Puns Inside
19 Junio, 2014 – Hacker puts Code Spaces out of business
19 Junio, 2014 – Sun and Sunday Times Websites Hacked by the Syrian Electronic Army
22 Junio, 2014 – British Gas Help Twitter account hacked, customers pointed towards phishing sites
23 Junio, 2014 – ‘Most sophisticated DDoS’ ever strikes Hong Kong democracy poll
25 Junio, 2014 – European Bank Hit by Cyber Attack; £400,000 stolen

 
Julio

 
1 Julio, 2014 – Energy Firms Hacked by Cyber Espionage Group ‘Dragonfly’
4 Julio, 2014 – $3.75 Billion Brazilian Boleto Malware Attack
8 Julio, 2014 – HotelHippo.com Closes after Data Leak
15 Julio, 2014 – CNET Hacked, One Million Users’ Data Stolen
16 Julio, 2014 – Information Commissioner’s Office Suffers Data Security Breach
23 Julio, 2014 – eBay has suffered a security breach for the second time this year
31 Julio, 2014 – Gizmodo Brazil hacked, fake Adobe Flash download opens backdoor
31 Julio, 2014 – Massive Paddy Power hack: nearly 650,000 customers’ records stolen

 
Agosto

 
5 Agosto, 2014 – Goodwill and FBI Investigate Possible Security Breach
15 Agosto, 2014 – Supervalu supermarket chain begin investigating possible data breach
19 Agosto, 2014 – US Cyber Crime Goes Nuclear: NRC Computers Hacked THREE Times
21 Agosto, 2014 – Over 50 UPS franchises hit by data breach
27 Agosto, 2014 – Norwegian oil industry under attack by hackers
27 Agosto, 2014 – Records of 25,000 Homeland Security Employees Stolen in Cyber Attack
28 Agosto, 2014 – FBI Probes Possible Hacking Incident at J.P. Morgan

 
Septiembre

 
4 Septiembre, 2014 – Home Depot suffers breach that may be larger than Target’s
5 Septiembre, 2014 – 800k Payment Cards Compromised in Goodwill Industries Breach
5 Septiembre, 2014 – ObamaCare Website Hacked
18 Septiembre, 2014 – Home Depot: 56M Cards Impacted, Malware Contained
23 Septiembre, 2014 – 880,000 Affected by Viator Payment Card Breach
25 Septiembre, 2015 – Payment card data stolen in Jimmy John’s data breach
29 Septiembre, 2014 – Hundreds of US Stores Affected as POS Provider is Hacked
30 Septiembre, 2014 – SuperValu compromised again – for the second time in three months

 
Octubre

 
3 Octubre, 2014 – JPMorgan suffers data breach affecting 76 million customers
10 Octubre, 2014 – Dairy Queen data breach hits 395 stores
14 Octubre, 2014 – ‘Big K’ raided by hackers: Kmart warns customers after malware discovered
21 Octubre, 2014 – Staples stores investigated: suspected payment card breach
23 Octubre, 2014 – POODLE attack digs up downgrade flaw in TLS
29 Octubre, 2014 – White House unclassified network hacked

 
Noviembte

 
7 Noviembre, 2014 – Home Depot admits 53 million email addresses stolen in data breach
13 Noviembre, 2014 – Data breach affects 2.7 million HSBC Turkey cardholders
17 Noviembre, 2014 – US State Department network shut amid reports of cyber breach
18 Noviembre, 2014 – Staples confirms POS malware attack
25 Noviembre, 2014 – Sony Pictures Entertainment hacked
27 Noviembre, 2014 – Syrian Electronic Army attack on Gigya affects Telegraph, Independent, Evening Standard…

 
Diciembre

 
4 Diciembre, 2014 – Possible credit card breach at Bebe Stores
11 Diciembre, 2014 – Union Station parking lot suffers suspected data breach
11 Diciembre, 2014 – Electronic payment company CHARGE Anywhere suffers five-year breach
15 Diciembre, 2014 – Personal information leaked in University of California, Berkeley, data breach
19 Diciembre, 2014 – KeyPoint cyber attack compromises 48,000 federal employees
22 Diciembre, 2014 – Staples confirm details of six-month breach, 1.16 million cards affected

Fuente 

Un huevo de pascua oculto en Metasploit desde 2011

Wei Chen alias sinn3r, miembro de Corelan Security & Exploit-DB y desarrollador de exploits para Metasploit, ha hecho público un huevo de pascua que nadie ha descubierto desde que lo introdujo en 2011. Concretamente, en el exploit CVE-2010-3275 que permite la ejecución arbitraria de código debido a un fallo en VideoLAN VLC Media Player (anterior a 1.1.8) al manejar archivos AMV. 
 
Como en ese momento sinn3r no encontraba ningún video en ese formato, sacó su cámara y grabó un breve vídeo para luego convertirlo a AMV. Ese vídeo (msf/data/exploits/CVE-2010-3275.amv) puede escucharse pero no visualizarse al estar corrupto, aunque para ver el mensaje que oculta sólo hay que realizar una sencilla modificación con un editor hexadecimal.

En el byte 0x40th, verás el DWORD 0xA0 0xA0 0x00 0x00. Esto es en realidad el ancho de la resolución del vídeo, cuya manipulación provoca la vulnerabilidad. Cambia el segundo 0xA0 a 0x00, lo que se traduce a 160 en decimal, como en la siguiente imagen:


 
Ahora descarga la última versión de VLC Player (que ya no es vulnerable) y podrás ver el mensaje oculto durante años:





miércoles, 24 de diciembre de 2014

¡Feliz navidad!

clear-host
write-host
$Rows = 30
$colors = "DarkRed","Cyan","Red","Magenta","Yellow","White","cyan"           
    $oldpos = $host.ui.RawUI.CursorPosition
    Foreach ($r in ($rows..1)){
        write-host $(" " * $r) -NoNewline
        1..((($rows -$r) * 2)+1) | %{
           
                write-Host "*" -ForegroundColor Darkgreen  -nonewline
           
       }
        write-host ""
    }           
    write-host $("{0}***" -f (' ' * ($Rows -1) ))  -ForegroundColor DarkGreen
    write-host $("{0}***" -f (' ' * ($Rows -1) ))  -ForegroundColor DarkGreen
    $host.ui.RawUI.CursorPosition = $oldpos
    sleep .05
$numberstars=[math]::pow($Rows,2)
$numberlights=$numberstars *.25
for ($i = 0; $i -lt $numberlights; $i++)
{
$Starlocation+=@($host.ui.Rawui.CursorPosition)
}
$oldpos = $host.ui.RawUI.CursorPosition
while($true)
{
foreach ($light in ($numberlights..1))
    {
    $row=(get-random -min 1 -max (($Rows)+1))
    $column=($Rows-$row)+(get-random -min 1 -max ($row*2))
    $temppos=$host.ui.rawui.CursorPosition
    $temppos.x=$column
    $temppos.y=$row
    $Starlocation[(($light)-1)]=$temppos
    $host.ui.RawUi.CursorPosition=$temppoS
        write-Host "*" -ForegroundColor  ($colors | get-random) -nonewline
    }
        write-host ""
    Sleep .5
foreach ($light in ($numberlights..1))
    {
    $host.ui.RawUI.CursorPosition=$Starlocation[(($light)-1)]
    write-Host "*" -ForegroundColor DarkGreen -nonewline
    }
} 

lunes, 22 de diciembre de 2014

Esta navidad vuelve el Grinch... para escalar privilegios en tu Linux


Llega la navidad y con ella vuelve el Grinch, esta vez como una vulnerabilidad en el nuevo sistema de autenticación de Linux que permite el escalado de privilegios a través de wheel. 

Ya sabes que Wheel es un usuario especial que controla el acceso al comando su. Cuando instalamos un sistema Linux, el usuario por defecto es asignado al grupo Wheel para poder realizar tareas administrativas.

Los Linux modernos implementan nuevos métodos de autenticación y autorización para evitar una gran variedad de vectores de ataque introducidos con binarios setuid aleatorios. Polkit (Policy Kit), una API de autorización para los programas privilegiados, es uno de los principales impulsores para dejar de usar los binarios setuid.

Por otro lado, PackageKit es un conjunto de herramientas que permite una capa de abstracción (sobre D-BUS) para trabajar a través de sistemas de gestión de paquetes y arquitecturas. Es decir, intenta facilitar el uso de gestores como APT, Yum, pacman y otros. ¿Adivináis que backend utiliza para la autenticación de usuarios? Sí, utiliza Polkit.


Sigamos... En Fedora, puede que DNF o Yum no permita que un usuario específico pueda instalar paquetes, pero sin embargo las reglas polkit son independientes y podrían permitírselo. Sus reglas por defecto están escritas en simple javascript y permiten ser admin a cualquier usuario dentro del grupo Wheel. Por ejemplo:

/etc/polkit-1/rules.d/50-default.rules



/* -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*- */
// DO NOT EDIT THIS FILE, it will be overwritten on update
//
// Default rules for polkit
//
// See the polkit(8) man page for more information
// about configuring polkit.

polkit.addAdminRule(function(action, subject) {
   return [“unix-group:wheel”];
});

Entonces resumiendo, los usuarios en el grupo wheel podrán realizar tareas administrativas en el sistema y ejecutar sudo. Esto significa que, abusando de los privilegios de este grupo wheel, no necesitaremos root o introducir la contraseña (si ejecutamos sudo) para realizar acciones que requieren privilegios.

Por ejemplo, vemos que un usuario dentro del grupo wheel no puede instalar un programa porque no es root:



]$ id
uid=1000(blahman) gid=1000(blahman) groups=1000(blahman),10(wheel) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

]$ Yum install cowsay
Loaded plugins: auto-update-debuginfo, langpacks, refresh-packagekit
You need to be root to perform this command.

Y dnf tampoco funciona por los permisos del filesystem:



]$ dnf install cowsay
Dependencies resolved.
…
Error: Unable to initialize yumdb history: [Errno 13] Permission denied: ‘//var/lib/dnf’

Pero si ejecutamos pkcon...



]$ pkcon install cowsay

Resolving                     [=========================]        
Querying                     [=========================]        
Testing changes               [=========================]        
Finished                     [=========================]        
Installing                   [=========================]        
Resolving dependencies       [=========================]        
Downloading packages         [=========================]        
Testing changes               [=========================]        
Installing packages          [=========================]        
Finished                     [=========================]    

]$ cowsay got root?
______________
< got root? >
———–
       \   ^__^
         \ (oo)\_______
           (__)\       )\/\
               ||—-w |
               ||     ||


Fuente

domingo, 7 de diciembre de 2014

Capturando credenciales en claro mediante un firewall Fortigate

En este mundillo estamos cansados de repetir que se sustituya FTP y telnet por sus respectivos equivalente seguros: SCP, FTPS, SFTP, SSH... pero después de tantos años se siguen utilizando :(

Hoy vamos a hacer una pequeña demostración de la inseguridad del uso de estos protocolos no cifrados capturando tráfico mediante un firewall y obteniendo las contraseñas en claro. 

En la vida real el firewall podría ser la máquina de un atacante, el cuál tendría la misma facilidad para robar credenciales simplemente esnifeando el tráfico en un nodo que está en medio del camino de nuestra conexión cliente-servidor. Y no sólo el atacante podría ser una persona hábil que ha envenenado ARP y ha conseguido hacer un MiTM... en este gran entramado que es Internet, un ISP o hasta el administrador de red de una empresa podría estar vigilando...

Para nuestro escenario concreto el firewall será un Fortigate. Estos tienen una gran variedad de comandos de diagnóstico. Permiten depurar aplicaciones comunes (ike, sslvpn, urlfilter...), el proceso de flujo de paquetes e incluso activar un sniffer bastante decente que arroja una salida muy similar a la de tcpdump (será un fork?). La sintaxis del comando es la siguiente:


# diag sniffer packet <interfaz> <'filtro'> <verbose> <contador> a

Veamos primero un ejemplo sencillo:

 

# diag sniffer packet internal 'src host 192.168.0.130 and dst host 192.168.0.1' 1

192.168.0.130.3426 -> 192.168.0.1.80: syn 1325244087
192.168.0.1.80 -> 192.168.0.130.3426: syn 3483111189 ack 1325244088
192.168.0.130.3426 -> 192.168.0.1.80: ack 3483111190
192.168.0.130.3426 -> 192.168.0.1.80: psh 1325244088 ack 3483111190
192.168.0.1.80 -> 192.168.0.130.3426: ack 1325244686
192.168.0.130.1035 -> 192.168.0.1.53: udp 26
192.168.0.130.1035 -> 192.168.0.1.53: udp 42
192.168.0.130.1035 -> 192.168.0.1.53: udp 42
192.168.0.130 -> 192.168.0.1: icmp: echo request
192.168.0.130.3426 -> 192.168.0.1.80: psh 1325244686 ack 3483111190
192.168.0.1.80 -> 192.168.0.130.3426: ack 1325244735
192.168.0.130 -> 192.168.0.1: icmp: echo request

Y las opciones que manejamos:

- Interfaz, como su nombre indica, es el interfaz por el que se capturarán los paquetes. Podemos especificar "any" para que capture en todos los interfaces.


- El filtro puede tener también la siguiente sintaxis: '[[src|dst] host] [[src|dst] host] [[arp|ip|gre|esp|udp|tcp] [port_no]] [[arp|ip|gre|esp|udp|tcp] [port_no]]'


- Verbose tiene diferentes niveles:


    1: muestra la cabecera de los paquetes
    2: muestra la cabecera y los datos IP de los paquetes
    3: muestra la cabecera y los datos ethernet de los paquetes
    4: muestra la cabecera de los paquetes con el nombre de interfaz
    5: muestra la cabecera y los datos IP de los paquetes con el nombre de interfaz
    6: muestra la cabecera y los datos ethernet de los paquetes con el nombre de interfaz


- El contador indica el número de paquetes que se recogerán antes de parar el sniffer. Si no especificamos nada seguirá recogiendo paquetes hasta que lo paremos con CTRL+C.


- Y por último la opción "A" es para mostrar timestamps

Ahora imaginemos que queremos capturar las credenciales de un acceso FTP. Podríamos capturar las de todas las sesiones en un momento dado filtrando simplemente el puerto TCP; pero para el ejemplo supongamos que queremos capturar sólo las credenciales de un acceso a un servidor FTP específico, ftp.rediris.org con IP 130.206.1.5.

Primero, en Putty, no olvidemos capturar la salida de la sesión a un fichero de log:




Después iniciaremos el sniffer: 

 

# diag sniffer packet any 'dst host 130.206.1.5' 6
interfaces=[any]
filters=[dst host 130.206.1.5]

Y desde un cliente ftp estándar lanzaremos la conexión:

 


C:\Users\vmotos\Desktop>ftp ftp.rediris.org
Conectado a zeppo.rediris.es.
220-  Bienvenido al FTP an├│nimo de RedIRIS.
220-Welcome to the RedIRIS anonymous FTP server.
220 Only anonymous FTP is allowed here
Usuario (zeppo.rediris.es:(none)): vicente
331-            RedIRIS - Red Acad├®mica y de Investigaci├│n Espa├▒ola
331-                RedIRIS - Spanish National Research Network
331-
331-           ftp://ftp.rediris.es  -=-  http://ftp.rediris.es
331-
331 Any password will work
Contraseña:
230 Any password will work

Ahora comprobarás rápidamente que el sniffer está capturando datos. Si te fijas en el fichero de log generado aparecerá la contraseña en claro:

 


7.816069 123.123.123.11.19043 -> 130.206.1.5.21: psh 840580428 ack 3720924021
0x0000   0000 0000 0000 0009 0fd3 bac5 0800 4500        ..............E.
0x0010   0035 1d7b 4000 7c06 5d89 c2e0 3d0b 82ce        .5.{@.|.]...=...
0x0020   0105 4a63 0015 321a 3d4c ddc8 cb75 5018        ..Jc..2.=L...uP.
0x0030   07a1 ba58 0000 5041 5353 2070 7275 6562        ...X..PASS.prueb
0x0040   610d 0a      

Aunque si lo prefieres, existe un script en perl fgt2eth.pl para exportar el fichero a formato pcap y analizarlo más claramente con Wireshark.

Primero quitamos la cabecera que nos deja putty:

 

=~=~=~=~=~=~=~=~=~=~=~= PuTTY log 2014.12.04 01:35:03 =~=~=~=~=~=~=~=~=~=~=~=

Y luego lo exportamos con esta utilidad:

 

C:\Users\vmotos\Desktop>fgt2eth.exe
Version : 1.22 (Feb 21 2008)

Assuming OS: windows
Usage : fgt2eth.pl -in <input_file_name>

Mandatory argument are :
   -in  <input_file>     Specify the file to convert (FGT verbose 3 text file)

Optional arguments are :
   -help                 Display help only
   -version              Display script version and date
   -out <output_file>    Specify the output file (Ethereal readable)
                         By default '<input_file>.eth' is used
   -lines <lines>        Only convert the first <lines> lines
   -system <system>      Can be either linux or windows
   -debug                Turns on debug mode
      
C:\Users\vmotos\Desktop>fgt2eth.exe -i putty.log -o putty.pcap
Conversion of file putty.log phase 1 (FGT verbose 3 conversion)
Output written to putty.pcap.
Conversion of file putty.log phase 2 (windows text2pcap)
Ouput file to load in Ethereal is 'putty.pcap'

Y por último lo abrimos con Wireshark. Si quieres afinar más la búsqueda puedes usar el filtro:

(ftp.response.code == 230 || ftp.request.command == "PASS") || (ftp.request.command == "USER")





¡Feliz caza!



Fuente

sábado, 6 de diciembre de 2014

Cómo la NSA espía las llamadas de teléfono y la regulación de las medidas de investigación tecnológicas en España

The Intercept ha liberado una serie de documentos filtrados por Edward Snowden sobre una operación denominada AURORAGOLD, enfocada en conocer todos los detalles y atacar las redes de comunicaciones de todas las operadoras de telecomunicaciones del mundo, algo que ellos estiman estaría rondando un número cercano al millar. Para ello, este grupo de la NSA de EEUU y el GCHQ británico estaría ubicado dentro de una unidad llamada T3C (Target Technology Trends Center), y debería proveer soporte a todas las operaciones que necesitaran hackear una comunicación móvil vía la operadora.

Figura 1: Operación AURORAGOLD

Operación AURORAGOLD
Las técnicas de hacking de comunicaciones móviles en GSM/GRPS/UMTS/LTE hace tiempo que se conocen, y los protocolos de cifrado que dan soporte en muchas redes de muchas operadoras siguen funcionando aún - incluso en Europa - con A5/1, un protocolo que hace años que se sabe que se puede romper y que las operadoras están migrando a A5/3 para mejorar la seguridad. Por eso, los ataques RTL-SDR han demostrado que podría grabar llamadas de teléfono e incluso interceptar mensajes SMS.



Figura 2: Selección de objetivos por país y parámetros de red de operadora

Entre otras funciones, tal y como se puede ver en las presentaciones liberadas, el objetivo de esta unidad dentro de la NSA es tener absolutamente todos los datos de todas las redes bien documentados, y conocer absolutamente todo el equipamiento utilizado - incluidos los fabricantes que aportan los sistemas - y todas las configuraciones de estas redes, para en tiempo real poder plantear un ataque u otro.

Figura 3: Información detallada de la red de una operadora

Hay que tener en cuenta que esa información es útil para montar otro tipo de ataques como el de estaciones base falsas con tecnologías 2G - soportadas por prácticamente la totalidad de los móviles hoy en día - y enrutar el tráfico una vez interceptado y/o manipulado hacia las redes de operadoras correspondientes en una determinada operación en un determinado lugar. No es la primera vez que tenemos información de estaciones base falsas apareciendo por lugares de Estados Unidos,  el Wall Street Journal publicó que incluso las llevan en aviones y/o drones, y recientemente hemos visto que el malware REGIN espiaba las redes de las operadoras..
La industria de las operadoras de telecomunicaciones, organizada a través de la GSMA, era/es también, por supuesto, objetivo de máximo interés para el grupo de T3C a cargo de la operación AURORAGOLD, y en las presentaciones se puede ver información de monitorización continua de la estructura interna de esta asociación de operadoras para conocer los nuevos estándares en los que está trabajando y preparar las capacidades del grupo para eventuales cambios en los sistemas de seguridad.


Figura 4: Grupos de trabajo de la GSMA


Está claro que la red de las operadoras sigue dando soporte a las conexiones a Internet, además de a las llamadas de teléfono y por eso, en un mundo donde la gente cada vez usa más el smartphone y menos el PC de escritorio, para el mundo de los espías interceptar las comunicaciones de voz y datos que se produzcan por las redes de las operadoras es cada vez más importantes.
La legislación en USA y la Ley en España
Todo esto en Estados Unidos porque la ley FISA (Foreign Intelligence Survilliance Act) del Patriot Act les permite investigar a cualquier ciudadano NO de EEUU sin pedir autorización a un juez.


Figura 5: Anteproyecto de ley para ...
"La regulación de las medidas técnicas de investigación tecnológica"

En España, hasta el momento todo debe ir por medio de una autorización judicial, pero según el anteproyecto presentado esta semana "para la regulación de las investigaciones tecnológicas"...
“en caso de urgencia, cuando las investigaciones se realicen para la averiguación de delitos cometidos en el seno de organizaciones criminales, delitos de terrorismo, delitos contra menores o personas con capacidad modificada judicialmente” y  “otros delitos que, en virtud de las circunstancias del caso puedan ser considerados de especial gravedad, y existan razones fundadas que hagan imprescindible la intervención de comunicaciones”

...el Ministro del Interior o, en su defecto, el Secretario de Estado de Seguridad, “podrán acordar la medida de investigación pertinente”, algo que sin duda habrá que debatir con madurez, por lo sensible que es el que una persona que no sea juez pueda tomar estas decisiones tan delicadas.


Fuente