Akun 'root' @ 'localhost' MySQL yang tidak aman diakses dari jarak jauh?


8

Sedikit latar belakang: Kami baru saja meretas sistem PBX kami. Server itu sendiri tampaknya aman (tidak ada akses konsol tidak sah login - SSH dll), tetapi entah bagaimana para peretas telah berhasil menyuntikkan pengguna admin baru ke dalam perangkat lunak PBX (FreePBX, didukung oleh MySQL). Log Apache menyiratkan bahwa peretas berhasil menambah pengguna tanpa menggunakan antarmuka web (atau eksploitasi apa pun di antarmuka web).

Sekarang, saya telah menemukan bahwa MySQL berjalan tanpa kata sandi root (!!) dan secara terbuka terikat ke alamat IP eksternal (Jelas, saya telah mengunci ini sekarang). Namun, satu-satunya pengguna tingkat root di MySQL adalah 'root'@'localhost'dan 'root'@'127.0.0.1', keduanya seharusnya hanya dapat diakses secara lokal.

Jadi, pertanyaan saya adalah ini:

Apakah ada cara spoofing koneksi ke MySQL sehingga akan memungkinkan koneksi ke pengguna 'root' @ 'localhost' dari alamat IP jarak jauh, TANPA menjalankan eksploit lain secara lokal?

Sebagai referensi, kotak tersebut adalah Centos 5 (Linux 2.6.10) yang menjalankan Mysql 5.0.95.


Akan lebih cocok untuk ServerFault - offtopic di sini.
kapa

Saya tidak yakin - perasaan pribadi saya adalah karena kurang tentang konfigurasi server / masalah administrasi dan lebih banyak tentang mencoba untuk mengeksploitasi bug potensial di MySQL yang mungkin lebih baik di sini. Permintaan maaf jika orang berpikir saya berada di situs / bagian yang salah untuk ini.
TFk

2
Sebenarnya, itu mungkin milik security.stackexchange.com

1
Anda mengatakan "satu-satunya pengguna tingkat root adalah root @ localhost", apakah ada pengguna lain? Anda tidak perlu pengguna tingkat root untuk menambahkan catatan. Anda juga harus mencari kerentanan di FreePBX seperti ini .
Marcus Adams

Eksploitasi di tautan Anda telah ditambal dalam versi FreePBX saya, tetapi ya, saya setuju bahwa kerentanan FreePBX adalah titik masuk yang paling mungkin, kecuali saya tidak dapat menemukan apa pun di log akses Apache saya yang konsisten dengan kerentanan (diketahui) yang belum diketahui. . Poin bagus dengan pengguna lain - satu-satunya pengguna lain di db adalah asterisk, yang memiliki kata sandi (non-default). Jika ini adalah titik masuk, maka ini lagi menunjuk pada kerentanan FreePBX (mungkin belum dirilis). "No root password" sepertinya lubang yang sangat besar, dibandingkan dengan eksploitasi FreePBX yang tidak berdokumen baru. Karena itu, pertanyaan / posting saya.
TFk

Jawaban:


1

Tidak.

MySQL tidak akan pernah login Anda ke pengguna dengan spesifikasi localhostatau 127.0.0.1host jika Anda tidak datang dari sistem lokal. Perhatikan bahwa ini juga mencakup kerentanan auth bypass, CVE 2012-2122; perbandingan kata sandi mungkin diakali, tetapi perbandingan host tidak.

Anda perlu sesuatu pada sistem untuk mem-proksi untuk "mengelabui" pengecekan host sumber. Sesuatu seperti phpmyadmin, atau penyeimbang beban seperti HAProxy yang berjalan di depan port MySQL TCP terlintas dalam pikiran.


Itu yang saya duga, yang berarti, seburuk kata sandi root kosong, mungkin bukan exploit. Selalu bagus untuk mendapat informasi tentang pendapat - Terima kasih banyak.
TFk

2

Nama rootini dibuat secara default dan sangat terkenal. Root nilai literal tidak memiliki arti penting dalam sistem hak istimewa MySQL. Karenanya tidak ada persyaratan untuk melanjutkan dengan nama pengguna root.

Anda harus mengubah rootnama pengguna menjadi sesuatu yang lain sehingga dunia luar tidak akan dapat mengidentifikasi (menebak) dengan mudah, ini akan mengurangi upaya peretasan.

Sebagai contoh: Jika Anda memiliki pengguna sebagai root@ localhostyang cukup dikenal semua orang maka peretas akan mencoba menghubungkannya, Anda harus mengubahnya ke sesuatu yang spesifik seperti admin_db_name@ localhostuntuk keamanan yang lebih baik.

Pantau variabel status yang dipanggil Aborted_connectssecara berkala untuk mengetahui Refusedkoneksi ke server MySQL Anda, itu harus 0 setelah Flush status;perintah dan tidak boleh meningkat lebih lanjut.

tampilkan status seperti 'Aborted_connects';


2

Apakah "tidak ada akses tidak sah yang dicatat" termasuk upaya gagal login? Jika tidak, bisa jadi CVE 2012-2122 .

[...] ketika berjalan di lingkungan tertentu dengan implementasi tertentu dari fungsi memcmp, (MySQL) memungkinkan penyerang jarak jauh untuk memotong otentikasi dengan berulang kali mengautentikasi dengan kata sandi yang salah, yang akhirnya menyebabkan perbandingan token berhasil karena pemeriksaan yang tidak benar nilai pengembalian.


"Tidak ada akses tidak sah yang dicatat" sangat ambigu - maksud saya bahwa tidak ada penyerang yang berhasil mendapatkan akses konsol ke server (misalnya melalui SSH). Selain itu, tampaknya bangunan Centos tidak terpengaruh (< community.rapid7.com/community/metasploit/blog/2012/06/11/… ), tapi tentu saja hal yang saya cari.
TFk
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.