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

Lab 01 Linux capability Exploration Lab

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 (483.57 KB, 8 trang )

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
ĐẠI HỌC CƠNG NGHỆ THƠNG TIN

Linux capability Exploration Lab

Nhóm: 09

GV: Trần Tuấn Dũng
Lớp:NT113.M21.ATCL

Thành viên:
19520211_Trần Như Phát
19522164_Nguyễn Trọng Tâm
19522510_Lê Triệu vĩ
18520639_Nguyễn Văn Dũng


Câu hỏi 1: Vui lịng biến các chương trình Set-UID sau đây thành các chương trình khơng phải
Set-UID, mà khơng ảnh hưởng đến hành vi của các chương trình này.
• /usr/bin/passwd

Câu hỏi 2: Bạn đã thấy những gì chúng ta có thể làm với khả năng thơ rịng. Chúng ta muốn
bạn làm quen với một số khả năng khác. Đối với mỗi khả năng sau đây, hãy làm như sau: (1) giải
thích mục đích của khả năng này; (2) tìm một chương trình để chứng minh hiệu quả của các khả
năng này (bạn có thể chạy ứng dụng có và khơng có khả năng và giải thích sự khác biệt trong kết
quả). Bạn cũng có thể viết các ứng dụng của riêng bạn nếu bạn thích, miễn là chúng có thể chứng
minh hiệu quả của khả năng. Dưới đây là danh sách các khả năng mà bạn cần làm việc (đọc bao
gồm / linux / capability.h để tìm hiểu về các khả năng).
• Cap_dac_read_search
• Cap_dac_override
• Cap_chown


• Cap_setuid
• Cap_kill
• Cap_net_raw
Tạo chương trình riêng:

Biên dịch và đặt như chương trình set-uid:


• Cap_dac_read_search: Bỏ qua kiểm tra quyền đọc tệp và đọc thư mục và thực hiện kiểm
tra quyền. Sau khi bật khả năng này, nó có thể chạy bất kỳ chương trình nào mà khơng
cần sự cho phép đọc.
- Để kiểm tra lệnh này, ta thay đổi captest.c thành 000, khi chúng ta chạy nó như người
dùng bình thường, nó hiển thị quyền bị từ chối. Sau đó, ta setcap cap_dac_read_search
để đọc lệnh 'mèo', sau đó chạy lại, đáng ngạc nhiên, chúng ta có thể đọc nội dung của
chương trình. Do đó, cap_dac_read_search thực sự bỏ qua quyền đọc, nó có thể chạy bất
kỳ chương trình nào mà khơng có sự cho phép đọc.

• Cap_dac_override: Bỏ qua việc đọc, ghi tệp và thực hiện kiểm tra quyền. (DAC là viết
tắt của "kiểm sốt truy cập tùy ý"). Trong ví dụ đầu tiên, ta đang cố gắng đọc nội dung
của captest.c.


• Cap_chown: Thực hiện các thay đổi tùy ý đối với giao diện người dùng và GID tệp.
Chúng ta loại bỏ khả năng được thiết lập bởi thử nghiệm trước đó, sau đó có ý định thay đổi chủ
sở hữu của captest tệp.c từ gốc sang hạt giống, hóa ra Hoạt động khơng được phép, sau đó chúng
ta đặt khả năng cat_chown cho lệnh 'chown',
Làm lệnh chown một lần nữa, nó thay đổi thành cơng chủ sở hữu của tệp.

• Cap_setuid: tạo UID giả mạo khi truyền thông tin đăng nhập ổ cắm thô
ng qua ổ cắm tên miền UNIX.

Tạo một sidcontent tên tệp nội dung câu sẽ hiển thị.


Sau đó tạo chương trình sẽ giả mạo uid khi đi qua ổ cắm. Chương trình có tên sid.c

Đặt chương trình nội dung sidcontent khơng có quyền đọc cho người khác, sau đó làm
cat sidcontent, chúng ta có thể thấy từ bên dưới hình ảnh, nó cho thấy sự cho phép bị từ
chối. Sau đó, chúng ta đi biên soạn chương trình sid.c và chạy nó, nó cũng nói rằng sự
cho phép bị từ chối.

Sau khi chúng ta setcap cap_setuid để . /sid, sau đó chạy nó, nó chạy thành cơng chương trình
bằng cách hiển thị nội dung trong tệp sidcontent.
• Cap_kill: Bỏ qua kiểm tra quyền để gửi tín hiệu . Trong nhiệm vụ này, ta chạy đầu trên
thiết bị đầu cuối khác trong quyền gốc, và sau đó sử dụng hạt giống cố gắng để giết quá


trình, nhưng như chúng ta đã quan sát trong ảnh chụp màn hình sau đây, nó cho thấy
hoạt động khơng được phép, sau đó chúng ta setcap cap_kill khả năng để giết, và chạy
lại, cuối cùng nó đã giết thành cơng q trình.

• Cap_net_raw: Cho phép người dùng bình thường sử dụng ổ cắm RAW và PACKET.
Trong ví dụ này, trước tiên chúng ta kiểm tra xem ping có bất kỳ khả năng nào khơng,
nó cho thấy nó có một sau đó chúng ta loại bỏ nó và chạy ping, nó hiển thị quyền bị từ
chối, sau đó chúng ta setcap cap_net_raw ping và chạy lại, nó hoạt động!

Câu hỏi 3:
Biên soạn use_cap.c:

Gán khả năng cap_dac_read_search cho tệp thực thi " ./use_cap". Và đăng nhập như người
dùng bình thường, chạy chương trình.



Giải thích kết quả:
So sánh với mã và kết quả, chương trình khơng thể mở tệp bóng tối, nó đến (b) mở thất bại, sau
đó sau khi chúng ta bật nó, nó có thể có được khả năng và nó cho thấy (c) đang mở thành công,
nếu chúng ta bỏ khả năng, (d) mở thất bại và chúng ta không thể bật lại sau khi bỏ khả năng, mặc
dù, trong mã, ngay cả khi chúng ta đã cố gắng để cho phép khả năng của nó một lần nữa, (e) vẫn
mở thất bại.

Câu hỏi 4: Nếu chúng ta muốn tự động điều chỉnh số lượng đặc quyền trong kiểm soát
truy cập dựa trên ACL, chúng ta nên làm gì? So với khả năng, kiểm soát truy cập nào thuận
tiện hơn để làm như vậy?
Trả lời: ACL là một danh sách các mục kiểm soát truy cập, cho phép truy cập cho người
dùng hoặc nhóm trên một tệp hoặc thư mục nhất định. Trong ACL, nếu chúng ta muốn cấp
quyền cho người dùng / nhóm khác, chúng ta ln cần đăng nhập dưới dạng root hoặc
superuser và sử dụng lệnh "chmod" để cấp phép lớn trên tệp cho người dùng mục tiêu. Mặc
dù bằng cách sử dụng các khả năng, chúng ta có thể bỏ qua một số kiểm tra quyền, ngay
cả khi chúng ta không được phép truy cập tệp này. Nó thuận tiện hơn cho người dùng bình
thường vì bạn không cần phải xin phép truy cập từ gốc, nhưng nó nguy hiểm hơn.

Câu hỏi 5: Sau khi một chương trình (chạy như người dùng bình thường) vơ hiệu hóa khả
năng A, nó bị xâm phạm bởi một cuộc tấn công tràn bộ đệm, kẻ tấn công đã tiêm thành
cơng mã độc của mình vào khơng gian ngăn xếp của chương trình này và bắt đầu chạy nó.
Kẻ tấn cơng này có thể sử dụng khả năng A khơng? Điều gì sẽ xảy ra nếu q trình xóa
khả năng, kẻ tấn cơng có thể sử dụng khả năng này không?


Trả lời: Có. Sau khi người dùng bình thường vơ hiệu hóa khả năng A, kẻ tấn cơng vẫn có
thể sử dụng khả năng A bằng cách bật nó trong mã độc của mình, nhưng nếu q trình xóa
khả năng, kẻ tấn cơng khơng thể sử dụng khả năng đó.


Câu hỏi 6: Giống như câu hỏi trước, ngoại trừ việc thay thế cuộc tấn công tràn bộ đệm
bằng cuộc tấn công điều kiện chủng tộc, Cụ thể là, nếu kẻ tấn cơng khai thác điều kiện
chủng tộc trong chương trình này, anh ta có thể sử dụng khả năng A nếu khả năng bị vơ
hiệu hóa khơng? Nếu khả năng bị xóa thì sao?
Trả lời: Nếu kẻ tấn cơng khai thác điều kiện chủng tộc trong chương trình này, anh ta vẫn
có thể sử dụng khả năng A bất kể khả năng bị vơ hiệu hóa hoặc xóa. Đó là bởi vì mã độc
sẽ ln chạy trước khi tun bố khả năng trong cuộc tấn công điều kiện chủng tộc.



×