La fonction hachage est un terme général pour un type de fonction. L'entrée de ce type de fonction est une donnée binaire arbitraire et la sortie est une donnée binaire de longueur fixe. Données, ce type de fonction présente les caractéristiques suivantes:
Unidirectionnalité: il est simple et rapide de calculer la sortie à partir de l'entrée, mais il est mathématiquement impossible de déduire l'entrée à partir de la sortie
Contrainte de collision: Il est extrêmement difficile de trouver deux entrées différentes avec la même sortie
Les fonctions qui répondent à ces caractéristiques peuvent être appelées fonctions hachage. Une certaine donnée est utilisée comme entrée de la fonction hachage et la sortie est calculée. Cette sortie est habituellement appelée valeur hachage des données.
L'une des fonctions majeures de la fonction hash est de stocker les mots de passe en toute sécurité. Elle ne sauvegarde pas directement les mots de passe (c'est-à-dire ne sauvegarde pas les mots de passe en texte clair), mais sauvegarde la valeur hash du mot de passe. Lors de la vérification, il suffit de calculer à nouveau le mot de passe saisi. La valeur hash peut être comparée à la valeur hash du mot de passe enregistré pour savoir si le mot de passe est correct. En raison de la caractéristique unidirectionnelle de la fonction hachage et des contraintes de collision, même si un attaquant obtient la valeur hachage du mot de passe, il est difficile de connaître le mot de passe lui-même.
L'attaquant a obtenu la valeur hash du mot de passe. Est-il vraiment impossible de connaître le mot de passe lui-même? Bien sûr que non. Bien qu'il soit mathématiquement impossible de calculer directement le mot de passe lui-même à partir de sa valeur hachage, nous savons qu'il est simple et rapide que la fonction hachage calcule la sortie à partir de l'entrée. Dans le pire des cas, vous pouvez l'essayer. Les seuls mots de passe que les humains peuvent définir sont ceux-ci, essayez-les un par un, vous pouvez toujours l'essayer si vous avez de la chance. L'opération consistant à essayer continuellement d'obtenir l'entrée correspondant à la valeur hachage est appelée explosion.
Sur la base de cette idée, hashcat est né. On dit que hashcat est né pour prouver que faire exploser le hachage est très simple. hashcat prétend être l'outil de hachage le plus rapide au monde, et il prend même en charge GPU et FGPA, si vous en avez.
hashcat est non seulement rapide, mais prend également en charge professionnellement plus de deux cents fonctions de hachage. Utilisez la commande:
hashcat - -help
Vous pouvez voir la liste de toutes les fonctions de hachage prises en charge par hashcat. Il y en a trop, je ne les publierai pas ici.
hashcat est installé par défaut dans Kali et peut être utilisé directement. Mais mon Kali est installé dans VirtualBox et j'ai toujours l'impression que la machine virtuelle est plus lente, alors je veux utiliser hashcat dans un hôte physique. Allez d'abord sur le site officiel de hashchat pour télécharger hashcat. À l'heure actuelle, la dernière version est v3.5.0, publiée le 05 avril 2017. À partir de la date de mise à jour, on peut voir que hashchat est plein de vitalité. Évitez les problèmes de compilation et téléchargez directement le package binaire, qui ne pèse que 2,7 millions, ce qui est très petit par rapport aux jeux qui pesent souvent des dizaines de Go.
Une fois le téléchargement terminé, décompressez le hashcat et voyez:
De tels fichiers sont des fichiers exécutables sous linux et windows sous 32 bits et 64 bits respectivement. Choisissez simplement l'un d'entre eux en fonction de la situation de votre ordinateur. J'ai choisi hashcat64.bin. Par souci de beauté, j'ai ajouté une ligne au fichier ~ /. bashrc:
alias hashcat = ' chemin de hashcat64.bin '
Après enregistrement, rouvrez le terminal virtuel pour que le fichier ~ /. bashrc prenne effet. De cette façon, peu importe où vous vous trouvez, vous pouvez simplement saisir la commande hashcat sans changer de répertoire ni saisir le laid "64.bin", comme le montre la figure ci-dessous.
Eh bien, maintenant vous pouvez commencer à utiliser hashcat pour exploser divers hash.
MD5 devrait être l'une des fonctions de hachage les plus célèbres et les plus largement utilisées. Utilisez d'abord Python pour générer plusieurs valeurs MD5 pour le blast. Le code est le suivant:
import hashlib Mot de passe = [' 123123 ', ' bond007 ', ' xxxxxx ', ' *H@ & (NT*@BR#^ '] Pour mot de passe dans mots de passe: MD5 = hashlib.MD5 () MD5.update (mot de passe) print MD5.hexdigest ()
Le code ci-dessus calcule les valeurs de hachage des quatre chaînes respectivement, et le résultat de sortie est:
4297f44b13955235245b2497399d7a93 cbdb7e2b1ed566ceb796af2df07205a3 dad3a37aa9d50688b5157698acfd7aee d77db958c179bbffae04b2b908b75c26
Enregistrez les résultats de sortie dans le fichier MD5.hash, une valeur hahs par ligne. Utilisez ensuite hashcat pour exploser ces valeurs de hachage. La commande est la suivante:
hashcat -w 3 -a 0 -m 0 - -supprimer -o MD5.out MD5.hash wordlist.dic
Le paramètre-w est utilisé pour spécifier les modes de fonctionnement. Il existe quatre types, comme indiqué dans le tableau suivant:
| N | Performance | Durée d'exécution | Consommation d'énergie | Impact du bureau |
|---|---|---|---|---|
| 1 | Faible | 2 ms | bas | Minimal |
| 2 | par défaut | 12 ms | économique | perceptible |
| 3 | haut | 96 ms | Haute | Non répondant |
| 4 | Cauchemar | 480 ms | Fou | Sans tête |
Le paramètre-a est utilisé pour spécifier le mode d'attaque. La signification de 0 est directe et continue, c'est-à-dire explosée avec un dictionnaire de mot de passe. Il existe cinq valeurs de-a, comme le montre le tableau suivant:
| N | Mode |
|---|---|
| 0 | droite |
| 1 | combinaison |
| 3 | force Brute |
| 6 | Liste de mots + masque hybride |
| 7 | Liste de mots + masque hybride |
-m est utilisé pour spécifier le hachage à exploser La fonction de hachage de la valeur, 0 signifie que la fonction de hachage est MD5, et les autres valeurs sont présentées dans le tableau suivant:
| N | nom | catégorie |
|---|---|---|
| 0 | MD5 | hachage brut |
| 300 | MySQL4.1/MySQL5 | Serveur de base de données |
| 1000 | NTLM | Systèmes d'exploitation |
| 1800 | sha512crypt $6$, SHA512 (Unix) | Systèmes d'exploitation |
| 2611 | vBulletin < v3.8.5 | Forums, CMS, Commerce électronique, cadres |
Ce tableau est trop long. Je ne montrerai ici que quelques fonctions de hachage impliquées dans cet article. Vous pouvez toutes les voir avec le paramètre – help.
Le paramètre – remove signifie que si une valeur de hachage est explosée avec succès, la valeur sera retirée de MD5.hash.
Le paramètre-o est suivi d'un nom de fichier indiquant l'endroit où les résultats du dynamitage sont enregistrés.
Les deux derniers paramètres MD5.hash et wordlist.dic sont respectivement la valeur de hachage et le dictionnaire de mot de passe à exploser. La valeur de hachage et le dictionnaire de mot de passe sont tous deux un par ligne. Le contenu de MD5.hash a été calculé par Python. Si vous n'avez pas de dictionnaire de mot de passe approprié, vous pouvez utiliser la commande:
wget -O wordlist.dic https://samsclass.info/123/proj10/500_passwords.txt
下载一个。现在完事具备,按下回车,结果华丽地报错:(
clGetPlatformIDs(): CL_PLATFORM_NOT_FOUND_KHR
Il manque probablement un environnement d'exécution, alors installez-le. J'ai installé ces trucs au 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
Si la vitesse du réseau est bonne, elle sera installée en peu de temps. La première commande rapporte une erreur:
/sbin/ldconfig.real: /usr/lib/nvidia-375/libEGL.so.1 est pas un symbolique lien /sbin/ldconfig.real: /usr/lib32/nvidia-375/libEGL.so.1 est pas un symbolique lien
Mais cela ne semble rien affecter, ignorez-le. Après les avoir installés, appuyez à nouveau sur Entrer et exécutez la commande d'erreur initiale. J'ai constaté qu'aucune erreur n'avait été signalée à nouveau et que l'exécution a été terminée en un clin d'œil. Une fois la commande exécutée, vérifiez le contenu des fichiers MD5.hash et MD5.out et constatez qu'il ne reste qu'un seul hash dans MD5.hash. Les trois hash qui ont été explosés avec succès ont été transférés au fichier MD5.out. MD5.out Il y a trois valeurs de hachage et leurs valeurs d'origine, comme le montre la figure ci-dessous:
La valeur de hachage du mot de passe de connexion Windows est enregistrée dans le fichier SAM, SAM est l'acronyme de "security account manager". Habituellement, il est situé dans
C: \Windows\system32\config\SAM
Le fichier SAM est protégé par Windows et ne peut pas être lu directement. Il nécessite l'aide d'un outil tel que SAMInside. Trouvez une machine virtuelle Windows 7, créez un nouvel utilisateur administrateur nommé hashcat, définissez le mot de passe, téléchargez et décompressez SAMInside dans Windows 7, puis exécutez-le avec les droits d'administrateur, puis cliquez sur Fichier- > Importer des utilisateurs locaux vis Scheduler, comme indiqué ci-dessous Comme le montre l'image:
SAMInside peut "ne pas répondre" après cela, mais cela n'a pas d'importance, attendez patiemment quelques secondes et SAMInside a lu ce que nous voulons à la hachage, comme le montre l'image ci-dessous:
Sélectionnez l'utilisateur "hashcat" dont nous souhaitons exploser le mot de passe, appuyez sur Ctrl +5 pour copier NT-hash, puis retournez à Ubuntu avec hashcat installé, utilisez la commande suivante pour enregistrer la valeur de hash copiée dans le fichier win7.hash:
echo 356CEAE0C89FB65ED6D6AA7A445C4CE5 > win7.hash
356ceae0c89fb65ed6d6aa7a445c4ce5: rush2112
Comment obtenir le fichier SAM, veuillez vous référer à «Comment exporter Windows Hash Series 1». Ce qui suit enregistre mon processus de lecture du fichier SAM dans la machine virtuelle Windows 7.
S'il s'agit d'une machine physique, utilisez Win PE pour démarrer la machine et lire le fichier SAM sur le disque. Le mien est une machine virtuelle. En montant les fichiers du disque virtuel sur le système de fichiers, je peux lire les fichiers du disque virtuel. La machine virtuelle que j'utilise est VirtualBox et cela peut être fait avec la commande vdfuse. S'il n'y a pas de vdfuse, vous devez d'abord installer virtualbox-fuse:
sudo apt-get install virtualbox-fuse
Vous pouvez également télécharger le package d'installation virtualbox-fuse pour l'installer vous-même.
Une fois l'installation terminée, il existe la commande vdfuse, qui peut démarrer le mappage et le montage du disque virtuel:
mkdir -p ~ /vmdisk sudo vdfuse -t vmdk -f Win7Pro32.vmdk ~ /vmdisk/
Après avoir effectué cette étape, consultez le répertoire ~ /vmdisk, qui contient trois fichiers: EntireDisk, Partition1 et Partition2, nouveau répertoire:
mkdir -p ~ /vmdisk_en mkdir -p ~ /vmdisk_1 mkdir -p ~ /vmdisk_2
Utilisez la commande mount pour monter les trois fichiers entierdisk, Partition1 et Partition2 respectivement:
sudo mount ~ /vmdisk/entierdisk ~ /vmdisk_en sudo monter ~ /vmdisk/Partition1 ~ /vmdisk_1 sudo mount ~ /vmdisk/Partition2 ~ /vmdisk_2
J'ai trouvé que le montage entier du disque a échoué, le contenu dans Partition1 n'est pas ce que je voulais, Partition2 est le fichier dans la machine virtuelle Windows 7, exactement ce que je voulais. Copiez notre fichier SAM cible à partir de vmdisk_fs:
cp ~ /vmdisk_2/Windows/System32/config/SAM . /
Au fait, copiez également le fichier système:
cp ~ /vmdisk_2/Windows/System32/config/SYSTEM . /
En regardant le contenu du fichier SAM, comme le montre l'image ci-dessous, il ne s'avère pas être un fichier texte simple, c'est effectivement le style Windows,
Eh bien, même si le fichier SAM a été ouvert avec succès, mais nous n'avons toujours pas obtenu de hachage, que dois-je faire si je le change ensuite? Vous ne pouvez utiliser que des outils pour analyser le contenu du fichier SAM. Insérez les fichiers sam et système dans Kali et exécutez la commande:
samdump2 -o sam.hash système sam
Vérifiez ensuite sam.hash, vous pouvez également voir la valeur hachage du mot de passe de connexion de chaque utilisateur. Chaque ligne du fichier sam.hash est un utilisateur, et le format de chaque ligne est:
Nom utilisateur: RID: LM-hash value: NTLM-hash value
Notez que ce format est le format de sortie de la commande samdump2, pas le «format de mot de passe hash sous Windows».
Tout d'abord, vous devez avoir un ordinateur exécutant le système linux. C'est facile à dire, juste une machine virtuelle. Ensuite, exécutez la commande suivante pour ajouter un nouvel utilisateur et définir un mot de passe pour que nous puissions exploser:
sudo adduser justforfun
La valeur hash du mot de passe de connexion de l'utilisateur dans linux est stockée dans le fichier/etc/shadow (remarque: pas/etc/passwd), utilisez la commande suivante pour afficher la valeur hash du mot de passe de connexion du nouvel utilisateur:
test@test-VirtualBox: ~ $ sudo tail -n 1 /etc/shadow justforfun:$6$0fokwg59$6hpMS5dM9wDT/42DDoSD0i0g/wHab50Xs9iEvVLC3V20yf1kRmXZHGXCM0Efv6XU69hdgMZ4FwaMzso4hQaGQ0:17373:0:99999:7:::
La commande tail est utilisée pour lire les dernières lignes d'un fichier, par défaut 10 lignes, spécifiant le nombre de lignes avec le paramètre-n. L'utilisateur que nous venons de créer se trouve naturellement à la dernière ligne, nous utilisons donc tail-n 1 pour le lire. Le résultat lu est des données divisées par ":". La première partie est le nom d'utilisateur "justforfun" et la deuxième partie est la valeur hachage du mot de passe. Les autres parties ne sont pas nécessaires dans cet article. Nous nous concentrons sur la deuxième partie.
"$6$" au début signifie que le type de fonction de hachage utilisée est SHA512. À l'exception de "$6$", dans linux, "$1$" fait référence à MD5, "$2a$" fait référence à Blowfish, "$2y$" fait référence à Blowfish (manipulation correcte des caractères 8 bits), "$5$" Se réfère à SHA256, pour plus de détails, voir Wikipédia: passwd. De plus, le fichier/etc/login.defs explique également l'algorithme de hachage.
La partie "0fokwg59" qui commence par "$6$" et précède le "$" suivant est du sel. Qu'est-ce que le sel? Baidu sait que la réponse de CNB2009 à la question « Quelle est la valeur de sel MD5 » est simple et facile à comprendre:
En termes simples, c'est un moyen de rendre le même mot de passe a différentes valeurs de hachage, c'est la salisation. MD5 lui-même est irréversible, mais il existe actuellement de nombreuses bases de données sur Internet qui prennent en charge la requête anti-requête. Si la base de données de mots de passe utilisateur est accidentellement divulguée, les pirates peuvent obtenir le mot de passe utilisateur grâce à la requête anti-requête, ou utiliser le code hachage qui apparaît fréquemment dans la base de données (c'est-à-dire). utilisé par de nombreuses personnes) pour le brute force (car il s'agit généralement d'un mot de passe faible). La valeur de sel est une valeur aléatoire supplémentaire ajoutée pendant le processus de hachage du mot de passe. Par exemple, mon id est Epilepsie ω inverse ④ et mon mot de passe est 123456. Lorsqu'il est stocké dans la base de données, la chaîne "123456/Epilepsie ω inverse ④" peut être hachée. Lors de la vérification du mot de passe, la chaîne "(mot de passe à vérifier) /Epilepsie ω inverse ④" est également utilisée pour la vérification. De cette manière, lorsque le mot de passe d'un autre idiot est 123456, différentes valeurs de hachage peuvent toujours être construites et vérifiées avec succès. À ce stade, mon id est utilisé comme valeur de sel pour un hachage complexe du mot de passe. Alors.. Le rôle des valeurs de sel est de réduire les pertes causées par les fuites de bases de données. Si votre RP est très bon et que mon mot de passe est 123456, je ne peux pas vous arrêter
Cette réponse est pour MD5, et il en va de même pour les autres fonctions hash. La partie après le sel est la valeur hachage. Maintenant copier toute la deuxième partie dans le fichier linux.hash, le contenu dans linux.hash devrait être:
$6$0fokwg59$6hpMS5dM9wDT/42DDoSD0i0g/wHab50Xs9iEvVLC3V20yf1kRmXZHGXCM0Efv6XU69hdgMZ4FwaMzso4hQaGQ0
Puis explosez le hash du mot de passe de connexion linux avec la commande suivante:
hashcat -w 3 -a 0 -m 1800 - -remove -o linux.out linux.hash wordlist.dic
Quelques instants plus tard, le blastage est terminé, voir le résultat:
werner@Yasser: ~ /hashcat$ cat linux.out $6$0fokwg59$6hpMS5dM9wDT/42DDoSD0i0g/wHab50Xs9iEvVLC3V20yf1kRmXZHGXCM0Efv6XU69hdgMZ4FwaMzso4hQaGQ0:4321
On peut voir que le dynamitage a réussi.
Tout d'abord, vous devez avoir Mysql. Il se trouve que je l'ai dans ma machine virtuelle. Baidu peut savoir que la valeur hachage du mot de passe de connexion Mysql est enregistrée dans le fichier user.MYD. Où est le fichier user.MYD? Je ne sais pas non plus, je vais juste chercher:
test@test-VirtualBox: ~ $ sudo find / -name user.MYD /var/lib/mysql/mysql/user.MYD
Je l'ai trouvé sur/var/lib/mysql/mysql/user.MYD. Affichez le contenu du fichier:
sudo cat /var/lib/mysql/mysql/user.MYD
Ce n'est pas un fichier texte simple, cela n'a pas beaucoup d'importance. On peut toujours voir que la valeur hachage du mot de passe de connexion de l'utilisateur root est:
6B825255FB466413D6B1B724644E23428C94BBCB
Enregistrez cette valeur dans le fichier mysql.hash et utilisez la commande suivante pour exploser le mot de passe de connexion mysql. hachage:
hashcat -w 3 -a 0 -m 300 - -supprimer -o mysql.out mysql.hash wordlist.dic
Quelques instants plus tard, le blastage est terminé, voir le résultat:
werner@Yasser: ~ /hashcat$ cat mysql.out 6b825255fb466413d6b1b724644e23428c94bbcb: viper
On voit que le détonage a réussi.
Discuz! C'est un programme de forum php bien connu dans mon pays et est largement utilisé. Maintenant, faisons exploser Discuz! La valeur hachée du mot de passe de l'utilisateur. Tout d'abord, vous devez trouver la valeur hash. Où la trouver? De Discuz, bien sûr! dans la base de données.
Discuz! Où est la base de données? Voici comment je l'ai résolu, téléchargez la dernière version de Discuz depuis son site officiel! Code source, exécutez et installez-le, et vous obtiendrez Discuz! Base de données
Discuz! Le nom de base de données par défaut est ultrax. La table pre_ucenter_members stocke la valeur hachage du mot de passe de connexion. "pre_" est le préfixe par défaut et peut être modifié lors de l'installation. "ucenter_members" ne changera pas. Utilisez l'instruction sql suivante pour interroger la valeur hachage du mot de passe de connexion:
select Mot de passe, salt from pre_ucenter_members;
Enregistrer les valeurs de hachage et de sel dans le fichier:
echo 69bcba126b93c6f397983629a0f70553: c13fd9 > discuz.hash
Les valeurs de hachage et de sel sont dans la même ligne, divisées par ":". Enfin, explosez le hash du mot de passe de connexion Discuz avec la commande suivante:
hashcat -w 3 -a 0 -m 2611 - -remove -o discuz.out discuz.hash wordlist.dic
Quelques instants plus tard, le blastage est terminé, voir le résultat:
werner@Yasser: ~ /hashcat$ cat discuz.out 69bcba126b93c6f397983629a0f70553: c13fd9:winter
On voit que le dynamitage a réussi.
Jusqu'à présent, nous utilisons un petit dictionnaire de seulement 500 mots. Il ne faut qu'un instant à chaque fois pour exploser avec succès divers hachs. N'est-ce pas étrange? C'est parce que j'ai délibérément défini un mot de passe faible dans le dictionnaire pour m'entraîner à utiliser hashcat. Sinon, ne serait-ce pas mauvais pour les gens de se sentir si ils ne pouvaient pas être révélés? Il est impossible d'avoir une telle chance dans la pratique. Calculons au hasard la valeur MD5 d'un mot de passe moins faible, explosons avec un grand dictionnaire, tentons votre chance d'une part et voyons à quel point hashcat peut être rapide d'autre part.
Calculez d'abord la valeur MD5:
import hashlib
MD5 = hashlib.MD5 ()
MD5.update (" werner123456!!! ")
print MD5.hexdigest () La sortie est:
b17133f9abff287ed0546c1af2b171f7
Sélectionnez ensuite un dictionnaire de taille 10,5G contenant 940 millions de mots de passe et commencez à exploser:
hashcat -w 3 -A 0 -m 0 - -Retirer -o big.out b17133f9abff287ed0546c1af2b171f7 big.dic
Notez que lorsqu'il n'y a qu'une seule valeur de hachage, il n'est pas nécessaire de la sauvegarder dans un fichier et de l'écrire directement dans les arguments de ligne de commande. J'ai commencé à exploser avant de me coucher, je me suis levé le lendemain pour regarder les résultats et j'ai trouvé:
Débuté: Mer Juil 26 22:55:27 2017 Arrêté: Mer Juil 26 23:02:28 2017
Il s'est avéré que cela n'a pris que 7 minutes! Je pensais que cela prendrait 7 heures, 60 fois plus rapide que ce à quoi je m'attendais! Malheureusement, la valeur de hachage n'a pas été explosée avec succès. Il semble que "werner123456!!!" ne figure pas dans le dictionnaire des mots de passe. Il semble que je dois préparer un dictionnaire de mots de passe de 100G, mais il est très gênant de sauvegarder et de transférer un dictionnaire aussi grand. Y a-t-il autre moyen? Bien sûr, vous vous souvenez du mode attaque? Nous avons utilisé le mode «droit». Ensuite, examinons plusieurs autres modes.
Lorsque vous utilisez hashcat pour exploser le hachage, la première chose est de trouver le hachage correct. Différents systèmes et différents logiciels ont des emplacements différents où le hachage est stocké. Vous devez trouver avec précision le hachage. La valeur vient; La deuxième consiste à déterminer correctement le type de hachage, à déterminer si hashcat prend en charge ce type de hachage et à sélectionner le bon paramètre-m, sinon il est presque impossible de réussir; La troisième est que le dictionnaire des mots de passe est meilleur. La question de savoir si l'explosion peut finalement réussir dépend du dictionnaire. Bien que le plus grand dictionnaire de mots de passe ne soit pas mieux, il vaut mieux un plus grand. hashcat est également connu pour sa vitesse. Un grand dictionnaire n'est pas un problème pour hashcat. Voici un meilleur dictionnaire enregistré: Portes de fuite antérieures + collection de dictionnaires de mots de passe faibles couramment utilisés. 7Z , le mot de passe de décompression est: anywlan. De plus, si vous collectez de nombreux petits dictionnaires, vous pouvez fusionner, trier et dédupliquer les petits dictionnaires pour obtenir un grand dictionnaire pour faciliter l'explosion de hashcat. Si le petit dictionnaire se trouve dans le même répertoire, vous pouvez le faire en utilisant une seule commande:
cat * | tri | uniq > Merge.dic
Et si le petit dictionnaire est organisé par catégorie et distribué dans un répertoire à plusieurs niveaux? Il est évidemment impossible d'utiliser uniquement la commande cat, mais en fait, une seule commande suffit. En supposant que les petits dictionnaires soient tous stockés dans le répertoire MyDictionary, la commande peut être écrite comme suit:
trouver . /MyDictionary -type f -exec cat {} \; | trier | uniq > Merge.dic