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

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

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 (2.66 MB, 35 trang )

HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG
KHOA CƠNG NGHỆ THƠNG TIN

HỌC PHẦN: AN TỒN MẠNG
BÀI BÁO CÁO:
CƠNG CỤ COMMIX

Giảng viên hướng dẫn:
Sinh viên thực hiện:
Mã sinh viên:

TS. Đặng Minh Tuấn
Nguyễn Tiến Anh
B18DCAT008

Hà Nội, tháng 12 năm 2021


MỤC LỤC
LỜI MỞ ĐẦU

2

DANH MỤC CÁC TỪ VIẾT TẮT

3

DANH MỤC BẢNG BIỂU

4


DANH MỤC HÌNH VẼ

5

CHƯƠNG 1. GIỚI THIỆU VỀ CƠNG CỤ COMMIX

7

1.1. Khái quát về công cụ

7

1.2. Các kỹ thuật tấn công được hỗ trợ

8

2.3. Lịch sử phát hành công cụ

9

2.4. Phương pháp cài đặt công cụ
CHƯƠNG 3. KIỂM THỬ VÀ KHAI THÁC THỰC TẾ

10
16

3.1. Môi trường thử nghiệm

16


3.2. Tấn công chèn lệnh dựa trên kết quả kiểu cổ điển (Classic results-based injection attack)

19

3.3. Tấn công chèn User-Agent HTTP Header

26

KẾT LUẬN

31

TÀI LIỆU THAM KHẢO

34

1


LỜI MỞ ĐẦU
Công nghệ thông tin đã và đang dần trở thành một phần không thể thiếu với
đời sống con người và sự phát triển kinh tế của các quốc gia. Mang trong mình một
sứ mệnh quan trọng như vậy, nó trở thành điểm đáng quan tâm lớn nhất với gần như
tất cả mọi người: Chính phủ quan tâm bảo đảm bí mật của quốc gia và an tồn thơng
tin cho người dân, người dân quan tâm đến sự bảo mật thơng tin của mình, thậm chí
là hacker xấu cũng quan tâm để phá hoại, trục lợi, chống phá,…
Môi trường mạng, vốn từ đầu đã là một thành phần nhạy cảm của cơng nghệ
thơng tin bởi tính quan trọng cũng như tính dễ lợi dụng của nó. Một chiếc máy tính
khơng kết nối mạng chưa chắc đã hồn tồn an tồn, nhưng một chiếc máy tính đang
kết nối mạng thì chắc chắn có nguy cơ bị tấn cơng, dù bằng cách này hay cách khác,

bởi bất cứ nguồn dữ liệu mạng nào cũng có thể trở thành một phần tử tấn công vào
máy người dùng nếu chúng không được sử dụng và kiểm sốt đúng cách.
Vấn đề an tồn thơng tin với người dùng đã quan trọng, nhưng vấn đề an tồn
thơng tin của các nhà cung cấp dịch vụ web và những người phát triển, kiểm thử web
còn quan trọng hơn nhiều, vì những trang web là đầu mối của rất nhiều luồng thông
tin đến và đi. Trong số những nguy cơ họ phải đối mặt thì nguy cơ và hậu quả của
các cuộc tấn công chèn lệnh (Injection Attack) được coi là cao nhất, nguy hiểm nhất,
đến mức mà năm 2017, Dự án Bảo mật Ứng dụng Web Mở OWASP đã liệt dạng tấn
công này vào loại tấn cơng nguy hiểm nhất thời diểm đó.
Nằm trong danh sách các dạng tấn công chèn mã, OS Command Injection
(Tấn công chèn lệnh hệ điều hành) cũng mang những đặc tính nguy hiểm và những
hậu quả tiềm ẩn như vậy. Loại tấn cơng này một khi có thể sử dụng để khai thác một
trang web thì sẽ mang lại rất nhiều thông tin thuận lợi cho kẻ tấn công, đi kèm là khả
năng khai thác sâu hơn với các kỹ thuật tinh vi hơn. Một trong những cơng cụ có thể
hỗ trợ q trình đó là Commix. Commix sẽ được giới thiệu chi tiết hơn trong bài báo
cáo này, vì nó là một công cụ thuận tiện cho cả những người kiểm thử và những kẻ
tấn cơng. Để phát triển tồn bộ các tiền đề trên thành một bài báo cáo hoàn thiện,
sau đây chúng ta sẽ đi qua những tài liệu về OS Command Injection, Commix và
các kết luận sau khi thực hiện báo cáo.

2


DANH MỤC CÁC TỪ VIẾT TẮT
Từ viết tắt

Từ đầy đủ

Giải nghĩa


bWAPP

Extremely Buggy Web
Application

Ứng dụng web chứa lỗ hổng

DVWA

Damn Vulnerable Web
Application

Ứng dụng web chứa lỗ hổng

HTTP

Hypertext Transfer Protocol Giao thức Truyền tải Siêu Văn Bản

ICMP

Internet Control Message
Protocol

Giao thức Điều khiển Truyền Tín
trên Mạng

OS

Operating System


Hệ điều hành

OWASP

Open Web Application
Security Project®

Dự án Bảo mật Ứng dụng Web Mở

PHP

Hypertext Preprocessor

Một loại ngôn ngữ kịch bản

3


DANH MỤC BẢNG BIỂU
Bảng 1. 1. Danh sách các bản phát hành của công cụ Commix

Bảng 2. 1. So sánh khả năng kiểm thử và khai thác lỗ hổng của Commix với một số ứng dụng khác

9

32

4



DANH MỤC HÌNH VẼ
Hình 1. 1. Cơng cụ Commix
Hình 1. 2. Clone Commix về máy từ github
Hình 1. 3. Chạy lệnh help trên cơng cụ commix
Hình 1. 4. Phần General - Commix help
Hình 1. 5. Phần Target - Commix help
Hình 1. 6. Phần Request - Commix help
Hình 1. 7. Phần Enumeration - Commix help
Hình 1. 8. Phần File access - Commix help
Hình 1. 9. Phần Modules - Commix help
Hình 1. 10. Phần Injection - Commix help
Hình 1. 11. Phần Injection - Commix help
Hình 1. 12. Phần Miscellaneous - Commix help

8
11
11
12
12
13
13
14
14
15
15
16

Hình 2. 1. Trang github của Commix Testbed
Hình 2. 2. Hướng dẫn cài đặt Commix Testbed trên trang github
Hình 2. 3. Trang docker của Commix Testbed

Hình 2. 4. Hướng dẫn cài đặt Commix Testbed trên trang docker
Hình 2. 5. Khởi chạy Commix Testbed trên Kali Linux
Hình 2. 6. mơi trường Commix Testbed
Hình 2. 7. Giao diện trang Classic regular example GET
Hình 2. 8. Đoạn code thực thi lệnh ping trong trang Classic regular example GET
Hình 2. 9. Sử dụng Commix để tấn cơng khai thác trang Classic regular example GET
Hình 2. 10. Các bước thực hiện của công cụ Commix với trang Classic regular example GET
Hình 2. 11. Tùy chọn sử dụng Pseudo-Terminal shell để thực hiện chèn lệnh đến nạn nhân
Hình 2. 12. Các tùy chọn có sẵn khi sử dụng Pseudo-Terminal shell
Hình 2. 13. Tên của người dùng trên máy nạn nhân 1
Hình 2. 14. Thơng số hệ điều hành máy nạn nhân 1
Hình 2. 15. Cấu hình mạng của máy nạn nhân 1
Hình 2. 16. Thơng tin kết nối mạng của máy nạn nhân 1
Hình 2. 17. Những tiến trình đang chạy trên máy nạn nhân 1
Hình 2. 18. Toàn bộ file trong thư mục hiện tại của nạn nhân 1
Hình 2. 19. Vị trí của thư mục hiện tại tính từ thư mục gốc của nạn nhân 1
Hình 2. 20. Báo cáo sử dụng dung lượng ổ cứng của nạn nhân 1
Hình 2. 21. Thơng báo thốt và ghi file log của Commix
Hình 2. 22. Sử dụng Commix kết hợp tham số để tăng thông tin thu thập được từ nạn nhân 1
Hình 2. 23. Giao diện trang Testbed Classic user-agent-based example
Hình 2. 24. Đoạn code thực thi lệnh hiển thị User-Agent HTTP trên trang Classic user-agent-based
example
Hình 2. 25. Sử dụng Commix để tấn công khai thác trang Classic user-agent-based example
Hình 2. 26. Các bước thực hiện của cơng cụ Commix với trang Classic user-agent-based example
Hình 2. 27. Thơng số hệ điều hành máy nạn nhân 2
Hình 2. 28. Cấu hình mạng của máy nạn nhân 2

