Daftar Isi:
Video: m 3ana 3n atau operator jerat di mana intervensi ... 2024
Dalam studi kasus ini, Chip Andrews, pakar keamanan SQL Server, berbagi pengalaman (etis) ini ke klien database untuk mengungkap kelemahan keamanan. Contoh ini memberikan kisah peringatan untuk melindungi informasi penting Anda dengan bersikeras pada keamanan database yang baik.
Situasi
Selama tes penetrasi rutin, Mr. Andrews melakukan pencarian Google wajib, penelitian nama domain, sidik jari sistem operasi, dan pemindaian port, namun situs web ini terkunci dengan ketat. Beralih ke aplikasi berbasis web yang berjalan di sistem, dia langsung dihadapkan dengan halaman login menggunakan otentikasi bentuk enkripsi SSL.
Dengan memeriksa sumber halaman web, dia melihat bahwa field App_Name tersembunyi telah dikirimkan ke aplikasi setiap kali pengguna mencoba masuk ke situs. Mungkinkah pengembang mungkin gagal melakukan validasi masukan yang tepat pada parameter yang tampak polos ini? Perburuan sedang berlangsung
Hasil
Pertama, saatnya untuk mengumpulkan toolkit ini. Pada saat tes penetrasi ini, Mr. Andrews lebih suka menggunakan yang berikut ini: Paros Proxy, Absinthe, Cain & Abel, Data Thief, dan Microsoft SQL Server Management Studio / SQL Server (Edisi Ekspres), yang kesemuanya tersedia gratis..
Sebagai permulaan, dia menggunakan Paros Proxy untuk memungkinkan lebih banyak kontrol dan visibilitas terhadap permintaan web yang dibuat ke server web.
Setelah menjelajah situs untuk halaman yang tersedia dan melakukan pemeriksaan kerentanan cepat untuk injeksi SQL, dikonfirmasi bahwa parameter App_Name tampaknya menyebabkan aplikasi melempar pengecualian Error 500, yang mengindikasikan adanya kegagalan aplikasi. Tes penetrasi adalah salah satu kesempatan langka ketika kegagalan aplikasi merupakan hasil yang diinginkan.
Karena kegagalan aplikasi mengindikasikan bahwa Mr. Andrews dapat menyuntikkan karakter yang tidak diinginkan ke dalam kode SQL yang dikirim dari aplikasi ke database, dia dapat melihat apakah ini adalah kondisi yang dapat dieksploitasi.
Uji umum yang bekerja dengan database Microsoft SQL Server adalah menyuntikkan perintah, seperti WAITFOR DELAY '00: 00: 10 ', yang menyebabkan server database macet selama 10 detik. Dalam sebuah aplikasi yang biasanya mengembalikan halaman dalam satu detik atau kurang, penundaan 10 detik yang konsisten adalah indikator bagus yang dapat Anda masukkan perintah ke dalam aliran SQL.
Selanjutnya, Mr. Andrews mencoba menggunakan alat Data Thief untuk menyerang halaman login.Alat ini mencoba untuk memaksa database menggunakan perintah OPENROWSET untuk menyalin data dari basis data target ke database Mr. Andrews yang terletak di Internet.
Ini biasanya cara yang sangat efisien untuk menyedot sejumlah besar data dari database yang rentan, namun dalam kasus ini, serangannya telah gagal! Administrator basis data pada target telah menonaktifkan fungsi OPENROWSET dengan mengonfigurasi opsi Disable Adhoc Distributed Queries dengan benar.
Dengan ketekunan sebagai semboyannya, Mr. Andrews bertahan dengan alat berikutnya - Absinthe. Alat ini menggunakan teknik yang disebut blind SQL injection untuk membuat penentuan tentang data menggunakan pertanyaan ya atau tidak sederhana dari database. Misalnya, alat itu mungkin bertanya pada database apakah huruf pertama dari tabel kurang dari "L. "
Jika ya, aplikasi mungkin tidak melakukan apa-apa, tapi jika tidak, aplikasi mungkin akan membuang pengecualian. Dengan menggunakan logika biner sederhana ini, dimungkinkan untuk menggunakan teknik ini untuk mengungkapkan keseluruhan struktur basis data dan bahkan data yang tersimpan di dalamnya - meskipun sangat lambat. Dengan menggunakan alat ini, dia mengidentifikasi sebuah tabel informasi pelanggan yang sensitif dan mendownload beberapa ratus catatan untuk ditunjukkan kepada kliennya.
Akhirnya, tiba saatnya untuk mencoba satu tindakan terakhir dari keburukan database. Pertama, Mr. Andrews memasukkan alat yang disebut Cain & Abel dan mengaturnya untuk masuk ke mode sniffing. Kemudian, dengan menggunakan Paros Proxy dan parameter rentan yang telah diidentifikasi, dia menggunakan prosedur tersimpan xp_dirtree yang diperluas, yang tersedia bagi pengguna database SQL Server, untuk mencoba menampilkan sebuah direktori di komputer yang terhubung dengan Internet menggunakan jalur Konvensi Penamaan Universal.
Ini memaksa database target untuk benar-benar mencoba mengautentikasi dirinya dengan mesin Mr. Andrews. Karena Cain & Abel sedang mendengarkan di kawat, ia mendapatkan hash dari tantangan yang digunakan untuk mengotentikasi berbagi file yang terbuka.
Dengan melewatkan hash ini ke cracker password yang ada di Cain & Abel, Mr. Andrews akan mendapatkan username dan password akun dimana SQL Server yang rentan berjalan hanya dalam hitungan waktu.
Apakah akun hack ini menggunakan kata kunci yang sama dengan akun admin aplikasi web? Apakah password ini sama dengan akun administrator lokal pada host? Itu adalah pertanyaan untuk hari lain. Sudah waktunya mengumpulkan semua data yang terkumpul, menyiapkan laporan untuk klien, dan meletakkan alat itu untuk hari lain.
Chip Andrews adalah co-founder perusahaan konsultan keamanan Special Ops Security, Inc. dan pemilik SQLSecurity. com, yang memiliki banyak sumber tentang keamanan Microsoft SQL Server, termasuk alat SQLPing3. Sebagai co-author untuk beberapa buku tentang keamanan SQL Server dan presenter Black Hat, Mr. Andrews telah mempromosikan SQL Server dan keamanan aplikasi sejak 1999.