John The Ripper


An extremely powerful and adaptable hash cracking tool

John the Ripper adalah alat pemecah hash yang populer dan serbaguna. Hash adalah metode untuk mengonversi data menjadi nilai tetap menggunakan algoritma seperti MD5, SHA1, dan NTLM. Hash dirancang agar sulit untuk membalikkan hasilnya menjadi data asli, sehingga aman. Dalam pemecahan hash, algoritma hashing mudah dihitung, tetapi menemukan input asli dari hash (membalik hash) sangat sulit secara komputasi.

Meskipun sulit dibalikkan, hash masih bisa dipecahkan menggunakan serangan kamus. John the Ripper membantu dalam serangan brute force untuk membandingkan hash dengan kata-kata yang dihasilkan, sehingga memungkinkan pemecahan hash.


Setting Up John The Ripper


- Parrot, Kali
sudo apt install john - Blackarch
untuk memeriksa apakah Anda telah menginstalnya, gunakan perintah : pacman -Qe | grep "john" jika belum ada, Anda dapat menggunakan perintah pacman -S john - Building from Source for Linux
git clone https://github.com/openwall/john -b bleeding-jumbo john
cd john/src/
./configure
"make -s clean && make -sj4" untuk membuat biner John. Biner ini akan berada di direktori run di atas, yang dapat Anda ubah dengan "cd ../run"
- Menginstal di Windows
Untuk menginstal Jumbo John the Ripper di Windows, Anda hanya perlu mengunduh dan menginstal biner zip untuk sistem 64 bit di sini atau untuk sistem 32 bit di sini.


Wordlists


Untuk melakukan dictionary attack hashes, Anda memerlukan wordlist yang dapat Anda hash dan bandingkan, tidak mengherankan ini disebut wordlist. Ada banyak wordlist yang berbeda di luar sana, koleksi yang bagus untuk digunakan dapat ditemukan di repositori SecLists.
RockYou merupakan Wordlist Password umum yang sangat besar, yang diperoleh dari pelanggaran data pada situs web bernama rockyou.com pada tahun 2009. Anda bisa mendapatkan worlist rockyou.txt dari repositori SecLists di bawah /Passwords/Leaked-Databases Anda mungkin perlu mengekstraknya dari format .tar.gz, menggunakan tar xvzf rockyou.txt.tar.gz


John Basic Syntax

john [options] [path to file] john Memanggil program John the Ripper
[path to file] Berkas yang berisi hash yang ingin Anda pecahkan, jika ada pada direktori yang sama, Anda tidak perlu memberi nama jalurnya, cukup berkasnya saja.

Automatic Cracking
john --wordlist=[path to wordlist] [path to file] --wordlist= Menentukan penggunaan mode wordlist, membaca dari berkas yang Anda berikan di jalur berikut
[path to wordlist] Jalur ke wordlist yang Anda gunakan.
[path to file] path file

Example : john --wordlist=/usr/share/wordlists/rockyou.txt hash_to_crack.txt
Identifying Hashes
Seperti menggunakan pengenal hash online seperti hashes.com, atau menggunakan alat yang disebut hash-identifier
Untuk menggunakan hash-identifier, Anda cukup menarik file python dari gitlab menggunakan: wget https://gitlab.com/kalilinux/packages/hash-identifier/-/raw/kali/master/hash-id.py untuk menjalnakanya menggunakan perintah : python3 hash-id.py
Format-Specific Cracking john --format=[format] --wordlist=[path to wordlist] [path to file] --format= Format Hash
--wordlist= Path wordlist
[path to file] path File
Example : john --format=raw-md5 --wordlist=/usr/share/wordlists/rockyou.txt hash_to_crack.txt
A Note on Formats:
Saat menggunakan John the Ripper untuk tipe hash standar, seperti MD5, Anda perlu menambahkan awalan "raw-" untuk menunjukkan bahwa itu hash standar. Namun, ini tidak selalu berlaku untuk semua tipe hash. Untuk mengetahui apakah awalan diperlukan, Anda dapat mencantumkan semua format hash yang didukung John dengan perintah john --list=formats atau memfilter tipe hash tertentu, seperti MD5, menggunakan john --list=formats | grep -iF "md5"


Cracking Basic Hashes

Hash1 '2e728dd31fb5949bc39cac5a9f066498'
Hash2 '1A732667F3917C0F4AA98BB13011B9090C6F8065'
Hash3 'D7F4D3CCEE7ACD3DD7FAD3AC2BE2AAE9C44F4E9B7FB802D73136D4C53920140A'
Hash4 'c5a60cc6bbba781c601c5402755ae1044bbf45b78d1183cbf2ca1c865b6c792cf3c6b87791344986c8a832a0f9ca8d0b4afd3d9421a149d57075e1b4e93f90bf'

1. Identifying Hashes Online hash-identifier
2. Identifying Hashes Manual python3 hash-id.py
john --format=[format] --wordlist=[path to wordlist] [path to file]
john --format=raw-MD5 --wordlist=/uer/share/wordlist/rockyu.txt Contoh_Hash1.txt


Cracking Windows Authentication Hashes

Hash '5460C85BD858A11475115D2DD3A82333'
john --list=formats | grep -iF "NTLM"
john --format=NT --wordlist=/uer/share/wordlist/rockyu.txt Contoh_Hash_NTLM.txt


Cracking /etc/shadow Hashes

File /etc/shadow adalah file pada komputer Linux tempat hash kata sandi disimpan. File ini juga menyimpan informasi lain, seperti tanggal perubahan kata sandi terakhir dan informasi kedaluwarsa kata sandi. Berisi satu entri per baris untuk setiap pengguna atau akun pengguna sistem. Berkas ini biasanya hanya dapat diakses oleh pengguna root, jadi untuk mendapatkan hash, Anda harus memiliki hak istimewa yang cukup, tetapi jika Anda memilikinya, ada kemungkinan Anda akan dapat memecahkan beberapa hash.

Unshadowing
Untuk memecahkan kata sandi di file /etc/shadow menggunakan John the Ripper, file tersebut perlu digabungkan dengan file /etc/passwd agar John dapat bekerja dengan format yang tepat. Ini dilakukan menggunakan alat bawaan John yang disebut unshadow.
Sintaks dasar untuk menggabungkan file /etc/passwd dan /etc/shadow adalah: unshadow [path to passwd] [path to shadow] unshadow Memanggil Tools unshadow
[path to passwd] File yang berisi salinan file /etc/passwd yang Anda ambil dari mesin target
- Berisi baris /etc/passwd untuk pengguna root:
- root:x:0:0::/root:/bin/bash
[path to shadow] File yang berisi salinan file /etc/shadow yang Anda ambil dari mesin target
- Berisi baris /etc/shadow untuk pengguna root:
- root:$6$2nwjN454g.dv4HN/$m9Z/r2xVfweYVkrr.v5Ft8Ws3/YYksfNwq96UL1FX0OJjY1L6l.DS3KEVsZ9rOVLB/ldTeEL/OIhJZ4GMFMGA0:18576::::::

Example : unshadow local_passwd local_shadow > unshadowed.txt
or
unshadow /etc/passwd /etc/shadow > unshadowed.txt
Cracking
Kita tidak perlu menentukan mode di sini karena kita telah membuat input khusus untuk John, namun dalam beberapa kasus Anda perlu menentukan format seperti yang telah kita lakukan sebelumnya menggunakan: --format=sha512crypt john --wordlist=/usr/share/wordlists/rockyou.txt --format=sha512crypt unshadowed.txt
or
john unshadowed.txt --show --format=sha512crypt


Single Crack Mode

John the Ripper memiliki mode lain selain wordlist mode, yaitu Single Crack Mode. Dalam mode ini, John menggunakan informasi dari username untuk mencoba menemukan kemungkinan kata sandi dengan mengubah sedikit huruf dan angka dalam username tersebut secara heuristik.

Word Mangling
Contoh word mangling adalah jika kita memiliki username "Markus", kemungkinan password yang dihasilkan bisa berupa:
. Markus1, Markus2, Markus3 (dsb.)
. MArkus, MARkus, MARKus (dsb.)
. Markus!, Markus$, Markus* (dsb.)

John membangun kamus sendiri berdasarkan informasi yang diberikan dan menggunakan aturan yang disebut "mangling rules" untuk memodifikasi kata yang diberikan menjadi daftar kata yang relevan untuk menebak kata sandi.

GECOS
John juga kompatibel dengan Gecos fields dari sistem operasi UNIX dan sejenisnya. Gecos adalah informasi seperti nama lengkap dan direktori home dari file /etc/shadow atau /etc/passwd yang dapat digunakan John untuk menambah daftar kata yang dihasilkan dalam single crack mode.

Menggunakan Single Crack Mode
Untuk menggunakan mode ini, sintaksnya mirip dengan yang digunakan sebelumnya, seperti: john --single --format=[format] [path to file] Contoh : john --single --format=raw-sha256 hashes.txt Catatan Format File
Dalam single crack mode, file hash harus dimodifikasi dengan menambahkan username sebelum hash, misalnya:
Sebelum : 1efee03cdcb96d90ad48ccc7b8666033 Sesudah : mike:1efee03cdcb96d90ad48ccc7b8666033


Custom Rules

Dalam Single Crack Mode John the Ripper, Anda dapat membuat custom rules untuk menentukan pola mangling kata sandi yang sesuai dengan informasi yang Anda ketahui tentang target. Ini sangat berguna jika Anda memahami struktur kata sandi yang digunakan oleh target, misalnya, karena persyaratan kompleksitas kata sandi di organisasi tertentu.

Contoh Custom Rules Umum
Misalnya, banyak organisasi mewajibkan kata sandi memiliki huruf kapital, angka, dan simbol. Pola yang sering digunakan adalah meletakkan huruf kapital di awal, diikuti oleh angka dan simbol di akhir, seperti:
Polopassword1!
Sebagai penyerang, kita dapat memanfaatkan pola ini untuk memprediksi lokasi elemen-elemen tambahan tersebut dan membuat kata sandi dinamis dari wordlist.

Cara Membuat Custom Rules
Custom rules didefinisikan dalam file john.conf biasanya terletak di /etc/john/john.conf. Misalnya, jika target kita adalah pola seperti di atas, kita bisa menulis aturan sebagai berikut:
- [List.Rules:....] - Menentukan nama aturan yang akan digunakan saat memanggil custom rule sebagai argumen di John.
- Az - Menambahkan karakter di akhir kata.
- A0 - Menambahkan karakter di awal kata.
- c - Mengkapitalisasi huruf berdasarkan posisinya.

Berikut adalah contoh set karakter yang bisa digunakan:
- [0-9] - Menyertakan angka 0-9
- [A-Z] - Menyertakan huruf kapital A-Z
- [a-z] - Menyertakan huruf kecil a-z
- [!£$%@ - Menyertakan simbol-simbol seperti !£$%@.

Contoh Implementasi
Untuk menyesuaikan pola Polopassword1!, kita dapat menulis aturan berikut: [List.Rules:PoloPassword]
cAz"[0-9] [!£$%@]"
- c - Mengkapitalisasi huruf pertama.
- Az - Menambahkan huruf besar dan kecil di akhir kata.
- [0-9] - Menambahkan angka.
- [!£$%@] - Menambahkan simbol.

Menggunakan Custom Rules
john --wordlist=[path to wordlist] --rule=PoloPassword [path to file]

Cracking Password Protected Zip Files

Untuk memecahkan file Zip yang diProtected password, kita bisa menggunakan John the Ripper. Langkah-langkahnya melibatkan penggunaan alat zip2john untuk mengonversi file zip menjadi format hash yang dapat dipahami oleh John.

Zip2John
Sama seperti alat unshadow, zip2john mengonversi file zip ke format hash yang dapat dipecahkan oleh John. Perintah dasarnya seperti ini: zip2john [options] [zip file] > [output file] Keterangan :
[options] Untuk mengatur parameter checksum tertentu (jarang diperlukan).
[zip file] Path file zip yang akan diubah ke hash.
> Ini adalah direktur keluaran, kita menggunakan ini untuk mengirim keluaran dari file ini ke...
[output file] Tempat penyimpanan hasil output.
Contoh penggunaan: zip2john zipfile.zip > zip_hash.txt Cracking
Setelah mendapatkan hash, kita bisa langsung memasukkannya ke John untuk mulai memecahkan password, seperti yang dilakukan pada hash shadow sebelumnya. john --wordlist=/usr/share/wordlists/rockyou.txt zip_hash.txt
Practical
1. Cracking password secure.zip
zip2john secure.zip > secure.txt
John --wordlist=/usr/share/wordlists/rockyou.txt secure.txt

Cracking Password Protected RAR Archives

Memecahkan archives RAR yang Dilindungi Password, Kita dapat menggunakan proses yang mirip dengan yang digunakan untuk file zip untuk mendapatkan password dari archives RAR. Archives RAR adalah file terkompresi yang dibuat oleh manajer archives WinRAR, sama seperti file zip yang dapat mengompres berbagai folder dan file.

Rar2John
Hampir identik dengan alat zip2john, kita akan menggunakan alat rar2john untuk mengonversi file rar menjadi format hash yang dapat dipahami oleh John. Sintaks dasarnya adalah sebagai berikut: rar2john [rar file] > [output file] Keterangan :
rar2john Menjalankan tools rar2john.
[rar file] Path file rar yang ingin di konversi ke hash.
> Ini adalah direktur keluaran, kita menggunakan ini untuk mengirim keluaran dari file ini ke...
[output file] File yang akan menyimpan output hash.
Contoh penggunaan:
rar2john RARfile.rar > rar.txt Cracking
kita dapat mengambil file hash yang dihasilkan dari rar2john, dalam contoh ini bernama "rar.txt", dan memasukkannya langsung ke John: john --wordlist=/usr/share/wordlists/rockyou.txt rar.txt
Practical
1. Cracking password secure.rar
rar2john secure.rar > secure.txt
John --wordlist=/usr/share/wordlists/rockyou.txt secure.txt

Cracking SSH Keys

Untuk memecahkan password pada key privat SSH (id_rsa), kita bisa menggunakan John the Ripper. key privat SSH digunakan untuk login authentication ke remote machine, tetapi biasanya dilindungi dengan password.

SSH2John
ssh2john mengonversi file id_rsa menjadi format hash yang bisa dipecahkan oleh John. Jika ssh2john tidak terpasang, bisa menggunakan ssh2john.py yang biasanya terletak di /opt/john/ssh2john.py atau /usr/share/john/ssh2john.py di Kali Linux.
Sintaks dasarnya adalah: ssh2john [id_rsa private key file] > [output file] Keterangan :
ssh2john Menjalankan tools ssh2john.
[id_rsa private key file] Path file id_rsa yang ingin Anda dapatkan hashnya.
> Ini adalah direktur keluaran, kita menggunakan ini untuk mengirim keluaran dari file ini ke...
[output file] File yang akan menyimpan output hash.
Contoh penggunaan:
ssh2john id_rsa > id_rsa_hash.txt Cracking
Setelah mendapatkan file hash, kita bisa memecahkannya menggunakan John seperti biasa: john --wordlist=/usr/share/wordlists/rockyou.txt id_rsa_hash.txt
Practical
1. crack the hash of the id_rsa file
ssh2john.py kay_rsa > kayhash.txt
john kayhash.txt --wordlist=/usr/share/wordlists/rockyou.txt

Login ssh :
ssh -i kay_rsa [username]@[machine_ip]