Blog d'un Éternel Geek

Intégrité des fichiers et powershell font bon ménage

[Image: 65804264ck.png]
 
 
Il faut savoir que chaque fichier possède une empreinte qui définit son intégrité, son identité. Les anti-virus utilise ses fameuses signatures pour alimenter leur base de donnée et différencier les logiciels SAFE des vérolés.

La plupart des pirates arrivent à l'aide de script diverses à créer des faux logiciels qui possèdent le même nom, même taille et surtout même icône que l'original, cependant ils ne pourront pas reproduire son empreinte ou checksum.

Cela vaut notamment pour les fichiers ISO, mais ça s’applique aussi aux fichiers archive, image, audio, exécutables, en fait pour tout fichier numérique.

 

Citation :Note décembre 2015 : le progrès des capacités de calcul des ordinateurs est tel qu’il rend caduques les premiers algorithmes. MD5 et CRC-32 sont déjà déclassés, et SHA-1 ne va pas tarder à l’être. Concrètement il faut désormais utiliser SHA-256 qui devient la norme, ou si c’est proposé SHA-512, plus puissant. Il existe d’autres algorithmes, mais ils ne sont pas proposés en général pour la vérification de l’intégrité des fichiers téléchargés.
Tout un algorithme de hachage consiste à calculer une valeur de hachage, également appelée somme de contrôle. Si le fichier change de quelque manière que ce soit, même si vous ajoutez ou supprimez un seul caractère, la prochaine fois que le hash sera calculé, il sera différent.



L'algorithme de hachage par défaut dans SHA256, mais vous pouvez utiliser l'un de ces éléments:  
 
·         SHA1  
·         SHA256  
·         SHA384  
·         SHA512  
·         MACTripleDES  
·         CRC-32
·         MD5  
·         Tiger
·         Whirlpool
·         RIPEMD-128
·         RIPEMD-160

 

Méthode et explication


Nous allons aller sur un site bien connu Kali-Linux afin d'une part y télécharger une version et d'autres parts y récupérer le SUM:

https://www.kali.org/downloads/

 

[Image: 786541ck1.jpg]

 

Ensuite, vous allez ouvrir le terminal PowerShell simplement en tapant dans votre barre de recherche
Windows :

Code :
powershell


ou en tapant dans la console  cmd :

Code :
start powershell


Une fois la fenêtre

PowerShell ouverte allez sur le lieu du fichier kali par exemple Desktop en utilisant cd comme ceci :

Code :
cd Desktop



Puis, lancer l'une des deux commandes suivantes :

Code :
Get-Filehash kali-linux-2016.2-amd64.iso
certUtil -hashfile kali-linux-2016.2-amd64.iso SHA256



Vous pouvez changer aussi aller directement sur le répertoire en tapant :

Code :
get-filehash C:\Users\admin\Desktop\kali-linux-2016.2-amd64.iso  -Algorithm MD5




Par défaut, get-filehash donne le SHA256 et certutil-hashfile donne le SHA1.

 

[Image: 179909ck2.jpg]
 
[Image: 436491ck3.jpg]
 

FONCTIONS         ALGORYTHMES


Get-Filehash                 SHA1, SHA256, SHA384, SHA512, MACTripleDES, MD5, RIPEMD160

certUtil -hashfile            MD2, MD4, MD5, SHA1, SHA256, SHA384, SHA512.


Donc, vous avez compris que pour être sur de ce que l'on télécharge nos anti-virus puise dans leurs bases de données et ce que propose le logiciel afin de savoir s'il est valide ou non.

Voici un script python que j'ai codé avec une fonction qui va succinctement chercher à comparer les hashes .
Dans un premier temps, il va sur cmd et lance une commande powershell afin de soutirer le SHA256sum du fichier Kali-Linux télécharger puis on l'entre, on va ensuite sur le site officiel et on entre celui donné.
La réponse nous indique si oui ou non il est valide (safe), puis s'il est corrompu, il le supprime.
 
[Image: 158974ck4.jpg]
 
 
Attention, la suppression est radicale et ne passe pas par Corbeille, donc garder une copie en cas d'essais.

Voici le code source :
 
 
Code :
#/usr/bin/python

"""Compare SUM"""

import os
import subprocess
import time

print ("\n")
print ("\t#####################################################################")
print ("\t#                                                                   #")                                 
print ("\t#                 Script de Comparaison de SHA256sum                #")     
print ("\t#                           Codé par ChessMaster                    #")                                                       
print ("\t#                             18 Avril 2017                         #")                                                                                                                                                            
print ("\t#                                                                   #")                                                                      
print ("\t#                                                                   #")
print ("\t#####################################################################")
print ("\n")
print (".....En Attente du SHA256sum :) Merci")

"""Commande PowerShell"""
os.chdir('C:\\Users\\admin\\Desktop')
o = subprocess.check_output("powershell.exe -noexit Get-Filehash kali-linux-2016.2-amd64.iso", shell=True)
print (o)

"""Entrer les Hashes"""
k = input("\n\nEntrez SHA256 ci-dessus : ").upper()
u = input("\n\nEntrez SHA256 officiel : ").upper()

"""Fonction compare"""

def compare_sum():
    if u == k :
        print ("\n\nLE LOGICIEL EST SAFE.")
    else :
        print ("\n\nLE LOGICIEL EST CORROMPU.")
        os.remove('C:\\Users\\admin\\Desktop\\kali-linux-2016.2-amd64.iso')
        print ("\n\nDELETE......")
        time.sleep(2.0)
        print (".........END")
        
        

"""VERDICT"""
compare_sum ()
 
 
Il existe bien entendu des scripts similaires en lignes : http://www.xorbin.com/tools/sha256-hash-calculator


Et des alternatives en logiciels freeware ou shareware comme : http://implbits.com/products/hashtab/



Il fonctionne de la même façon en récupérant l'empreinte du fichier, là vous entrez le SUM (attention il manquera les 3 derniers chiffres 0431 mais ce n'est pas important, en tenir compte et le retirer sur l'officiel), puis vous entrez la sum récupérer sur la Doc officiel et il va comparer.

Petit Bonus:

Vous devrez peut-être vérifier les hachages de fichiers sur plusieurs répertoires et sur plusieurs algorithmes.  
Par exemple, la vérification de tous les fichiers hashsums à la fois MD5 et SHA1 dans le répertoire C:\Users\admin\Documents\.

C'est un exemple de la façon d'accomplir une telle tâche en utilisant Powershell à l'aide d'une seule ligne de commande :
 

Code :
gci -Recurse | select FullName | %{get-Filehash -Algorithm md5 -Path $_.FullName ; get-FileHash -Algorithm sha1 -Path $_.FullName} | format-list
 
 
[Image: 585188ck5.jpg]
 
 
 
Cette petite introduction, je l'espère vous a permis d'entrevoir d'une autre façon les nombreux fichiers que vous téléchargés ou que vous installez que ce soit sous Linux ou Windows.
 
Merci et à bientôt :)





 Geek me     Je suis un Geek dans l'âme. 18 ans à silloner internet pour récolter des informations afin de comprendre son fonctionnement. Idéalement j'étudie également le comportement humain.

C'est afin de vous partager mes connaissances que j'ai ouvert ce blog alors je vous souhaite une bonne lecture.



À lire également


Écrire un commentaire

Votre adresse de messagerie ne sera pas publiée.

Quelle est la dernière lettre du mot dnvpnj ? :