Dò lỗ hổng WordPress trên Linux với WPScan
Nói đến bảo mật nói chung và bảo mật trong WordPress nói riêng, ngoài các cách bảo mật WordPress thông dụng để hạn chế thấp nhất tỷ lệ bị tấn công thì chúng ta còn phải xét đến một khía cạnh khác cũng là nguyên nhân khiến bạn website bạn bị hack đó là website có lỗ hổng. Đúng vậy, dù bạn có cấu hình bảo mật thế nào nhưng không vá lỗi các lỗ hổng trên bảo mật thì bạn cũng sẽ bị tấn công.
Nếu bạn đang sử dụng WordPress trên các máy chủ riêng sử dụng Linux (hoặc có quyền truy cập vào máy chủ với SSH) thì có thể sử dụng một công cụ hỗ trợ bạn dò lỗ hổng trên website WordPress rất bá đạo tên là WPScan.
WPScan có chức năng gì?
WPScan có rất nhiều chức năng mà bạn sẽ rất quan tâm như:
- Kiểm tra mã nguồn website để tìm lỗ hổng XSS, SQL Injection, Local Attack,…blah blah….nói chung là phát hiện ra các lỗ hổng đã được công bố tại https://wpvulndb.com/.
- Điều tra các plugin đã được cài đặt.
- Tự tấn công Brute Force Attack với các dữ liệu có sẵn để đánh giá độ mạnh của mật khẩu.
Ngắn gọn là như vậy nhưng khi sử dụng bạn sẽ thấy rất hay vì cơ sở dữ liệu các lỗ hổng trong WordPress tại WPVULDB rất lớn. Bạn sẽ biết được plugin nào có lỗ hổng (kể cả bạn đã vá lỗi) để xem bạn có chắc chắn đã sử dụng phiên bản vá lỗi hay chưa, từ đó bạn sẽ biết mình cần làm gì.
Lưu ý rằng công cụ này chỉ hỗ trợ bạn kiểm tra, chứ không hỗ trợ bạn vá lỗi. Nên nếu phát hiện ra lỗi thì cố gắng đọc kỹ thông tin trả về xem bạn có thật sự đã vá chưa, nếu chưa thì nên tìm xem plugin/theme của bạn đang sử dụng có bản vá chưa.
Cài đặt WPScan
Để cài đặt, bạn hãy chắc chắn rằng máy của bạn là Linux và đã cài đặt Ruby và Git.
Sau đó bạn cài đặt bằng cách gõ lần lượt các lệnh sau.
Ubuntu 12.04 hoặc thấp hơn
sudo apt-get install libcurl4-openssl-dev libopenssl-ruby libxml2 libxml2-dev libxslt1-dev ruby-dev git clone https://github.com/wpscanteam/wpscan.git cd wpscan sudo gem install bundler && bundle install --without test
Ubuntu 14.04 hoặc cao hơn
sudo apt-get install libcurl4-openssl-dev libxml2 libxml2-dev libxslt1-dev ruby-dev build-essential git clone https://github.com/wpscanteam/wpscan.git cd wpscan sudo gem install bundler && bundle install --without test
CentOS / Fedora
sudo yum install gcc ruby-devel libxml2 libxml2-devel libxslt libxslt-devel libcurl-devel patch git clone https://github.com/wpscanteam/wpscan.git cd wpscan sudo gem install bundler && bundle install --without test
Mac OS
Đối với Mac thì bạn dùng các lệnh như trên, không cần dùng lệnh đầu tiên để cài các ứng dụng cần thiết.
Và bây giờ, khi cần sử dụng thì bạn hãy truy cập vào thư mục wpscan/
rồi mới sử dung được vì chúng ta phải chạy file wpscan.rb
có trong đó.
ruby wpscan.rb --update
Các lệnh wpscan
Quét kiểm tra website.
ruby wpscan.rb --url tuanvd.com
Kiểm tra lỗi trong plugin
ruby wpscan.rb --url thachpham.com --enumerate p
Scan lỗi từ một thư mục wp-content chỉ định
Nếu website của bạn đã đổi tên thư mục wp-content thì bạn có thể sử dụng lệnh sau để scan vào tên thư mục đó thay vì scan thư mục wp-content
ruby wpscan.rb -u thachpham.com --wp-content-dir du-lieu
Ngoài ra còn có khá nhiều lệnh khác mà bạn có thể xem thêm tại https://github.com/wpscanteam/wpscan.
Nếu có phát hiện ra plugin đã từng có lỗi, bạn sẽ nhận được thông tin thế này (nếu phiên bản bạn đang dùng không có lỗi):
[+] Name: wordpress-seo | Location: https://thachpham.com/wp-content/plugins/wordpress-seo/ | Changelog: https://thachpham.com/wp-content/plugins/wordpress-seo/changelog.txt [!] We could not determine a version so all vulnerabilities are printed out [!] Title: WordPress SEO - Security issue which allowed any user to reset settings Reference: https://wpvulndb.com/vulnerabilities/6837 Reference: http://wordpress.org/plugins/wordpress-seo/changelog/ [i] Fixed in: 1.4.5 [!] Title: WordPress SEO < 1.4.7 - Reset Settings Feature Access Restriction Bypass Reference: https://wpvulndb.com/vulnerabilities/6839 Reference: https://secunia.com/advisories/52949/ [i] Fixed in: 1.4.7 [!] Title: WordPress SEO by Yoast <= 1.7.3.3 - Blind SQL Injection Reference: https://wpvulndb.com/vulnerabilities/7841 Reference: https://www.exploit-db.com/exploits/36413/ [i] Fixed in: 1.7.4
Còn nếu phiên bản bạn đang dùng có lỗi thì nó sẽ cho bạn biết chính xác tập tin nào và đoạn nào bị lỗi để bạn biết mà nghiên cứu.
Nhìn chung plugin khá hữu dụng mặc dù chức năng chỉ có như vậy nhưng bạn nên cài vào và scan thử xem website của chúng ta có thật sự sạch hay không nhé.
Bài viết có sử dụng tài liệu và tham khảo tại Blog Thạch Phạm. TUANVD.COM Chúc các bạn thành công!