PDF de programación - Ghost in the Shell

Imágen de pdf Ghost in the Shell

Ghost in the Shellgráfica de visualizaciones

Publicado el 14 de Septiembre del 2017
730 visualizaciones desde el 14 de Septiembre del 2017
933,4 KB
20 paginas
Creado hace 9a (15/12/2014)
La defensa del patrimonio tecnológico
frente a los ciberataques

10 y 11 de diciembre de 2014

Ghost in the Shell

© 2014 Centro Criptológico Nacional

C/Argentona 20, 28023 MADRID

www.ccn-cert.cni.es

VIII JORNADAS STIC CCN-CERT

Jaime Sánchez (@segofensiva)

http://www.seguridadofensiva.com

[email protected]

TELEFÓNICA

www.ccn-cert.cni.es

2

VIII JORNADAS STIC CCN-CERT

Índice

1. Introducción

2. Variantes de ShellShock

3. Explicación técnica

4. Técnicas de explotación ‘In the Wild’

5. Demo

6. Conclusiones

www.ccn-cert.cni.es

3

VIII JORNADAS STIC CCN-CERT

INTRODUCCIÓN

www.ccn-cert.cni.es

4

VIII JORNADAS STIC CCN-CERT

• La base de datos de vulnerabilidades nacionales de Estados Unidos ha
concedido a esta vulnerabilidad el valor máximo de severidad, con un CVSS
de 10/10. Esta vulnerabilidad ha sido rápidamente comparada por los
expertos en seguridad con otra Heartbleed, otra de alto riesgo que afectó
hace unos meses al protocolo OpenSSL, por su severidad, debido a que
permitía la extracción de bloques de información de la memoria en
aquellos sistemas vulnerables.



• Shellshock es mucho más grave que HeartBleed ya que explotar estar
vulnerabilidad nos permite la ejecución de código arbitrario, lo cual es
mucho más grave que extraer información arbitraria de la memoria.



• A esto hay que sumarle que la complejidad de explotación de esta
vulnerabilidad es muy baja, consistiendo básicamente en un payload en el
que indicaremos en el valor de aquellas variables susceptibles a ser
interpretadas por Bash incorrectamente

VIII JORNADAS STIC CCN-CERT

VARIANTES DE
SHELLSHOCK

www.ccn-cert.cni.es

6

VIII JORNADAS STIC CCN-CERT

• La vulnerabilidad inicial reportada al equipo de Bash fue denominada con
el CVE-2014-6271. El error se corrigió con un parche para el programa, sin
embargo, después del lanzamiento del parche, hubo informes posteriores
de diferentes vulnerabilidades relacionadas:

env x='() { :;}; echo vulnerable' bash -c "echo this is a test"



• CVE-2014-6277:

bash -c "f() { x() { _;}; x() { _;} <<a; }" 2>/dev/null || echo vulnerable



• CVE-2014-6278:

shellshocker='() { echo You are vulnerable; }' bash -c shellshocker



• CVE-2014-7169: descubierta por el consultor Tavis Ormandy, mientras se

encontraba trabajando en la vulnerabilidad CVE-2014-6271:
env X='() { (a)=>\' sh -c "echo date"; cat echo



VIII JORNADAS STIC CCN-CERT

• CVE-2014-7186: Esta nueva variante está provocada por las mismas
vulnerabilidades que hemos comentado anteriormente, pero aprovecha el
uso de múltiples declaraciones de "<<EOF”:

bash -c 'true <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF
<<EOF <<EOF <<EOF <<EOF <<EOF <<EOF' || echo "CVE-2014-7186

vulnerable, redir_stack"



• CVE-2014-7187: Se

trata de otra variante, utilizando diferentes

declaraciones de "done" para la ejecución de código:

(for x in {1..200};

do echo "for x$x in ; do :";

done;

for x in {1..200};
do echo done;

done)

| bash || echo "CVE-2014-7187 vulnerable, word_lineno"

VIII JORNADAS STIC CCN-CERT

EXPLICACIÓN

TÉCNICA

www.ccn-cert.cni.es

9

VIII JORNADAS STIC CCN-CERT

• La primera vulnerabilidad aprovecha como las definiciones de funciones se
exportan codificadas dentro de la lista de variables de entorno, cuyos
valores comienzan con unos paréntesis ("()"), seguido de la definición de la
función. La nueva instancia de Bash, al inicializarse, explora el contenido
de estas variables de entorno en búsqueda de valores que correspondan a
este formato, y los convierte en funciones internas.



