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.

SQL Injection a Shell

  • 13 Respuestas
  • 4243 Vistas

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

Desconectado nuclan

  • *
  • Underc0der
  • Mensajes: 22
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« en: Septiembre 01, 2015, 11:23:09 am »
Buenas, estoy realizando un pentest a una web y le encontré una inyección SQL la cual tiene privilegios root de mysql y puedo leer /etc/passwd

Quiero subir shell pero no se el path completo de la web, tampoco hay ningún FPD por la web, por lo que debo sacar el path por lógica o mediante el LOAD_FILE()

Se que el servidor es nginx, he probado a intentar cargar los archivos por defecto de access.log y error.log para que me tire el path de la web pero no lo encuentro, por eso pido ayuda si alguien puede darme algún consejo para conseguir el path completo, como por ejemplo otras rutas de error.log de nginx u otro método para sacar el path teniendo LOAD_FILE()

Saludos y gracias de antemano.
« Última modificación: Septiembre 02, 2015, 01:27:51 pm por Expermicid »

Desconectado EPSILON

  • *
  • Underc0der
  • Mensajes: 364
  • Actividad:
    0%
  • Reputación 0
  • epsilon@crypt.am
    • Ver Perfil
  • Skype: epsilon.root1
« Respuesta #1 en: Septiembre 01, 2015, 11:36:07 pm »
@No tienes permisos para ver links. Registrate o Entra con tu cuenta lo que se me ocurre es que con LOAD_FILE() trates de cargar algún archivo de configuración que pueda contener el path del servidor como el típico "config.php", o si no buscar por reverseip las webs alojadas en el mismo server y tratar de ver si alguna tiene FPD y te pueda decir la ruta del servidor para inyectar la shell, y si no pudiste con ninguna de las ideas que te di, proba con algún bruteforce que trate de a "adivinar" la ruta del server, como por ejemplo el que trae SQLMap.

Saludos!

Desconectado nuclan

  • *
  • Underc0der
  • Mensajes: 22
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« Respuesta #2 en: Septiembre 02, 2015, 07:01:47 am »
No tienes permisos para ver links. Registrate o Entra con tu cuenta
@No tienes permisos para ver links. Registrate o Entra con tu cuenta lo que se me ocurre es que con LOAD_FILE() trates de cargar algún archivo de configuración que pueda contener el path del servidor como el típico "config.php", o si no buscar por reverseip las webs alojadas en el mismo server y tratar de ver si alguna tiene FPD y te pueda decir la ruta del servidor para inyectar la shell, y si no pudiste con ninguna de las ideas que te di, proba con algún bruteforce que trate de a "adivinar" la ruta del server, como por ejemplo el que trae SQLMap.

Saludos!
@No tienes permisos para ver links. Registrate o Entra con tu cuenta ya conseguí sacar el path de la web, para quien lo quiera saber lo que hice fue leer el archivo de configuracion que estaba en /etc/nginx/nginx.conf

El problema es que leer archivos si tengo permiso, pero escribir no. Ni siquiera en /tmp, algo que no entiendo muy bien ya que cuando inyecté para ver los permisos todo me tiraba "Y" y "root". Leyendo ficheros he sacado hasta la contraseña de root de mysql pero los servidores de base de datos he visto que estan en su red local y sin subir una shell no puedo hacer pivoting.

Tambien pense en usar la opcion --sql-shell de sqlmap y logearme como root para desde ahi hacer INTO OUTFILE, pero tampoco funciona esa shell.

No se si a alguien se le ocurre alguna otra idea que me ilumine, pero por le momento no se me ocurre que mas intentar.

Saludos
« Última modificación: Septiembre 02, 2015, 07:04:27 am por nuclan »

Desconectado EPSILON

  • *
  • Underc0der
  • Mensajes: 364
  • Actividad:
    0%
  • Reputación 0
  • epsilon@crypt.am
    • Ver Perfil
  • Skype: epsilon.root1
« Respuesta #3 en: Septiembre 02, 2015, 02:37:42 pm »
La verdad que es raro, por que si tenes en YES el permiso FILE() en MYSQL  tendrías que poder crear un archivo y subir una shell tranquilamente, ya que la única limitación que tiene es que no se pueden sobre escribir archivos ya creados. Ahora lo que mas me llamo la atención es que no te deje escribir en /tmp/ siendo un directorio que siempre tiene permisos de escritura (por cierto no es accesible desde la web, por lo que no tiene sentido subir algo ahí), yo  diría que nginx.conf no te dio bien la ruta del servidor, yo tengo una shell en un servidor con nginx y la ruta que da ese archivo (/var/www/) no es para nada la misma de donde esta la web vulnerable (/websites/site.com/ ) por lo que FILE no encuentra ruta para escribir la shell.

PD: Cuando tengas bien la ruta te recomiendo meter la shell directamente en un directorio de uploads de imágenes, casi siempre tienen permisos 777

Saludos!

Desconectado nuclan

  • *
  • Underc0der
  • Mensajes: 22
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« Respuesta #4 en: Septiembre 02, 2015, 04:24:48 pm »
No tienes permisos para ver links. Registrate o Entra con tu cuenta
La verdad que es raro, por que si tenes en YES el permiso FILE() en MYSQL  tendrías que poder crear un archivo y subir una shell tranquilamente, ya que la única limitación que tiene es que no se pueden sobre escribir archivos ya creados. Ahora lo que mas me llamo la atención es que no te deje escribir en /tmp/ siendo un directorio que siempre tiene permisos de escritura (por cierto no es accesible desde la web, por lo que no tiene sentido subir algo ahí), yo  diría que nginx.conf no te dio bien la ruta del servidor, yo tengo una shell en un servidor con nginx y la ruta que da ese archivo (/var/www/) no es para nada la misma de donde esta la web vulnerable (/websites/site.com/ ) por lo que FILE no encuentra ruta para escribir la shell.

PD: Cuando tengas bien la ruta te recomiendo meter la shell directamente en un directorio de uploads de imágenes, casi siempre tienen permisos 777

Saludos!
Exacto, se que escribir en /tmp es una tonteria sin un LFI, pero sabiendo que ahi siempre hay permisos de escritura queria comprobar si la consulta devolvía false al igual que si intento escribir en el path de la web.
La ruta que me dio nginx.conf esta perfecta, ya que con LOAD_FILE() me he visto el codigo fuende de media web xD
El usuario en sí no es root, pero tiene privilegios de tal, te adjunto una imagen para que lo veas. La verdad es que es raro y deberia dejar de escribir.

Si quieres verlo tu mismo podemos hacer un teamviwer y te haces una idea de lo que pasa
Saludos amigo
« Última modificación: Septiembre 18, 2015, 09:17:44 am por nuclan »

Desconectado EPSILON

  • *
  • Underc0der
  • Mensajes: 364
  • Actividad:
    0%
  • Reputación 0
  • epsilon@crypt.am
    • Ver Perfil
  • Skype: epsilon.root1
« Respuesta #5 en: Septiembre 03, 2015, 03:53:10 am »
Mi conexión a Internet esta bajisima y por el momento apenas puedo ingresar al foro. Esos datos están bien y tendría que dejarte crear un archivo, proba como te dije anteriormente en un directorio de imágenes  o alguno que veas en la estructura de la web y que parezca con permisos para eso, y si no, lo único que se me ocurre es que la inyección puede estar mal.

Desconectado nuclan

  • *
  • Underc0der
  • Mensajes: 22
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« Respuesta #6 en: Septiembre 03, 2015, 04:29:49 pm »
No tienes permisos para ver links. Registrate o Entra con tu cuenta
Mi conexión a Internet esta bajisima y por el momento apenas puedo ingresar al foro. Esos datos están bien y tendría que dejarte crear un archivo, proba como te dije anteriormente en un directorio de imágenes  o alguno que veas en la estructura de la web y que parezca con permisos para eso, y si no, lo único que se me ocurre es que la inyección puede estar mal.

@No tienes permisos para ver links. Registrate o Entra con tu cuenta He probado a intentar subirlo a otros directorios sin éxito, como ya me temia. Si no me deja escribir en /tmp, difícilmente me dejara escribir en otros directorios. Quiza sea que mysql si tiene permisos pero no el servidor nginx. Si me dejara conectarme con --sql-shell de sqlmap podria intentar acceder a otros servidores de base de datos de su red local ya que tengo las credenciales pero esa función no me funciona en sqlmap y manual, la verdad no se como hacerlo, he googleado pero sin resultados.

Y sino, aprobechando que tengo LOAD_FILE() que mas archivos podría cargar para intentar conseguir algo útil? tipo a logs para ftp,comandos de sistema como .bash_history...etc

Desconectado EPSILON

  • *
  • Underc0der
  • Mensajes: 364
  • Actividad:
    0%
  • Reputación 0
  • epsilon@crypt.am
    • Ver Perfil
  • Skype: epsilon.root1
« Respuesta #7 en: Septiembre 03, 2015, 09:46:17 pm »
Primero diría que quizás la inyección pueda estar mal echa y por eso no crea el archivo, y por otra parte podrías fijarte si los datos de logeo a la DB MYSQL concuerdan con los del FTP (Me ocurrió muchas veces), y esos logs que nombras de ftp y .bash_history no creo que te sirvan de mucho, y como ultima medida quizas con un reverse ip puedas llegar a esa web.

Saludos!

Desconectado nuclan

  • *
  • Underc0der
  • Mensajes: 22
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« Respuesta #8 en: Septiembre 04, 2015, 04:56:38 pm »
No tienes permisos para ver links. Registrate o Entra con tu cuenta
Primero diría que quizás la inyección pueda estar mal echa y por eso no crea el archivo, y por otra parte podrías fijarte si los datos de logeo a la DB MYSQL concuerdan con los del FTP (Me ocurrió muchas veces), y esos logs que nombras de ftp y .bash_history no creo que te sirvan de mucho, y como ultima medida quizas con un reverse ip puedas llegar a esa web.

Saludos!
La inyecion esta bien, no es nada del otro mundo. El select 1,2,3,4,0x333c3c3c.... into outfile '/var/www/web/imagenes/file.php'. Es más, el sqlmap tampoco puede subir la shell con los dos metodos que tiene. Hice un reverse DNS y un lookup de dominios, que metiro el del webmail, subdominio de admin y otros. Ya probe a conectarme al puerto de mysql que me consta en los archivos de configuracion pero parece ser que no aceptan conexiones desde fuera de la red local, como suele ocurrir. Tendre que correr un nmap en todos los servidores que encuentre para encontrar el puerto ssh y ftp que estan cambiados y probar con las credenciales de mysql. Otra cosa ya no se me ocurre

EDIT: no usan ftp, solo ssh y no permite logear con usuario y contraseña, solo con llave RSA. La version mas desactualizada que he encontrado ha sido OpenSSH 6.0.p1
« Última modificación: Septiembre 04, 2015, 06:27:35 pm por nuclan »

Desconectado manaos

  • *
  • Underc0der
  • Mensajes: 1
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« Respuesta #9 en: Octubre 02, 2015, 06:10:19 am »
que tal NUCLAN, me preguntaba si lograste hacer algo con esto?

tengo exactamente el mismo problema solamente que yo si puedo escribir en /tmp .... pero no me deja en el /www/web/dir ...

de hecho mi injeccion es tanto por sqlmap como manual ... y manual me da error:

Can't create/write to file '/var/www/web/udx.php' (Errcode: 13)

si alguien sabe como lograr escribir sin tener permisos alli ...

Desconectado nuclan

  • *
  • Underc0der
  • Mensajes: 22
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« Respuesta #10 en: Octubre 03, 2015, 06:33:59 am »
No tienes permisos para ver links. Registrate o Entra con tu cuenta
que tal NUCLAN, me preguntaba si lograste hacer algo con esto?

tengo exactamente el mismo problema solamente que yo si puedo escribir en /tmp .... pero no me deja en el /www/web/dir ...

de hecho mi injeccion es tanto por sqlmap como manual ... y manual me da error:

Can't create/write to file '/var/www/web/udx.php' (Errcode: 13)

si alguien sabe como lograr escribir sin tener permisos alli ...
No amigo, debe tener restricción de escritura en esas carpetas vía apache.
Prueba a intentar escribir la shell en carpetas de imágenes que suelen tener permisos 755.
Si no te funciona, te puedo aconsejar que mediante load_file() vayas leyendo el código fuente y buscando otras vulnerabilidades.
si encuentras un LFI ya esta todo hecho, simplemente subiendo la shell a /tmp y cargándola con el LFi

