
Ich versuche, ein Shell-Skript zu schreiben, um die dynamische URL abzurufen, unter der sich ComboFix befindet.BleepingComputer.com/download/combofix
Aus irgendeinem Grund kann ich meinen regulären Ausdruck jedoch nicht so hinbekommen, dass er mit dem Download-Link von „hier klicken“ übereinstimmt, wenn der Download nicht funktioniert. Ich habe einen regulären Ausdruckstester verwendet und er hat mir gesagt, dass der Link übereinstimmt, aber wenn ich ihn ausführe, funktioniert er anscheinend nicht, sondern es wird ein leeres Ergebnis ausgegeben. Hier ist mein gesamtes Skript:
#!/bin/bash
# Download latest ComboFix from BleepingComputer
wget -O Listing.html "http://www.bleepingcomputer.com/download/combofix/" -nv
downloadpage=$(sed -ne 's@^.*<a href="\(http://www[.]bleepingcomputer[.]com/download/combofix/dl/[0-9]\+/\)" class="goodurl">.*$@\1@p' Listing.html)
echo "DL Page: $downloadpage"
secondpage="$downloadpage"
wget -O Download.html $secondpage -nv
file=$(sed -ne 's@^.*<a href="\(http://download[.]bleepingcomputer[.]com/dl/[0-9A-Fa-f]\+/[0-9A-Fa-f]\+/windows/security/anti[-]virus/c/combofix/ComboFix[.]exe\)">.*$@\1@p' Download.html)
echo "File: $file"
wget -O "ComboFix.exe" "$file" -nv
rm Listing.html
rm Download.html
mkdir Tools
mv "ComboFix.exe" "Tools/ComboFix.exe" -f
Die ersten beiden Downloads funktionieren erfolgreich und ich erhalte am Ende Folgendes: http://www.bleepingcomputer.com/download/combofix/dl/12/
Es stimmt jedoch nicht mit dem endgültigen SED überein, das mir den Download-Link gibt.
Der Code, mit dem es übereinstimmen soll, ist:
<a href="http://download.bleepingcomputer.com/dl/6c497ccbaff8226ec84c97dcdfc3ce9a/5058d931/windows/security/anti-virus/c/combofix/ComboFix.exe">click here</a>
LÖSUNG:
Für alle, die es interessiert: Der letzte Code, der funktioniert hat, war:
#!/bin/bash
# Download latest ComboFix from BleepingComputer
wget -O Download.html "http://www.bleepingcomputer.com/download/combofix/12" -nv
file=$(sed -ne 's@^.*<a href=\x27\(http://download[.]bleepingcomputer[.]com/dl/[0-9A-Fa-f]\+/[0-9A-Fa-f]\+/windows/security/anti[-]virus/c/combofix/ComboFix[.]exe\)\x27>.*$@\1@p' Download.html)
echo "File URL: $file"
wget -OSN "ComboFix.exe" "$file" -nv
Antwort1
Das ist lustig: Ich war gerade beihttp://www.bleepingcomputer.com/download/combofix/dl/12/und gefunden
<a href='http://download.bleepingcomputer.com/dl/587c6038..../..../ComboFix.exe'>hier klicken</a>.
d. h. die URL wird durch einfache Anführungszeichen (') anstelle von doppelten Anführungszeichen (") (was Ihr sed
Befehl sucht).
Antwort2
Es ist nicht nötig, die erste Seite herunterzuladen, da die zweite Seite statisch ist. Sie wird immer sein:
http://www.bleepingcomputer.com/download/combofix/dl/12/
Wir empfehlen Ihnen außerdem dringend, die-NFlag auf wget, um Zeitstempel zu prüfen. Dadurch wird ComboFix nur heruntergeladen, wenn es neuer ist als das auf Ihrem Computer.
Stellen Sie außerdem sicher, dass Ihr Skript nur ein- oder zweimal am Tag ausgeführt wird. Es ist nicht nötig, es öfter auszuführen.
Durch die Begrenzung der Anfragen und die Verwendung von -N sollten Sie eine automatische Sperrung durch unsere Skripte vermeiden.
Danke