17
17
18

18
18
19
20
21
21
22
22
22
23
23
23
23
24
24
24
24
24
25
26
27
27
28
28
29
5


Hình 2. 29. Thơng tin kết nối mạng của máy nạn nhân 2
Hình 2. 30. Những tiến trình đang chạy trên máy nạn nhân 2

Hình 2. 31. Tồn bộ file trong thư mục hiện tại của nạn nhân 2
Hình 2. 32. Vị trí của thư mục hiện tại tính từ thư mục gốc của nạn nhân 2
Hình 2. 33. Báo cáo sử dụng dung lượng ổ cứng của nạn nhân 2

29
29
29
29
30

6


CHƯƠNG 1. GIỚI THIỆU VỀ CÔNG CỤ COMMIX
1.1. Khái quát về công cụ
Commix (là từ viết tắt của [Comm]and [i]njection e[x]ploiter - trình khai thác
chèn lệnh). Đây là là một công cụ kiểm tra thâm nhập mã nguồn mở (open sourse
pen-test tool), được viết bởi Anastasios Stasinopoulos, hỗ trợ việc tự động hóa việc
phát hiện và khai thác các lỗ hổng chèn lệnh.
Bản quyền công cụ từ năm 2014 đến thời điểm hiện tại thuộc về tác giả
Anastasios Stasinopoulos. Chương trình này là phần mềm miễn phí: người dùng có
thể phân phối lại và / hoặc sửa đổi nó theo các điều khoản của Giấy phép Công cộng
GNU do Tổ chức Phần mềm Tự do (Free Software Foundation) xuất bản, phiên bản
3 của Giấy phép hoặc bất kỳ phiên bản nào mới hơn.
Những đặc tính nổi bật (theo cơng bố của trang chủ cơng cụ): Cơng cụ có một
số đặc tính nổi bật với người sử dụng như sau:
● Dễ sử dụng: Tự động hóa việc phát hiện và khai thác các lỗ hổng chèn lệnh
trong (các) tham số dễ bị tấn cơng và / hoặc các HTTP header.
● Tính cơ động cao: Toàn bộ những thành phần cần thiết để thực hiện những
cuộc tấn công chèn lệnh chống lại nhiều loại hệ điều hành và ứng dụng đều

được tích hợp trong cơng cụ.
● Tính mơ-đun hóa: Người dùng có thể phát triển và dễ dàng nhập các mô-đun
của riêng mình để tăng khả năng tấn cơng của commix và / hoặc điều chỉnh
nó theo nhu cầu của họ.
● Tính tương thích chéo: Commix tương thích với nhiều cơng cụ kiểm tra thâm
nhập khác như: Metasploit Framework, Burp-suite, SQLMap, v.v., do đó tỷ
lệ phát hiện và khai thác thành cơng được tăng cao.
● Tính đa nền tảng: Commix được viết bằng Python, do đó nó chỉ yêu cầu
Python để có thể chạy trên tất cả các nền tảng.
● Miễn phí và mã nguồn mở.
Trang chủ công cụ: />Trang github của công cụ: />
7


Hình 1. 1. Cơng cụ Commix

1.2. Các kỹ thuật tấn công được hỗ trợ
Commix hỗ trợ phát hiện và khai thác dạng tấn công chèn lệnh sau:
● Tấn công chèn lệnh dựa trên kết quả (Results-based): Trong các cuộc tấn cơng
chèn lệnh dựa trên kết quả, kẻ tấn cơng có thể trực tiếp suy ra kết quả của lệnh
được đưa vào thông qua phản hồi của ứng dụng web. Các cuộc tấn công chèn
lệnh dựa trên kết quả được chia thành hai kỹ thuật:
o Tấn công chèn lệnh dựa trên kết quả (cổ điển): Kỹ thuật cổ điển là kiểu
tấn công đơn giản và phổ biến nhất. Cụ thể hơn, kẻ tấn cơng sử dụng
một số tốn tử phổ biến, có thể ghép các lệnh gốc ban đầu với các lệnh
được đưa vào hoặc loại trừ các lệnh gốc ban đầu chỉ thực hiện các lệnh
được đưa vào.
▪ Shellshock: Lỗi Shellshock được phát hiện trong Bash, một công
cụ được sử dụng rộng rãi bởi hệ điều hành Unix và nhiều biến
thể của nó, bao gồm phần mềm nguồn mở Linux và OSX của

Apple.
▪ Lọc ICMP (ICMP exfiltration)
▪ Lọc DNS
o Kỹ thuật đánh giá mã động (Tấn công chèn lệnh dựa trên đánh giá):
Việc chèn lệnh thông qua đánh giá mã động diễn ra khi ứng dụng dễ bị
tấn công sử dụng hàm eval(), hàm này được sử dụng để thực thi động
mã được chuyển (tới hàm eval ()) trong thời gian chạy. Hàm eval ()
được cung cấp bởi nhiều ngôn ngữ thông dịch như Java, Javascript,
Python, Perl, PHP và Ruby
● Tấn cơng chèn lệnh mù (Blind): Sự khác biệt chính giữa các cuộc tấn công
chèn lệnh dựa trên kết quả và các cuộc tấn công chèn lệnh mù nằm ở cách dữ
liệu được truy xuất sau khi thực hiện lệnh shell được đưa vào. Cụ thể hơn, có
những trường hợp một ứng dụng sau khi thực hiện lệnh được đưa vào không
trả lại bất kỳ kết quả nào cho kẻ tấn công. Trong những trường hợp này, kẻ
8


tấn cơng có thể gián tiếp suy ra kết quả của lệnh được đưa vào bằng cách sử
dụng hai kỹ thuật sau:
o Time-based (Blind): Dựa trên thời gian (Mù): Thông qua kỹ thuật
này, kẻ tấn công chèn và thực hiện các lệnh để hiển thị độ trễ thời
gian. Bằng cách đo thời gian ứng dụng phản hồi, kẻ tấn công có thể
xác định xem lệnh được thực thi thành cơng hay thất bại. Chức năng
trong Bash shell có thể giới thiệu độ trễ thời gian là chế độ ngủ, do đó,
bằng cách quan sát độ trễ thời gian, kẻ tấn cơng có thể suy ra kết quả
của lệnh được đưa vào.
o File-based (SemiBlind): Dựa trên tập tin (Bán mù): Kỹ thuật này dựa
trên một logic rất đơn giản: khi kẻ tấn công không thể quan sát kết quả
thực hiện một lệnh được đưa vào, thì kẻ tấn cơng có thể ghi chúng vào
một tệp mà hắn có thể truy cập được.

2.3. Lịch sử phát hành công cụ
Từ khi phát hành (tháng 12 năm 2015) cho đến thời điểm hiện tại (tháng 6 năm
2021), công cụ đã được cập nhật qua 33 bản cập nhật và công bố. Bản mới nhất ở
thời điểm hiện tại là v3.2-stable. Danh sách các bản cơng bố và thời gian phát hành
có thể được theo dõi qua bảng sau:
Bảng 1. 1. Danh sách các bản phát hành của công cụ Commix

ST
T
1
2
3
4
5
6
7
8
9
10
11
12
13
14

Bản công bố

Thời điểm phát hành

v0.3b-20151224
v0.3b-20151231

v0.3b-20160106
v0.3b-20160115
v0.4b-20160204
v0.4.1b-20160226
v0.5b-20160316
v0.6b-20160401
v0.7b-20160418
v0.8b-20160506
v0.9b-20160607
v1.0-stable
v1.1-stable
v1.2-stable

24/12/2015
31/12/2015
06/01/2016
15/01/2016
24/02/2016
26/02/2016
16/03/2016
01/04/2016
18/04/2016
06/05/2016
07/06/2016
14/06/2016
14/07/2016
12/08/2016
9



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34

