GNU/Linux >> Belajar Linux >  >> Linux

Uji Login WordPress Dengan Hydra di Kali Linux

Pengantar

Ada formulir web di seluruh Internet. Bahkan situs yang biasanya tidak mengizinkan pengguna biasa untuk masuk mungkin memiliki area admin. Saat menjalankan dan men-deploy situs, penting untuk memastikan bahwa sandi yang membuka akses ke kontrol sensitif dan panel admin seaman mungkin.

Ada berbagai cara untuk menyerang aplikasi web, tetapi panduan ini akan membahas penggunaan Hydra untuk melakukan serangan brute force pada formulir login. Target platform pilihan adalah WordPress. Ini adalah platform CMS paling populer di dunia, dan juga terkenal karena dikelola dengan buruk.

Ingat, panduan ini dimaksudkan untuk membantu Anda melindungi WordPress atau situs web lainnya. Penggunaan di situs yang tidak Anda miliki atau memiliki izin tertulis untuk mengujinya adalah ilegal .

Menyiapkan

Sebelum Anda melakukan apa pun, Anda memerlukan situs web WordPress untuk ditargetkan. Panduan ini juga mengasumsikan bahwa Anda meng-hosting situs WordPress di komputer Anda sendiri. Jika Anda memerlukan bantuan untuk menyiapkan LAMP di mesin Anda, lihat panduan Debian LAMP dan Ubuntu LAMP kami.

Anda dapat melakukan ini baik pada instalasi Linux biasa atau pada instalasi Kali Linux. Jika Anda menggunakan Kali, ikuti LAMP Debian dari panduan sumber. Pastikan Anda telah menginstal Hydra dan cURL di sistem mana pun yang Anda pilih. Mereka tersedia di sebagian besar repositori.

Jika Anda benar-benar tidak ingin menggunakan instalasi biasa, Anda pasti dapat menggunakan komputer lain, cukup memasukkan IP target untuk localhost, dan pastikan mesin target dapat diakses dari yang menyerang.

Mengumpulkan Informasi

Setelah WordPress Anda aktif dan berjalan, saatnya untuk mencari informasi sebanyak mungkin tentang instalasi yang akan Anda targetkan. Ini berarti mencari tahu bagaimana formulir login dibuat, apa yang terjadi saat Anda mengirimkannya, dan mungkin ke mana arahnya jika login berhasil.

Sumber HTML

Mulailah dengan menavigasi ke halaman login. Anda dapat menemukannya di localhost/wp-login.php . Gunakan kemampuan browser Anda untuk memeriksa kode sumber. Anda cukup mengklik kanan di suatu tempat di halaman dan memilih "Lihat Sumber" atau "Periksa Elemen." Bagaimanapun Anda dapat melihat sumbernya, itu hanya akan ditampilkan dengan cara yang berbeda.

Cari di sekitar ke arah tengah kode. Anda mencari tag. Itu adalah formulir login yang sebenarnya. Di dalam formulir itu ada beberapa informasi yang Anda butuhkan.

Sebelum mengumpulkan informasi, periksa apakah formulir mengirimkan permintaan GET atau POST. Di baris pertama formulir, harus ada opsi metode yang terlihat seperti ini:method="post" . Dalam kasus WordPress, ini adalah POST.

Pertama, temukan input nama pengguna. Seharusnya terlihat seperti baris di bawah ini.

<input type="text" name="log" id="user_login" class="input" value="" size="20" />

Bagian yang Anda butuhkan adalah name . Dalam hal ini, log .

Selanjutnya, temukan input kata sandi. Seharusnya terlihat mirip.

<input type="password" name="pwd" id="user_pass" class="input" value="" size="20" />

Sekali lagi, temukan name yaitu pwd .

Anda juga perlu mengidentifikasi tombol kirim agar Hydra dapat mengirimkan formulir.

<input type="submit" name="wp-submit" id="wp-submit" class="button button-primary button-large" value="Log In" />

Penting untuk mencatat keduanya name dan value .

Ada satu bagian terakhir. Jika Anda belum menyadarinya, ada dua bidang tersembunyi di bagian bawah formulir. Satu memberitahu WordPress untuk mengarahkan ulang saat formulir dikirimkan dan yang lainnya adalah cookie yang akan dicari WordPress saat formulir dikirimkan. Anda membutuhkan cookie.

