Halo teman-teman semua! Selamat datang di tutorial seri terbaru, yaitu studi kasus. Pada seri ini, kita akan bersama-sama membuat sebuah project dari awal sampai jadi. Untuk mengawali seri ini, kita akan membuat sebuah tools sederhana tentang md5 cracking dengan menggunakan nodejs. Teman-teman harus menginstall nodejs terlebih dahulu. Jika belum menginstall, teman-teman dapat membaca tutorial menginstall nodejs. Langsung saja masuk ke pembahasannya.
Disclaimer: Hanya untuk edukasi dan pembelajaran!
Ada beberapa hal yang harus dipersiapkan terlebih dahulu.
Sebelum membuat toolsnya, mari kita ketahui terlebih dahulu mengenai tentang md5, crack, dan hal lainnya.
Dilansir dari wikipedia, MD5 (Message-Digest algorithm 5) adalah fungsi hash kriptografik yang digunakan secara luas dengan hash value 128-bit secara satu arah. Pada standart Internet (RFC 1321), MD5 telah dimanfaatkan secara bermacam-macam pada aplikasi keamanan, dan MD5 juga umum digunakan untuk melakukan pengujian integritas sebuah berkas. Biasanya, MD5 digunakan untuk mengenkripsi password didalam database.
contoh hasil enskipsi dari kata "Solo":
26c04769d2607a2234d4329b7630ed35
Cracking menurut saya adalah sebuah tindakan yang dilakukan secara berulang-ulang kali untuk memecahkan suatu kode/sistem. Karena encrypt MD5 bersifat satu arah, maka untuk memecahkan / mengdecrypt perlu menggunakan metode cracking. Tentu saja ada kemungkinan jika nanti tidak berhasil di decrypt, jika kata yang bersangkutan tidak ada didalam wordlist.
Wordlist adalah sekumpulan rangkaian huruf, angka, simbol yang digunakan untuk mencocokkan suatu password / kata. Semakin banyak rangkaian kata, maka semakin besar peluang berhasil jalannya tools. Untuk wordlistnya, kita dapat membuat sendiri atau mendownloadnya di internet.
Langsung saja kita membuat projectnya, berikut adalah langkah-langkahnya.
Langkah pertama adalah membuat folder "tools-md5" atau teman-teman bebas memberi nama apapun. Disini saya menggunakan CMD untuk membuat folder dan beberapa langkah lainnya. Tunggu sampai proses intalasinya selesai.
Langkah selanjutnya adalah mendownload wordlist. Silahkan teman-teman download file wordlistnya disini, lalu pindah filenya kedalam folder yang sudah kita buat sebelumnya tadi.
Silahkan teman-teman buka folder projectnya di text editor dan buat file baru bernama "index.js". Selanjutnya, tulis script dibawah ini.
console.clear();
const md5 = require('md5');
const fs = require('fs');
const rl = require('readline');
const colors = require('colors');
const gud = rl.createInterface({
input: process.stdin,
output: process.stdout
});
gud.question('[+] Masukan md5 hash: ', (hash) => {
const r = rl.createInterface({
input: fs.createReadStream('wordlist.txt'),
output: process.stdout,
terminal: false
});
let i = 1;
r.on('line', (teks) => {
if (hash == md5(teks.trim())) {
console.log("Ditemukan! => " + teks.green);
r.removeAllListeners();
} else {
console.log("[" + (i++) + "] " + md5(teks.trim()).red)
}
})
r.on('close', () => {
console.log('\nKata tidak ditemukan!')
})
gud.close();
})
Untuk menjalankan programnya, silahkan teman-teman buka kembali CMD dan masuk ke path projectnya tadi. Setelah itu, teman-teman tinggal menjalankan programnya dengan menuliskan:
node index.js
Disitu teman-teman disuruh memasukan md5 hash yang nantinya akan dicrack oleh program. Untuk mencobanya, teman-teman masukan saja terlebih dahulu md5 hash berikut:
d145fb65cbafec20010949a4ec6c167b
Jika teman-teman mengikuti langkah-langkah diatas dengan benar, maka hasil akhir programnya akan seperti ini
Setelah berhasil menjalankan programnya, mari kia breakdwon script diatas agar lebih memahami jalannya program.
console.clear()
const md5 = require('md5');
const fs = require('fs');
const rl = require('readline');
const colors = require('colors');
const gud = rl.createInterface({
input: process.stdin,
output: process.stdout
});
gud.question('[+] Masukan md5 hash: ', (hash) => {
const r = rl.createInterface({
input: fs.createReadStream('wordlist.txt'),
output: process.stdout,
terminal: false
});
let i = 1;
r.on('line', (teks) => {
if (hash == md5(teks.trim())) {
console.log("Ditemukan! => " + teks.green);
r.removeAllListeners();
}
else {
console.log("[" + (i++) + "] " + md5(teks.trim()).red)
}
});
r.on('close', () => {
console.log('\nKata tidak ditemukan!')
})
gud.close();
})
Itu tadi adalah tools simple untuk mencocokkan md5 hash secara berulang-ulang atau bisa disebut md5 crack. Sampai jumpa di studi kasus lainnya :)