Está en la página 1de 12

26-39 Notapa-P24.

qxd

28

9/6/05

11:23 AM

Page 26

POWERUSR

26-39 Notapa-P24.qxd

9/6/05

11:24 AM

Page 27

A LO LARGO DE LOS AOS, LOS OJOS DE LA MAYORIA DE LOS ATACANTES SE POSARON


SOBRE EL SISTEMA OPERATIVO DE LA EMPRESA DE REDMOND. EN GRAN PARTE, ESTO SE
DEBE A SU ALTA PASIVIDAD, PERO TAMBIEN A QUE SE HA CARACTERIZADO POR TENER
HUECOS EN SU PROGRAMACION BASE, LO QUE PERMITE INGRESOS INDEBIDOS O GRAVES
CAIDAS DE DIFERENTES FORMAS, DESDE RIDICULECES IMPENSADAS HASTA LAS MAS
INGENIOSAS VUELTAS DE LA PROGRAMACION. OTRA DE LAS COSAS QUE CONVIERTEN A
WINDOWS EN UN BLANCO CUASI-PERFECTO ES SU CALIDAD DE SOFTWARE PROPIETARIO
DE CDIGO CERRADO. A DIFERENCIA DE LAS DISTRIBUCIONES LINUX O DE CUALQUIERA DE
LOS BSD, EL CODIGO DE WINDOWS PUEDE SER VISTO Y MODIFICADO SOLAMENTE POR UN
PUADO DE PROGRAMADORES QUE, SI BIEN TIENEN UNA GRAN EMPRESA COMO
MICROSOFT EN SUS ESPALDAS, NUNCA PODRAN COMPARARSE CON EL PODER DISTRIBUIDO
CON EL QUE CUENTAN LOS PRIMEROS, AL TENER MILLONES DE OJOS ALREDEDOR DEL
MUNDO MODIFICANDO EL CODIGO PARA HACERLO CADA VEZ MAS ESTABLE Y SEGURO.
EN ESTAS PAGINAS HAREMOS UN REPASO CRONOLOGICO POR LOS EXPLOITS MAS
IMPORTANTES, UTILIZADOS POR ATACANTES A TRAVES DE VIRUS, TROYANOS Y/O WORMS.
Leandro Reox | leandro.reox@gmail.com
Pablo Hauser | ph@mpediciones.com

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

nar bastante ilgico, en realidad, es un planteo


hecho por varios especialistas hace ya mucho
tiempo. De hecho, intentaron llevarlo a la prctica
en reiteradas ocasiones, pero por ahora, han fracasado miserablemente, y siempre por el mismo
motivo: la imagen o percepcin negativa que el
pblico suele tener sobre exploits, troyanos, virus,
worms, etc. Entindase, entonces, que el cdigo
malicioso, en realidad, no existe como tal, pero
continuaremos refirindonos a l de esta manera
slo porque en el inconsciente colectivo ya est
establecido y arraigado as.
Por otro lado, se suele tener otra percepcin errnea acerca del tipo de peligro residente en los
ataques: Lo peor que puede hacer un ataque a
mi sistema es destruir el disco duro. Nunca algo
tan lejano de la realidad: si nos tomamos la molestia de realizar backups peridicos de la informacin que consideramos crtica, a lo sumo, podemos perder las ltimas actualizaciones de dichos datos, pero nunca los perderemos definitivamente. Ahora pensemos en el dao que puede
causar un virus o troyano que reside silenciosamente en nuestra PC y que, cada cierto perodo de
tiempo, cambia algn archivo, por ejemplo, una
planilla de clculo donde llevamos ciertas estadsticas o cifras, agregndole un 10% a cada celda
numrica. Eso ser casi imperceptible, y para el
momento en que nos demos cuenta, habremos
hecho tal cantidad de backups incluyendo la planilla modificada, que ya no podremos recuperar la
correcta. Por eso, los vendors deben ser cada vez
ms rpidos en publicar los parches que solucionen sus propios problemas.
27

26-39 Notapa-P24.qxd

9/6/05

11:24 AM

HISTORIA

Page 28

ANTIGUA

PARA COMENZAR NUESTRO RECORRIDO, MENCIONAREMOS LOS PRECURSORES EN EL GENERO,


