Fungsi hash adalah istilah umum untuk jenis fungsi. Masukan dari jenis fungsi ini adalah data biner sewenang-wenang, dan keluaran adalah data biner dengan panjang tetap, fungsi jenis ini memiliki karakteristik sebagai berikut:
Satu arah: Sederhana dan cepat untuk menghitung keluaran dari masukan, tetapi secara matematis tidak layak untuk menyimpulkan masukan dari keluaran
Batasan tabrakan: Sangat sulit menemukan dua masukan berbeda dengan keluaran yang sama
Fungsi yang memenuhi karakteristik ini dapat disebut fungsi hash. Menggunakan data tertentu sebagai masukan fungsi hash, keluaran dihitung. Keluaran ini biasanya disebut nilai hash dari data.
Salah satu fungsi utama dari fungsi hash adalah menyimpan kata sandi dengan aman. Tidak menyimpan kata sandi secara langsung (yaitu tidak menyimpan kata sandi teks biasa), tetapi menyimpan nilai hash dari kata sandi. Anda hanya perlu menghitung kembali kata sandi yang dimasukkan. Anda dapat mengetahui apakah kata sandi tersebut benar dengan membandingkan nilai hash dengan nilai hash kata sandi yang disimpan. Karena sifat satu arah dari fungsi hash dan karakteristik batasan tabrakan, bahkan jika penyerang memperoleh nilai hash dari kata sandi, sulit untuk mengetahui kata sandi itu sendiri.
Penyerang mendapatkan nilai hash dari kata sandi, apakah benar-benar tidak ada cara untuk mengetahui kata sandi itu sendiri? Tentu saja tidak. Meskipun secara matematis tidak layak untuk menghitung kata sandi itu sendiri secara langsung dari nilai hash kata sandi, kita tahu bahwa fungsi hash sederhana dan cepat untuk menghitung output dari input. Paling buruk, Anda bisa mencobanya. Hanya kata sandi yang dapat ditetapkan oleh manusia. Cobalah satu per satu, jika beruntung, Anda masih bisa mencobanya. Operasi dengan terus-menerus mencoba mendapatkan masukan yang sesuai dengan nilai hash disebut peledakan.
Berdasarkan gagasan ini, hashcat muncul. Dikatakan bahwa hashcat lahir untuk membuktikan bahwa meledakkan hash sangat sederhana. hashcat mengklaim dirinya sebagai alat peledakan hash tercepat di dunia, dan bahkan mendukung GPU dan FGPA, jika Anda memilikinya.
hashcat tidak hanya cepat, tetapi juga mendukung lebih dari 200 fungsi hash secara profesional. Gunakan perintah:
hashcat - -bantuan
Anda dapat melihat daftar semua fungsi hash yang didukung oleh hashcat, terlalu banyak dan saya tidak akan mempostingnya di sini.
hashcat diinstal secara default di Kali dan dapat digunakan langsung. Tapi Kali saya terinstal di VirtualBox, dan saya selalu merasa bahwa mesin virtual lebih lambat, jadi saya ingin menggunakan hashcat di host fisik. Pertama kunjungi situs resmi hashchat untuk mengunduh hashcat. Hingga saat ini, versi terbaru adalah v3.5.0, yang dirilis pada 2017.04.05. Dari tanggal pembaruan, terlihat bahwa hashchat penuh vitalitas. Menghilangkan kesulitan kompilasi dan langsung mengunduh paket biner, hanya 2,7M, yang sangat kecil dibandingkan dengan game dengan berat puluhan G.
Setelah pengunduhan selesai, buka hashcat dan lihat:
File seperti itu adalah file yang dapat dieksekusi di linux dan windows di bawah 32-bit dan 64-bit. Pilih saja salah satunya sesuai dengan kondisi komputer Anda. Saya memilih hashcat64.bin. Demi kecantikan, saya menambahkan baris di file ~ /. bashrc:
alias hashcat = ' Jalur ke hashcat64.bin '
Setelah menyimpan, buka kembali terminal virtual untuk membuat file ~ /. bashrc berlaku. Dengan cara ini, di mana pun Anda berada, Anda dapat langsung memasukkan perintah hashcat, tanpa beralih direktori atau memasukkan "64.bin" yang jelek, seperti yang ditunjukkan pada gambar di bawah ini.
Nah, sekarang Anda bisa mulai menggunakan hashcat untuk meledakkan berbagai hash.
MD5 seharusnya menjadi salah satu fungsi hash yang paling terkenal dan banyak digunakan. Pertama gunakan Python untuk menghasilkan beberapa nilai MD5 untuk peledakan, kodenya adalah sebagai berikut:
import hashlib Kata Sandi = [' 123123 ', ' obligasi007 ', ' xxxxxx ', ' *H@ & (NT*@BR#^ '] Untuk kata sandi di kata sandi: MD5 = hashlib.MD5 () MD5.update (kata sandi) print MD5.hexdigest ()
Kode di atas menghitung nilai hash dari empat string masing-masing, dan hasilnya adalah:
4297f44b13955235245b2497399d7a93 cbdb7e2b1ed566ceb796af2df07205a3 dad3a37aa9d50688b5157698acfd7aee d77db958c179bbffae04b2b908b75c26
Simpan hasil keluaran di file MD5.hash, satu nilai hahs per baris. Kemudian gunakan hashcat untuk meledakkan nilai hash ini, perintahnya adalah sebagai berikut:
hashcat -w 3 -a 0 -m 0 - -Hapus -o MD5.out MD5.hash wordlist.dic
Parameter-w digunakan untuk menentukan mode kerja, ada empat jenis, seperti yang ditunjukkan pada tabel berikut:
| N | Kinerja | Waktu berjalan | Konsumsi daya | Dampak Desktop |
|---|---|---|---|---|
| 1 | Rendah | 2 ms | Rendah | Minimal |
| 2 | Default | 12 ms | Ekonomi | Terlihat |
| 3 | Tinggi | 96 ms | tinggi | tidak responsif |
| 4 | mimpi buruk | 480 ms | gila | tanpa kepala |
Parameter-a digunakan untuk menentukan mode serangan. Arti 0 adalah langsung dan kontinu, yaitu diledakkan dengan kamus kata sandi. Ada lima nilai-a, seperti yang ditunjukkan pada tabel berikut:
| N | Mode |
|---|---|
| 0 | Lurus |
| 1 | Kombinasi |
| 3 | Gaya kasar |
| 6 | Masker Daftar Kata Hibrida |
| 7 | Daftar Kata Masker Hibrida |
-m Digunakan untuk menentukan hash yang akan diledakkan Fungsi hash nilai, 0 berarti fungsi hash adalah MD5, dan nilai lainnya ditunjukkan pada tabel berikut:
| N | nama | kategori |
|---|---|---|
| 0 | MD5 | Hash mentah |
| 300 | MySQL4.1/MySQL5 | Server basis data |
| 1000 | NTLM | Sistem operasi |
| 1800 | sha512crypt $6$, SHA512 (Unix) | Sistem operasi |
| 2611 | vBulletin < v3.8.5 | Forum, CMS, e-niaga, kerangka kerja |
Tabel ini terlalu panjang. Saya hanya akan menunjukkan beberapa fungsi hash yang terlibat dalam artikel ini. Anda dapat melihat semuanya dengan parameter – bantuan.
Arti parameter – hapus adalah jika nilai hash berhasil diledakkan, nilai tersebut akan dihapus dari MD5.hash.
Parameter-o diikuti dengan nama file yang menunjukkan tempat hasil peledakan disimpan.
Dua parameter terakhir MD5.hash dan wordlist.dic masing-masing adalah nilai hash dan kamus kata sandi yang akan diledakkan. Nilai hash dan kamus kata sandi keduanya satu per baris. Isi di MD5.hash telah dihitung oleh Python. Jika Anda tidak memiliki kamus kata sandi yang sesuai, Anda dapat menggunakan perintah:
wget -O wordlist. dic https://samsclass.info/123/proj10/500_passwords.txt
下载一个。现在完事具备,按下回车,结果华丽地报错:(
clGetPlatformIDs(): CL_PLATFORM_NOT_FOUND_KHR
Mungkin ada lingkungan pengoperasian yang hilang, jadi instal saja. Saya menginstal hal-hal ini secara total:
sudo apt-get install gcc make p7zip-full git lsb-core wget http://registrationcenter-download.intel.com/akdlm/irc_nas/9019/opencl_runtime_16.1.1_x64_ubuntu_6.4.0.25.tgz tar -xvf opencl_runtime_16.1.1_x64_ubuntu_6.4.0.25.tgz cd opencl_runtime_16.1.1_x64_ubuntu_6.4.0.25 sudo . /install.sh
Jika kecepatan jaringan bagus, itu akan dipasang dalam waktu singkat. Perintah pertama melaporkan kesalahan:
/sbin/ldconfig.real: /usr/lib/nvidia-375/libEGL.so.1 adalah bukan a simbolis link /sbin/ldconfig.real: /usr/lib32/nvidia-375/libEGL.so.1 adalah bukan a simbolis link
Tapi sepertinya tidak mempengaruhi apa pun, abaikan saja. Setelah menginstal ini, tekan Enter lagi dan jalankan perintah kesalahan asli. Ternyata tidak ada kesalahan lagi, dan eksekusi selesai dalam sekejap. Setelah perintah dieksekusi, periksa isi file MD5.hash dan MD5.out dan temukan bahwa hanya ada satu hash yang tersisa di MD5.hash. Tiga hash yang berhasil diledakkan telah ditransfer ke file MD5.out. MD5.out Ada tiga nilai hash dan nilai aslinya, seperti yang ditunjukkan pada gambar di bawah ini:
Nilai hash kata sandi login Windows disimpan dalam file SAM, SAM adalah singkatan dari "security account manager". Biasanya terletak di
C: \Windows\system32\config\SAM
File SAM dilindungi oleh Windows dan tidak dapat dibaca secara langsung, dan memerlukan bantuan alat seperti SAMInside. Temukan mesin virtual Windows 7, buat pengguna administrator baru bernama hashcat, atur kata sandi, unduh dan buka SAMInside di Windows 7, jalankan dengan izin administrator, lalu klik File- > Impor Pengguna Lokal ke Penjadwal, seperti yang ditunjukkan pada gambar di bawah:
Setelah itu SAMInside mungkin "tidak merespons", tetapi tidak masalah, tunggu dengan sabar beberapa detik, SAMInside memenuhi harapan dan membaca hash yang kami inginkan, seperti yang ditunjukkan pada gambar di bawah ini:
Pilih pengguna "hashcat" yang ingin kami ledakkan kata sandi, tekan Ctrl +5 untuk menyalin NT-hash, lalu kembali ke Ubuntu dengan hashcat terinstal, gunakan perintah berikut untuk menyimpan nilai hash yang disalin ke File win7.hash:
gema 356CEAE0C89FB65ED6D6AA7A445C4CE5 > win7.hash
356ceae0c89fb65ed6d6aa7a445c4ce5: rush2112
Untuk cara mendapatkan file SAM, silakan merujuk ke "Cara Mengekspor Windows Hash Series 1". Berikut ini mencatat proses saya membaca file SAM di mesin virtual Windows 7.
Jika mesin fisik, gunakan Win PE untuk memulai mesin dan membaca file SAM di disk. Milik saya adalah mesin virtual, dan saya dapat membaca file di disk virtual dengan memasang file disk virtual ke sistem file. Mesin virtual yang saya gunakan adalah VirtualBox, yang dapat dilakukan dengan perintah vdfuse. Jika tidak ada vdfuse, Anda perlu menginstal virtualbox-fuse terlebih dahulu:
sudo apt-get install virtualbox-fuse
Anda juga dapat mengunduh paket instalasi virtualbox-fuse untuk diinstal sendiri.
Setelah instalasi selesai, ada perintah vdfuse, yang dapat memulai pemetaan dan pemasangan disk virtual:
mkdir -p ~ /vmdisk sudo vdfuse -t vmdk -f Win7Pro32.vmdk ~ /vmdisk/
Setelah melakukan langkah ini, periksa direktori ~ /vmdisk, yang memiliki tiga file: EntireDisk, Partition1 dan Partition2, direktori baru:
mkdir -p ~ /vmdisk_en mkdir -p ~ /vmdisk_1 mkdir -p ~ /vmdisk_2
Gunakan perintah mount untuk memasang tiga file EntireDisk, Partition1 dan Partition2 masing-masing:
sudo mount ~ /vmdisk/EntireDisk ~ /vmdisk_en sudo mount ~ /vmdisk/Partition1 ~ /vmdisk_1 sudo mount ~ /vmdisk/Partition2 ~ /vmdisk_2
Ditemukan bahwa pemasangan seluruh disk gagal. Isi di Partition1 bukan apa yang saya inginkan, Partition2 adalah file di mesin virtual Windows 7, persis seperti yang saya inginkan. Salin file SAM target kami dari vmdisk_fs:
cp ~ /vmdisk_2/Windows/System32/config/SAM . /
Ngomong-ngomong, salin file sistem juga:
cp ~ /vmdisk_2/Windows/System32/config/SYSTEM . /
Melihat isi file SAM, seperti pada gambar di bawah ini, ternyata bukan file teks biasa, memang ala Windows,
Nah, meskipun file SAM berhasil dibuka, tetapi kita masih belum mendapatkan hash, apa yang harus kita lakukan jika kita mengubahnya selanjutnya? Anda hanya dapat menggunakan alat untuk menguraikan isi file SAM. Masukkan file sam dan file sistem ke Kali, jalankan perintah:
samdump2 -o sam.hash sistem sam
Kemudian periksa sam.hash, Anda juga dapat melihat nilai hash dari kata sandi login setiap pengguna. Setiap baris dalam file sam.hash adalah pengguna, dan format setiap baris adalah:
Nama pengguna: RID:LM-hash value: NTLM-hash value
Perhatikan bahwa format ini adalah format keluaran perintah samdump2, bukan "format kata sandi hash di bawah Windows".
Pertama-tama, Anda harus memiliki komputer yang menjalankan sistem linux. Ini mudah dikatakan, hanya mesin virtual saja. Kemudian, jalankan perintah berikut untuk menambahkan pengguna baru dan mengatur kata sandi untuk tujuan ledakan kami:
sudo adduser justforfun
Nilai hash kata sandi login pengguna di linux disimpan dalam file/etc/shadow (catatan: bukan/etc/passwd), gunakan perintah berikut untuk melihat nilai hash kata sandi login pengguna baru:
test@test-VirtualBox: ~ $ sudo tail -n 1 /etc/shadow justforfun:$6$0fokwg59$6hpMS5dM9wDT/42DDoSD0i0g/wHab50Xs9iEvVLC3V20yf1kRmXZHGXCM0Efv6XU69hdgMZ4FwaMzso4hQaGQ0:17373:0:99999:7:::
tail Perintah digunakan untuk membaca beberapa baris terakhir file, defaultnya adalah 10 baris, gunakan parameter-n untuk menentukan jumlah baris. Pengguna baru yang baru saja kami buat secara alami ada di baris terakhir, jadi gunakan tail-n 1 untuk membacanya. Hasil yang dibaca adalah data yang dibagi dengan ":". Bagian pertama adalah nama pengguna "justforfun", dan bagian kedua adalah nilai hash dari kata sandi. Bagian lainnya tidak perlu diperhatikan dalam artikel ini. Kami fokus pada bagian kedua.
"$6$" di awal mengacu pada jenis fungsi hash yang digunakan sebagai SHA512. Kecuali "$6$", di linux, "$1$" mengacu pada MD5, "$2a$" mengacu pada Blowfish, "$2y$" mengacu pada Blowfish (penanganan karakter 8-bit yang benar), "$5$" Mengacu pada SHA256, lihat Wikipedia: passwd untuk detailnya. Selain itu, file/etc/login.defs juga menjelaskan algoritma hash.
Bagian "0fokwg59" yang dimulai dari "$6$" hingga sebelum "$" berikutnya adalah garam. Apa itu garam? Baidu tahu bahwa jawaban CNB2009 atas pertanyaan " Apa itu nilai garam MD5 " sederhana dan mudah dipahami:
Sederhananya, ini adalah cara untuk membuat kata sandi yang sama memiliki nilai hash yang berbeda., yaitu pengasinan. MD5 itu sendiri tidak dapat diubah, namun saat ini ada banyak database di Internet yang mendukung anti-query. Jika database kata sandi pengguna secara tidak sengaja bocor, peretas dapat memperoleh kata sandi pengguna melalui anti-query, atau menggunakan kode hash yang lebih sering muncul di database (yaitu digunakan oleh banyak orang) untuk peretasan brute force (karena biasanya merupakan kata sandi yang lemah). Nilai garam adalah nilai acak tambahan yang ditambahkan selama proses hash kata sandi. Misalnya, id saya adalah epilepsi dan kata sandi saya adalah 123456. Ketika disimpan dalam database, saya dapat menghash string "123456/epilepsi". Saat memverifikasi kata sandi, string "(kata sandi yang akan diverifikasi) /epilepsi ω inverted ④" juga digunakan untuk verifikasi. Dengan cara ini, ketika kata sandi idiot lain adalah 123456, nilai hash yang berbeda masih dapat dibangun dan berhasil diverifikasi. Saat ini, id saya digunakan sebagai nilai garam untuk hash kompleks untuk kata sandi. Jadi.. Nilai garam berfungsi untuk mengurangi kerugian akibat kebocoran database. Jika RP Anda sangat baik dan menebak kata sandi saya adalah 123456, saya tidak dapat menghentikan Anda
Jawaban ini ditujukan untuk MD5, dan hal yang sama berlaku untuk fungsi hash lainnya. Bagian setelah garam adalah nilai hash. Sekarang salin seluruh bagian kedua ke file linux.hash, isi di linux.hash harus:
$6$0fokwg59$6hpMS5dM9wDT/42DDoSD0i0g/wHab50Xs9iEvVLC3V20yf1kRmXZHGXCM0Efv6XU69hdgMZ4FwaMzso4hQaGQ0
Kemudian gunakan perintah berikut untuk meledakkan hash kata sandi login linux:
hashcat -w 3 -a 0 -m 1800 - -hapus -o linux.out linux.hash wordlist.dic
Setelah beberapa saat, peledakan selesai, lihat hasilnya:
werner@Yasser: ~ /hashcat$ cat linux.out $6$0fokwg59$6hpMS5dM9wDT/42DDoSD0i0g/wHab50Xs9iEvVLC3V20yf1kRmXZHGXCM0Efv6XU69hdgMZ4FwaMzso4hQaGQ0:4321
Terlihat bahwa peledakan berhasil.
Pertama, Anda harus memiliki Mysql. Saya kebetulan memilikinya di mesin virtual saya. Baidu dapat mengetahui bahwa nilai hash kata sandi login Mysql disimpan dalam file user.MYD. Dimana file user.MYD? Saya juga tidak tahu, cari saja:
test@test-VirtualBox: ~ $ sudo find / -name user.MYD /var/lib/mysql/mysql/user.MYD
Menemukannya di/var/lib/mysql/mysql/user.MYD Lihat isi file:
sudo cat /var/lib/mysql/mysql/user.MYD
Ini bukan file teks biasa, jadi tidak ada hubungannya. Anda masih dapat melihat bahwa nilai hash dari kata sandi login root pengguna adalah:
6B825255FB466413D6B1B724644E23428C94BBCB
Simpan nilai ini ke file mysql. hash, gunakan perintah berikut untuk meledakkan kata sandi login mysql hash:
hashcat -w 3 -a 0 -m 300 - -hapus -o mysql.out mysql.hash wordlist.dic
Setelah beberapa saat, peledakan selesai, lihat hasilnya:
werner@Yasser: ~ /hashcat$ kucing mysql.out 6b825255fb466413d6b1b724644e23428c94bbcb: viper
Terlihat peledakan berhasil.
Discuz! Ini adalah program forum php terkenal di negara saya dan banyak digunakan. Sekarang mari kita meledakkan Discuz! Nilai hash dari kata sandi pengguna. Pertama-tama Anda harus menemukan nilai hash, di mana Anda dapat menemukannya? Tentu saja dari Discuz! dalam database.
Dapat didiskusi! Di mana basis datanya? Beginilah cara saya menyelesaikannya, unduh versi terbaru Discuz dari situs resminya! Kode sumber, jalankan dan instal, dan Anda akan mendapatkan Discuz! Basis data
Discuz! Nama database default adalah ultrax, dan tabel pre_ucenter_members menyimpan nilai hash kata sandi login. "pre_" adalah awalan default, yang dapat diubah selama instalasi, tetapi "ucenter_members" tidak akan berubah. Gunakan pernyataan sql berikut untuk menanyakan nilai hash kata sandi login:
select password,salt from pre_ucenter_members;
Simpan nilai hash dan nilai garam ke file:
echo 69bcba126b93c6f397983629a0f70553: c13fd9 > discuz.hash
Nilai hash dan nilai garam berada di baris yang sama, dibagi dengan ":". Terakhir, gunakan perintah berikut untuk meledakkan hash kata sandi login Discuz:
hashcat -w 3 -a 0 -m 2611 - -hapus -o discuz.out discuz.hash wordlist.dic
Setelah beberapa saat, peledakan selesai, lihat hasilnya:
werner@Yasser: ~ /hashcat$ cat discuz.out 69bcba126b93c6f397983629a0f70553: c13fd9:winter
Terlihat peledakan berhasil.
Hingga saat ini, kami menggunakan kamus kecil dengan hanya 500 kata. Hanya butuh beberapa saat setiap saat untuk berhasil meledakkan berbagai hash. Bukankah menurutmu aneh? Hal ini karena saya sengaja menetapkan kata sandi lemah di kamus untuk berlatih menggunakan hashcat, jika tidak, bukankah akan membuat orang merasa buruk jika mereka tidak bisa mengungkapkannya. Tidak mungkin memiliki keberuntungan seperti itu dalam praktiknya. Mari kita menghitung nilai MD5 dari kata sandi yang tidak terlalu lemah, meledakkannya dengan kamus besar, mencoba keberuntungan kita di satu sisi, dan melihat seberapa cepat hashcat dapat berfungsi di sisi lain.
Pertama hitung nilai MD5:
import hashlib
MD5 = hashlib.MD5 ()
MD5.update (" werner123456!!! ")
print MD5.hexdigest () Outputnya adalah:
b17133f9abff287ed0546c1af2b171f7
Kemudian pilih kamus berukuran 10,5G yang berisi 940 juta kata sandi dan mulai meledak:
hashcat -w 3 -A 0 -m 0 - -Hapus -o big.out b17133f9abff287ed0546c1af2b171f7 big.dic
Perhatikan bahwa jika hanya ada satu nilai hash, Anda tidak perlu menyimpannya dalam file, Anda juga dapat menulisnya langsung ke parameter baris perintah. Saya mulai meledak sebelum tidur, dan ketika saya bangun keesokan harinya untuk melihat hasilnya, saya menemukan:
Dimulai: Rabu Juli 26 22:55:27 2017 Dihentikan: Rabu Juli 26 23:02:28 2017
Ternyata hanya membutuhkan waktu 7 menit! Saya pikir akan memakan waktu 7 jam, 60 kali lebih cepat dari perkiraan saya! Sayangnya, nilai hash tidak berhasil diledakkan. Tampaknya "werner123456!!!" tidak ada di kamus kata sandi. Sepertinya saya perlu menyiapkan kamus kata sandi 100G, tetapi sangat merepotkan untuk menyimpan dan mentransfer kamus sebesar itu. Apakah tidak ada cara lain? Tentu saja, ingat mode serangan? Kami telah menggunakan mode "lurus", selanjutnya, mari kita periksa beberapa mode lainnya.
Saat menggunakan hashcat untuk meledakkan hash, yang pertama adalah menemukan hash yang tepat. Sistem yang berbeda dan perangkat lunak yang berbeda memiliki lokasi penyimpanan hash yang berbeda, dan Anda perlu menemukan hash secara akurat. Nilai datang; Yang kedua adalah menentukan jenis hash dengan benar, menentukan apakah hashcat mendukung hash ini, dan memilih parameter-m yang benar, jika tidak, hampir mustahil untuk berhasil; Yang ketiga adalah kamus kata sandi lebih baik. Apakah peledakan berhasil pada akhirnya tergantung pada kamus. Meskipun kamus kata sandi tidak lebih besar, lebih baik lebih besar. hashcat juga terkenal dengan kecepatannya. Kamus besar tidak menjadi masalah bagi hashcat. Berikut adalah kamus yang lebih baik: Gerbang bocor sebelumnya + kumpulan kamus kata sandi lemah yang umum digunakan. 7Z , kata sandi dekompresi adalah: anywlan. Selain itu, jika Anda mengumpulkan banyak kamus kecil, Anda dapat menggabungkan, menyortir, dan menghapus duplikat kamus kecil untuk mendapatkan kamus besar untuk peledakan hashcat. Jika kamus kecil berada di direktori yang sama, Anda dapat melakukannya dengan menggunakan satu perintah:
cat * | urutkan | uniq > Merge.dic
Bagaimana jika kamus kecil disusun menurut kategori dan didistribusikan dalam direktori multi-layer? Jelas tidak bisa hanya menggunakan perintah cat, namun nyatanya hanya satu perintah saja yang cukup. Dengan asumsi kamus kecil disimpan di direktori MyDictionary, maka perintahnya dapat ditulis seperti ini:
temukan . /MyDictionary -type f -exec cat {} \; | urutkan | uniq > Merge.dic