Saludos

Desconectado ezephp

  • *
  • Underc0der
  • Mensajes: 46
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« Respuesta #11 en: Noviembre 19, 2015, 09:35:15 pm »
nuclan, no usan ftp??, son muchos dominios alojados ahi?, si la respuesta es "si" entonces tiene q tener sftp....

Se me ocurre q veas el config.php de los demas dominios, y si encontras el sftp podes probar dichas credenciales de mysql en el sftp, quizas alguna sea igual para entrar. Tambien las mismas creedenciales las podes probar en el admin (directorio de cada web).

Y sino la mas simple la cual todavia no vi que te hayan recomendado hasta el momento es... tenes un SQL, podes consultar la DB, fijate si podes ver todas las DB's, el objetivo es lograr encontrar las creedenciales del admin de alguna web, entrar al admin de la web y buscar un upload, bypasseas el upload y listo.

Saludos.

Desconectado nuclan

  • *
  • Underc0der
  • Mensajes: 22
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« Respuesta #12 en: Diciembre 27, 2015, 07:09:56 pm »
No tienes permisos para ver links. Registrate o Entra con tu cuenta
nuclan, no usan ftp??, son muchos dominios alojados ahi?, si la respuesta es "si" entonces tiene q tener sftp....

Se me ocurre q veas el config.php de los demas dominios, y si encontras el sftp podes probar dichas credenciales de mysql en el sftp, quizas alguna sea igual para entrar. Tambien las mismas creedenciales las podes probar en el admin (directorio de cada web).

Y sino la mas simple la cual todavia no vi que te hayan recomendado hasta el momento es... tenes un SQL, podes consultar la DB, fijate si podes ver todas las DB's, el objetivo es lograr encontrar las creedenciales del admin de alguna web, entrar al admin de la web y buscar un upload, bypasseas el upload y listo.

Saludos.
Pues el tema es que no es un servidor compartido. Es justo todo lo contrario, son varios servidores para una misma web
Aún sigo sin poder subir shell xD

Desconectado q3rv0

  • *
  • Underc0der
  • Mensajes: 207
  • Actividad:
    0%
  • Reputación 1
  • %ERRORLEVEL%
    • Ver Perfil
    • q3rv0
    • Email
« Respuesta #13 en: Diciembre 27, 2015, 09:18:39 pm »
Hola @No tienes permisos para ver links. Registrate o Entra con tu cuenta, me tiene intrigado ese target, muchas veces encontramos graves agujeros de seguridad, pero eso no significa que en su mayoria nos den acceso al server, o bien no sea facil conseguirlo, pero en este caso confio en que tiene que haber alguna manera de entrar. Si no te molesta pasarme la url por privado para testear, ando con tiempo de sobra!.

Saludos!.
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

 

¿Te gustó el post? COMPARTILO!



Cómo usar Shell para obtener en texto plano contraseñas en Windows 7/10?

Iniciado por Criss

Respuestas: 3
Vistas: 1862
Último mensaje Junio 22, 2017, 08:18:03 am
por animanegra
[SOLUCIONADO] ¿Como saber si tiene Shell o algo maliciosos este script ?

Iniciado por bacanzito

Respuestas: 5
Vistas: 2056
Último mensaje Julio 27, 2013, 06:36:43 pm
por blackdrake
[SOLUCIONADO] Injection SQL , Remote File , Local File

Iniciado por wooooph

Respuestas: 5
Vistas: 1555
Último mensaje Septiembre 19, 2016, 01:23:58 am
por seth
Borrar Logs desde una shell cargada en un servidor.

Iniciado por Hax0r_666

Respuestas: 12
Vistas: 2884
Último mensaje Julio 31, 2015, 08:01:24 am
por rand0m
[SOLUCIONADO] Ayuda con Shell Hacking Server Redes

Iniciado por darknerk

Respuestas: 2
Vistas: 1248
Último mensaje Febrero 17, 2014, 06:22:38 pm
por s3cur1tyr00t