Leer & oefen AWS Hacking:<imgsrc="/.gitbook/assets/arte.png"alt=""data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<imgsrc="/.gitbook/assets/arte.png"alt=""data-size="line">\
Leer & oefen GCP Hacking: <imgsrc="/.gitbook/assets/grte.png"alt=""data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<imgsrc="/.gitbook/assets/grte.png"alt=""data-size="line">](https://training.hacktricks.xyz/courses/grte)
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
> **Microsoft SQL Server** is 'n **relationele databasis** bestuurstelsel wat deur Microsoft ontwikkel is. As 'n databasisbediener is dit 'n sagtewareproduk met die primêre funksie om data te stoor en op te haal soos versoek deur ander sagtewaretoepassings—wat op dieselfde rekenaar of op 'n ander rekenaar oor 'n netwerk (insluitend die Internet) kan loop.\\
* **model Databasis**: Dien as 'n bloudruk vir elke nuwe databasis op die SQL Server-instansie, waar enige veranderinge soos grootte, kollasies, herstelmodel, en meer weerspieël word in nuut geskepte databasisse.
* **Resource Databasis**: 'n Lees-alleen databasis wat stelselaanwysers bevat wat saam met SQL Server kom. Hierdie voorwerpe, terwyl dit fisies in die Resource databasis gestoor word, word logies in die sys skema van elke databasis aangebied.
* **tempdb Databasis**: Dien as 'n tydelike stoorarea vir tydelike voorwerpe of tussenresultate.
As jy **nie****akkrediteer nie** het nie, kan jy probeer om dit te raai. Jy kan nmap of metasploit gebruik. Wees versigtig, jy kan **rekeninge blokkeer** as jy verskeie kere misluk om in te log met 'n bestaande gebruikersnaam.
SELECT * FROM <databaseName>.INFORMATION_SCHEMA.TABLES;
#List Linked Servers
EXEC sp_linkedservers
SELECT * FROM sys.servers;
#List users
select sp.name as login, sp.type_desc as login_type, sl.password_hash, sp.create_date, sp.modify_date, case when sp.is_disabled = 1 then 'Disabled' else 'Enabled' end as status from sys.server_principals sp left join sys.sql_logins sl on sp.principal_id = sl.principal_id where sp.type not in ('G', 'R') order by sp.name;
#Create user with sysadmin privs
CREATE LOGIN hacker WITH PASSWORD = 'P@ssword123!'
* **Server** – Voorbeelde sluit databasisse, aanmeldings, eindpunte, beskikbaarheidsgroepe, en server rolle in.
* **Database** – Voorbeelde dek databasisrol, toepassingsrolle, skemas, sertifikate, volle teks katalogusse, en gebruikers.
* **Schema** – Sluit tabelle, weergawes, prosedures, funksies, sinonieme, ens. in.
2.**Toestemming:** Geassosieer met SQL Server securables, toestemmings soos ALTER, CONTROL, en CREATE kan aan 'n prinsiep toegeken word. Bestuur van toestemmings vind op twee vlakke plaas:
* **Server Vlak** met behulp van aanmeldings
* **Database Vlak** met behulp van gebruikers
3.**Prinsiep:** Hierdie term verwys na die entiteit wat toestemming ontvang om toegang te verkry tot 'n securable. Prinsipes sluit hoofsaaklik aanmeldings en databasisgebruikers in. Die beheer oor toegang tot securables word uitgeoefen deur die toekenning of weiering van toestemmings of deur aanmeldings en gebruikers in rolle met toegangregte in te sluit.
Let daarop dat dit nie net nodig is om **`xp_cmdshell`** **geaktiveer** te hê nie, maar ook om die **EXECUTE toestemming op die `xp_cmdshell` gestoor prosedure** te hê. Jy kan uitvind wie (behalwe sysadmins) **`xp_cmdshell`** kan gebruik met:
[**Lees hierdie pos**](../../windows-hardening/active-directory-methodology/abusing-ad-mssql.md) **om meer inligting te vind oor hoe om hierdie funksie te misbruik:**
Om lêers te skryf met `MSSQL`, moet ons **Ole Automation Procedures** [**aktiveer**](https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/ole-automation-procedures-server-configuration-option), wat administratiewe regte vereis, en dan 'n paar gestoor prosedures uitvoer om die lêer te skep:
Standaard laat `MSSQL` lêer **lees op enige lêer in die bedryfstelsel waartoe die rekening lees toegang het**. Ons kan die volgende SQL-navraag gebruik:
SELECT * FROM fn_my_permissions(NULL, 'SERVER') WHERE permission_name='ADMINISTER BULK OPERATIONS' OR permission_name='ADMINISTER DATABASE BULK OPERATIONS';
MSSQL kan jou toelaat om **skripte in Python en/of R** uit te voer. Hierdie kode sal uitgevoer word deur 'n **ander gebruiker** as die een wat **xp\_cmdshell** gebruik om opdragte uit te voer.
Microsoft SQL Server bied **meervoudige uitgebreide gestoor prosedures** wat jou toelaat om nie net met die netwerk te kommunikeer nie, maar ook met die lêerstelsel en selfs die [**Windows Registrasie**](https://blog.waynesheffield.com/wayne/archive/2017/08/working-registry-sql-server/)**:**
EXECUTE master.sys.xp_instance_regwrite 'HKEY_LOCAL_MACHINE', 'Software\Microsoft\MSSQLSERVER\SQLServerAgent\MyNewKey', 'MyNewValue', 'REG_SZ', 'Now you see me!';
Dit is moontlik om **'n .NET dll binne MSSQL te laai met pasgemaakte funksies**. Dit, egter, **vereis `dbo` toegang** so jy het 'n verbinding met die databasis **as `sa` of 'n Administrateur rol**.
Daar is ander metodes om opdraguitvoering te verkry, soos om [uitgebreide gestoor prosedures](https://docs.microsoft.com/en-us/sql/relational-databases/extended-stored-procedures-programming/adding-an-extended-stored-procedure-to-sql-server) by te voeg, [CLR Assemblies](https://docs.microsoft.com/en-us/dotnet/framework/data/adonet/sql/introduction-to-sql-server-clr-integration), [SQL Server Agent Jobs](https://docs.microsoft.com/en-us/sql/ssms/agent/schedule-a-job?view=sql-server-ver15), en [buitensporige skripte](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-execute-external-script-transact-sql).
As 'n **gewone gebruiker** die rol **`db_owner`** oor die **databasis besit deur 'n admin** gebruiker (soos **`sa`**) gegee word en daardie databasis as **`trustworthy`** geconfigureer is, kan daardie gebruiker hierdie voorregte misbruik om **privesc** te verkry omdat **gestoor prosedures** wat daarin geskep is, kan **uitvoer** as die eienaar (**admin**).
SQL Server het 'n spesiale toestemming, genaamd **`IMPERSONATE`**, wat **die uitvoerende gebruiker toelaat om die toestemmings van 'n ander gebruiker** of aanmelding aan te neem totdat die konteks gereset word of die sessie eindig.
As jy 'n gebruiker kan naboots, selfs al is hy nie 'n sysadmin nie, moet jy kyk of die gebruiker toegang het tot ander **databases** of gekoppelde bedieners.
'n Aanvaller kan SQL Server Linked Servers wagwoorde uit die SQL Instansies onttrek en dit in duidelike teks verkry, wat die aanvaller wagwoorde gee wat gebruik kan word om 'n groter voet aan die grond op die teiken te verkry. Die skrip om die wagwoorde wat vir die Linked Servers gestoor is, te onttrek en te ontsleutel, kan [hier](https://www.richardswinbank.net/admin/extract\_linked\_server\_passwords) gevind word.
Sommige vereistes en konfigurasies moet gedoen word sodat hierdie ontploffing kan werk. Eerstens moet jy Administrateurregte op die masjien hê, of die vermoë om die SQL Server Konfigurasies te bestuur.
Om hierdie konfigurasies te outomatiseer, het [hierdie berging](https://github.com/IamLeandrooooo/SQLServerLinkedServersPasswords/) die nodige skripte. Benewens 'n powershell-skrip vir elke stap van die konfigurasie, het die berging ook 'n volledige skrip wat die konfigurasieskripte en die onttrekking en ontsleuteling van die wagwoorde kombineer.
Vir verdere inligting, verwys na die volgende skakels rakende hierdie aanval: [Ontsleuteling van MSSQL Databasis Link Server Wagwoorde](https://www.netspi.com/blog/technical/adversary-simulation/decrypting-mssql-database-link-server-passwords/)
[Troubleshooting die SQL Server Toegewyde Administrateur Verbinding](https://www.mssqltips.com/sqlservertip/5364/troubleshooting-the-sql-server-dedicated-administrator-connection/)
Microsoft SQL Server is a relational database management system developed by Microsoft. As a database server, it is a software product with the primary function of storing and retrieving data as requested by other software applications—which may run either on the same computer or on another computer across a network (including the Internet).
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.