Tải bản đầy đủ (.docx) (57 trang)

Nghiên cứu công cụ quét lỗ hổng metasploit

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (6.51 MB, 57 trang )

TRƯỜNG ĐẠI HỌC MỎ ĐỊA CHẤ
KHOA CÔNG NGHỆ THÔNG TIN
---------------------

TIỂU LUẬN
HỌC PHẦN: An Ninh Mạng

ĐỀ TÀI

NGHIÊN CỨU TRIỂN KHAI BỘ CÔNG CỤ ME
(phiên bản community Edition với các modul: Network discovery, Vulnerability Scann

Sinh viên thực hiện
Mạng máy tính

Hà Nội - 2021


MỤC LỤC
PHẦN 1: GIỚI THIỆU CÔNG CỤ........................................................................4
1.1. Giới thiệu chung.............................................................................................4
1.2. Các tính năng chinh:.......................................................................................5
1.3. Các thành phần...............................................................................................5
1.4. Cấu trúc của một Module khai thác................................................................6
PHẦN 2: HƯỚNG DẪN CÀI ĐẶT........................................................................8
2.1. Yêu cầu..........................................................................................................8
2.2. Cài đặt............................................................................................................8
PHẦN 3: HƯỚNG DẪN SỬ DỤNG.....................................................................16
3.1. Nội dung của các câu lệnh khi ta sử dụng giao diện msfconsole:.................16
3.2. Các bước để khai thác một mục tiêu:...........................................................17
3.3. Giới thiệu payload meterpreter.....................................................................18


3.4. Scan các host trong mạng bằng Metasploit..................................................22
3.5. Quy trình kiểm thử cơ bản trên Metasploit Framework...............................27
3.5.1. Tổng quan.................................................................................................28
3.5.2. Các bước thực hiện khai thác....................................................................29
3.6. Cách thức tấn công.......................................................................................31
3.6.1. Tấn công dựa vào khai thác lỗ hổng bảo mật:..........................................32
3.6.2. Tấn công dựa vào cài mã độc vào máy nạn nhân:....................................34
3.6.3. Một số lệnh thông thường tác động vào máy victim một khi meterpreter
được mở (thêm tuỳ chọn -h vào sau để biết chi tiết cú pháp):............................35
3.6.4. Thiết lập persistence để cài vĩnh viễn và tự động kích hoạt trên máy victim
........................................................................................................................... 37
PHẦN 4: TẤN CƠNG VÀ PHỊNG CHỐNG.....................................................39
4.1. Một số kiểu tấn công....................................................................................39
4.1.1. Tấn công trực tiếp.....................................................................................39
4.1.2. Tấn công vào các lỗ hổng bảo mật...........................................................39

Nguyễn Huy Hanh

2

Mạng máy tính K62A


4.1.3. Tấn cơng vào hệ thống có cấu hình khơng an tồn..................................39
4.1.4. Vơ hiệu hóa dịch vụ..................................................................................40
4.1.5. Một số kiểu tấn cơng khác........................................................................40
4.2. Cách phịng chống........................................................................................41
4.2.1. Mã hố, nhận dạng, chứng thực người dùng và phần quyền sử dụng.......41
4.2.2. Một số cách khác......................................................................................42
4.3. Một số lỗ hổng khai thác trong hệ điều hành Windows................................43

4.3.1. Lỗ hổng MS12-020..................................................................................43
Tấn công lỗ hổng MS12-020...........................................................................43
4.3.2. Lỗ hổng MS08-067..................................................................................46
Tấn công lỗ hổng MS08-067...........................................................................46
4.3.3. Một vài lỗ hổng khác................................................................................55
Lỗ hổng EternalBlue.......................................................................................55
Lỗ hổng MS12-027.........................................................................................56
Lỗ hổng tấn công SNMP.................................................................................56
TÀI LIỆU THAM KHẢO.......................................................................................57

Nguyễn Huy Hanh

3

Mạng máy tính K62A


PHẦN 1: GIỚI THIỆU CÔNG CỤ
1.1. Giới thiệu chung
- Bộ công cụ Metasploit là bộ công cụ khai thác lỗ hổng không thể thiếu của các
hacker cũng như Penetration Tester. Metasploit không phải là một công cụ mà là một
Framework tập hợp rất nhiều chương trình cũng như cơng cụ phục vụ cho việc tấn
cơng, kiểm tra độ an tồn và bảo mật của hệ thống.
- 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 server. Ban đầu Metasploit được xây dựng từ ngôn ngữ hướng đối
tượng Perl với những component được viết bằng C và Python sau đó được viết lại
bằng Ruby. Đây là một ứng dụng mã nguồn mở phát triển nhằm sử dụng các shellcode
để tấn công, khai thác lỗi của các dịch vụ Metasploit có thể chạy trên hầu hết các hệ
điều hành như Linux, Windows, MacOS…
- Thử nghiệm thâm nhập mã nguồn mở "Metasploit Framework" Rapid7 là một

dự án được Hoa Kỳ tài trợ và công cụ kiểm thử cho Metasploit Framework có tên
"Metasploit Community Edition" đã được phát hành. Metasploit Community Edition là
công cụ kiểm tra thâm nhập có giới hạn cung cấp sức mạnh của Metasploit Framework
với giao diện người dùng đồ hoạ được thêm vào để dễ dàng điều hướng và khai thác.
Metasploit Community Edition có sẵn bản miễn phí trên mạng.
- Community Editioin dựa trên Metasploit Framework, một sự kết hợp của giao
diện người dùng cơ bản có sẵn trong các phiên bản thương mại. Sử dụng thử nghiệm
thâm nhập cơ bản, GUI đơn giản, cung cấp các mô-đun import như một Browse. Bạn
có thể xác minh bất kỳ lỗ hổng khai thác nào, quản lý luồng dễ bị tấn công và bảo vệ
dữ liệu và cũng có thể nhập báo cáo quét lỗ hổng của bên thứ ba.
- Nó được thiết kế cho sinh viên và doanh nghiệp nhỏ, những người muốn mơ
phỏng một cách an tồn các cuộc tấn cơng mạng bằng khai thác cơ bản và phát hiện
mạng.
Metasploit hỗ trợ những trình duyệt:


Chrome 8+

Nguyễn Huy Hanh

4

Mạng máy tính K62A




Firefox 4+




Internet Explorer 9+

- Bạn có thể download chương trình tại www.metasploit.com
1.2. Các tính năng chinh:
- Một giao diện người dùng đồ họa đơn giản, giúp việc đánh giá tính dễ bị xâm nhập
và đánh giá an ninh dễ dàng hơn các giải pháp thay thế dựa trên dòng lệnh.
- Phát hiện mạng, cho phép người dùng lập bản đồ các mạng của họ bằng cách xác
định các máy chủ, quét các cổng mở và lấy dấu vân tay các hệ điều hành và dịch vụ
của họ.
- Tích hợp với các máy qt dễ bị tấn cơng, do đó qt dữ liệu từ Rapid7 Nexpose,
Nmap và hàng tá các giải pháp khác có thể được nhập trực tiếp vào Metasploit
Community. Các q trình qt Nexpose cũng có thể được bắt đầu và đặt vị trí nhập
trực tiếp từ bên trong Metasploit Community.
- Khai thác cơ bản, cho phép người dùng xác minh những lỗ hổng nào có thể khai thác
được và phải được khắc phục - và những lỗ hổng nào không được khai thác. Điều này
làm tăng năng suất và giảm chi phí của một chương trình quản lý dễ bị xâm nhập và
giúp ngăn ngừa sự vi phạm dữ liệu.
- Trình duyệt module, tận dụng cơ sở dữ liệu lớn nhất thế giới về khai thác đảm bảo
chất lượng để người dùng có thể dễ dàng tìm ra cách khai thác đúng. Mỗi mô-đun bao
gồm một bảng xếp hạng độ tin cậy, chỉ ra tỷ lệ thành công điển hình và tác động đến
hệ thống mục tiêu.
- Các chuyên gia bảo mật và CNTT có thể dễ dàng nâng cấp từ Metasploit Community
lên Metasploit Pro, tiếp tục làm việc với giao diện quen thuộc trên cài đặt hiện tại.
Metasploit Pro có thêm nhiều khả năng mạnh như khai thác thông minh, kiểm tra mật
khẩu, quét ứng dụng Web, hậu khai thác, kỹ thuật xã hội, hợp tác nhóm, báo cáo toàn
diện và hỗ trợ cấp doanh nghiệp.
1.3. Các thành phần
Hỗ trợ giao diện người dùng :


Nguyễn Huy Hanh

5

Mạng máy tính K62A


o Console Interface: Đây là giao diện sử dụng các dịng lệnh để cấu hình,
kiểm tra do vậy tốc độ nhanh hơn và mềm dẻo hơn. Sử dụng file
msfconsole.bat.
o Web Interface: Giao tiếp với người dùng thông qua giao diện web. Sử
dụng file msfweb.bat.
o Command line interface: dùng msfcli.bat
Phần Enviroment :
o Global Enviroment: Được thực thi thông qua 2 câu lệnh setg và unsetg,
những tùy chọn được gắn ở đây sẽ mang tính tồn cục, được đưa vào tất
cả các module khai thác.
o 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 khai thác đang load hiện tại,
không ảnh hưởng đến các module khai thác 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 thành phần nào có cấu hình giống nhau giữa các exploits module như là:
LPORT, LHOST, PAYLOAD thì bạn nên cấu hình ở chế độ Global Enviroment để
khơng phải cấu hình lại nhiều lần.
1.4. Cấu trúc của một Module khai thác
Cấu trúc của một module khai thác ln cần các phần chính như sau:
 Payload Information Block: khối thông tin của Payload. Dùng để khai báo
các thông tin cơ bản về payload.

 Một danh sách các mục tiêu có sẵn được phác thảo.
 Phần kế thừa các hàm exploit(), run(), check().
Hàm check () giúp xác minh việc có thể khai thác được tính có thể khai thác của
mục tiêu và không thực sự chạy các payload trên mục tiêu.
Mục đích của hàm check () là để xác định xem mục tiêu có thể bị tấn công hay
không.
Hàm check () trả về giá trị kiểm tra đã được xác định:

Nguyễn Huy Hanh

6

Mạng máy tính K62A


 CheckCode::Safe - không thể khai thác.
 CheckCode::Detected - dịch vụ được phát hiện.
 CheckCode::Appears - phiên bản dễ bị tấn công.
 CheckCode::Vulnerable - đã xác nhận.
 CheckCode::Unsupported - kiểm tra khơng được hỗ trợ cho module này.
Hàm exploit() chính là hàm tiếp theo cần được viết. Đây cũng là phần quan trọng
nhất của mã khai thác. Nó làm thành phần chính thực hiện các bước để có thể tái hiện
lại lỗ hổng thành công.
Đối với các đoạn mã khai thác lỗ hổng ứng dụng web thì hàm exploit thường sẽ
thực hiện việc gửi và nhận các yêu cầu và phản hồi từ phía máy chủ.
Xứ lý các phản hồi này và khai thác các lỗ hổng trên đó. Từ đó thực hiện khai
thác như thực thi mã từ xa, lấy cắp thơng tin, ...

Nguyễn Huy Hanh


7

Mạng máy tính K62A


PHẦN 2: HƯỚNG DẪN CÀI ĐẶT
2.1. Yêu cầu
Để cài đặt được Metasploit, ổ cứng phải còn trống khoảng 30GB-40GB bao gồm
cả Snapshot trong quá trình thực hành hệ thống; RAM tối thiểu 4G Ram nhưng để tốt
nhất nên chọn RAM 8G; CPU Core 2 Dou trở lên.
2.2. Cài đặt
Sau khi download bản Metasploit Community Edition, chúng ta tiến hành cài đặt,
giao diện cài đặt xuất hiện và chọn Next

Tiếp theo, tích chọn ơ I accept the agreement và chọn Next

Nguyễn Huy Hanh

8

Mạng máy tính K62A


Chọn ổ lưu file Metasploit và tiếp tục chọn Next

Nguyễn Huy Hanh

9

Mạng máy tính K62A



Tiếp tục chọn Next cho đến khi xuất hiện giao diện chạy file cài đặt. Ở bước này
ta cần tắt pm diệt virus và tường lửa đi.

Quá trình cài đặt hồn tất, chọn Finish và tích chọn Access Metasploit Web UI

Nguyễn Huy Hanh

10

Mạng máy tính K62A


Sau khi kết thúc cài đặt, trình duyệt Web mở lên và xuất hiện giao diện mở đầu
của Metasploit

Nguyễn Huy Hanh

11

Mạng máy tính K62A


Click vào link: https://localhost:3790/ sẽ dẫn đến trang tạo tài khoản để login
vào Metasploit. Điền Username, Password sử dụng và một số thông tin bổ sung, rồi
chọn Create Account:

Nguyễn Huy Hanh


12

Mạng máy tính K62A


Trình duyệt chuyển đến trang nhập key để active chương trình, key này được gửi
miễn phí đến mail khi tải phần mềm. Sau khi điền key nhấn Activate License:

Nguyễn Huy Hanh

13

Mạng máy tính K62A


Chương trình Metasploit được hồn thành cài đặt, và đây là giao diện sử dụng
chương trình:

Nguyễn Huy Hanh

14

Mạng máy tính K62A


Nguyễn Huy Hanh

15

Mạng máy tính K62A



PHẦN 3: HƯỚNG DẪN SỬ DỤNG
Trước hết sẽ tìm hiểu qua về những câu lệnh, tùy chọn khác nhau để có thể nắm được
nhiệm vụ của lệnh đấy. Sau đó sẽ tìm hiều về các bước để khai thác một mục tiêu cụ
thể. Và cuối cùng là ví dụ về một kịch bản khai thác.
3.1. Nội dung của các câu lệnh khi ta sử dụng giao diện msfconsole:
Back: Lệnh này dùng khi bạn muốn thoát ra khỏi module bạn đã chọn
trước đó sau khi hồn thành cơng việc hoặc muốn chuyển sang cơng việc khác.
(i) Ví dụ: msf payload(reverse http) > back
msf>
Check: Lệnh này giúp ta kiểm tra đã cấu hình đúng cho khai thác chưa,
mọi việc đã hồn thành chưa. Cho ta biết kết quả mà không cần phải thực thi khai thác
đó. Nhưng khơng phải tất cả mọi mã khai thác đều hỗ trợ lệnh này.
Connect: Lệnh này giống như một bản netcat thu nhỏ đc cho vào
metasploit được hỗ trợ với ssl, proxy, pivoting... Với việc dùng câu lệnh connect với
địa chỉ ip và port tương ứng, chúng ta có thể connect tới một host từ metasploit giống
như khi dùng với netcat hoặc telnet vậy.
Ví dụ: msf > connect 118.69.228.254 22
Info: Lệnh này cho biết những thông tin chi tiết của một module (hay
một mã khai thác nào đó ). Hiển thị cho ta thơng tin cơ bản nhất, bao gồm cả các tùy
chọn cần thiết.
Irb: Lệnh này cho ta thao tác trên môi trường của ruby. Ví dụ: msf > irb
–h
Jobs: Lệnh này cho ta biết các module đang chạy.
Load: Lệnh này để load một plugin từ metasploit plugins.
Search: Lệnh này giúp ta tìm kiếm exploit, auxiliary, encoder. Trong đó
nó cịn hỗ trợ một số keywork giúp cải tiến khả năng tìm kiếm như: name, path,
platform, port, type, app, author, cve, bid, osvdb, edb. Ví dụ: search cve:2009
type:exploit app:client.

Sessions: lệnh này liệt kê các session đang tồn tại, session ở đây có thể là
session của shell, của meterpreter ....
Set - Unset: Lệnh cho phép ta cấu hình cho các exploit... lệnh này gặp
thường xuyên. Unset là lệnh có ý nghĩa ngược lại.

Nguyễn Huy Hanh

16

Mạng máy tính K62A


Setg - Unsetg: Trong q trình thực hiện tấn cơng một mục tiêu, hoặc
nhiều mục tiêu. Ta có thể dùng một exploit hoặc đơi khi là nhiều exploit. Có một vào
option nếu set bình thường thì ta phải set nhiều lần. Nhưng nếu ta để cho các option
này có ý nghĩa tồn cục. Thì việc lặp lại là khơng cần. Nó có hiệu lực cho mọi exploit,
auxiliary. Đó là ý nghĩa của setg (global set). Để hủy thì ta dùng unsetg. Nếu muốn
lưu việc cấu hình này lại dùng lệnh "save".
Show: Liệt kê các module hiện tại.
Use: Cho phép chọn một một module.
Auxiliary: Là một module cung cấp chưc năng tăng cường cho các thử
nghiệm xâm nhập và quét lỗ hổng cùng với các tác vụ tự động. Phân loại trong
auxiliary module: module quét các giao thức (như SMB, HTTP), module quét các port,
wireless, IPV6, DOS, Server modules, Module khai thác truy cập quản trị.
Exploits: Là một module dùng để khai thác các dịch vụ.
Payloads: Trước tiên ta cần hiểu Payload là gi ? Ta có thể hiểu một cách
đơn giản thì nó là một đoạn code thực thi trên máy nạn nhân, dùng để thực hiện một số
hoạt động nào đó, hoặc dùng để kết nối về máy của người tấn cơng. Vậy làm sao để có
cái Payload này trên máy của nạn nhân ? Có 2 phương pháp chủ yếu được dùng. Đó là
gửi cho nạn nhân thơng qua việc phân tính một lỗi, lỗ hổng nào đó trên hệ thống của

nạn nhân, từ đó đột nhập và gửi đoạn payload này cho nạn nhân. Kiểu thứ 2 là gửi trực
tiếp cho nạn nhân, chờ đợi nạn nhân sơ ý nhận nó (kĩ thuật social engineering).
Targets: Cung cấp danh sách các mục tiêu phù hợp với module khai thác
mà bạn chọn.
3.2. Các bước để khai thác một mục tiêu:
Bước 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.
Chú ý nên cập nhật thường xuyên các lỗi dịch
trên www.metasploit.com hoặc qua script msfupdate.bat.
Bước 2: Cấu hình module exploit đã chọn

vụ

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 tùy chọn nâng cao, bạn có thể xem bằng cách
gõ dòng lệnh show advanceds.

Nguyễn Huy Hanh

17

Mạng máy tính K62A


-


Bước 3: Xem lại những options vừa cấu hình:

check: kiểm tra xem những option đã được cấu hình chính xác chưa.
Bước 4: Lựa chọn target: lựa chọn hệ điều hành nào để thực hiện.
show targets: những mục tiêu được cung cấp bởi module đó.
set: xác định mục tiêu.
Ví dụ: smf> use windows_ssl_pct
show targets
Exploit sẽ liệt kê ra những mục tiêu như: winxp, winxp SP1, win2000,
win2000 SP1.
Bước 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 tên payload module.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 đó.
Bước 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.
3.3. Giới thiệu payload meterpreter
Meterpreter, viết tắt từ Meta – Interpreter là một advanced payload có trong
Metasploit framework. Mục đí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ớ,
hồn tồ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à dowload 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 phpes 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

Nguyễn Huy Hanh

18

Mạng máy tính K62A


Sử dụng câu lệnh:
Câu lệnh use dùng để load những module mở rộng của meterpreter như: Fs,
Net, Process…
use –m module1,module2,module3 [ -p path ] [ -d ]
 Câu lệnh cho phép load các thư viện của remote machines
loadlib –f library [ -t target ] [ -lde ]
 Lệnh read cho phép xem dữ liệu của remote machine trên channel đang kết
nối

Read channel_id [length]
 Lệnh write cho phép ghi dữ liệu lên remote machine
Write channel_id
 Đóng channel mà đã kết nối với remote computer.

Close 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.

Interact channel_id
 Mã hóa dữ liệu được gửi giữa host và remote machine


Nguyễn Huy Hanh

19

Mạng máy tính K62A


Initcryt cipher [parameters]
 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.
 Liệt kê các thư mục và tập tin.
Ls [filter_string]
 Up load file
Upload srcl [src2…] dst
 Download file
Download srcl [src2 …] dst
- Sử dụng module Net:
 Xem bảng định tuyến
ipconfig
route
 Cho phép tạo port forward giữa host và remote machine

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

Sử dụng module Process:
 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


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

Nguyễn Huy Hanh

20

Mạng máy tính K62A


 Hủy những process đang chạy trên máy remote machine

kill pid1 pid2 pid3

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

ps
-

Sử dụng module Sys:
 Cho biết username hiện tại của remote machine

getuid
 Cho biết thông tin về computername, Os

sysinfo

Nguyễn Huy Hanh

21


Mạng máy tính K62A


3.4. Scan các host trong mạng bằng Metasploit
Tạo Project mới: chọn New Project



Điền tên project và dải mạng sẽ scan:





Sau khi tạo project quá trình scan bắt đầu:




Dải địa chỉ sẽ scan từ 192.168.0.1 đến 192.168.0.254:


×