PuTTY ist als SSH Client für Windows sehr beliebt. Genauso beliebt ist aber auch einen Trojaner in einem PuTTY Download zu verstecken. Um das zu verhindern werden Downloads gerne mit einem Hashwert (in diesem Zusammenhang auch Checksum genannt) abgesichert.
64-bit x86 Variante von putty.zip durchführt. Webseite von PuTTY.
sha512sums ist mit w64/putty.zip am Ende gekennzeichnet.
Im Script soll automatisiert geprüft werden ob die Checksum (=SHA-512 Hash) des geladenen Files mit der Checksum aus dem Checksumfile übereinstimmt. Also zum Beispiel eine Ausgabe kommen: HASH OK.
putty.zip im gleichen Directory/tmp Directory ablegen. Das Script erzeugt dafür mit mktemp ein Unterverzeichnis. Alle Zwischenergebnisse sollen ebenfalls in diesem temp directory abgelegt werden.Eine Liste aller u.U. brauchbarer Tools:
curl -O – zum Downloadgrep – um die passende Zeile aus dem Checksum-File zu filterncut – um den SHA-512 aus der Zeile zu extrahierenopenssl – um den SHA-512 Hash von putty.zip zu rechnenxxd – ist nicht für das Script notwendig sondern fürs debugging der Zwischenergebnissetr – tr -d [:space:] entfernt evtl. enthalten Leerzeichen und Zeilenumbrüchecmp – zum Vergleich der Hashwerteif – das Ergebnis von cmp auswertenif [ ! -f "putty.zip" ]
then
curl -O -L "https://the.earth.li/~sgtatham/putty/latest/w64/putty.zip"
fi
tmpFolder=$(mktemp -d)
tmpDatei="${tmpFolder}/sha512sums"
curl -o $tmpDatei "https://the.earth.li/~sgtatham/putty/0.83/sha512sums"
tmpdownHash="${tmpFolder}/downloadedHash"
tmpcalcHash="${tmpFolder}/calulatedHash"
grep w64/putty.zip $tmpDatei | cut -d " " -f1 | tr -d [:space:] > $tmpdownHash
sha512sum putty.zip | cut -d " " -f1 | tr -d [:space:] > $tmpcalcHash
if cmp -s $tmpdownHash $tmpcalcHash
then
echo "HASH OK"
else
echo "HASH NOT OK"
fi
if prüft ob im aktuellen Ordner putty.zip exisitiertcurl runtergeladen-O flag heißt das man den Dateinamen vom Link einfach übernimmt-L flag heißt das cURL redirects folgt, ansonsten kann es passieren das man eine Fehlerhafte .zip Datei lädtcurldie dazugehörige Hash Datei geladen-o heißt hier das er das File mit eigenem Pfad und Dateinamen speichertgrep w64/putty.zip gesuchtcut gepipped wo die erste Spalte (der Hashwert) herausgefilltert wirdtr noch alle Leerzeichen entfernt/tmp folder als File gespeichertputty.zip Datei mit sha512sum berechnetcmp vergleichen-s flag macht das er keine Fehlermeldung schmeißt wenn Hashes nicht gleich sind sondern einfach in das else geht┌──(kali㉿kali)-[~/SYTB/260512]
└─$ ./checkSum.sh
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 342 100 342 0 0 2265 0 --:--:-- --:--:-- --:--:-- 2280
100 3998k 100 3998k 0 0 3325k 0 0:00:01 0:00:01 --:--:-- 5467k
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 26626 100 26626 0 0 145k 0 --:--:-- --:--:-- --:--:-- 146k
HASH OK
┌──(kali㉿kali)-[~/SYTB/260512]
└─$ ./checkSum.sh
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 26626 100 26626 0 0 135k 0 --:--:-- --:--:-- --:--:-- 135k
HASH OK
Diese Übung ist sich nicht mehr ausgegangen.