LỜI CẢM ƠNĐầu tiên, nhóm 1 xin gửi lời cảm ơn đến Học viện Ngân hàng và khoa Công nghệthông tin và Kinh tế số đã tạo điều kiện cho chúng em và các bạn sinh viên được họctập trong một môi
Giới thiệu một số công cụ bảo mật nổi tiếng
Giới thiệu về Acunextic
Acunetix của Invicti Security là một công cụ kiểm tra bảo mật ứng dụng được xây dựng để giúp các tổ chức vừa và nhỏ trên toàn thế giới kiểm soát bảo mật web của họ.
Acunetix đã dành hơn một thập kỷ để bảo mật các ứng dụng web Đi tiên phong vào năm 2005, Acunetix được tạo ra ngay khi bắt đầu quá trình chuyển đổi từ trang web tĩnh sang ứng dụng web thực sự (ngay trước khi AWS hoặc đám mây công cộng thậm chí còn là một ý tưởng) Ngay từ đầu, Acunetix đã dẫn đầu thị trường bằng cách liên tục đổi mới với mục đích giúp các doanh nghiệp vừa và nhỏ dễ dàng theo dõi các vấn đề bảo mật hơn và hành động nhanh chóng để giải quyết chúng.
1.1.1.3 Đôi điều về nhà phát triển
Invicti Security là một nhóm toàn cầu cung cấp các giải pháp để đảm bảo các ứng dụng web luôn an toàn nhất có thể, giúp các tổ chức tự động phát hiện, hợp lý hóa hoạt động, dự đoán các mối đe dọa và hành động nhanh chóng Có trụ sở chính tại Austin Texas, Invicti được thành lập vào năm 2018 bằng cách tập hợp Netsparker và Acunetix, hai thương hiệu ngăn chặn các hành vi vi phạm dữ liệu tốn kém và các sự cố bảo mật khác bằng cách xác định các lỗ hổng web từ giai đoạn đầu phát triển ứng dụng cho đến sản xuất
Với sự thay đổi nhanh chóng của an ninh mạng, Acunetix được xây dựng để phát triển và đón đầu những thay đổi đó, cùng với công nghệ kiểm tra bảo mật ứng dụng tương tác và động (DAST và IAST) hàng đầu giúp tự động hóa việc quản lý lỗ hổng và trao quyền cho các nhóm bảo mật phát hiện nhiều lỗ hổng hơn, giảm các kết quả dương tính giả, tăng năng suất và đơn giản hóa các nỗ lực khắc phục.
1.1.2 Các tính năng cơ bản
1.1.2.1 Kiểm thử xâm nhập tự động (Automated Penetration Testing):
Trước khi bắt đầu kiểm tra thâm nhập chương trình sẽ xác định thủ công các lỗ hổng ứng dụng web như tập lệnh chéo trang, chèn SQL, Cho phép đánh giá và quản lý lỗ hổng bảo mật bằng các tùy chọn tích hợp, bao gồm API để xây dựng các tích hợp cá nhân Tiếp tục thực hiện các thử nghiệm thủ công khác bằng cách sử dụng các công cụ kiểm tra thâm nhập dòng lệnh và dựa trên GUI.
1.1.2.2 Trình quét Bảo mật Website (Website Security Scanner): Chạy quét để thăm dò các trang web và tìm rủi ro ứng dụng Kiểm tra các ứng dụng web được xây dựng bằng các Java framework như Struts, Spring và Java Server Faces Tự động quét các trang được bảo vệ bằng mật khẩu bằng Trình ghi trình tự đăng nhập (Login Sequence Recorder) Sử dụng công nghệ AcuSensor để kiểm tra mã nguồn của ứng dụng web Sao chép hành động của người dùng để thực thi các tập lệnh giống như trình duyệt Sử dụng thử nghiệm hộp đen và xám để tập trung vào toàn bộ bề mặt tấn công.
1.1.2.3 Trình quét Lỗ hổng Bên ngoài (External Vulnerability Scanner):
Quét các ranh giới mạng để tìm các lỗ hổng và cấu hình sai ở lớp mạng. Cung cấp các tùy chọn để lên lịch quét lỗ hổng bên ngoài tại một thời điểm cụ thể để chạy quét thường xuyên Tạo các báo cáo kỹ thuật, quy định và tuân thủ như OWASP top 10, PCI DSS, HIPAA,… Xuất các lỗ hổng sang trình theo dõi sự cố của bên thứ ba như GitHub, GitLab, Atlassian JIRA, Bugzilla, Mantis và Microsoft TFS.
1.1.2.4 Bảo mật ứng dụng Web (Web Application Security):
Bảo vệ chống lại các lỗ hổng đã biết và trang web hoặc ứng dụng web bao gồm các trang web được xây dựng bằng HTML5 và JavaScript SPA khó quét Quét các tệp trang web thông qua xác thực biểu mẫu tùy chỉnh hoặc các biện pháp kiểm soát truy cập và quản lý phiên khác Đánh giá và giảm thiểu rủi ro bảo mật bằng các công cụ quản lý lỗ hổng có sẵn, bao gồm mức độ ưu tiên và xu hướng lịch sử.
1.1.2.5 Công nghệ AcuSensor (AcuSensor Technology):
Cho phép kiểm tra bảo mật ứng dụng tương tác và hoạt động với các ứng dụng được viết bằng PHP, ASP.NET và Java Cung cấp thông tin bổ sung
Page | 2 từ phía sau máy chủ trong quá trình quét ứng dụng web để dễ dàng khắc phục, độ chính xác cao hơn và phạm vi bao phủ đầy đủ Nó có thể được cài đặt trên các máy chủ chạy thử để thực hiện phân tích IAST.
1.1.2.6 Công nghệ AcuMonitor (AcuMonitor Technology):
Tăng phạm vi lỗ hổng được phát hiện bởi máy quét Acunetix và cho phép phát hiện ngoài băng tần Xác định các lỗ hổng như tấn công tiêu đề máy chủ (host header attacks), XSS mù (blind XSS), chèn XML/SOAP phía máy chủ mù (blind server-side XML/SOAP injection), thực thi mã từ xa ngoài phạm vi băng tần và chèn SQL (out of the band remote code execution andSQL injection), chèn tiêu đề email (email header injection), giả mạo yêu cầu phía máy chủ và chèn thực thể bên ngoài XML (server-side request forgery and XML external entity injection).
Giới thiệu về Nessus
Nessus là một nền tảng do Tenable phát triển được viết bằng ngôn ngữ NASL để quét các lỗ hổng bảo mật trong thiết bị, ứng dụng, hệ điều hành, dịch vụ đám mây và các tài nguyên mạng khác.
1.2.1.2 Sự ra đời của Nessus
Dự án Nessus Nessus là một dựa án nguồn mở “Nessus Project”, được đề xuất bởi Re Deraison vào năm 1998 nhằm cung cấp cho cộng đồng Internet một máy quét bảo mật từ xa.
1.2.1.3 Những thăng trầm lịch sử
Vào ngày 05/10/2005, Công ty An ninh mạng Tenable, mà Re Deraison là đồng sáng lập, chuyển Nessus 3 dưới dạng mã nguồn đóng sang giấy phép độc quyền Tháng 7 năm 2008, Tenable phát hành giấy phép tu chỉnh cho người dùng cá nhân có toàn quyền truy cập vào các bản vá plugins Một giấy phép chuyên nghiệp cũng được phát hành cho mục đích thương mại. Nessus 3 có mặt trên nhiều hệ điều hành, cung cấp các bản vá mà không cần một máy chủ riêng, và nhanh hơn từ hai đến năm lần so với Nessus
2 Các phiên bản chính của Nessus mà Tenable đã phát hành bao gồm Nessus 4.0 vào ngày 9 tháng 4 năm 2009, Nessus 5.0 vào ngày 15 tháng 2 năm 2012, và Nessus 6.0 vào ngày 14 tháng 10 năm 2014.
Ban đầu, Nessus bao gồm hai phần chính: nessusd - dịch vụ luôn chạy Nessus để thực hiện quét, và nessus client - chương trình con điều khiển các tùy chọn quét và xuất kết quả cho người sử dụng Các phiên bản sau của Nessus (từ phiên bản 4 trở lên) sử dụng một máy chủ web cung cấp cùng tính năng giống như Nessus client
Nessus có thể chạy trên nhiều nền tảng hệ điều hành khác nhau, bao gồm cả UNIX, Linux, Mac OS X, Windows Hiện tại phiên bản Nessus 5.0 chạy trên giao diện web, do đó có thể dễ dàng truy cập, sử dụng trên mọi hệ điều hành.
1.2.2 Các tính năng cơ bản
1.2.2.1 Đánh giá lỗ hổng toàn diện
Nessus vượt trội trong việc thực hiện đánh giá lỗ hổng toàn diện trên các hệ thống, mạng và ứng dụng Không chỉ quét ở cấp độ bề mặt, Nessus còn chủ động thăm dò các lỗ hổng đã biết, cấu hình sai, thông tin xác thực mặc định, giao thức không an toàn và các điểm yếu bảo mật khác có thể bị khai thác.
Sử dụng thư viện kiểm tra lỗ hổng và kỹ thuật quét chủ động, Nessus cung cấp cái nhìn toàn diện về tình hình bảo mật Xác định và nêu bật các điểm có thể bị khai thác, giúp doanh nghiệp ưu tiên và giải quyết các lỗ hổng trước khi chúng được khai thác bởi tác nhân độc hại Nessus bao phủ nhiều nền tảng, bao gồm hệ điều hành, cơ sở dữ liệu, quét ứng dụng web và thiết bị mạng Thư viện kiểm tra lỗ hổng được cập nhật thường xuyên, đảm bảo thông tin mới nhất để bảo mật hệ thống.
Nessus có tỷ lệ sai sót cực thấp với độ chính xác 6 sigma (được đo ở mức 0.32 lỗi/1 triệu lần quét) Mức độ quét sâu nhất và rộng nhất với hơn 100,000 plugin, phạm vi bảo vệ hơn 45,000 CVE và hơn 100 plugin mới được giải phóng hàng tuần trong vòng 24 giờ sau khi phát hiện lỗ hổng.
Với hơn 100,000 plugin tự động cập nhật liên tục, Nessus lấy thông tin kịp thời về các lỗ hổng và phần mềm độc hại mới nhất để thu hẹp thời gian đánh giá, nghiên cứu và khắc phục sự cố Các plugin tùy chỉnh cho phép tạo ra các kiểm tra đặc biệt để đánh giá tính bảo mật của các ứng dụng duy nhất cho tổ chức.
1.2.2.2 Quét trên nhiều dịch vụ
Nếu hai hoặc nhiều máy chủ web chạy trên cùng một máy chủ, trên các cổng khác nhau, Nessus sẽ xác định và kiểm tra tất cả chúng Hợp tác với plugin – không thực hiện kiểm tra không cần thiết Nếu máy chủ FTP không cung cấp thông tin đăng nhập ẩn danh thì việc kiểm tra bảo mật liên quan đến đăng nhập ẩn danh sẽ không được thực hiện Báo cáo hoàn chỉnh – phát hiện các lỗ hổng bảo mật và mức độ rủi ro của từng lỗ hổng (Thông tin, Thấp, Trung bình, Cao và Nghiêm trọng), đồng thời đưa ra các giải pháp Hỗ trợ SSL đầy đủ – kiểm tra các dịch vụ được cung cấp qua SSL như HTTPS, SMTPS, IMAPS.
1.2.2.3 Cơ sở dữ liệu và Plugin đa dạng
Nessus nổi tiếng với cơ sở dữ liệu plugin phong phú, giúp cải thiện hiệu suất quét và giảm thời gian đánh giá và khắc phục lỗ hổng Các plugin này có thể được tùy chỉnh để phù hợp với môi trường ứng dụng cụ thể của từng tổ chức.
Tùy chọn “tối ưu hóa” sẽ xác định plugin nào nên hoặc không nên khởi chạy đối với máy chủ từ xa Tùy chọn “Không phá hủy” - Một số kiểm tra nhất định có thể gây ra tác động tiêu cực đối với các dịch vụ mạng cụ thể Để tránh việc gây ra lỗi dịch vụ, hãy bật tùy chọn “kiểm tra an toàn” Tùy chọn này sẽ yêu cầu Nessus không khai thác các lỗ hổng thực sự để xác định xem có lỗ hổng bảo mật hay không.
H nh 1 Tính năng Predictive Prioritization của Nessus
Nessus cũng có một tính năng gọi là ưu tiên dự đoán (Predictive Prioritization), sử dụng thuật toán để xếp loại lỗ hổng dựa trên mức độ nghiêm trọng, giúp các nhóm IT xác định những mối đe dọa cần được ưu tiên giải quyết
Mỗi lỗ hổng được gán một xếp hạng mức độ ưu tiên dễ bị tổn thương (Vulnerability Priority Rating - VPR), với thang điểm từ 0 đến 10, trong đó 10 đại diện cho mức rủi ro cao nhất.Điểm số này giúp đánh giá mức độ nghiêm trọng của lỗ hổng: nghiêm trọng, cao, trung bình, hoặc thấp Đội ngũ IT cũng có thể áp dụng các chính sách và mẫu cấu hình sẵn có để nhanh chóng phát hiện lỗ hổng và hiểu rõ tình hình an ninh mạng.
H nh 2 Tính năng Live Result của Nessus
Nessus cung cấp kết quả trực tiếp, cho phép đánh giá lỗ hổng thông minh ở chế độ ngoại tuyến với mỗi cập nhật plugin.
Loại bỏ nhu cầu chạy quét để xác nhận một lỗ hổng, tạo ra quy trình đánh giá, ưu tiên và khắc phục vấn đề an ninh hiệu quả Bạn có thể sử dụng Live Results để xem kết quả quét cho các plugin mới dựa trên dữ liệu được thu thập gần đây nhất của quá trình quét mà không cần thực hiện quét mới
Giới thiệu về Nmap
Nmap (Network Mapper) là một công cụ bảo mật được tạo bởi Gordon Lyon (còn được biết đến với bút danh là Fyodor Vaskovich) Nmap có mã nguồn mở, miễn phí được sử dụng để phát hiện các máy chủ và dịch vụ trên mạng máy tính bằng cách gửi gói tin và phân tích các phản hồi.
Nmap cung cấp một số tính năng để thăm dò mạng máy tính, bao gồm phát hiện máy chủ và phát hiện dịch vụ và hệ điều hành Những tính năng này có thể được mở rộng bằng các kịch bản để cung cấp phát hiện dịch vụ nâng cao hơn, phát hiện lỗ hổng và các tính năng khác.
Nmap được viết trên nền tảng C ++ và được giới thiệu lần đầu tiên cùng với mã nguồn trong tạp chí Phrack vào tháng 9 năm 1997 Sau đó nó được mở rộng với C, Perl và Python Nmap tiếp tục tồn tại và không ngừng phát triển, một phần cũng nhờ sự hưởng ứng rất lớn của cộng đồng.
Hệ điều hành: đa nền tảng, chạy được trên Windows và macOS cũng như được hỗ trợ trên các bản phân phối của Linux bao gồm Red Hat, Mandrake, SUSE và Fedora Nó cũng hoạt động tốt trên các hệ điều hành khác bao gồm BSD, Solaris, AIX và AmigaOS.
Ta có thể sử dụng Zenmap là giao diện đồ họa của máy quét bảo mật Nmap nhằm mục đích làm cho Nmap dễ sử dụng cho người mới bắt đầu đồng thời cung cấp các tính năng nâng cao cho người dùng Nmap có kinh nghiệm Giao diện này cung cấp cho người dùng hàng trăm tùy chọn khác nhau Nó cho phép người dùng thực hiện những việc như lưu trữ thông tinh về các lượt quét và sau đó so sánh chúng, xem bản đồ cấu trúc liên kết mạng, xem hiển thị các cổng đang chạy trên máy chủ hoặc tất cả máy chủ trên mạng và lưu trữ, quét trong cơ sở dữ liệu để phục vụ cho quá trình tìm kiếm sau này.
1.3.2 Các tính năng cơ bản
Sử dụng để phát hiện các host đang sống hay đã chết trên mạng Nó cung cấp trạng thái chính xác về các hệ thống trên mạng Nmap sẽ gửi một request đến máy chủ đích để thăm dò, nếu response được trả về từ máy chủ đích thì điều nãy có nghĩa là host sống (bạn sẽ thấy có dòng chữ “Host is up”).
H nh 5 Tính năng phát hiện host của Nmap
Liệt kê các cổng mở trên máy chủ mục tiêu Nmap có khả năng quét một hoặc nhiều cổng trên một máy chủ để xác định trạng thái của cổng (6 trạng thái) thông qua việc gửi các gói tin đến các cổng cụ thể và phân tích các phản hồi để xác định trạng thái của cổng Khi scanning port với Nmap, chúng ta có 2 loại scan cơ bản thường được sử dụng:
Quét cổng TCP: TCP là một giao thức dễ quét vì tiêu chuẩn TCP quy định rằng các hệ thống phải trả lời bằng SYN/ACK khi nhận đượcSYN Chúng tôi có thể gửi gói SYN tới tất cả 65536 cổng và ghi lại tất cả các SYN/ACK quay trở lại và kết luận các cổng được mở dựa trên phản hồi của SYN/ACK Khi không nhận được phản hồi, chúng ta có thể cho rằng cổng đã bị đóng hoặc được lọc bởi Tường lửa chẳng hạn.
H nh 6 Tính năng quét cổng TCP của Nmap
Với SYN/ACK trên cổng 445, chúng tôi đã xác định được cổng đang mở.
Quét cổng UDP: Với UDP, việc xác định xem một cổng có hoạt động hay không sẽ khó hơn Đối với cổng UDP, máy quét không thể dựa vào SYN/ACK Trên thực tế, máy quét hầu như luôn phải dựa vào việc khiến dịch vụ lắng nghe đưa ra một số phản hồi Với rất nhiều cổng có khả năng mở và các dịch vụ khác nhau chỉ phản hồi đúng loại dữ liệu, việc quét tất cả các cổng trong thời gian hợp lý sẽ trở nên tốn thời gian và khó khăn.
Hãy xem xét cuộc trò chuyện sau đây trong đó Eve đang cố gắng tìm hiểu xem cổng UPD có mở hay không:
H nh 7 Tính năng quét cổng UDP của Nmap
Eve cần nói đúng giao thức và đảm bảo các gói đến được đích, ví dụ như không bị mất gói Nếu không thì Eve có thể không phát hiện ra cổng đang mở Bởi vì việc quét UDP này có thể rất tốn thời gian nếu chúng ta muốn quét tất cả các cổng.
Khi sử dụng Nmap, chúng ta cần quan tâm Nmap cho ra kết quả cổng đó mang trạng thái gì: Có 6 trạng thái của cổng: o Open: cổng mở tức là đang có một dịch vụ thực hiện kết nối ra bên ngoài mà không bị giám sát bởi tường lửa Đương nhiên rồi, cổng mở là điều hacker mong muốn nhất. o Closed: cổng đóng chưa phải là điều đen tối nhất Máy mục tiêu vẫn nhận và phản hồi, chỉ là không có ứng dụng nào đang nghe trên cổng đó Cổng được thông báo là đóng vẫn cho ta biết host đang sống Ngoài ra nó vẫn hữu ích trong việc nhận diện hệ điều hành. o Filtered: đây mới là điều tệ nhất Bị lọc nghĩa là đã có sự ngăn chặn bởi tường lửa, bạn chẳng nhận được bất cứ phản hồi gì từ mục tiêu cả. o Unfiltered: đồng nghĩa với việc không bị chặn, nhưng không thể biết được cổng đóng hay mở. o Open/Filtered: không biết là cổng mở hay bị lọc Hiện tượng này xảy ra đối với kiểu quét mà cổng dù mở nhưng không phản hồi gì cả, vì thế biểu hiện của nó giống như bị lọc. o Closed/Filtered: Trạng thái xuất hiện khi Nmap không biết được port đó đang Closed hay Filtered Nó được sử dụng cho quét IPID Idle
H nh 8 Quét cổng với Nmap
Nmap có thể xác định chính xác các dịch vụ và phiên bản đang chạy trên các cổng mở của máy chủ mục tiêu Nmap có thể gửi các gói tin đến cổng mở và phân tích các phản hồi để xác định các dịch vụ đang chạy trên các cổng đó.
H nh 9 Phát hiện dịch vụ đang chạy trên các cổng mở Nmap
Xác định hệ điều hành đang chạy trên máy chủ Do các hệ điều hành khác nhau xử lý gói tin một cách khác nhau nên Nmap sẽ gửi một loạt các gói tin đặc biệt đến máy chủ mục tiêu và sau đó phân tích các phản hồi nhận được. Dựa trên cách mà máy chủ phản ứng với các gói tin này, Nmap sử dụng một cơ sở dữ liệu các dấu hiệu nhận biết hệ điều hành (OS fingerprint) để đưa ra các dự đoán về hệ điều hành mà máy chủ đang chạy Tỷ lệ phần trăm đại diện cho độ khớp giữa phản hồi nhận được với mỗi hồ sơ hệ điều hành trong cơ sở dữ liệu của Nmap.
H nh 10 Phát hiện hệ điều hành với Nmap
NSE là các file kịch bản dựng sẵn của Nmap giúp thực hiện yêu cầu quét một cách tự động và nhanh chóng, mở rộng tính năng cho Nmap thêm rất nhiều không chỉ đơn thuần là quét cổng nữa, ví dụ như quét mạng sâu hơn, phát hiện malware, quét lỗ hổng bảo mật, và có thể khai thác lỗ hổng bảo mật đó Các file này có đuôi mở rộng nse, chứa trong thư mục “scripts” trong thư mục cài đặt của Nmap (/usr/share/nmap).Ta có các loại script như sau: auth: Các script liên quan đến xác thực (authentication) broadcast: Khám phá host bằng gửi tin broadcast brute: Thực hiê •n brute-force đăng nhâ •p default: Các đoạn script mă •c định, có thể dùng nhanh bằng -sC discovery: Truy vấn thông tin có thể truy câ •p, chẳng hạn như database hoă •c DNS names dos: Phát hiê •n các máy chủ dễ dàng bị DoS exploit: Cố gắng khai thác các lỗ hổng external: Kiểm tra bằng cách sử dụng dịch vụ của bên thứ ba fuzzer: Tấn công fuzzer intrusive: Các tâ •p lê •nh xâm nhâ •p chẳng hạn như brute-force hoă •c exploitation malware: Quét cho backdoors safe: Các lê •nh an toàn, không làm hỏng mục tiêu version: Truy xuất phiên bản của dịch vụ
H nh 11 Tấn công brute-force để thử đăng nhập vào dịch vụ SSH trên máy chủ đích
2.3 Mô phỏng quá trình tấn công và giải thích các loại lỗ hổng bảo mật có thể bị khai thác bởi hacker
Cảnh báo mọi thứ mà chúng tôi làm dưới đây đều thực hiện trên máy ảo của chúng tôi và phục vụ cho mục đích học tập Nếu các bạn sử dụng nó trên server thật sẽ vi phạm pháp luật Chúng tôi không chịu bất cứ trách nhiệm nào về hành vi của các bạn!
2.3.1 Giai đoạn khảo sát, tiền tấn công
Hướng dẫn cài đặt và sử dụng Nmap
Mô phỏng quá trình tấn công và giải thích các loại lỗ hổng bảo mật có thể bị khai thác bởi hacker
Cảnh báo mọi thứ mà chúng tôi làm dưới đây đều thực hiện trên máy ảo của chúng tôi và phục vụ cho mục đích học tập Nếu các bạn sử dụng nó trên server thật sẽ vi phạm pháp luật Chúng tôi không chịu bất cứ trách nhiệm nào về hành vi của các bạn!
2.3.1 Giai đoạn khảo sát, tiền tấn công
Nhóm m nh có thực hiện một video demo quá tr nh trên một hệ thống do nhóm m nh thiết lập (không cài đặt các tính năng, chức năng bảo mật của hệ điều hành) Chi tiết các bạn có thể xem tại đây để có cái nh n trực quan hơn.
M nh rất mong chờ được đón nhận những phản hồi tích cực sau khi xem!
Các cụ có câu : “Biết địch biết ta, trăm trận trăm thắng !” Các hacker cần thu thập dữ liệu từ người dùng bằng cách thăm dò nhân viên, cách thức hoạt động, đầu ra đầu vào của trang web Song song với quá trình trên, các hacker sẽ tiến hành xác định địa chỉ IP, các cổng đang mở của website đó, hệ điều hành cũng như các dịch vụ đang chạy Khi đã biết được các dịch vụ và các cổng thì chúng sẽ bắt đầu xác định cách thức tấn công bằng việc tìm kiếm lỗ hổng bảo mật của phiên bản đó hoặc dựa vào phiên bản đó để phát triển công cụ tấn công, hay là tấn công từ chối dịch vụ DoS,… Sau khi đã xâm nhập được vào hệ thống của nạn nhân chúng bắt đầu thực hiện những hành vị mờ ám của mình Và để có thể bảo mật được hệ thống đôi khi chúng ta phải đóng vai một hacker để tấn công vào hệ thống của chính mình để kiểm tra các lỗ hổng bảo mật cũng như kiểm tra mức độ chịu sát thương của hệ thống! Dưới đây là các bước sử dụng nmap để thực hiện giai đoạn 1 trên nmap: Bước 1: Dò tìm địa chỉ IP, có hai loại địa chỉ IP là IP công khai và IP không công khai Thường các trang web lớn sẽ có cả hai loại địa chỉ này.
Khi chúng ta gửi lệnh Ping tới tên miền thì hệ thống sẽ: o Hiển thị ra địa chỉ IP công khai
Bước 2: Từ địa chỉ IP đó các hacker sẽ sử dụng các công cụ quét IP, Port, Service để xác định thông số của mục tiêu (Câu lệnh của hacker sẽ khác một chút nhưng mình sẽ không đề cập tại đây) Chi tiết như sau:
Bước 3: Xác định kiểu tấn công Mỗi kiểu tấn công sẽ có một cách chuẩn bị riêng biệt ví dụ: tấn công DDoS sẽ cần xác định số kết nối tối đa (Sử dụng script có tên “mysql-variables.nse”) qua đó có thể thiết lập một lượng botnets (các thiết bị mạng đã được kiểm soát) đồng loạt tấn công vào máy chủ mục tiêu làm cho máy chủ liên tục bị quá tải, sau đó đẩy người dùng thực tế ra ngoài Tấn công vào DB thì phải xác định hệ điều hành, làm suy yếu hệ thống,…
Bước 4: Thực hiện quá trình kiểm soát mục tiêu, lấy cắp thông tin, để lại đường tắt để quay lại (backdoor), đào BitCoin,… Đầu ra của giai đoạn này là thông tin về địa chỉ IP, các cổng đang mở và dịch vụ trên đó, hệ điều hành, thông tin về phiên bản,…
2.3.1.2 Cách phòng tránh Để phòng tránh các cuộc tấn công đến từ hacker ngay từ bước ban đầu thì có những biện pháp sau:
Luôn cập nhật các hệ thống mới hoặc gần mới, nếu có thông tin về lỗ hổng hoặc dịch vụ ở phiên bản cũ thì phải update ngay lập tức.
Sử dụng hệ thống phần cứng, phần mềm tường lửa, hệ thống phát hiện xâm nhập,….
Quản lý dữ liệu, quyền truy cập, đầu ra và đầu vào của dữ liệu một cách hợp lý rõ ràng, chỉ trả về những thông tin mà người dùng cần,… Đặt mật khẩu mạnh để bảo vệ hệ thống
Mã hóa dữ liệu gửi đi và gửi về để ngăn chặn hacker tấn công vào các luồng dữ liệu đó.
2.3.2 Giai đoạn 2 thực hiện tấn công Để có cái nhìn trực quan hơn về mức độ nguy hiểm của các cuộc tấn công kia cũng như kết quả hiển thị về khi xuất hiện lỗ hổng, mình sẽ cố tình cài những phần mềm, dịch vụ đã có lỗ hổng bảo mật sau đó: …
2.3.2.1 Lấy dữ liệu đầu vào
Quét cổng: o Cổng 135 giao thức TCP : là một dịch vụ của window có tên MicroSoft Procedure Call Mình sẽ không nói sâu về các dịch vụ kể trên Nhưng dịch vụ này rất dễ trở thành nạn nhân của DoS, nếu không biết cách quản lý đúng. o Cổng 139 TCP sử dụng dịch vụ NetBios Section Service để chia sẻ tài nguyên thông qua mạng LAN, hiện nay đã ít dùng, hiện nay thường dùng dịch vụ Microsoft Director Service tại cổng 445. o Cổng 1433 TCP sử dụng dịch vụ Microsoft SQL server: Mục tiêu cần tìm. o Cổng 5357 TCP thường được sử dụng để cung cấp các dịch vụ web cho các thiết bị mạng như máy in hoặc máy quét Cổng này cũng dễ trở thành nạn nhân của DoS. o Cổng 8090 sử dụng dịch vụ OPSmessaging có thể dùng để truyền tin tức thì, truyền tệp, truyền âm thanh Cổng này thường không phổ biến. Các hệ thống tường lửa của bạn luôn có thể chặn các đợt check port như vậy, nếu có những cổng nào dùng nội bộ thì bạn nên sử dụng tường lửa đề chặn chúng lại Tránh trường hợp chúng bị tấn công DoS. Quét hệ điều hành: o Có lẽ do mình sử dụng hệ điều hành window11 nên có thông tin trả về nhưng không xác định được chính xác là hệ điều hành nào 😊 o Một chú ý nho nhỏ dành cho các bạn sử dụng Linux để quét như mình là để quét hệ điều hành của mục tiêu thì cần sử dụng kèm cụm từ
“sudo” ở đằng trước, việc này cũng tương tự như thao tác chạy với quyền quản trị viên trong hệ điều hành windows.
Các bạn có thể sử dụng các hệ điều hành mới như vậy để có thể cản bước được các hacker, làm khó chúng 1 chút trong quá trình khai thác hệ thống Hoặc có thể sử dụng máy ảo làm server gây ra sự nhiễu loạn của trình quét.
Xác định phiên bản của MS-SQL-S: “ms-sql-info.nse”
Page | 35 o Ta có thể thấy thông tin về phiên bản là 16.00.1000.00 Đây là phiên bản của MS-SQL-2022 nhé 😊 o Những lỗ hổng của phiên bản này:
Có thể tấn công được bằng các lỗi bên trên bản vá đó Nhưng mình sẽ không hướng dẫn các bạn tấn công vào hệ thống đâu, đề phòng các bạn tấn công lung tung ☹ Để phòng bị thì bạn có thể tắt hoặc ẩn thông tin của phiên bản trong DBMS hoặc đơn giản là cập nhật phiên bản một cách định kỳ, sử dụng tường lửa và ALC cũng có tác dụng rất tốt, cao cấp hơn thì có thể sử dụng SSL và TLS để mã hóa thông tin nhạy cảm đồng thời chặn SQL injection. Để bù lại cho mọi người vì làm việc dở dang, mình sẽ thử một số script liên quan tới ms-sql-server.
Kiểm tra cấu hình quan trọng trong MSS: “ms-sql-config.nse” o Kết quả của script này thông báo cần phải có thông tin đăng nhập thì mới xem thông tin của cấu hình được.
Do đó nếu các hacker muốn thực hiện bước tiếp theo thì phải brute force (tấn công dò mật khẩu) hoặc thực hiện tìm tài khoản không có password.
Các bạn có thể khắc chế cứng bước dưới bằng cách đặt mật khẩu thật mạnh làm cho hacker bắt buộc phải mò lần lượt và bỏ cuộc Và hơn hết các bạn phải kiểm soát users một cách cực kỳ chặt chẽ, ai cũng phải có password mới cho đăng nhập.
Script kiểm tra tài khoản không có mật khẩu: “ms-sql-empty- password.nse” o Hệ thống không trả về gì hết tức là hệ thống không có tài khoản nào không có mật khẩu. o Kịch bản này sẽ thử đăng nhập vào máy chủ MS SQL Server với tài khoản mặc định hoặc từ danh sách tài khoản với mật khẩu trống. o Mục đích của script này là để truy cập được vào DB.
Trong kịch bản này, bước đầu tiên các hacker phải có được danh sách các tài khoản của hệ thống sau đó thử login vào từng tài khoản Danh
Page | 37 sách này có được từ rất nhiều quá trình khác nhau, chúng được tổng hợp từ nhiều nguồn Có thể là chúng suy luận ra quy luật từ việc hỏi tài khoản của các nhân viên, quản lý của công ty.