Memakai Metasploit Framework Di Kali Linux

Metasploit Framework merupakan framework yang paling umum dipakai untuk menguji sebuah exploit. Mengapa dibutuhkan framework dalam membuat kode program exploit? Biasanya kode program exploit memiliki operasi yang umum seperti mengirim request HTTP, membuat server web sebagai pancingan bagi korban, dan sebagainya. Dengan adanya sebuah framework yang universal dan lengkap, tugas membuat kode program exploit menjadi lebih mudah. Selain itu, hal ini juga mempermudah pihak lain untuk menguji exploit yang telah ditulis dengan mudah.

Berdasarkan situs resminya, Metasploit terdiri atas beberapa versi, yaitu Framework, Community, Express, dan Pro. Seluruh versi selain versi Framework memiliki interface berbasis web yang dapat dipakai dengan mudah. Dari seluruh versi yang ada, hanya versi Framework dan Community yang gratis. Selain itu, pengguna versi Community perlu melakukan registrasi terlebih dahulu. Pada artikel ini, saya akan memakai versi Framework yang hanya menyediakan CLI (tampilan berbasis teks). Untuk menjalankannya, saya memilih menu Kali Linux, Exploitation Tools, Metasploit, metasploit framework.

Modul pada Metasploit dikategorikan menjadi encoder, nop generator, exploit, payload, dan auxiliary. Modul exploit mewakili sebuah celah keamanan yang akan diujikan. Celah keamanan ini memungkinkan penyerang untuk mengakses sistem yang diserang. Untuk itu dibutuhkan modul payload yang akan dikerjakan bila modul exploit berhasil menjalankan tugasnya, biasanya berupa shell. Modul auxiliary adalah sesuatu yang mirip seperti exploit tetapi tidak memiliki payload sehingga penyerang tidak dapat bermain-main dengan sistem sasaran secara leluasa (setidaknya untuk saat tersebut ;). Contohnya adalah operasi scanning, serangan yang hanya melumpuhkan server, membuat server palsu atau melakukan password cracking secara offline. Modul nop generator dan encoder dipakai untuk mengelabui sistem pertahanan milik sasaran (seperti antivirus dan IDS/IPS) sehingga sasaran tidak mengetahui bahwa dirinya sedang diserang.

Untuk melihat seluruh modul yang ada, saya dapat memberikan perintah seperti:

msf > show all

Untuk melihat modul untuk kategori tertentu, saya dapat memberikan perintah seperti:

msf > show exploits
...
msf > show auxiliary
...
msf > show payloads
...
msf > show encoders
...
msf > show nops
...

Sebagai latihan, saya akan mencoba mencari IP yang mewakili CCTV DVR di jaringan saya. Saat ini, sudah banyak CCTV DVR yang dapat diakses melalui web. Seberapa besar tingkat keamanan yang diberikan oleh perangkat CCTV DVR yang langsung terkoneksi ke internet? Untuk mencari tahu IP apa saja yang mewakili CCTV DVR, saya perlu menggunakan modul auxiliary scanner/misc/cctv_dvr_login dengan memberikan perintah berikut ini:

msf > use scanner/misc/cctv_dvr_login

Berikutnya, saya perlu melakukan konfigurasi untuk modul tersebut. Untuk melihat apa saja yang dapat diatur, saya memberikan perintah berikut ini:

msf auxiliary(cctv_dvr_login) > show options

Nilai RHOSTS saat ini masih kosong. Saya perlu mengisinya dengan nilai IP yang perlu di-scan. Sebagai contoh, bila saya ingin men-scan IP pada range 192.168.1.0 hingga 192.168.1.255, maka saya dapat memberikan perintah berikut ini:

msf auxiliary(cctv_dvr_login) > set rhosts 192.168.1.0/24

Karena modul auxiliary tidak membutuhkan payload, saya dapat langsung menjalankannya dengan memberikan perintah:

msf auxiliary(cctv_dvr_login) > exploit

Metasploit akan melakukan proses scanning.. Hasilnya adalah tidak ada IP CCTV yang ditemukan!! Hal ini karena perangkat CCTV DVR yang populer di wilayah geografi saya berbeda dengan yang ditemui si pembuat modul. Saya melihat bahwa perangkat CCTV DVR disini sering kali men-ekspos port 554 untuk keperluan streaming. Oleh sebab itu, saya dapat memeriksa apakah sebuah IP membuka port 554 dengan memakai modul auxiliary scanner/portscan/tcp memberikan perintah berikut ini:

msf auxiliary(cctv_dvr_login) > back
msf > use scanner/portscan/tcp
msf auxiliary(tcp) > show options
...
msf auxiliary(tcp) > set ports 554
msf auxiliary(tcp) > set rhosts 192.168.1.0/24
msf auxiliary(tcp) > set threads 5
msf auxiliary(tcp) > exploit

Metasploit pun melaporkan IP dengan port TCP 554 yang terbuka. Kemungkinan besar IP tersebut adalah IP khusus untuk CCTV DVR.

Saya sudah menemukan IP target. Langkah berikutnya adalah menebak password yang dipakai untuk login. Karena proses authentication biasanya dilakukan dengan menggunakan standar dari HTTP, maka saya dapat menggunakan modul auxiliary scanner/http/http_login seperti berikut ini:

msf auxiliary(tcp) > back
msf > use scanner/http/http_login
msf auxiliary(http_login) > show options
...

Sebuah merk CCTV DVR populer di wilayah geografi saya memiliki halaman administrasi berbasis web yang dilengkapi dengan proses login dan captcha. Sekilas terlihat bahwa proses bruteforce atau dictionary attack adalah hal yang tidak mungkin, bukan? Tapi masalahnya CCTV DVR tersebut juga mempublikasi situs web khusus untuk perangkat mobile yang dapat diakses tanpa captcha. Contoh URL yang dapat di-brute force tanpa harus melalui captcha adalah /cgi-bin/guest/Video.cgi?media=JPEG&channel=1. Oleh sebab itu, saya segera melakukan pengaturan seperti berikut ini:

msf auxiliary(http_login) > set auth_uri /cgi-bin/guest/Video.cgi?media=JPEG&channel=1
msf auxiliary(http_login) > set blank_passwords false
msf auxiliary(http_login) > set rhosts 192.168.1.135,200,300
msf auxiliary(http_login) > set stop_on_success true
msf auxiliary(http_login) > exploit
...

Pada perintah di atas, Metasploit akan mencoba melakukan dictionary attack untuk HTTP authentication pada IP 192.168.1.135, 192.168.1.200, dan 192.168.1.300. Bila berhasil, maka saya dapat dengan mudah login ke IP tersebut melalui browser untuk melihat live streaming maupun hasil rekaman CCTV. Pada percobaan ini, saya menemukan cukup banyak CCTV DVR yang dapat diakses dengan mudah karena pengguna memakai password default yang mudah ditebak.

Agar proses pencarian menjadi lebih mudah, saya dapat membuat sebuah modul baru dalam bahasa pemograman Ruby yang dapat mencari IP milik beberapa brand CCTV DVR yang populer (contoh di atas hanya berdasarkan pada perilaku sebuah brand terkenal) dan berusaha untuk login melalui web. Dengan demikian, saya tidak perlu mengulangi langkah di atas lagi setiap kali ingin melakukan pencarian. Ini adalah kelebihan Metasploit sebagai sebuah framework.

