Hướng dẫn sử dụng WPScan để kiểm tra plugin và theme dễ bị tấn công trong Wordpress

4 năm trước

Giới thiệu

Bài viết này sẽ hướng dẫn bạn qua quá trình cài đặt wpscan và phục vụ như một hướng dẫn về cách sử dụng wpscan để xác định vị trí bất kỳ plugin và theme dễ bị tấn công đã biết có thể làm cho trang web của bạn dễ bị tấn công. Sử dụng wpscan, chúng ta có thể thấy một phác thảo của trang web theo cách tương tự như của người tấn công. Đã có một số lượng đáng kinh ngạc các vấn đề bảo mật được tìm thấy trong các plugin và các chủ đề được sử dụng trong các trang Wordpress. Những vấn đề này thường xảy ra do thực tiễn mã hoá không an toàn và thường bị người dùng bỏ qua và các bản vá thường không được thực hiện bởi những người dùng bị nguy cơ bởi chúng

 

Download và cài đặt WPScan

 Trước khi chúng ta bắt đầu cài đặt, một điều quan trọng nên nhớ là wpscan không hoạt động trên Window cho nên bạn sẽ cần cài đặt Linux hay OSX để tiến hành. Nếu bạn chỉ có Windows thì bạn có thể download Virtualbox và cài đặt bất cứ Linux distro nào bạn muốn như một Virtual Machine.

WPScan được lưu trữ trên Github nên nếu nó không thể cài đặt thì chúng ta sẽ cần phải cài đặt gói git trước khi tiếp tục.

sudo apt-get install git

Khi git đã được cài đặt, chúng ta cần cài đặt những thứ cần thiết cho wpscan:

sudo apt-get install libcurl4-gnutls-dev libopenssl-ruby libxml2 libxml2-dev libxslt1-dev ruby-dev ruby1.9.3

Bây giờ chúng ta cần sao chép gói wpscan từ github.

git clone https://github.com/wpscanteam/wpscan.git

Giờ ta có thể di chuyển tới thư mục wpscan vừa tạo và cài đặt những ruby gem cần thiết thông qua bundler.

cd wpscan
sudo gem install bundler && bundle install --without test development

Bây giờ chúng ta đã cài đặt wpscan, chúng ta sẽ đi qua bằng cách sử dụng công cụ này để tìm kiếm các tệp có khả năng bị ảnh hưởng dễ dàng trên cài đặt Wordpress của chúng tôi. Một số khía cạnh quan trọng nhất của wpscan là khả năng liệt kê không chỉ plugin và các theme, mà còn cả người dùng và thời gian cài đặt. WPScan cũng có thể thực hiện các cuộc tấn công mạnh mẽ chống lại Wordpress- nhưng đó là nằm ngoài phạm vi của bài viết này

 

Liệt kê Plugins

 Để liệt kê plugin, tất cả thứ chúng ta cần là khởi động wpscan với  đối số  --enumerate p như sau.

ruby wpscan.rb --url http(s)://www.yoursiteurl.com --enumerate p

hoặc chỉ xem những phugin dễ bị tấn công:

ruby wpscan.rb --url http(s)://www.yoursiteurl.com --enumerate vp

Một vài ví dụ của output được dán bên dưới:

| Name: akismet
| Location: http://********.com/wp-content/plugins/akismet/
| Name: audio-player
| Location: http://********.com/wp-content/plugins/audio-player/
|
| * Title: Audio Player - player.swf playerID Parameter XSS
| * Reference: http://seclists.org/bugtraq/2013/Feb/35
| * Reference: http://secunia.com/advisories/52083
| * Reference: http://osvdb.org/89963
| * Fixed in: 2.0.4.6
| Name: bbpress - v2.3.2
| Location: http://********.com/wp-content/plugins/bbpress/
| Readme: http://********.com/wp-content/plugins/bbpress/readme.txt
|
| * Title: BBPress - Multiple Script Malformed Input Path Disclosure
| * Reference: http://xforce.iss.net/xforce/xfdb/78244
| * Reference: http://packetstormsecurity.com/files/116123/
| * Reference: http://osvdb.org/86399
| * Reference: http://www.exploit-db.com/exploits/22396/
|
| * Title: BBPress - forum.php page Parameter SQL Injection
| * Reference: http://xforce.iss.net/xforce/xfdb/78244
| * Reference: http://packetstormsecurity.com/files/116123/
| * Reference: http://osvdb.org/86400
| * Reference: http://www.exploit-db.com/exploits/22396/
| Name: contact
| Location: http://********.com/wp-content/plugins/contact/

Từ output, chúng ta có thể thấy plugin âm thanh dễ bị tấn công bởi XSS thông qua tham số playerid. Chúng tôi cũng thấy rằng việc cài đặt bbpress dễ bị tấn công đối bởi việc tiết lộ đường dẫn và SQL Injection. Lưu ý rằng việc xác minh thủ công các lỗ hổng được báo cáo luôn là một ý tưởng tốt nếu có thể, vì các máy quét đôi khi sẽ báo cáo sai tích cực. Nếu sau khi chạy các thử nghiệm này đối với trang web của bạn, bạn sẽ được thông báo về bất kỳ lỗ hổng tiềm ẩn nào, điều quan trọng là phải kiểm tra với các nhà phát triển plugin để xem liệu có bản vá khả dụng hay không và nếu như vậy cần phải cài đặt bản vá lỗi

 

Liệt kê Theme

Việc liệt kê các theme hoạt động giống như liệt kê các plugin, chỉ với tham số --enumerate

ruby wpscan.rb --url http(s)://www.yoursiteurl.com --enumerate t

hoặc chỉ cho biết các theme dễ bị tấn công:

ruby wpscan.rb --url http(s)://www.yoursiteurl.com --enumerate vt

Output mẫu:

| Name: path
| Location: http://********.com/wp-content/themes/path/
| Style URL: http://********.com/wp-content/themes/path/style.css
| Description: 
| Name: pub
| Location: http://********.com/wp-content/themes/pub/
| Style URL: http://********.com/wp-content/themes/pub/style.css
| Description: 
| Name: rockstar
| Location: http://********.com/wp-content/themes/rockstar/
| Style URL: http://********.com/wp-content/themes/rockstar/style.css
| Description: 
|
| * Title: WooThemes WooFramework Remote Unauthenticated Shortcode Execution
| * Reference: https://gist.github.com/2523147
| Name: twentyten
| Location: http://********.com/wp-content/themes/twentyten/
| Style URL: http://********.com/wp-content/themes/twentyten/style.css
| Description: 

Như trước, chúng ta có thể thấy rằng việc cài đặt theme rockstar là dễ bị tấn công bởi với việc thực hiện shortcode chưa được chứng thực từ xa, có nghĩa là mọi người có thể thực hiện mã ngắn trên trang web mà không cần phải xác thực người dùng hợp lệ

WPScan cũng có thể dùng để liệt kê nhưng người dùng với đăng nhật hợp lệ để cài đặt Wordpress. Nó. thường được dùng bởi người tấn công để lấy đi danh sách người dùng để chuẩn bị tấn công.

ruby wpscan.rb --url http(s)://www.yoursiteurl.com --enumerate u

Chức năng cuối cùng của wpscan chúng ta sẽ thảo luận trong bài này là khả năng liệt kê các cài đặt theo thời gian. Trong những năm gần đây, tính thời gian đã trở thành mục tiêu rất phổ biến của kẻ tấn công do có nhiều lỗ hổng được tìm thấy và đăng lên các diễn đàn trực tuyến, danh sách thư và các nhóm tư vấn. Sử dụng wpscan để tìm các tập tin timthumb dễ bị tổn thương được thực hiện bằng command sau:

ruby wpscan.rb --url http(s)://www.yoursiteurl.com --enumerate tt

Để update wpscan:

ruby wpscan.rb --update