¿Quién
no fantaseó alguna vez con tener miles y miles de ordenadores bajo su
poder? No me refiero con el objetivo de desatar un caos o incluso robar
masivamente información, sino para simplemente, tener el profundo
sentimiento de "control". O hablando desde el otro "lado", a quién no se
le ocurrió la idea de desbaratar botnets alguna vez?, cazarlas por el
simple hecho de ver que ahí adentro, descubrir el número de máquinas
que cayeron bajo su poder? y quizá hasta tomar el control?. Bueno, este
post va dedicado a esta última fantasía.
¿Cómo encontramos una botnet?
Vamos a lo primero, para
cazar una botnet hay que localizarla, existen diversos servicios online
que se dedican al traceo de estas, en los que se publican el path del
C&C, información de los ejecutables usados para la infección, el
tipo de botnet, etc.
Cybercrime-tracker
La
cual mantiene archivado una gran diversidad de malware como la botnet
Blackhole, Citadel, Zeus, Pony, IceIX, VertexNet, entre otras.
Abuse.ch
Otra de gran utilidad es abuse.ch contando con un tracker para la Zeus, Feodo, Palevo y la SpyEye.
Posiblemente existan otras listas de botnets, pero por el momento son las únicas que conozco.
También
podemos hacer uso de algún motor de búsqueda como Google. Implementando
uno que otro google dork llevándonos por las estructura del panel que
deseemos localizar, por ejemplo, la ruta del C&C por defecto en la
botnet Zeus es el siguiente: /cp.php?m=login.
Código: Text
- inurl:/cp.php?m=login
De
ahí en mas podríamos ir variando, ya que probablemente el responsable
haya hecho algunas modificaciones al script, incluso cambiado el nombre,
en fin todo va en el ensayo y error. Tal vez nos topemos con alguna que
otra semi camuflada.
Código: Text
- intext:"Remember (MD5 cookies)" ext:php
Hosting1
Partamos por el punto de que una botnet puede estar montada en un:
-Servicio de hosting free
-Servicio de hosting pago
-Hosting hacked
-VPS
En mi caso, se hallaba alojada en lo que parecía ser un servicio de hosting pago, llamémoslo hosting1.com.
A
simple vista, me atrevía a decir que el encargado del malware obtuvo
acceso ilícito, por lo que lo mas seguro es que la web presentara alguna
que otra vulnerabilidad que me permitiese la entrada, si es que no fue
parcheada por el atacante, para alejar a los curiosos.
Realmente aún quedaba alguna que otra brecha.
Fijémonos, a ver que hay detrás del panel.
Un
upload bastante jodido y otra SQLI. Luego de realizar varios intentos
decidí dejar de lado la subida de ficheros, pero si podía inyectar
comandos en la db, solo tenía que buscar la tabla con las credenciales
de la botnet.
Por desgracia, no había rastros de la Zeus
Lo mas probable es que corra con un usuario diferente.
Después de navegar por la aplicación, me encontré con la zona de acceso a clientes.
Evidentemente
trabajaba con otro user ya que las credenciales del formulario no
estaban en la anterior base de datos. Así que me registré para ponerme
en busca de alguna inyección u otra abertura que me de acceso.
Al
rato, terminé por darme por vencido y decidí ir por otra vía, enumerar
los dominios en el servidor, tratar de acceder mediante alguno de ellos y
así escalar hasta hosting1.com.
Evilnet
El proveedor de hosting,
llamémoslo "Evilnet", por motivos obvios no voy a dar nombres. Evilnet
ofrece servicio de hosting, diseño y programación web, varios dominios
que pertenecen a Evilnet, usan la misma estructura de CMS, el mismo con
el que corre nuestro hosting1.com por acá tenemos otro similar y por
supuesto junto con la misma SQLI
Si no leíste el artículo "Engañando al WAF con XMP" podes ingresar al siguiente link donde detallo como conseguí acceso al servidor mediante hosting2.com.
Siguiendo con el apartado, cabe destacar algo interesante que me encontré mediante la recolección de información:
-Ambas webs usan el mismo password en el formulario de administración.
-Ambas webs cuentan con el mismo password en la base de datos (el mismo que usan para acceder al panel, no es joda!).
Parece
que el administrador de Evilnet no tiene buena memoria y prefiere usar
la misma llave para todo, podría apostar que este "descuido" por
llamarlo de manera elegante, se repite en los demás dominios bajo su
autoría. Con este criterio quién sabe, si llegara a probar, hasta me
podría cargar el facebook y el twitter del admin o hasta la sesión ssh
personal, espero no llegarle hasta abajo de la cama jeje!.
Pero
en fin, ya estaba dentro de hosting2.com, solo me faltaba escalar hasta
hosting1.com. Lo primero que hice fue tratar de leer el fichero de
configuración de la botnet que se encuentra en el directorio base
/system/config.php, mediante la creación de un enlace simbólico, pero
para mi mala suerte no funciono. Entonces recordé el descuido del
administrador e intente ingresar con la llave maestra por así decirlo,
mediante otro usuario en la db que pertenezca a hosting1.com, por lo que
veía, la estrutura de nombres tiene la siguiente regla:
"Nombre que hace referencia al dominio"_XXXXXXX
Ya había intentado loguearme como hosting1_xxxxxxx, entonces fui probando diversas combinaciones de usuarios.
Hasta que logré ingresar como hosting1 solamente, el cual tenia acceso a todas las dbs dentro de la aplicación.
Ya habiendo identificado la preciada base de datos.
Restaba consultar las credenciales en la tabla cp_users y rogar obtener el hash md5 en claro.
Afortunadamente el hashe del admin estaba presente en md5online.
La Zeus
Una vez dentro terminé un poco decepcionado al respecto, creí que podía encontrarme con una mayor cantidad de bots, y para peor no había uno solo en pie.
Aunque contaba con una respetable cantidad de reportes sobre credenciales pop3 y http.
Una cosa interesante, es que el reports path de la botnet apuntaba al home de hosting1.
Por lo tanto podía navegar libremente a través del file browser y descargar ficheros a diestra y siniestra.
De
no haber sido así, solo tenia que ir a options y editar el path con
tantos directorios transversales sean necesarios para llegar al home.
Estaria bueno que pongas la fuente de todos los articulos que tenes aca! como este que es mio! y no veo en ningun lugar la url de mi blog.
ResponderEliminar