AQUELLOS CLASICOS VIRUS QUE CAUSARON ESTRAGOS EN LA DECADA DE LOS 80 Y 90:
FUNDAMENTALMENTE, BOUNCINGBALL, BRAIN, STONE Y CIH (CHERNOBYL).

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

Utilizaba el vector de interrupcin 13h y se


alojaba en los primeros 1024 bytes del sector de boot de los disquetes. Aunque no
causaba daos fsicos, mostraba una molesta pelotita saltarina en pantalla. Aqu vemos
porciones del cdigo donde realizaba el manejo de la interrupcin y la infeccin:

Fue creado en Pakistn por los dueos de


la empresa Brain Computer Services, quienes, aparentemente, lo desarrollaron para
evitar el pirateo de sus productos. Utilizaba
el manejo de la misma interrupcin que
BB, pero con la diferencia de que marcaba
los sectores de arranque como malos, y renombraba la etiqueta del disquete a
Brain, utilizando la tcnica de stealth.
Entre el cdigo, y dependiendo de la versin, se podan ver mensajes como este:
Bienvenidos al nuevo calabozo (C) 1986,
Amjad & Basit Farooq Alvis. Cudense de
este virus. Brain Computer Services, Lahore, Pakistn. Contctenos para la vacuna.

mod_3_setvec:
cli
mov
mov
add ax,13
mov
mov

28

ax,word ptr es:[table+0c]


ds:[4*21],ax
ax,es
ds:[4*21+2],ax

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..... $#@%$@!!

MESSAGE DB 7, Your PC is now Stoned!, 7, 0DH, 0AH, 0AH, 0


DB LEGALISE MARIJUANA!
ENDADR EQU $-1
CODE ENDS
END START

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

quedbamos atnitos mirando un programa donde mostraban una


infeccin de Miguel Angel: una persona sentada frente a una PC
observaba mientras un hombrecito dibujado con caracteres ASCII
(del tamao de la mitad del monitor) corra de un lado a otro de
la pantalla borrando la informacin. A todo esto, informaban que
el 6 de marzo deben dejar apagadas las PCs o, mejor an, desenchufarlas de la lnea elctrica para que no se contagien. Triste.

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.

ESTE ES EL LOG DE UN WEB SERVER QUE HA SIDO


ATACADO EN REITERADAS OPORTUNIDADES POR EL WORM
NIMDA. VEMOS QUE LOS ATAQUES DATAN DE 2004, CUANDO
EL WORM SE LANZO, INICIALMENTE, EN 2001.

CONFORME PASO EL TIEMPO, LOS VIRUS FUERON CONSIDERADOS COMO ALGO


COMUN Y, POR LO TANTO, SUS DESARROLLADORES COMENZARON A UTILIZAR
LA INOCENCIA DE LA GENTE PARA PROVOCAR DESASTRES EN LOS SERVIDORES.

LES PARECE CONOCIDO? ASI ES COMO LUCE UN MENSAJE


AFECTADO POR UNA DE LAS TANTAS VARIANTES DE
SIRCAM, EN INGLES (AUNQUE HAY EN TODOS LOS IDIOMAS).

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

dos. Ahora bien, si el host infectado resultaba ser un web


server y el virus encontraba un archivo tpico de homepage (tal como index, default o main), lo alteraba, y colocaba
una rutina maliciosa en JavaScript al final del cdigo. De
esta manera, se aseguraba que cualquier persona que visitara la pgina usando una versin de algn navegador inseguro (Internet Explorer?) fuera contagiada sin siquiera
advertirlo.
Una parte cmica del caso fue que Nimda vulneraba ciertos
huecos de seguridad dejados por Code Red; por ende, si un
server haba sido infectado por este worm, muy probablemente caera en manos de Nimda. A su vez, Nimda tambin
creaba nuevos huecos para poder ser explotados ms tarde
por quien conociera un poco su cdigo fuente.
POWERUSR

26-39 Notapa-P24.qxd

9/6/05

11:26 AM

HISTORIA

Page 32

CONTEMPORANEA

AHORA LLEGAMOS A TIEMPOS BASTANTE CERCANOS A LA ACTUALIDAD, CON WORMS QUE


EXPLOTAN VULNERABILIDADES DE LAS VERSIONES 2000 Y XP DE WINDOWS. MUCHOS DE ELLOS
AUN ESTAN EN CIRCULACION.

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).

mediante el cual se transfiere y visualiza la data de las pginas web


que visitamos a diario, y es aqu donde vamos a detenernos a realizar un anlisis ms profundo. Este tipo de software mutante del
que venamos hablando es capaz de auto-encapsular sus establecimientos, negociaciones, inicios y mantenimientos de sesiones a travs del protocolo HTTP, simulando ser trfico comn de browsing.
Parece que llegamos al punto, y ms de alguno debe estar teniendo
esa conocida sensacin de yo ya intent bloquear estos accesos, y
me fue muy difcil o hasta no pude hacerlo.

PROGRAMAS DE CODIGO MUTANTE


Como comentamos anteriormente, existen varias ramas o grupos que definen a los exploits de diversas maneras. En la actualidad, algo crtico y difcil de mitigar son los programas con
cdigo mutante, que pueden modificarse y adaptarse a la situacin del server al cual infectaron y mediante el cual quieren
propagarse; ellos son una nueva forma de exploit.
Aunque no lo sepamos, todos nosotros (s, todos) tenemos instalado un software de estas caractersticas en nuestra PC, con o
sin conocimiento de causa. Todava no lo adivinaron? S,
queridos lectores: el famoso y ponderado mensajero (IM) conocido por todos es uno de ellos.
Para los que trabajamos en la administracin de dispositivos de
seguridad informtica, que velamos por la proteccin de los
datos de muchos clientes, puede resultar fcil saber por qu
nuestro messenger muta y, de alguna manera, siempre los
usuarios se terminan logueando sin problemas, pero, para el
resto de la gente puede ser algo no tan visible.
Muchos de nosotros, ya sea en la oficina o en nuestros hogares,
estamos protegidos por un firewall amigo que se encarga de evitar,
al menos como barrera primaria, las amenazas de la Red de redes
(o, por lo menos, eso creemos). Pero, como no viene al caso evaluar los mtodos de proteccin, vamos a atacar lo que realmente
nos interesa. Para un flujo normal de negocios de una empresa conectada a Internet, la navegacin web y el correo electrnico son
elementos bsicos e indispensables, ya que muchos de sus recursos
e ingresos dependen de ellos. Todos conocemos el protocolo HTTP,
NO HAY COMO
CREAR LA FIRMA
DE EXPLOIT

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

Firma creada para


la vulnerabilidad

Exploit es
notificado

PROACTIVO
PROTEGIDO
worm

Proactivo
protegido

LA PROACTIVIDAD VERSUS LA REACTIVIDAD EN LO QUE COMPETE A DETECCION DE FIRMAS DE EXPLOITS.


32

POWERUSR

26-39 Notapa-P24.qxd

9/6/05

11:26 AM

Page 33

un rollback al mejor estilo terceras partes de pelculas, en las


que ya sabemos que el protagonista muere de una enfermedad
terminal, pero igual nos disponemos a estar sentados durante tres
horas en el cine para saber cmo vivi su infancia. Vamos a situarnos, cronolgicamente, en la crisis Windows, la hecatombe
del RPC, la debacle total S, msblast.exe. Acertaron!

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!!;

Slo necesitamos la primera fraccin de cdigo para darnos cuenta


de que su creador era un adolescente que recin haba descubierto
el amor y sufra de los tpicos sntomas de desafo de autoridad.
RegCreateKeyEx(
/*hKey*/ HKEY_LOCAL_MACHINE,
/*lpSubKey*/ SOFTWARE\\Microsoft\\Windows\\
CurrentVersion\\Run,
/*Reserved*/ 0,
/*lpClass*/ NULL,
/*dwOptions*/ REG_OPTION_NON_VOLATILE,
/*samDesired */ KEY_ALL_ACCESS,
/*lpSecurityAttributes*/ NULL,
/*phkResult */ &hKey,
/*lpdwDisposition */ 0);
RegSetValueExA(
hKey,
windows auto update,
0,
REG_SZ,
MSBLAST_EXE,
50);
RegCloseKey(hKey);

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

Entre los ms de 101


protocolos decodificados
para el MS-RPC

Firmas de pattern
matching son creadas
para el exploit y el worm

PROTECCION BRINDADA PARA LA DETECCION DEL WORM BLASTER,


