Abrufen von Datei-Hashes mit Windows PowerShell

Das Abrufen von Datei-Hashes kann sehr nützlich sein. Dies kann zum Beispiel verwendet werden, um sicherzustellen, dass gesicherte Dateien nicht beschädigt oder geändert werden (durch Generieren von Hashes vor und nach dem Prozess), oder um sicherzustellen, dass niemand an einer wichtigen Datei manipuliert wird.

Sie können es auch auf Download-Sites sehen, aber die Verwendung dort ist begrenzt. Der Grund ist einfach: Wenn es einem Angreifer gelungen ist, die Download-Datei zu ändern, besteht die Möglichkeit, dass auch die Website kompromittiert wurde. Dies könnte theoretisch zumindest bedeuten, dass der auf der Website angezeigte Datei-Hash ebenfalls an die neue bösartige Version des Downloads angepasst wurde.

In der Vergangenheit haben wir eine Reihe von Hashing-bezogenen Programmen überprüft: von der Windows-Shell-Erweiterung HashTab über die HashMyFiles von Nirsoft bis hin zu File Check MD5 und MD5 Check Utility.

Abrufen von Datei-Hashes mit Windows PowerShell

Wenn Sie den Hash einer Datei auf einem Windows-Computer schnell generieren müssen, können Sie auch PowerShell verwenden.

Es ist möglicherweise nicht so komfortabel wie einige der Hashing-Programme, aber es ist eine native Implementierung, für deren Ausführung keine Software von Drittanbietern erforderlich ist. Nützlich zum Beispiel in eingeschränkten Umgebungen oder wenn keine Internetverbindung zum Herunterladen dieser Programme verfügbar ist.

Die Hash-Generierung wurde in PowerShell 4.0 integriert. Es ist in Windows 8.1 und Windows Server 2012 R2 enthalten und auch für Windows 7 Service Pack 1, Windows Server 2012 und Windows Server 2008 R2 Service Pack 1 verfügbar.

  1. Tippen Sie auf die Windows-Taste, geben Sie PowerShell ein und drücken Sie die Eingabetaste, um es zu starten.

Der Hauptbefehl lautet get-filehash FILEPATH, z. B. get-filehash c: \ test.txt .

Get-FileHash verwendet standardmäßig den Sha256-Algorithmus. Sie können stattdessen einen anderen Algorithmus mit dem Parameter -Algorithm angeben.

Unterstützt werden: SHA1, SHA256, SHA384, SHA512, MACTripleDES, MD5, RIPEMD160

Beachten Sie, dass MD5 und SHA1 nicht mehr als sicher gelten, aber weiterhin unterstützt werden.

Um einen Sha512-Hash zu generieren, verwenden Sie den Befehl get-filehash -Algorithm Sha512 c: \ test.txt.

Sie können anstelle der Standardpfadoption auch -LiteralPath oder -InputStream verwenden.

  • LiteralPath: get-filehash -LiteralPath -Algorithm SHA512 c: \ test.txt.
  • InputStream get-filehash -InputStream -Algorithm SHA512 Stream.

Der Hauptunterschied zwischen path und literalpath besteht darin, dass literalpath keine Platzhalter unterstützt und genau so verwendet wird, wie er eingegeben wurde.

CertUtil

CertUtil ist ein weiteres natives Windows-Programm, mit dem Sie Hashes von Dateien berechnen können. Sie können das Programm über die Eingabeaufforderung oder mit PowerShell ausführen.

Der Basisbefehl lautet certutil -hashfile PATH, z. B. certutil -hashfile c: \ example.txt .

Sie können auch den Hash-Algorithmus angeben. Unterstützt werden MD2, MD4, MD5, SHA1, SHA256, SHA384, SHA512. Der Standardalgorithmus ist MD5.

Um einen anderen Hash-Algorithmus zu verwenden, geben Sie ihn nach dem Befehl an, z. B. certutil -hashfile c: \ example.txt SHA512 .

Schlussworte

Sie können die Befehle in Skripten verwenden, um Hashes für mehrere Dateien in einer Operation zu berechnen. Die beiden nativen Tools get-filehash und certutil sind sehr praktisch für die schnelle Berechnung von Hashes unter Windows und auch für die Verwendung von Skripten. (über Genbeta (Spanisch))