3 votes

Utilisation de sed pour télécharger ComboFix automatiquement

J'essaie d'écrire un Shell Shell pour saisir l'URL dynamique que ComboFix se trouve à l'adresse suivante BleepingComputer.com/download/combofix

Cependant, pour une raison quelconque, je n'arrive pas à faire correspondre mon regex au lien de téléchargement du "click here" si le téléchargement ne fonctionne pas. J'ai utilisé un testeur de regex et il m'a dit que je faisais correspondre le lien, mais je n'arrive pas à le faire fonctionner lorsque je l'exécute, il renvoie un résultat vide. Voici l'intégralité de mon script :

 #!/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

Les deux premiers téléchargements fonctionnent avec succès, et je me retrouve avec : http://www.bleepingcomputer.com/download/combofix/dl/12/

Mais il ne correspond pas au sed final qui me donnera le lien de téléchargement.

Le code qu'il est censé correspondre est le suivant :

<a href="http://download.bleepingcomputer.com/dl/6c497ccbaff8226ec84c97dcdfc3ce9a/5058d931/windows/security/anti-virus/c/combofix/ComboFix.exe">click here</a>

SOLUTION :

Pour ceux qui sont intéressés, le code final qui a fonctionné est le suivant :

#!/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

2voto

vignesh Points 11

Il n'est pas nécessaire de télécharger la première page car la seconde est statique. Elle le sera toujours :

http://www.bleepingcomputer.com/download/combofix/dl/12/

Il est également fortement suggéré d'utiliser l'option -N sur wget pour vérifier les timestamps. Cela ne téléchargera ComboFix que s'il est plus récent que celui qui se trouve sur votre ordinateur.

Assurez-vous également que votre script ne s'exécute qu'une ou deux fois par jour. Il n'est pas nécessaire de l'exécuter plus que cela.

En limitant les requêtes et en utilisant le -N, vous devriez éviter d'être automatiquement banni par nos scripts.

Danke

1voto

Scott Points 20468

C'est drôle : Je viens d'aller à http://www.bleepingcomputer.com/download/combofix/dl/12/ et a trouvé

<a href=' http://download.bleepingcomputer.com/dl/587c6038..../..../ComboFix.exe '>cliquez ici</a>.

c'est-à-dire que l'URL est délimitée par des guillemets simples ( ' ) plutôt que des guillemets doubles ( " ) (qui est ce que votre sed que la commande recherche).

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X