Usando sed para baixar o ComboFix automaticamente

3

Estou tentando escrever um script de shell para pegar a URL dinâmica na qual o ComboFix está localizado em BleepingComputer.com/download/combofix

No entanto, por algum motivo, não consigo fazer com que o meu regex corresponda ao link de download do "clique aqui" se o download não funcionar. Eu usei um testador de regex e ele disse que eu combinei com o link, mas parece que não consigo fazê-lo funcionar quando eu o executo, ele aparece um resultado vazio. Aqui está meu roteiro inteiro:

 #!/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">.*$@@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\)">.*$@@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

Os dois primeiros downloads funcionam com sucesso e acabam com: link

Mas ele não combina com o sed final que me dará o link de download.

O código que deve corresponder é:

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

SOLUÇÃO:

Para qualquer pessoa interessada, o código final que funcionou foi:

#!/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>.*$@@p' Download.html)
echo "File URL: $file"
wget -OSN "ComboFix.exe" "$file" -nv
    
por Ecksters 18.09.2012 / 22:41

2 respostas

1

Isso é engraçado: eu fui ao link e encontrei

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

ie, a URL é delimitada por aspas simples ( ') ao invés de aspas duplas ( ") (que é o que seu comando sed está procurando).

    
por 18.09.2012 / 23:08
2

Não há necessidade de baixar a primeira página, pois a segunda página é estática. Sempre será:

link

Também é strongmente sugerido que você use o sinalizador -N no wget para verificar os timestamps. Isso só fará o download do ComboFix se for mais novo que o do seu computador.

Verifique também se o seu script é executado apenas uma ou duas vezes por dia. Não há necessidade de executá-lo mais do que isso.

Ao limitar as solicitações e usar o N, você deve evitar ser banido automaticamente pelos nossos scripts.

Obrigado

    
por 19.09.2012 / 14:41