Sử dụng sed để tải xuống ComboFix tự động


3

Tôi đang cố gắng viết một tập lệnh shell để lấy URL động mà ComboFix được đặt tại BleepingComputer.com/doad/combofix

Tuy nhiên, vì một số lý do, tôi dường như không thể lấy regex của mình khớp với liên kết tải xuống của "nhấp vào đây" nếu quá trình tải xuống không hoạt động. Tôi đã sử dụng một trình kiểm tra regex và nó nói rằng tôi khớp với liên kết, nhưng dường như tôi không thể làm cho nó hoạt động khi tôi thực hiện nó, nó cho ra một kết quả trống. Đây là toàn bộ kịch bản của tôi:

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

Hai lần tải xuống đầu tiên hoạt động thành công và tôi kết thúc với: http://www.bleepingcomputer.com/doad/combofix/dl/12/

Nhưng nó không phù hợp với sed cuối cùng sẽ cho tôi liên kết tải xuống.

Mã được cho là khớp với:

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

DUNG DỊCH:

Đối với bất kỳ ai quan tâm, mã cuối cùng hoạt động là:

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

Câu trả lời:


1

Điều đó thật buồn cười: Tôi vừa mới đi đến http://www.bleepingcomputer.com/doad/combofix/dl/12/ và tìm thấy

& lt; a href = ' http://doad.bleepingcomputer.com/dl/587c6038..../..../ComboFix.exe '& gt; nhấp vào đây & lt; / a & gt;.

tức là, URL được phân định bằng các dấu ngoặc đơn ( ' ) thay vì dấu ngoặc kép ( " ) (đó là những gì của bạn sed lệnh đang tìm kiếm).


Thật kỳ lạ, tôi đang xem nó trong Chrome và tôi đang thấy dấu ngoặc kép
Ecksters

Mặc dù bạn đúng, đó là vấn đề, tôi đã xem tệp Download.html và nó có dấu ngoặc đơn
Ecksters

2

Không cần phải tải xuống trang đầu tiên vì trang thứ hai là tĩnh. Nó sẽ luôn là:

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

Chúng tôi cũng khuyên bạn nên sử dụng -N cờ trên wget để kiểm tra dấu thời gian. Điều này sẽ chỉ tải xuống ComboFix nếu mới hơn nó trên máy tính của bạn.

Cũng đảm bảo rằng tập lệnh của bạn chỉ chạy một hoặc hai lần một ngày. Không cần phải chạy nó nhiều hơn thế.

Bằng cách giới hạn các yêu cầu và sử dụng -N, bạn sẽ tránh bị tự động cấm bởi các tập lệnh của chúng tôi.

Cảm ơn


Tôi không chắc người đầu tiên có tĩnh hay không, vì nếu không thì con số có vẻ không cần thiết, cảm ơn vì đã cho tôi biết. Hiện tại tập lệnh chỉ chạy một lần một ngày vào ban đêm, tôi chắc chắn sẽ thêm -N vào nó, cảm ơn về mẹo và thông tin bên trong :)
Ecksters
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.