• Analizaremos el siguiente fragmento de código, encargado de importar las

variables de la función, correspondiente al fichero "variables.c”:

VIII JORNADAS STIC CCN-CERT

• Observamos un bucle sobre todas las variables de entorno proporcionadas
a la función y después un sentencia "if" para realizar la comprobación de si
nos encontramos en modo privilegiado, que se encontrará desactivado en
la mayoría de los casos.



• Aquí es donde ocurre nuestra afirmación "pero no verifica que ese
fragmento es simplemente la definición de una función", dentro de la
función "parse_and_execute", cuya descripción y código se encuentra
dentro de "builitins/evalstring.c”:

VIII JORNADAS STIC CCN-CERT

• Como observamos en el código, todo lo que se le ha pasado a la función es
ejecutado como si fuera un comando ordinario de Bash. Los flags
SEVAL_NONINT y SEVAL_NOHIST, que corresponden a las características de
una shell interactiva, así como a la incorporación de historial a Bash, no
impiden incluir otros elementos diferentes a las definiciones de funciones.



• El parche desarrollado por el equipo de Bash introduce nuevos flags, como
SEVAL_FUNCDEF y SEVAL_ONECMD que se pueden pasar en el campo de
flags de la función "parse_and_execute"



• El parche también añade funcionalidades a "parse_and_execute" para

cumplir con las modificaciones y los flags añadidos:



VIII JORNADAS STIC CCN-CERT

TÉCNICAS DE EXPLOTACIÓN

‘IN THE WILD’

www.ccn-cert.cni.es

13

VIII JORNADAS STIC CCN-CERT

• El día 25 de Septiembre, se reportaron diferentes ataques sufridos por
corporaciones, que se focalizaban en ataques de DDOS a través de paneles
C&C específicos, utilizando la vulnerabilidad de Bash y diferentes payloads
para el compromiso.



VIII JORNADAS STIC CCN-CERT

• El 26 de Septiembre, se conoció también la existencia de una botnet que
utilizaba diferentes equipos comprometidos, denominada "wopbot". Esta
botnet estaba siendo utilizada para realizar diversos ataques DDOS contra
Akamai Technologies y para realizar diversos escaneos del Departamento
de Defensa de los Estados Unidos:



• Los sucesivos análisis del binario dentro de un entorno controlado
mostraron que los diferentes escaneos realizados sobre la red del DoD
tenían como fin descubrir servicios de telnet activos en las diferentes
plataformas escaneadas, así como realizar ataques de fuerza bruta para
conseguir acceso.



VIII JORNADAS STIC CCN-CERT

• En las siguientes semanas y meses de explotación de la vulnerabilidad, se

han encontrado diferentes técnicas y payloads enfocadas al:



• Fraude publicitario

• Obtención de shell inversa

• Robo del fichero de contraseñas del sistema

• Reconocimiento remoto de direcciones de correo

• Instalación de backdoors

• Creación de botnets y clientes DDOS



VIII JORNADAS STIC CCN-CERT

DEMO

www.ccn-cert.cni.es

17

VIII JORNADAS STIC CCN-CERT

CONCLUSIONES

www.ccn-cert.cni.es

18

VIII JORNADAS STIC CCN-CERT

LINUX
• Red Hat, Fedora, CentOS o Yellow Dog Linux:

# yum update bash -y

• Para sistemas Ubuntu o Debian:

# apt-get update; apt-get install --only-upgrade bash

• Para Arch Linux:

# pacman -Sy bash



OSX
• Para sistemas corriendo OSX, Apple ha publicado parches correspondientes a

las siguientes versiones de su sistema operativo que se encuentran en soporte
aún:

• Mavericks: http://support.apple.com/kb/DL1769?viewlocale=en_US&locale=en_US
• Mountain Lion: http://support.apple.com/kb/DL1768
• Lion: http://support.apple.com/kb/DL1767



• Si no deseamos utilizar los parches oficiales, también podremos descargar y

compilar Bash nosotros mismos utilizando brew o MacPorts.

E-Mails

[email protected]

[email protected]

[email protected]

[email protected]

[email protected]

[email protected]

[email protected]

Websites

www.ccn.cni.es

www.ccn-cert.cni.es

www.oc.ccn.cni.es



Síguenos en Linked in
  • Links de descarga
http://lwp-l.com/pdf6937

Comentarios de: Ghost in the Shell (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad