Học hỏi từ "nghệ thuật đô thị", thế giới online cũng có nhiều cách thức phá hoại làm mất đi vẻ đẹp của web server. Những kẻ phá hoại thực hiện hành vi của mình như thế nào? Đọc bài sau bạn sẽ biết và hiểu sâu hơn cách làm của chúng. Từ đó xây dựng cho mình lớp bảo vệ an toàn trước các hoạt động nguy hiểm này.
Phá hoại website của một công ty bây giờ không còn lạ lẫm gì trong giới công nghệ. Người ta gọi những kẻ thực hiện điều này là "tầng lớp dưới cùng" của cộng đồng internet. Người ta đã đưa ra các đánh giá về tình hình là đặt một file index.html vào web server bị tấn công để xâm nhập, phá hoại website không còn quá đặc biệt. Tài năng thực thụ là những người viết mã nguồn, phát hiện ra lỗ hổng để tấn công web server đầu tiên và tạo đà cho người khác phát triển tiếp. Khi những người này công khai hoá lỗ hổng, nhiều người khác, "những đứa trẻ học phá hoại" mới bắt đầu chập chững làm lại.
Các kiểu tấn công loại này trở nên khá bình thường, giống như một chuyên gia bảo mật mạng không biết làm cách nào để tự phá trang web của mình vậy!
Muốn bảo vệ bạn phải học cách tấn công
Nếu muốn bảo vệ mạng máy tính khỏi các cuộc tấn công theo nhiều kiểu khác nhau, trước hết bạn phải biết cách chúng tấn công như thế nào. Không phải tất cả đồng nghiệp đều đồng ý với tôi về ý kiến này, nhưng sự thật là chúng ta không thể hiểu thấu được vấn đề nếu không tự mình bắt tay thực hiện chúng. Trong trường hợp cụ thể ở đây, chúng ta sẽ học cách phá một trang web như thế nào. Nếu bạn đang nghiên cứu các gói trên hệ thống dò tìm xâm nhập, bạn sẽ thấy rằng chúng giống như ai đó đang upload một trang index.html lên vậy. Nếu không, bạn sẽ phải viết và gửi đi như một người đang yêu cầu trang web.
Nếu muốn thực hiện các hoạt động phá hoại điện tử, bạn có được một số điều kiện nhất định nào đó. Trước hết là phải nắm rõ cách thức của kiểu web server, là IIS hay Apache. Điều kiện của tường lửa các công ty cung cấp cho web server như một dịch vụ cho các client có dễ phá không, các client có khả năng dễ xâm nhập không. Với các client này, phải có cổng mở trong tường lửa cho phép chúng truy cập được web server. Có thể bạn có một firewall tầng ứng dụng phù hợp giúp bảo vệ dịch vụ của mình, nhưng đó hoàn toàn là một vấn đề khác chúng ta chưa xem xét tới ở đây.
Xem xét toàn cảnh
Như chúng ta đã biết, muốn khai thác hệ thống để phá hoại cần phải đáp ứng được một số tiêu chuẩn nhất định. Bạn có thể gọi nó là hàng loạt vấn đề cũng được. Liệu dịch vụ có lỗ hổng hay không, liệu nó có bộc lộ ở web hay không, và liệu…. Bạn sẽ phải vẽ ra một bức tranh cụ thể cho mình. Những hoạt động thực tiễn chúng ta sẽ làm với tất cả các bước cần thiết để xâm nhập một web server, sau đó upload phiên bản index.html riêng lên server. Chúng ta sẽ phải lên danh sách các hoạt động cần phải làm tương ứng với hệ điều hành và kiểu web server.
Tôi đã thực hiện cuộc phá hoại minh hoạ này trong phòng làm việc tại nhà với hai laptop. Một máy cài hệ điều hành SuSE Linux, máy còn lại cài Windows 2000 Professional. Trong laptop W2K tôi cài web server nguồn mở Apache phiên bản 1.3.17. Có một số phiên bản nhiều lỗ hổng khác ra đời sau 1.3.17 nhưng chúng ta sẽ dùng phiên bản này làm ví dụ bởi vì nó có lỗ hổng mã hoá chắc chắn.
Nội dung chi tiết
Tất cả dường như có vẻ ổn, nhưng bạn mới chỉ xác định được vị trí mã nguồn để khai thác? Không chỉ có thể, bạn biết chắc chắn rằng không có các thành phần "giá trị bổ sung" trong mã khai thác hay không? Để đơn giản hoá tôi dùng Metasploit Framework. Framework này được đặt chung với HDM và spoonm. Nó còn là bản miến phí dành cho mọi người. Tính năng nâng cao khi dùng công cụ này là bạn có thể khai thác an toàn tất cả các lỗ hổng kèm theo mà không phải sợ bất kỳ backdoor nào. Framework này có thể dùng trong cả môi trường Linux hoặc win32. Bạn có thể có sự lựa chọn riêng cho mình, còn trong ví dụ này tôi dùng Linux vì server tftp đang chạy trên nó. Server này sẽ được dùng trong các hoạt động minh hoạ thử nghiệm của cả bài.
Các yêu cầu cho hoạt động tấn công một trang web đã nói ở trên gồm:
Metasploit Framework để khởi động quá trình khai thác.
Windows 2000 Professional cài đặt Apache 1.3.17.
Hai laptop kết nối với nhau qua một switch.
Metasploit
Trong phần một chúng ta sẽ xem xét sơ lược về Metasploit. Ở phần hai các bạn sẽ được hướng dẫn chi tiết từng bước cách sử dụng. Chúng tôi sẽ cung cấp một số thông tin giúp bạn có được sự hình dung ban đầu về nó. Trong bài này tôi dùng Metasploit trong Linux.
Dưới đây là toàn bộ thư mục và file tạo một lần trong Framework không bị nén.
don@linux:~/framework-2.2> dir
total 107
drwxr-xr-x 2 500 10000 112 2004-08-07 17:50 data
drwxr-xr-x 2 500 10000 744 2004-08-07 17:50 docs
drwxr-xr-x 2 500 10000 280 2004-08-07 17:50 encoders
drwxr-xr-x 2 500 10000 1288 2004-08-07 17:50 exploits
drwxr-xr-x 2 500 10000 144 2004-08-07 17:50 extras
drwxr-xr-x 6 500 10000 208 2004-08-07 17:50 lib
-rwxr-xr-x 1 500 10000 4687 2004-07-29 23:41 msfcli
-rwxr-xr-x 1 500 10000 22975 2004-07-29 23:41 msfconsole
-rwxr-xr-x 1 500 10000 5744 2004-07-05 06:52 msfdldebug
-rwxr-xr-x 1 500 10000 5639 2004-07-29 23:41 msfencode
-rwxr-xr-x 1 500 10000 1538 2004-08-07 17:58 msflogdump
-rwxr-xr-x 1 500 10000 2104 2004-07-29 23:41 msfpayload
-rwxr-xr-x 1 500 10000 9361 2004-07-27 03:38 msfpayload.cgi
-rwxr-xr-x 1 500 10000 6952 2004-07-29 23:41 msfpescan
-rwxr-xr-x 1 500 10000 12096 2004-08-08 04:37 msfupdate
-rwxr-xr-x 1 500 10000 16116 2004-08-07 18:31 msfweb
drwxr-xr-x 2 500 10000 120 2004-08-07 18:17 nops
drwxr-xr-x 3 500 10000 1664 2004-08-07 17:50 payloads
drwxr-xr-x 3 500 10000 168 2004-08-07 17:50 sdk
drwxr-xr-x 3 500 10000 80 2004-08-07 17:50 src
drwxr-xr-x 2 500 10000 216 2004-06-07 04:21 tools
don@linux:~/framework-2.2>
Còn phần dưới là cách thu hồi Framework và msfconsole cụ thể.
don@linux:~/framework-2.2> ./msfconsole
__. .__. .__. __.
_____ _____/ |______ ____________ | | ____ |__|/ |_
/ \_/ __ \ __\__ \ / ___/\____ \| | / _ \| \ __\
| Y Y \ ___/| | / __ \_\___ \ | |_> > |_( <_> ) || |
|__|_| /\___ >__| (____ /____ >| __/|____/\____/|__||__|
\/ \/ v2.2 \/ \/ |__|
+ -- --=[ msfconsole v2.2 [30 exploits - 33 payloads]
Chúng ta có thể thấy rằng Metasploit Framework thực sự có tới 30 lỗ hổng và 33 tải trọng (payload) có thể khai thác. Rất ấn tượng! Không chỉ thể, nó còn được miễn phí trong sử dụng, không giống như các bản thương mại tương tự khác. Vấn đề nan giải này sẽ tiếp tục được thực hiện ở phần sau. Chúng tôi sẽ đi sâu hơn vào cách dùng Metaspoit nhằm phục vụ cho mục đích cuối cùng đã đặt ra và kiến thức bảo mật máy tính của bạn. Mời các bạn xem tiếp phần hai.