Le titre provocateur de cet article est quelque part un appel au challenge ! En effet, le script ci dessous a chiffré le texte ci-dessous. Si vous avez réussi à déchiffrer le texte, vous saurez comment me communiquer la réponse.
0x01. SCRIPT
#!/bin/bash # Editeur par défaut, nano si aucun n'est trouvé [ -z "$EDITOR" ] && EDITOR=${EDITOR:=$(which nano)} # Chemins de fichier CLEARFILE="doc/data.txt" CRYPTFILE="doc/data.raw" # Salt 1: en fonction du numéro matériel (UUID) salt1="$(dmidecode|grep -B1 UUID|shasum|awk '{ print $1 }')" # Salt 2: en fonction des droits et de la date création du fichier salt2="$(ls -l "$0"|awk '{ print $1":"$7"/"$6"@"$8 }'|shasum|awk '{ print $1 }')" # Salt 3: en fonction de la configuration de partition du disque dur salt3="$(fdisk -l /dev/sda|shasum|awk '{ print $1 }')" # Salt 4: en fonction du nom d utilisateur et du nom de machine salt4="$(echo $USER@$(hostname)|shasum|awk '{ print $1 }')" # Demande du mot de passe (-p prompt) # écrire le résultat dans rep (-r) # et ne pas afficher la saisie (-s) read -srp "Mot de passe :" rep ; echo # Construit la clé de chiffrement pass=$(echo "$rep") key="$(echo "$salt1$salt4$pass$salt2$salt3"|sed 's/a/æ/1;s/2/Z/2;s/0/O/3;s/1/¡/4;s/8/ß/g5')" # # Mise à jour du mot de passe # openssl enc -e -a -camellia-256-ecb -k "$key" -in "doc/.data.bkp" -out "$CRYPTFILE" # Vérification du mot de passe et autorisation de lecture du fichier chiffré passok=0 chmod 400 "$CRYPTFILE" openssl enc -d -a -camellia-256-ecb -k "$key" -in "$CRYPTFILE" 2>&1|grep -sq '%DECRYPTED%' && passok=1 # Ouverture du fichier dans l editeur de texte par défaut if [ "$passok" = "1" ]; then openssl enc -d -a -camellia-256-ecb -k "$key" -in "$CRYPTFILE" -out "$CLEARFILE" chmod 200 "$CLEARFILE" $EDITOR "$CLEARFILE" # Seul l'utilisateur a le droit de le modifier chmod 600 "$CRYPTFILE" openssl enc -e -a -camellia-256-ecb -k "$key" -in "$CLEARFILE" -out "$CRYPTFILE" # Suppression sécurisée du fichier ... ### Par écrasement depuis des données aléatoires count=$(stat --format='%s' "$CLEARFILE") dd if=/dev/urandom of="$CLEARFILE" count=$count bs=2 >/dev/null 2>&1 ### Par renommage en fichier aléaoire tmp=$(mktemp tmp.XXXXXXXXXXXXXXXXXXXXX) mv "$CLEARFILE" "$tmp" ### Puis par un nouvel écrasement depuis des données nulles (0, NULL) dd if=/dev/zero of="$tmp" count=$count bs=2 >/dev/null 2>&1 ### Pour finalement supprimer le fichier rm -f "$tmp" fi # On protège le fichier chiffré de la lecture chmod 000 "$CRYPTFILE"
0x02. TEXTE CHIFFRÉ

=> Écrit par : Nicolas, le 23 février 2016
crypto