Anda di halaman 1dari 6

¡Hackea Windows Vista!

Ataque
Cristián David Argentero

Grado de dificultad

Queda, absolutamente, demostrado que en El Mundo de las TIC´s


(Tecnologías de la Información y Comunicaciones): El 1° puede
llegar a ser el último y el último puede lograr alcanzar la punta.
MS Windows Vista... ¿Un Candidato que se coronó Rey antes de
conseguir „Su Legado”?

C
uenta una bella historia (ya conocida www.coseinc.com/) consiguió lograr el osado
en el Mundo de las TICs) que Microsoft desafío propuesto. Joanna Rutkowska, ha sido
Corp. invitaba a los asistentes expertos la primera persona (hasta el momento) en de-
y especialistas en Seguridad Informática -véase, mostrar que es posible saltarse las medidas de
Hackers - a la prestigiosa conferencia de Black seguridad de Windows Vista. Ella explicó que:
Hat (Famoso y reconocido MegaEvento sobre es posible utilizar tecnología virtual para volver
Seguridad en las TICs (Tecnologías de la Infor- indetectables los códigos maliciosos (Malware)
mación y Comunicaciones) realizado cada año e insertarlos en el Kernel, de la misma forma
en Las Vegas. Es un acontecimiento que reúne
a los gurús más idóneos en la materia a lo largo
y lo ancho de todo El Mundo. Es una cita obligada
En este artículo aprenderás...
y majestuosa para quienes quieren degustar la • Explotar las vulnerabilidades del nuevo y „jugo-
otra cara de la moneda. Más Información: http:// so” SO de MS (Windows Vista);
www.blackhat.com/) 2006, con el motivo de • Conceptos del trabajo con técnicas/estrategias
intentar reventar los sistemas de seguridad de sobre las profundidades del Kernel del SO;
Windows Vista (su nuevo Sistema Operativo • Tecnologías de virtualización por Hardware
en el mercado, aparentemente, el más seguro y Software dedicado a la emulación del mismo;
hasta la fecha jamás creado, según El Tío Bill • Programación de Mini-Exploit personalizado
Gates). Entonces, como era de suponerse, para lograr los objetivos propuestos;
• Posibles (y futuras) soluciones a tales inconve-
pasó lo inesperado (para Microsoft Corp.)
nientes.
y lo esperado (para el público investigador y/o
seguidor de estos productos, acostumbrados Lo que deberías saber...
a ello). Pero… ¿Qué ocurrió? Una programa-
• Las nociones preliminares del funcionamiento
dora polaca que trabaja para la Compañía „interno” de un SO;
Coseinc Inc (Empresa dedicada al estudio • Fundamentos básicos de la Programación
avanzado de Software Neurálgico relacionado Orientada a Objetos (OMT);
a Códigos Maliciosos. Más Información: http://

16 www.hakin9.org
¡Hackea Windows Vista!

que actuaría un RootKit (Conjunto de


utilidades (herramientas) para explo- Listado 1. Detector VMM basado en la Instrucción „SIDT Trick” del
tar las vulnerabilidades de un sistema Procesador
informático y hacerse de él sin los /* Detector VMM: Basado en “SIDT Trick”
permisos otorgados legítimamente * Escrito por: Joanna Rutkowska
por el administrador a cargo. Más in- * Adaptado por: ^[(CR@M3R)]^
formación: http://www.rootkit.com/.) * Puede ser compilado con DevC++
(para Windows) y ejecutado en su SO
para obtener su objetivo; inclusive,
*/
pueden usarse Drivers de dispo-
sitivos sin necesidad de que estén #include <stdio.h>
firmados digitalmente (algo que se int main () {
intenta impedir en tal Software Ba- unsigned char m[2+4], rpill[] =
"\x0f\x01\x0d\x00\x00\x00\x00\xc3";
se). También, dijo que: el hecho de
*((unsigned*)&rpill[3]) = (unsigned)m;
que los sistemas de seguridad de ((void(*)())&rpill)();
Windows Vista hayan sido violados
no significa que éste sea un sistema printf ("idt base: %#x\n", *((unsigned*)&m[2]));
operativo inseguro; simplemente, no if (m[5]>0xd0) printf ("Inside Matrix!\n", m[5]);
else printf ("Not in Matrix.\n");
es tan seguro como se ha dicho. Por
eso, a continuación develaremos al
monstruo de dos cabezas que sor- • Blue Pill (Pastilla Azul): utiliza mecanismos de seguridad de Win-
prendió e hizo temblar al mismísimo la tecnología de virtualización dows Vista, aunque se conociera
Microsoft y a su más reciente peque- por hardware en arquitecturas su algoritmo o su código. Para ello,
ña criatura gestada. de x64b, SVM/Pacífica de AMD virtualiza el SO donde se instala
o Bit VT de Intel, para tomar el e inserta el conjunto de códigos ma-
Entrando en Clima control del SO (Sistema Operati- liciosos (malware) en el mismo, sin
Para poder hablar de las técnicas vo) donde se aloja, instalándose ser descubierto.
y estrategias abocadas a tales te- on-the-fly (al vuelo), sin necesi- Puede funcionar en los SO MS
mas -ideados por Joanna Rutkowska dad de reiniciar el equipo y sin Windows Vista distribuidos como
(Foto ID)- es fundamental precisar hacer modificaciones en la BIOS Plataforma x64 Bits.
los conceptos que determinan sus (Sistema Básico de I/O) ni en el
instauraciones. sector de arranque del disco. • Red Pill (Pastilla Roja): utiliza un
Por ello, expondremos (sencilla método genérico (basado en un
y brevemente) los principios que hi- Éste, se fundó con la intención de bug de diseño mal implementado)
cieron permisible la siguiente nota: ser un RootKit indetectable para las que permite insertar código arbi-
trario en las entrañas del Kernel
The heart of SVM: VMRUN instruction (núcleo del SO) en MS Windows
HOST
Vista -Beta 2 Plataforma x64
Virtual
(Hypervisor) Machine
Bits- sin percatase de saber si
éste se encuentra firmado digi-
instruction flow
(outside Matrix) talmente o no. Tal procedimiento
instruction
Guest state end inside guest puede ser usado, por ejemplo,
specification of para sortear el sistema de certifi-
what guest events
are intercepted cados genuinos requeridos en la
instalación de drivers (necesarios
para la funcionalidad adecuada
VMCB VMRUN de dispositivos en el SO).

Vale aclarar que, ambas nociones,


son independientes unas de otras.
resume at the next instruction Pero, pueden combinarse para dar
after VMRUN (exit code
written to VMCB on exit) un resultado de inseguridad aún ma-
guest has been
yor que si se probaran por sí solas.
intercepted Por lo tanto, su única relación
estrecha es que las 2 (dos) pueden
© COSEINC Research, Advanced Malware Labs, 2006
ser funcionales en una cuenta de ad-
ministrador y en un SO MS Windows
Figura 1. El „corazón” de SVM/Pacífica (AMD): Instrucción „VMRUN” Vista en Versionas Betas que operen

www.hakin9.org 17
Ataque

sobre Plataformas de x64 Bits (otor- • Por defecto, el SO trabajaría en • Estrictamente, sólo se podrían
gada mediante el Software Base cooperación con un virtualizador instalar drivers de dispositivos
y los Microprocesadores que sopor- propio, de capa fina, que redirigi- autorizados por su firma digital,
ten tales arquitecturas). ría cualquier llamada al hardware. con Certificación WHQL (Labo-
Además, se hace énfasis en indi- Éste detectaría que otra VM (má- ratorio de Control de Calidad de
car que se trata del SO MS Windows quina virtual) intenta meterse Hardware de Windows).
Vista Beta 2 x64 Bits (versión publi- y apoderarse de su control, por lo
ca). Lo cual, establece que lo más que podría interactuar con el Sis- Por lo que, el otro inconveniente
probable y normal sea corregir tales tema Operativo y alertar al usua- (Blue Red -Pastilla Roja-) también
fallas cuando salga una distribución rio de esas intenciones quién, sería resuelto.
final (definitiva) del mismo. a la vez, frenaría la/s acción/es Entonces, a continuación, dejo
Allí, teóricamente, ocurrirían 2 que quiere/n llevarse a cabo. a su criterio la evaluación técnica del
(dos) cosas que evitarían tales in- Pues, así, se solucionaría el pro- desarrollo de ambas metodologías…
convenientes: blema Blue Pill (Pastilla Azul);
Poniéndonos a Punto
Blue Pill Idea (simplified) El posterior análisis (estructural, sis-
temático, metódico y conciso) des-
PROC bluepill plegará los fundamentos y las carac-
Native Operating
System terísticas esenciales de los artilugios
enable SVM anteriormente descritos. Por ende,
estudiaremos y/o examinaremos el
prepare VMCB siguiente contenido:
Call bluepill

VMRUN
VMCB Parte I - Blue Pill (Pastilla
RIP Azul): Creando Código
Blue Pill Malicioso -Malware-
check Hypervisor
Indetectable
VMCB exit code
Todos los RootKit´s y Backdoors ac-
tuales, de los cuales estoy enterado,
RET from bluepill PROC, se basan en una concepción (teo-
never reached in host mode,
only executed once in guest mode ría). Por ejemplo: FU fue asentado
RET en una idea de desatar bloques de
EPROCESS de la lista de procesos
Native Operating System continues to execute, only during activos en el Kernel del SO, Shadow
but inside Virtual Machine this time... first call
Walker fue cimentado en un concep-
© COSEINC Research, Advanced Malware Labs, 2006 to de engañar al visitante de una Pá-
gina Web (preparada para el caso)
Figura 2. La idea simplificada de Blue Pill (Píldora Azul) y de marcar algunas partes del cuer-
po del sitio (Body Site) como inválida
y así poder ejecutar código arbitrario,
Nested VMs
Deepdoor hizo lo suyo cambiando
algunos campos en la estructura de
VMCB1 Creating new VMCB1
VMCB2 VM on behalf datos NDIS; tomando control remoto
of the VM1 del sistema, Etc…
Hypervisor VMRUN VMRUN VMRUN Por lo tanto, una vez que sepas
de qué concepto se trata, podrás, al
Allow VM1
to handle VM2's menos hipotéticamente, detectar el
VM 1 VMRUN
events Código Malicioso que se encuentra
en tu máquina.
Ahora, imagina un Malware
intercepted (desconocido, aún, en su tipo) con
VM 2
event capacidades de ser imperceptible.
time
Del cual no se pueda confiar en la os-
curidad de su concepto (teoría). Éste,
© COSEINC Research, Advanced Malware Labs, 2006 no podría detectarse (en la práctica)
aún cuando su algoritmo (conjunto
Figura 3 Anidamiento de Máquinas Virtuales (VMs) ordenado y finito de operaciones que

18 www.hakin9.org
¡Hackea Windows Vista!

permiten el cálculo de su notación) verter sus postulados arriba dispues-


se diera a conocer en público. tos sin ninguna duda. (Figura 1).
Vayamos más lejos e imaginé- La idea detrás de tal postura es
monos que, incluso, su código de mera: tu SO traga La Píldora Azul
compilación se encuentre In The (Blue Pill) y se despierta dentro de
Wild (en la calle), pero que todavía una matriz controlada por el Hyper-
no se consiguiera manera alguna visor Azul Ultrafino de la Píldora,
para detectar que esta criatura está es decir, un prototipo subyacente
funcionando en vuestras máqui- de ejecución que bloquea, encripta
nas… ¡Sería un potencial desastre y oculta procesos y/o procedimien-
libre por doquier! tos totalmente manipulables para el
Sin embargo, aunque pueda control de eventos en el SO, pero
sonar un tanto absurdo, se ha es- indetectables. Todo esto sucede
tado trabajando en una tecnología en marcha (on-the-fly), o sea, sin
código-nombrada Blue Pill (Pastilla el reinicio del sistema, y no hay pa-
Azul), que es justamente sobre ésa trones visibles de comportamientos
presunción (imperceptible al 100%, extraños en el funcionamiento de
según las condiciones contemporá- los recursos (lógicos y físicos) de tu
neas) en la que uno se apoya para ordenador.

Time dilatation for guest

Set VMCB.TSC_OFFSET = -tx

Hypervisor VMRUN VMRUN

tx = extra time
VM 1

Intercepted Event, Next instruction in guest after


e.g. RDMSR the one which caused
interception, e.g. RDTSC

time

© COSEINC Research, Advanced Malware Labs, 2006

Figura 4. Incapacidad de ejecución y dilatación en el tiempo a nivel de


Usuario Invitado

Delusion Demo (Blue Pill powered)

instruction flow instruction flow


(outside Matrix) (outside Matrix)

internet

Attacker connecting to Delusion/Blue Pill Blue Pill


Delusion backdoor installed debugging/tracing

© COSEINC Research, Advanced Malware Labs, 2006

Figura 5. Esquema radical de interoperabilidad (demostración de engańo


con Blue Pill)

www.hakin9.org 19
Ataque

Empero, aunque no lo notes,


ahora todos los dispositivos son
completamente accesibles al SO,
que está ejecutando una máquina
virtual (VM) interior. Esto ocurre
gracias a las tecnologías de última
generación que consienten la virtua-
lización del hardware con respecto
al software (sincronizados). Los
paradigmas más reconocidos que
hacen posible tal obrar, en nuestros
días, son: SVM/Pacífica de AMD
o Bit VT de Intel. (Figura 2).
Dada la infografía de arriba, po-
demos entender como el SO sigue
creyendo que se está ejecutando en
la PC, cuando en realidad se ejecuta
dentro de una máquina virtual (VM)
controlada por el programa que lo
infectó. Figura 6. Comiéndose a la memoria del sistema
De este modo, la aplicación se
vuelve virtualmente invisible, dado memoria de intercambio virtual del incursión por las VMs de una pato-
que Windows Vista sólo puede ver SO (Swap), donde ya no tendría la logía un tanto grave (clasificación
la máquina virtual (el mundo que ha capacidad de seguir ejecutándose crítica) que permite insertar código
sido puesto ante sus ojos para ocul- y, por lo tanto, tampoco podrá mu- arbitrario en la médula del Kernel
tarle la verdad). (Figura 3). tar ni moverse allí.(Figura 4). En (núcleo del SO) sin percatase de
Asimismo, un programa de esta definitiva, el esquema radical de su conocer si éste se encuentra firma-
magnitud corriendo dentro de una interoperabilidad sería el que a conti- do digitalmente o no. Lo que sería
máquina virtual (VM) puede ser sos- nuación se muestra en Figura 5. capaz de eludir el sistema de certi-
pechoso, pero un SO dentro de una ficados genuinos requeridos para la
máquina virtual (VM) que a su vez Parte II - Red Pill (Pastilla instalación de drivers (precisos para
está dentro de otra máquina virtual Roja): Sometiendo a engaños el funcionamiento idóneo de disposi-
(VM) ejecutando la misma aplicación, el Núcleo del Sistema -Kernel- tivos en el SO).
muestra desconcierto de razona- ¿Quién no conoce la importancia Se trata de una instrucción que
miento lógico. Sin embargo, su punto y relevancia del Kernel? ¿Quién no no es privilegiada en los rangos del
en contra (defecto) es la degradación se ha visto know out (KO) por la caí- Microprocesador, la SIDT. Es decir,
en su rendimiento y performance da del mismo? ¿Por qué los mayores no causa una excepción cuando se
(debido al consumo extremo de re- (y mejores) ataques a nivel de Segu- la aplica. Pero, si es sensitiva. O sea,
quisitos para mantenerse estable en ridad Informática se suceden sobre da un resultado distinto en la VM
un sistema con tantas peticiones de este? ¿A qué se debe tan renombra- (Level 1) que en la RM (Level 0). Lo
este tipo), lo que puede ser el talón de da autoridad y dogma? ¿Y…? cual, no debería ser anunciado de
Aquiles para producir una vacuna que Para sintetizarlo en unas pocas ninguna manera. Tal artimaña es co-
lo evite y prevenga su intrusión des- líneas, el Kernel es el Núcleo de todo nocida con el nombre de Exclusion
autorizada a posteriori de haberse Sistema Operativo (SO); el sostén Trap (Trampa de Exclusión).
entregado a la intervención dañina. del mismo, la columna vertebral que En conclusión, ejecutar una
Incluso, contamos con las opcio- permite la sincronización entre los instrucción SIDT da un resultado
nes para desactivar estas VMs por Recursos Físicos (Hardware) con distinto dependiendo de donde se
Hardware desde la BIOS y el SO (in- los Recursos Lógicos (Software) de encuentro operando el Kernel del SO
dicadas por leyendas que hacen re- una máquina (llámese PC). El encar- con respecto al Microprocesador.
ferencia a sus nombres y funciones), gado de mantener en pie (armazón) Algo que no tendría que ser así,
las cuales no resultan convenientes a cualquier plataforma de Software por el simple hecho de que puede
recomendar, salvo para una salida de Base en posesión de un equipo… delatar su ubicación real a otras
emergencia al apuro oportuno. Pero, tanto mérito no le concede aplicaciones en memoria que pue-
Otro mecanismo para divisarlo ser perfecto y, lejos de estar de ello, den intentar persuadirlo para apro-
podría ser llenando toda la memoria tiene sus falencias. vecharse de tal vulnerabilidad y, por
RAM del equipo, de esta mane- En tal caso particular, MS Win- ende, esgrimir con sus actividades
ra, el programa sólo podría ir a la dows Vista sufre en su célebre perjudiciales.

20 www.hakin9.org
¡Hackea Windows Vista!

El siguiente Código de Programa- relocalizar el IDTR del invitado en (Laboratorio de Control de Calidad
ción (El programa puede fallar en los un lugar seguro, para que no cause de Hardware de Windows). Por lo
sistemas con protección PAX/X^W/ conflictos con el anfitrión y termine que, tal contingencia sería resuelta
grsecurity. Porque la variable rpill no desbordando al sistema. Desgracia- sin mayores peligros e inconvenien-
es marcada como ejecutable. Para damente, VMM no puede saber si tes en su devenir.
hacerlo, debe usarse mprotect() en (y cuando) el proceso que se ejecutó Pues, entonces, como veredicto
la asignación rpill con el atributo de en el invitado desencadenó la instruc- final… Reforzar la prevención, pre-
PROT_EXEC. ción SIDT en el anfitrión, porque no ferentemente, con lo malo conocido,
Otra solución sería usar, simple- es una orden privilegiada (y, como sin arriesgarse en ir en búsqueda de
mente, asm() como palabra clave en inicialmente describimos, no genera lo bueno por conocer.
lugar de shellcode (como buffer). Sin una excepción). Así, el proceso con- Esa sería mi principal recomen-
embargo, este código de programa sigue la dirección IDT sin mayores dación; hasta que, por lo menos, las
debe ser considerado (más bien) inconvenientes y, por supuesto, sin el empresas en convenio, nos den una
como un esqueleto para construir el consentimiento del usuario a cargo. solución pertinente a la complicación
suyo. Mi meta era hacerlo tan simple Por ejemplo, fue observado que existente. ¿Hacemos trato…?
y portátil como sea posible. El resto, en VMWare la dirección relocalizada
se lo dejo al desafío de su imagina- IDT estaba en el sector 0xffXXXXXX, Al fin llegamos a la
ción…) efectuado en C++ descubre mientras que, en Virtual PC, la sección meta: ¿¡Lo logramos!?
(fehacientemente) lo que intento era 0xe8XXXXXX; respectivamente. Podríamos decir, en un juego inteli-
confesarles: ¿Extraño, no…? Sabiendo que gente de palabras, que el apasionante
Como antes lo dijimos, lo volve- una misma máquina (PC) comparte y sorpresivo Mundo de la (IN)se-
mos a reiterar… El corazón de este un cabal recurso de privilegios en guridad Informática nos sobrepasa y
código, ciertamente, es la instruc- instancias del Microprocesador que colapsa cualquier seguridad vigente
ción SIDT (aquí como 0F010D[addr]) el SO (más específicamente el Ker- en tiempos inconcebibles, pero rea-
que tiende a los volúmenes de inte- nel del mismo) impone. La captura les. ¿Qué lo corrobora y/o cerciora?
rrupción del descriptor de la tabla del de pantalla que veremos en Figura 6, Sin ir más allá, lo aquí dispuesto
registro (IDTR) en el destino local de mostrará su representación substan- (mecanismos -cariñosamente lla-
memoria que se esté operando. cial de interoperabilidad. mados: Blue Pill / Red Pill- ideados
Debido a que hay sólo un IDTR re- Igualmente, se pretende que en y desarrollados por Joanna Ru-
gistrante como verdadero (True), pero un futuro, el SO (comandado por su tkowska en técnicas y/o estrategias
(por lo menos) dos SO que “corren” Kernel) sólo pueda instalar drivers de de Hackeo a Windows Vista) dan
concurrentemente (el anfitrión -host- dispositivos autorizados por firmas una pequeña gran pauta de lo lejos
y el invitado -guest-), VMM necesita digitales con Certificación WHQL que estamos de una forma bastante
efectista y eficiente de poseer un SO
(promocionado por Microsoft Corp.)
En la Red que sea robusto, confiable, versátil
y flexible a las exigencias de los
• http://www.kriptopolis.org/node/2688
• http://invisiblethings.org/
usuarios alrededor de todo el mundo
• http://www.eweek.com/category2/0,1874,1237918,00.asp y de los tiempos que corren.
• http://feeds.computerworld.com/Computerworld/TopNews Pero… Sin olvidarse de hacerlos
• http://www.internetnews.com/security/ ¡SEGUROS!
• http://www.internetnews.com/7-days/ Muchos le encontraran y/o con-
• http://news.zdnet.com/2038-1009_22-0-topic.html?id=6219&name=Windows sideraran a esta nota un halo de
+Vista fantasía y superstición. Sin embargo,
• http://www.networkworld.com/news/ las denominaciones y tendencias
• http://www.vmware.com/standards/index.html aquí desempeñadas y aprendidas se
• http://www.winehq.com
apoyan en el pedestal hegemónico
(por analogía) a la tan admirada Pe-
lícula Matrix donde la gente cree vivir
en un mundo real cuando en realidad
Sobre el Autor viven en úteros artificiales controla-
Argentero, Cristián David (alias ^[(CR@M3R)]^)... Es estudiante de Lic. en Informática
dos por máquinas. Del mismo modo,
y gran apasionado por las TIC´s (Tecnologías de la Información y Comunicaciones).
Sus actuales condiciones en la materia lo han llevado al abordaje de la Información Windows Vista cree ejecutarse en
y el Conocimiento de manera: Universal, Libre y Gratuita; prestando servicios una máquina real cuando en realidad
y soluciones en la profesión de manera idónea y acorde a las exigencias dispuestas. se ejecuta en una máquina virtual y…
Contacto con el Autor: cdaznet@hotmail.com Allí es dónde comienzan los dolores
de cabezas. l

www.hakin9.org 21

Anda mungkin juga menyukai