<input type="hidden" name="testcookie" value="1" />

Sekali lagi, perhatikan name dan value .

curl

Meskipun ada banyak informasi yang bisa diperoleh dengan melihat sumber HTML, ada beberapa hal lagi yang perlu Anda ketahui sebelum melepaskan Hydra. Namun, dalam kebanyakan kasus, Anda mungkin dapat menjalankan pengujian hanya dengan informasi yang Anda kumpulkan. Anda cukup mencoba masuk dengan kredensial yang salah, merekam pesan kesalahan, dan menggunakan pesan itu sebagai kondisi pengujian yang gagal di Hydra.

Namun, WordPress dirancang secara berbeda, dan sebenarnya tidak ada cara yang baik untuk menguji dengan upaya login yang gagal. Karena itu, Anda perlu menguji login yang berhasil. Karena Anda dapat mempertahankan instalasi dan login WordPress Anda sendiri. itu, ini tidak akan membuat perbedaan jika Anda menguji sistem untuk klien. Kondisi yang Anda temukan secara lokal harus universal untuk WordPress.

Ada kerutan lain di sini juga. Apakah Anda ingat bidang pengalihan tersembunyi dalam formulir? Nah, pengalihan itu mencegah Anda menggunakan kondisi seperti keberadaan kata, "Dasbor," untuk menguji keberhasilan juga. Anda harus melihat permintaan itu sendiri, dan untuk itu, ada cURL.

Untuk membandingkan, Anda harus terlebih dahulu melihat halaman login asli dengan cURL.

$ curl -v http://localhost/wp-login.php

Sebagian besar informasi sama dengan kode sumber yang Anda lihat di browser. Di bagian atas, ada informasi tentang permintaan HTTP. Perhatikan informasi ini. Anda harus membandingkannya dengan login yang berhasil.

Hal berikutnya yang perlu Anda lakukan adalah berhasil masuk dengan cURL. Untuk melakukan itu, Anda akan memerlukan cookie itu dari permintaan sebelumnya. Lihat data HTTP dan temukan baris yang terlihat seperti di bawah ini.

< Set-Cookie: wordpress_test_cookie=WP+Cookie+check; path=/

Anda akan memerlukan wordpress_test_cookie=WP+Cookie+check bagian.

Baiklah, sekarang Anda memerlukan informasi yang Anda kumpulkan dari HTML bersama dengan cookie itu untuk membuat permintaan. Seperti inilah seharusnya.

curl -v --data 'log=username&pwd=realpassword&wp-submit=Log+In&testcookie=1' --cookie 'wordpress_test_cookie=WP+Cookie+check' http://localhost/wp-login.php

Jadi, Anda memiliki permintaan dasar yang sama seperti sebelumnya, tetapi kali ini, Anda menggunakan --data bendera dan --cookie tandai untuk meneruskan cURL data formulir mana yang ingin Anda gunakan untuk berinteraksi dan cookie itu, sehingga formulir benar-benar akan dikirimkan.

String data itu, log=username&pwd=realpassword&wp-submit=Log+In&testcookie=1 berhubungan langsung dengan informasi yang Anda kumpulkan dari HTML. Dikatakan untuk memasukkan nilai "nama pengguna" ke input yang disebut log dan nilai "realpassword" ke dalam input yang disebut pwd . Pastikan untuk menggunakan username dan password yang sebenarnya untuk login. Kemudian, gunakan submit dengan nama wp-submit dan nilai Log In untuk menyerahkan datanya. Pada akhirnya adalah testcookie dengan nilai 1 . Itu hanya memberi tahu cURL untuk mengirimkannya bersama dengan data formulir lainnya.

Ketika cURL menyelesaikan permintaan, Anda benar-benar tidak akan melihat HTML apa pun, hanya banyak informasi permintaan. Ingat bahwa pengalihan yang membuat pengujian dengan "Dasbor" tidak berfungsi sebagai kondisi pengujian? Nah, sekarang redirect itu sendiri akan menjadi test condition. Perhatikan baris di bawah ini.

< Location: http://localhost/wp-admin/

Baris itu tidak ada dalam permintaan sebelumnya. Itu juga tidak mengandung informasi spesifik apa pun yang terkait dengan pengguna atau login itu. Itu berarti akan selalu hadir selama login WordPress yang berhasil, menjadikannya kondisi sukses yang sempurna untuk diuji.

