Tiếp tục với Series Giới thiệu về kiểm thử xâm nhập
, chúng ta sẽ cùng nhau tìm hiểu các bước để thực hiện quá trình kiểm thử xâm nhập.
Nếu ai chưa đọc các phần trước thì các bạn có thể xem lại tại phần 1, phần 2.
Trong bài viết này các bạn sẽ tìm hiểu về:
- Tầm quan trọng của việc tiến hành trinh sát hay thăm dò thông tin
- Xác định các kỹ thuật thu thập thông tin nguồn mở
- Sử dụng các công cụ để tự động hóa các phương pháp thu thập thông tin
- Mô tả phương pháp và kỹ thuật tiến hành phân tích dữ liệu
I. Reconnaissance
Bước đầu tiên trong quá trình kiểm thử là thăm dò thông tin (Reconnaissance). Trong bước này, các chuyên viên an ninh mạng sẽ tìm kiếm thông tin nhiều nhất có thể về mục tiêu. Open-source intellingece (OSINT) là một phần của quá trình reconnaissance, đây là phương pháp sử dụng các công cụ nguồn mở để sưu tập các thông tin từ các nguồn công khai có sẵn và sau đó phân tích chúng.
Trước khi bạn bắt đầu quét hoặc thực hiện khai thác vào mạng của khách hàng, bạn cần lập chiến lược cho kế hoạch tấn công của mình. Với tư cách là người thử nghiệm thâm nhập, việc hiểu mô hình kinh doanh của khách hàng, sản phẩm, dịch vụ, công nghệ cũng như các phương tiện truyền thông xã hội mà họ sử dụng có thể giúp bạn lên kế hoạch lựa chọn cách tấn công hợp lý nhất.
- Việc nắm bắt được các thông tin về mục tiêu có thể giúp ích rất nhiều cho quá trình Phishing (làm giống thật hơn). Hay việc hiểu được các format về username, email có thể giúp việc Brute-force khả thi hơn rất nhiều
- Các kiến thức về cơ sở hạ tầng nội bộ có thể giúp chúng ta giảm thời gian trong quá trình kiểm thử (ví dụ việc bạn biết mục tiêu sử dụng Microsoft SQL server, bạn có thể giảm thời gian khai thác do chỉ cần tìm hiểu cổng TCP/1433 thay vì tìm các cổng của các database thông dụng khác)
Các mục tiêu dữ liệu mà chúng ta tìm kiếm có thể phân thành 3 loại:
- Ogranization: Các thông tin về tổ chức thường không chứa các chi tiết về kỹ thuật nhưng rất hữu ích cho việc phishing
- Mục tiêu của tổ chức
- Việc sát nhập và mua lại của tổ chức
- Các project và các sản phẩm
- Các tin tức gần đây
- Infrastructure: Thông tin về cơ sở hạ tầng cung cấp các thông tin về kỹ thuật
- Địa chỉ IP
- Hostname
- Phần mềm và phần cứng
- Nhân viên: Thường là các thông tin hữu ích ngay lập tức.
- Thông tin đăng nhập
- Địa chỉ email
- Quyền hạn của nhân viên
Một khía cạnh quan trọng khác của bước recon là bạn cần xây dựng một danh sách các máy mục tiêu tiềm năng có liên quan đến mục tiêu kiểm thử, các danh sách này cần đảm bảo nằm trong phạm vi trước khi có bất kỳ hành vi quét lỗ hổng nào được bắt đầu. Trong khi lên kế hoạch để kiểm thử, tôi khuyên bạn nên dành ít nhất 8-10 tiếng để tiến hành thăm dò thông tin. Nó có thể cung cấp rất nhiều thông tin cho các bước tiếp theo.
II. Phương pháp thu thập thông tin nguồn mở
Có khá nhiều phương pháp khám phá mã nguồn mở dành cho kiểm thử viên, trong phần này thảo luận về các phương pháp thu thập thông tin sau đây:
- Công cụ tìm kiếm
- Công cụ thu thập OSINT
- Phân tích siêu dữ liệu
- Cơ quan đăng ký Internet khu vực (RIR)
- Cơ sở dữ liệu WHOIS và tìm kiếm
- Truy vấn bản ghi DNS
III. Công cụ tìm kiếm Internet
Một trong những tính năng mạnh mẽ nhất của Google có thể giúp bạn thu hẹp tiêu chí tìm kiếm cho mục tiêu của mình là việc sử dụng các toán tử và chỉ thị tìm kiếm của Google. Bằng cách kết hợp các toán tử này, bạn có thể nhắm mục tiêu nội dung cụ thể từ các miền hoặc máy chủ web khác nhau.
Ví dụ, nếu bạn muốn tiến hành tìm kiếm trên Google cho .edu với các trang web bao gồm tệp PowerPoint, bạn có thể sử dụng cú pháp sau:
site:.edu filetype:ppt
Hãy xem xét các tiêu chí tìm kiếm sau của Google:
site:.edu inurl:robots.txt intext:Disallow
Thao tác này sẽ trả về danh sách các trang web .edu khớp với “robots.txt” trong URL và có từ “Disallow” trong văn bản của nội dung trang.
Các công cụ tìm kiếm chuyên dụng
Giống như Google hay Bing, các công cụ tìm kiếm chuyên dụng cung cấp phương tiện để thu thập thông tin nhạy cảm và lỗ hổng của tổ chức mục tiêu. Tuy nhiên, các công cụ này cung cấp mức độ chi tiết cao hơn với việc xác định tiêu chí tìm kiếm cho các lĩnh vực cụ thể. Các danh mục như địa chỉ IP, tên miền, địa chỉ e-mail, mật khẩu, cổng, dịch vụ và thậm chí cả thông tin hệ điều hành có thể đạt được thông qua các dữ liệu bị rò rỉ và máy quét mạng Internet.
a. Shodan
Shodan (https://www.shodan.io/) là một công cụ tìm kiếm được thiết kế bởi nhà phát triển web John Matherly (http://twitter.com/achillean). Shodan là một công cụ tìm kiếm khác nhiều so với các công cụ tìm kiếm nội dung như Google, Yahoo hoặc Bing. Shodan là một công cụ tìm kiếm để tìm các thiết bị trực tuyến trên internet như: máy tính, server, webcam, các thiết bị routers… Nó hoạt động bằng cách quét toàn bộ các các thiết bị trên internet có mở cổng public ra internet và thực hiện phân tích các dấu hiệu được phản hồi về từ các thiết bị. Sử dụng thông tin đó, Shodan có thể cho bạn biết những thứ như máy chủ web (và phiên bản) nào phổ biến nhất hoặc có bao nhiêu máy chủ FTP ẩn danh tồn tại ở một vị trí cụ thể, hay trả về danh sách các camera có thể truy cập trực tuyến qua internet. Nói chung, với shodan bạn có thể tìm kiếm bất cứ thiết bị nào trên internet miễn là chúng đang có kết nối internet và mở cổng public.
b. Censys
Censys được tạo ra vào năm 2015 tại Đại học Michigan bởi chính các nhà nghiên cứu bảo mật đã tạo ra ZMap. Dự án ZMap (https://zmap.io) cung cấp thông tin và công cụ hữu ích hỗ trợ quét và đo lường quy mô lớn trên toàn Internet. Giống như Shodan, Censys (https://censys.io) là một công cụ tìm kiếm chuyên dụng duy trì dữ liệu nghiên cứu Internet công khai và cung cấp giao diện người dùng dựa trên web để truy vấn các bộ dữ liệu như địa chỉ IPv4, trang web và chứng chỉ web. Bạn có thể khởi chạy giao diện tìm kiếm cho từng bộ dữ liệu này trực tiếp từ trang web của Censys bằng các liên kết sau:
- Máy chủ IPv4 https://censys.io/ipv4
- Trang web https://censys.io/domain
- Chứng chỉ https://censys.io/certificates
Dữ liệu Censys được cấu trúc thành các trường. Các trường này có thể được áp dụng làm bộ lọc để nhắm mục tiêu các khu vực quan tâm cụ thể.
IV. Công cụ thu thập OSINT
a. OSINT FRAMEWORK
Một nơi khá là phù hợp để bắt đầu là OSINT Framework (https://osintframework.com), một framework được tạo bởi Justin Nordine. Khung này cung cấp các liên kết đến các nhóm các tài nguyên cho rất nhiều nhiệm vụ từ thu thập địa chỉ email đến tìm kiếm phương tiện truyền thông xã hội hoặc deepweb. Mỗi đường dẫn là một liên kết mở rộng các kỹ thuật thu thập thông tin cho một chủ đề cụ thể, chẳng hạn như tên người dùng, địa chỉ e-mail, địa chỉ IP, hồ sơ kinh doanh, hồ sơ công khai, số điện thoại, v.v.
Ví dụ: giả sử rằng trong quá trình kiểm thử xâm nhập, bạn có thể tìm địa chỉ e-mail từ trang web của tổ chức mục tiêu. Nếu bạn muốn biết liệu có bất kỳ địa chỉ email nào trong các báo cáo vi phạm trước đây hay không, bạn có thể tận dụng OSINT Framework để xác định trang web nào bạn có thể truy vấn để tìm thông tin đó. Từ trang chính của OSINT Framework, chọn Email Address, sau đó chọn Breach Data, trang web sẽ liệt kê một loạt các trang web mà bạn có thể sử dụng để truy vấn dữ liệu vi phạm cho các địa chỉ email.
OSINT Framework không cung cấp giải pháp cuối cùng, nhưng nó chắc chắn sẽ giúp chỉ cho bạn đi đúng hướng cho những gì bạn đang tìm kiếm.
b. RECON-NG
Recon-ng (https://github.com/lanmaster53/recon-ng) là một công cụ trinh sát web đầy đủ tính năng, được viết bằng Python, kết hợp nhiều khả năng thu thập thông tin khác nhau. Recon-ng lưu trữ tất cả dữ liệu mà nó thu thập vào trong cơ sở dữ liệu chung. Recon-ng là công cụ mã nguồn mở và được tích hợp trong các bản cài đặt Kali Linux. Giống với công cụ thử nghiệm xâm nhập phổ biến Metasploit (https://www.metasploit.com/), Recon-ng sử dụng các mô-đun độc lập và các chức năng tích hợp để giúp tự động hóa các kỹ thuật thu thập nhất định. Khung Recon-ng hỗ trợ các mô-đun trong các danh mục sau:
- Discovery modules: Các mô-đun khám phá thông tin
- Exploitation modules: Hỗ trợ các mô-đun khai thác
- Import modules: Nhập danh sách mục tiêu bằng cách sử dụng các mô-đun được hỗ trợ
- Recon modules: Phân hệ trinh sát
-Reporting modules: Biên dịch báo cáo ở nhiều định dạng khác nhau
V. Phân tích siêu dữ liệu
Một kỹ thuật thu thập thông tin khác là thông qua phân tích siêu dữ liệu. Siêu dữ liệu (dữ liệu nằm trong dữ liệu) tóm tắt thông tin và các khía cạnh về nội dung của một mục nào đó.
Ví dụ: Tệp hình ảnh có thể chứa siêu dữ liệu mô tả hướng và kích thước của hình ảnh cũng như nơi hình ảnh được tạo. Tài liệu Microsoft Word có thể chứa siêu dữ liệu mô tả các thuộc tính của tệp, chẳng hạn như tên tác giả, thời điểm tài liệu được viết, v.v.
Với tư cách là một pentester, bạn sẽ tìm kiếm thông tin trong các tài liệu có thể giúp bạn xác định tên người dùng, địa chỉ e-mail, v.v. trong các thuộc tính ẩn của tệp. Các yếu tố thông tin này không nhất thiết phải được hiển thị cho người dùng và có thể ở dạng nhận xét trong mã nguồn hoặc thậm chí xác định tên máy chủ nơi tệp được tạo.
a. EXIFTOOL
ExifTool là một tập hợp các mô-đun Perl có thể tùy chỉnh bằng command-line được sử dụng để đọc và ghi thông tin meta trong nhiều loại tệp. Công cụ này hỗ trợ hơn 100 định dạng tệp khác nhau, bạn có thể truy cập trang GitHub của nhà phát triển để đọc thêm: https://github.com/exiftool/exiftool.
b. STRINGS
Strings là một chương trình command-line được sử dụng được sử dụng để trả lại các ký tự chuỗi vào tệp. Nó chủ yếu tập trung vào việc xác định nội dung và trích xuất văn bản từ các tệp nhị phân (tệp không phải văn bản).
Có thể có hai loại ký tự trong một tệp; in được và không in được. Các ký tự chữ và số, dấu chấm câu hoặc khoảng trắng được gọi là ký tự in được; ngoại trừ ký tự in được, tất cả các ký tự được gọi là ký tự không in được. Nói một cách đơn giản, chúng ta có thể nói rằng nó trích xuất các ký tự có thể in được từ các tệp để các lệnh khác có thể sử dụng các chuỗi không có ký tự không in được.
VI. Tạm kết
Trong bài viết này tôi đã giới thiệu chung về Reconnaissance và một số phương pháp thu thập thông tin nguồn mở. Trong phần tiếp theo tôi sẽ phân tích các phương pháp còn lại của quá trình Reconnaissance và giới thiệu bước tiếp theo trong quá trình kiểm thử xâm nhập.
Nguồn: viblo.asia