SEGUN LA COMPAIA DE IDSS E IPSS ISS.
POWERUSR

SQL SLAMMER:
Lnea de tiempo

Otros fabricantes
actualizan su sistema
DEMASIADO TARDE!

PROTECCION BRINDADA PARA LA DETECCION DEL WORM SLAMMER,


SEGUN LA COMPAIA DE IDSS E IPSS ISS.
33

26-39 Notapa-P24.qxd

9/6/05

11:26 AM

Page 34

Esta es una caracterstica bastante especial de Blaster, que no posean


sus predecesores, como Slammer, que era residente en memoria. En
estas lneas podemos observar cmo el gusano creaba una entrada en
el Registro para correr cada vez que se reiniciara la mquina. Es por
eso que las herramientas de limpieza deban quitar los valores del Registro para que Blaster fuera completamente eliminado.
UNA DE CAL Y UNA DE ARENA
Veamos ahora una lnea importante en su cdigo:

Este fragmento es realmente bueno, y un arma de doble filo que


su creador, BUFORD, no tuvo en cuenta. Un problema comn
de los worms es que suelen estar mal programados e intentan infectar la misma mquina cada vez que sta es iniciada. Esto se
debe a que no se dan cuenta de que el gusano ya est residente en el sistema, lo cual hace que la mquina se cuelgue; una
mquina comprometida cada no puede esparcir el gusano, y esto no es realmente lo que sus creadores buscan. Es por eso que
las lneas que vemos arriba crean un objeto global de sistema
llamado BILLY. Por ende, si otra instancia del worm quiere correr cuando reiniciamos nuestra PC y encuentra el objeto
BILLY creado, no va a reinfectar el equipo.
Por qu un arma de doble filo? Elemental, Watson: una contramedida a la infeccin de Blaster es crear un objeto global de sistema llamado BILLY, y as el amigo ser burlado por sus propias facultades: encontrar el objeto presente en el sistema y dar como resultado ExitProcess (salir del proceso), y a otra cosa.
OTRO GRAVE ERROR
Bien, una vez que crea el socket para el ataque y el worm se empieza a leer a s mismo, nos encontramos con estas dos interesantes lneas, que tambin le jugaron en contra:
while (!InternetGetConnectedState(&ThreadId, 0))
Sleep (20000); /*wait 20 seconds and try again */

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

CreateMutexA(NULL, TRUE, BILLY);


if (GetLastError() == ERROR_ALREADY_EXISTS)
ExitProcess(0);

CUALQUIERA QUE INSTALE UN WINDOWS XP SIN SERVICE


PACKS NI FIREWALL Y SE CONECTE A INTERNET, EN
CUESTION DE SEGUNDOS RECIBIRA ESTE MENSAJE.

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 EXPLOTACION SE ENCARGAN DE RECOPILAR LIBRERIAS DE EXPLOITS CONOCIDOS Y


PROBADOS POR LA COMUNIDAD DE SEGURIDAD INFORMATICA, SUMANDOLE A ESTO UNA INTERFAZ BASTANTE
AMIGABLE PARA EJECUTARLOS Y REALIZAR PRUEBAS. EN ESTAS PAGINAS VEREMOS COMO SE UTILIZAN.

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.

DOS GRANDES GRUPOS


Ahora bien, pongmonos en los zapatos de un auditor de seguridad que va a realizar un testeo de ataque y penetracin a
las oficinas de su cliente favorito: qu es lo que tendramos
en nuestro arsenal, para intentar explotar las vulnerabilidades
que, previamente, encontramos con nuestro soft de escaneo
predilecto, como Nessus o Bidiblah? Bueno, en este punto nos
vemos obligados a dividir nuestra artillera en dos grandes
grupos: los frameworks de explotacin libres y gratuitos, y los
comerciales. Y cules son sus diferencias, la forma de operar,
sus ventajas y desventajas? Eso mismo es lo que vamos a analizar a continuacin.

FRAMEWORKS LIBRES Y GRATUITOS


