Điều này dẫn đến một yêu cầu cần phải tích hợp các công cụ quét lại để tạo thành một bộ công cụ có thể tập hợp được các điểm mạnh của từng công cụ riêng biệt.. Mục tiêu của đề tài là tíc
Trang 1TRƯỜNG ĐẠI HỌC CẦN THƠ
KHOA CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG
LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC
TÍCH HỢP CÁC CÔNG CỤ QUÉT LỖ HỔNG BẢO MẬT
Sinh viên thực hiện Cán bộ hướng dẫn
Trang 2TRƯỜNG ĐẠI HỌC CẦN THƠ
KHOA CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG
LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC
TÍCH HỢP CÁC CÔNG CỤ QUÉT LỖ HỔNG BẢO MẬT
Huỳnh Duy Khiêm Ths Phạm Hữu Tài
Có thể tìm hiểu luận văn tại:
Thư viện Khoa Công nghệ Thông tin, Trường Đại học Cần Thơ
Website: http://www.cit.ctu.edu.vn/
Trang 3LỜI CẢM ƠN
Đầu tiên em xin gửi lời cảm ơn chân thành đến thầy Phạm Hữu Tài người đã hướng dẫn cũng như giúp đỡ em rất nhiệt tình trong suốt quá trình thực hiện luận văn vừa qua Nhờ sự tận tình và qua tâm của thầy em mới có đủ kiến thức và kinh nghiệm
để hoàn thành tốt luận văn tốt nghiệp này Đồng thời, em cũng xin gửi lời cảm ơn đến thầy Lâm Chí Nguyện đã giúp đỡ em rất tận tình trong việc lập trình và vẽ các giao diện điều khiển cho bộ công cụ
Em cũng xin gửi lời cảm ơn đến tất cả thầy cô khoa Công nghệ thông tin & Truyền thông, trường Đại học Cần Thơ Thầy cô đã tận tình giảng dạy và truyền đạt những kiến thức bổ ích cho em trong suốt những năm học qua, giúp em có được những kiến thức cần thiết cho việc thực hiện bài luận văn cũng như những tri thức làm hành trang cho em vào đời
Cuối cùng xin dành lời cám ơn cho ba mẹ, bạn bè những người đã ủng hộ em thực hiện luận văn này
Cần Thơ, ngày 05 tháng 04 năm 2011
Huỳnh Duy Khiêm
Trang 4NHẬN XÉT CỦA CÁN BỘ HƯỚNG DẪN
Cần Thơ, ngày …… tháng …… năm 2011
Cán bộ hướng dẫn
Ths Phạm Hữu Tài
Trang 5NHẬN XÉT CỦA CÁN BỘ HƯỚNG DẪN
Cần Thơ, ngày …… tháng …… năm 2011
Cán bộ hướng dẫn
Ths Lâm Chí Nguyện
Trang 6NHẬN XÉT CỦA CÁN BỘ PHẢN BIỆN
Cần Thơ, ngày …… tháng …… năm 2011
Cán bộ phản biện
Ths Nguyễn Công Huy
Trang 7GVHD: Th.S Phạm Hữu Tài, Th.S Lâm Chí Nguyện | SVTH: Huỳnh Duy Khiêm | Trang i
NHẬN XÉT CỦA CÁN BỘ PHẢN BIỆN
Cần Thơ, ngày …… tháng …… năm 2011
Cán bộ phản biện
Ths Lâm Nhựt Khang
Trang 8GVHD: Th.S Phạm Hữu Tài, Th.S Lâm Chí Nguyện | SVTH: Huỳnh Duy Khiêm | Trang ii
MỤC LỤC
MỤC LỤC 1
TÓM TẮT iv
ABSTRACT v
TỪ KHÓA v
CHƯƠNG 1: TỔNG QUAN 1
1.1 ĐẶT VẤN ĐỀ 1
1.2 LỊCH SỬ GIẢI QUYẾT VẤN ĐỀ 1
1.3 PHẠM VI ĐỀ TÀI 2
1.4 PHƯƠNG PHÁP NGHIÊN CỨU / HƯỚNG GIẢI QUYẾT 2
1.4.1 Phương pháp nghiên cứu 2
1.4.2 Hướng giải quyết 2
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 4
2.1 TẤN CÔNG MẠNG 4
2.1.1 Các kiểu tấn công mạng 4
2.1.2 Các bước tấn công mạng 4
2.2 GIỚI THIỆU KỸ THUẬT QUÉT 5
2.2.1 Quá trình thực hiện việc tấn công 7
2.2.2 Kiểm tra hệ thống đang hoạt động 8
2.2.3 Kiểm tra các cổng đang mở 8
2.2.4 Xác định hệ điều hành (OS Fingerprinting)/ Lấy banner 15
2.2.5 Quét lỗ hổng, điểm yếu của hệ thống: 16
CHƯƠNG 3: NỘI DUNG VÀ KẾT QUẢ NGHIÊN CỨU 17
3.1 NỘI DUNG THỰC HIỆN 17
Trang 9GVHD: Th.S Phạm Hữu Tài, Th.S Lâm Chí Nguyện | SVTH: Huỳnh Duy Khiêm | Trang iii
3.2 GIỚI THIỆU CÁC CHƯƠNG TRÌNH ĐƯỢC SỬ DỤNG 19
3.2.1 Nmap 19
3.2.2 Nikto 21
3.2.3 Sqlmap 23
3.2.4 W3af 25
3.2.5 P0f 26
3.3 GIỚI THIỆU CÁC GIAO DIỆN ĐƯỢC VIẾT CHO CÁC CHƯƠNG TRÌNH DÒNG LỆNH 26
3.3.1 Giao diện Nmap 27
3.3.2 Giao diện Nikto 29
3.3.3 Giao diện Sqlmap 30
3.4 MÔ TẢ CÁC CHỨC NĂNG CỦA BỘ CÔNG CỤ 31
Chương 4: KẾT LUẬN VÀ ĐỀ NGHỊ 33
4.1 KẾT LUẬN 33
4.2 ĐỀ NGHỊ 33
PHỤ LỤC 34
TÀI LIỆU THAM KHẢO 45
Trang 10GVHD: Th.S Phạm Hữu Tài, Th.S Lâm Chí Nguyện | SVTH: Huỳnh Duy Khiêm | Trang iv
TÓM TẮT
Ngày nay, có rất nhiều công cụ quét hệ thống mạng Mỗi công cụ đều có các điểm mạnh, yếu riêng biệt Thêm vào đó, các công cụ lại có giao diện hoặc cấu trúc câu lệnh khác nhau Điều này dẫn đến một yêu cầu cần phải tích hợp các công cụ quét lại để tạo thành một bộ công cụ có thể tập hợp được các điểm mạnh của từng công cụ riêng biệt
Đề tài: “TÍCH HỢP CÁC CÔNG CỤ QUÉT LỖ HỔNG BẢO MẬT” được đưa ra nghiên cứu để giải quyết vấn đề này
Đề tài được nghiên cứu theo phương pháp nghiên cứu ứng dụng Mục tiêu của đề tài là tích hợp một bộ công cụ có thể quét lỗ hổng cũng như thu thập thông tin của một hệ thống mạng Nhằm hỗ trợ các nhà quản trị có bộ công cụ quét để tìm ra các lỗ hổng của
hệ thống Từ đó có thể khắc phục các lỗ hổng hay điểm yếu của hệ thống
Trang 11GVHD: Th.S Phạm Hữu Tài, Th.S Lâm Chí Nguyện | SVTH: Huỳnh Duy Khiêm | Trang v
ABSTRACT
Today, there are many network scanning tools Each tool has strengths, weak individually In addition, tools have interfaces or command structures differently This lead to a requirement what integrate a lot of scanning tools into a toolkit Thesis :
“INTEGRATING SCANNING TOOLS VULNERABILITIES” are made to resolve this problem
The objective of the project built a toolkit that can scan vulnerabilities as well as collect information of a network This toolkid can support administrator to find vulnerabilities of network So that, they can overcome vulnerabilities of network
TỪ KHÓA
Công cụ quét
An ninh mạng
Lỗ hổng mạng
Trang 12GVHD: Th.S Phạm Hữu Tài, Th.S Lâm Chí Nguyện | SVTH: Huỳnh Duy Khiêm | Trang 1
CHƯƠNG 1: TỔNG QUAN 1.1 ĐẶT VẤN ĐỀ
Khi khoa học máy tính và Internet ngày càng phát triển, thì các vấn đề về an ninh mạng ngày càng được chú trọng Do các hacker (kẻ xâm nhập) luôn tìm cách đột nhập vào các hệ thống máy nhằm phá hoại hay trộm cấp các thông tin quan trọng trong hệ thống máy tính đó Một vấn đề được đặt ra đối vối mọi hacker dù mũ đen hay mũ trắng
là khi đối mặt với một hệ thống máy tính, họ phải biết hệ thống đó hoạt động như thế nào để từ đó đưa ra những phương pháp tấn công hay phòng thủ một cách hữu hiệu
Các thông tin như các dịch vụ, hệ điều hành, webserver… sẽ chỉ ra cho hacker biết hệ thống hoạt động như thế nào và có những lỗ hổng gì Và kỹ thuật quét (scanning) có thể giúp họ có được các thông tin ấy
Hiện nay có rất nhiều chương trình hỗ trợ cho việc quét (scanning) nhưng mỗi chương trình có những chức năng cũng như các ưu, nhược điểm riêng Dựa trên thực tế
là mỗi khi muốn thực hiện việc quét một hệ thống máy tính chúng ta cần tìm những chương trình phù hợp với mục đích quét của mình và thử nghiệm xem các chương trình
đó có hoạt động hiệu quả hay không Dẫn đến việc rất mất thời gian và công sức của người sử dụng Điều này dẫn đến một nhu cầu cần phải có một bộ cộng cụ tích hợp nhiều công quét có thể thực hiện được hầu hết các loại quét một cách hiệu quả
1.2 LỊCH SỬ GIẢI QUYẾT VẤN ĐỀ
Hiện tại đã có một số công cụ quét tích hợp nhiều loại quét khác nhau vào trong chương trình của mình nhưng vẫn chưa có công cụ nào có thể thực hiện được hầu hết các loại quét Vì vậy đây là một đề tài mới cần được nghiên cứu và giải quyết
Trang 13CHƯƠNG 1: TỔNG QUAN
GVHD: Th.S Phạm Hữu Tài, Th.S Lâm Chí Nguyện | SVTH: Huỳnh Duy Khiêm | Trang 2
1.3 PHẠM VI ĐỀ TÀI
Đề tài phải thực hiện được một bộ công cụ tích hợp có các chức năng chính sau:
Kiểm tra các host nào đang hoạt động
1.4 PHƯƠNG PHÁP NGHIÊN CỨU / HƯỚNG GIẢI QUYẾT
1.4.1 Phương pháp nghiên cứu
Phương pháp nghiên cứu ứng dụng: là loại hình nghiên cứu tìm ra những quy trình vận dụng các kết quả nghiên cứu cơ bản vào thực tiễn nhằm tạo ra các quy trình công nghệ mới, các nguyên lý quản lý xã hội…
1.4.2 Hướng giải quyết
- Tìm kiếm và thử nghiệm các công cụ quét:
Hiện tại, có rất nhiều công cụ quét nhưng không phải công cụ nào cũng hiệu quả, dễ sử dụng và có thể chạy trên Linux Để có thể tìm được những công cụ quét hữu hiệu ta phải tiến hành cài đặt và thử nghiệm các công cụ đó để kiểm tra độ chính xác của việc quét Từ đó chọn ra những công cụ quét phù hợp nhất để tích hợp vào bộ công
cụ
- Viết các giao diện người dùng cho bộ công cụ:
Cần phải có một giao diện để người dùng có thể chon lựa các công cụ trong bộ công cụ một cách dễ dàng Đồng thời, đối với các công cụ chạy trên dòng lệnh có cú
Trang 14CHƯƠNG 1: TỔNG QUAN
GVHD: Th.S Phạm Hữu Tài, Th.S Lâm Chí Nguyện | SVTH: Huỳnh Duy Khiêm | Trang 3
pháp câu lệnh phức tạp cũng cần phải có một giao diện người dùng với các tùy chọn tương ứng với các chức năng của công cụ để người dùng có thể dễ sử dụng
-Chọn công nghệ thực hiện:
+Nền tảng: hệ điều hành Ubuntu
Các năm gần đây, hệ điều hành Linux ngày càng phát triển và hoàn thiện đặc biệt là Ubuntu Đây cũng là một hệ điều hành có một cộng đồng người sử dụng khá đông đúc Chính vì tính phổ biến này nên nó sẽ được nhiều nhà phát triển lựa chọn làm nền tảng cho nhiều ứng dụng nói chung và các công cụ quét nói riêng Việc lựa chọn một hệ điều hành mã nguồn mở cũng nhằm mục đích an toàn cho người sử dụng, bởi các công cụ quét đôi khi cũng chính là con dao hai lưỡi khi bản thân nó cũng là một Trojan
+Ngôn ngữ: Java
Việc sử dụng một ngôn ngữ mở cho một hệ điều hành mã nguồn mở là phù hợp Hơn thế nữa, java có một bộ thư viện đồ sộ cho phép gọi và thực thi các chương trình cũng như xử lý việc hiển thị một cách hoàn hảo Và sử dụng java sẽ dễ tìm kiếm sự hỗ trợ do có một cộng đồng người sử dụng đông đảo
Trang 15
GVHD: Th.S Phạm Hữu Tài, Th.S Lâm Chí Nguyện | SVTH: Huỳnh Duy Khiêm | Trang 4
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
2.1 TẤN CÔNG MẠNG
2.1.1 Các kiểu tấn công mạng
Có rất nhiều cách để một hacker có thể tiếp cận được với một hệ thống Tuy nhiên, hacker phải tìm được các điểm yếu hoặc lỗ hổng bảo mật của hệ thống đó Sau đây là cách mà hacker sử dụng để xâm nhập hoặc tấn công các hệ thống:
_Tấn công hệ điều hành: Các hệ điều hành ngày nay thường rất phức tạp, có
thể chạy rất nhiều dịch vụ và các phương thức để truy cập Ở chế độ mặc định, các hệ điều hành thường cho phép chạy một lượng lớn các dịch vụ cũng như mở rất nhiều cổng không cần thiết Các hacker có thể tìm kiếm các lỗ hổng trên hệ điều hành để từ
đó tiếp cận đến các hệ thống mạng
_Tấn công tầng ứng dụng: Đây là nơi giao tiếp trực tiếp với các ứng dụng
Các hacker sẽ lợi dụng các lỗ hổng của các ứng dụng này (như lỗi tràn bộ đệm…) để tiếp cận đến hệ thống
_Tấn công thư viện người dùng: các framework thường sử dụng chung một
số thư viện người dùng (như dll trong Window) phổ biến Bằng cách tấn công vào các thư viện này các hacker sẽ có thể tấn công vào các framework chạy trên hệ thống
_Tấn công dựa vào lỗi cấu hình: Do hệ thống quá lớn hay do người quản trị
không có các kiến thức cần thiết để cấu hình một cách chính xác dẫn đến các lỗi cấu hình cho hệ thống Từ đó các hacker có thể lợi dụng các lỗi cấu hình này để tấn công
hệ thống.[1]
2.1.2 Các bước tấn công mạng
Theo Certified Ethical Hacker (CEH) các bước tấn công một hệ thống sẽ bao gồm các bước sau:
Trang 16CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
GVHD: Th.S Phạm Hữu Tài, Th.S Lâm Chí Nguyện | SVTH: Huỳnh Duy Khiêm | Trang 5
-Bước 1: Thăm dò
Đây là bước thuộc giai đoạn chuẩn bị Hacker sẽ cố gắng thu thập càng nhiều thông tin càng tốt về một hệ thống trước khi thực hiện việc tấn công Các thông tin được thu thập có thể là tên miền của website thuộc hệ thống hay email của người quản trị hệ thống…
-Bước 2: Quét hệ thống
Đây là giai đoạn trước khi tiến hành tấn công một hệ thống Hacker tiến hành quét hệ thống mạng để xác định các thông tin cụ thể của một hệ thống mạng Đây cũng là bước mà luận văn thực hiện
-Bước 3: Truy cập thành công
Hacker thâm nhập thành công vào hệ thống do lợi dụng các điểm yếu hoặc
lỗ hổng trên hệ thống mà hacker đã thu thập được ở hai bước trên
-Bước 4: Duy trì truy cập
Đây là giai đoạn hacker cố gắng giữ lại quyền truy cập hay sở hữu hệ thống
đã xâm nhập bằng cách tạo các backdoor, trojan, rookit… trên các hệ thống đó Và cố gắng đảm bảo quyền độc quyền sở hữu hệ thống của mình đối với các hacker khác
-Bước 5: Xóa dấu vết
Sau khi đã thực hiện thành công việc tấn công một hệ thống, hacker sẽ che dấu các hành động trong quá trình tấn công của mình, để kéo dài thời gian cho một cuộc tấn công khác, tiếp tục sử dụng các tài nguyên hoặc xóa các bằng chứng của việc tấn công nhằm loại bỏ trách nhiệm của mình với pháp luật
2.2 GIỚI THIỆU KỸ THUẬT QUÉT
Quét là một trong ba kĩ thuật thu thập thông tin (sau In dấu ấn_Footprintting và Liệt kê mạng_ Network Enumeration) của một hacker Những kẻ xâm nhập thường phải tốn đến 90% thời gian để thu thập thông tin và chỉ có 10% thời gian cho cuộc
Trang 17CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
GVHD: Th.S Phạm Hữu Tài, Th.S Lâm Chí Nguyện | SVTH: Huỳnh Duy Khiêm | Trang 6
các nhà quản trị mạng Và phạm vi thực hiện của luận văn cũng sẽ thực hiện trong bước này Qua việc quét một hệ thống, hacker hay các nhà quản trị mạng có thể có được các thông tin sau:
Địa chỉ IP
Hệ điều hành
Cấu trúc hệ thống
Các chương trình, dịch vụ nào đang chạy trên máy tính
Có ba loại quét khác nhau:
1 Quét cổng (Port scanning): Các gói tin được gửi đến các cổng máy mục tiêu để tìm hiểu về các dịch vụ mạng của máy tính đó Nếu các liên kết có thể thực hiện chứng tỏ cổng đó đang hoạt động Từ đó có thể tiếp tục xác định dịch vụ đang chạy trên cổng đó
2 Quét hệ thống mạng (Network scanning): Sử dụng các kỹ thuật quét để xác định thông tin của các host đang hoạt động trên một hệ thống mạng Loại quét này có thể phục vụ cho tấn công hay đánh giá tính bảo mật của
Trang 18CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
GVHD: Th.S Phạm Hữu Tài, Th.S Lâm Chí Nguyện | SVTH: Huỳnh Duy Khiêm | Trang 7
2.2.1 Quá trình thực hiện việc tấn công
Hình 2.1-Các bước thực hiện việc tấn công [1]
Do phạm vi đề tài chỉ thực hiện trong bước quét nên ta chỉ tiến hành nghiên cứu
ở 5 bước đầu tiên đó là:
1 Kiểm tra hệ thống đang hoạt động: Bước này nhằm xác định máy mục tiêu hiện đang hoạt trên hệ thống mạng hay không
2 Kiểm tra cổng đang mở: Xác định các cổng mà máy mục tiêu mở nhằm khám phá các dịch vụ chạy trên máy mục tiêu ở bước tiếp theo
3 Xác định dịch vụ: Dựa vào bước thứ hai ta có tiếp tục thực hiện việc quét
để xác định được các dịch đang chạy trên các cổng đó
4 Lấy banner/ Xác định hệ điều hành: Thu thập các banner và các thông tin
mà máy mục tiêu tiết lộ để xác định hệ điều hành hay các webserver, các hệ quản trị cơ sở dữ liệu được sử dụng
5 Quét lỗ hổng: Dựa vào các thông tin thu thập được, tiếp tục thực hiện việc quét để tìm kiếm các thông tin nhạy cảm Từ đó xác định các lỗ hổng của
hệ thống
Trang 19CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
GVHD: Th.S Phạm Hữu Tài, Th.S Lâm Chí Nguyện | SVTH: Huỳnh Duy Khiêm | Trang 8
2.2.2 Kiểm tra hệ thống đang hoạt động
Kiểm tra một hệ thống có hoạt động hay không bằng cách gửi một gói ICMP (Internetwork Control Message Protocol) ECHO request đến nó Nếu hệ thống đó hoạt động nó sẽ phản hồi bằng một gói ICMP ECHO reply Chúng ta cũng có thể gửi cùng lúc đến nhiều host để xác định một dãi IP có hoạt động hay không (kỹ thuật ping sweep)
2.2.3 Kiểm tra các cổng đang mở
Giới thiệu
Để đơn giản trong việc tiếp cận các kỹ thuật quét ta sẽ làm quen với một số khái niệm sau:
Hình 2.2-Cấu trúc của một gói TCP [1]
-Các cờ (flag) của gói TCP:
1 Synchronize: viết tắt là "SYN", khởi tạo một kết nối giữa các host
2 Acknowledgment: viết tắt là "ACK", thiết lập kết nối giữa các host
3 Push: viết tắt là "PSH", hệ thống đang chuyển tiếp dữ liệu từ bộ nhớ đệm
4 Urgent: viết tắt là "URG", được dùng trong ngữ cảnh các dữ liệu trong gói tin cần được xử lí trực tiếp, xử lí nhanh
Trang 20CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
GVHD: Th.S Phạm Hữu Tài, Th.S Lâm Chí Nguyện | SVTH: Huỳnh Duy Khiêm | Trang 9
5 Reset: viết tắt là "RST", tái kết nối
6 Finish: viết tắt là "FIN", thông báo kết thúc một nối kết
- Ba bước thực hiện nối kết (Three Way Handshake):
1 Client gửi cho server một gói với cờ SYN được thiết lập
2 Server nếu đồng ý kết nói sẽ gửi cho client một gói với cờ SYN/ACK được thiết lập
3 Cuối cùng client gửi cho server một gói với cờ ACK được thiết lập Nếu không có biến chứng nào xảy ra, kết nối sẽ được thiết lập giữ hai bên
Sau đây chúng ta sẽ đi vào chi tiết các kỹ thuật quét cổng
SYN Stealth / Quét một nữa (Half Open Scan):
Đây là kiểu quét một nữa vì nó không phải là một kết nối TCP hoàn chỉnh Đầu tiên Client sẽ gửi một gói TCP có cờ SYN (yêu cầu nối kết) đến một cổng của server Nếu server phản hồi bằng một gói TCP có cờ SYN/ACK chứng tỏ cổng đó đang mở Tuy nhiên, thay vì phản hồi lại bằng một gói có cờ là ACK thì client sẽ gửi một gói có cờ RST để kết thúc việc nối kết Ngược lại nếu server gửi trả một gói có cờ RST chứng tỏ cổng đó không hoạt động
Hình 2.3-Minh họa ba bước kết nối giữa máy A(192.168.1.2) kết nối đến
máy B(192.168.1.3) [1]
Trang 21CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
GVHD: Th.S Phạm Hữu Tài, Th.S Lâm Chí Nguyện | SVTH: Huỳnh Duy Khiêm | Trang 10
Hình 2.4-Minh họa kỹ thuật quét SYN Stealth [1]
Thuận lợi của kỹ thuật này là một số server sẽ không ghi lại các kết nối chưa hoàn thành Vì thế quá trình quét này sẽ không được ghi lại
Quét Xmas:
Xmas là một gói với các cờ FIN/URG/PSH được thiết lập Gói này chỉ hoạt động trên các hệ điều hành hỗ trợ đầy đủ giao thức TCP/IP hay RFC 793 RFC
(Request For Comment) là tập hợp những tài liệu về kiến nghị, đề xuất và những lời
bình luận liên quan trực tiếp hoặc gián tiếp đến công nghệ, giao thức mạng
INTERNET Tuy nhiên Xmas sẽ không hoạt động trên bất kỳ phiên bản nào của
Microsoft Nếu Xmas quét nhằm vào hệ thống nào của Microsoft sẽ cho kết quả là tất
cả các cổng đều đóng
Hình 2.5-Minh họa kỹ thuật quét Xmas với máy B là máy cần thăm dò [1]
Thuận lợi của kỹ thuật này là một số Firewall chỉ kiểm tra các gói có cờ
SYN (có nghĩa là, các gói dữ liệu bắt đầu kết nối theo tiêu chuẩn) Gói Xmas không có
cờ SYN nên đi qua tường lửa dễ dàng và đến được hệ thống đích
Trang 22CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
GVHD: Th.S Phạm Hữu Tài, Th.S Lâm Chí Nguyện | SVTH: Huỳnh Duy Khiêm | Trang 11
như quét Xmas và FIN là không hoạt động trên các phiên bản của Microsoft và các hệ
thống không theo chuẩn RFC 793
Hình 2.7-Minh họa quét NULL với máy B là máy cần thăm dò [1]
Quét IDLE:
Như ta đã biết để thực hiện một kết nối client gửi đến server một gói có cờ
SYN Nếu như client đến server một gói có cờ SYN/ACK trong khi server không yêu
cầu thì server sẽ trả về một gói có cờ RST được thiết lập
Trang 23CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
GVHD: Th.S Phạm Hữu Tài, Th.S Lâm Chí Nguyện | SVTH: Huỳnh Duy Khiêm | Trang 12
Mỗi gói IP trên mạng đều có một số chứng minh thư khung (fragment
identification) Một số hệ đều hành đơn giản là chỉ tăng số này lên đơn vị cho mỗi gói
họ gửi đi Vì thế kỹ thuật thăm dò này sẽ nói cho hacker biết những gói tin đã được gửi
đi như thế nào từ lần thăm dò trước
Có 3 bước cơ bản trong kỹ thuật này
Hình 2.8-Minh họa bước 1 của kỹ thuật quét IDLE [1]
Hình 2.9-Minh họa bước 2 của kỹ thuật quét IDLE nếu cổng máy mục tiêu là mở [1]
Trang 24CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
GVHD: Th.S Phạm Hữu Tài, Th.S Lâm Chí Nguyện | SVTH: Huỳnh Duy Khiêm | Trang 13
Hình 2.10-Minh họa bước 2 của kỹ thuật quét IDLE nếu cổng máy mục tiêu là đóng [1]
Hình 2.11-Minh họa bước 3 của kỹ thuật quét IDLE nếu cổng máy mục tiêu là mở [1]
- Bước 3 của kỹ thuật quét IDLE nếu cổng máy mục tiêu là đóng thì IPID vẫn
không tăng so với bước 1
Trang 25CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
GVHD: Th.S Phạm Hữu Tài, Th.S Lâm Chí Nguyện | SVTH: Huỳnh Duy Khiêm | Trang 14
Kết nối TCP/ Quét mở hoàn toàn (Full Open Scan):
Khác với quét một nữa thì kỹ thuật này tạo ra một kết nối thực sự giữa 2 máy bằng cách gọi hàm hệ thống connect() được cung cấp bởi hệ đều hành Nếu cổng
mở, hàm connect() sẽ thành công Ngược lại, nếu cổng đóng thì không thể truy cập
vào máy kia Đây là kỹ thuật có độ chính xác cao nhất vì có thể xác định chắc chắn
cổng đã mở khi kết nối thành công
SYN/FIN Quét sử dụng các khung IP:
Đây là kỹ thuật được kế thừa từ các kỹ thuật trước Các header của TCP được chia ra làm nhiều gói để các bộ lọc gói không xác định được các gói có ý định
làm gì
Quét UDP:
Đây là phương thức quét sử dụng giao thức UDP thay vì giao thức TCP
UDP thì đơn giản hơn TCP nhưng quét thì lại khó khăn hơn Quét UDP sẽ gửi một gói
UDP rỗng vào cổng mục tiêu Mục tiêu phản hồi lại một lỗi không thể kết nối nếu
cổng đóng Nếu cổng mở sẽ trả lời bằng một gói UDP
Quét ACK:
Kỹ thuật này không phải để xác định các cổng có mở hay không mà xem các công có đươc lọc bởi tường lửa hay không Nó cho phép xác nhận sự có mặt của
tường lửa và phát họa nên các quy luật của tường lửa
Một gói tin chỉ với cờ ACK được thiết lập sẽ gửi đến hệ thống đích Nếu
hệ thống đó không lọc (không có tường lửa hoặc không lọc trên những cổng đó) thì dù
là cổng đóng hay mở cũng trả về 1 gói RST Nếu hệ thống có lọc trên cổng đó thì hoặc
là không trả lời hoặc là trả về một thông điệp lỗi ICMP
Trang 26CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
GVHD: Th.S Phạm Hữu Tài, Th.S Lâm Chí Nguyện | SVTH: Huỳnh Duy Khiêm | Trang 15
2.2.4 Xác định hệ điều hành (OS Fingerprinting)/ Lấy banner
Giới thiệu OS Fingerprinting
Có 2 cách để xác định hệ điều hành:
1 Xác định chủ động (Active stack fingerprinting)
2 Xác định bị động (Passive fingerprinting)
Xác định chủ động (Active stack fingerprinting):
Dựa trên thực tế rằng các hệ điều hành sẽ phản ứng khác nhau với các gói TCP khác nhau Ta có thể gửi đến hế thống muốn thăm dò một nhóm các gói TCP với
các cờ khác nhau và xem cách mà hệ thống mục tiêu phản hồi lại các gói này Đem kết
quả so sánh với cơ sở dữ liệu có sẵn ta có thể biết được hệ thống mục tiêu đang sử
dụng hệ điều hành nào Tuy nhiên tường lửa sẽ ghi lại việc quét này
Xác định bị động (Passive stack fingerprinting):
Kỹ thuật gián tiếp quét một hệ thống để nó thiết lộ thông tin hệ điều hành của server Cũng dựa vào các phản ứng khác nhau với những gói TCP khác nhau của
từng hệ điều hành như nhưng sử dụng kỹ thuật nghe lén (sniffer) Tuy nhiên kỹ thuật
này ít chính xác hơn xác định chủ động
Lấy banner:
Người ta có thể thu thập banner của của một website nhằm xác định web
server của nó Một số hệ thống có thể lấy được thông tin web server chỉ bằng câu lệnh
telnet Tuy nhiên, các banner cũng có thể bị làm rối bằng cách thay đổi chuỗi banner
hay các công cụ bảo mật như servermask
Trang 27CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
GVHD: Th.S Phạm Hữu Tài, Th.S Lâm Chí Nguyện | SVTH: Huỳnh Duy Khiêm | Trang 16
Hình 2.12-Thực hiện lệnh telnet
2.2.5 Quét lỗ hổng, điểm yếu của hệ thống:
Sử dụng các kỹ thuật quét để thu thập các thông tin của hệ thống từ hệ điều
hành, các dịch vụ, webserver cho đến các thông tin “nhạy cảm” mà hệ thống đó vô
tình tiết lộ để phân tích và tìm ra các lỗ hổng của hệ thống hay các ứng dụng chạy trên
hệ thống
Trang 28GVHD: Th.S Phạm Hữu Tài, Th.S Lâm Chí Nguyện | SVTH: Huỳnh Duy Khiêm | Trang 17
CHƯƠNG 3: NỘI DUNG VÀ KẾT QUẢ NGHIÊN CỨU
3.1 NỘI DUNG THỰC HIỆN
Để có thể tích hợp được một bộ công cụ hoàn chỉnh việc đầu tiên là chọn các
công cụ phù hợp với mục tiêu đề tài Hiện nay có rất nhiều công cụ quét hệ thống
mạng Tuy nhiên, không phải công cụ nào cũng hiệu quả và mã nguồn mở (hay miễn
phí) Do đó việc chọn lựa các công cụ là một bước quan trọng để có thể có được một
bộ công cụ hiệu quả Vì vậy các công cụ cần phải đạt được những tiêu chí cơ bản sau:
1 Mã nguồn mở hoặc miễn phí
2 Quét chính xác
3 Thời gian quét không quá lâu
4 Có nhiều tùy chọn hiệu quả
5 Không tốn quá nhiều tài nguyên khi quét
Ngoài ra, một trong các mục đích chính của bộ công cụ đó là người dùng không
phải mất quá nhiều thời gian để tìm hiểu các công cụ quét như: công cụ có khả năng
gì, cách thức thực hiện việc quét như thế nào… Việc này là rất khó khăn đối với những
công cụ quét chạy trên dòng lệnh Do cấu trúc cũng như cú pháp của từng công cụ là
khác nhau, nên để có thể tạo được một câu lệnh với các tùy chọn quét phù hợp và hữu
hiệu người dùng phải tìm hiểu các cú pháp và ý nghĩa của nó Dẫn đến một yêu cầu
nữa đó là viết các giao diện điều khiển cho các công cụ chạy trên dòng lệnh Và giao
diện này cũng phải thỏa mãn những điều kiện cơ bản sau:
1 Đơn giản, dễ hiểu
2 Thao tác nhanh gọn
3 Hiển thị nhiều tùy chọn của chương trình
4 Hiển thị rõ ràng, bắc mắt hơn dòng lệnh