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

Bài tập lớn môn an toàn mạng (63)

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 (10.08 MB, 66 trang )

BỘ THÔNG TIN VÀ TRUYỀN THÔNG
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THƠNG
🙖🙐✰🙖🙐

BÀI BÁO CÁO KẾT THÚC HỌC PHẦN
HỌC PHẦN: AN TOÀN MẠNG
SKIPFISH – WEB APPLICATION SECURITY SCANNER

Giảng viên:
Họ và tên:
Lớp:
Mã SV:
Nhóm:
SDT:

TS. Đặng Minh Tuấn
Nguyễn Thuỳ Linh
D18CQAT01-B
B18DCAT137
02
0333855577

Hà Nội, ngày 20/12/2021


MỤC LỤC

DANH SÁCH THUẬT NGỮ VÀ VIẾT TẮT

3


DANH MỤC HÌNH VẼ

6

LỜI MỞ ĐẦU

8

CHƯƠNG 1: GIỚI THIỆU VỀ CÔNG CỤ SKIPFISH

9

1.1Tổng quan về công cụ Skipfish

9

1.2. Hướng dẫn cài đặt và sử dụng công cụ Skipfish

14

1.3. Các vấn đề thường gặp và cách khắc phục với công cụ Skipfish

36

CHƯƠNG 2: THỬ NGHIỆM KỊCH BẢN TẤN CÔNG TRÊN CÔNG CỤ SKIPFISH42
2.1. Các kỹ thuật tấn cơng và cơng cụ tích hợp sử dụng trong bài LAB

42

2.2. Kịch bản thử nghiệm tấn công thực tế


43

KẾT LUẬN

67

TÀI LIỆU THAM KHẢO

68


DANH SÁCH THUẬT NGỮ VÀ VIẾT TẮT
STT Từ viết tắt

1

2

3

4

5

CPU

CSS

DNS


EXIF

GNU

Thuật ngữ Tiếng Anh

Central Processing
Unit

Thuật ngữ Tiếng Việt / Giải thích
Là các mạch điện tử trong một máy
tính,thực hiện các câu lệnh của chương
trình máy tính bằng cách thực hiện các
phép tính số học, logic, so sánh và các
hoạt động nhập/xuất dữ liệu (I/O) cơ
bản do mã lệnh chỉ ra.

Cascading Style Sheets

Được dùng để miêu tả cách trình bày
các tài liệu viết bằng ngơn ngữ HTML
và XHTML. Ngồi ra ngơn ngữ định
kiểu theo tầng cũng có thể dùng cho
XML, SVG, XUL.

Domain Name System

Mang ý nghĩa đầy đủ là hệ thống phân
giải tên miền. DNS được phát minh vào

năm 1984 cho Internet, chỉ một hệ
thống cho phép thiết lập tương ứng giữa
địa chỉ IP và tên miền.

Exchangeable Image
File Format

Định dạng tệp hình ảnh có thể trao đổi
là một tiêu chuẩn chỉ định các định
dạng cho hình ảnh, âm thanh và thẻ phụ
trợ được sử dụng bởi máy ảnh kỹ thuật
số, máy quét và các hệ thống khác xử lý
các tệp hình ảnh và âm thanh được ghi
lại bởi máy ảnh kỹ thuật số.

General Public
License

Là một hệ điều hành và bộ sưu tập phần
mềm máy tính phong phú. GNU bao
gồm tồn bộ phần mềm tự do, hầu hết
được cấp phép theo General Public
License của GNU Project.


6

7

GUI


HTTP

Là một thuật ngữ trong ngành cơng
nghiệp máy tính. Đó là một cách giao
Graphical User Interface tiếp với máy tính hay các thiết bị điện
tử bằng hình ảnh và chữ viết thay vì chỉ
là các dịng lệnh đơn thuần.

HyperText Transfer
Protocol

Là một giao thức lớp ứng dụng cho
các hệ thống thông tin siêu phương
tiện phân tán, cộng tác.
Là sự giao tiếp giữa một hệ thống xử lý
thơng tin hay máy tính với thế giới bên
ngồi, có thể là con người hoặc một hệ
thống xử lý thông tin khác.

8

I/O

Input/Output

9

IP


Internet Protocol

Địa chỉ IP / là địa chỉ của các máy tính
dùng để phân biệt và kết nối với nhau.

Inter Process
Communication

Trong khoa học máy tính, giao tiếp giữa
các q trình hoặc giao tiếp giữa các
quá trình (IPC) đề cập cụ thể đến các cơ
chế mà hệ điều hành cung cấp để cho
phép các quá trình quản lý dữ liệu được
chia sẻ.

Intrusion Prevention
System

Là một hệ thống phát hiện xâm nhập
ngoài khả năng theo dõi, giám sát thì
cịn có chức năng ngăn chặn kịp thời
các hoạt động xâm nhập không mong
muốn đối với hệ thống máy tính.

Local Area Network

Mạng máy tính nội bộ, giao tiếp này
cho phép các máy tính kết nối với nhau
để cùng làm việc và chia sẻ dữ liệu.


10

11

12

IPC

IPS

LAN

4
An toàn mạng - Nguyễn Thuỳ Linh


DANH MỤC HÌNH VẼ
Hình 1.1: Giới thiệu cơng cụ Skipfish

9

Hình 1.2: Báo cáo của Skipfish về việc quét các lỗ hổng bảo mật của một trang web

10

Hình 1.3: Bảng so sánh giữa 2 cơng cụ Skipfish và Acunetix

11

Hình 1.4: Bảng so sánh giữa 2 cơng cụ Skipfish và Nikto


11

Hình 1.5: Bảng so sánh đưa ra tính năng vượt trội của Skipfish so với Grabber

12

Hình 1.6: Các phiên bản khác nhau của Skipfish trên trang chủ

15

Hình 1.7: Cách khởi động cơng cụ Skipfish bằng câu lệnh trên Kali Linux

18

Hình 1.8: Cách khởi động cơng cụ Skipfish đã được tích hợp sẵn trên Kali Linux

19

Hình 1.9: Các tính năng và tham số trong bộ cơng cụ Skipfish phần 1

20

Hình 1.10: Các tính năng và tham số trong bộ công cụ Skipfish phần 2

21

Hình 1.11: Các tham số trong tùy chọn xác thực và truy cập

21


Hình 1.13: Các tham số cho tính năng tùy chọn phạm vi thu thập thơng tin

23

Hình 1.14: Các tham số cho tính năng báo cáo

25

Hình 1.15: Các tham số trong tùy chọn quản lý từ điển

26

Hình 1.16: Các tham số trong tính năng cài đặt hiệu suất

27

Hình 1.17: Các tham số trong tính năng một số các tùy chọn cài đặt khác

28

Hình 1.18: Trang báo cáo được trình bày chi tiết và có thể mở bằng trình duyệt

30

Hình 1.19: Sử dụng giao diện dòng lệnh Skipfish để thực hiện rà quét

33

Hình 1.20: Giao diện hiển thị các trường thơng tin trong q trình rà qt


34

Hình 1.21: Một giao diện khác có thể xem chi tiết các thư mục được quét

34

Hình 1.22: Skipfish báo cáo quá trình rà quét đã thực hiện xong

35

Hình 1.23: Thư mục báo cáo được trích xuất sau q trình rà qt

35

Hình 1.24: Báo cáo chi tiết các thông tin thu thập và cảnh báo sau q trình rà qt

36

Hình 1.25: Thơng thường các vấn đề ln được cập nhật trên trang chủ của Skipfish

41

Hình 2.1: Khởi động cơng cụ Skipfish trong Kali Linux

45

Hình 2.2: Truyền lệnh vào công cụ Skipfish để tiến hành rà qt

45


Hình 2.3: Hiển thị các tính năng qt của Skipfish

46

Hình 2.4: Một vài thơng số về q trình rà qt của Skipfish

46

Hình 2.5: Chi tiết các yêu cầu được rà qt để thu thập thơng tin trang web

47

Hình 2.6: Thư mục chưa báo cáo đầu ra sau khi quá trình qt hồn tất

48

Hình 2.7: Báo cáo kết quả cho trang web testphp.vulnweb.com trên trình duyệt

48

Hình 2.8: Giao diện đăng nhập của trang web testphp.vulnweb.com

49
5

An toàn mạng - Nguyễn Thuỳ Linh


Hình 2.9: Sử dụng truy vấn order by với N=3


50

Hình 2.10: Sử dụng truy vấn order by với N=4

51

Hình 2.11: Sử dụng truy vấn union select để trích xuất các bảng bị lỗi hiển thị

52

Hình 2.12: Sử dụng truy vấn để kiểm tra phiên bản cơ sở dữ liệu

53

Hình 2.13: Sử dụng truy vấn để trích xuất tên cơ sở dữ liệu

54

Hình 2.14: Sử dụng truy vấn để trích xuất các bảng có trong cơ sở dữ liệu

55

Hình 2.15: Sử dụng truy vấn trường thơng tin trong bảng users

56

Hình 2.16: Truy xuất được thành cơng username và password

57


Hình 2.17: Sử dụng username và password vừa thu thập được để đăng nhập

57

Hình 2.18: Giao diện đăng nhập thành cơng vào hệ thống

58

Hình 2.19: Mở cơng cụ Skipfish trên Kali Linux

58

Hình 2.20: Đưa vào câu lệnh để rà quét cho trang web nhuaphucthich.com.vn

59

Hình 2.21: Các tính năng rà qt của cơng cụ Skipfish

59

Hình 2.22: Một số thơng tin hiển thị trong q trình rà quét bằng Skipfish

60

Hình 2.23: Quá trình thu thập thơng tin bằng Skipfish

60

Hình 2.24: Thư mục đầu ra sau quá trình rà quét trang web nhuaphucthinh.com.vn


61

Hình 2.25: Bản báo cáo các lỗ hổng và dữ liệu cho trang web nhuaphucthich.com.vn

61

Hình 2.26: Sử dụng SQL Map để trích xuất cơ sở dữ liệu

62

Hình 2.27: Các cơ sở dữ liệu của trang web đã được tìm thấy

62

Hình 2.28: Trích xuất dữ liệu bảng của cơ sở dữ liệu nhuaphucth_inh

63

Hình 2.29: Các bảng tồn tại trong cơ sở dữ liệu nhuaphucth_inh

63

Hình 2.30: Trích xuất thơng tin các trường trong bảng administrator

63

Hình 2.31: Chi tiết các trường thơng tin trong bảng administrator

64


Hình 2.32: Dùng lệnh –dump để trích xuất tất cả dữ liệu trong bảng administrator

64

Hình 2.33: Lấy được AdmPass và AdmUsername của người quản trị

64

6
An toàn mạng - Nguyễn Thuỳ Linh


LỜI MỞ ĐẦU
Hiện nay trên thế giới nói chung và ở Việt Nam ta nói riêng đang quan tâm đến một số
vấn đề hết sức nổi cộm và nhức nhối đó là vấn đề rị rỉ thơng tin, một loại tội phạm
mới đang xuất hiện trong thời đại công nghệ đó là tội phạm cơng nghệ cao, các loại tin
tặc chuyên đánh cắp thông tin (hacker). Những đối tượng này thường xuyên khai thác,
xâm nhập vào các lỗ hỏng của các hệ thống thông tin, hệ thống mạng nhằm vào mục
đích phá hoại, khai thác dữ liệu quan trọng của hệ thống. Vấn nạn rị rỉ thơng tin
khơng chỉ ảnh hưởng lớn đến sự phát triển về mặt kinh tế của các quốc gia mà còn phá
hoại diễn biến hòa bình và an ninh của các quốc gia. Do đó việc đảm bảo an tồn
thơng tin cho các hệ thống thông tin, các hệ thống mạng là điều quan trọng, cần thiết
và không thể thiếu trong thời đại tin học hóa như hiện nay.
Việc đánh giá, kiểm thử, thử nghiệm các ứng dụng web trong quá trình xây dựng,
hoặc ngay cả sau q trình xây dựng là vơ cùng cần thiết và hữu ích. Cơng việc kiểm
thử sẽ giúp cho ứng dụng web của chúng ta có thể chịu đựng được các cuộc tấn cơng
của các kẻ tấn cơng. Có rất nhiều các cơng cụ hữu ích có thể giúp chúng ta kiểm thử
ứng dụng web của mình.
Skipfish là một trong các cơng cụ hữu ích và mạnh mẽ phục vụ cho công việc rà quét

các thông tin về các lỗ hổng của một trang web, từ đó giúp chúng ta có thể khắc phục
được các điểm yếu để làm cho hệ thống trở nên an toàn hơn. Ngoài ra nó cũng giúp
những người sử dụng thống kê lại các thư mục của một trang web để dễ dàng hơn
trong việc kiểm sốt truy nhập.
Bài báo cáo nhằm mục đích giới thiệu công cụ Skipfish, cách cài đặt, sử dụng và thực
hiện một số kịch bản thử nghiệm dựa trên việc tích hợp cơng cụ này với một số các
cơng cụ hữu dụng khác. Nội dung này chỉ sử dụng cho mục đích học tập, nghiên cứu,
khơng sử dụng với mục đích xấu ảnh hướng đến bất kỳ tổ chức, cá nhân nào.
Em xin chân thành cảm ơn đến giảng viên TS. Đặng Minh Tuấn đã giúp em rất nhiều
trong mơn học An tồn mạng vì vậy em đã có đủ kiến thức và kỹ năng để hoàn thiện
được bài báo cáo một cách hoàn chỉnh.

7
An toàn mạng - Nguyễn Thuỳ Linh


CHƯƠNG 1: GIỚI THIỆU VỀ CÔNG CỤ SKIPFISH
1.1Tổng quan về cơng cụ Skipfish
Skipfish là một trình qt ứng dụng web mã nguồn mở mới được viết và duy trì
bởi Michal Zalewski, Niels Heinen và Sebastian Roschke. Công cụ này sử dụng ngơn
ngữ lập trình C, được phát triển bởi Google và đã có bản quyền được bảo lưu vào năm
2009 – 2012. Khi Skipfish chính thức được phát hành thì nó đã được cấp phép một
cách đầy đủ theo các điều khoản và điều kiện của Apache phiên bản 2.0.

Hình 1.1: Giới thiệu công cụ Skipfish

Mục tiêu của Skipfish tương tự như mục tiêu của các máy quét lỗ hổng bảo mật
web trước đây như Nmap và Nessus, cho phép các nhà phát triển web quét ứng dụng
hoặc trang web của họ để tìm các vấn đề bảo mật tiềm ẩn. Skipfish có thể được sử
dụng để xác định xem mã có dễ bị tấn cơng bởi các cuộc tấn công phổ biến như chèn

các đoạn mã cho trang web XSS, SQL và tấn cơng chèn XML hay khơng vì nó thực
hiện quét các lỗ hổng với các mức độ rủi ro cao, lỗ hổng rủi ro trung bình và qt sự
cố thấp. Sau khi Skipfish hồn thành q trình quét của nó, nó chuẩn bị một bản đồ
trang web tương tác cho trang web được nhắm mục tiêu bằng cách thực hiện thu thập
dữ liệu đệ quy và các thăm dò dựa trên từ điển. Skipfish được cho là có thể dễ dàng xử
lý hơn 2.000 yêu cầu HTTP mỗi giây nếu máy chủ đang được kiểm tra có thể xử lý
tải.
Các vấn đề bảo mật mà Skipfish tập trung vào là các vấn đề của trang web và
ứng dụng web trên internet và các giao diện không an tồn của chúng. Như đã nói
trước đó Skipfish cho phép nhà phát triển quét ứng dụng cho các lỗ hổng. Một lỗ hổng
bảo mật là bất kỳ tình huống hoặc điều kiện nào gia tăng mối đe dọa do đó làm tăng
rủi ro, xác suất điều gì đó có thể xảy ra. Điều quan trọng của công cụ này là các nhà
8
An toàn mạng - Nguyễn Thuỳ Linh


phát triển không phải đợi và xem liệu ứng dụng của họ có dễ bị tấn cơng khơng ngay
lập tức. “Một khi chúng tơi biết điểm yếu của mình, họ sẽ khơng làm chúng tơi nữa
gây hại” - một trích dẫn của Georg Christoph Lichtenberg. Điều đó có thể khẳng định
rằng Skipfish có thể cho phép chúng ta tìm ra điểm yếu trong ứng dụng của mình và
thực hiện các biện pháp bảo vệ cần thiết để giảm thiểu nguy cơ các rủi ro có thể gặp
phải một cách sớm và hiệu quả nhất.

Hình 1.2: Báo cáo của Skipfish về việc quét các lỗ hổng bảo mật của một trang web

Một số công cụ mã nguồn mở và thương mại nổi tiếng hiện nay có chức năng
tương tự Skipfish có sẵn ví dụ: Acunetix, Nikto, Websecurify, Netsparker, w3af,
Arachni, … rất quen thuộc đối với những người làm trong ngành an ninh an tồn
thơng tin và được sử dụng phổ biến vì tính dễ sử dụng của chúng với các giao diện
GUI và cịn cả việc các cơng cụ này được cập nhật thường xuyên tính tới thời điểm

hiện tại. Chính vì thế khó có thể so sánh với các cơng cụ này vì đơn giản Skipfish
9
An tồn mạng - Nguyễn Thuỳ Linh


khơng hướng tới mục đích thương mại, mà chỉ đơn giản là nhắm về vấn đề nghiên cứu
nhiều hơn và phiên bản sửa đổi gần đây nhất cũng đã trôi qua gần một thập kỷ. Chúng
ta biết rằng trong thời đại công nghệ hiện nay, mỗi ngày trôi qua đã có những sự thay
đổi nhất định nên các cơng cụ ngày nay có khả năng rà quét cao hơn rất nhiều.

Hình 1.3: Bảng so sánh giữa 2 cơng cụ Skipfish và Acunetix

Hình 1.4: Bảng so sánh giữa 2 cơng cụ Skipfish và Nikto

Từ các bảng so sánh Skipfish với các cơng cụ rà qt lỗ hổng hiện nay thì ta sẽ
thấy rằng khả năng giám sát, tìm kiếm các vấn đề về bảo mật ứng dụng web, các công
cụ mới đều có sự nổi bật hơn.
Tuy nhiên nếu để so sánh Skipfish với các công cụ rà quét khác trong cùng thời
điểm đó như Grabber, Vega, … thì kết quả mà công cụ này đem lại là cực kỳ ấn tượng
và đương nhiên là nằm trong top đầu các công cụ rà quét đáng để sử dụng.

10
An toàn mạng - Nguyễn Thuỳ Linh


Hình 1.5: Bảng so sánh đưa ra tính năng vượt trội của Skipfish so với Grabber

Mỗi công cụ khác nhau lại có cho mình những ưu điểm và các đặc trưng khác
nhau mà có thể các cơng cụ khác khơng làm được hoặc khơng được tích hợp để suy
cho cùng cũng cố gắng hướng đến một mục đích chung là giải quyết một số vấn đề

phổ biến liên quan đến an toàn bảo mật cho ứng dụng web.
Một số các tính năng cũng như ưu điểm nổi bật của cơng cụ Skipfish:
+ Hiệu suất cao: Hơn 500 yêu cầu mỗi giây đối với các mục tiêu Internet đáp
ứng, hơn 2000 yêu cầu mỗi giây trên mạng LAN/MAN và hơn 7000 yêu cầu đối với
các phiên bản cục bộ đã được quan sát, với dấu chân CPU, mạng và bộ nhớ rất khiêm
tốn. Điều này có thể xuất phát từ:


Ghép kênh đơn luồng, I/O mạng hồn tồn khơng đồng bộ và mơ
hình xử lý dữ liệu giúp loại bỏ sự thiếu hiệu quả của quản lý bộ nhớ,
lập lịch và IPC có trong một số máy khách đa luồng.



Các tính năng HTTP/1.1 nâng cao như yêu cầu phạm vi, nén nội
dung và duy trì kết nối, cũng như giới hạn kích thước phản hồi bắt
buộc, để kiểm sốt chi phí cấp mạng.



Bộ nhớ đệm phản hồi thơng minh và phỏng đốn hành vi máy chủ
nâng cao được sử dụng để giảm thiểu lưu lượng truy cập khơng cần
thiết.



Triển khai C thuần túy theo định hướng hiệu suất, bao gồm một ngăn
xếp HTTP tùy chỉnh.

11

An toàn mạng - Nguyễn Thuỳ Linh


+ Dễ sử dụng: Skipfish hỗ trợ trên nhiều khuôn khổ web khác nhau, thậm chí
cả các trang web cơng nghệ hỗn hợp, với khả năng nghiên cứu tự động, tạo danh sách
từ nhanh chóng và tự động hồn thành biểu mẫu. Cơng cụ này có tính thích nghi cao
và đáng tin cậy tích hợp rất nhiều các tính năng khác nhau:


Nhận dạng theo kinh nghiệm của các lược đồ xử lý tham số dựa trên
đường dẫn và truy vấn khơng rõ ràng.



Xử lý khéo léo các trang web đa khn khổ trong đó các đường dẫn
nhất định tn theo ngữ nghĩa hoàn toàn khác hoặc tuân theo các quy
tắc lọc khác nhau.



Xây dựng danh sách từ tự động dựa trên phân tích nội dung trang
web.



Tính năng qt xác suất để cho phép đánh giá định kỳ, có giới hạn
thời gian đối với các trang web phức tạp tùy ý.

+ Việc kiểm tra bảo mật được thiết kế tốt: Skipfish được kiểm định đạt chất
lượng tương đối cao, ít dương tính giả, kiểm tra bảo mật khác biệt, có khả năng phát

hiện một loạt các lỗ hổng tinh vi, bao gồm cả vectơ tiêm mù. Công cụ này nhằm cung
cấp kết quả các chính xác và có ý nghĩa:


Từ điển thủ công cung cấp phạm vi bảo hiểm tuyệt vời và cho phép
$keyword, $extension kiểm tra kỹ lưỡng trong một khung thời gian
hợp lý.



Q trình thăm dị các khác biệt sử dụng ba bước triển khai được ưu
tiên hơn để kiểm tra các chữ ký và phát hiện các lỗ hổng.



Logic kiểu Ratproxy được sử dụng để phát hiện các vấn đề bảo mật
tinh vi: giả mạo yêu cầu trên nhiều trang web, bao gồm tập lệnh trên
nhiều trang, nội dung hỗn hợp, vấn đề MIME - và bộ mã ký tự khơng
khớp, chỉ thị bộ nhớ đệm khơng chính xác, v.v.



Kiểm tra bảo mật theo gói được thiết kế để xử lý các tình huống
phức tạp: XSS được lưu trữ (đường dẫn, tham số, tiêu đề), chèn SQL
hoặc XML.

12
An toàn mạng - Nguyễn Thuỳ Linh





Báo cáo sau quá trình xử lý làm giảm đáng kể nhiễu do bất kỳ lỗi xác
thực sai nào còn lại hoặc các quảng cáo với nội dung không phù hợp
của máy chủ bằng cách xác định các mẫu lặp lại.

Với những tính năng nổi trội như vậy, cơng cụ Skipfish có thể giúp cho những
người làm an tồn thơng tin có thể phát hiện ra các điểm yếu, lỗ hổng một cách dễ
dàng hơn. Nhưng cũng khơng vì thế mà nó có thể giải quyết được tất cả các vấn đề
khác nhau. Nó cũng tồn tại một số các thiếu xót cũng như tích hợp thiếu một số chức
năng ưu việt khác mà các công cụ khác sở hữu. Chính vì vậy tùy thuộc vào mục đích
và quy mơ của mỗi tổ chức, chúng ta có thể lựa chọn một cơng cụ với các tính năng
phù hợp để có thể tiết kiệm thời gian, chi phí, cơng sức trong khâu rà quét. Nhưng nhớ
rẳng, nếu chúng ta cần sử dụng một cơng cụ với nhiều tính năng và rà qt một cách tỉ
mỉ và chính xác, thì hãy nhớ rằng Skipfish luôn là một lựa chọn đáng tin cậy
1.2. Hướng dẫn cài đặt và sử dụng công cụ Skipfish
1.2.1. Hướng dẫn cài đặt công cụ Skipfish
Skipfish là một công cụ đã phổ biến từ rất lâu và rất dễ sử dụng. Nó được phát
hành phiên bản đầu tiên vào ngày 19 tháng 3 năm 2010 với tên là Skipfish, version
1.00 beta. Trải qua các giai đoạn xây dựng và phát triển thì đến nay nó đã cho ra mắt
phiên bản mới nhất có tên là Skipfish, version 2.10 beta vào tháng 4 năm 2012. Công
cụ này được viết bằng mở nguồn mở với ngơn ngữ lập trình C nên có thể được tích
hợp và cài đặt rất dễ dàng trên các nền tảng hệ điều hành khác nhau như OSX, Linux
hay Window.

13
An toàn mạng - Nguyễn Thuỳ Linh


Hình 1.6: Các phiên bản khác nhau của Skipfish trên trang chủ


