(http://1.bp.blogspot.com/-1eQg62wJHX0/VZ7s98FDEbI/AAAAAAAAAps/5vY8cFLVzu0/s320/cazador.jpg)
By [Q]3rV[0]
Quien no fantaseo 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 quien no se le ocurrio la idea de desbaratar botnets alguna vez?, cazarlas por el simple echo de ver que ahí adentro, descubrir el numero de maquinas que cayeron bajo su poder? y quizá hasta tomar el control?. Bueno, este post va dedicado a esta ultima fantasía.
Como 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 (http://2.bp.blogspot.com/-hY4K4bwm-ZM/VZm3TAqPJqI/AAAAAAAAAlc/Mi293JstXIw/s1600/2.png)
La cual mantiene archivado una gran diversidad de malware como la botnet Blackhole, Citadel, Zeus, Pony, IceIX, VertexNet entre otras.
(http://4.bp.blogspot.com/-kqdFOuCuNp8/VZm3qq9WrvI/AAAAAAAAAlk/3YPc9w_301I/s1600/3.png)
Abuse.chOtra de gran utilidad es abuse.ch contando con un tracker para la Zeus, Feodo, Palevo y la SpyEye.
(http://2.bp.blogspot.com/-hzT8MRbaLxo/VZm45aL5rdI/AAAAAAAAAl0/1Zb-rjHL9pk/s1600/4.png)
Posiblemente existan otras listas de botnets, pero por el momento son las unicas 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.
inurl:/cp.php?m=login
De ahí en mas podríamos ir variando, ya que probablemente el responsable haya echo 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.
inurl:/adm.php?m=login
intext:"Remember (MD5 cookies)" ext:php
Hosting1Partamos 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.
(http://3.bp.blogspot.com/-ppnAS092r7o/VZnCQDmQL9I/AAAAAAAAAmE/zA88ywMxQDc/s1600/panel.png)
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 aun quedaba alguna que otra brecha.
(http://3.bp.blogspot.com/-9y2f5vRWTTU/VZnDOtnMELI/AAAAAAAAAmM/dkXE44dp_sA/s1600/5.png)
Fijémonos haber que hay detrás del panel.
(http://4.bp.blogspot.com/-3tsAobvKvXU/VZnEKpzI06I/AAAAAAAAAmY/dSJtbBtep3I/s1600/6.png)
(http://1.bp.blogspot.com/-bvSlokqzfJc/VZnEzXVQQMI/AAAAAAAAAmo/_IA-u-ULHXY/s1600/7.png)
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 tenia que buscar la tabla con las credenciales de la botnet.
(http://2.bp.blogspot.com/-zPQ_9kf4Ytk/VZmyvCP9BNI/AAAAAAAAAlQ/qUa0AHS_-UY/s1600/dbzeus.png)
Por desgracia no había rastros de la Zeus.
(http://1.bp.blogspot.com/-_hsefoDRhgs/VZ22VeF3hiI/AAAAAAAAAm8/XgIGnxYgZGs/s1600/db_materno.png)
Lo mas probable es que corra con un usuario diferente.
(http://3.bp.blogspot.com/-VKzvAbWQ5r8/VZ3EVRwA8_I/AAAAAAAAAnk/B8QUsgWKjHs/s1600/user-db.png)
Después de navegar por la aplicación, me encontré con la zona de acceso a clientes.
(http://2.bp.blogspot.com/-oF-n4bG8MI8/VZ23woRmRGI/AAAAAAAAAnI/wqUXclhnf68/s1600/acceso_clientes.png)
Evidentemente trabajaba con otro user ya que las credenciales del formulario no estaban en la anterior base de datos. Así que me registre para ponerme en busca de alguna inyección u otra abertura que me de acceso.
Al rato termine por darme por vencido y decidí ir por otra via, enumerar los dominios en el servidor, tratar de acceder mediante alguno de ellos y así escalar hasta hosting1.com.
EvilnetEl 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 :)
(http://4.bp.blogspot.com/-kol3ojEHA-o/VZ2_y2Gvb-I/AAAAAAAAAnc/K8DQAueUXAg/s1600/login_hosting2.png)
Si no leíste el articulo "Engañando al WAF con XMP" podes ingresar al siguiente link (http://www.securitysignal.org/2015/05/enganando-el-waf-con-xmp.html) 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!).
(http://1.bp.blogspot.com/-Z-BLymwqX3I/VZ3XAxTKAcI/AAAAAAAAAoA/2mnHU_o4P-I/s1600/conf.png)
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 quien 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 logre ingresar como hosting1 solamente, el cual tenia acceso a todas las dbs dentro de la aplicación.
(http://2.bp.blogspot.com/-CvTT9J1koe8/VZ3Vc8Ib5rI/AAAAAAAAAn0/FWjIur3erpo/s1600/dbs.png)
Ya habiendo identificado la preciada base de datos.
(http://4.bp.blogspot.com/-Cr4OEHcrdew/VZ3aEA7hEgI/AAAAAAAAAoM/vNpJ7_9axN8/s1600/db_zeus.png)
Restaba consultar las credenciales en la tabla cp_users y rogar obtener el hash md5 en claro.
(http://2.bp.blogspot.com/-U93VW2Q8q2w/VZ3a9f_XJgI/AAAAAAAAAoU/nxxBChJSkfo/s1600/admin.png)
Afortunadamente el hashe del admin estaba presente en md5online.
(http://1.bp.blogspot.com/-BFOp4gfL4AY/VZ3cHgtaKDI/AAAAAAAAAog/DnwSu_ld3KM/s1600/hash.png)
La ZeusUna vez dentro termine 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.
(http://2.bp.blogspot.com/-Hl8sSZD7K_U/VZ3fSrC4u_I/AAAAAAAAAos/RULPk2xcxW0/s1600/bots.png)
Aunque contaba con una respetable cantidad de reportes sobre credenciales pop3 y http.
(http://4.bp.blogspot.com/-SRZ7DGf6TSY/VZ7iGCGZHqI/AAAAAAAAApA/MymM5UKD9-E/s1600/reports.png)
Una cosa interesante, es que el reports path de la botnet apuntaba al home de hosting1.
(http://2.bp.blogspot.com/-rQZ9XKL0MDE/VZ7quIKtCGI/AAAAAAAAApQ/ldrQzyTQkiw/s1600/paths.png)
Por lo tanto podía navegar libremente a través del file browser y descargar ficheros a diestra y siniestra.
(http://2.bp.blogspot.com/-Fdd7Hbj45X0/VZ7rI0vfvBI/AAAAAAAAApY/_IT7EupKbRE/s1600/file_browser.png)
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.
(http://4.bp.blogspot.com/-q9ib50b8lBY/VZ7reyXMllI/AAAAAAAAApg/u7GFrVNgXOE/s1600/back.png)
Fuente: SecuritySignal (http://www.securitysignal.org/2015/07/cazador-de-botnets-zeus.html)
Muy buen aporte, claro y bien explicado.
Gran trabajo @q3rv0 (https://underc0de.org/foro/index.php?action=profile;u=10091)
Muy buena info. @q3rv0 (https://underc0de.org/foro/index.php?action=profile;u=10091) ! La verdad nunca se me dio por buscar botnets en hostings, pero con este post quizás me ponga a ver algo. jaja
Saludos!
Yo un día robé una botnet que tenía algún sistema de la interpol infectado, aún guardo las capturas de pantalla :)
Y respeto al aporte, insuperable muy bien estructurado y un contenido excepcional, me quito el sombrero ante usted.
La única que te puedo pasar públicamente es esta que la pasé a un contacto en su día por whatsapp las otras si mal no recuerdo las tengo por un HDD perdidas, la botnet era una Citadel y para obtener el acceso vulneré el servidor en bruto.
(http://i.imgur.com/bC3CxMu.jpg)
COmo uno podria saber sis esta infectado de cualquier botnet o ser una maquina zombie
Algunos COnsejillos
realmente muy completo el post , undercode necesita mas usuarios como tu :)
Muy gráfico, he podido verlo como si fuera en primera persona.
Aportes así demuestran que el ingenio también es una herramienta fuerte y que si la combinas con los conocimientos de hacking haces maravillas.