La escena de estos frameworks libres est liderada por dos
grandes proyectos: The Metasploit Project (www.metasploit.com) y SecurityForest Exploitation Framework (www.securityforest.com/wiki/index.php/Exploitation_Framework). Cada uno tiene caractersticas destacables, as como tambin, su propio mtodo de instalacin y ejecucin. Vamos a profundizar en estos temas.
THE METASPLOIT PROJECT
Durante mucho tiempo, este framework fue un proveedor de
alegras para la comunidad de seguridad informtica; realmente, su uso es muy simple (as como su instalacin), y se caracteriza por ser muy efectivo. La nica desventaja de este framework es que los repositorios de exploits no se actualizan asiduamente, aunque esto puede ser tomado como un valor posi36

VIRUS - PRINCIPALES VECTORES


90%
E-MAIL

80
70

INTERNET

60

DISQUETE

50

OTRO

40
30
20
10
0
1996 1997

1998 1999

2000 2001

2002

FORMAS QUE UTILIZAN LOS VIRUS, WORMS Y MALWARE


EN GENERAL PARA ESPARCIRSE.

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

SECURITY FOREST EXPLOTATION FRAMEWORK


Este framework es muy similar a Metasploit, con la diferencia
de que se vale de una base de exploits bastante mayor, y con
la ventaja de que stos no tiene que ser reprogramados para ser
interpretados por el motor del framework: no importa qu lenguaje ni que mtodos se usen, los exploits son compatibles, como as tambin los sistemas operativos. Bsicamente, es una interfaz grfica para el Explotation Tree que vamos a describir luego. Se maneja creando una instancia de web server en la PC local y
levantando un navegador desde el cual podemos lanzar los exploits.
El Explotation Tree es un repositorio de exploits grande basado en
CVS, mediante el cual los usuarios pueden subir nuevos exploits para que se agreguen a la base, y los poseedores del framework puedan actualizar de manera peridica, lo cual lo vuelve muy slido.
Posee un instalador para Windows, que es similar al de Metasploit;
luego debemos descargar por separado el Explotation Tree que viene comprimido, descomprimirlo en la carpeta donde instalamos el
framework y correr el siguiente comando:

FRAMEWORKS COMERCIALES: CORE IMPACT & CANVAS


Bienvenidos al paraso. Estamos todos de acuerdo en que productos como stos, si son pagos, es por algo. Y ms si se trata
de dos gigantes como Impact y CANVAS.
Se puede decir que ambos, ms que simples frameworks de explotacin, son considerados grandes RPT (Rapid Penetration
Testers); sus funcionalidades fusionan un software de Vulnerability Assesment con un framework de explotacin finamente
desarrollado y cuidado.
Cuentan con las facilidades para realizar, de manera gil y
simple, los pasos de un penetration testing que nos llevara
horas hacer a mano, como son:
Adquisicin de informacin
Ataque y penetracin
Bsqueda de informacin de manera local
Escalacin de privilegios
Limpieza de huellas
Generacin de reportes

c:/SForest/ExploitTree/ExploitTree.exe anonymous

Con l descargaremos los principales exploits desde Internet;


luego tendremos que actualizarlos registrando un usuario en
SecurityForest (www.securityforest.com) y, en vez de colocar anonymous en el comando descrito anteriormente, ingresamos nuestro User ID registrado para descargar los ltimos updates.
Adems, es muy buena la posibilidad de navegar por el repositorio de exploits a travs de la Web oficial de proyecto.
Su forma de operar es casi igual a la del Metasploit, con valores como RHOST, RPORT, LHOST, LPORT (dependiendo el exploit y su uso), y la configuracin es ms que intuitiva. Lo recomendamos como paso previo a Metasploit.

Todo esto se encuentra integrado en una interfaz de usuario


limpia, intuitiva y extremadamente fcil de usar para cualquier administrador de redes. Con estos programas, la poca
en la que era necesario contar con altos conocimientos sobre
seguridad informtica qued atrs.
De todos modos, siempre es bueno saber lo que uno hace por
ms que nuestra empresa pague las licencias de estos productos (que realmente valen), y debemos tener un background. No
es nada productivo tomar un Impact o un CANVAS y empezar
a tirotear al Server con apache_0day, cuando tenemos un
Windows con IIS. Algunos se estarn riendo, pero hay gente
que lo hace y mucha!

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.

SE APRECIA EN ESTA FIGURA LA INTERFAZ PRINCIPAL DE CORE


IMPACT, EN LA QUE VEMOS VARIOS MODULOS DE EXPLOIT
EJECUTADOS CON SUS RESPECTIVOS RESULTADOS.