v1.3-stable
v1.4-stable
v1.5-stable
v1.6-stable
v1.7-stable
v1.8-stable
v1.9-stable
v2.0-stable
v2.1-stable

v2.2-stable
v2.3-stable
v2.4-stable
v2.5-stable
v2.6-stable
v2.7-stable
v2.8-stable
v2.9-stable
v3.0-stable
v3.1-stable
v3.2-stable

14/09/2016
17/10/2016
17/11/2016
28/12/2016
03/02/2017
15/03/2017
02/05/2017
14/07/2017
03/10/2017
12/12/2017
07/05/2018
21/05/2018
13/07/2018
21/09/2018
18/12/2018
26/05/2019
26/06/2019
11/11/2019

26/06/2020
12/05/2021

2.4. Phương pháp cài đặt công cụ
● Môi trường cài đặt: Kali Linux 2021.1
● Các yêu cầu trước khi cài đặt: máy đã cài Python 2.6, 2.7 hoặc 3.x
● Tiến hành cài đặt:
o Tải Commix về máy từ trang github

10


Hình 1. 2. Clone Commix về máy từ github

o Xem hướng dẫn sử dụng của công cụ bằng lệnh python commix.py -h
trong folder commix

Hình 1. 3. Chạy lệnh help trên công cụ commix

o Ở phền help, commix chia hướng dẫn thành các phần như sau:
▪ General: những tùy chọn liên quan đến thao tác chung của công
cụ như: kiểm tra phiên bản, kiểm tra cập nhật, load session file,
kiểm tra kết nối mạng trước khi tấn công

11


Hình 1. 4. Phần General - Commix help

▪ Target: những tùy chọn bắt buộc phải cung cấp trước khi tấn

công. Các thông tin này sẽ được sử dụng để định dạng mục tiêu
tấn cơng (URL)

Hình 1. 5. Phần Target - Commix help

▪ Request: những tùy chọn có thể được sử dụng để cấu hình cách
để kết nối đến URL mục tiêu

12


Hình 1. 6. Phần Request - Commix help

▪ Enumeration: tùy chọn trích xuất thơng tin từ máy chủ mục tiêu

Hình 1. 7. Phần Enumeration - Commix help

13


▪ File access: tùy chọn truy cập files trên máy chủ mục tiêu

Hình 1. 8. Phần File access - Commix help

▪ Modules: tùy chọn được sử dụng để tăng khả năng phát hiện và
tấn cơng chèn lệnh

Hình 1. 9. Phần Modules - Commix help

▪ Injection: tùy chọn dùng để cấu hình cụ thể những parameters để

chèn lệnh và sử dụng những injection payloads của người dùng

14


Hình 1. 10. Phần Injection - Commix help

▪ Detection: tùy chọn để tùy chỉnh trong giai đoạn phát hiện

Hình 1. 11. Phần Detection - Commix help

▪ Miscellaneous: những tùy chọn khác:

15


Hình 1. 12. Phần Miscellaneous - Commix help

CHƯƠNG 3. KIỂM THỬ VÀ KHAI THÁC THỰC TẾ
3.1. Mơi trường thử nghiệm
Có rất nhiều môi trường thử nghiệm hỗ trợ thử với các lỗ hổng OS Command
Injection như:














DVWA (Damn Vulnerable Web Application)
bWAPP (Extremely Buggy Web Application)
OWASP Mutillidae II
Pentester Lab Web for Pentester
Basilic 1.5.14
AjaXplorer < 2.6
PHPTax 08
PHP Charts 1.0
LotusCMS 3.0
Webmin 1.580
Zenoss 3x
Commix Testbed

Trong danh sách trên, Commix Testbed là môi trường được tạo ra dành riêng
cho việc thử nghiệm OS Command Injection vì nó tạo ra một mơi trường với gần
như tồn bộ lỗ hổng OS Command Injection cho đến thời điểm hiện tại. Do những
đặc tính nổi trội đó, trong bài báo cáp này, các trường hợp thử nghiệm sẽ được thực
hiện tồn bộ trong mơi trường Commix Testbed.
Commix Testbed có thể được cài đặt bằng cách clone từ github theo đường
dẫn: hoặc sử dụng docker theo
hướng dẫn trong trang: />tùy theo ý người sử dụng.