Kesimpulannya: Produsen CCTV DVR harus meningkatkan keamanan produknya. Sudah bukan rahasia lagi bila banyak firmware (istilah untuk program yang berjalan di hardware/elektronik) yang ditulis dengan kualitas rendah. Bug dan kesalahan ketik dapat dijumpai dengan mudah pada firmware yang beredar di pasaran. Masalahnya, pengguna akan jarang melakukan update firmware bila ada perbaikan bug (apa ini strategi pasar agar mereka membeli produk baru yang lebih aman? 😉 Pihak yang melakukan instalasi CCTV juga sebaiknya mengedukasi pengguna agar menggunakan password yang lebih aman dan lebih sulit ditebak. Selain itu, mengakses sistem milik orang lain tanpa seizin pemiliknya adalah perbuatan ilegal (mungkin pengecualiannya adalah bila segera memberi tahu pihak terkait atas celah keamanan yang dimilikinya).

Iklan

Melakukan Fuzz Testing Dengan Kali Linux

Pada saat membuat program, developer mengharapkan pengguna memasukkan input sesuai dengan yang seharusnya. Pada kenyataannya, pengguna (terutama yang iseng) mungkin saja memberikan input yang tidak diharapkan. Lalu, apa yang akan terjadi dengan program bila pengguna memberikan input yang tidak diharapkan? Fuzz testing adalah pengujian yang dilakukan untuk menjawab pertanyaan tersebut. Fuzz testing adalah jenis pengujian black box dimana penguji memberikan berbagai jenis input yang tidak valid pada program.

Kali Linux mem-bundle beberapa tools untuk keperluan fuzz testing yang dapat ditemukan di menu Kali Linux, Vulnerability Analysis, Fuzzing Tools. Saya akan mencoba beberapa tools tersebut.

Tool pertama yang saya temukan, BED, adalah sebuah script Perl yang dipakai untuk menguji penanganan protokol. BED mendukung protokol seperti FTP, SMTP, POP, HTTP, IRC, IMAP, PJL, LPD, FINGER, SOCKS4, dan SOCKS5. Dengan demikian, BED tidak dipakai untuk menguji program seperti aplikasi web, melainkan menguji infrastruktur seperti web server, mail server, FTP server dan sebagainya. BED akan berhenti bila berhasil membuat server yang diuji menjadi down atau crash. Sebagai contoh, saya ingin menguji seberapa handal FTP server di router yang saya pakai. Karena kemampuan pemrosesan di router ekonomis yang terbatas dan jarang sekali upgrade firmware, saya pantas merasa ragu dengan keamanannya. Oleh sebab itu, saya dapat melakukan pengujian dengan perintah seperti berikut ini:

# bed -s FTP -u admin -v password -t 192.168.1.1

BED 0.5 by mjm ( www.codito.de ) & eric ( www.snake-basket.de )

+ Buffer overflow testing:

    ...

+ Formatstring testing:

    ...

* Normal tests
 + Buffer overflow testing:

    ...

 + Formatstring testing:

    ...

 + Unicode testing:

    ...

 + random number testing:

    ...

 + testing misc strings 1:

    ...

 + testing misc strings 2:

    ...

 + testing misc strings 3:

    ...

 + testing misc strings 4:

    ...

 + testing misc strings 5:

 ...


Script BED akan menguji dengan memakai input berupa overflow string ("A" x 1023 atau "\\" x 200), format string (seperti %s%s%s%s atau %.2048d), unicode string (seperti "x99" x 512), large number (seperti -268435455), dan misc string (seperti "/" atau "\r\n"). Khusus pada FTP, ia juga akan menguji apakah directory traversal dengan input seperti "/././.." dimungkinkan atau tidak.

Tool lainnya yang berada dalam kategori ini adalah powerfuzzer. Tool berbasis GUI ini dapat dipakai untuk menguji aplikasi web. Sebagai contoh, saya akan melakukan pengujian pada router saya yang memiliki halaman administrasi dalam bentuk aplikasi web. Saya dapat memberikan perintah berikut ini untuk menjalankan powerfuzzer:

# powerfuzzer

Saya mengisi bagian credentials dengan nama user dan password router. Setelah itu, saya mengisi Target URL dengan lokasi router yaitu di http://192.168.1.1 dan men-klik tombol Scan. powerfuzzer akan bekerja dan menampilkan hasil pemeriksaan setelah selesai. powerpuzzer pada dasarnya adalah script Python yang bekerja mengisi parameter yang dipakai pada parameter pada request GET dan POST dengan nilai yang tidak valid seperti lokasi file (misalnya /etc/passwd atau http://www.google.com/), script (misalnya "a;env", "a);env", dan "/e"), injeksi (dengan payload berupa "\xbf'\"("), javascript (untuk memeriksa XSS), dan string CRLF seperti "http://www.google.com\r\nPowerfuzzer: v1 BETA".

Menariknya, hasil pengujian menunjukkan terdapat celah keamanan XSS pada web administrasi router saya. Bukan hanya itu saja! Dengan mengirim payload tertentu menggunakan method POST pada URL tersebut, router akan crash dan di-restart kembali.

Selain memakai tools yang ada di kategori Fuzzing Tools, bila melakukan fuzz testing pada aplikasi web, saya dapat menggunakan tool yang ada di menu Kali Linux, Web Applications, Web Application Fuzzers. Disini saya dapat menggunakan tool yang lebih ‘user-friendly’ dan berbasis GUI seperti Burp dan Zed Attack Proxy (ZAP).

Fuzz testing pada Burp dilakukan dengan memilih tab Intruder dan memilih salah satu jenis payload yang diujikan seperti Illegal Unicode. Pada ZAP, saya dapat memilih tab Active Scan untuk mencari celah keamanan pada URL yang telah diperoleh oleh spider. ZAP akan melakukan beberapa pemeriksaan, termasuk diantaranya adalah Cross Site Scripting (XSS), SQL Injection dan CRLF injection. Untuk melakukan fuzz testing pada URL tunggal di ZAP, saya perlu memilih sebuah parameter atau header di bagian Request, kemudian men-klik kanan dan memilih Fuzz…. Pada dialog yang muncul, saya dapat memilih fuzzer yang akan dipakai, seperti jbrofuzz/Buffer Overflows, jbrofuzz/Format String Errors, jbrofuzz/Integer Overflows, jbrofuzz/SQL Injection, dan sebagainya.

Memakai Maltego Di Kali Linux

Definisi Open Source Intelligence (OSINT) berdasarkan departemen pertahanan (DoD) Amerika adalah inteligensi yang diperoleh dari informasi yang tersedia untuk publik yang dikumpulkan, diolah dan disebarkan kepada pihak tertentu untuk keperluan intelijen tertentu. Istilah open source disini tidak ada hubungannya dengan kode program. Secara gamblang, OSINT dilakukan dengan mengumpulkan data yang dapat diperoleh secara publik, misalnya sesuatu yang dapat dicari di Google. Berbeda dengan hasil pencarian search engine, sebuah layer presentasi untuk OSINT hanya menampilkan data yang relevan dan dalam format yang mudah ditelusuri sehingga pengguna dapat mencari hubungan dari hasil yang ditemukan.

Maltego adalah sebuah tools yang dibuat dari Java untuk keperluan OSINT. Tool ini telah tersedia di Kali Linux sehingga siap untuk dipakai. Maltego dibedakan menjadi versi komersial (commercial edition) dan versi gratis (community edition). Versi gratis yang tersedia di Kali Linux hanya dapat menampilkan maksimal 12 hasil transformasi dan membutuhkan proses registrasi. Sebagai sebuah front-end untuk server OSINT, Maltego versi gratis hanya dapat memakai layanan server milik Paterva.

Karena versi yang disediakan oleh Kali Linux adalah versi gratis dari Maltego, saya perlu mendaftarkan sebuah akun terlebih dahulu di situs https://www.paterva.com/web6/community/maltego/index.php.

Saya dapat menjalankan Maltego dengan memberikan perintah berikut ini:

# maltego

Pada saat pertama kali dijalankan, layar Welcome to Maltego! akan muncul. Setelah men-klik tombol Next, saya perlu email dan password sesuai dengan yang saya pakai pada saat mendaftar sebelumnya. Setelah men-klik Next, proses login akan dilakukan. Bila berhasil, saya akan memperoleh API key yang aktif selama dua hari (setelah itu, saya perlu mengaktifkannya kembali). Saya kemudian men-klik tombol Next dua kali. Pada langkah terakhir, saya memilih Run a machine (NEW!!) dan men-klik tombol Finish.

Pada dialog yang muncul, saya dapat memilih jenis pekerjaan yang akan dilakukan. Disini saya dapat memilih untuk mencari email address yang berkaitan dengan sebuah perusahaan atau seseorang, tweet yang mengandung kata tertentu, atau informasi lebih lanjut mengenai sebuah URL. Sebagai latihan, saya memilih Footprint L3 untuk mencari informasi lebih lanjut mengenai sebuah domain. Setelah men-klik tombol Next, saya dapat memasukkan nama domain, anggap saja test.com. Setelah itu, saya men-klik tombol Finish.

Saya akan menemukan window Running machine yang sedang bekerja di sisi kanan workspace. Selain itu, terdapat dialog yang memberikan panduan filter dimana saya harus memilih nama domain yang relevan dan men-klik tombol Next agar progress dapat berlanjut.

Maltego akan menampilkan informasi dalam bentuk tree dimana setiap node selalu terhubung ke node lainnya. Setiap node dapat disusun sedemikian rupa oleh pengguna agar mudah dibaca. Sebuah node dalam tree di Maltego disebut sebagai entity. Sebuah entity mewakili informasi seperti nama DNS, alamat email, akun Facebook, nomor telepon, dan sebagainya.

Melihat hubungan antar setiap entity saja tidak cukup. Bila saya men-klik kanan sebuah entity, saya akan menemukan menu Run Transform yang dapat saya pakai untuk menghasilkan sebuah entity baru dari yang sudah ada.

Sebagai contoh, saya ingin mencari tahu apa saja email (berdasarkan hasil search engine) yang berkaitan dengan entity berupa sebuah domain. Bila domain dimiliki oleh sebuah perusahaan, maka biasanya yang dikembalikan adalah alamat email karyawannya. Saya men-klik kanan entity domain tersebut, kemudian memilih Run Transform, Email addresses from Domain, To Emails @domain [using Search Engine]. Maltego akan menciptakan beberapa entity baru yang mewakili email yang ditemukan. Entity baru tersebut akan memiliki link (terhubung) ke entity domain (sebagai sumber transformasi).

Saya kemudian memilih salah satu dari entity yang mewakili email yang ditemukan. Saya kemudian men-klik kanan entity tersebut, memilih Run Transform, Related Email Addresses, All in this set. Maltego akan kembali membuat beberapa entity email baru yang merupakan email yang berhubungan dengan email yang saya pilih. Sama seperti pencarian melalui search engine, tidak selamanya hasil yang dikembalikan akurat, jadi saya masih perlu memilah mana yang relevan. Bila setelah penesuluran saya menemukan entity yang salah, saya dapat memilih entity tersebut beserta seluruh children-nya dengan men-klik tombol Select Children atau Add Children di menu Investigate lalu menekan tombol Del di keyboard. Setelah melakukan transformasi To URLs [Show search engine results], saya menemukan beberapa URL menarik yang berhubungan dengan si pemilik email.

Bila investigasi dilakukan pada entity berupa website, Maltego dapat menampilkan relasi ke entity lain dalam jenis BuiltWith Technology seperti entity Google Webmaster, jQuery, Quantcast Measurement, dan sebagainya.

Kesimpulannya: Saya dapat memperoleh semua informasi yang ada dengan menggunakan search engine, tool whois, menganalisa HTML dan sebagainya. Tetapi cara manual tentu saja lebih repot. Front-end OSINT seperti Maltego mempermudah pekerjaan saya dengan menyediakan cara gampang untuk memahami atau mencari pola dari sekian banyak informasi yang ada.

Mencari Password Dengan Kali Linux

Kali Linux adalah penerus distro BackTrack. Sama seperti BackTrack, distro ini dilengkapi dengan berbagai tools Linux untuk melakukan penetration testing. Dengan Kali Linux, pengguna yang melakukan pengujian keamanan tidak perlu repot men-install atau membuat kode program/script baru. Efek sampingnya: distro Linux seperti ini juga kerap disalahgunakan oleh script kiddie. Istilah script kiddie adalah sebutan untuk orang yang menjalankan tool dan mengikuti panduan tanpa memahami apa yang dilakukan oleh dirinya. Hal ini berbeda dari hacker yang memahami setiap aksi yang dilakukannya dan mampu membuat tool/script-nya sendiri. Dibutuhkan waktu bertahun-tahun untuk mempelajari jaringan komputer dan sistem komputer; script kiddie mengabaikan kenyataan ini dengan memakai tools atau panduan singkat yang ‘script kiddie’-friendly. Fakta bahwa script kiddie dapat men-download dan menjalankan tools yang ada di Kali Linux secara bebas menunjukkan bahwa ancaman terhadap keamanan komputer semakin besar.

Pada kesempatan ini, saya akan mencoba beberapa tool di Kali Linux yang dapat dipakai untuk mencari password (menguji apakah password aman). Sebagai percobaan, saya akan mencoba mencari password pada router yang saya pakai. Router tersebut (IP 192.168.1.1) memiliki interface web dengan memakai basic authentication dari HTTP.

Untuk mencari password router tersebut, saya dapat memakai tool yang ada di Applications, Kali Linux, Password Attacks, Online Attacks. Saya dapat menggunakan salah satu dari tool berikut ini: burpsuite, hydra, medusa, ncrack, patator, phrasendrescher. Tool tersebut pada dasarnya memiliki fungsi umum yang sama, hanya dibuat oleh pihak yang berbeda. Saya akan memakai tool hydra pada percobaan ini.

Secara garis besar, ada dua cara untuk menemukan sebuah password.

Cara pertama adalah dengan mencoba seluruh kombinasi password yang ada. Cara ini membutuhkan waktu yang sangat lama dan hampir mustahil bila pengguna memakai password yang panjang. Sebagai contoh, anggap saja pengguna membuat password 6 karakter yang terdiri atas huruf A sampai Z. Kombinasi password yang mungkin dapat dihitung dengan rumus 26^6 (26 x 26 x 26 x 26 x 26 x 26) dimana hasilnya adalah 308.915.776 kombinasi. Bila seandainya dalam 1 menit saya dapat memproses 600 kombinasi, maka waktu yang saya butuhkan untuk menemukan password adalah 514.859 menit atau 8.580 jam atau 358 hari. Butuh waktu hampir setahun. Ini masih belum menyertakan karakter seperti huruf kecil, angka dan simbol. Btw, kinerja brute force masih dapat ditingkatkan lagi dengan memakai mesin yang lebih cepat dan mendistribusikannya pada beberapa komputer yang berbeda.

Untuk melakukan brute force dengan hydra, saya dapat memberikan perintah seperti berikut ini:

# hydra -l admin -x 6:6:A 192.168.1.1 http-get /

Pada perintah di atas, saya menganggap nama user selalu adalah admin. Tool tersebut akan mencoba kombinasi 6 karakter dari seluruh huruf kapital A-Z. Bila saya ingin men-pause operasi brute force, saya dapat menekan tombol CTRL+C. Hydra akan membuat file hydra.restore di lokasi direktori yang sedang aktif. Untuk melanjutkan proses brute foce, saya cukup memberikan perintah berikut ini:

# hydra -R

Kesimpulannya: Walaupun teknik brute force memiliki hasil yang lebih pasti, ia membutuhkan waktu yang lama.

Cara kedua adalah dengan menggunakan daftar kata (dictionary attack). Pada metode ini, daripada mencoba kombinasi karakter yang mungkin, saya mencoba menggunakan password yang umum digunakan (misalnya berdasarkan daftar kata di kamus). Kali Linux sudah menyediakan daftar password umum di lokasi /usr/share/wordlists. Saya hanya perlu men-unzip-nya dengan perintah seperti berikut ini:

# cd /usr/share/wordlists/
# gunzip rockyou.txt.gz
# ls -l
total 136644
-rw-r--r-- 1 root root 139921507 Mar  3  2013 rockyou.txt

Selain itu, tool ncrack dilengkapi beberapa daftar password yang dapat saya pakai di tools lainnya. Saya dapat melihatnya dengan perintah seperti berikut ini:

# cd /usr/share/ncrack
# ls -hs
total 923K
6.5K common.usr
3.5K default.usr
512  minimal.usr
512  ncrack-services
402K top50000.pwd
46K  default.pwd
22K  jtr.pwd
385K myspace.pwd
58K  phpbb.pwd

Untuk menggunakan sebuah file berisi daftar kata sebagai password pada hydra, saya memberikan perintah seperti berikut ini:

# hydra -l admin -P /usr/share/wordlists/rockyou.txt 192.168.1.1 http-get /

Teknik ini tidak selalu berhasil, tetapi biasanya dicoba terlebih dahulu sebelum penyerang nekat menggunakan brute force.

Pada kategori Password Attacks, Online Attacks, juga ada tool seperti burpsuite, webscarab, dan zaproxy. Ketiganya adalah aplikasi Java dengan GUI yang bekerja sebagai web proxy yang dilengkapi fasilitas spider, scanner, dan sebagainya. Versi burpsuite yang ada pada Kali Linux adalah versi free edition dengan kemampuan yang lebih terbatas. Walaupun demikian, tab Intruder tetap dapat dipakai untuk mendefinisikan payload berdasarkan HTTP request yang di-capture oleh proxy tersebut. Pilih payload type berupa Brute forcer untuk melakukan brute force atau pilih Runtime file untuk melakukan dictionary attack berdasarkan file daftar kata. Sayangnya, pada versi free edition, terdapat batas waktu saat melakukan eksekusi ‘serangan’.

Kesimpulannya: Gunakan password dengan jumlah karakter yang panjang dan beberapa kombinasi karakter (huruf, angka, dan simbol) untuk menjaga password dari serangan brute force. Jangan memakai password umum seperti abc123, iloveu, h3av3n dan sebagainya karena mereka biasanya sudah terdaftar di kamus yang dipakai untuk dictionary attack. Selain itu, sebagai developer, jangan membolehkan pengguna untuk memasukkan password yang salah berkali-kali tanpa batas (karena bisa saja proses brute force atau dictionary attack sedang berlangsung).