37

26-39 Notapa-P24.qxd

9/6/05

11:26 AM

Page 38

DIFERENCIAS ENTRE AMBOS


Aunque son dos productos muy robustos, tienen sus diferencias.
Por ejemplo, en cuanto a interfaz y user friendly quality, Impact
supera ampliamente a CANVAS. Con esto no queremos decir que
su interfaz sea mala, slo que la de Impact es demasiado buena,
colorida y bien diseada. Tal vez en este momento estn pensando que a nosotros nos engaan con espejos de colores, como
cuando los espaoles colonizaron Amrica, pero no es as: realmente, da gusto ver cmo est diagramado Impact.
En contraposicin, CANVAS supera a Impact en cuanto a
apertura. Cuando uno paga la licencia, el producto viene con
el cdigo fuente, algo muy importante y destacable. Como dato adicional, y para los que les interesa, CANVAS y sus exploits estn hechos en Python, un lenguaje realmente orientado a objetos del cual disfrutamos mucho, y que nos parece excelente, muy slido y estable. Por lo tanto, puede correr en
cualquier plataforma que sea capaz de interpretarlo.
Ambos RPTs son altamente portables y dinmicos. Ni hablar
del punto actualizacin: al ser programas comerciales, las actualizaciones son semanales, y hasta inmediatas en caso de solicitarlo siendo partner.

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

PODEMOS OBSERVAR CLARAMENTE LA INTERFAZ WEB QUE


OFRECE SECURITYFOREST PARA LANZAR LOS EXPLOITS, MUY
SIMILAR A LA INCORPORADA TAMBIEN POR METASPLOIT.

Hoy en da, ya estamos acostumbrados a la constante actualizacin


del sistema operativo y de nuestras principales aplicaciones, a no
confiar en los mensajes ni siquiera de personas conocidas, y a escanear las descargas que realizamos desde Internet, en busca de cdigo malicioso. Pero hasta hace muy poco tiempo, esto no era una
prctica habitual, y supongo que debemos agradecer las penurias
sufridas por nuestros antecesores, que fueron los que permitieron
que nosotros tengamos otro nivel de alerta.
Pero nunca hay que olvidar que las mejores explotaciones de vulnerabilidades en cualquier sistema operativo, aplicacin o archivo
se dan en el punto ms dbil de todo el sistema: el usuario. Y lo
ms grave es que no existe parche para la estupidez humana.

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-

LA INTERFAZ PRINCIPAL DE CANVAS, QUE TAMBIEN DA LA


POSIBILIDAD DE CORRER LOS EXPLOITS DESDE CONSOLA.
AQUI VEMOS EL RESULTADO DE UN EXPLOIT EXITOSO.
POWERUSR

26-39 Notapa-P24.qxd

9/6/05

15:50

Page 39

GLOSARIO
0day: Se denomina as a los exploits da cero o recin

salidos del horno, que tienen horas o pocos das de


conocer el mundo, y que se encargan de explotar una
vulnerabilidad descubierta recientemente.
Infeccin lenta: Se refiere a un virus que infecta los
archivos slo en la medida en que stos se van ejecutando,
modificando o creando. Mientras tanto, el virus en s (su
payload) permanece inactivo, hasta que un evento
previamente establecido lo activa.
Payload: En comunicaciones o informtica, el payload es
la carga en datos que lleva un paquete o que utiliza un
programa para su proceso.
Stealth : La tcnica stealth utilizada en cdigo malicioso
acta escondiendo las modificaciones hechas a los

POWERUSR

archivos o sectores de arranque de disco infectados. Se


trata de utilizar todos los medios posibles para que la
infeccin pase totalmente inadvertida, anulando efectos
tales como tamao de los archivos, cambios en la fecha y
hora de modificacin, atributos, y hasta disminucin de la
memoria RAM.
Trigger: Disparador. Porcin de cdigo que
constantemente revisa que un determinado evento suceda;
cuando ocurre, dispara otra porcin de cdigo que, hasta el
momento, no estaba activa o no era llamada.
Whitehat: Denominacin comn para la persona que
posee amplios conocimientos de seguridad informtica,
que decide aplicarlos para aportar a la comunidad y no
para obtener beneficios o perjudicar a las empresas.

39

También podría gustarte