16



Hình 2. 1. Trang github của Commix Testbed

Hình 2. 2. Hướng dẫn cài đặt Commix Testbed trên trang github

17


Hình 2. 3. Trang docker của Commix Testbed

Hình 2. 4. Hướng dẫn cài đặt Commix Testbed trên trang docker

Sau khi cài đặt và khởi chạy, Commix Testbed sẽ có dạng 1 trang web chính
chứa nhiều trang con với mỗi trang là một loại lỗ hổng OS Command Injection khác
nhau, được sắp xếp theo nguyên tắc nhất định:

Hình 2. 5. Khởi chạy Commix Testbed trên Kali Linux
18


Hình 2. 6. mơi trường Commix Testbed

Các kịch bản kiểm thử của Commix Testbed được sắp xếp làm 5 loại khác
nhau, bao gồm:






Regular (GET / POST)

Regex Filters:
User-Agent HTTP Header
Cookie HTTP Header
Referer HTTP Header

3.2. Tấn công chèn lệnh dựa trên kết quả kiểu cổ điển (Classic results-based
injection attack)
Tấn công chèn lệnh dựa trên kết quả kiểu cổ điển là kiểu tấn công chèn lệnh
đơn giản và phổ biến nhất. Kẻ tấn cơng sử dụng một số tốn tử shell Linux phổ biến,
ghép các lệnh gốc ban đầu với các lệnh được chèn hoặc loại trừ các lệnh ban đầu và
chỉ thực thi các lệnh được đưa vào.
Các toán tử được đề cập phía trên bao gồm:
● Các tốn tử chuyển hướng “<”, “>”, “>>” cho phép kẻ tấn công chuyển hướng
đầu vào hoặc đầu ra của lệnh.

19


