<summary><strong>Leer AWS-hacking van nul tot held met</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
[**RootedCON**](https://www.rootedcon.com/) is die mees relevante kuberveiligheidsevenement in **Spanje** en een van die belangrikste in **Europa**. Met **die missie om tegniese kennis te bevorder**, is hierdie kongres 'n kookpunt vir tegnologie- en kuberveiligheidspesialiste in elke dissipline.
**MySQL** kan beskryf word as 'n oopbron **Relational Database Management System (RDBMS)** wat gratis beskikbaar is. Dit werk met die **Structured Query Language (SQL)**, wat die bestuur en manipulasie van databasisse moontlik maak.
MySQL kan op afstand worden benaderd via het netwerk. Dit betekent dat een aanvaller toegang kan krijgen tot de MySQL-server vanaf een externe locatie. Dit kan worden gedaan door het IP-adres en de poort van de MySQL-server te achterhalen en vervolgens een verbinding tot stand te brengen met behulp van een MySQL-client.
Om te voorkomen dat een aanvaller toegang krijgt tot de MySQL-server via externe verbindingen, moet de configuratie van de MySQL-server worden aangepast. Dit kan worden gedaan door de bind-address-instelling in het configuratiebestand van MySQL te wijzigen. Door deze instelling te wijzigen in het IP-adres van de lokale machine, wordt voorkomen dat externe verbindingen worden geaccepteerd.
Het is ook belangrijk om sterke en veilige wachtwoorden te gebruiken voor de MySQL-gebruikersaccounts. Dit helpt bij het voorkomen van brute force-aanvallen waarbij een aanvaller probeert in te loggen op de MySQL-server door verschillende combinaties van gebruikersnamen en wachtwoorden te proberen.
Daarnaast is het belangrijk om de MySQL-server regelmatig bij te werken met de nieuwste beveiligingspatches. Dit helpt bij het dichten van eventuele beveiligingslekken die kunnen worden misbruikt door aanvallers.
Ten slotte kan het gebruik van een firewall ook helpen bij het beperken van de toegang tot de MySQL-server. Door alleen specifieke IP-adressen toe te staan om verbinding te maken met de MySQL-server, kan de blootstelling aan externe aanvallen worden verminderd.
MySQL-toestemmingsopsporing is een belangrijk onderdeel van het pentestproces, omdat het helpt bij het identificeren van mogelijke beveiligingslekken in een MySQL-database. Door de toestemmingsinstellingen van een MySQL-gebruiker te controleren, kunnen we bepalen welke acties de gebruiker kan uitvoeren op de database.
Hier zijn enkele methoden die kunnen worden gebruikt om MySQL-toestemmingen te onderzoeken:
#### 1. Gebruikerslijst weergeven
Om de lijst met gebruikers in een MySQL-database weer te geven, kunnen we de volgende query uitvoeren:
```sql
SELECT user FROM mysql.user;
```
#### 2. Toestemmingen van een specifieke gebruiker controleren
Om de toestemmingen van een specifieke gebruiker te controleren, kunnen we de volgende query uitvoeren:
```sql
SHOW GRANTS FOR 'gebruikersnaam'@'localhost';
```
#### 3. Toegang tot databases controleren
Om te controleren welke databases een gebruiker kan benaderen, kunnen we de volgende query uitvoeren:
```sql
SHOW DATABASES;
```
#### 4. Toegang tot tabellen controleren
Om te controleren welke tabellen een gebruiker kan benaderen, kunnen we de volgende query uitvoeren:
```sql
SHOW TABLES FROM 'databasenaam';
```
#### 5. Toegang tot kolommen controleren
Om te controleren welke kolommen een gebruiker kan benaderen, kunnen we de volgende query uitvoeren:
```sql
SHOW COLUMNS FROM 'databasenaam'.'tabelnaam';
```
#### 6. Toegang tot specifieke SQL-opdrachten controleren
SHOW GRANTS FOR 'gebruikersnaam'@'localhost' LIKE '%opdracht%';
```
Het controleren van MySQL-toestemmingen is essentieel om mogelijke beveiligingslekken te identificeren en de beveiliging van een MySQL-database te verbeteren. Door deze methoden toe te passen, kunnen we de toegangsrechten van gebruikers nauwkeurig beoordelen en eventuele kwetsbaarheden opsporen.
Jy kan in die dokumentasie die betekenis van elke voorreg sien: [https://dev.mysql.com/doc/refman/8.0/en/privileges-provided.html](https://dev.mysql.com/doc/refman/8.0/en/privileges-provided.html#priv\_execute)
Eintlik, wanneer jy probeer om **data plaaslik in 'n tabel te laai**, vra die MySQL- of MariaDB-bediener die **kliënt om dit te lees** en die inhoud te stuur. **As jy dus 'n mysql-kliënt kan manipuleer om na jou eie MySQL-bediener te verbind, kan jy willekeurige lêers lees.**\
Let asseblief daarop dat dit die gedrag is wanneer jy gebruik maak van:
**In hierdie dokument kan jy 'n volledige beskrywing van die aanval sien en selfs hoe om dit uit te brei na RCE:** [**https://paper.seebug.org/1113/**](https://paper.seebug.org/1113/)\
**Hier kan jy 'n oorsig van die aanval vind:** [**http://russiansecurity.expert/2016/04/20/mysql-connect-file-read/**](http://russiansecurity.expert/2016/04/20/mysql-connect-file-read/)
[**RootedCON**](https://www.rootedcon.com/) is die mees relevante kuberveiligheid geleentheid in **Spanje** en een van die belangrikste in **Europa**. Met **die missie om tegniese kennis te bevorder**, is hierdie kongres 'n broeiplek vir tegnologie- en kuberveiligheidspesialiste in elke dissipline.
- Die **`user`**-instelling word gebruik om die gebruiker aan te dui waarin die MySQL-diens uitgevoer sal word.
- **`password`** word gebruik om die wagwoord wat verband hou met die MySQL-gebruiker, te vestig.
- **`admin_address`** spesifiseer die IP-adres wat luister vir TCP/IP-verbindings op die administratiewe netwerkinterface.
- Die **`debug`**-veranderlike dui op die huidige foutopsporingskonfigurasies, insluitend sensitiewe inligting binne loglêers.
- **`sql_warnings`** bestuur of inligtingstrengs gegenereer word vir enkelry-invoegingsopdragte wanneer waarskuwings voorkom, insluitend sensitiewe data binne loglêers.
- Met **`secure_file_priv`** word die omvang van data-invoer- en uitvoeroperasies beperk om die veiligheid te verbeter.
As die **mysql-bediener as root** (of 'n ander meer bevoorregte gebruiker) loop, kan jy dit dwing om opdragte uit te voer. Hiervoor moet jy **gebruikersgedefinieerde funksies** gebruik. En om 'n gebruikersgedefinieerde funksie te skep, het jy 'n **biblioteek** nodig vir die bedryfstelsel waarop mysql loop.
Die skadelike biblioteek wat gebruik moet word, kan binne sqlmap en binne metasploit gevind word deur **`locate "*lib_mysqludf_sys*"`** uit te voer. Die **`.so`** lêers is **Linux**-biblioteke en die **`.dll`** is die **Windows**-eenhede, kies die een wat jy benodig.
As jy **nie daardie biblioteke het nie**, kan jy dit óf **soek**, óf hierdie [**Linux C-kode**](https://www.exploit-db.com/exploits/1518) aflaai en **dit binne die kwesbare Linux-masjien kompileer**:
Om te begin, moet jy die MySQL-diens op die teikenstelsel identifiseer. Jy kan dit doen deur die volgende stappe te volg:
1. Voer 'n skandering van die teikenstelsel uit om aktiewe poorte te identifiseer.
2. Kyk vir die poortnommer 3306, wat die standaardpoort vir MySQL is.
3. As die poort 3306 oop is, dui dit daarop dat die MySQL-diens op die stelsel loop.
##### MySQL Service Exploitation
As jy 'n MySQL-diens op die teikenstelsel geïdentifiseer het, kan jy probeer om dit te misbruik om toegang tot die stelsel te verkry. Hier is 'n paar moontlike aanvalstegnieke:
1.**Brute force-aanval**: Probeer om in te log by die MySQL-diens deur verskillende gebruikersname en wagwoorde te probeer.
2.**SQL-injeksie**: Ondersoek die webtoepassings wat met die MySQL-diens gekoppel is, vir moontlike SQL-injeksiekwessies wat jy kan uitbuit om toegang te verkry.
3.**Gebruikersprivilege-uitbreiding**: As jy toegang het tot 'n beperkte gebruikerrekening, probeer om jou gebruikersprivileges uit te brei deur spesiale MySQL-opdragte uit te voer.
4.**Databasislek**: Ondersoek die databasis vir gevoelige inligting soos wagwoorde, kredietkaartinligting, ens.
##### MySQL Service Post-Exploitation
As jy toegang tot die MySQL-diens verkry het, kan jy verskeie post-exploitasietegnieke gebruik om verdere toegang tot die stelsel te verkry of om inligting te versamel:
1.**Gebruikersrekeninguitbreiding**: Skep 'n nuwe gebruikerrekening met hoër privilegeniveaus om verdere toegang tot die stelsel te verkry.
2.**Databasisverkenning**: Ondersoek die databasis vir waardevolle inligting soos gebruikersname, wagwoorde, kredietkaartinligting, ens.
3.**Databasismanipulasie**: Verander of verwyder data in die databasis om die werking van die toepassing of die stelsel te beïnvloed.
4.**Databasisrugsteun**: Maak 'n rugsteunkopie van die databasis om belangrike inligting te bewaar of om dit later te gebruik.
##### MySQL Service Hardening
Om die veiligheid van die MySQL-diens te verhoog, kan jy die volgende maatreëls toepas:
1.**Sterk wagwoorde**: Verseker dat alle gebruikersrekeninge sterk en unieke wagwoorde het.
2.**Beperkte gebruikersprivileges**: Gee slegs die nodige privilegies aan elke gebruikerrekening en beperk die toegang tot kritieke databasisfunksies.
3.**Bywerk van sagteware**: Verseker dat die MySQL-diens en alle verbonde sagteware op die jongste weergawes is om bekende kwessies en lekke te vermy.
4.**Netwerkbeperkings**: Beperk die toegang tot die MySQL-diens deur slegs spesifieke IP-adresse of subnette toe te laat.
5.**Logbestuur**: Monitor en analiseer die loglêers van die MySQL-diens vir enige verdagte aktiwiteite of pogings tot aanvalle.
Binne die lêer: _/var/lib/mysql/mysql/user.MYD_ kan jy **al die hasings van die MySQL-gebruikers** vind (diegene wat jy kan onttrek uit mysql.user binne die databasis)_._
[**RootedCON**](https://www.rootedcon.com/) is die mees relevante sibersekuriteitsgebeurtenis in **Spanje** en een van die belangrikste in **Europa**. Met **die missie om tegniese kennis te bevorder**, is hierdie kongres 'n kookpunt vir tegnologie- en sibersekuriteitsprofessionals in elke dissipline.
<summary><strong>Leer AWS-hacking van nul tot held met</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslagplekke.