Documentos de Académico
Documentos de Profesional
Documentos de Cultura
qxd
28
9/6/05
11:23 AM
Page 26
POWERUSR
26-39 Notapa-P24.qxd
9/6/05
11:24 AM
Page 27
DEFINICION
Una definicin de exploit podra ser: Cdigo escrito con el fin de aprovechar un error de programacin para obtener privilegios; forma de utilizar
un bug de un sistema para ingresar en l.
Un rea explotable es una zona vulnerable dentro del cdigo de cualquier software, desde un
programa simple hasta un sistema operativo, que
no fue hecha de manera segura, o que no fue lo
suficientemente testeada como para detectar
errores en su codificacin que la hicieran explotable. De all el nombre de exploit: una vez que se
encuentra una de estas reas y se conocen sus
causas, se genera cdigo que explote el error.
Los exploits se encuentran por doquier, aunque no
nos damos cuenta de que los estamos viendo
Quiz se piensa que un exploit es slo aquel que
atenta contra una vulnerabilidad X en la aplicacin Y. Pero lo que estamos tan habituados a llamar virus, troyano e, incluso, spyware no es
ms que un software creado con una funcin que
contiene un exploit, seguramente, utilizado para
infectar el host vctima del ataque.
La tpica forma de pensar en los exploits es como
un cdigo malicioso. Pero si lo vemos desde un
punto de mayor abstraccin, son slo una forma
ms de tecnologa (no existe el bien o el mal
en este campo, y, por ende, son ticamente neutrales; los propsitos con los que la gente los utiliza son los buenos o malos). Asimismo, si
analizamos la aseveracin que acabamos de hacer,
se puede llegar a la conclusin (o, al menos, al interrogante) de que un exploit puede utilizarse para fines benficos. Si bien esto ltimo puede soPOWERUSR
26-39 Notapa-P24.qxd
9/6/05
11:24 AM
HISTORIA
Page 28
ANTIGUA
Ya desde tiempos prehistricos nos encontrbamos con cdigo malicioso que atentaba contra la seguridad de nuestros datos.
Por supuesto, en aquellos das el contagio
era mucho ms complicado, ya que deba
darse slo a travs de disquetes o de algn
medio similar de transporte de informacin,
puesto que las redes no eran moneda corriente o ni siquiera existan. En la actualidad, gracias a la magia de las redes e Internet, una infeccin masiva puede demorar
das, horas o minutos hasta que capture millones de mquinas alrededor del mundo.
Pero en los aos 80 (y principios de los 90)
estos conceptos eran muy nuevos, y las tcnicas de contagio y esparcimiento de virus
deban ser bastante ingeniosas como para
lograr efecto masivo y reconocimiento, por
llamarlo de alguna manera.
Uno de los primeros grandes contagios a nivel mundial lo provocaron los virus conocidos como BB (BouncingBall), BRAIN y
STONE: por aquella poca (1985-1986), la
revista Byte contaba con un foro de discusin llamado BIX BBS, al cual sus usuarios
se conectaban por mdem. En el transcurso
de ese ao, se comenzaron a recibir reportes
sobre programas que ingresaban de manera
silenciosa y sin autorizacin en el sistema,
por lo cual se los denomin Caballos de
Troya. Ocasionaban ciertos extraos comportamientos y solan destruir el sector de
arranque de los disquetes. En 1986 empez
la propagacin de estos virus, que, justamente, infectaban el sector de arranque.
sti
mov cx,es
mov ah,13
int 2f
push es
mov es,cx
mov word ptr es:[oldint13],dx
mov word ptr es:[oldint13+2],ds ;
inc ax
pop es
dec ax
int 2f
jmp word ptr cs:[table+06] ;
mod_7_infect:
;
call word ptr cs:[table+0e]
pushf
mov ah,3f
dec ah
;
pushf
;
call cs:oldint21
;
popf
jc mod_7_ex
push ds
cli
xor ax,ax
mov ds,ax
mov ax,word ptr cs:[oldint13]
xchg ax,word ptr ds:[4*13]
mov word ptr cs:[oldint13],ax
mov ax,69
mov ax,word ptr cs:[oldint13+2] ;
xchg ax,word ptr ds:[4*13+2]
mov word ptr cs:[oldint13+2],ax ;
sti
pop ds
;
;
;
;
;
;
;
STONE
Tambin atacaba el boot sector, y mostraba
el mensaje Your computer is now stoned.
Legalise marijuana! (Su computadora ahora est arruinada. Legalicen la marihuana!).
;
;
;
;
;
;
;
;
;
;
BOUNCINGBALL
BRAIN
mod_3_setvec:
cli
mov
mov
add ax,13
mov
mov
28
BRAIN_ID
DW 1234H
START_HEAD DB 0
START_SECCYL DB 7,0DH
HEAD_NO
DB 0
SECTOR_NO
DB 1
CYL_NO
DB 0
DB 0,0,0,0
DB Welcome to the Dungeon
(c) 1986 Brain
DB 17H
DB & Amjads (pvt) Ltd VIRUS_SHOE RECORD
DB v9.0 Dedicated to the dynamic
memories of millions
DB of virus who are no longer with us
today - Thanks
DB GOODNESS!!
BEWARE OF THE er..VIRUS :
DB \this program is catching program
DB follows after these messeges..... $#@%$@!!
Exista un mtodo muy sencillo para deshacerse de la infeccin de todos estos virus,
pero que no todos los usuarios conocan:
se reiniciaba el sistema con un disquete de
arranque limpio de virus en una unidad
(A), y en la otra se dejaba el infectado (B).
Desde la unidad A se ejecutaba SYS B: y se
renovaba el sector de arranque.
MICHELANGELO
De estos tres pioneros surgi el que, sin
dudas, sera el icono de aquellos tiempos:
MICHELANGELO, particularmente recordado por haberse esparcido a niveles increbles para su poca y por los daos que causaba, utilizando tcnicas de stealth e infeccin lenta. Durante casi un ao, se propag
silenciosamente, hasta que el 6 de marzo
(fecha de nacimiento de Michelangelo Buonarotti) de 1992 se activ, y paraliz miles
de sistemas alrededor del mundo. Todava
recordamos cuando, siendo an nios, y
creyendo en lo que deca la tele, nos
POWERUSR
26-39 Notapa-P24.qxd
9/6/05
15:49
Page 29
CIH CHERNOBYL
Otro gran protagonista de esta poca de amenazas nacientes fue este virus, que se vala de la inexistente seguridad brindada por Windows en sus versiones 9x (no funciona en Windows NT). Infectaba
archivos ejecutables y se esparca hacia otros al abrirlos, ya que
quedaba residente en memoria. La velocidad de esparcimiento era
muy veloz, por lo que en muy corto tiempo, la mquina de la vctima posea cientos o miles de archivos infectados. Lo mejor de todo
POWERUSR
era la manera de esparcirse: primero realizaba un revisin del espacio libre del archivo destino y, luego, parta su propio cdigo en
pedazos para ubicarse en esos lugares. Esto es porque los antivirus
de la poca realizaban un control del tamao de los archivos: si no
haba cambiado, significaba que no estaban infectados. Entonces, al
ubicarse en el espacio vaco, no modificaba el tamao y pasaba los
controles. Normalmente, CIH slo se esparca a s mismo, pero en
ciertas fechas, un trigger en el cdigo del virus ejecutaba la parte
realmente destructiva de su payload: eliminaba contenido al azar
del disco duro, sobrescriba alrededor de 1 MB de datos aleatorios
en las reas de sistema y, luego, intentaba sobrescribir el BIOS de la
PC (lo consegua si era del tipo Flash), dejndola completamente
inservible hasta reemplazar o regrabar el chip (cosa que no muchos
saban que se poda hacer). Por cierto, la mayora de las veces, se
activaba los 26 de abril (aniversario de los tristes acontecimientos
en Chernobyl), pero en ocasiones, ocurra los 26 de cada mes.
29
26-39 Notapa-P24.qxd
9/6/05
HISTORIA
11:26 AM
Page 30
MODERNA
Por supuesto que, a medida que fueron producindose avances tecnolgicos, esta clase de programas se fue perfeccionando, y sus contrapartidas (antivirus) comenzaron a ser de uso masivo y, realmente,
muy rentables. Es por eso que surgi una teora conspirativa, segn
la cual los cdigos maliciosos, en cualquiera de sus formas, nunca
dejarn de existir, debido a la industria que mueven a sus espaldas.
En otras palabras, se acusa, sin fundamentos reales, a las empresas
que producen programas antivirus de crear virus, si es que no los
hay, para generar dependencia de sus productos.
Como sea, todava nos encontramos en un punto en el que, si bien los
contagios se dan de manera medianamente lenta, no es sencillo actualizar en forma masiva los antivirus ni aplicar parches en los sistemas
operativos. Esto hace que, desde la fecha en que una vulnerabilidad es
descubierta y/o explotada, hasta que aparece la solucin, pase demasiado tiempo, y la sensacin de inseguridad se vaya instaurando, principalmente, en los administradores de los sistemas empresariales, ya que
el usuario medio todava no ha tomado demasiada conciencia.
SIRCAM
Sircam fue un revolucionario, como los que vimos en las pginas anteriores, pero ms orientado a la ingeniera social. Fue uno de los
primeros gusanos en esparcirse utilizando la lista de contactos de la
persona infectada, autoenvindose por e-mail mediante un archivo
infectado con un nombre creado al azar, y un mensaje que invitaba
a abrirlo: Hi! How are you? I send you this file in order to have
your advice. See you later. Thanks. (Hola! Cmo ests? Te envo
este archivo para que me des tu consejo. Nos vemos. Gracias). Lo
mejor de todo es que incorporaba el mtodo de la doble extensin,
como .doc.com, o .mpg.pif. Entonces, un usuario, al ver un mail proveniente de un conocido que le peda que abriera un archivo comn,
por ejemplo una pelcula, seguramente no lo dudaba y lo haca. En una
red local tambin se esparca haciendo uso de los recursos compartidos.
El gusano contena tambin un trigger con un payload destructivo que
se deba ejecutar los 16 de octubre si la fecha de la mquina infectada
estaba en formato dd/mm/yyyy. Este pretenda eliminar el contenido
del disco duro y luego dejarlo sin espacio, pero, afortunadamente, un
error en el cdigo fuente impeda que se activara.
CODE RED
Se trataba de troyano que se alojaba en la mquina bajo el alias de
explorer.exe, y que, por ende, era ejecutado automticamente cada vez que alguien se logueaba en la computadora comprometida.
Generaba unas cuantas lneas en el Registro que permitan la ejecucin remota de cualquier tipo de programas, tanto en la unidad C
como en cualquier particin del disco.
NIMDA
Esta, quizs, haya sido la amenaza ms exitosa de este ciclo. Escaneaba la red en busca de servidores con IIS vulnerables y los explotaba, utilizando TFTP para distribuir los archivos. Los e-mails
en los que se distribua contenan un archivo README.EXE, y al
infectar una mquina, se esparca a todos los contactos encontra30
26-39 Notapa-P24.qxd
9/6/05
11:26 AM
HISTORIA
Page 32
CONTEMPORANEA
Si ya terminaron de rerse de la guerra POWERUSR Virus Michelangelo, vamos a ahondar en las tcnicas que utilizan, hoy
en da, los troyanos, virus, worms y dems software que posee
algn cdigo malicioso, para buscarnos, encontrarnos, acosarnos
e infectarnos (y causar el colapso nervioso de todo administrador
de red con todos sus workstations y servers prendidos fuego,
mientras siente como la piel de su nuca se derrite con las respiraciones cidas de los gerentes de producto).
ZONA
REACTIVA
Descubierta la Fabricante
vulnerabilidad publica patch
No hay cmo la
firma de exploit
Exploit es
notificado
REACTIVO
Firmas creadas
para el exploit
worm
REACTIVO
Firmas creadas
para el worm
LA AMENAZA MUTANTE
Si seguimos el viejo y nunca bien ponderado modelo OSI, y estamos
administrando un firewall que se encuentra bloqueando slo a nivel
de Capa 3 (donde ocurre el direccionamiento), el tema de bloquear a
los mutantes se convertir en una tarea ms compleja. Segn documentos de sus creadores, tendremos que anular el acceso de las
mquinas de nuestra red que no deseamos que utilicen este servicio,
hacia los gateways donde se produce el login, con los puertos de
HTTP (TCP 80) y el puerto propietario donde se produce el login (conocido como TCP 1863). Esto no suele ser suficiente, ya que no existe un nico gateway para realizar login, y en el medio del bloqueo
del rango podemos dejar muchos equipos sin funcionalidades necesarias, como la posibilidad de realizar updates.
Este es el ejemplo ms grfico y palpable para explicar de qu se trata, realmente, el soft mutante, pero debemos saber que existen muchos otros ms: conocidos programas de videoconferencia, P2P, etc.
La manera ms efectiva de mitigar la amenaza mutante es utilizar
dispositivos activos de bloqueo por Capa 7 (aplicacin) como los
proxys con filtros por aplicacin o IPSs (Intrusion Prevention Systems) con bloqueo activo, basndose en inspeccin profunda de protocolos (proceso en el que se desglosa cada paquete en bsqueda de
cualidades especiales del software) y matcheo de firmas (se compara
la solicitud realizada por el mutante con una base de datos del mitigador, y se bloquea al encontrar coincidencias si ste es malicioso).
Pero todos aquellos que estn pensando dnde introducir su obsoleto appliance que bloquea slo Capa 3, no desesperen. Hagamos
PROTOCOLO YA
DECODIFICADO
ZONA PROACTIVA
Descubierta la Fabricante
vulnerabilidad publica patch
Exploit es
notificado
PROACTIVO
PROTEGIDO
worm
Proactivo
protegido
POWERUSR
26-39 Notapa-P24.qxd
9/6/05
11:26 AM
Page 33
EL MITICO BLASTER
Si nos preguntan, pensamos que el cdigo de este worm es ms
que desprolijo y tosco, pero, como todos sabemos, resulta muy
efectivo. Lo que hace este gusano, bsicamente, es explotar la conocida vulnerabilidad en DCOM RPC, mejor descrita en el documento oficial de Microsoft MS03-026. Profundizando, RPC (Remote Procedure Call) es un protocolo usado por Windows para
proveer de un mecanismo de comunicacin entre procesos que le
permite a un programa ejecutar cdigo en una mquina remota.
El protocolo en s es un derivado del RDP de Open Software
Foundation (OSF), y la vulnerabilidad afectada fue la modificada
por Microsoft que agrega mdulos propietarios. La vulnerabilidad
en s est en la porcin de RPC que maneja las negociaciones
TCP/IP. La falla reside en el incorrecto manejo de mensajes malformados, que, particularmente, afecta la interfaz entre Distributed Component Object Model (DCOM) y RPC, ya que este protocolo maneja las solicitudes enviadas de mquinas remotas para realizar activaciones de objetos DCOM. Obviamente, esto corre con
privilegios SYSTEM; por lo tanto, un atacante que explote
correctamente este agujero (enviando mensajes maliciosos especialmente construidos al puerto RPC TCP 135) se hara con los
privilegios ilimitados en la mquina comprometida.
DESMENUZANDO EL CODIGO
Conociendo el background y la manera en que este cdigo se
aprovecha de la imperfeccin del sistema operativo de la gente
de Microsoft, vamos a analizar algunas porciones, que descompilamos con nuestro mejor amigo, IDA-PRO, para ver cmo se
comportaba este gusanito.
MS-BLASTER:
Lnea de tiempo
ZONA
PROACTIVA
Notificada la
vulnerabilidad
16/julio
#include <winsock2.h>
#include <ws2tcpip.h> /*IP_HDRINCL*/
#include <wininet.h> /*InternetGetConnectedState*/
#include <stdio.h>
#pragma comment (lib, ws2_32.lib)
#pragma comment (lib, wininet.lib)
#pragma comment (lib, advapi32.lib)
const char msg1[]=I just want to say LOVE YOU SAN!!;
const char msg2[]=billy gates why do you make this possible ?
Stop making money and fix your software!!;
ZONA
REACTIVA
Exploit es
notificado
25/julio
worm es
creado
10/agosto
ZONA
PROACTIVA
Notificada la
vulnerabilidad
24/julio/02
ZONA
REACTIVA
worm es
creado
25/enero/03
Pocos
fabricantes
publican firmas
Firmas de pattern
matching son creadas
para el exploit y el worm
SQL SLAMMER:
Lnea de tiempo
Otros fabricantes
actualizan su sistema
DEMASIADO TARDE!
26-39 Notapa-P24.qxd
9/6/05
11:26 AM
Page 34
Bsicamente, aqu dice que si la conexin a Internet no est disponible, espere 20 segundos e intente otra vez. Esto es una desventaja, ya que los usuarios de dial-up, mientras estaban fuera
de lnea, reciban mensajes de intento de conexin cada 20 segundos, factor que facilitaba la deteccin (o, por lo menos, iniciaba la sospecha de que haba una infeccin).
El worm est lleno de defectos y cosas programadas muy a lo carnicero, y es por esto que la infeccin no fue tan rpida como podra haber sido (y eso que fue bastante veloz, en su momento). Entonces, podramos decir que haber tenido un Blaster para que hiciera evidente este agujero fue la mejor opcin, ya que todos sus
defectos evitaron consecuencias catastrficas: pensemos que ste
fue el bug remoto explotado masivamente, que afectaba tanto a
34
servers como a PCs de escritorio, virtud que no posean predecesores como Nimda o Code Red, que requeran servicios
corriendo especficamente en el equipo, de modo que dejaban
de lado las PCs hogareas y se concentraban en los servers.
Un worm ms cuidado en materia de cdigo habra causado
muchsimo ms dao. Por eso, recordemos siempre filtrar los
servicios de NetBIOS en nuestros firewalls, personalizar firmas
en nuestros IDSs/IPSs, y restringir las aplicaciones que los usan,
con el fin de evitar problemas con este protocolo tan trivial.
NACHI Y SASSER
Ambos pueden considerarse como los hijos o, al menos,
los primo-hermanos, de Blaster, ya que se valan de vulnerabilidades similares y usaban formas parecidas de difusin. No se autoenviaban por mail ni se basaban en la ingeniera social, sino que apostaban a que el objetivo no hubiera aplicado los parches publicados por Microsoft. Una
particularidad que tena Nachi era que se autoproclamaba
como un virus bueno en su payload. Su nica funcin era
encontrar a Blaster en la mquina afectada, y en caso de
hacerlo, eliminarlo y permanecer all durante unos meses
hasta que un trigger efectuara su autoeliminacin.
Suena realmente extrao escuchar algo por el estilo, pero as
era. Por eso se pensaba que podra ser una guerra entre bandas informticas under, y hasta se lleg a correr el rumor de
que Microsoft haba creado este gusano valindose de su propia vulnerabilidad, para erradicar al anterior, que tan expuesta haba dejado a su empresa frente a los ojos del mundo.
POWERUSR
26-39 Notapa-P24.qxd
9/6/05
11:26 AM
Page 36
FRAMEWORKS DE
EXPLOTACION
Los frameworks de explotacin son herramientas extremadamente tiles a la hora de realizar testeos de penetracin o
hacking ticos. Dado que stos son de carcter ms intrusivo,
con la explotacin exitosa del bug podemos demostrarle a
nuestro cliente que hemos ganado privilegios de root o system
en sus servers, y as dejar en evidencia que necesita trabajar
de manera ms intensiva sobre la seguridad de sus equipos.
Si viajamos en la lnea de tiempo, antes casi ni se hablaba de
pruebas de ataque y penetracin. Lo ms comn (aunque tambin poco difundido) eran los escaneos de vulnerabilidades,
conocidos como Vulnerability Assesments, en los que el nivel de intrusin es mucho menor, ya que no se intenta explotar el bug encontrado para verificar y asegurar que, realmente,
es vulnerable, sino que se limita al descubrimiento de agujeros
de seguridad en el equipo escaneado.
Por supuesto, en el reporte obtenemos gran cantidad de falsos
positivos. Algo bastante comn, para dar un ejemplo, es la deduccin de bugs basndose en el banner con que responde un
servicio publicado (Banner Grabbing). Esto no quiere decir nada, porque el cdigo o la versin puede estar parcheada, pero
el software de escaneo compara contra su base de datos que
esa versin del servicio corriendo en el server del cliente posee
A y B vulnerabilidades.
80
70
INTERNET
60
DISQUETE
50
OTRO
40
30
20
10
0
1996 1997
1998 1999
2000 2001
2002
tivo, ya que si se agregaran 0day-exploits diariamente, la cantidad de compromisos por atacantes con malas intenciones sera extrema, y las prdidas, muy grandes, teniendo en cuenta
que cualquiera puede entender y usar Metasploit.
Metasploit est diseado completamente en Perl; por ende, todo
el cdigo del motor del framework y las libreras madre se basan en clases. Entonces, cada mdulo exploit que se encuentra
aqu est tambin basado en clases. Esto significa que, para incorporar o desarrollar un exploit para el framework, tendremos
que escribir una clase y, entonces, sta tendr que mantener
correlacin con la API que espera recibir el motor de Metasploit para ser interpretada y ejecutada. Esto es una clara diferencia con el framework de explotacin de SecurityForest, que
luego veremos de manera ms detallada.
Algo muy interesante de Metasploit es que puede ser visible
para el usuario en dos formas distintas: ejecutndolo a travs
de consola o mediante una interfaz web que l mismo genera,
sin necesidad de montar un web server de manera local o requerir algn software adicional.
Imagnenlo combinado con exploits que se aprovechan de vulnerabilidades descubiertas recientemente. Por suerte para algunos y
desgracia para otros, no todos se sientan a portar su exploit para
ser interpretado por el framework de Metasploit. Si el proyecto
fuese ms actualizado, sera todava ms poderoso que ahora.
Tomemos todo esto como una prueba de concepto, no queremos
que se basen en lo explicado para romper cosas por ah.
Para palpar Metasploit en toda su extensin, en la prxima edicin realizaremos una nota exclusivamente dedicada a su uso.
POWERUSR
26-39 Notapa-P24.qxd
9/6/05
11:26 AM
Page 37
c:/SForest/ExploitTree/ExploitTree.exe anonymous
WORM
NUMERO DE
INFECCIONES
Worm
Wahol
15 minutos
Worm
rpido
30 minutos
Worm
convencional
24 horas
POWERUSR
TIEMPO
GRAFICO QUE NOS DA UNA IDEA DE LA EVOLUCION EN LA
VELOCIDAD Y LA PRECISION DE LA INFECCION PRODUCIDA POR LOS
WORMS Y VIRUS, SEGUN EL PASO DEL TIEMPO.
37
26-39 Notapa-P24.qxd
9/6/05
11:26 AM
Page 38
sitorios y modificados), que recurrir a software testeado por grupos de desarrolladores que dedican todo su tiempo a perfeccionar
la herramienta y los exploits con el fin de evitar fallas.
Al ser una empresa que brinda servicios de seguridad informtica, ser partner de estos gigantes del rubro otorga prestigio,
porque las herramientas que utilizan estn avaladas y reconocidas en todo el mundo.
Como para cerrar el tema de frameworks, est claro que cada una
de las ramas (libres o comerciales) tiene como destinatarios a grupos bien definidos: por un lado, pequeas empresas y particulares
de la seguridad informtica; por el otro, grandes empresas dedicadas a prestar exclusivamente servicios de seguridad, o corporaciones con equipos propios de SI que necesitan s o s auditarse y evitar cualquier mnimo agujero que se pueda presentar en sus sistemas, ya que eso les generara prdidas millonarias.
Si la seguridad informtica es algo que les interesa o que practican
a diario, y nunca utilizaron estas herramientas (por lo menos, las
libres), pueden instalar mquinas virtuales con Windows sin Service Packs o Linux con servicios vulnerables, para probarlas y comprender el alcance y el valor que tiene proteger la informacin.
CONCLUSIONES
38
EL SOPORTE
Quieren ms? S, hay algo fundamental que les da permanencia
a estos productos, y por lo que son recomendados por corporaciones muy respetadas y organismos del gobierno: el soporte. Este
punto es elemental cuando las grandes empresas compran equipamiento o software, ya que necesitan tener a alguien que les cubra
las espaldas y a quienes culpar en caso de que tengan malos resultados con un cliente propio. El soporte hace la diferencia y
permite ganar ventas muy grandes. No es lo mismo tener personal
interno 100% capacitado para realizar penetration testings (haciendo la reunin de informacin y la intrusin con Nessus, herramientas y exploits programados por ellos o extrados de repo-
26-39 Notapa-P24.qxd
9/6/05
15:50
Page 39
GLOSARIO
0day: Se denomina as a los exploits da cero o recin
POWERUSR
39