<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Ειδικός Red Team του HackTricks για το AWS)</strong></a><strong>!</strong></summary>
*Αν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks** ή να**κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στη [**ομάδα τηλεγραφήματος**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
> **Ο Microsoft SQL Server** είναι ένα **σύστημα διαχείρισης βάσεων δεδομένων** που αναπτύχθηκε από τη Microsoft. Ως διακομιστής βάσης δεδομένων, είναι ένα προϊόν λογισμικού με την κύρια λειτουργία την αποθήκευση και ανάκτηση δεδομένων όπως ζητείται από άλλες εφαρμογές λογισμικού - οι οποίες μπορεί να εκτελούνται είτε στον ίδιο υπολογιστή είτε σε άλλο υπολογιστή μέσω δικτύου (συμπεριλαμβανομένου του Διαδικτύου).\\
* **Βάση δεδομένων master**: Αυτή η βάση δεδομένων είναι κρίσιμη καθώς καταγράφει όλες τις λεπτομέρειες σε επίπεδο συστήματος για μια περίπτωση SQL Server.
* **Βάση δεδομένων msdb**: Ο SQL Server Agent χρησιμοποιεί αυτήν τη βάση δεδομένων για τη διαχείριση του προγραμματισμού για ειδοποιήσεις και εργασίες.
* **Βάση δεδομένων model**: Λειτουργεί ως σχέδιο για κάθε νέα βάση δεδομένων στην περίπτωση του SQL Server, όπου οποιεσδήποτε αλλαγές όπως μέγεθος, συλλογή, μοντέλο ανάκτησης και άλλα αντικατοπτρίζονται σε νεοδημιουργημένες βάσεις δεδομένων.
* **Βάση δεδομένων Resource**: Μια βάση δεδομένων μόνο για ανάγνωση που φιλοξενεί συστημικά αντικείμενα που συνοδεύουν το SQL Server. Αυτά τα αντικείμενα, ενώ αποθηκεύονται φυσικά στη βάση δεδομένων Resource, παρουσιάζονται λογικά στο σχήμα sys κάθε βάσης δεδομένων.
Αν**δεν έχετε διαπιστευτήρια**, μπορείτε να προσπαθήσετε να τα μαντέψετε. Μπορείτε να χρησιμοποιήσετε το nmap ή το metasploit. Να είστε προσεκτικοί, μπορείτε να**φράξετε λογαριασμούς**αν αποτύχετε να συνδεθείτε αρκετές φορές χρησιμοποιώντας ένα υπάρχον όνομα χρήστη.
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!'
2.**Δικαίωμα:** Συνδέεται με τις δυνατότητες ασφαλείας του SQL Server, όπως ALTER, CONTROL και CREATE που μπορούν να χορηγηθούν σε έναν αρχέτυπο. Η διαχείριση των δικαιωμάτων πραγματοποιείται σε δύο επίπεδα:
* Σε επίπεδο **Διακομιστή** χρησιμοποιώντας συνδρομές
3.**Αρχέτυπο:** Αυτός ο όρος αναφέρεται στο οντότητα που έχει χορηγηθεί άδεια πρόσβασης σε ένα δυνατό. Τα αρχέτυπα περιλαμβάνουν κυρίως συνδρομές και χρήστες βάσεων δεδομένων. Ο έλεγχος της πρόσβασης στις δυνατότητες γίνεται μέσω της χορήγησης ή απόρριψης δικαιωμάτων ή με τη συμπερίληψη συνδρομών και χρηστών σε ρόλους εξοπλισμένους με δικαιώματα πρόσβασης.
Σημείωση ότι γιανα είναι δυνατή η εκτέλεση εντολών, είναι απαραίτητο όχι μόνο να έχετε το **`xp_cmdshell`** **ενεργοποιημένο**, αλλά επίσης να έχετε τη **άδεια ΕΚΤΕΛΕΣΗΣ στην αποθηκευμένη διαδικασία `xp_cmdshell`**. Μπορείτε να δείτε ποιος (εκτός από τους sysadmins) μπορεί να χρησιμοποιήσει το **`xp_cmdshell`** με:
Θα πρέπει να ξεκινήσετε ένα **διακομιστή SMB**γιανα αιχμαλωτίσετε το hash που χρησιμοποιείται στην πιστοποίηση (`impacket-smbserver` ή `responder`για παράδειγμα).
[**Διαβάστε αυτή την ανάρτηση**](../../windows-hardening/active-directory-methodology/abusing-ad-mssql.md) **γιανα βρείτε περισσότερες πληροφορίες σχετικά με το πώς να καταχρηστείτε αυτό το χαρακτηριστικό:**
Για να εγγράψετε αρχεία χρησιμοποιώντας το `MSSQL`, **χρειάζεται να ενεργοποιήσετε** τις [**Διαδικασίες Αυτοματισμού Ole**](https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/ole-automation-procedures-server-configuration-option), οι οποίες απαιτούν δικαιώματα διαχειριστή, και στη συνέχεια να εκτελέσετε ορισμένες αποθηκευμένες διαδικασίες για τη δημιουργία του αρχείου:
Από προεπιλογή, το `MSSQL` επιτρέπει την ανάγνωση αρχείων **σε οποιοδήποτε αρχείο στο λειτουργικό σύστημα στο οποίο ο λογαριασμός έχει πρόσβαση ανάγνωσης**. Μπορούμε να χρησιμοποιήσουμε το ακόλουθο ερώτημα SQL:
SELECT * FROM fn_my_permissions(NULL, 'SERVER') WHERE permission_name='ADMINISTER BULK OPERATIONS' OR permission_name='ADMINISTER DATABASE BULK OPERATIONS';
Το MSSQL μπορεί να σας επιτρέψει να εκτελέσετε **σενάρια σε Python και/ή R**. Αυτός ο κώδικας θα εκτελεστεί από έναν **διαφορετικό χρήστη** από αυτόν που χρησιμοποιεί το **xp\_cmdshell**γιανα εκτελέσει εντολές.
Το Microsoft SQL Server παρέχει **πολλές επεκτεινόμενες αποθηκευμένες διαδικασίες** που σας επιτρέπουν να αλληλεπιδράτε όχι μόνο με το δίκτυο αλλά και με το σύστημα αρχείων και ακόμη και το [**Μητρώο των Windows**](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!';
Για **περισσότερα παραδείγματα** ανατρέξτε στην [**πρωτότυπη πηγή**](https://blog.waynesheffield.com/wayne/archive/2017/08/working-registry-sql-server/).
Είναι δυνατόν να**φορτώσετε ένα .NET dll μέσα στο MSSQL με προσαρμοσμένες λειτουργίες**. Αυτό, ωστόσο, **απαιτεί πρόσβαση στο `dbo`**, οπότε χρειάζεστε σύνδεση με τη βάση δεδομένων **ως `sa` ή με ρόλο Διαχειριστή**.
[**Ακολουθώντας αυτόν τον σύνδεσμο**](../../pentesting-web/sql-injection/mssql-injection.md#mssql-user-defined-function-sqlhttp) μπορείτε να δείτε ένα παράδειγμα.
Υπάρχουν και άλλες μεθόδοι για εκτέλεση εντολών, όπως η προσθήκη [επεκτεθέντων αποθηκευμένων διαδικασιών](https://docs.microsoft.com/en-us/sql/relational-databases/extended-stored-procedures-programming/adding-an-extended-stored-procedure-to-sql-server), [CLR Συναθροίσεις](https://docs.microsoft.com/en-us/dotnet/framework/data/adonet/sql/introduction-to-sql-server-clr-integration), [Εργασίες Πράκτορα SQL Server](https://docs.microsoft.com/en-us/sql/ssms/agent/schedule-a-job?view=sql-server-ver15), και [εξωτερικά scripts](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-execute-external-script-transact-sql).
Αν ένας **κανονικός χρήστης** λάβει τον ρόλο **`db_owner`** πάνω στη **βάση δεδομένων που ανήκει σε έναν διαχειριστή** χρήστη (όπως ο**`sa`**) και αυτή η βάση δεδομένων είναι ρυθμισμένη ως **`trustworthy`**, ο χρήστης αυτός μπορεί να εκμεταλλευτεί αυτά τα προνόμια για**ανόδο προνομίων** επειδή **αποθηκευμένες διαδικασίες** που δημιουργούνται εκεί μπορούν να**εκτελεστούν** ως ιδιοκτήτης (**διαχειριστής**).
Ο SQL Server έχει ένα ειδικό δικαίωμα, με το όνομα **`IMPERSONATE`**, που **επιτρέπει στον εκτελούντα χρήστη να αναλάβει τα δικαιώματα ενός άλλου χρήστη** ή σύνδεσης μέχρι να επαναφερθεί ο πλαίσιο ή να λήξει η συνεδρία.
Αν μπορείτε να προσωποποιήσετε έναν χρήστη, ακόμα κι αν δεν είναι sysadmin, πρέπει να ελέγξετε ανο χρήστης έχει πρόσβαση σε άλλες βάσεις δεδομένων ή συνδεδεμένους διακομιστές.
Ένας επιτιθέμενος μπορεί να εξάγει κωδικούς πρόσβασης από τους συνδεδεμένους διακομιστές SQL Server από τις προσθήκες SQL και να τους λάβει σε καθαρό κείμενο, παρέχοντας στον επιτιθέμενο κωδικούς πρόσβασης που μπορούν να χρησιμοποιηθούν γιανα αποκτήσει μεγαλύτερη εδρά στον στόχο. Το script για την εξαγωγή και αποκρυπτογράφηση των κωδικών που αποθηκεύονται για τους συνδεδεμένους διακομιστές μπορεί να βρεθεί [εδώ](https://www.richardswinbank.net/admin/extract\_linked\_server\_passwords)
Κάποιες απαιτήσεις και ρυθμίσεις πρέπει να γίνουν γιανα λειτουργήσει αυτή η εκμετάλλευση. Καταρχάς, πρέπει να έχετε δικαιώματα Διαχειριστή στον υπολογιστή ή τη δυνατότητα να διαχειρίζεστε τις ρυθμίσεις του SQL Server.
Για να αυτοματοποιήσετε αυτές τις ρυθμίσεις, [αυτό το αποθετήριο](https://github.com/IamLeandrooooo/SQLServerLinkedServersPasswords/) έχει τα απαιτούμενα scripts. Εκτός από ένα script powershell για κάθε βήμα της ρύθμισης, το αποθετήριο έχει επίσης ένα πλήρες script που συνδυάζει τα scripts ρύθμισης και την εξαγωγή και αποκρυπτογράφηση των κωδικών πρόσβασης.
Για περισσότερες πληροφορίες, ανατρέξτε στους παρακάτω συνδέσμους σχετικά με αυτήν την επίθεση: [Αποκρυπτογράφηση Κωδικών Πρόσβασης Διακομιστών Βάσης Δεδομένων MSSQL](https://www.netspi.com/blog/technical/adversary-simulation/decrypting-mssql-database-link-server-passwords/)
[Αντιμετώπιση προβλημάτων με την Αφιερωμένη Διαχειριστική Σύνδεση του SQL Server](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).
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
*Αν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks** ή να**κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Ανακαλύψτε την [**Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στη [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**