martes, 30 de abril de 2013

Una forma de elevar privilegios en linux

Hace algún tiempo escribí un par de posts en los que, mientras buscaba una forma de espiar la terminal de otro usuario, encontré también una manera para ejecutar comandos en su consola usando pseudoterminales y secuencias de escape.

Aprendido este nuevo truco, pense en buscar otros escenarios donde pudiera ser útil y es así como encontré una forma, algo rebuscada eso sí, de elevar privilegios en Linux.

Los detalles a continuación...

miércoles, 17 de abril de 2013

Tomando el control con UDF en Postgresql

Tanto Postgresql como MySQL soportan librerías UDF (User Defined Functions). Estas librerías permiten ampliar las funciones del DBMS y programar las nuestras propias en un lenguaje como C o C++. Esto nos puede permitir por ejemplo programar una función que llame a "system" y ejecute comandos en el sistema operativo desde una consulta SQL o, mejor aún, desde una inyección SQL. Este post trata de como "tomar el control" con una inyección SQL usando librerías UDF en Postgresql.

miércoles, 10 de abril de 2013

Compilar librería UDF "lib_postgresqludf_sys.so" para Sqlmap

Una de las formas de tomar control del sistema operativo mediante un SQLi en Postgresql (y también en MySQL) es mediante librerías UDF (User Defined Functions). Este mecanismo permite programar nuestras propias funciones en C/C++, compilarlas como una librería compartida (.so en linux y .dll en windows) y luego importarlas a la base de datos. Evidentemente, es necesario tener permisos de administrador en la DB.

Sqlmap, implementa esta técnica de explotación y viene con librerías precompiladas para distintas versiones de Postgresql y MySQL tanto para linux como para windows con arquitecturas de 32 o 64 bits. Para usarlas se utiliza el parámetro "--os-cmd" (para ejecutar comandos en el SO) o también "--os-pwn" (para ejecutar payloads de metasploit). Por ejemplo: