Aller au contenu principal
ArticleSHA-256

Calculer le SHA-256 d’un fichier avec PowerShell

Calculez une empreinte SHA-256 sans exécuter le fichier, comparez la bonne référence et consignez les limites du résultat de réputation.

Équipe isMaliciousÉquipe isMalicious
Publication: 5 min de lecture
Calculer le SHA-256 d’un fichier avec PowerShell
Signal
Contexte
Action

Pour calculer le SHA-256 d’un fichier sous Windows, ouvrez PowerShell et utilisez Get-FileHash avec son chemin exact. La commande calcule une empreinte du contenu sans exécuter le programme ni ouvrir le document dans son application habituelle.

Le résultat permet de comparer deux copies ou de rechercher des renseignements sur le fichier. Il ne constitue pas un verdict de sécurité. La procédure utile associe donc la commande, l’identification du fichier et une règle claire pour interpréter ce que la recherche retourne.

Choisir le fichier sans le lancer

Si une pièce jointe vous paraît suspecte, commencez par le processus de signalement de votre organisation. L’utilisateur qui a reçu le message n’a pas besoin de l’ouvrir pour aider l’équipe sécurité. Le calcul ci-dessous s’adresse à la personne autorisée à manipuler la copie collectée.

Utilisez un emplacement d’analyse prévu pour ces fichiers, sans prévisualisation automatique. Conservez l’original et travaillez sur une copie contrôlée. Relevez la provenance : message, téléchargement, collecte EDR ou support amovible. Un hash isolé ne dit pas comment le fichier est arrivé sur le poste.

Dans cet exemple fictif, la copie est placée sous C:\Analyse\piece-jointe [1].bin. L’extension neutre sert à identifier la copie de travail ; elle ne modifie pas la nature du contenu et n’en garantit pas l’innocuité.

Get-FileHash -LiteralPath 'C:\Analyse\piece-jointe [1].bin' -Algorithm SHA256

-LiteralPath évite d’interpréter les crochets du nom comme des caractères génériques. SHA-256 est déjà le choix par défaut de la commande ; le préciser rend la procédure explicite. Ces paramètres sont décrits dans la documentation Microsoft de Get-FileHash.

Le chemin de l’exemple doit être remplacé par celui du fichier collecté. Ne copiez pas une commande fournie par un expéditeur pour « vérifier » sa pièce jointe : écrivez la commande depuis votre propre procédure.

Capturer une preuve exploitable

La sortie présente l’algorithme, l’empreinte et le chemin. Pour éviter qu’une copie manuelle tronque la valeur, conservez le résultat dans une variable puis exportez un petit relevé. Le dossier de destination ci-dessous doit déjà exister et être réservé aux résultats de l’analyse.

$cheminAnalyse = 'C:\Analyse\piece-jointe [1].bin'
$fichierAnalyse = Get-Item -LiteralPath $cheminAnalyse -ErrorAction Stop
$empreinteAnalyse = Get-FileHash -LiteralPath $cheminAnalyse -Algorithm SHA256 -ErrorAction Stop

[pscustomobject]@{
    Chemin = $fichierAnalyse.FullName
    TailleOctets = $fichierAnalyse.Length
    Algorithme = $empreinteAnalyse.Algorithm
    SHA256 = $empreinteAnalyse.Hash
    CalculUtc = [DateTime]::UtcNow.ToString('o')
} | Export-Csv -LiteralPath 'C:\Analyse\resultats\empreinte.csv' -NoTypeInformation -Encoding UTF8

N’exécutez cette séquence que sur une copie stable. Un fichier encore téléchargé, synchronisé ou modifié par une application ne représente pas nécessairement le même contenu entre deux lectures. Une taille inattendue ou un hash qui change impose de résoudre ce problème avant d’interpréter la réputation.

L’export garde aussi le chemin interne. Conservez-le dans le dossier d’incident ; partagez uniquement les champs nécessaires lorsque vous sollicitez un service externe. La date de calcul est une date d’analyse, pas la date de création réelle du contenu.

Comparer la bonne empreinte à la bonne référence

Supposons qu’un éditeur publie un SHA-256 pour son installateur. Vérifiez que la référence correspond à la version, à la plateforme et au fichier exacts. Comparer un paquet ARM à la valeur d’un paquet x64 produit un écart sans démontrer une attaque.

Récupérez la référence par un canal de l’éditeur dont vous avez vérifié l’authenticité. Si le fichier et la valeur attendue proviennent du même message suspect, leur concordance n’apporte pas de preuve indépendante sur l’expéditeur.

Vous pouvez effectuer la comparaison sans relire le contenu :

$sha256Attendu = Read-Host 'SHA-256 de la référence vérifiée'
if ($sha256Attendu -notmatch '^[0-9a-fA-F]{64}$') {
    throw 'La référence doit contenir exactement 64 caractères hexadécimaux.'
}
$empreinteAnalyse.Hash -ieq $sha256Attendu

True indique une correspondance des valeurs comparées. False demande une investigation : mauvaise référence, copie incomplète ou contenu différent sont des explications à départager. Aucun de ces deux résultats ne suffit à autoriser l’exécution d’un fichier inattendu.

Interpréter une recherche de réputation

Lorsqu’une recherche retourne un renseignement malveillant, conservez la source, sa date et les éléments disponibles. Rapprochez cette information de votre contexte : présence du fichier, lancement éventuel, compte concerné et comportement observé.

Lorsqu’elle ne retourne rien, écrivez « empreinte inconnue de cette source à cette date ». Un fichier récent, modifié ou peu diffusé peut être absent d’une base. Remplacer cette absence par « sain » efface la limite de la recherche.

Lorsqu’elle retourne un renseignement rassurant, vérifiez encore le contexte d’usage. Un programme d’administration légitime peut servir à une opération non autorisée. La réputation du binaire ne prouve pas que la personne qui l’a lancé avait le droit de le faire.

Le guide sur la réputation des hash en réponse à incident précise où placer ce renseignement dans le triage. Si vous soupçonnez une exécution, rapprochez-le des journaux de processus et de réseau.

Ajouter la signature quand elle est pertinente

Pour un format pris en charge, Get-AuthenticodeSignature permet d’inspecter la signature Authenticode. La documentation Microsoft décrit les informations et statuts retournés.

Get-AuthenticodeSignature -LiteralPath $cheminAnalyse |
    Select-Object Status, StatusMessage, SignerCertificate

Interprétez cette sortie séparément du hash. Une signature absente ne suffit pas à qualifier le fichier de malveillant. Une signature valide apporte un élément sur la signature vérifiée, sans démontrer que le programme convient à votre environnement ou que son origine dans ce dossier est attendue.

Pour un fichier contenu dans un ZIP, distinguez enfin l’empreinte de l’archive de celle de chaque élément extrait. Ce sont des objets différents. L’extraction d’une pièce jointe suspecte exige un environnement isolé et une procédure distincte ; elle ne doit pas être improvisée sur le poste utilisateur.

Pour enrichir le dossier, utilisez la recherche de réputation d’une empreinte de fichier avec le SHA-256 calculé, sans envoyer le fichier. Terminez le ticket avec le chemin collecté, le SHA-256 complet, la provenance, le résultat daté et la décision suivante. Ce relevé permet à un collègue de reprendre l’analyse sans ouvrir le fichier pour retrouver ce qui avait été vérifié.

FAQ

Questions fréquentes

Quelle commande PowerShell calcule le SHA-256 ?

Utilisez Get-FileHash -LiteralPath suivi du chemin entre guillemets simples, puis -Algorithm SHA256. La commande lit les octets du fichier pour calculer son empreinte ; elle ne lance pas son contenu.

Un SHA-256 inconnu signifie-t-il que le fichier est sûr ?

Non. Cela signifie uniquement que la source interrogée ne fournit pas de renseignement sur cette empreinte au moment de la recherche.

Le SHA-256 change-t-il si je renomme le fichier ?

Renommer un fichier sans modifier son contenu ne change pas son empreinte. Modifier les octets, ou calculer celle de l’archive plutôt que du fichier extrait, donne un autre objet à comparer.

À lire ensuite

Vérifiez une IP ou un domaine

Voyez ce qu’en dit notre base de renseignement indexée.

Essayer le vérificateur d’IP et de domaines