BOTNET Una Amenaza Fantasma
BOTNET Una Amenaza Fantasma
BOTNET Una Amenaza Fantasma
UOC
INCIBE
E NERO 2018
L ICENSE
i
A BSTRACT
través de los medios de comunicación nos hemos hecho eco de algunos ataques perpetrados
A por botnets, donde la opinión pública se alarma ante esta amenaza por un periodo corto
de tiempo para, luego, al poco olvidarlo y volverse a creer a salvo.
Sin embargo, las botnets están con nosotros, en nuestros equipos informáticos y no somos
conscientes de si realmente somos o nó esclavos de dicha red. Es como una amenaza “fantasma”
de la que solo nos asustamos cuando nos hablan de ella para acabar olvidándola cuando dejamos
de “verla”.
Con este trabajo se pretende conocer más en profundidad este tipo de redes, como funcionan,
quien las dirige, cuando surgieron y si estamos a salvo o somos rehenes de ellas.
hrough the media we have echoed some attacks perpetrated by botnets, where public
T opinion is alarmed by this threat for a short period of time, then, forget it in a short time
and return to believe safe.
However, the botnets are with us, in our computer equipment and we are not aware of whether
or not we are really slaves of that network. It is like a "ghost" threat that we only scare when
they talk about it and forget it when we stop "seeing" it.
With this work we intend to know more in depth this type of networks, how they work, who
directs them, when they arose and if we are safe or are hostages of it.
There will be a practical demonstration and an analysis in which its potential, its flexibility
of use and its power of concealment will be revealed, which will provide us with a final approach
to this real threat.
iii
D EDICATION AND ACKNOWLEDGEMENTS
uiero dar las gracias a mi familia, amigos y compañeros que durante este tiempo me
Q han apoyado y comprendido para poder finalizar este master que tanto esfuerzo re-
quiere.
Tambień quiero agradecer a todos los profesores de la UOC del Master Interuniversitario
en Seguridad de las TIC (MISTIC) por su apoyo y dedicación y en particular a la tutora de este
Trabajo de Fin de Master (TFM), Doña Angela María García Valdés (INCIBE), por su ayuda e
impulso en la realización de este reto.
v
TABLE OF C ONTENTS
License i
Page
List of Tables xi
Glossary xv
1 Introducción 1
1.1 Escenario actual sobre botnets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Objetivos de la investigación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3 Justificación de dichos objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.4 Recursos y limitaciones existentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.5 Desarrollo del trabajo -Diagrama de Gantt- . . . . . . . . . . . . . . . . . . . . . . . 6
1.5.1 Disposición de tiempo a las tareas . . . . . . . . . . . . . . . . . . . . . . . . . 7
2 Marco de referencia 9
2.1 Fundamentos teóricos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.2 Antecedentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.2.1 Inicios y cambios tecnológicos . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.2.2 El crimen organizado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.2.3 Alarma social . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.3 Situación actual de la amenaza . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.3.1 Situación Actual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.3.2 Nuevas vías . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.3.3 Nuevos rehenes (IoT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.3.4 ¿Sin esperanza? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.4 Casos reales más relevantes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.5 Actores y servicios que ofrecen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
vii
TABLE OF CONTENTS
4 Experimentación práctica 57
4.1 Diseño del escenario práctico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
4.2 Elección de la Botnet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
4.3 Características de Zeus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
4.3.1 Historial de Zeus botnet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
4.3.2 Formas de distribución de Zeus . . . . . . . . . . . . . . . . . . . . . . . . . . 61
4.3.3 Precio de mercado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
4.3.4 Caracteísticas de Zeus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
4.4 Escenario Planteado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
4.5 Desarrollo del escenario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
4.5.1 Obtención de los archivos botnet Zeus . . . . . . . . . . . . . . . . . . . . . . 66
4.5.2 Instalación del Servidor C&C y del bot Zeus . . . . . . . . . . . . . . . . . . . 67
4.5.3 Distribución de los bots e infección de las víctimas . . . . . . . . . . . . . . . 71
4.5.4 Comunicación de los bots con el servidor C&C . . . . . . . . . . . . . . . . . 73
4.5.5 Selección de las versiones de las máquinas virtuales . . . . . . . . . . . . . 74
4.6 Práctica de funcionamiento básico y empleo de comandos . . . . . . . . . . . . . . . 78
4.7 Práctica de web injection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
4.8 Práctica de ataque DDoS (Blue Botnet) . . . . . . . . . . . . . . . . . . . . . . . . . . 86
4.8.1 Blue Botnet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
4.9 Análisis forense de un equipo infectado (Bot) . . . . . . . . . . . . . . . . . . . . . . . 91
4.9.1 Formas de ocultación de Zbot descubiertas . . . . . . . . . . . . . . . . . . . 97
viii
TABLE OF CONTENTS
Bibliography 109
ix
L IST OF TABLES
TABLE Page
xi
L IST OF F IGURES
F IGURE Page
xiii
L IST OF F IGURES
xiv
G LOSSARY
xv
GLOSSARY
xvi
HAPTER
1
C
I NTRODUCCIÓN
xiste una multitud de usuarios que erróneamente piensan que un malware (los mal
Igual que una partida de ajedrez en la que nadie sacrifica a su reina en la primera jugada
sino, más bien, a sus peones menos valiosos así se opera en el tablero de la red de redes.
Comencé este trabajo teniendo un concepto teórico de lo que era una botnet y de su existencia
“real” en el mundo actual. Cuanto equivocado estaba sobre este tipo de redes y que ingenuo era
cuando creía que su existencia seria marginal y sin apenas uso.
Muy al contrario de lo ampliamente divulgado sobre este malware, se estima que 1 de cada
30 equipos esta infectado por un bot y, por tanto, pertenece a una red brindándole sus recursos
para actividades maliciosas. A mi entender esta estimación es poco realista pudiendo ser el ratio
de equipos zombis mucha mayor que el indicado.
Cuando se pretende obtener información sobre las mayores amenazas en internet, entre los
primeros puestos aparecen el robo de datos, phishing, DoS/DDoS, ransomware, spaming...etc. En
todos estos casos o están o pueden esta involucradas las botnets. Aunque existe una tendencia
1
CHAPTER 1. INTRODUCCIÓN
a establecer una relación unidireccional entre las botnets y los ataques de DDoS, la verdad
es que las botnets se emplean o pueden ser empleadas en casi cualquier tipo de ataque. Las
botnets proporcionan, capacidad, flexibilidad, anonimato, resilencia, adaptación y capacidad de
replicación o contagio.
Así pues, debemos de asociar la botnets no como un ataque en si, sino como una técnica que
nos permite emplear cualquier tipo de ataque a través de una “herramienta” tan eficaz como una
botnet. La amenaza que supone las botnets y su “invisibilidad” de cara al usuario hace que sea
la herramienta cada vez mas empleada en el cibercrimen, surgiendo mercados que hasta hace
años serian impensables, como el arriendo o venta de estas redes para la comisión de delitos por
parte de cualquier delincuente incluidos organismos, empresas, gobiernos o particulares. Existe
un “mercado negro” donde uno puede adquirir esta forma de ataque.
Hoy en día el uso de armas para cometer los crímenes no compensa económicamente y tiene
mayor rédito económico (o de otro tipo) emplear un “arma” ya preparada para poder realizar la
actividad criminal “sin mancharse las manos”. Obviamente no solo los creadores de estas redes
estarán sujetos a un hipotético castigo por su actividad delictiva, sino aquellos que las adquieren
o “alquilan” para conseguir sus fines.
2
1.3. JUSTIFICACIÓN DE DICHOS OBJETIVOS
1. Explicar la taxonomía de infección, empleo y gestión de las botnets, así como su impacto en
internet.
3. Obtener unas conclusiones finales en las que se puedan reseñar los tipos de defensas que
se podrían establecer ante este tipo de ataques y/o empleos de métodos de detección.
4. Por último, obtener vías de estudio para un trabajo futuro vinculado a los botnets.
2. Las adquisiciones de nuevas competencias en todos los procesos anteriores antes de pasar
al siguiente escenario.
3
CHAPTER 1. INTRODUCCIÓN
todos los conceptos relacionados con las botnets y sus tipos antes de poder proponer un escenario
práctico.
Una vez asimilados los conocimientos necesarios se seleccionará un escenario práctico en
forma de un laboratorio en el que se pueda representar un caso de una botnet en la que se den
varios tipos de elementos adquiridos en la fase teórica para poder aplicar un estudio de tipo
deductivo que nos aporte una visión práctica y del que podamos extraer unos conocimientos
específicos y empíricos de la materia.
Los últimos objetivos se cumplirían en la realización de un análisis de los resultados obtenidos
del laboratorio implementado confrontándolos con la teoría conocida y del que poder extraer una
nuevas (o confirmar) unas conclusiones. Además de dichas conclusiones, esta fase de análisis final
nos permitirá establecer una nueva base teórica o práctica para poder ser ampliada en futuros
trabajos de investigación en algún campo más especifico y relacionado.
En este apartado se valorará aspectos materiales de personal y administrativos, así como sus
limitaciones. Los recursos empleados para el desarrollo de este trabajo de fin de master (TFM)
son los siguientes: Recursos Materiales:
Recursos Humanos
• El propio alumno.
Recursos documentales
Recursos Software
• WireShark
• XAMPP
4
1.4. RECURSOS Y LIMITACIONES EXISTENTES
• GANTT Project
• ShowMore
• HitmanPro
• Malwarebytes
• Dependency Walker
• Volatility
• Belkasoft
• Versión de Zeus 2.1.0.1 http (Existen otras muchas como Zeus P2P -GameOver-, Floki-
Bot...etc).
Recursos Temporales:
• Media jornada compartida con 2 asignaturas de la UOC (Previsible 2/3 horas diarias
aumentanándolas los fines de semana). Se explicará mas adelante.
A pesar de existir limitaciones temporales y de personal se querría destacar los dos principales
obstáculos que se ha encontrado en la realización del laboratorio práctico:
– Ya que la simulación con maquinas virtuales (aunque el host anfitrión contaba con
16 Gb) consume muchos recursos y nos hemos limitado inicialmente a 3 maquinas
“zombis” (más adelante se empleará una más) para que el laboratorio tuviese la
suficiente fluidez.
5
CHAPTER 1. INTRODUCCIÓN
– Por último, reseñar que en la descarga de este tipo de malware nunca sabremos si
estamos siendo egañados e infectandos con otro malware oculto, ya que no existen
versiones oficiales con un hash y una seguridad que certifique la “limpieza” de la
herramienta descargada. Este es otro de los motivos por lo que se creo un escenario
“aislado” de la red internet.
Las tareas desarrolladas se muestran en la imagen 1.3, donde se pueden ver por orden cronológico.
Aunque las tareas se dividen en fases secuenciales, alguna de ellas podrá realizarse durante todo
6
1.5. DESARROLLO DEL TRABAJO -DIAGRAMA DE GANTT-
En la imagen 1.4 se puede ver el diagrama de GANTT con diferentes colores siendo los que
son iguales los relativos a tareas dentro del mismo bloque de trabajo y representándose en color
azul las PECś que se han entregado.
En dicha tabla se observa que se emplea más tiempo durante los fines de semana. Así mismo,
se quiere indicar que este alumno empleó una semana de vacaciones para poder documentar el
proyecto empleando una media de entre 8 a 10 horas diarias durante esos días.
Por último es importante destacar que existen casos en los que los imprevistos han hecho que
el alumno empleé más tiempo unos días en detrimento de otros.
7
HAPTER
2
C
M ARCO DE REFERENCIA
Parecería absurdo cometer un delito sin proteger nuestra identidad o con medios menores a los
que la protección de nuestro objetivo ha empleado para protegerse (Piénsese en ir a atracar un
banco a cara descubierta y con un simple periódico como arma). Es por ello que los que come-
ten delitos informáticos utilizan sus recursos para cometer estas acciones siempre intentando
obtener anonimato, ventaja tecnológica y un beneficio para lucrarse con ello. Las Botnets
nos proporcionan todas estas ventajas.
Botnet es una palabra formada por la unión de “BOT” referente a robot y “NET” referente a
la red informática. Simplemente describe una red (o si queremos un “ejército”) de robots. Aunque
el termino “robot” nos lleve a pensar más bien en una idea futurista de máquinas de metal
con apariencia humana, aquí se refiere, sin embargo, a artefactos software que se ejecutan en
las máquinas víctima tomando el control sobre ellas. Estas máquinas controladas se las suele
denominar “zombis”. El disponer de un ejército de máquinas zombis a nuestra disposición nos
permite realizar ataque coordinados o conjuntos sobre las víctimas elegidas. Con este potencial y
con el enmascaramiento que obtiene el que gobierna (o amo) este “ejercito de zombis” permite
poder realizar unos ataques exitosos y anónimos.
9
CHAPTER 2. MARCO DE REFERENCIA
Podemos concluir que un bot (robot) nos es más que un software o programa informático que,
una vez instalado en un ordenador, realizará las tareas para las cuales ha sido programado y con
total autonomía respecto al usuario de esa máquina, el cual ni se percatará de ello.
Un zombi (a nivel informático) es una máquina infectada en la que su propio usuario (y las
aplicaciones que la protegen, como el antivirus) no tiene “conciencia” de que está infectada y
que, desde el punto de vista del usuario externo, funciona con toda normalidad. Además, esta
máquina infectada puede ser el objetivo del atacante o un medio (o plataforma) desde donde
realizar ataques a otros objetivos. Una de las funciones que se le puede asignar (entre otras) seria
la infección de otras máquinas.
De esta manera, un solo atacante (o grupo de ellos) podría disponer de miles de equipos
a su servicio desde la que poder lanzar sus ataques coordinados a objetivos más jugosos. La
topología clásica de una botnet es la de una arquitectura jerárquica donde ciertas máquinas
(equípos informáticos) son utilizados como servidores de mando y control (servidores C&C)
para dar órdenes y poder recibir información de sus bots o máquinas zombis. Este esquema de
funcionamiento puede verse en la figura 2.1.
10
2.2. ANTECEDENTES
2.2 Antecedentes
Se dice que las botnets nacieron con el primer gusano conocido (Morris’s Worm 1988) aunque
habría que esperar hasta 1999 para considerar los primeros malwares que podría ser descritos
como botnets. Los primeros fueron “Sub7” y “Pretty Park” - un troyano y un gusano respectiva-
mente. Ambos introdujeron el concepto de máquina víctima que se conectaba a un canal de IRC
para recibir los comandos maliciosos.
El siguiente hito reseñable [17] en cuanto a este tipo de amenazas se produce en el año 2000
con la aparición del bot de amenaza global (GTbo). GTbot se basó en el cliente mIRC, lo que
significaba que podría ejecutar scripts personalizados en respuesta a eventos IRC a través de
sockets TCP/UDP, lo que lo hacía idóneo para ataques de denegación de servicio (DoS).
En el año 2002 se vieron dos notables evoluciones en la tecnología botnet con el lanzamiento
de SDBot y Agobot. SDBot estaba escrito en C ++ y, debido a que su creador puso a disposición el
código fuente, muchos de los bots posteriores incluían partes de ese código en sus desarrollos. En
ese mismo año, Agobot introdujo el concepto de ataque modular y escalonado, ya que las cargas
útiles (payloads) se entregaban secuencialmente.
El refinamiento de los bots con Agobot alcanzó una nuevo nivel al ser cpaz de instalar una
puerta trasera en su víctima para, luego, deshabilitar el software antivirus y bloquear el acceso a
los sitios web de los proveedores de seguridad. Ambos robots estaban dirigidos al uso del control
remoto y al robo de información, pero el movimiento hacia la modularización y el código abierto
comenzó hizo que comenzase el aumento en las variantes y la expansión de sus funcionalidades.
Otro de los hitos importantes fue el lanzamiento de Spybot en 2003 que era una evolución
del anterior SDbot, pero introduciendo algunas nuevas funcionalidades importantes como el
keylogging, data mining, SPIM (Instant Messaging Spam). En ese mismo año también vimos
la aparción de Rbot que introdujo el proxy de SOCKS, e incluyó funcionalidades de DDoS y
herramientas de robo de información. Rbot fue también la primera familia de robots en utilizar
algoritmos de compresión y encriptación para tratar de evadir su detección.
En 2003, también, se vio la primera aparición de una botnet “peer-to-peer” con el nombre de
Sinit. Más tarde se desarrollaron módulos Agobot para incorporar esta funcionalidad peer-to-peer.
Al año siguiente, otro derivado de Agobot, conocido como Polybot introdujo el polimorfismo
para tratar de evadir la detección cambiando su aspecto.
Las siguientes evoluciones fueron encaminadas a ser más efectivas en obtener acceso a través
de firewalls que, normalmente, bloquean los puertos de IRC pero si habilitan los de HTTP, ICMP
o SSL.
11
CHAPTER 2. MARCO DE REFERENCIA
Alrededor del año 2003 cuando surgió un gran interes sobre las posibilidades ofrecidas por
botnets. Al principio de la década, el correo spam todavía era en gran parte una de las grandes
tareas de los bots. Bagle y Bobax fueron los primeros botnets de spam y el malware Mytob fue
esencialmente una mezcla de un gusano de correo masivo. Los delincuentes evolucionaron las
botnets para distribuir sus actividades de spam en todas sus máquinas víctima, dándoles agilidad,
flexibilidad y ayudándoles a evitar la actividad de cumplimiento legal sobre el spam que ya se
aplicaba.
En 2006 aparece RuStock como una botnet de spam y Zeus (2007) que se consideran como
una herramienta de robo de información. Desde ese año, Zeus probablemente se ha convertido
en la herramienta criminal más utilizada en robar información. Los creadores de Zeus lo han
actualizado regularmente lanzando nuevas versiones del rootkit y añadiendo o mejorando su
funcionalidad.
Como estas nuevas versiones se han puesto a la venta a precios muy elevados, las versiones
anteriores se distribuyeron gratuitamente. A menudo, estas versiones más antiguas son infec-
tadas por los criminales, lo que significa que el “ladrón novato” también se convierte en la víctima
de esa botnet. Este exceso de herramientas criminales de libre disposición ha reducido la barrera
de los costos de la ciberdelincuencia y alentó a más criminales aspirantes a la delincuencia en
línea. Zeus ha sido diseñado para realizar una infección efectiva en internet.
Durante esta época ya se vieron casos de botnets enormes. Por ejemplo, la Fundación Shad-
owserver [6] ha detectado más 6000 servidores C&C y esa cifra podría incluso ser baja en
comparación a la que se considera real. Trend Micro está siguiendo a decenas de millones de
PCs infectados que se están utilizando para enviar Spam y esa cifra no incluye todos las demás
PC’s infectados con bots que están siendo utilizados con fines de robo de información, DDoS o
cualquiera de los otros crímenes.
Es a partir del 2003 cuando la comunidad científica se preocupa gravemente por esta amenaza y
se empiezan a desarrollar métodos de ataque, defensa y detección contra las botnets.
Desde entonces ha habido muchas anulaciones, desmantelaciones o deshabilitaciones exitosas
y principalmente dirigidas a proveedores de servicios criminales (normalmente webhostings) que
albergaban gran parte de la infraestructura de mando y control.
Tras múltiples quejas Atrivo/Intercage [4] (WebHosting) en 2008 corto su tráfico debido a
que muchos cibercriminales empleaban su hosting para el spaming. Este hecho casi destruyó la
botnet Mega-D, pero en poco tiempo esta botnet encontró nuevos “alojamientos” (hosting) desde
donde operar.
Otro ejemplo fue McColo otro ISP que alojaba hosting de algunos servicios cibercriminales
(alojaba sus servidores C&C) para las botnets Srizbi, el Mega-D “revivido”, RuStock, Asprox,
12
2.2. ANTECEDENTES
Bobax, Gheg y Cutwail. Cuando McColo se retiró de Internet a finales de 2008, se produjo una
caída global en los niveles de spam de casi el 80% como se puede ver en el gráfico adjunto 2.2.
En dicho grafico también se pueden observar otros casos como los de 3FN (2009), Lethic&Waledac
(2010), SpamIt (2010), Rustock (2011)...etc. No obstante, la amplia cantidad de servicios hosting
y/o ISPs hace difícil acabar con este tipo de amenazas, habida cuenta que hoy en día diversifican
sus servidores C&C por diferentes proveedores de servicio.
No obstante, la acción coordinada que las organizaciones públicas y privadas están tomando
contra las botnets hace que la innovación criminal tenga que buscar nuevas vías de “subsistencia”
y que las redes poco diversificadas sean rápidamente anuladas o desmanteladas. A medida que
surgen las nuevas tecnologías, los delincuentes buscan maneras de adaptarse a ellas con el fin de
aumentar su escalabilidad y flexibilidad o para proporcionar un camuflaje más eficaz.
Una de estas adaptaciones se produjo cuando se pasó de la definición de las direcciones IP
(o nombre de dominio) de los servidores de C&C en cada bot (haciendo fácil percibir ese tráfico
e interrumpirlo) a que cada robot fuera capáz de generar de forma criptográfica nombres de
host alternativos para sus servidores de mando y control. Los BotMaster, obviamente, saben qué
nombres de host serán generados en un día determinado, y simplemente necesitan añadir ese
canal de comando alternativo en la operación.
Esto último fue el caso de Conficker que era capaz de generar 50.000 nombres alternativos
cada día! (2008). La industria de la seguridad tuvo que tratar de bloquear el acceso a todos ellos
mientras que los criminales sólo tenían que hacerlo bien una vez. Vale la pena recordar que cerca
de seis millones de máquinas seguían siendo infectadas por Conficker casi dos años después que
apareciera por primera vez.
Además del spam, la denegación de servicio, el robo de información, el chantaje y la extorsión,
las botnets también han evolucionado hasta convertirse en redes de distribución de software
altamente eficientes para uso criminal. Los criminales pagan por el acceso a máquinas compro-
metidas para enviar más malware a estos equipos ya infectados. Los bots de spaming puede,
además, entregar información de malware por ejemplo. Otras vías de infección usadas son los
softwares antivirus falsos.
13
CHAPTER 2. MARCO DE REFERENCIA
Como una imagen vale más que mil palabras, se presentan la imagen 2.3, obtenida de Trend
Micro, que nos muestra la actividad y la situación de las botnets a nivel mundial durante los
últimos 14 días (tomada el 14/10/17) relacionadas con las botnets en el mundo divididas en “C&C
server” y “Target Computers” cuyos roles se explicaran más adelante en este documento. Se
pueden observar que existen más de 9700 C&C servers “localizados” (estimamos que se puede
localizar solo un porcentaje menor de ellos) y más de 3.600.000 de Target Computers.
Hay que tener en cuenta, además, que se estima que solo se pueden detectar una minoría
de ellos y que algunos no se muestran al no encontrarse en actividad durante el escaneo de los
14
2.3. SITUACIÓN ACTUAL DE LA AMENAZA
últimos días. Estas cifras son preocupantes ya que aunque detectados siguen con su actividad y
no resulta sencillo poder inhabilitarlos.
Por otro lado, el llamado crimeware (Tipo de software que ha sido específicamente diseñado
para la ejecución de delitos financieros) preocupa mucho al ámbito económico y está muy rela-
cionado con las botnets. En la siguiente imagen 2.4 observamos que la mayoría de los hechos
crimenware más peligrosos están relacionados con las botnets.
Tanto es así que una empresa como Heimdal Security en un artículo suyo (año 2016) establece
que de los 10 malwares más peligrosos comocCrimeware los 9 primeros son botnets relacionadas
con Zeus y la décima es un ransomware. La lista es la mostrada a continuación:
1. Zbot/Zeus
En la imagen 2.5 de Julio 2017, podemos ver los bots que existen en Europa y como España y
Madrid están entre los países y ciudades con mayor número de bots de Europa.
España ocupa la quinta posición en el EMEA (Europa, Oriente Medio y África) y la décima a
nivel mundial con el mayor número de bots en el año 2017. De hecho, Madrid aglutina más del
72% de los bots de todo el país colocándose, así, como la primera ciudad con mayor número de
bots en la región. En España hay, al menos, un bot por cada 30 usuarios de Internet, clasificando
el país 40◦ en Europa por la densidad de bots.
Otro de los motivos por el que la amenaza de las botnets es tan crítica es la gran cantidad de
dispositivos conectados a internet como son los teléfonos móviles (smartphones) y el internet de
las cosas (IoT -red de objetos cotidianos interconectados-) que, unido al mayor ancho de banda
del que disponen cualquiera de los dispositivos hoy en día, hace que estos sean futuros bots
para una botnet. Además,la mayor interconexión mundial de los usuarios (mayor en los países
desarrollados) facilita la labor de contagio y de la creación de redes botnets.
Por último, reseñar que en está siguiente imagen 2.6 se observa que el 21,2% de la comuni-
cación malware (septiembre 2017) es relativa a comunicación entre bots.
15
CHAPTER 2. MARCO DE REFERENCIA
16
2.3. SITUACIÓN ACTUAL DE LA AMENAZA
Desde la segunda mitad de 2007, los delincuentes han estado usando la web 2.0 (redes sociales).
Los primeros canales “no convencionales” de C&C identificados fueron los blogs y feeds RSS,
donde los comandos eran enviados a un blog público por el cibercriminal y los bots recuperaban
esos comandos a través de un feed RSS. Del mismo modo, el envío de información de las máquinas
infectadas se publicaba en un blog público completamente separado y legítimo para su posterior
recuperación por el servidor de comando y control, de nuevo por RSS.
A medida que los servicios de la web 2.0 se han extendido y han ganado un gran nivel de
aceptación dentro de las empresas, sus usos criminales ha evolucionado rápidamente. Uno de
estos ejemplos es la detección de servidores comprometidos en la nube EC2 de Amazon, que ha
sido utilizados para alojar archivos de configuración para el bot Zeus. También twitter se ha
utilizado como URL de destino en campañas de spam, para intentar superar el filtrado URL
de los mensajes de correo electrónico. Otros como Facebook, Pastaban, Google Groups y Google
AppEngine han sido utilizados como infraestructuras sustitutivas de servidores C&C.
Estos foros públicos han sido configurados para emitir comandos “ofuscados” a botnets
distribuidas a nivel mundial, estos comandos contienen URLs adicionales a las que el bot
accede para descargar nuevas instrucciones o componentes necesarios. La gran ventaja del uso
cibercriminal de estos sitios y servicios radica en el hecho de que ofrecen un medio público, abierto,
escalable, altamente accesible y relativamente anónimo para mantener una infraestructura de
mando y control que, al mismo tiempo, reduce aún más las posibilidades de detección por las
tecnologías tradicionales.
Así pues se ha evolucionado desde los canales IRC, que hoy en día se consideran “débiles” a
nivel de botnet, a establecer comunicaciones http o https a un proveedor de contenido reconocido
y legal como Facebook, Google o Twitter. El objetivo final es mezclar su “ruido” (huella de tráfico)
en las comunicaciones con el normal o habitual de las redes lícitas hoy en día para que no solo
sea difícil su disrupción y localización , sino incluso la detección de su presencia.
En la incesante búsqueda de nuevas vías de comunicación y ocultación de un tráfico “normal”
se emplean técnicas de P2P o hibridas P2P-http...etc. También se avanza en las comunicaciones
entre los bots y el servidor C&C para que se cifren más eficazmente mediante la adopción de
la PKI u otro tipo de cifrado asimétrico. El empleo de hosting y tecnologías emergentes como
servicios en la nube ayuda a toda esta ofuscación.
La internet de las cosas (IoT) está compuesta no solo de computadores dedicados, sino también de
monitores de implantes cardíacos, equipos electrodomésticos e industriales, automóviles, sensores
mecánicos y otros dispositivos con direcciones IP y la capacidad de transmitir datos a través de
una red. En el contexto de IoT, estos son conocidos como “cosas”.
17
CHAPTER 2. MARCO DE REFERENCIA
18
2.4. CASOS REALES MÁS RELEVANTES
a dispositivos IoT aumentaron un 43%, el uso de este tipo de dispositivos en los ataques DDoS
están dejando obsoletas las defensas tradicionales.
Ante este panorama los gobiernos y las organizaciones internacionales como la UE, la OCDE y la
ONU están prestando una mayor atención a la armonización del derecho penal a nivel mundial
en el ámbito de la ciberdelincuencia, lo que permite un procesamiento más eficaz. Los organismos
encargados de hacer cumplir la ley buscan formalizar acuerdos multilaterales para hacer frente
a un crimen verdaderamente transnacional.
También los proveedores de servicios de internet y los registradores de dominios tienen un
papel clave que desempeñar. Los proveedores de servicios de internet deben informar y ayudar a
los clientes que creen que están infectados. Los registradores de dominios deben exigir formas
más eficaces de identificación rastreable en el momento de la inscripción y los que transgreden las
normativas se les debe de suspender el servicio tan pronto como se planteen sospechas creíbles.
La industria de la seguridad ya está extrayendo lecciones valiosas de los niveles de cooperación
alcanzados durante la lucha contra las grandes oleadas de botnets (sobre todo de spam). Existen
iniciativas impulsadas desde los CERTs (CSIRTs) para educar e informar más eficazmente
a los ciudadanos sobre los peligros que representa el cibercrimen y para fomentar prácticas
informáticas más seguras.
Así mismo, la amplia preocupación en la ciberseguridad y la ciberdefensa hace que haya
surgido una inquietud en este sentido y no solo en el ámbito empresarial o estatal sino en el
académico, desarrollándose nuevos estudios, cursos y especialidades tendentes a desarrollar
técnicos expertos en seguridad ante unas amenazas tan palpables.
19
CHAPTER 2. MARCO DE REFERENCIA
• Reaparición: 2010
• Tipo de Botnet: Múltiples ataques, incluyendo acceso a datos secretos, retrasmisiones SMTP,
recolección de direcciones email, spam y DDoS.
• Características: Storm fue la botnet más grande y con mayor propagación hasta la fecha.
Tenía el valor añadido de estar disponible para la venta o su alquiler. Empleada habitual-
mente por su capacidad de DDoS. La ingeniería social y el spam ayudaron a su propagación,
pero sus atacantes también lo lanzaron a través de las descargas en los sitios web populares
comprometidos, haciendo de las descargas un importante factor de infección.
CONFICKER
• Origen: Puede ser alemán, por su nombre, o ucraniano, por su servidor primario.
MARIPOSA
• Origen: España
20
2.4. CASOS REALES MÁS RELEVANTES
• Estado actual: Desarticulada gracias a los esfuerzos de las fuerzas de seguridad españolas
(Guardia Civil), Defense Intelligence, Georgia Tech y Panda Security.
ZEROACCESS
• Origen: Desconocido
• Estado actual: Desarticulado, pero con posibilidades de reactivarse. Microsoft y las autori-
dades norteamericanas intentaron acabar con ZeroAccess apoderándose de las consolas de
mando y control, pero se perdió una parte y estos elementos peer-to-peer podrían lanzar
nuevos ataques en el futuro. ZeroAccess puede comprometer un sistema infectando tanto el
MBR (Master Boot Record) del disco duro como drivers críticos y es capaz de deshabilitar
tanto el firewall de Windows como software de antivirus.
GAMEOVER ZEUS
• Origen: Rusia
21
CHAPTER 2. MARCO DE REFERENCIA
• Estado actual: Desarticulado, gracias a las agencias policiales y organizaciones líderes del
sector tecnológico incluyendo Microsoft, Symantec y McAffee.
• Características: Gameover Zeus usó comunicaciones para establecer una red de zombis
con arquitectura peer-to-peer para hacerlo mucho más resistente y difícil de desarticular.
Afectaba equipos desde Windows XP a Windows 8 con el principal objetivo del robo de los
datos de usuario y contraseñas de acceso a las entidades bancarias. Este botnet nos enseñó
la lección que una defensa por capas en las redes corporativas es crítica.
MIRAI
• Origen: Desconocido
• Tipo de Botnet: Mirai es una botnet cuyo objetivo son dispositivos del llamado Internet de
la Cosas (en inglés, Internet of Things, abreviado IoT). Los principales objetivos de este
malware han sido los routers, grabadoras digitales de vídeo y cámaras IP de vigilancia.
Usado principalmente para ataques DDoS.
Ya se comentó que detrás de la creación y el uso de las botnets nos encontramos desde grupos
delictivos, bandas organizadas, simples arrendatarios de estas herramientas o incluso gobiernos.
Existen varios países y/o organizaciones donde parece existir más relación con esta amenaza.
Las tres zonas geográficas donde parece existir mayor actividad en el empleo y creación de
botnets son Brasil-Mejico, Europa del este (Principalmente Rusia) y Asia (Principalmente China
y Corea del Sur). Los actores implicados con las botnets son los siguientes:
22
2.5. ACTORES Y SERVICIOS QUE OFRECEN
Los servicios principalmente ofrecidos a través de una botnet (existen cualquier otro imagin-
able) son los mostrados en la siguiente tabla 2.1.
23
CHAPTER 2. MARCO DE REFERENCIA
24
HAPTER
3
C
TAXONOMÍA SOBRE B OTNETS , ATAQUES Y DEFENSAS
asta la fecha, no se ha diseñado un ordenador que sea consciente de lo que está haciendo;
En este capítulo se explicarán los pasos en la creación e infección de una botnet, la iden-
tificación de topologías por sus formas de comunicación, los mecanismos de ocultación de las
actividades de una botnet así como los medios de protección, detección y ataque para destruir o
inutilizar una botnet.
3.1.1 Creación
Normalmente el código que se emplea para crear los artefactos de control y contaminación de
una botnet utilizan lenguajes Orientados a Objetos (POO) ya que resultan mucho más cómodos
de utilizar.
El empleo de técnicas de reutilización de códigos de otras botnets (en desuso o actuales)
o de empleo de técnicas de coordinación entre artefactos troyanos ya existentes son también
habituales en su desarrollo.
Por otro lado, el empleo de modularidad en su diseño y por tanto, el empleado en la descarga
e instalación de un bot nos permite crear unos bots iniciales muy reducidos que luego irán
descargando las herramientas (o módulos de código) asociadas que necesiten. Ello hace que,
además, puedan pasar más inadvertidos ante aplicaciones o herramientas de seguridad.
Es necesario tener en cuenta que un bot, troyano o un RAT (Remote Access Tool) a veces
puedan parecer sinónimos, pero no lo son. En este ámbito podríamos describirlos como:
25
CHAPTER 3. TAXONOMÍA SOBRE BOTNETS, ATAQUES Y DEFENSAS
• Remote Access Tool: Herramienta software que crea un medio de enlace a través de un
puerto para ponerse al servicio o recibir órdenes remotamente. No todos los RATs son
malware, existen herramientas de acceso remoto para, por ejemplo, administrar servicios o
máquinas.
• Troyano: Elemento software que tiene una finalidad distinta a la que el usuario cree y por
ello (a veces) la instala conscientemente (otras veces no). Este elemento lo que si realiza
son acciones maliciosas con distintos fines. Además, este troyano puede o no ser un RAT.
• Bot: Habitualmente es un troyano con funcionalidades de RAT para poder ejecutar ordenes,
entregar resultados y descargar o instalar los módulos necesarios para desarrollar sus
actividades maliciosas.
26
3.1. CREACIÓN Y FORMAS DE INFECCIÓN
• Etc.
Los dispositivos que pueden ser infectados por estos bots y convertirse, por tanto, en máquinas
zombis son todos aquellos los relacionados con las comunicaciones y/o la informática, es decir
cualquiera que sea capaz de ejecutar código. Ejemplos de ellos serían ordenadores personales,
tablets, smatphones, dispositivos de Internet de las cosas (IoT), servidores, máquinas de control
industrial...etc.
En las plataformas Windows, es habitual que los usuarios se descarguen programas desde
internet sin saber exactamente qué es lo que hace el programa. Este software podría contener un
bot, una vez que el programa se ejecuta, puede escanear la red de área local, disco duro, puede
intentar propagarse usando vulnerabilidades conocidas de Windows, etc.
En entornos como UNIX, GNU/Linux o BSD, muy empleados en IoTs, la forma de ataque a
servidores para construir y expandir una botnet suele por telnet o SSH (puertos 23 y 22). Esto se
realiza con el método de “prueba y error”, probando usuarios comunes y contraseñas por defecto
o al azar o con herramientas de fuerza bruta. También se pueden aprovechar ataques a bugs
conocidos que no se hayan corregido.
La forma de infección que llevó a Mirai a “secuestrar” millones de dispositivos IoT fue con el
usuario y contraseña por defecto que casi nadie se molesta en cambiar en este tipo de elementos.
1. El atacante prepara su ejecutable con el bot y lo distribuye a través de uno o varios medios
de difusión
2. El usuario recibe ese archivo infectado y lo ejecuta. Este es recibido habitualmente por medio
de una infección de malware en páginas web, correo spam, archivos maliciosos...etc.
27
CHAPTER 3. TAXONOMÍA SOBRE BOTNETS, ATAQUES Y DEFENSAS
5. El equipo comprometido se descarga una herramienta tipo RAT (Remote Access Tool), si esta
no se encontraba ya en el paquete que ha ejecutado el usuario, para ponerse al servicio de la
red botnet.
7. Todos los datos que se requieren son enviados vía sus servidores C&C (o en esquemas P2P
entre pares). Desde estos servidores se les envía órdenes para que así los equipos pueden
ejecutar de manera coordinada cualquiera de las acciones/ataques o descargarse otro tipo
de malware.
Las redes zombis han ido aumentando su complejidad, llegando a utilizar técnicas bastante
sofisticadas para asegurar su prevalencia (incluso a competir entre ellas por cada equipo infectado,
eliminando las infecciones por redes rivales), han pasado de utilizar el protocolo IRC para
establecer la comunicación con el centro de control C&C a utilizar HTTP o HTTPS e incluso
mensajeria de twiter, que son mas difíciles de detectar al confundirse con tráfico legítimo.
28
3.2. IDENTIFICACIÓN DE TOPOLOGÍAS, COMUNICACIÓN Y FORMAS DE OCULTACIÓN
Las topologías que pueden existir en los botnets (como en casi cualquier sistema en red)
se establecen en función de sus servidores C&C o de si incluso estos existen (P2P) y son las
siguientes:
• Modelo híbrido.
En este modelo podemos englobar aquellos que usan medios de comunicaciones como IRC y HTTP
(aunque podríamos considerar también este modelo a los que usan medios de redes sociales -Web
29
CHAPTER 3. TAXONOMÍA SOBRE BOTNETS, ATAQUES Y DEFENSAS
2.0-. Estos modelos se caracterizan por que existe roles de BootMaster, Servidores C&C y Bots (o
máquinas zombis).
El empleo de canales IRC es el precursor de las botnets y aunque hoy en día su uso ha
decrecido definiremos que tipo de comunicaciones son estas. Este modelo de comunicaciones en
botnets se podría considerar como una primera generación de botnets.
IRC (Internet Relay Chat) es un protocolo de comunicación en tiempo real basado en texto,
que permite conversaciones entre dos o más personas. Se diferencia de la mensajería instantánea
en que los usuarios no deben acceder a establecer la comunicación de antemano, de tal forma que
todos los usuarios que se encuentran en un canal pueden comunicarse entre sí, aunque no hayan
tenido ningún contacto anterior.
Las conversaciones se desarrollan en los llamados canales de IRC, designados por nombres
que habitualmente comienzan con el carácter # o & (este último solo es utilizado en canales
locales del servidor). Es un sistema de charlas ampliamente utilizado por personas de todo el
mundo. Los usuarios del IRC utilizan una aplicación cliente para conectarse con un servidor, en
el que funciona una aplicación IRCd (IRC daemon o servidor de IRC) que gestiona los canales y
las conversaciones.
En el caso de una botnet, el “cliente” es el bot que existe en la máquina infectada (zombi) y el
“servidor” realiza las funciones de servidor C&C. El BotMaster puede ser un simple cliente de ese
servidor C&C que utiliza el canal para retransmitir sus órdenes y recibir lo que haya solicitado.
Usa el protocolo IRC sobre TCP.
HTTP/HTTPs (Hypertext Transfer Protocol -la “s” es de seguro-) es un protocolo de co-
municación que permite las transferencias de información en la World Wide Web. Emplea la
arquitectura cliente/servidor sobre puertos conocidos (80 – > http y 443 – > https) para comuni-
carse. HTTP es un protocolo sin estado, es decir, no guarda ninguna información sobre conexiones
anteriores. El modelo http podría ser considerado como una segunda generación de botnets.
30
3.2. IDENTIFICACIÓN DE TOPOLOGÍAS, COMUNICACIÓN Y FORMAS DE OCULTACIÓN
En este caso el servidor C&C hace de servidor WEB con una BBDD asociada y los clientes
son los bots de las máquinas zombis. De esta manera el cliente sabe cuál es la IP del servidor y
accede a ella tanto para entregar como para recoger información.
Los anteriores protocolos de capa de aplicación (IRC y http) necesitan que su servidor este
en una dirección IP o dominio (en su caso) definido. Para hacer saber a sus clientes donde se
encuentra su o sus servidores C&C (lo normal es que haya varios alternativos) se puede actuar
de tres maneras:
Obviamente a través del primer método necesita tener un dominio activo fijo o IP fija. Esto
hace que con colaboración se puedan localizar fácilmente donde están alojados los servidores
C&C y eliminarlos “de la ecuación”. Baste decir que con romper las comunicaciones entre bots y
servidores C&C o entre servidores C&C y el BotMaster la botnet estará desmantelada.
En el caso de que existieran varios domin-
ios asociados solo habría que ir eliminando uno
a uno ya que al quedarse sin comunicación con
el primero el bot intenta conectarse al sigu-
iente alternativo y así nos delataría su ubi-
cación.
Con el enfoque dinámico de empleo de do-
minio suele ser mucho más difícil acabar con
la botnet. No obstante, el BotMaster debe de
saber que dominios estarán activos a cada mo-
mento. En este caso la creación y gestión de la
botnet es más compleja, aunque es mucho más
resilente (Capacidad de un sistema tecnológico
de soportar y recuperarse ante desastres y per-
turbaciones). Figure 3.4: Modelo de arquitectura C&C [29].
Contra el modelo “C&C” (ver figura 3.4) en la que los bots deben de establecer un contacto con su
servidor C&C alojado (normalmente) en un dominio conocido, existe el modelo P2P en el que esta
topología no es jerárquica sino aleatoria. Esta podría ser considerada la tercera generación de
botnets.
31
CHAPTER 3. TAXONOMÍA SOBRE BOTNETS, ATAQUES Y DEFENSAS
El modelo Peer to Peer (P2P) [29] intentan resolver el problema de que una botnet sea
fácilmente inutilizada al establecerse un vínculo definido con un dominio o IP. La idea subyacente
es que todos los robots se conecten y se comuniquen entre sí para eliminar la necesidad de
un servidor centralizado, sin embargo, esto conlleva una serie de dificultades técnicas. Las
dificultades principales son tres:
Antes de explicar este modelo quiero recalcar que un bot puede actuar sobre la máquina infectada,
no sobre un firewall externo que exista en la red local de esa máquina zombi.
Comunicación BotMaster con botnet P2P
Si los bots se comunican entre sí, entonces el
BotMaster necesita asegurarse de que solo él sea
el que puede comandar a esos bots. Para poder
implementar esto se suele emplear la firma digi-
tal (Ver figura 3.5). Si no se hace así, cualquiera
que logre acceder a un bot podría comandar a
toda la botnet entera.
Una firma digital se realiza mediante cifrado
asimétrico, este cifrado que requiere dos claves
(pública y privada). Si se utiliza una clave para Figure 3.5: Cifrado clave publica/privada [22].
cifrar un mensaje, sólo se puede descifrar con la otra clave. Si el BotMaster mantiene la clave
secreta (clave privada) e incorpora la otra clave en el bot (clave pública), puede usar su clave para
cifrar comandos y de esta manera solo los bots podrían descifrarlos usando la clave pública y así
estar seguro de que este proviene del BotMaster.
El problema de las comunicaciones
entrantes a través de un DPP
La idea de la mayoría de las personas cree
que en una botnet P2P los bots se conectan
entre sí a través de la dirección IP, reenvían
los comandos entre sí, eliminando la necesi-
dad de un servidor central o dominio, esta rep-
resentación es incorrecta en un entorno real
“internet”.
Los equipos que están detrás de un NAT, Figure 3.6: Esquema P2P/Server tras NAT [29].
un Firewalls, o que utilizan un servidor proxy
32
3.2. IDENTIFICACIÓN DE TOPOLOGÍAS, COMUNICACIÓN Y FORMAS DE OCULTACIÓN
para acceder a internet no puede aceptar una conexión entrante “nueva” (solo si es una respuesta
a una solicitud anterior), pero SI pueden establecer conexiónes de salida. Esto es un problema
para estas redes, ya que impediría que la mayoría de los robots que están conectados a otros bots
se comunicaran entre sí. En el esquema tradicional (servidores C&C), esto obviamente no es un
problema ya que los bots se conectan al servidor. Así pues, las redes P2P, en realidad, necesitan
de “servidores” en este esquema.
Estos “servidores” serán los equípos que son capaces de aceptar conexiones entrantes (no
están detrás de un Proxy/NAT/Firewall) actúan como servidores (normalmente son llamados
“nodos” o pares), los bots que no son capaces de aceptar conexiones (normalmente llamados
“trabajadores”) se conectarán a uno o más nodos para recibir órdenes (Ver figura 3.6).
Aunque los “nodos” (servidores) son técnicamente servidores y clientes a la vez, se utilizan de
manera que no se produzca un esquema jerárquico de conexiones, es decir que a los “trabajadores”
se les distribuye entre muchos nodos, lo que les permite cambiar de un nodo a otro si este cae.
Las Botnets P2P sólo funcionan si hay suficientes “nodos” que hagan de servidores
y cuantos mas existan mejor (ya que la labor de bloquear todos es inmensa). Por otro lado, hay
que tener en cuenta que los “nodos” no dejan de ser ordenadores legítimos (obviamente infectados
igual que los “trabajadores”) y que no tienen la misma capacidad que un servidor dedicado.
En este esquema, cada nodo mantiene una lista de direcciones IP de otros nodos que se
comparte con los trabajadores, los trabajadores almacenan las listas, lo que les permite cambiar
de nodo si al que están conectado se inhabilita.
Si no establecemos un sistema de comunicación entre los nodos a nivel de comandos (a nivel
de listas de direcciones IP ya existe) nuestra red P2P sólo sería muchos pequeños grupos de robots
conectados a muchos nodos diferentes, lo que sería imposible de mandar. Para que los comandos
33
CHAPTER 3. TAXONOMÍA SOBRE BOTNETS, ATAQUES Y DEFENSAS
circulen por toda la red con cierta agilidad se pueden emplear las siguientes estrategias (Ver
figura 3.7):
• Que los bots “trabajadores” se conecten a varios nodos y pasen los comandos recibidos a los
otros nodos a los que también están conectados.
• Que los nodos se conectan a otros nodos y se pasen los comandos entre ellos.
34
3.2. IDENTIFICACIÓN DE TOPOLOGÍAS, COMUNICACIÓN Y FORMAS DE OCULTACIÓN
• Conexión – > El bot usa los mensajes de conexión para informar su OID a otros bots (peers)
y para recibir una lista de peers cercanos (nodos y trabajadores).
• Búsqueda – > El bot utiliza los mensajes de búsqueda para encontrar recursos para otros
nodos basados en OID. Aquí emplea las direcciones descargadas de los servidores nodo.
• Publicitarse – > El bot (peer) utiliza mensajes para informar la propiedad de los recursos
de red (OID) para que otros pares puedan encontrar el recurso posteriormente.
Con este último ya el nodo se encuentra en la botnet P2P, es conocido y está activo. Por último
se quiere mostrar una imagen sobre la topología de una red P2P (ver figura 3.8) establecida por
Zeus GameOver, en la que se aprecia su topología aleatoria.
Teniendo en cuenta los problemas encontrados por las botnets del modelo C&C (Clasico) y la de
P2P, sería deseable encontrar un modelo que disfrutara de las ventajas de ambos esquemas y que
no tuviese sus inconvenientes. Así, lo ideal sería disponer de un modelo de botnet donde:
• La botnet sea robusta y capaz de mantener el control de sus bots incluso después de que una
parte sustancial de su población de bots (sean nodos o servidores) hayan sido inhabilitados.
• Evitar el mostrar la topología de red botnet cuando algunos de sus bots sean capturados.
• Realizar un diseño que considere otras cuestiones como direcciones de dominio o IP dinámi-
cas o privadas, el cifrado de la información y el uso de firmas digitales para su mando.
• Una posible aproximación a este escenario sería el empleo de una botnet P2P/C&C híbrida.
• La botnet se comunica a través de la lista de pares contenida en cada bot. Sin embargo,
cada bot tiene una lista de pares de tamaño fijo y limitado y no revela su lista de pares a
otros bots. De esta manera, cuando un bot es capturado por los defensores, sólo el número
limitado de bots en su lista de pares se exponen.
35
CHAPTER 3. TAXONOMÍA SOBRE BOTNETS, ATAQUES Y DEFENSAS
• Después de recopilar información sobre la botnet a través del comando de informe anterior,
un BotMaster, si lo considera necesario, podría emitir un comando de actualización para
activamente dejar que todos los bots contacten con un host de sensor para actualizar
sus listas de pares. Esto reorganiza la botnet de tal manera que tiene una conectividad
balanceada y robusta que podría volver a conectar una botnet rota.
• Sólo los bots con direcciones IP globales estáticas y que son accesibles desde internet son
candidatos para estar en listas de pares (“nodos” que se comportan tanto con características
de cliente como de servidor).
• Cada bot “nodo” escucha en un puerto de servicio autodeterminado para las conexiones
entrantes de otros bots y utiliza una clave de cifrado simétrica autogenerada para el tráfico
entrante. Este cifrado individualizado y diseño de puerto de servicio individualizado hace
que sea muy difícil para la botnet ser detectada a través de análisis de flujo de red del
tráfico de la comunicación botnet.
Topología de la arquitectura híbrida P2P Botnet [2] Los robots en la botnet P2P propuesta
se clasifican en dos grupos. El primer grupo contiene bots que tienen direcciones IP estáticas
y no privadas y son accesibles desde internet, son los llamados “servents” o “nodos” (peers)
36
3.2. IDENTIFICACIÓN DE TOPOLOGÍAS, COMUNICACIÓN Y FORMAS DE OCULTACIÓN
y se comportan como clientes y servidores. El segundo grupo contiene los bots restantes (les
llamaremos por simplicidad “clients”) incluyendo:
• Bots detrás de cortafuegos de tal manera que no se pueden conectar desde internet.
El segundo grupo de bots se llaman robots clientes ya que no aceptarán conexiones entrantes. Sólo
los bots servent son candidatos en las listas de “peers”, es decir para trabajar en un modelo P2P.
Todos los bots contactan activamente a los bots servent (incluso entre ellos mismos). Debido a
que los robots servent normalmente no deberían cambiar sus direcciones IP, este diseño aumenta
la estabilidad de la red botnet.
Un bot puede determinar fácilmente el tipo de dirección IP utilizada por su máquina host.
Por ejemplo: en una máquina Windows, un bot podría ejecutar el comando “ipconfig/all”.
Un BotMaster podría confiar en la colaboración entre los bots para determinar tales bots. Por
ejemplo: un robot ejecuta su programa de servidor y solicita a los robots servent en su lista de
pares (peers) iniciar las conexiones a su puerto de servicio. Si el bot podría recibir tales conexiones
de prueba, se etiqueta a sí mismo como un bot servent. De lo contrario, se etiqueta como un robot
cliente.
Forma de Mando y Control
La figura 3.9 ilustra la arquitectura de mando y control de la botnet propuesta. La botnet
mostrada en esta figura tiene 5 bots servent y 3 bots client. El tamaño de la lista de pares es 2 (es
decir, la lista de pares de cada bot contiene las direcciones IP de 2 bots servent). Una flecha del
bot A al bot B representa el bot A iniciando una conexión con el bot B.
El BotMaster inyecta sus comandos a través de cualquier bot en la botnet. Tanto los bots
client como servent se conectan activamente y periódicamente con los servent bots en sus listas
de pares para recuperar comandos emitidos por su BotMaster. Cuando un bot recibe un nuevo
comando que nunca ha visto antes (el comando tiene un ID único), envía inmediatamente el
comando a todos los bots servent en su lista de pares.
En comparación con una botnet de tipo C&C, es fácil comprobar que la botnet P2P híbrida es
en realidad una extensión de una botnet C&C. La botnet P2P híbrida es equivalente a una botnet
C&C en la que los bots servent toman la función de servidores C&C. El número de servidores
C&C (servent bots) se amplía mucho y se interconectan entre sí. De hecho, el gran número de
robots servent es la principal razón por la que la botnet P2P híbrido propuesto es muy difícil de
cerrar.
Para la autenticación de comandos un BotMaster debe generar un par de claves públi-
cas/privada y codifica la clave pública en el programa bot antes de liberar y construir la botnet
(en su código fuente). No hay necesidad de distribución de claves porque la clave pública está
37
CHAPTER 3. TAXONOMÍA SOBRE BOTNETS, ATAQUES Y DEFENSAS
codificada en el programa bot. Posteriormente, los mensajes de comando enviados desde el Bot-
Master deben de ser firmados digitalmente por la clave privada para asegurar su autenticación e
integridad.
Un ejemplo de una botnet P2P híbrida es Necurs [26] que apareció por primera vez en 2013,
sigue activo y afecta a sistemas Windows 7, 8 y 10. Tiene características de fraude electrónico,
DDoS, etc. Esta botnet es mucho más compleja de crear y cuyas características de cifrado y
comunicaciones son:
• Todos los peers responden a las solicitudes con un paquete firmado por una clave RSA
de 2048 bits del BotMaster (impidiendo que cualquier persona aparte de ellos introduzca
nuevas cargas útiles de respuesta).
• Los payloads de P2P pueden contener cualquiera o todos los 3 tipos de bloque:
– Bloque DNS: Lista de servidores DNS que permitirán al bot usar los dominios “.bit”
de Namecoin para encontrar a los servidores C&C.
• El BotMasters puede optar por generar listas de peers y publicarlos a través del servi-
dor C&C. Al distribuir a los peers de esta manera, es más fácil prevenir los ataques de
envenenamiento.
• Cualquier cosa descargada de la red C&C o P2P se almacena en la carpeta temp con un
UUID para el nombre de archivo y .tmp para la extensión. El UUID es generado por el
hash SHA1 del identificador (OID) de bot con un entero estático de 64 bits (utilizado para
identificar el contenido del archivo).
• Los archivos se cifran con RC4 usando una clave derivada con la misma función que
anteriormente, excepto que las variables generadas aleatoriamente están juntas con los
datos y luego son almacenadas al final del archivo.
Antes de hablar de la posible ocultación de los botnets debemos de tener en cuenta que para evitar
medios de detección de malware al distribuir nuestro bot en las máquinas víctimas se pueden
emplear cualquiera de las técnicas que evitan los antivirus, IDS, IPS o cortafuegos. Algunas son:
38
3.4. BÚSQUEDA DE RESILIENCIA (SERVIDORES C&C)
• Empleo de un paquete inicial que parezca inocuo para luego descargarse paulatinamente
paquetes malware.
• Etc.
Lo que si es necesario (habitualmente) es que este malware (futuro “bot”) tenga privilegios de
administrador (o root) y para ello o se lo concede al instalar expresamente el usuario (sucede
mucho más de lo que podemos creer) o se aprovecha de una configuración deficiente de la
seguridad de las aplicaciones (como el navegador) o busca algún exploit, algún bug existente o se
emplea alguna técnica que eleve sus privilegios a root (como smash the stack).
Una vez que la máquina ha quedado infectada con privilegios de administrador y se une a la
red botnet ya solo queda emplear técnicas de ocultación de las actividades que realiza la propia
red para que no pueda ser detectada o en su caso desmantelada.
• Domain Flux
Se asocian varias IP’s con un registro DNS y además cambian rápidamente las IP’s asociadas.
Hay dos tipos de fast-flux:
39
CHAPTER 3. TAXONOMÍA SOBRE BOTNETS, ATAQUES Y DEFENSAS
• Double-flux: además de cambiar las IP’s asociadas a los registros cambian los servidores
DNS asociados al nombre de dominio.
La gran cantidad de IPs asociadas a un solo dominio se consigue a través del uso de “nodos”
capturados (máquinas zombis) que realizan la función de redirigir el tráfico al servidor C&C final.
En la anterior imagen 3.10 se puede ver la comparación entre un Fast Flux (Single Flux) y un
Doble Fast Flux.
El domain flux es el inverso del flujo anterior y se refiere al cambio constante y asignación de
múltiples FQDN (fully qualified domain name) a una única dirección IP o infraestructura C&C.
Las técnicas aplicables al Domain Flux abarcan el Domain Wildcard y el Domain Generation
Algorithms -DGA- (algoritmos de generación de dominio):
• Domain Wildcard: Usa de la funcionalidad DNS nativa wildcard (*) al dominio superior
tal que todos los FQDN que apuntan a la misma dirección IP. Por ejemplo: *.uoc.edu
podría encapsular tanto pec.tfm.uoc.edu como tfm.uoc.edu. Esta técnica es comúnmente
empleada por botnets que se usan para el envío de contenido de spam y phishing. Mediante
esta técnica se podría emplear información que aleatoria (por ejemplo, "mnbpstr" para
40
3.4. BÚSQUEDA DE RESILIENCIA (SERVIDORES C&C)
1. El atacante o BotMaster genera una semilla, que es la que utilizarán sus bots para generar
los dominios aleatorios.
2. El bot dispone del algoritmo DGA para que, utilizando la semilla, genere aleatoriamente
los dominios (a veces más de 1000 diarios).
3. El equipo infectado intentará conectarse a cada uno de los dominios, donde tan solo uno
será valido y en el que habrá sido registrado previamente por el atacante. Esto lo puede
realizar ya que dispone de la misma semilla y el mismo algoritmo que los bots.
4. El atacante tendrá control sobre la botnet para dar nuevas órdenes, obtener información o
desplegar actualizaciones del malware.
41
CHAPTER 3. TAXONOMÍA SOBRE BOTNETS, ATAQUES Y DEFENSAS
Tanto IP Flux como Domain Flux proporcionan niveles avanzados de redundancia y resiliencia
para la infraestructura C&C de una botnet. Sin embargo, los BotMaster suelen emplear una
segunda capa de abstracción para aumentar aún más la seguridad.
Esta técnica se basa en utilizar un servidor proxy (o varios de ellos) para realizar una
redirección para llegar a los servidores finales C&C. La redirección ayuda a interrumpir los
intentos de rastrear o apagar redes de servicio IP Flux. En este caso el BotMaster emplea agentes
bot que actuaran como redireccionadores que canalizan las solicitudes y los datos hacia y desde
otros servidores bajo el control del operador de la botnet.
En la imagen 3.12 se puede ver el esquema de Fast Flux con redireccionamiento a través de
una máquina zombi [21].
Como la mayoría de las botnets dependen del DNS como el servicio de ubicación de la
infraestructura de C&C a continuación se establece una clasificación de robustez según el método
empleado.
• Ocultar el tráfico de la botnet con el tráfico habitual y para ello emplean medios de redes
sociales. Algunas pueden ser Linkedin, Twiter, Blogs, etc que se utilizan como servidores
C&C donde se pueden dejar los comandos que son leídos por los bots y estos envían la
información donde se les ha dicho, como por ejemplo un blog.
• Técnicas criptográficas en redes sociales. Existen otros (como Stegobot) que, además de usar
estos medios sociales para su comunicación, emplean técnicas estenográficas en imágenes
que se cuelgan en estas redes sociales, pasando del todo inadvertidas para cualquiera que
acceda a ellas.
• Establecer comunicaciones y tráficos aleatorios entre bots o de estos con los servidores
C&C.
• Ocultación a través del cifrado de tráfico o del uso de túneles cifrados (como IPSec) a través
de proxies.
• El domain shadowing [35]. Esta técnica consiste en tomar el control de un dominio reg-
istrado consiguiendo las credenciales de administración de modo que sea posible crear
42
3.4. BÚSQUEDA DE RESILIENCIA (SERVIDORES C&C)
La base de todas las técnicas es utilizar tráfico legítimo, habitual y de muy costoso análisis debido
a que volumen de datos que existe entre los bots es muy pequeño.
Conclusiónes
Independiente de la topología, múltiples
capas de flujo de DNS y redirección hacen
a algunas botnets altamente resistentes a
su parada o descubrimiento.
Las botnets que utilizan redes P2P o
P2P híbridas son también altamente difí-
ciles de deshabilitar.
Afortunadamente, existen pocas botnets
tan avanzadas, aunque siempre un análisis
concienzudo de una máquina zombi puede
desvelarse como tal, aunque el detectar
los servidores C&C o los “nodos” (en el
caso de redes P2P) es mucho más compli-
cado.
Figure 3.12: Exfiltración de información DGA [21].
Exfiltración de información (imagen 3.12)
Dentro del proceso de comunicación, es importante tener en cuenta que se utilizan diversas
técnicas para llevar a cabo el proceso de exfiltración de información sensible:
• De manera habitual, utilizan algoritmos de cifrado simétrico por sustitución para cifrar la
información, los más habituales son RC4 o ROT13. No es habitual la utilización del cifrado
asimétrico ya que tiene un coste computacional alto.
43
CHAPTER 3. TAXONOMÍA SOBRE BOTNETS, ATAQUES Y DEFENSAS
En el proceso de comunicación, merecen especial atención los “covert channels”, es decir, las
técnicas que permiten enviar información empleando para ello las cabeceras de los protocolos
de comunicación. Mediante estas técnicas es posible tanto enviar instrucciones a los nodos de la
botnet como exfiltrar información sensible.
Al llegar los paquetes a su correspondiente destino, se procesan los valores de las cabeceras
de modo que se obtiene información que el bot master puede comprender. Aparte de este metodo
existe otro tipo de covert channels como son el “Timing Covert Channel” y el “Storage Covert
Channel”.
Existe una infinidad de clasificaciones que podríamos exponer sobre medios de detección y
protección ante las botnets. Algunas podrían fijarse en si se usan técnicas pasivas o activas, si
son a nivel de host o de red, si son de detección de prevención restrictivas o correctivas, etc.
Este desafío de “clasificar” lo inclasificable se debe a la multitud de puntos de vista que
puedan existir con respecto a una botnet. Así podremos verlo desde el punto de vista del atacante,
de la víctima o incluso desde el punto de vista del tercero que las está detectando.
En este apartado queremos, sencillamente, ceñirnos a la clasificación inicial, es decir formas
o medios de detección y formas o medios de protección desde un punto de vista de host y de red
(network). Si se necesita especificar alguna de las clasificaciones anteriores se hará de manera
individualizada.
En los anteriores apartado ha quedado claro que existen una serie de parámetros “distinguibles”
que se asocian a una botnet. El tipo, la frecuencia (o cadencia), los destinos y el tamaño del tráfico
es un patrón característico de cualquier servicio y por ende de una botnet.
A pesar de esto, existe multitud de modelos topológicos y medidas de protección de las botnets
(como ya se ha explicado) convirtiendo la labor de su detección en una empresa difícil.
Técnicas de detección a nivel de host: La forma de detección en la que somos víctimas o
verdugos (en cao de ser un equipo zombi) de una botnet es la siguiente [6]:
44
3.5. MEDIOS DE DETECCIÓN Y PROTECCIÓN
• Detección de una infección por el antivirus (existen muchas infecciones que no se detec-
tarán).
• Recepción de correo extraño o tus contactos reciben correos tuyos que no enviaste.
• Aparición de ventanas emergentes aleatorias que, aunque sean, probablemente, una infec-
ción de adware, a veces puede ser una forma de actividad relacionada con botnets.
• Lentitud de la máquina. Aunque se pueda deber a otros aspectos, es una señal de alarma
para malware tipo botnet o relacionado.
• Actividad de la máquina (disco duro, uso de memoria o conexión al router del hogar)
sospechosa en momentos en que no está utilizándose.
• Etc.
La realidad es que las posibilidades de detección a nivel de host una vez el equipo está infectado
son realmente bajas. Ello nos lleva a considerar otras técnicas más efectivas (a nivel de red).
45
CHAPTER 3. TAXONOMÍA SOBRE BOTNETS, ATAQUES Y DEFENSAS
• Trafico IRC (cada día menos común) que suele ir en texto claro (con lo que se puede analizar)
y podríamos realizar búsquedas de palabras clave relacionadas con comandos de una botnet.
Búsqueda de puertos IRCs predeterminados (el rango de puerto completo especificado por
el RFC es 6660-6669,7000 y el 113). Hay que tener en cuenta que muchos administradores
de botnet utilizarán puertos IRC no estándares.
• Emplear listas de servidores conocidos C&C para ver si existen intentos de conexión a
ellos. En dsshield mantienen una lista negra de IP’s generada cooperativamente por sus
miembros.
• Existen firmas creadas expresamente para la detección de servidores C&C y que se pueden
usar en herramientas como Snort (IDS).
• Detección de tráfico mediante análisis de paquetes. Es una técnica que emplea varias de
las descritas anteriormente.
• Detección través de tráfico DNS. Si una gran cantidad de máquinas están haciendo las
mismas solicitudes de DNS, o accediendo al mismo servidor probablemente sea debido a la
existencia de una botnet.
• Detección de cualquier tipo de malware en la red propia. Este podría haber sido descargado
por el propio bot o tener relación con este.
• Existencia de tráfico de escaneo de puertos. Señal inequívoca que ese están buscando
servicios y vulnerabilidades en la red.
• Trafico NO correspondiente a esa máquina. Por ejemplo, si se observa tráfico SMTP en una
máquina que no es un servidor SMTP (Botnet SpamThru).
• Si en nuestra red usamos un proxy http no deberíamos observar solicitudes de datos HTTP
externos al proxy.
• Empleo de estadísticas en tiempo real ajustadas a patrones de botnets conocidas. Hay que
tener en cuenta que muchas botnets están relacionadas entre si y sus desarrollos provienen
de un código “base” común entre ellas.
• Etc.
46
3.5. MEDIOS DE DETECCIÓN Y PROTECCIÓN
1. Falta de escalabilidad, en redes con gran tráfico la cantidad de información puede crear un
cuello de botella si las reglas del sistema no están bien definidas.
47
CHAPTER 3. TAXONOMÍA SOBRE BOTNETS, ATAQUES Y DEFENSAS
1. Tiempo de reacción bajo, "simplemente" actualizando las reglas se puede proteger al sistema
frente a nuevas amenazas.
48
3.5. MEDIOS DE DETECCIÓN Y PROTECCIÓN
1. Solicitudes DNS fallidas (NXDOMAIN): existen estudios que muestran que una forma
de detectar amenazas potenciales de malware perteneciente a una botnet es el análisis
estadístico de las peticiones fallidas de resolución de DNS al no estar registrados los
dominios utilizados por las botnets como C&C. Botnets como Conficker o Torpig utilizan
dominios con una alta entropía para evitar su posible detección, es decir que la utilización
de cada uno de los dominios es poco probable, con lo que necesita un gran número de
dominios para funcionar y muchos de estos pueden fallar en su resolución. Se buscan pues,
masivas respuestas de petición a dominios que no existen.
3. Dominios con bajos TTL’s: Otro de los métodos usados por los creadores de botnets para
dificultar su detección es la modificación de la IP asociada a un dominio, técnica conocida
como fast-flux. De este modo al cambiar la IP de destino se dificulta la detección de
anomalías. Para realizar este cambio, estos dominios tienen un TTL o tiempo de vida muy
bajo, de este modo se fuerza a que los sistemas DNS a refrescar frecuentemente la caché
de resolución de la IP asociada al dominio, o en caso de TTL nulo, ni siquiera almacenarla.
Por lo tanto, aquellas peticiones DNS cuyo TTL sea muy bajo son sospechosas. Esta técnica
puede crear falsos positivos, ya que existen sistemas legítimos conectados a Internet que
utilizan este tipo de técnicas de ir cambiando la IP asociada a un dominio para balancear
carga en sus sistemas (por ejemplo, Google).
4. Detección de tráfico DNS anormal: Existen estudios que analizan la detección de botnets
en base al comportamiento anómalo de las peticiones DNS. Según estos estudios, algunas
de las aproximaciones que se utilizan son:
49
CHAPTER 3. TAXONOMÍA SOBRE BOTNETS, ATAQUES Y DEFENSAS
d) Análisis de las direcciones que se solicitan para su resolución (DNS), analizando posi-
bles patrones como por ejemplo porcentaje de caracteres numéricos (cuando se generan
aleatoriamente como ya hemos comentado) o la inclusión de palabras reconocibles.
e) Análisis de uso de TCP como protocolo de transporte para consultas DNS, debido a
que su uso suele ser residual (se suele utilizar UDP) puede ser un indicador de un
comportamiento anómalo.
Empleo de honeypots:
Un honeypot es un recurso informático cuyo único objetivo es ser atacado. Así, un honeypot
atacado e investigado puede proporcionar información valiosa sobre el ataque y su atacante.
El empleo de honeypots para la investigación de botnets es habitual y es, también, la forma
de descubrirlos, aprender sobre ellos y luego (si es posible) inhabilitarlos. Existen dos tipos de
honeypots [18]:
• De baja interacción: A los honeypots de baja interacción se les permite una interacción
“limitada” con su atacante. Todos los servicios de un honeypot de baja interacción son
emulados. Esto significa que los honeypots de baja interacción no son vulnerables y no se
infectarán con el exploit. Estos servicios emulados se disfrazan de software vulnerable o
sistemas completos, fingiendo todo el diálogo de red a medida que avanza el ataque. El
objetivo final es simplemente recolectar una muestra de malware descargado. Ejemplos de
software Honeypots de baja interacción son Google Hack Honeypot, HoneyBOT, honeytrap,
KFSensor, Multipot, Dionea, etc.
• Alta interacción: Los honeypots de alta interacción utilizan el servicio o software vulnerable
real, controlando de cerca el sistema, ya que es realmente explotado por los atacantes. Esto
tiene una ventaja sobre los honeypots de interacción bajos, ya que es posible obtener una
imagen mucho más detallada de cómo exactamente progresa un ataque o cómo se comporta
una muestra de malware particular en un sistema real.
Una vez que estas botnets han sido detectadas lo habitual es protegerse de ellas. Aquí entramos
en lo que llamamos la protección e inhabilitación de botnets.
50
3.5. MEDIOS DE DETECCIÓN Y PROTECCIÓN
Después de reunir suficientes evidencias sobre la existencia de una botnet se deben de tomar
medidas para inhabilitar nuestras máquinas afectadas por la botnet.
En caso de detección hay que ponerse en contacto con las agencias pertinentes (CERTs, ISP’s,
etc.) para lograr que la red botnet se cierre y que los actores cibercriminales sean detenidos.
Además, es deseable que la información relativa a dichas botnets (DNS, topología, tipos de
ataques, etc.) sea publicada en el mayor número de sitios que existen al efecto y que ya se han
comentado (ShadowServer, dsshield, DNSL, RBL, Incibe, etc.)
Las técnicas de protección en nuestra red y de las máquinas infectadas seria la siguiente:
• Si se quiere investigar sobre el bot hay que realizar un análisis forense (Cuidado: podría
servir como prueba en un hipotético juicio o demanda) utilizando Sand Box y aislando de la
red de producción la máquinas zombis.
• Hay que valorar la posibilidad de formatear todas las máquinas y que esto acabe con el
malware instalado (existen APT’s capaces de permanecer en un dispositivo, aunque este
sea formateado).
• No poner nada en producción hasta que se comprueba que el sistema y toda la red está
libre de ese malware.
• En general:
– Todos los hosts deben de tener actualizado su sistema operativo (incluyendo los parches
correspondientes)
– Todas las aplicaciones deberían de ser legales, oficiales y obviamente también actual-
izadas y parcheadas.
– En la red es aconsejable disponer de sistemas IDS (como Snort) e IPS (como suricata)
con reglas específicas para botnets como emerging-botcc.rules y botnet-cnc-ru.
– Es deseable que la red tenga bien configurados sus dispositivos cortafuegos y sus
capacidades IDS/IPS si las tienen.
51
CHAPTER 3. TAXONOMÍA SOBRE BOTNETS, ATAQUES Y DEFENSAS
– Etc.
• Usar un firewall para bloquear todas las conexiones entrantes de Internet a servicios que
no deberían estar disponibles al público (WhiteList).
• Asegúrarse de que los programas y usuarios del equipo usen el nivel más bajo de privilegios
necesarios para completar una tarea.
• Capacitar a los empleados para que no abran archivos adjuntos a menos que los estén
esperando y que no ejecute software que se descargue de internet a menos que haya sido
escaneado en busca de virus. Simplemente visitar un sitio web comprometido puede causar
infección si ciertas vulnerabilidades del navegador no estan parcheadas.
52
3.5. MEDIOS DE DETECCIÓN Y PROTECCIÓN
• Mantener nuestra red local con el software de los equipos de red (router, switches, firewall,
etc.) actualizados.
• Tener activados IDS, IPS y otro tipo de medidas con reglas de detección precisas y actual-
izadas.
Por último, y aunque las técnicas de inhabilitación de las botnets pueden ser muy diversa y estas
suelen involucrar a varias organizaciones, diferentes organismos y gobiernos, se exponen formas
de desmantelar o al menos inutilizar una botnet.
Si tenemos estas sospechas, debemos emplear las siguientes medidas orientadas a la limpieza
de los equipos (en algunos casos es aconsejable desconectarnos de la red):
• Programar la acción de un escaneo del antivirus antes del arranque del S.O.
• Desinfeccion manual de los equipos (muy técnico). Aislar las computadoras comprometidas
para evitar que las amenazas se propaguen aún más. Realizar un análisis forense y
restaurar las computadoras utilizando medios confiables.
• Crear reglas específicas para IDS/IPS una vez analizado el malware, su código (si esto es
posible) y su comunicación.
• Difundir lo más posible sus direcciones DNS de C&C y la botnet en si para que sea conocida
(cuanto más mejor). Inhabilitar los alojamientos Web a través de sus webhosting o su IPS.
53
CHAPTER 3. TAXONOMÍA SOBRE BOTNETS, ATAQUES Y DEFENSAS
• Infectar al propia botnet para inutilizarla (haciéndola desconectarse de sus peers o tomando
el control de sus servidores C&C). A esta técnica del ataque a botnets P2P se la denomina
“peer poisoning”.
Hay que tener en cuenta que existen avisos de infección NO reales que nos invitan a ejecutar
algo que nos limpiará el equipo. Esto habitualmente nos descarga y nos instala un malware.
Las botnets como Zeus quieren pasar desapercibidas, no llamar la atención para poder seguir
operando a través de esa máquina sin que el usuario lo perciba. En esto estriba la gran dificultad
de su detección.
Existen iniciativas de detección de malware tipo botnet para (trabajando de forma conjunta)
poder bloquear servidores C&C o nodos P2P con el fin de deshabilitar la red. Estas iniciativas se
basa en:
Peer poisoning
Casi todas las redes P2P tienen una vulnerabilidad en el mecanismo de intercambio entre
peers. Como ya se explicó anteriormente, los nodos deben mantener y compartir una lista de otros
nodos con los trabajadores (“workers”) para, así, poder distribuir a los trabajadores entre la gran
cantidad de nodos. Cuando se identifica un nuevo robot como nodo (capaz de aceptar conexiones
entrantes), el nodo al que está conectado lo agrega a la lista de nodos y lo comparte con los otros
nodos.
El peer poissoning consiste en introducir un equipo en la red que sea capaz de convertirse en
“nodo” de esa botnet y a partir de ahí distribuir listas de IP’s NO validas tanto a sus “workers”
como a los otros nodos.
Si se introducen los suficientes nodos “contaminados” (poisoning) podrían llegar a separar a
los trabajadores de los nodos legítimos. Al solo emitir las direcciones IP de otros nodos contami-
nados, aumenta la posibilidad de que los trabajadores solo conozcan los nodos contaminados y
disminuyan significativamente las posibilidades de que se reincorporen a la red. Este ataque
puede no ser definitivo, pero si podría paralizar partes grandes de la red.
Después de lo analizado hasta ahora han quedado claros los siguientes conceptos relativos a las
botnets:
54
3.6. CONCLUSIONES DEL CAPÍTULO
• La subsistencia de una botnet suele deberse a las formas de comunicación que emplean,
ofuscación, ocultación y su topología.
• Las botnets pueden ser adaptadas a diferentes usos modificando sus payloads.
• Nadie “regala nada”, si se liberan códigos de botnets suele ser para acabar con la competen-
cia entre cibercriminales.
• El desarrollar una botnet activa tiene un coste elevado (en conocimiento, tiempo y a veces
en material) y el pago por el uso de sus “servicios” se puede obtener a través de internet si
tan siquiera conocer las partes implicadas.
• La identificación y detención final de las personas implicadas suele ser difícil debido al
carácter transnacional de los delitos y la ocultación de estos entre las ingentes máquinas
de su red.
• Las medidas de protección para evitar ser infectado por un malware tipo botnet a nivel de
host no son difíciles de implantar.
• Las medidas de protección a nivel de red son más complejas y requieren de personal
específico y experto en seguridad.
• La comunidad internacional y las empresas privadas cada día trabaja más conjuntamente
para la detección, alerta, análisis y eliminación de este tipo de amenazas. Este tipo de redes
representan unas pérdidas (económicas, en credibilidad, en recursos, etc.) y unos trastornos
enormes una vez que están activas.
55
CHAPTER 3. TAXONOMÍA SOBRE BOTNETS, ATAQUES Y DEFENSAS
Nota: Siempre se puede realizar una investigación para poder intentar arrestar a los cibercrimi-
nales o al BotMaster antes de desmantelar la botnet (depende de la estrategia que las autoridades
quieran seguir).
56
HAPTER
4
C
E XPERIMENTACIÓN PRÁCTICA
a verdad es omnipresente, pero lo puede reconocer solamente el que lo busca. Nicolae Iorga,
L
4.1
1871-1940, Historiador Rumano
2. Implementar una red botnet suficiente para poder desarrollar las pruebas.
57
CHAPTER 4. EXPERIMENTACIÓN PRÁCTICA
A lo largo de los anteriores capítulos de este trabajo se ha podido conocer la amenaza relacionada
con las botnets y la complejidad no solo en su detección e inhabilitación, sino en el desarrollo de
una red tan compleja como estas.
En el caso particular de las botnets, es difícil encontrar herramientas preparadas para el
desarrollo de un laboratorio práctico, que si son fáciles de obtener en otros campos relativos a la
seguridad informática. Esto es debido a la naturaleza propia de este tipo de amenazas.
Mientras que un malware puede ser desarrollado para aprovechar una determinada vulner-
abilidad, una botnet se emplea para obtener un “rédito” de cualquier tipo de ataque o exploit
conocido. Digamos que una botnet es “un medio” y no un malware en sí.
Si bien, hoy en día las botnets están muy especializadas (en ataques particulares) no es menos
cierto que pueden readaptarse para poder cumplir con cualquier otro tipo de técnica maliciosa.
Existen proyectos como UFONet [38] que nos pone a disposición una herramienta de software
gratuita diseñada para probar ataques DDoS contra un objetivo y utilizando una redirección a
través de sitios web. Sin embargo, esto no deja de ser similar a herramientas como Davoset que
utiliza los mismos métodos pero que no se pueden definir como una botnet “perse” aunque su
funcionamiento a nivel de “distribución” del ataque si es similar a una botnet.
La diferencia de ambas herramientas con una botnet “al uso” es que la botnet tiene a su
disposición máquinas zombis infectadas con bots que ejecutan sus órdenes y que “entre otras
cosas” pueden realizar un ataque DDoS. Las anteriores herramientas, sin embargo, se aprovechan
de un tipo de servicio o vulnerabilidad para emplear a máquinas intermedias a modo de bots, pero
sin ser controladas nunca en su totalidad por el BotMaster. Porque una botnet es realmente UN
EJERCITO DE ZOMBIS a nuestra disposición para poder hacer aquello que nosotros queramos
con el.
Por todo ello, el código o los ejecutables
de las botnets no son fáciles de obtener y em-
plear en trabajos académicos, ya que pueden
ser “reacondicionadas” o actualizadas y em-
pleadas con otros propósitos volviendo a ser
útiles (para el BotMaster) y no es habitual que
se regalen este tipo de capacidades fácilmente.
Nos encontramos pues con el problema de Figure 4.1: Infección familia Zeus [32].
que no existen muchas herramientas conoci-
das que impliquen todos los elementos de una botnet (bots y servidores C&C) para poder ser
58
4.3. CARACTERÍSTICAS DE ZEUS
Después de una labor de investigación en la red, me he decantado por el empleo de una botnet
llamada Zeus (también llamada ZeuS o Zbot) de la que existen infinidad de versiones adaptadas
a diferentes escenarios y/o ataques. He elegido Zeus 2.1.0.1 por los siguientes motivos:
• Zeus es una botnet que apareció en 2007 y sigue activa en una o varias de sus variantes, lo
que demuestra su efectividad.
• Existen multitud de variantes con funciones más específicas, pero la versión que nosotros
usaremos tiene unas funciones básicas muy avanzadas para una botnet.
• Los casos de infección de botnets por la familia de herramientas Zeus (Citadel, GameOver..etc.)
es enorme en España (ver imagen 4.1).
• Sus objetivos suelen ser desde bancos a ordenadores personales con un gran daño a nivel
económico a través de sus acciones.
• La versión 2.1.0.1 fué “filtrada” en el 2011 lo que no la convierte en muy antigua teniendo
en cuenta que afecta a equipos hasta Windows 7.
• Las versiones de Zeus (como GameOver) tiene topologías que combinan (DGA, P2P y C&C)
aunque en este laboratorio solo se utiliza esta última.
• La interface de gestión es muy visual, fácil de aprender y los resultados de los ataques
están muy bien representados en ella.
El Virus Troyano Zeus es muy conocido actualmente al ser utilizado como via de envío del
malware de cifrado CryptoLocker que tanto ha salido en la prensa internacional.
A continuación, se expone una breve historia de este malware desde su primera aparición
hasta el año 2017 [44].
59
CHAPTER 4. EXPERIMENTACIÓN PRÁCTICA
El año 2007 marcó el comienzo del malware Zeus. Incialmente se utilizó para robar in-
formación del Departamento de Transporte de los Estados Unidos para, a continuación,
convertirse en una de las botnets más utilizada mundialmente.
En 2009, Zeus comenzó su expansión masiva por la red y ya se empezó a considerara como
una gran amenaza. Había comprometido más de 74.000 cuentas de FTP en sitios web
de grandes compañías como el Banco de América, la NASA, Monster.com, ABC, Oracle,
Play.com, Cisco, Amazon y BusinessWeek entre otros.
Este fue el año en que el FBI anunció que el virus Zeus se utilizó para infectar computadoras
en todo el mundo. En esta época Zeus era usado principalmente como un troyano bancario,
para robar información mediante el registro de las pulsaciones de teclado realizadas al
utilizar un navegador o mediante la inyección de formularios web. Además, se usaron
correos electrónicos para hacerla llegar al máximo numero de personas posibles.
2015 también fue un año importante para Zeus, ya que evolucionó en Chthonic, una nueva
variante descubierta por los investigadores de malware de Kaspersky. Se emplea la misma
técnica de cifrado utilizada ya por los troyanos "Zeus V2" y "Zeus AES". Chthonic es conocido
por haber atacado a más de 150 bancos en 15 países, en 2015.
En agosto de 2015, se utilizó el código de Zeus para crear una variante personalizada para
él, llamada "Sphinx Banking Trojan", que se vendia en el mercado negro por unos 500
dolares. La red TOR fue utilizada para ello. Los mas afectados fueron principalmente los
bancos brasileños. No obstante, ya se conocian usos de Zeus con redireccionamiento a través
de la red TOR donde estarian alojados los servidores C&C y que, además, funcionarían en
versión de 64 bits.
60
4.3. CARACTERÍSTICAS DE ZEUS
Zeus sigue siendo una de las infecciones informáticas más grandes, y sus muchas variantes
siguen aún extendiéndose.
El malware Zeus ha empleado muchas formas de distribución a lo largo de los años para todas
sus variantes. Una de las primeras formas para que llegue a un sistema informático fue con la
ayuda de redireccionamientos web (drive by download o descarga directa). Se puede activar el
redireccionamiento ejecutando cualquier elemento en línea como un enlace o un botón.
Uno de los redireccionamientos contiene un script que descarga el malware. Otra forma de
descargar es hacer clic en un anuncio que nos plantea una pregunta y nos promete un premio al
contestarla.
Los correos electrónicos no deseados con archivos adjuntos eran y siguen siendo una forma
destacada de distribución para Zeus. Dentro del archivo adjunto hay un archivo ejecutable que
está ofuscado y oculto como otro tipo de archivo de documento, con una extensión como .pdf o .doc
La botnet Zeus es una herramienta criminal para desarrollar troyanos (bots) personalizados y
difíciles de detectar. Debido a las muchas capacidades diferentes que se pueden incluir en los
troyanos (bots) y como estos ejecutables pueden evolucionarse y actualizarse en las máquinas
zombis es muy apreciado y con un largo futuro en el mundo cibercriminal. Zeus se podría decir
que se basa en modelo de Software-as-a-Service (SaaS) donde los cibercriminales pueden emplear,
comprar o alquilar los servicios de dicha “nube”.
Zeus se ofrece también con la posibilidad de que un cibercriminal emita comandos especí-
ficos, como descartar una pieza de código malicioso de un tercero o utilizar la geolocalización
para afectar únicamente a determinados países, regiones o ciudades. También permite que el
cibercriminal establezca intervalos para la comunicación de C&C, lo que puede reducir la carga
en la infraestructura de C&C y dificultar la detección de la comunicación maliciosa.
La versión básica de Zeus puede ser adaptada con funciones específicas que se venden a día
de hoy por entre 700 y 15.000 dolares [27].
Como se ha comentado, se puede disponer de la botnet Zeus básica y luego ir añadiendo
complementos compatibles como módulos separados, que se pueden comprar de forma individual.
Los precios aproximados de estos módulos son:
61
CHAPTER 4. EXPERIMENTACIÓN PRÁCTICA
además de que permite que el cibercriminal lo use para cambiar estas configuraciones sobre
la marcha.
• Módulo Socks 4/5: Precio de 120 dolares. El complemento permite al cibercriminal ocultar
la botnet, para convertir fácilmente los hosts infectados por malware en proxies de anon-
imización, un módulo bastante común que se encuentra en muchos bots de malware de
la competencia. El autor del bot también permite a sus clientes especificar el puerto del
servidor Sock o el bot elegirá uno al azar.
• Módulo de Back Connect Hosts: Precio de 380 dolares. Es otro plugin estándar disponible
en bots de malware de la competencia, que permite a los ciberdelincuentes conectarse y
abusar de hosts detrás de un NAT.
El bot Zeus dispone de muchas características de ataque, pero las más conocida son la de robar
información bancaria mediante el registro del teclado del navegador y la inyección en formularios
web. Zeus es básicamente un proxy/troyano que utiliza técnicas MITM (Man In The Middle) en el
propio sistema del usuario.
Zeus ataca explotando vulnerabilidades en la seguridad del navegador para modificar páginas
web y manipular transacciones monetarias cambiando o agregando campos de la página web.
Además, no necesitan privilegios de administrador para “secuestrar” una máquina basta con
ejecutar el programa “bot.exe” que difunda el BotMaster.
Lo realmente peligroso es que no existe una forma de seguridad efectiva (como podría ser
SSL) que pueda proteger dicha forma de ataque. La captura de formularios web es una técnica de
captura de datos en formularios web antes de que se envíe la información al servidor..
La botnet dispone de un panel de control que se usa para monitorizar, actualizar los bots,
enviar las ordenes y recoger la información de toda la botnet. Algunas de las características que
posee esta botnet son:
62
4.3. CARACTERÍSTICAS DE ZEUS
• Agrupa los sistemas de usuarios infectados en diferentes botnets para distribuir los coman-
dos y el control según sea el S.O.
• Servidor C&C que puede realizar tareas adicionales como descarga y ejecución de archivos
en los sistemas, actualización bots, etc.
• Envío de información al servidor C&C automáticamente, como la versión del bot, el sistema
operativo, la hora local, las ubicaciones geográficas, etc.
• Los programas bots (bot.exe) NO necesitan ser ejecutados con privilegios de administrador,
lo que les convierte en todavía mas peligrosos.
De entre sus características de ataque se comentarán las más relevantes en cuanto a ex-filtración
y robo de información [32].
• “protocol” es POP3 si los comandos STAT o LIST son los encontrados (interceptados), en
caso contrario es FTP.
• “user y password” son las credenciales introducidas con los comandos USER y PASS.
63
CHAPTER 4. EXPERIMENTACIÓN PRÁCTICA
Robo de certificados.
Zeus tiene la habilidad de robar los certificados almacenados, incluidas las claves privadas al
conectarse o interceptar la función PFXImportCertStore, esta función importa el archivo PFX
BLOB (Los archivos PFX contienen claves privadas cifradas, certificados y otra información
secreta. Un PFX BLOB es una representación binaria de PFX).
Robo de Cookies
Zeus llama a la función InternetGetCookie para obtener las cookies de cada URL. Esta
información se almacena para luego ser enviada.
Además de todo lo anterior Zeus dispone de comandos para dar órdenes a sus bots (o a todos o
a los que se designe). Cuando el comando es recibido por el bot, este utiliza el numero del comando
como parámetro para enviar un “pipe-command”. Un “pipe-command” no es más que un sistema
de sincronización entre procesos para poder ejecutar los comandos que le solicita el BotMaster.
Una importante característica asociada a los comandos de Zeus es la de poder descargarse y
ejecutar archivos en la máquina remota, lo que le concede una flexibilidad de nuevos ataques.
La funcionalidad del rootkit que se utiliza en este trabajo es compatible con Windows
2003/XP/7, pero no es compatible con sistemas de x64 bits. No nos ha sido posible encontrar una
versión de 64 bits para poder ser utilizada.
Con respecto a lo anterior es conveniente resaltar que existe una forma de contaminación
web que detecta la versión del navegador utilizado (x86 o x64) para descargar una u otra versión
e infectar adecuadamente dichos dispositivos. Estas infecciones ya se ejecutan en cualquier tipo
de plataforma Windows, desde 2003 a 2017.
64
4.4. ESCENARIO PLANTEADO
Una vez seleccionada la botnet para la realización del laboratorio se debe de establecer un
escenario para que se pueda desplegar dicha red en él. Con motivo de la falta de una red física
donde implementar el escenario se ha decidido su despliegue en máquinas virtuales con las
siguientes características:
• Seis máquinas virtuales Windows 7 (de diferentes distros) con los siguientes roles:
– 1 Servidor C&C.
– 1 Maquina víctima.
• Una sola red interna en la que se encuentran todas las máquinas conectadas y aisladas de
la máquina anfitriona y de la red externa (internet).
La disposición del laboratorio se eligió de esta manera por motivos técnicos y de seguridad que se
comentan a continuación.
• La elección de un hipervisor de tipo 2 se debe al empleo del propio material del alumno que
tenía disponible en su hogar y este ya contaba con un S.O anfitrión (Windows 10). Por otro
lado, se eligió VMWare Pro 12 por los siguientes motivos:
– Existe una gran facilidad de obtener máquinas virtuales VMWare oficiales de la web
de Microsoft.
– La versión Pro proporciona una funcionalidad completa con varias máquinas y una
gestión de red entre ellas eficiente.
65
CHAPTER 4. EXPERIMENTACIÓN PRÁCTICA
• Se valoró la instalación de una máquina virtual adicional que actuara como BotMaster
para que este accediese remotamente al (o los) servidor C&C. Sin embargo, debido a la
limitación de recursos se ha actuado desde el propio servidor C&C de manera local.
• La elección de una red aislada fue debido a la “peligrosidad” de este tipo de malware ya
que cuando se utiliza no puede estar seguro que no sea una versión con un troyano oculto
que intente realizar una infección a través de la red local o de movimientos laterales entre
máquinas.
• También se valoró la implementación de un firewall ASA virtual para dividir la red interna
entre subredes a través de un dispositivo de protección perimetral avanzado para poder
introducir un elemento más acorde a un escenario real. Esta idea se descartó por los
siguientes motivos:
Inicialmente se descargó la versión de Zeus 1.8.9.0 pero después de varios días de trabajo con esa
versión se observó que el servidor C&C tenía problemas de conectividad con los bots y dejaba de
funcionar el servidor C&C. Finalmente opté por buscar otra versión (Zeus 2.1.0.1) que funcionó
correctamente durante todo el trabajo.
66
4.5. DESARROLLO DEL ESCENARIO
Encontrar esta versión no fué fácil y tuve que registrarme en algunas webs de hacking para
poder descargarla.
Los números en la versión significan lo siguiente (a.b.c.d):
• b – > Cambios importantes que causan incompatibilidad total o parcial con versiones
anteriores.
El funcionamiento del servidor C&C requiere del uso de una base de datos (BBDD) asociada a la
herramienta C&C. Esta herramienta se ejecuta como un servidor web (HTTP) que se conecta con
una BBDD para ir guardando toda la información de los bots así como la información necesaria
para su gestión.
La gestión del servidor C&C se hace vía explorador web que se puede ejecutar en la propia
máquina (por el BotMaster) o desde otro equipo.
67
CHAPTER 4. EXPERIMENTACIÓN PRÁCTICA
Obviamente se necesita de un servicio web a parte del de la BBDD. Por todo ello se utilizó una
versión de XAMPP que dispone de las siguientes funciones (Apache, Tomcat, MySQL, Mercury y
FileZilla) y que me facilitó mucho el despliegue de todos los servicios en un solo producto.
La versión de XAMPP descargada inicialmente era la 7.1.10 que disponía de la versión de PHP
7.1.10 y que dió problemas de instalación. Después de analizar el código fuente de Zeus 2.1.0.1 se
observa que utiliza instrucciones PHP como “mysql_connect()”.
Este tipo de instrucciones fueron consideradas “deprecated” a partir de PHP 5.5 y eliminada
a partir de la versión 7. Finalmente se optó por emplear la versión de XAMPP/PHP 5.6.31.
Después de realizar la instalación, se ar-
rancaron los servicios “Apache” y “MySQL”. Se
accedió a phpMyAdmin que sirve para ges-
tionar la BBDD y se creó una nueva BBDD
llamada “zeusdb” en la que el usuario “root”
(se dejó sin password) tenía todos los privile-
gios sobre ella (aunque esto es muy poco seguro
hay que pensar que es un entorno de estudio Figure 4.3: Archivos Zeus 2.1.0.1.
y aislado).
Además, también se observó que los comentarios del código aparecen en ruso, lo que indica
la procedencia de, al menos, esta versión. Hay que tener en cuenta que algunos programadores
hacen esto a propósito para despistar en cuanto al origen del programa.
Dentro de la carpeta de Zeus 2.1.0.1 accedemos a la carpeta llamada server[php] (ver imagen 4.3)
y la copiamos en la carpeta de XAMPP C:\xampp\htdocs para poder acceder a ella vía web.
Inicialmente accedemos al path 127.0.0.1/server[php]/install/index.php donde nos aparece
la pantalla de la imagen 4.4 con la instalación inicial del servidor C&C [41]. Aquí, debemos
completar los siguientes apartados:
• User name – > Usuario para poder acceder al control de los bots.
• Host – > Se refiere al host que albergará la BBDD (pudiera estar en otro equipo para
proteger la información).
• User – > Usuario para acceder a esa BBDD (“root” por defecto).
68
4.5. DESARROLLO DEL ESCENARIO
• Reports – > Carpeta donde se guardarán los datos (también) de manera local.
• Online bot timeout – > se refiere al tiempo en que un bot se le considera no conectado si no
establece comunicación durante ese tiempo.
• Encrytion key – > Importante parámetro porque es en el que se basan las comunicaciones
entre el bot y el servidor C&C, ya que están cifradas con esa clave. Cuando creemos el bot
hay que introducirle la misma clave en “config.txt”. El cifrado es del tipo 256- byte RC4.
• Enable write reports to database – > Habilita el almacenamiento de los informes recibidos
de los bots en la base de datos.
• Enable write reports to local path – > Habilita el almacenamiento de los informes recibidos
de los bots en el archivo local especificado anteriormente.
El siguiente paso es la creación de una ejecutable (.exe) para poder crear nuestros bots que
“infecten” las máquinas de nuestra botnet [40].
La creación de este archivo ejecutable se realiza con una aplicación creada para ello y que se
encuentra en la carpeta Zeus_2.1.0.1/builder/zsb.exe.
69
CHAPTER 4. EXPERIMENTACIÓN PRÁCTICA
Sin embargo, antes debemos de configurar los parámetros que tendrán nuestros bots modifi-
cando el archivo “config.txt” de esa misma carpeta.
Según se ve en la imagen 4.7 tenemos dos tipos de configuraciones (Static y Dynamic) y
necesitamos, al menos, modificar los siguientes parámetros [7]:
• encryption_key – > 1234567899. Debe de coincidir con la misma clave que utilizamos en el
servidor C&C ya que la comunicación en toda la botnet va cifrada con ella.
70
4.5. DESARROLLO DEL ESCENARIO
• file_webinjects – > se hace referencia a donde se encuentran los patrones de las webs a
buscar e inyectar.
– Enumerar una lista de URL que se deben anotar o eliminar del registro, independien-
temente del tipo de solicitud (GET o POST). Si el primer carácter de la máscara es un
“!”, Entonces la coincidencia de la URL NO se producirá (por ejemplo, la máscara “! *”
Prohibirá la entrada de cualquier URL, excepto las enumeradas antes)
– La máscara URL que tenga el símbolo “@” al comienzo realizará capturas de pantalla
a cada clic del botón izquierdo del ratón. Esto es muy útil para las webs que emplean
teclado virtual.
Existen muchos más parámetros que se podrían configurar, pero quedaría fuera de la extensión
de este trabajo explicarlos todos.
Una vez actualizado nuestro archivo config.txt ya podemos ejecutar el archivo “zsb.exe”
(ver imagen 4.7). Nos dirigimos a la carpeta “Builder” y allí cargamos el archivo config.txt y a
continuación ejecutamos los botones “Build the bot configuration” y “Build the bot executable”.
Esto nos generará dos archivos en el mismo path donde estaba config.txt, el archivo “bot.exe” y el
archivo “config.bin”.
El Bot-ID consta de dos partes: %name%_%number%, donde:
“name” - - > Nombre del equipo (resultado del comando GetComputerName).
“number” – > un número generado en base a algunos datos únicos del sistema operativo.
El archivo “bot.exe” es el que distribuiremos a las víctimas y ambos archivos (el “bot.exe”
y el “config.bin”) los guardaremos donde marcamos en el config.txt que en nuestro caso era en
XAMPP/htdocs/Zeus_2/bot.exe y en XAMPP/htdocs /Zeus_2/config.bin respectivamente.
Ya se comentó anteriormente que las vías de distribución de malware eran extensas. En este caso
se tendrán en cuenta dos particularidades:
• Para que el ordenador víctima quede infectado se debe de ejecutar el programa bot (bot.exe).
71
CHAPTER 4. EXPERIMENTACIÓN PRÁCTICA
• Estos bots solo actúan para máquinas basadas en windows a 32 bits, como windows 7.
Después de comentar estas dos particularidades hay que hacer llegar a la víctima el ejecutable
bot. Esto se puede realizar bien por correo electrónico y cambiando la extensión del archivo (para
que parezca otro tipo de archivo), a través de una página web infectada (drive-by download) que
descargue el archivo y lo ejecute en la máquina víctima, a través de otro programa malware que
lo descargue por módulos, a través de una aplicación gratuita e incrustado en ella.
Hay que tener en cuenta que el “payload” (carga útil) del bot viene “ofuscado” a través de
capas de cifrado que le protegen de herramientas de análisis estático como IDA Pro y otros
desensambladores.
Una vez se instala el bot, la carga útil se ejecuta y se pone en funcionamiento la función de
resiliencia y ocultación en la máquina víctima.
Normalmente este troyano (o bot) crea ciertos ejecutables y carpetas y se aloja (según su
versión o variante) en los siguientes paths:
Variante 1
C:\WINDOWS\system32\ntos.exe – > Troyano binario o Bot.
C:\WINDOWS\system32\wsnpoem\audio.dll – > Contiene los datos robados.
C:\WINDOWS\system32\wsnpoem\video.dll – > Contiene la configuración cifrada.
Variante 2
C:\WINDOWS\system32\oembios.exe – > Troyano binario o Bot.
C:\WINDOWS\system32\sysproc64\sysproc86.sys – > Contiene los datos robados.
C:\WINDOWS\system32\sysproc64\sysproc32.sys – > Contiene la configuración cifrada.
72
4.5. DESARROLLO DEL ESCENARIO
Variante 3
C:\WINDOWS\system32\twext.exe – > Troyano binario o Bot.
C:\WINDOWS\system32\twain_32\local.ds – > Contiene los datos robados.
C:\WINDOWS\system32\twain_32\user.ds – > Contiene la configuración cifrada.
Variante 4
C:\WINDOWS\system32\sdra64.exe – > Troyano binario o Bot.
C:\WINDOWS\system32\lowsec\local.ds – > Contiene los datos robados.
C:\WINDOWS\system32\lowsec\user.ds – > Contiene la configuración cifrada.
Como hay muchas variantes de Zeus, el archivo ejecutable puede variar. Existen otros como
73mendjd.exe (2017) u onlineservicesw.exe (2017).
Posteriormente, Zeus utilizará uno de los ejecutables mencionados anteriormente para inyec-
tar el código en uno de los dos procesos siguientes (dependiendo de qué privilegios logró adquirir)
winlogon.exe o explorer.exe. Esa inyección de código se realiza con el objetivo de ocultar Zeus
entre otros procesos.
Los archivos de configuración y almacenamiento no están solo ocultos, sino también cifrados
con el algoritmo RC4. La clave de 256 bits de RC4 es específica para cada versión de los bots
compilada, por lo que es imposible encontrar un descifrador universal que nos muestre los
contenidos de los archivos del bot. Esta clave se almacena en el archivo ejecutable encriptado.
Zeus realiza unos cambios en los registros de windows con el objetivo de que el ejecutable de
Zeus sea arrancado al inicio del dispositivo.
El firewall de Windows queda deshabilitado por el programa malicioso, pero esto hace que
aparezca un icono de advertencia del centro de seguridad de Windows en la bandeja del sistema
que será la única indicación visible de que el dispositivo ha sido infectado.
El robot emite un comando "M-SEARCH" para encontrar dispositivos de red UPnP (Universal
Plug and Play). Esto es un intento de acceder e infectar otros procesos en el mismo sistema a
través de la inyección de hilos remotos.
Los procesos infectados son habitualmente: winlogon.exe, svchost.exe y explorer.exe. Todo el
proceso de distribución, compilación e instalación se resume en la imagen 4.8.
Una vez que el bot tiene el control de la máquina zombi se pone en contacto con el servidor C&C
a través de un comando http/GET (gate.php) para obtener el último archivo actualizado de la
configuración dinámica (config.bin) que recibe del servidor C&C.
A continuación, el bot comenzará a capturar y registrar información de la máquina infectada
según lo marcado en el archivo DynamicConfig. El bot envía dos comandos http/POST para enviar
el registro recopilado y la información de estadísticas al servidor C&C.
73
CHAPTER 4. EXPERIMENTACIÓN PRÁCTICA
Existen tres temporizadores que se han establecido en los valores en StaticConfig (config.txt),
para que:
Como ya se ha comentado anteriormente las máquinas utilizadas deben ser Windows de 32 bits,
con lo que las seleccionadas han sido las de Windows 7 (32 bits), aunque nos hemos encontrado
con los siguientes problemas:
• Estas máquinas tienen una licencia trial de un máximo de 90 días con lo que es necesario
realizar algún snapshot de las máquinas de vez en cuando con lo que reduce los recursos de
disco duro de la máquina anfitrión.
74
4.5. DESARROLLO DEL ESCENARIO
Asumiendo que en un entorno real sería casi imposible encontrar 2 computadoras exactamente
iguales, en nuestro laboratorio SI tenemos todas ellas iguales y el problema se da cuando son
infectadas con el bot y se ponen en comunicación con el servidor C&C.
El servidor C&C registra cada bot con un nombre que depende de la máquina zombi con
parametros como su versión, licencia, versión de Explorer, etc. Como todas las imágenes son
iguales los bots se registran con el mismo nombre en la BBDD y la información de unas con
otras “se sobrescribe” es decir, solo tenemos una máquina zombi (bot) conectada y recibiendo
información y por si fuera poco solo podemos distinguirla por su IP (que sería la misma si se
comunicasen a través de un NAT). Es decir, en el peor de los casos no sé qué máquina me está
enviando la información y solo podría gobernar una de ellas.
Así pues, se optó por descargar tres versiones de Windows 7 (todas las que ofrece la web)
que se diferencian por su versión de IExplorer y de esta manera los tres bots tienen diferentes
nombres y pueden ser gobernados sin ningún problema. Hay que poner de manifiesto que otra
solución podría haber sido el cambiar el nombre de la computadora (máquina virtual) cambiando
el nombre del bot (Este se hizo posteriormente).
Las seis máquinas virtuales tienen roles diferentes por lo que disponen de diferentes aplica-
ciones y/o servicios. La disposición de las aplicaciones en cada una es:
• Servidor C&C.
– Apache (Servidor XAMPP): Sirve de servidor web para la gestión, mando y control de
la Botnet.
– MySQL (Servidor XAMPP): BBDD a la que se conecta el servidor web para el almace-
namiento de datos de todo lo relacionado con la botnet.
– WireShark: Analizador de protocolos que sirve para ver el tráfico entre los bots y su
servidor C&C.
– Blue Botnet: Botnet malware que sirve para realizar un ataque DDoS compuesto por
una consola de control y ejecutables a distribuir entre las máquinas. Este ejecutable
sera puesto a disposición a los bots para que se lo descarguen y realizar un ataque
DDoS con él.
• Maquinas zombis.
75
CHAPTER 4. EXPERIMENTACIÓN PRÁCTICA
– Diversos ejecutables:
* Bot_Blue_botnet
* HitmanPro
* Belkasoft -dump Memory RAM-
* Dependency Walker
* PEStudio.
• Maquina víctima.
– Apache (Servidor XAMPP): Sirve de servidor web para simular una web lícita a la que
accede un usuario-víctima. Se ha reutilizado una web creada para una PEC anterior
de la UOC. Se practicará un ataque DDoS a dicha web.
– MySQL (Servidor XAMPP): BBDD a la que se conecta el servidor web y que dispone
de verificación del usuario y contraseña, así como de algo de información a mostrar.
Con todo lo anterior se ha establecido la siguiente topología de red (ver imagen 4.9) dentro de la
misma red local (192.168.99.0/24) en la que todos los equipos pueden acceder entre sí sin NAT o
puertas de enlace entre ellas. Se muestra la imagen 4.10 de VMWare Pro 12 con las máquinas en
funcionamiento.
Nota: Es de reseñar que mas adelante se ha añadido otra máquina zombi mas a nuestra
practica con el objetivo de realizar ataques DDoS más efectivos.
A continuación, se expondrán las pruebas realizadas en nuestro laboratorio/escenario. Las
dividiremos en cuatro prácticas para cubrir casi todos los aspectos en los que emplear esta botnet.
Solo se han propuesto las pruebas anteriores por que de otra manera la extensión de este trabajo
seria inabordable, pero se quiere señalar que existen otro tipo de ataques muy interesantes [42]
como son los siguientes:
• Se pueden redirigir las consultas de web legitimas a falsas para poder hacer un ataque
de tipo phishing. Esto se puede configurar en el archivo “config.txt” en el parámetro
“WebFakes”.
76
4.5. DESARROLLO DEL ESCENARIO
• Especificar URL’s para que sean monitorizadas e incluso envíen automáticamente una
imagen de pantalla (screenshot) cuando se detecta la pulsación del botón izquierdo del
raton. Esto se puede configurar en el archivo “config.txt” en el parámetro “Webfilters”.
• Añadir entradas al DNS de la máquina local (HOSTS) para realizar redirecciones a sitios
maliciosos (DNS poisoning). Esto se puede configurar en el archivo “config.txt” en el
parámetro “DNSMap”.
77
CHAPTER 4. EXPERIMENTACIÓN PRÁCTICA
Figure 4.11: Imagen del CP con tres bots conectados al servidor C&C.
El menú del servidor C&C es amplio y no se quiere inundar este trabajo con imágenes que
solo se centren en ver los menús, por lo tanto, se presentarán solo las partes más relevantes de él.
En la imagen 4.11 vemos que tenemos conectados a nuestros tres bots (máquinas zombis)
y que podremos obtener de ellos información que será registrada en la BBDD para consultarla
cuando queramos. En ella se aprecian las denominaciones de los bots (dependientes del nombre
de la máquina y de la versión del S.O). Todas se conectan con el servidor C&C a través de un
puerto aleatorio designado entre el bot y el servidor C&C. Podemos observar la denominación de
la botnet (btn1) que hemos configurado en nuestro archivo “config.txt” antes de generar los bots.
Ahora solicitamos un informe y un screenshot de las tres máquinas para que nos muestren lo
que tienen en pantalla. Podemos ver en 4.12 el sistema operativo de la máquina anfitrión-zombi,
su IP, el nombre del bot, el S.O del equipo, etc.
La siguiente prueba se centrará en obtener las credenciales usadas desde un equipo infectado
a un servicio web (podria ser el de un banco). Para hacer el rol de servidor se ha configurado los
servicios de BBDD y Apache en XAMPP en la máquina virtual “víctima” como si de un servidor
web se tratara. Las páginas y la BBDD que se han cargado son las relativas a una practica que
78
4.6. PRÁCTICA DE FUNCIONAMIENTO BÁSICO Y EMPLEO DE COMANDOS
79
CHAPTER 4. EXPERIMENTACIÓN PRÁCTICA
80
4.6. PRÁCTICA DE FUNCIONAMIENTO BÁSICO Y EMPLEO DE COMANDOS
81
CHAPTER 4. EXPERIMENTACIÓN PRÁCTICA
NT\Accessories\wordpad.exe”
Se puede ver en la imagen 4.18 como hemos contruido este script y se lo hemos asigando solo
a un bot y lo habilitamos (enable).
Cuando se ejecuta el script (asincrona-
mente) nos muestra un mensaje de enviado
y de recibido por parte del bot (OK), como ve-
mos en la imagen 4.19. Ello nos indica que (Respuesta a un Script.)
el script ha sido recibido y ejecutado por la
máquina infectada por el bot (máquina zombi).
Por ultimo, vemos con en dicho equipo se ha
abierto el wordpad (ver imagen 4.19.).
Se ha observado que los comandos envi- (Accion ejecutada.)
ados a los bots para realizar una acción son Figure 4.19: Ejecución Script.
respondidos por estos en un tiempo variable y
dependiente del archivo “config.bin”. Estos tiempo, a veces son largos, debido a que la configu-
ración por defecto del archivo “config.txt” (que se utiliza para crear el archivo “config.bin”) tiene
unos tiempos adaptados a un entorno real, pero no a un entorno de laboratorio de pruebas.
Antes de continuar con la realización de las siguientes pruebas vamos a ajustar estos tiempos
explicándolos a continuación.
Hay 3 parametros dentro de la sección “StaticConfig” del archivo “config.txt” que vamos a
variar:
• timer_config: Esta opción le dice a la víctima (al bot) con qué frecuencia buscar un nuevo
archivo de configuración. Por defecto los valores están puestos en un tiempo máximo de 60
minutos y un minimo de 1. Vamos a poner un máximo de 2 minutos y un minimo de 1.
• timer_logs: Esta opción le dice al bot la frecuencia con la que debe enviar los datos almace-
nados del equipo víctima. Por defecto los valores están puestos en un tiempo máximo de 1
minutos y un minimo de 1. Lo dejaremos como está.
82
4.7. PRÁCTICA DE WEB INJECTION
• timer_stats: Esta opción le dice al robot con qué frecuencia enviar las estadísticas de las
víctimas. El tipo de estadísticas que se envían son el estado en línea, puertos abiertos,
servicios, estado SOCKS, estado NAT y capturas de pantalla. Por defecto los valores están
puestos en un tiempo máximo de 20 minutos y un minimo de 1. Vamos a poner un máximo
de 2 minutos y un minimo de 1.
Para esta practica tenemos que modificar el archivo “webinjects.txt” [39]. En dicho archivo se
alojan las webs que quieren modificarse en las víctimas a través de una inyección de datos. El
principio de funcionamiento de un ataque web injection es el siguiente:
1. La víctima visita una página web donde existe unos campos de introdución de datos para
autenticarse (por ejemplo, usuario y contraseña).
2. El bot comprueba si la página visitada esta entre las que el tiene que “vigilar”. Si es asi
busca los datos marcados dentro de esa web a inyectar.
3. El bot se interpone entre las comunicaciones del servidor web legitimo y el “front-end”
(imagen web que se le presenta a la víctima) e inyecta los campos marcados en el archivo
“webinject.txt” (se usó en la compilación del archivo “config.bin” que posee el bot) para que
se le presenten a la víctima los campos reales y el campo inyectado malicioso.
5. Todos los datos son enviados en texto plano al servidor C&C y tambien al servidor web legit-
imo con lo que el usuario accedería bien al recurso solicitado ignorando que ha introducido
datos adicionales.
En nuestro ejemplo hemos configurado un servidor web (XAMPP) en una máquina llamada
“víctima” que, aunque es un nombre un poco confuso, se ha llamado asi porque aparte de un
servidor web servirá para intentar realizar sobre ella mas adelante un ataque DDoS.
Los pasos para configurar nuestra práctica de webinjection son los siguientes:
1. Modificar el archivo “webinjections.txt” para introducirle la web a inyectar con los siguientes
parámetros (ver imagen):
83
CHAPTER 4. EXPERIMENTACIÓN PRÁCTICA
c) data_inject – > datos a inyectar. En nuestro caso inyectamos un campo similar a los
legitimos pero en el que pedimos el código PIN de una supuesta tarjeta de crédito.
<tr><td>PIN_Code:</td><td><input type=“text” name=“PINCode” id=“PINCode”/></tr>.
2. Volver a compilar los archivos “config.bin” y “bot.exe” y guardarlos donde son accesibles a
los bots (configurado en el archivo “config.txt” y ya explicado anteriormente).
3. Crear un script para ser lanzado a todos los bots en el que se les solicite que actualicen sus
archivos de configuración. La sintaxis es bot_update http://192.168.99.1/Zeus_2/config.bin
-f. Donde:
c) -f – > Parámetro que fuerza a los bots a descargarse y ejecutarlo, es decir que se
actualicen inmediatamente.
4. Despues de enviar ese script y ser ejecutado por los bots la inyección web nueva ya esta
configurada.
84
4.7. PRÁCTICA DE WEB INJECTION
85
CHAPTER 4. EXPERIMENTACIÓN PRÁCTICA
Con esta práctica se quiere realizar un ataque DDoS a una víctima en la que se encuentre en
funcionamiento un servicio web.
La versión de Zeus con la que estamos trabajando NO dispone de ninguna capacidad de ataque
DDoS preconfigurado. Una versión que si dispone de ello es GameOver. Como ya se comentó, en
el mercado negro es posible obtener dichas capacidades pagando por ellas.
En este escenario se quiere aprovechar otras
capacidades que dispone Zeus para poder re-
alizar ataques DDoS a través de otra her-
ramienta. La idea es que la botnet Zeus desple-
gada realice la instalación de otro malware con
el fin de poder realizar este tipo de ataques.
Esta idea ya se ha empleado con el caso del
ataque que se produjo con CryptoLocker en 2013.
La red de distribución del malware de cifrado Figure 4.24: Ataque tipo HTTP [1].
fué Zeus.
La dificultad de realizar esta practica ha sido en la de obtener una herramienta de DDoS. Ello
es debido a que existen ya herramientas (como UfoNet) preparadas para hacer ataques DDoS
pero sin ningún control de los equipos que lanzan el ataque (bots). No obstante, se buscó una
herramienta en la que se puediese tener un control de las máquinas infectadas (red botnet) y que
pudiese ser distribuida y “activada” por nuestra botnet Zeus.
Inicialmente se barajó el uso de “Dirt Jumper v5” que se consiguió descargar con muchas
dificultades. Sin embargo, su funcionamiento daba problemas en todos los navegadores empleados
y no se pudo implementar su uso final. Al final se optó por el uso de “Blue Botnet” una botnet
86
4.8. PRÁCTICA DE ATAQUE DDOS (BLUE BOTNET)
dedicada exclusivamente a ataques DDos y con la posibilidad de distribuir sus bots via remota (a
través de Zeus). La version descargada funcionaba bien, la interface es sencilla en su manejo y la
creación de sus bots es simple y rápida.
Blue Botnet puede realizar muchos tipos de ataques en diferentes capas del modelo TCP/IP,
entr los que están [36]:
• SYN (SYN Flood) – > Ataque que se produce aprovechando la debilidad del “three-way
handshake”, dode el servidor espera el ACK del cliente y deja la conexión abierta un tiempo
predeterminado.
• HTTP – > Ataque de capa 7 que se produce con peticiones masivas del parámetro GET y/o
POST (ver 4.24).
• TCP – > Ataque que aprovecha las vulnerabilidades propias del protcolo TCP “three-way
handshake” y los asociados a las características de este protocolo.
• HTTP Proxy – > El mismo que el anterior, pero a través de servidores proxy. Este tipo
de ataque hace que podamos ocultarnos más a través de dispositivos intermedios lo que
dificulta el detectar la procedencia del ataque.
87
CHAPTER 4. EXPERIMENTACIÓN PRÁCTICA
Ademas esta botnet permite modificar (adaptar) los proxies remotos a utilizar y las XML-
RPC_list pudiéndolo adaptar a nuestro escenario o necesidades.
Se estima que con solo 50 bots de esta herramienta es posible inhabilitar (tirar) un servidor
web. Por otro lado, esta herramienta dispone de un “builder” para construir nuestros bots.
Para la realización de esta practica se ha añadido un equipo zombi más (bot4) para aumentar
el tráfico en el intento de que nuestro ataque DDoS contra el servidor de la máquina víctima sea
exitoso. Los pasos para configurar nuestra práctica de DDoS son:
a) Debemos alojar la carpeta “WebPanel” en nuestro servidor web para que actue como
servidor C&C de Blue Botnet. Hemos instalado nuestra Blue Botnet en el equipo C&C
donde ya tenemos el servidor de C&C de Zeus, asi pues será el mismo servidor para
ambas botnets.
b) Creacion de los bots para lo que le indicaremos la URL de nuestro servidor C&C
(http://192.168.99.1/WebPanel/) y el numero de Threads (hilos) que podrá lanzar cada
bot (por defecto 300). Ver la imagen 4.25
c) Alojamiento del bot.exe de Blue Botnet en el servidor http en la raíz del servidor
http://192.168.99.1/bot.exe (eso corresponde a C:\xampp\htdocs\bot.exe) para que
pueda ser accedido via http. Aquí debemos de hacer la siguiente anotación: “Si cambi-
amos el nombre del ejecutable NO funcionará, debido a que debe de ejecutarse como
bot.exe”.
a) Debemos crear un script donde se pida descargar y ejecutar el archivo bot.exe (de
Blue Botnet) en cada máquina zombi (anfitriona de cada bot). El script es el siguiente:
user_execute http://192.168.99.1/bot.exe. Este comando ordena al bot descargar el
archivo “bot.exe” en %TEMP%\random_name\bot.exe y lo ejecuta.
a) Accedemos a la dirección de Blue Botnet donde nos pide un password para registrarlo
y a partir de entonces podamos utilizarlo.
b) Una vez logeados accedemos al panel principal en el que existen 4 pestañas (imagen
4.26). Aquí nos interesan la de “Attack Hub” (desde donde podemos realizar los
ataques) y la de “Online Bots” (donde podemos ver que IP de bots tenemos activas).
La pestaña de “Settings” tiene utilidad para ataques HTTP Proxy y XMLRPC que no
vamos a emplear en esta práctica.
88
4.8. PRÁCTICA DE ATAQUE DDOS (BLUE BOTNET)
4. Realizacion del ataque DDoS (ver imagen 4.26) contra el equipo víctima (192.168.99.101).
Realizaremos el ataque contra la página web empleada en la practica anterior.
(http://192.168.99.101/Version_NO_SQLi/practica_bbdd/index.php).
Vamos a realizar 2 tipos de ataques DDoS (SYN y TCP ATTACK) y a la vez acceder al recurso a
través del propio servidor C&C. Ademas, “intentaremos” capturar los datos a través de WireShark
(se ha remarcado “intentaremos” porque la cantidad de datos que recoge WireShark es enorme y
habitualmente se queda bloqueado).
Para generar estos ataques debemos ingre-
sar la IP de nuestra vitima y el puerto al que
atacar, que en este caso es el puerto 80 donde
corre nuestra aplicacion web (192.168.99.101).
Ataque SYN [10] Cuando un cliente desea
iniciar una conexión contra otro equipo, inicia
la conversación con un “SYN”, en el lado del
servidor se recibe el SYN y responde con un
SYN+ACK, finalmente el extremo que empezó
la conexión contesta con un ACK y ya pueden
empezar a transmitir datos (ver imagen 4.27).
Un ataque de tipo Syn Flood lo que hace
es empezar un numero especialmente alto de
inicios de conexión que nunca son finalizados,
dejando al servidor a la espera del ack final,
y por tanto consumiendo recursos de forma Figure 4.26: Creación bot Blue Botnet.
desproporcionada. Por defecto la espera de respuesta suele ser de 180 segundos.
Para generar este ataque debemos ingresar la
IP de nuestra vitima y el puerto al que atacar, que
en este caso es el puerto 80 donde corre nuestra
aplicacion web.
En la imagen 4.28 de WireShark con el tráfico
capturado, una vez que se ha lanzado el ataque, se
puede observar que se lanzan paquetes contra el ob-
jetivo víctima (192.168.99.101) del tipo SYN desde Figure 4.27: 3-way handshake [10].
diferentes puertos desde las máquinas zombis.
Este ataque no ha conseguido colapsar la máquina víctima y provocar el buscado DDoS. Se
estima que serian necesarias mas máquinas para lograr esto con este tipo de ataque SYN Flood.
89
CHAPTER 4. EXPERIMENTACIÓN PRÁCTICA
90
4.9. ANÁLISIS FORENSE DE UN EQUIPO INFECTADO (BOT)
utiliza se ha observado en un análisis de los paquetes con WireShark que utiliza ambas técnicas
como puede verse en la imagend e la captura 4.30.
A continuación se realiza un ataque con técnica TCP de DDoS con cuatro máquinas zombi y
su resultado (ver 4.29).
Este ataque ha sido muy efectivo llegando a inutilizar el servicio de la web víctima en menos
de 5 segundos después de lanzar el ataque (ver imagen).
En el tráfico capturado con WireShark mostrado en la figura 4.30, vemos la gran cantidad de
ACKS que es enviado al servidor víctima (192.168.99.101) y la cantidad de paquetes de ACKS
duplicados (TCP Dup ACK XXXX) y de ACKS desordenados (TCP Out-Of-Order).
Para generar este ataque debemos ingresar la IP de nuestra vitima y el puerto al que atacar,
que en este caso es el puerto 80 donde corre nuestra aplicacion web.
Se pretende realizar un análisis forense de un equipo infectado [45] [43] [8] (podría tratarse de
un honeypot puesto por nosotros). Para ello, se debe obtener una imagen de la memoria RAM
de una de las máquinas infectadas por el bot. También se realizará el mismo proceso con otra
máquina infectada para comparar los resultados.
Para la generación de la imagen de la memoria RAM hemos empleado la herramienta de
Belkasoft (Version Trial) por su facilidad de uso, para luego, realizar un análisis de dicha imagen
con Volatility (OpenSource).
Una vez obtenidas las imágenes de las dos máquinas (Bot1 y Bot3) empezaremos a realizar
los análisis con la herramienta Volatility.
Lo primero que debemos hacer con volatility es obtener la versión del S.O de la imagen
obtenida. Para ello empleamos el plug-in imageinfo (ver imagen 4.31), de esta manera podemos
realizar el resto de consultas con un PROFILE establecido.
91
CHAPTER 4. EXPERIMENTACIÓN PRÁCTICA
En segundo lugar realizamos un netscan para ver si podemos averigura que proceso (PID)
se esta comunicando con una IP sospechosa. Esta IP sospechosa seria la del servidor C&C
(192.168.99.1). El comando seria: /̇volatility_2.6_mac64_standalone –profile=Win7SP1x86_23418
netscan -f 20171030_Bot1.mem.
Los procesos que han realizado dicha comunicación me aparecen con el PID -1 (ver 4.32) a que
me indica que dicha comunicación esta cerrada (se cierra al detectar un volcado de memoria?).
Ahora realizo ahora un psxview (ver imagen 4.34). Este
plugin me permite ver cuando los procesos aparecen en un
tipo de consultas y no en otras. Psxview determina los pro-
cesos y las referencias cruzadas enumerando los procesos de
PsActiveProcessHead (pslist), mostrando los procesos con el
grupo de etiquetas como activos (psscan), y enseñándonos
indirectamente el proceso mediante el escaneo ETHREAD Figure 4.33: Vinculación entre pro-
(check_thrdproc), recorriendo PspCidTable, usando la tabla ceso [45].
de control csrss.exe (que gestiona las creaciones y detención
del resto de procesos) .
Por otro lado, PspCidTable contiene controladores para todos los procesos y subprocesos que
están presentes en el sistema. El planificador de subprocesos lo usa para realizar un seguimiento
de qué subprocesos se gestionarán.
Hay que tener en cuenta que pslist es un plugin de volatility que muestra información
similar que si solicitara la lista de tareas. Como windows emplea listas doblemente vinculadas de
estructuras EPROCESS, eso significa que cada elemento apunta al elemento anterior y posterior
a él (ver imagen 4.33).
El malware puede desvincular estas listas y esconder un proceso malicioso del comando pslist.
92
4.9. ANÁLISIS FORENSE DE UN EQUIPO INFECTADO (BOT)
El malware realiza esto a través de la manipulación directa de objetos Kernel (DKOM). Para ello,
posiblemente, el malware encuentra un proceso actual a través de PsGetCurrentProcess, luego
encuentran el EPROCESS para ocultarse, y luego cambie FLINK y BLINK para que apunte a
otra región de memoria válida.
93
CHAPTER 4. EXPERIMENTACIÓN PRÁCTICA
Sin embargo, se sabe [8] que esta versión de Zeus utiliza GUID (Los GUID strings son únicos
y aleatorios se podría manejar un mutex refiriendose a él) en lugar de mutex fijos con lo que
resulta dificil o imposible detectarlos.
También se conoce por [8] que las versiones nuevas de Zeus (a partir de la 2.0) estan
preparadas para poder “correr” varias instancias de Zeus de diferentes “Builders”. Esto difi-
culta su limpieza (podría haber mas de uno en funcionamiento) y explica por que se usan nombres
aleatorios en la generación de los archivos del bot y del uso de GUID en los mutex.
Hemos empleado dos programas de detección de malware para que nos muestren sus des-
cubrimientos en la máquina zombi donde esta alojado el Bot1. Hay que tener en cuenta que estas
herramientas se basan en “firmas” (hashes) y suelen requerir una conexión a internet para su
empleo.
La primera ha sido malwarebytes que nos ha dicho que nuestro dispositivo no tenia ninguna
94
4.9. ANÁLISIS FORENSE DE UN EQUIPO INFECTADO (BOT)
infeccion o malware, aunque mas adelante (al quedarse instalada en el equipo) si detectó el
software malicioso y lo puso en cuarentena.
La segunda (HitmanPro) los ha detectado y ha coincidido con mis sospechas anteriores. En la
imagen 4.37 se puede ver una muestra de lo encontrado por HitmanPro.
La aplicación nos ha detectado como archivos maliciosos tanga.exe, egpa.exe, drvhandler.exe
y las copias que teníamos del Bot Zeus y el Bot de Blue Botnet. Así pues esta herramienta
demuestra su eficacia y confirma nuestras sospechas con “tana” y “egpa”.
Vamos a emplear dos herramientas mas una relacionada con la dependencia entre archivos y
dll y la otra con análisis de malware de un archivo (Dependency Walker y PSEstudio). Ambas
se ejecutan de manera portable y solo requieren del archivo sospecho (en nuestro caso tana.exe,
egpa.exe y drvhandler.exe).
95
CHAPTER 4. EXPERIMENTACIÓN PRÁCTICA
Dependency Walker es una herramienta gratuita que escanea cualquier módulo de Windows
de 32 bits o 64 bits (exe, dll, ocx, sys, etc.) y crea un diagrama de árbol jerárquico de todos los
módulos dependientes. Para cada módulo encontrado, enumera todas las funciones que exporta
ese módulo, y cuáles de esas funciones están siendo llamadas por otros módulos. Otra vista
muestra el conjunto mínimo de archivos necesarios, junto con información detallada sobre cada
archivo, incluida una ruta completa al archivo, la dirección base, los números de versión, el tipo
de máquina, la información de depuración y más cosas. Para nuestros fines no hemos extraído
mucha información de ella, ya que no es el objetivo de este trabajo el realizar un análisis en
profundidad de este malware.
PEStudio nos ha parecido una herramienta muy útil pues tiene incluso un vinculo con virusto-
tal.com para el análisis de archivos. PEStudio implementa un amplio conjunto de características
que está especialmente diseñadas para recuperar cada detalle de cualquier archivo ejecutable.
Los resultados se comparan con las especificaciones de Microsoft. Además, el contenido del archivo
que se analiza se compara con varias listas y umbrales (blacklist and withelist).
Esta herramienta nos muestra como peligrosos los archivos tana.exe, egpa.exe y drhhandler.exe
(vemos la imagen 4.38 del análisis de drhhandler.exe), también nos muestra las dependencias
que este ejecutable tiene con sus dll. Esta herramienta compara los hashes obtenidos con los
encontrados en virustotal.com.
Por ultimo, se han analizados los archivos ejecutables también en la web virustotal.com. En
la imagen 4.39 vemos el análisis de tana.exe.
Para concluir nuestro análisis forense hemos realizado una búsqueda de las claves de registro
en busca de tana.exe, egpa.exe y/o drhhandler.exe y hemos encontrado que los archivos relativos
a Zeus tienen sus claves de registro en los siguientes path (como se puede ver en 4.40):
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run\tana.exe
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run\egpa.exe
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run\drhhandler.exe
Asi pues para esta versión de Zeus las variables de registro a eliminar o borrar estarán siempre
contenidas en “HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run\”.
Por otro lado, hemos encontrado trazas de “Bot.exe” (Bot de Blue Botnet) y de “drhhandler.exe”
en los registros que están relacionados con la tecnología RADAR que existe en Windows 7. Dichos
registros son:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\RADAR\HeapLeakDetection\
DiagnosedApplications\drvhandler.exe
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\RADAR\HeapLeakDetection\
DiagnosedApplications\Bot.exe
96
4.9. ANÁLISIS FORENSE DE UN EQUIPO INFECTADO (BOT)
RADAR [20] es una tecnología de detección de fugas de memoria integrada que permite a los
equipos de productos de Microsoft y a terceros descubrir y corregir fugas de memoria al principio
del ciclo del producto y después de su lanzamiento (podrían ser versiones Beta).
Esto nos indica que para el sistema operativo “algo no va bien” con estos dos ejecutables. Mas
concretamente, y sabiendo que una fuga de memoria (memory leaks) se produce cuando un bloque
de memoria reservada no es liberada en un programa de computación y que, además, se le suele
asociar a programación en C o C++ que realizan esa liberación de memoria nivel manual (otros
lenguajes lo hacen automáticamente) se presupone que la programación del Bot se ha podido
realizar en C o C++.
Después de todo el análisis forense realizado hemos verificado que esta versión de Zeus oculta
muy bien sus archivos y sus librerias. Para realizar esta ocultación, habitualmente este tipo de
malware usa técnicas que se conocen como “Hooking”.
La idea de “Hooking” [15] es la de conseguir que otra función legítima llame al kernel durante
el proceso para el malware. Este tipo de comportamiento hace que las aplicaciones e hilos (threads)
que son lanzados parezcan provenir de procesos “limpios” haciendo difícil su descubrimiento
incluso a través de técnicas forenses. Las formas para poder detectar este tipo de comportamiento
seria a través de la comprobación de dichas librerías y procesos con sus hashes (integridad) o a
través de ingeniería inversa.
Las técnicas de Hooking que se podrían aplicar son:
• Sustitución de la dirección de la función real (modificando las tablas IAT -Import Ad-
dress Table- o las tablas SSDT/IDT -Tablas de los servicios de sistema de windows o de
interrupciones-).
97
CHAPTER 4. EXPERIMENTACIÓN PRÁCTICA
• Sustitución directa de todo el componente de la aplicación del sistema (por ejemplo, sustitu-
ción de una biblioteca por una función maliciosa).
Hay que reseñar que (como se verá mas adelante durante la desinfección con ZbotKiller) Zeus
emplea IAT y splicing.
En el apartado 4.5.3 de este texto se señalaban los emplazamientos de los archivos relacionados
con el malware Zeus para las variantes 1, 2, 3 y 4, sin embargo, después de su búsqueda en el
equipo infectado, según esas indicaciones, no aparecieron ninguno de los archivos mencionados
en dicho apartado. Es por ello que se pueden realizar las siguientes conclusiones:
• Se confirma que la versión de Zeus empleada (2.1.0.1) no coincide con las variantes docu-
mentadas 1, 2, 3 y 4, por lo que se trata de una versión mas actual y no documentada (al
menos tras las búsquedas de ello realizadas por este alumno).
• Esta version de Zeus funciona (al menos) con los navegadores Explorer, Chrome y Firefox.
• Pueden existir en la misma máquina varias versiones del bot Zeus de diferentes compila-
ciones (Builder).
• Los dos ejecutables (tana.exe y egpa.exe) son bots Zeus (Zbot) ya que se probó la ejecución de
dos builders diferentes para comprobar el punto anterior. Ademas, se ha constatado que en
otras máquinas infectadas solo existe un archivo de los dos y el bot funciona perfectamente.
Sin embargo, drhhandler.exe es común a todas las máquinas infectadas.
• Los nombres de carpeta y archivos de este malaware son diferentes según el bot analizado
y aleatoriamente creados excepto (como ya se comentó) para drhhandler.exe.
98
4.10. DETECCIÓN, PROTECCION E INHABILITACION DE ZEUS
• Esta versión de Zeus no cambia las claves de registro habituales como winlogon.
• Este malware se ejecuta a través de una aplicacion como explorer.exe que es siempre
arrancada con la máquina. Es decir, hace que explorer.exe arranque los archivos maliciosos.
• Zeus crea o llama multitud de librerías y crea mutex específicos para su funcionamiento.
• Por todo ello su eliminación es mas compleja que con anteriores versiones. Ademas, no
necesita privilegios de usuario para infectar un equipo.
• http://securityengineer.pro/index.html
• https://www.spamcop.net/
• http://www.malwaredomainlist.com/
• http://www.team-cymru.org/
• https://www.evilfingers.com/index.php
• http://www.rootkitanalytics.com/
• https://www.autoshun.org/
• https://support.kaspersky.com/sp/viruses/disinfection
99
CHAPTER 4. EXPERIMENTACIÓN PRÁCTICA
En este apartado se quiere realizar una desinfección de manera manual (con la información
obtenida del análisis de las máquinas infectadas) y otra a través de una herramienta como
ZbotKiller. Esta última herramienta no necesiata conexión a internet para su funcionamiento.
• Arranque del dispositivo “en modo seguro” (en windows con F8 al arrancar).
• Búsqueda y borrado de las claves de registro relacionadas con esos archivos en el path
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run\.
100
4.11. CONCLUSIONES DEL ESTUDIO PRÁCTICO
101
HAPTER
5
C
C ONCLUSIONES Y T RABAJOS FUTUROS
Al principio de este trabajo se propuso una serie de objetivos a alcanzar durante todo el
desarrollo del mismo. Los objetivos planteados eran:
1. Explicar la taxonomía de infección, empleo y gestión de las botnets, así como su impacto en
internet.
3. Obtener unas conclusiones finales en las que se puedan reseñar los tipos de defensas que
se podrían establecer ante este tipo de ataques y/o empleos de métodos de detección.
4. Por último, obtener vías de estudio para un trabajo futuro vinculado a los botnets.
Es de reseñar que se han cumplido todos ellos y que, además, durante el desarrollo de este trabajo
se propuso uno adicional, sería el realizar un análisis de un equipo infectado para comprender
mejor como se oculta este malware y como podría ser detectado. Este objetivo también se cumplió
durante la parte práctica.
103
CHAPTER 5. CONCLUSIONES Y TRABAJOS FUTUROS
Las conclusiones obtenidas en este trabajo son innumerables, dado el hecho que durante este
texto se ha comenzado por un “estado del arte” de las botnets para ir conociendo como actúan
este tipo de redes. Mas adelante hemos conocido casos reales y su impacto en la sociedad,
llevándonos del terreno de lo intangible o teórico al terreno real. En los siguientes capítulos se ha
explicado de manera analítica los tipos de redes, formas de comunicación y su implementación
desde sus primeras apariciones hasta nuestros días. La ultima fase de este trabajo ha sido la
implementación práctico de varios ensayos en los que no solo se ha probado el uso de estas redes
en un entorno simulado y próximo a uno real, sino que se ha aprendido sus formas de ocultación,
la flexibilidad en su empleo, la peligrosidad de sus acciones y los medios de infección usados asi
como la defensa ante esta amenaza.
Antes de empezar a detallar las conclusiones obtenidas durante todo este trabajo quiero
poner de manifiesto la satisfación obtenida durante la realización de este trabajo, el cual me ha
llevado no solo a tener una perspectiva mas real de este tipo de malware, sino a conocer mas en
profundidad medios de ocultación en sistemas operativos, formas de ocultación en al red a través
de técnicas fast-flux, técnicas de análisis forense, conocimiento de herramientas diversas de
malware y anti-malware, conocer la labor de los cibercriminales y el mercado negro existente con
las botnets, pero sobre todo la percepción real de algo latente que existe, que no es una quimera o
algo oculto como un fantasma (como reza el titulo) sino que esta entre nosotros desde hace ya
muchos años, que vino para quedarse y que promete quedarse mucho mas tiempo.
Entre las conclusiones obtenidas podemos destacar las siguientes:
• Las botnets son muy desconocidas en la vida cotidiana y casi se asocia a algo teórico que no
afecta a la mayoría de los equipos (o personas).
• Este tipo de redes casi nacieron con la aparición de internet a través del uso de las redes
IRC, aunque su uso inicial fué con objetivos legítimos.
• Los medios de comunicación empleados por las botnets se basan en los mismos estándares
que cualquier comunicación legítima e incluso en módulos o partes de código obtenidos de
aplicaciones legales diseñadas para otros fines.
• El concepto de botnet y el de troyano, a veces, es difuso sobre todo en cuanto se refiere a los
bots desplegados en las máquinas zombis.
• Las botnets puede emplear cualquier tipo de topología utilizada actualmente, como son el
modelo cliente-servidor y el modelo P2P.
104
5.1. CONCLUSIONES OBTENIDAS A TRAVÉS DEL ENSAYO PRÁCTICO
• Nadie está a salvo de esta amenaza. Siempre que un usuario sea descuidado o que existan
bugs en los equipos informáticos toda máquina es susceptible de ser infectada por una
botnet.
• Este tipo de herramientas son interesantes no solo en el mundo criminal sino en el empre-
sarial y por países que pueden emplearlas para fines comerciales, políticos o estratégicos. A
este respecto se sospecha que ciertas botnets hayan podido ser auspiciadas por gobiernos.
• Como cualquier otro malware una botnet puede utilizar para propagarse vulnerabilidades
de día 0 (zero-day) que son las mas temidas y posiblemente generadas o conocidas e incluso
ocultadas por empresas y/o gobiernos.
• Es muy difícil poder encontrara al “BotMaster” pero aun mas difícil al creador de la botnet.
Incluso si la red es detectada e inhabilitada el localizar a los autores resulta una labor muy
compleja y, a veces, el poder demostrar sus acciones ante la justicia es imposible.
• La forma de ocultación de estas redes en internet cada día es más compleja poniendo en
serías dificultadas no solo su detección sino incluso su eliminación.
• El cifrado que estas redes utilizan, dificulta saber su forma de trabajo, su comunicación y
su funcionamiento a nivel del S.O. Las técnicas de ingeniería inversa se complican al estar
la información cifrada.
• La forma en la que este malware se oculta y esconde sus actividades en los equipos
infectados evoluciona constantemente y solo con técnicas de análisis forense somos capaces
de su descubrimiento.
• La detección y eliminación de estas redes se produce por que son previamente “conocidas”.
Cualquier botnet desconocida o con patrones de comunicaciones difíciles de detectar podría
estar operando durante años sin percibirlo.
105
CHAPTER 5. CONCLUSIONES Y TRABAJOS FUTUROS
• Este tipo de redes no siempre son el fin en si mismo, sino que a veces se utilizan como medio
de transporte de otro malware asociado como pasó con cryptolocker.
• El mundo de la descarga ilegal, de las aplicaciones gratuitas y del correo electrónico favorece
su difusión.
• El software malicioso empleado en la parte práctica no puede ser verificado por medio de
hash con lo que puede ser una vía para la propia infección del que lo emplea. El uso de
hashes para la comprobación de software gratuito es crucial, aunque la mayor parte de los
usuarios de internet no saben emplear esta herramienta.
• Aunque ya existe una colaboración manifiesta, queda mucho trabajo por desarrollar para
poder ganar la lucha contra este tipo de malware, si bien estimo que nunca dejarán de
operar estas redes. Pero, sin duda la única manera de ir venciendo en esta lucha se basa en
la colaboración entre las partes.
• Por último, queremos remarcar que el conocimiento técnico para desarrollar una nueva
botnet requiere de tiempo, esfuerzo, apoyo (personal y económico) y mucho, mucho tiempo.
Este alumno a desarrollado un trabajo relacionado con las botnets a nivel teórico y práctico pero
con una alcance delimitado debido al limite de tiempo y de recursos (muy importante). Aunque
está muy satisfecho de lo obtenido, la realidad es que las vías de trabajo futuro con respecto a
las botnets son enormes quedando, por tanto, mucho camino que recorrer en este campo. Como
propuesta de trabajos futuros a desarrollar en este mundo se quieren proponer, entre otros, los
siguientes:
• Realizar un estudio práctico de una botnet de tipo P2P (para sistemas de 64 bits).
• Realizar un estudio práctico de una botnet híbrida como Necurs (para sistemas de 64 bits).
• Realizar un estudio práctico de una botnet a través de dispositivos de seguridad como fire-
wall e IDS/IPS para poder adaptar, crear y configurar reglas especificas para su detección.
106
5.2. TRABAJOS FUTUROS SOBRE BOTNETS
• Realizar un estudio práctico de la información cifrada que envían los bots para poder ser
generada en texto claro.
• Hacer un estudio práctico sobre los patrones de comunicación detectables de este tipo de
redes en internet.
107
B IBLIOGRAPHY
[6] Botnets.
https://www.shadowserver.org/wiki/pmwiki.php/Information/Botnets.
109
BIBLIOGRAPHY
[18] Honeypots.
https://www.shadowserver.org/wiki/pmwiki.php/Information/Honeypots.
[19] How to secure your computer from malicious programs of trojan-spy.win32.zbot family.
https://support.kaspersky.com/viruses/disinfection/2020#block3.
110
BIBLIOGRAPHY
[27] New zeus source code based rootkit available for purchase on the underground market.
https://www.webroot.com/blog/2013/03/14/new-zeus-source-code-based.
[37] The top 10 most dangerous malware that can empty your bank account.
https://heimdalsecurity.com/blog/top-financial-malware/.
111
BIBLIOGRAPHY
[47] R. J. E NBODY, A. K. S OOD, AND R. B ANSAL, Cybercrime: Dissecting the state of underground
enterprise, IEEE Internet Computing, 17 (2013), pp. 60–68.
112