Verwenden von sed zum automatischen Herunterladen von ComboFix

Verwenden von sed zum automatischen Herunterladen von ComboFix

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 sedBefehl 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

verwandte Informationen