Đối với các nền tảng hệ điều hành khác nhau thì điều đầu tiên khi muốn cài đặt
cơng cụ Skipfish là chúng ta sẽ phải truy cập vào trang chủ của Skipfish và chọn vào
mục Downloads ( để tải về
phiên bản mong muốn cho mình. Có rất nhiều các phiên bản khác nhau thích hợp cho
từng hệ điều hành được chú thích màu xanh lá cây tương đối rõ ràng để người dùng có
thể lựa chọn.
Sau khi đã tải xuống về máy tính của mình, nó sẽ được lưu dưới dạng nén. Và
với mỗi hệ điều hành khác nhau sẽ thao tác hơi khác nhau một chút để hoàn tất q
trình giải nén và sử dụng cơng cụ. Dưới đây là hướng dẫn tiếp q trình cài đặt cơng
cụ cho hai hệ điều hành phổ biến là Window và Linux.

14
An toàn mạng - Nguyễn Thuỳ Linh


* Đối với hệ điều hành Windows
Vì cơng cụ khơng phải là một ứng dụng Windows "thực", nên khi giải nén bản
Skipfish đã tải xuống trước đó, thì chúng ta sẽ khơng thể nhìn thấy có bất kỳ cửa sổ
tệp nào có thể thực thi (chẳng hạn như tệp .exe hoặc .msi) như các ứng dụng thông
thường cả. Như vậy để chạy được cơng cụ Skipfish này thì chúng ta sẽ phải cần sử
dụng công cụ Cygwin ( và sau đó thao tác trên đó và sử
dụng tương tự như một ứng dụng Linux.
Bước 1: Tải xuống và tiến hành cài đặt phần mềm Cygwin trên trang chủ
với các phiên bản tương thích cho máy tính Windows 32 bit
hoặc 64 bit. Trên đó có hướng dẫn cài đặt rất chi tiết về phần mềm này hoặc có thể
truy cập vào đường dẫn sau để xem chi tiết cài đặt trên hệ điều hành Windows 10
( />Bước 2: Thực hiện tiêu chuẩn các bước của Trình hướng dẫn cài đặt cơng cụ
Cygwin cho đến khi màn hình 'Thiết lập Cygwin - Packages'. Chọn các gói bổ sung
sau và cài đặt sau. phiên bản 'devel' nếu có:



All -> Base -> zlib



All -> Devel -> openssl-devel



All -> Devel -> libiconv



All -> Devel -> make



All -> Devel -> gcc



All -> Devel -> pcre



All -> Libs -> libiconv2




All -> Libs -> libidn

Bước 3: Bật Terminal của Cygwin sẽ xuất hiện giao diện khá giống với Linux
và sẽ thực hiện việc cài đặt Skipfish sử dụng các câu lệnh sau để tiến hành giải nén tệp
tin Skipfish đã tải về từ ban đầu và tiến hành cài đặt từ mã nguồn bằng lệnh make:


$ tar -xf /path to/ skipfish-2.10b.tgz 16



make



make install

15
An tồn mạng - Nguyễn Thuỳ Linh


Như vậy, q trình cài đặt đã hồn tất và ta có thể sử dụng cơng cụ Skipfish
trên Cygwin tại hệ điều hành Windows bằng giao diện dòng lệnh.
* Đối với hệ điều hành Linux
Hệ điều hành nhân Linux được phân ra thành nhiều phiên bản hệ điều hành
khác nhau như Ubuntu, Kali Linux, Fedora RedHat, CenOS, Linux Mint, … Dưới đây
là phần hướng dẫn cài đặt công cụ Skipfish cho hai nền tảng phổ biến nhất là Ubuntu
và Kali Linux.
+ Hệ điều hành Ubuntu: Ubuntu là một hệ điều hành nhân Linux có lẽ là phổ
biến nhất với đa số người dùng hiện nay vì giao diện đẹp và khả năng tương tác tuyệt

vời. Đương nhiên là công cụ Skipfish thì khơng được tích hợp sẵn ở trong này rồi mà
chúng ta phải thực hiện cài đặt nó. Quá trình cài đặt cũng cực kỳ đơn giản với các
bước như sau:
Bước 1: Nếu các bạn chưa tải tập tin nén trên trang chủ của Skipfish như ở
phần đầu đã nói thì khơng sao cả, hãy bật Terminal của Ubuntu lên và thao tác lệnh
sau đây để tiến hành tải về tập tin nén của công cụ này:
wget />Bước 2: Sau khi tải về được tập tin nén của phiên bản Skipfish, chúng ta sẽ tiến
hành giải nén nó bằng lệnh: tar zxvf skipfish-2.10b.tgz.
Bước 3: Tiếp tục tiến hành tải về thư viện libidn-dev phiên bản 11. Đây là một
yêu cầu bắt buộc để quá trình cài đặt được thành cơng vì nó có thể mã hóa và giải mã
các tên miền được quốc tế hóa, sử dụng câu lệnh sau: sudo apt-get install
libidn11-dev.
Bước 4: Chuyển hướng tới thư mục skipfish và tiến hành cài đặt công cụ bằng
các câu lệnh sau:
• cd skipfish
• make
• make install
• cp dictionaries/default.wl skipfish.wl
Bước 5: Q trình cài đặt hồn tất, bây giờ chúng ta có thể sử dụng cơng cụ
Skipfish bằng các thao tác trên dịng lệnh ví dụ như:
16
An tồn mạng - Nguyễn Thuỳ Linh


./skipfish -o output-folder
+ Hệ điều hành Kali Linux: với các phiên bản mới nhất hiện nay thì cơng cụ
Skipfish đã được tích hợp sẵn ở trong đó nên chúng ta khơng cần phải mất thời gian
cài đặt nữa mà có thể sử dụng trực tiếp công cụ bằng giao diện dịng lệnh trên
Terminal. Có hai cách để mở cơng cụ Skipfish trên Kali Linux như sau:
Cách 1: Bật cửa sổ Terminal lên và gõ vào đó câu lệnh skipfish -h


Hình 1.7: Cách khởi động công cụ Skipfish bằng câu lệnh trên Kali Linux

Cách 2: Nếu không muốn sử dụng câu lệnh trên Terminal, chúng ta có thể bật
cơng cụ Skipfish như sau: Chọn Applications -> 03 - Web Application Analysis
-> skipfish. Cụ thể như hình dưới đây:

17
An tồn mạng - Nguyễn Thuỳ Linh


Hình 1.8: Cách khởi động cơng cụ Skipfish đã được tích hợp sẵn trên Kali Linux

Ở phía trên chính là hướng dẫn cài đặt chi tiết công cụ Skipfish trên các nền tảng hệ
điều hành khác nhau. Tùy thuộc vào mỗi người dùng và mục đích sử dụng mà họ có
thể chọn cho mình việc cài đặt và thực hiện trên môi trường mà họ mong muốn và
thuận tiện nhất. Cịn trong bài báo cáo này thì sẽ chủ yếu sử dụng công cụ Skipfish
chạy trên hệ điều hành Kali Linux vì nó đã được tích hợp sẵn với phiên bản mới nhất.
Và thuận tiện cho quá trình kết hợp các công cụ và các phương thức tấn công khác
nhau để thông qua việc rà quét các lỗ hổng bảo mật từ cơng cụ Skipfish, có thể thực
hành vá các lỗ hổng đó một cách nhanh chóng.
1.2.2. Hướng dẫn sử dụng công cụ Skipfish
Để sử dụng Skipfish một cách thành thạo và hiệu quả nhất thì đầu tiên chúng ta sẽ
xem xét các tính năng, cũng như các tham số của công cụ này bằng cách khởi động
Terminal của Kali Linux và truyền vào câu lệnh skipfish -h. Lúc này một bảng danh
sách các tính năng và tham số truyền vào dịng lệnh của cơng cụ sẽ hiện ra một cách
rất rõ ràng và chi tiết. Sau đây, chúng ta sẽ đi tìm hiểu những điều này để việc sử dụng
công cụ trở nên linh hoạt và hiệu quả trong bất cứ tình huống cụ thể nào.

18

An tồn mạng - Nguyễn Thuỳ Linh


Hình 1.9: Các tính năng và tham số trong bộ cơng cụ Skipfish phần 1

19
An tồn mạng - Nguyễn Thuỳ Linh


Hình 1.10: Các tính năng và tham số trong bộ công cụ Skipfish phần 2

+ Authentication and access options: Đầu tiên ta sẽ tìm hiểu về các tùy chọn trong
xác thực và truy cập. Trong tùy chọn này có các tham số được truyền vào dòng lệnh
với các ý nghĩa như sau:

Hình 1.11: Các tham số trong tùy chọn xác thực và truy cập


-A user:pass - đối với các trang web yêu cầu xác thực HTTP cơ bản,
20

An toàn mạng - Nguyễn Thuỳ Linh


có thể sử dụng cờ này để chỉ định thơng tin đăng nhập của mình.


-F host=IP – khi sử dụng cờ này, ta có thể đặt giá trị tiêu đề 'host' để
xác định ánh xạ tùy chỉnh giữa máy chủ và IP (bỏ qua trình phân
giải).

Tính năng này đặc biệt hữu ích cho các dịch vụ chưa được khởi chạy
hoặc các dịch vụ kế thừa khơng có các mục nhập DNS cần thiết.



-C name=val - cờ này có thể được sử dụng để thêm cookie vào các
yêu cầu HTTP. Điều này đặc biệt hữu ích để thực hiện quét xác thực
bằng cách cung cấp cookie phiên. Khi làm như vậy, hãy nhớ rằng các
URL như /logout (đăng xuất) có thể phá hủy phiên làm việc. Ta có
thể chống lại điều này theo hai cách: bằng cách sử dụng tùy chọn -N,
tùy chọn này khiến máy quét từ chối các nỗ lực thiết lập hoặc xóa
cookie hoặc bằng cách sử dụng tùy chọn -X để loại trừ URL đăng
xuất.



-H name=val - khi nói đến việc tùy chỉnh các yêu cầu HTTP, ta cũng
có thể sử dụng tùy chọn -H để chèn bất kỳ tiêu đề bổ sung, không
chuẩn nào. Cờ này cũng cho phép ghi đè các tiêu đề mặc định.



-b (i|f|p) - cờ này cho phép tác nhân người dùng được chỉ định trong
đó 'i' là viết tắt của Internet Explorer, 'f' cho Firefox và 'p' cho
iPhone. Sử dụng cờ này được khuyến nghị trong trường hợp trang
web đích hiển thị các hành vi khác nhau dựa trên tác nhân người
dùng (ví dụ: một số trang web sử dụng các mẫu khác nhau cho điện
thoại di động và máy khách máy tính để bàn).

Với form authentication (biểu mẫu xác thực) sẽ gửi thông tin đăng nhập bằng biểu

mẫu đăng nhập nhất định. Máy chủ dự kiến sẽ trả lời bằng các cookie đã xác thực sẽ
không được sử dụng trong phần cịn lại của q trình qt. Một tính năng quan trọng
của biểu mẫu xác thực là Skipfish sẽ xác thực lại trong trường hợp máy chủ kết thúc
phiên làm việc.
+ Crawl scope options: tiếp theo sẽ là tùy chọn phạm vi thu thập thơng tin. Đây là
một tính năng cực kỳ quan trọng để giúp việc rà quét trở nên nhanh hơn, cụ thể hơn
21
An toàn mạng - Nguyễn Thuỳ Linh


tùy thuộc cho từng đối tượng khác nhau.

Hình 1.13: Các tham số cho tính năng tùy chọn phạm vi thu thập thơng tin



- d max_depth - giới hạn độ sâu thu thập thông tin cho một số thư
mục con được chỉ định



-c max_child - giới hạn số lượng con trên mỗi thư mục.



-x max_desc - giới hạn tổng số các thư mục con mỗi nhánh cây thư
mục.




-r r_limit - số lượng yêu cầu tối đa có thể được giới hạn với cờ này.



-p crawl% - bằng cách chỉ định tỷ lệ phần trăm từ 1 đến 100%, có
thể yêu cầu trình thu thập thơng tin theo dõi ít hơn 100% tất cả các
liên kết và thử ít hơn 100% tất cả các mục từ điển. Điều này giới hạn
tính hồn chỉnh của q trình qt, nhưng khơng giống như hầu hết
các cài đặt khác, nó làm như vậy một cách cân bằng, khơng xác định.
Nó cực kỳ hữu ích khi bạn đang thiết lập các đánh giá có giới hạn
thời gian, nhưng định kỳ về cơ sở hạ tầng của bạn.



-q hex - cờ này đặt hạt giống ngẫu nhiên ban đầu cho trình thu thập
thơng tin thành một giá trị được chỉ định. Điều này có thể được sử
dụng để tái tạo chính xác một lần qt trước đó để so sánh kết quả.
Tính ngẫu nhiên chủ yếu dựa vào chế độ -p, nhưng cũng ảnh hưởng
đến một vài quyết định quản lý quét khác.



-I string - với cờ này, bạn có thể yêu cầu Skipfish chỉ thu thập dữ
22

An toàn mạng - Nguyễn Thuỳ Linh


liệu và kiểm tra các URL khớp với một chuỗi nhất định. Điều này có
thể giúp thu hẹp phạm vi quét bằng cách chỉ đưa vào danh sách trắng

các phần nhất định của trang web (ví dụ: -I /shop).


-X string - tùy chọn -X có thể được sử dụng để loại trừ các tệp/thư
mục khỏi quá trình quét. Điều này rất hữu ích để tránh kết thúc phiên
(tức là bằng cách loại trừ việc đăng xuất) hoặc chỉ để tăng tốc quá
trình quét của bạn bằng cách loại trừ các thư mục nội dung tĩnh như
/icons/, /doc/, /manuals/ và các vị trí thơng thường, tiêu chuẩn khác
dọc theo những dịng này.



-K string - cờ này cho phép bạn chỉ định tên tham số khơng bị mờ
(hữu ích cho các ứng dụng đặt ID phiên trong URL, để giảm thiểu
nhiễu).



-D domain - cho phép bạn chỉ định các máy chủ hoặc miền bổ sung
nằm trong phạm vi thử nghiệm. Theo mặc định, tất cả các máy chủ
xuất hiện trong URL dòng lệnh đều được thêm vào danh sách –
nhưng bạn có thể sử dụng -D để mở rộng các quy tắc này. Kết quả
của việc này là trình thu thập thơng tin sẽ đi theo các liên kết và kiểm
tra các liên kết trỏ đến các máy chủ bổ sung này.



-B domain - trong một số trường hợp, bạn không muốn thực sự thu
thập dữ liệu tên miền của bên thứ ba, nhưng bạn tin tưởng chủ sở
hữu của tên miền đó đủ để khơng phải lo lắng về việc bao gồm nội

dung tên miền chéo từ vị trí đó. Để loại bỏ cảnh báo, bạn có thể sử
dụng tùy chọn -B.



-Z - khơng thu thập thơng tin vào các trang/thư mục có lỗi 5XX.



-O - sử dụng cờ này sẽ khiến biểu mẫu bị bỏ qua trong q trình
qt.



-P - cờ này sẽ vơ hiệu hóa tính năng trích xuất liên kết và vơ hiệu
hóa hiệu quả việc thu thập thơng tin. Sử dụng -P hữu ích khi bạn
muốn kiểm tra một URL cụ thể hoặc khi bạn muốn cung cấp danh
sách URL được thu thập bằng trình thu thập thơng tin bên ngồi.
23

An tồn mạng - Nguyễn Thuỳ Linh


+ Reporting options: các lựa chọn báo cáo có thể giúp chúng ta có thể trích xuất ra
được các thơng tin trong khi q trình rà qt được hồn tất một cách hệ thống và hiệu
quả nhất tránh được sự trùng lặp, và các thơng tin khơng cần thiết. Ngồi ra với các
tham số tùy chọn khác nhau sẽ có thể cho chúng ta thêm một số nội dung khác ví dụ
như đưa ra log cảnh báo hay trích xuất thơng tin tất cả các URL, email từ q trình
qt, ...


Hình 1.14: Các tham số cho tính năng báo cáo



-o dir - báo cáo sẽ được viết tới vị trí này. Thư mục là một trong hai
tùy chọn bắt buộc và khơng được tồn tại khi bắt đầu qt.



-M - cho phép ghi nhật ký nội dung hỗn hợp. Điều này rất được
khuyến khích khi quét các trang web chỉ có SSL để phát hiện việc
đưa nội dung khơng an tồn vào thơng qua các liên kết khơng được
bảo vệ bằng SSL.



-E - điều này sẽ gây ra lỗi bộ nhớ đệm nội dung bổ sung được báo
cáo.



-U - ghi lại tất cả các URL và địa chỉ email bên ngồi đã được nhìn
thấy trong q trình qt.



-Q - bật tính năng này để loại bỏ hồn tồn các nút trùng lặp trong
báo cáo.




-u - điều này sẽ làm cho Skipfish ngăn chặn tất cả đầu ra bảng điều
khiển trong q trình qt.



-v - sử dụng cờ này để bật báo cáo thời gian chạy, ví dụ, các vấn đề

24
An toàn mạng - Nguyễn Thuỳ Linh


được phát hiện. Có thể được sử dụng nhiều lần để tăng tính chi tiết
và nên được sử dụng kết hợp với -u trừ khi bạn chạy Skipfish với
stderr được chuyển hướng đến một tệp.
+ Dictionary management options: Các tùy chọn trong việc quản lý từ điển. Việc
đảm bảo đã đọc các hướng dẫn được cung cấp trong cây thư mục của Skipfish (có thể
tìm trong File System/usr/share/skipfish/dictionary để chọn tệp từ điển phù hợp và
định cấu hình tệp đó một cách chính xác. Bước này có ảnh hưởng sâu sắc đến chất
lượng kết quả quét sau này.

Hình 1.15: Các tham số trong tùy chọn quản lý từ điển



-W wordlist - chỉ định một tệp trống ban đầu cho bất kỳ từ khóa
trang web cụ thể mới học nào (sẽ hữu ích trong các đánh giá trong
tương lai). Bạn có thể sử dụng -W hoặc -W /dev/null nếu bạn không
muốn lưu trữ các từ khóa tự động học ở bất kỳ đâu. Thông thường,
bạn sẽ muốn sử dụng một trong các từ điển đóng gói (tức là

complete.wl) và có thể thêm một từ điển tùy chỉnh.



-S wordlist - tải danh sách từ được chỉ định (chỉ đọc) để sử dụng
trong quá trình quét. Cờ này là tùy chọn nhưng bạn nên sử dụng từ
điển khi thực hiện quét hộp đen vì nó sẽ làm nổi bật các tệp và thư
mục ẩn.



-L - trong q trình qt, Skipfish sẽ cố gắng nghiên cứu và sử dụng
các từ khóa mới. Cờ này vơ hiệu hóa hành vi đó và sẽ được sử dụng
khi khơng mong muốn bất kỳ hình thức brute-force nào.
25

An toàn mạng - Nguyễn Thuỳ Linh


×