Menguji Dengan Hydra

Akhirnya, Anda memiliki semua yang Anda butuhkan untuk menguji kata sandi Anda dengan Hydra. Inti dari panduan ini tidak begitu banyak untuk menutupi sintaks Hydra, tetapi akan memecah perintah yang digunakan. Jika Anda ingin mempelajari lebih lanjut tentang Hydra, lihat panduan SSH yang menjelaskan lebih detail.

Hanya ada satu perintah yang Anda perlukan agar Hydra dijalankan melalui kemungkinan nama pengguna dan kata sandi untuk menguji keamanan situs WordPress Anda. Hal termudah untuk dilakukan adalah melihat perintah dan memecahnya.

$ hydra -L lists/usrname.txt -P lists/pass.txt localhost -V http-form-post '/wp-login.php:log=^USER^&pwd=^PASS^&wp-submit=Log In&testcookie=1:S=Location'

Oke, jadi ini jelas banyak yang harus diambil sekaligus. -L flag memberitahu Hydra untuk menggunakan daftar kata nama pengguna di lists/usrname.txt . Demikian pula, -P flag memberitahu Hydra untuk menggunakan daftar kata sandi di lists/pass.txt . localhost memberitahu Hydra untuk menargetkan localhost, dan -V memberitahunya untuk mencatat setiap pengujian di keluaran konsol.

Perintah lainnya berhubungan dengan permintaan HTTP itu sendiri. http-form-post mengaktifkan modul Hydra untuk menangani formulir HTTP dengan metode POST. Ingat dari sebelumnya bahwa formulir login WordPress berhadapan dengan POST dari. String berikut berisi semua parameter yang akan digunakan Hydra. Anda harus memperhatikan bahwa ini sangat mirip dengan yang digunakan untuk masuk melalui cURL.

String terdiri dari bagian berbeda yang dipisahkan oleh : . Bagian pertama adalah alamat persis yang sedang diuji, /wp-login.php . Bagian selanjutnya hampir persis seperti yang digunakan oleh cURL. Ini meneruskan nilai ke dalam formulir dan mengirimkannya, termasuk cookie. Alih-alih melewatkan nilai literal, Hydra sebenarnya menggunakan variabel. Pemberitahuan di log=^USER^ dan pwd=^PASS^ . Itu adalah variabel yang dipisahkan dengan karakter wortel yang mengambil nilai dari daftar kata dan meneruskannya dalam permintaan untuk setiap tes yang dijalankan Hydra.

Bagian terakhir dari string adalah kondisi pengujian. S menandakan bahwa itu adalah ujian untuk sukses. Jika Anda ingin menguji kegagalan, Anda akan menggunakan F . Anda menyetelnya sama dengan kata atau frasa yang sedang diuji. Pikirkan jika itu hampir seperti grep .

Ketika Anda menjalankan ini, Anda akan mendapatkan hasil yang positif, asalkan nama pengguna dan kata sandi yang benar ada di daftar kata yang Anda berikan Hydra.

Pemikiran Penutup

Pertama, selamat karena berhasil melewati semua itu. Jika Anda berhasil melakukannya, sekarang Anda memiliki metode yang solid untuk menguji kekuatan kata sandi akun pengguna WordPress Anda.

Panduan ini disesuaikan dengan WordPress, tetapi Anda dapat dengan mudah mengikuti langkah yang sama untuk menguji formulir web lainnya. Jika Anda menjalankan aplikasi web dengan banyak pengguna, sebaiknya pastikan
mereka menggunakan sandi yang kuat. Ini dapat membantu menginformasikan kebijakan kata sandi Anda. Sekali lagi, pastikan Anda hanya menguji dengan izin.


Linux
  1. Cara Memperbarui Kali Linux Dengan Satu Perintah

  2. Instal WordPress di Linux dengan Apache

  3. Kali Linux 2022.3 Rilis (Discord &Test Lab)

  1. Kali Linux 1.0.8 Rilis dengan Dukungan Boot EFI

  2. Mulailah dengan Lateks di Linux

  3. Menggunakan SDL2 di linux dengan g++?

  1. Pengerasan Kali Linux

  2. Bagaimana memberi pengguna hak akses root di Kali Linux

  3. Gunakan Aircrack-ng Untuk Menguji Kata Sandi WiFi Anda di Kali Linux