● Tốn tử pipe “|” cho phép kẻ tấn cơng xâu chuỗi nhiều lệnh, để chuyển hướng
đầu ra của một lệnh thành lệnh tiếp theo.
● Toán tử chấm phẩy “;” cho phép kẻ tấn cơng xâu chuỗi trong một dịng mã
một chuỗi nhiều lệnh OS tùy ý được phân tách bằng dấu chấm phẩy.
● Các toán tử logic “||”, “&&” thực hiện một số phép toán logic đối với dữ liệu
trước và sau khi thực thi chúng trên dòng lệnh.
● Các tốn tử thay thế “`”, “$ ()” có thể được sử dụng để đánh giá và thực hiện
một lệnh cũng như cung cấp kết quả của nó làm đối số cho một lệnh khác.
● Ký hiệu dòng mới “\n”, “%0a” phân tách từng lệnh và cho phép kẻ tấn công
xâu chuỗi nhiều lệnh.
Để thực hiện thử nghiệm kiểu tấn công này trong môi trường Commix
Testbed, ta click vào nút GET trong ô Classic regular example của phần Regular

(GET / POST):

Hình 2. 7. Giao diện trang Classic regular example GET

Trang này hoạt động theo cơ chế: người dùng nhập địa chỉ muốn ping vào
thành địa chỉ và click Submit!, trang web sẽ thực thi lệnh ping và hiển thị kết quả ra
màn hình. Đoạn code thực thi được viết như sau:

20


Hình 2. 8. Đoạn code thực thi lệnh ping trong trang Classic regular example GET

Vậy cơ chế cụ thể ở đây là sử dụng method GET, lấy địa chỉ được truyền vào
addr, kiểm tra hệ điều hành sử dụng và thực thi lệnh ping 4 lần với lệnh ping ứng
với hệ điều hành đó đến địa chỉ đã được gán vào $addr. Lệnh echo ở đây sẽ giúp in
kết quả thực thi lệnh exec ra màn hình. Có thể thấy trong đoạn code trên, biến addr
hoàn toàn bị thao túng bởi người dùng mà khơng có một cơ chế xử lý nào từ phía
trang web (GET trực tiếp addr để gán cho $addr), do đó kẻ tấn cơng hồn tồn có
thể tấn cơng chèn lệnh khi lợi dụng điều này, ví dụ chèn lệnh phía sau dấu “;” sau
địa chỉ IP được nhập vào ô địa chỉ để ping.
Sau khi phát hiện có lỗ hổng, ta thực hiện tấn cơng khai thác với cơng cụ
Commix bằng lệnh:
python commix.py -url="http://localhost:3000/scenarios/regular/GET/classic.php?addr=INJECT"

Hình 2. 9. Sử dụng Commix để tấn công khai thác trang Classic regular example GET

21



Công cụ Commix phân giải tên miền (ở đây là localhost), kiểm tra kết nối đến
URL, thực hiện kiểm tra nhận dạng đối với URL mục tiêu, kiểm thử tham số addr
của GET, thử bằng kỹ thuật chèn lệnh dựa trên kết quả kiểu cổ điển và phân tích
chính xác lỗi của trang web, đi kèm với payload đã được inject thành cơng:

Hình 2. 10. Các bước thực hiện của công cụ Commix với trang Classic regular example GET

Tiếp theo, Commix hỏi người dùng lựa chọn sử dụng Pseudo-Terminal shell
hoặc khơng, nếu chọn Y (yes) thì người dùng sẽ được chuyển sang chế độ chèn lệnh,
lúc này có thể thực hiện chèn các mã vào để thu thập thông tin, khai thác tài nguyên
từ nạn nhân.

Hình 2. 11. Tùy chọn sử dụng Pseudo-Terminal shell để thực hiện chèn lệnh đến nạn nhân

Sau khi vào được chế độ này, có thể gõ “?” để xem các tùy chọn của chế độ:

Hình 2. 12. Các tùy chọn có sẵn khi sử dụng Pseudo-Terminal shell

Các tùy chọn bao gồm:






Gõ ‘?’ để xem toàn bộ tùy chọn
Gõ ‘back’ để thoát Pseudo-Terminal shell
Gõ ‘exit’ để thoát commix
Gõ ‘reverse_tcp’ để nhận 1 kết nối reverse TCP từ phía nạn nhân
Gõ ‘bind’ TCP để tạo 1 kết nối TCP đến nạn nhân


22


Sau khi xem các tùy chọn thì kẻ tấn cơng có thể thực hiện chèn các lệnh của
hệ điều hành lên máy nạn nhân để máy đó thực hiện:
● Chạy lệnh whoami để xem tên của người dùng trên máy nạn nhân:

Hình 2. 13. Tên của người dùng trên máy nạn nhân 1

● Chạy lệnh uname -a để xem thông số hệ điều hành nạn nhân:

Hình 2. 14. Thơng số hệ điều hành máy nạn nhân 1

● Chạy lệnh ifconfig để hiển thị cấu hình mạng của máy nạn nhân:

Hình 2. 15. Cấu hình mạng của máy nạn nhân 1

● Chạy lệnh netstat -an để hiển thị thông tin kết nối mạng của máy nạn nhân:

Hình 2. 16. Thơng tin kết nối mạng của máy nạn nhân 1

● Chạy lệnh ps -ef để hiển thị những tiến trình đang chạy trên máy nạn nhân:

23


Hình 2. 17. Những tiến trình đang chạy trên máy nạn nhân 1

● Chạy lệnh ls để hiển thị toàn bộ file trong thư mục hiện tại của nạn nhân:


Hình 2. 18. Toàn bộ file trong thư mục hiện tại của nạn nhân 1

● Chạy lệnh pwd để hiển thị vị trí của thư mục hiện tại tính từ thư mục gốc:

Hình 2. 19. Vị trí của thư mục hiện tại tính từ thư mục gốc của nạn nhân 1

● Chạy lệnh df để hiển thị báo cáo sử dụng dung lượng ổ cứng của nạn nhân:

Hình 2. 20. Báo cáo sử dụng dung lượng ổ cứng của nạn nhân 1

● Sau khi chạy lệnh quit để thốt Commix thì toàn bộ phiên làm việc sẽ được
ghi vào một file log để đọc lại sau đó:

Hình 2. 21. Thơng báo thốt và ghi file log của Commix

Ngồi việc chạy lệnh với duy nhất tham số đầu vào là url, người dùng có thể
thực hiện chạy với các tham số khác như lệnh:
24


×