Trình bày cụ thể các bước thực hiện Tool quét, tìm, phát hiện các loại lỗ hổng bảo mật:· Password Crack ToolsBạn sử dụng WFuzz như thế nào?Bạn có thể tìm thấy WFuzz trong phần Phân tích
Trang 1Trình bày cụ thể các bước thực hiện Tool quét, tìm, phát hiện các loại lỗ hổng bảo mật:
· Password Crack Tools
Bạn sử dụng WFuzz như thế nào?
Bạn có thể tìm thấy WFuzz trong phần Phân tích ứng dụng web của menu Kali Linux.
Trang 2Để sử dụng WFuzz, bạn cần cung cấp các đối số sau: 1 Tải trọng để kiểm tra ứng dụng mục tiêu 2 Tham số để đưa trọng tải vào
3 URL ứng dụng đích
Ngoài ra, chúng tôi thường cần cung cấp một cookie để wfuzz để nó tiếp cận đúng thành phần dễ bị tấn công Điều này được thực hiện bằng cách thêm đối số -b <cookie> Điều này là bắt buộc nếu bạn cần xác thực để truy cập vào phần của ứng dụng mà bạn muốn tấn công.
Để hiểu cách sử dụng wfuzz, giả sử rằng chúng ta có trang đăng nhập sử dụng SQL để truy vấn nếu người dùng cung cấp tên người dùng hoặc mật khẩu hợp lệ Khi chúng tôi gửi biểu mẫu đăng nhập, biểu mẫu sẽ đăng tên người dùng và mật khẩu làm thông số Nếu tên người dùng và mật khẩu hợp lệ, người dùng sẽ được đưa đến trang chào mừng Trong tất cả các trường hợp khác, họ sẽ gặp lỗi thông báo tên người dùng hoặc mật khẩu không hợp lệ.
Trang 3Với các biểu mẫu đăng nhập như thế này, chúng tôi thường muốn kiểm tra khả năng bị chèn SQL Đây là một nhiệm vụ mà wfuzz sẽ là hoàn hảo cho Để bắt đầu, chúng ta cần xác định cách dữ liệu được gửi đến chương trình phụ trợ khi nó được người dùng gửi Để làm điều này, chúng ta có thể sử dụng một công cụ như Burp Suite để chặn gói tin được gửi khi nhấn nút gửi Làm điều này sẽ cho chúng ta thấy dữ liệu bài đăng được định dạng như thế nào.
Từ điểm chặn này, chúng ta có thể thấy rằng dữ liệu được chuyển đến máy chủ ở định dạng “tên người dùng = đầu vào & mật khẩu = đầu vào” Chúng tôi có thể yêu cầu wfuzz gửi dữ liệu ở định dạng này và nó sẽ có thể gửi yêu cầu đăng bài đến trang đăng nhập thành công Để làm điều này, chúng ta có thể sử dụng lệnh: Tệp wfuzz -c -z, / usr / share / wordlists / wfuzz / Injutions / SQL.txt -d “username = admin & password = FUZZ” -u <TARGET_URL>
Để chia nhỏ lệnh này, chúng ta có thể xem mỗi đối số cung cấp những gì cho wfuzz Để bắt đầu, cờ làm cho đầu ra của màu đầu cuối, điều này chỉ làm cho kết-cquả dễ đọc hơn Cờ chỉ định tải trọng sẽ sử dụng để làm mờ trang web Đối số -zđược cung cấp là một tệp, được đặt tại
Trang 4mỗi chương trình trong / usr / share / wordlists Bên trong thư mục wfuzz, bạn sẽ tìm thấy tất cả các danh sách từ phổ biến mà wfuzz được thiết lập để sử dụng Trong trường hợp này, tôi đã sử dụng danh sách từ khóa SQL injection để xem xét các lỗi SQL phổ biến Bạn có thể dễ dàng thêm vào các danh sách này hoặc tạo danh sách của riêng mình nếu bạn có các trường hợp thử nghiệm cụ thể mà bạn muốn áp dụng.
Sau đó, chúng tôi sử dụng cờ -d để chỉ định dữ liệu nào sẽ đăng lên máy chủ Như chúng ta đã thảo luận, định dạng là “tên người dùng = INPUT & password = INPUT” Trong trường hợp này, tôi đặt tên người dùng thành quản trị và đặt mật khẩu thành FUZZ Wfuzz được thiết lập để thay thế từ khóa FUZZ bằng các từ trong tệp tải trọng được cung cấp, vì vậy trong ví dụ này, chúng tôi đang đưa các từ khóa SQL injection vào tham số mật khẩu Cuối cùng, chúng tôi cung cấp URL mục tiêu và chạy ứng dụng Khi điều này được thực hiện, chúng tôi sẽ nhận được một đầu ra, tương tự như những gì được hiển thị bên dưới.
Trang 5Điều này hiển thị cho bạn mã phản hồi của từng truy vấn đã được nhập vào, từ đó cho bạn biết liệu truy vấn có thành công hay không Phản hồi 200 có nghĩa là truy vấn đã hoàn thành ok, điều này cho thấy rằng không có lỗi hoặc chuyển hướng nào xảy ra Đầu ra này trong trường hợp này sẽ là một lần thử không thành công Các nỗ lực hiển thị mã phản hồi 302 có nghĩa là chuyển hướng đã xảy ra Với biểu mẫu đăng nhập của chúng tôi, chuyển hướng có nghĩa là chúng tôi đã xác thực thành công, do đó, điều này cho thấy rằng SQL injection đã thành công cho các đầu vào
Trang 6Điều này minh họa một ví dụ đơn giản về cách wfuzz có thể được sử dụng để làm mờ các ứng dụng web Thông qua việc sử dụng các danh sách từ khác nhau và các yêu cầu đăng bài, bạn có thể dễ dàng bắt và sửa các lỗ hổng trước khi chúng bị người dùng độc hại tìm thấy.
· Debug Tools
Cài đặt Flutter
Flutter cần một số điều kiện tiên quyết để cài đặt và có một yêu cầu hệ thống tiêu chuẩn Vui lòng xem qua hướng dẫn từng bước này để cài đặt Flutter trên hệ điều hành windows của bạn.
Xin lưu ý rằng bạn phải cài đặt Android Studio và định cấu hình Android SDK, Trình quản lý AVD, như được giải thích trong liên kết được đề cập ở trên Sau khi cài đặt thành công Flutter, bạn có thể kiểm tra bằng cách gõ lệnh sau vào dấu nhắc lệnh.
flutter doctor
Nếu mọi việc suôn sẻ, lệnh sẽ cung cấp đầu ra như hình dưới đây flutter doctor
Doctor summary (to see all details, run flutter doctor -v): [√] Flutter (Channel stable, 2.0.6, on Microsoft Windows [Version
[√] VS Code, -bit edition (version 641.56.2) [√] Connected device ( available)1 • No issues found!
Thiết lập mã Visual Studio cho Flutter
Trang 7Tôi có thể thiên vị nhưng Visual Studio Code là trình soạn thảo mã và IDE yêu thích của tôi Visual Studio Code (VS Code) đi kèm với hỗ trợ gỡ lỗi và thực thi của ứng dụng Flutter và bạn có thể cài đặt từ đây Sau khi cài đặt, bạn cần cài đặt phần mở rộng Flutter cho VS Code.
Bây giờ là lúc tạo ứng dụng Flutter.
1.Chuyển đến tùy chọn menu View> Command Palette
2.Gõ “Flutter” và chọn Flutter: New Application Project
3.Tạo hoặc chọn thư mục mẹ cho thư mục dự án mới 4.Nhập tên dự án, chẳng hạn như tryIt, và nhấn Enter
5.Bạn sẽ thấy rằng một dự án được tạo trong vài giây Vui lòng mở tệp main.dartnếu nó không tự động mở.
Nếu bạn đang sử dụng bất kỳ trình chỉnh sửa nào khác, chẳng hạn như IntelliJ, vui lòng nhấp vào liên kết này để thiết lập chúng.
Chạy ứng dụng Flutter
Chúng tôi sẽ sử dụng Trình giả lập Android Studio để chạy ứng dụng và kiểm tra các thay đổi Vui lòng xem ở cuối bảng điều khiển VS Code Bạn sẽ thấy phiên bản Flutter và môi trường để chạy ứng dụng (nó là Chrome theo mặc định trong ảnh chụp màn hình bên dưới).
Nhấp vào Chrome(web-javascript).Nó sẽ mở ra một hộp lựa chọn để khởi động trình giả lập Android Chọn tùy chọn trình giả lập di động để khởi chạy nó.
Bạn sẽ sớm thấy trình giả lập di động xuất hiện Vì tôi đang sử dụng cấu hình phần
Trang 9Bây giờ hãy nhấp vào Runtùy chọn menu và Start Debugging.
Xin lưu ý, bạn phải main.dartmở tệp trong trình chỉnh sửa Mã VS trong khi bắt đầu gỡ lỗi từ tùy chọn menu 'Chạy' Ngoài ra, quá trình tải lần đầu tiên của ứng dụng trong trình giả lập có thể mất một lúc.
Sau khi khởi chạy, ứng dụng có thể trông như thế này.
Trang 11Hãy thực hiện một số thay đổi đối với ứng dụng
Chúng tôi sẽ thay đổi màu chính và một số văn bản để làm cho ứng dụng phù hợp với bài viết này Thực hiện các thay đổi sau trong build()chức năng của MyApplớp trong main.darttệp:
Thay thế titlegiá trị Flutter Demothành Flutter & Bugfender Demo Thay đổi primarySwatchgiá trị từ màu xanh lam sang màu hồng (hoặc bất kỳ màu gì bạn thích).
Trong tiêu đề 'giá trị thuộc tính' của hàm MyHomePagetạo, hãy thay đổi văn bản từ Flutter Demo Home Pagethành Flutter & Bugfender Demo.
Bây giờ, hãy chuyển sang build()chức năng của _MyHomePageStatelớp Trước tiên, hãy tìm và thay thế văn bản You have pushed the button this many times:bằng We will log thecounterto Bugfender once you push it.
Khi bạn lưu các thay đổi của mình, bạn sẽ thấy ứng dụng đã thay đổi, như trong hình bên dưới.
Trang 13Sử dụng Bugfender với Flutter
Tuyệt quá! Chúng tôi có một ứng dụng Flutter cơ bản chạy trên trình giả lập di động Bây giờ là lúc để định cấu hình SDK Bugfender với ứng dụng Flutter Để bắt đầu mọi thứ, hãy tạo một tài khoản với Bugfender Sau khi đăng nhập, hãy tạo ứng dụng Bugfender cho các ứng dụng web bằng cách sử dụng tùy chọn SDK Web Bạn có thể làm theo hướng dẫn từng bước này để tạo ứng dụng Bugfender và bạn sẽ tìm thấy khóa API sẵn sàng cho mình Hãy giữ nó an toàn.
Khi bạn đã tạo ứng dụng của mình, bảng điều khiển Bugfender sẽ cho phép bạn theo dõi nhật ký, sự cố, phản hồi và sự cố Đây là cách trang tổng quan của tôi trông:
Bảng điều khiển Bugfender với một ứng dụng
Cài đặt Plugin Bugfender cho Flutter
Mở dấu nhắc lệnh ở thư mục gốc của thư mục dự án và chạy lệnh sau flutter pub add flutter_bugfender
Thao tác này sẽ thêm một dòng như thế này vào dự án của bạn:pubspec.yaml
flutter_bugfender: ^2.0.0
Trang 14Bây giờ trình soạn thảo của bạn có thể chạy một lệnh ngầm flutter pub get Bạn cũng có thể chạy điều này một cách rõ ràng từ dấu nhắc lệnh.
Sử dụng Plugin Bugfender cho Flutter
Để sử dụng plugin và bắt đầu ghi các hoạt động vào Bugfender, hãy nhập plugin vào main.darttệp bằng dòng sau.
import 'package:flutter_bugfender/flutter_bugfender.dart';
Bây giờ chúng ta hãy thử đăng nhập một thứ gì đó từ ứng dụng vào
Bugfender Chúng tôi sẽ thêm nhật ký giống như Initialized Bugfenderkhi ứng dụng xuất hiện lần đầu tiên Để làm điều đó, bạn có thể ghi đè initState()phương thức của _MyHomePageStatelớp như sau:
Bây giờ chúng ta có thể tạo initPlatformState()hàm Ở đây, chúng tôi đang khởi tạoBugfender bằng cách sử dụng khóa API mà chúng tôi đã tạo ban đầu Sau đó, chúng tôi ghi lại một tin nhắn:
Trang 15}
Thao tác này sẽ làm mới ứng dụng trong trình giả lập Tiếp theo, vui lòng truy cập bảng điều khiển Bugfender Bạn sẽ thấy một mục nhập cho phần Android SDKbên dưới Device.
Nhấn vào nó Bạn sẽ tìm thấy nhật ký chúng tôi đã gửi từ ứng dụng Cùng với nhật ký này, Bugfender cũng thu thập một số thông tin meta như gói và ID android mà bạn có thể thấy trong nhật ký.
Ghi nhật ký tương tác
Đã đến lúc thực hiện việc ghi nhật ký vào Bugfender một cách tương tác Ứng dụng có một nút và khi chúng ta nhấp vào nó, nó sẽ tăng lên counter1 Còn chúng ta ghi lại giá trị bộ đếm này thì sao? Để làm điều đó, vui lòng chuyển
đến _incrementCounter()phương thức của _MyHomePageStatelớp và thêm một bản ghi vào _countergiá trị.
Trang 16Gửi phản hồi từ ứng dụng tới Bugfender
Tiếp theo, chúng tôi sẽ sử dụng API của Bugfender sendFeedbackđể gửi phản hồi từ ứng dụng Đầu tiên, hãy thêm một nút phản hồi.
Trang 17Vì vậy, bây giờ khi chúng tôi nhấn nút phản hồi, phản hồi của người dùng sẽ được gửi đến Bugfender Đây là cách ứng dụng trông như thế nào sau khi thay đổi.
Trang 19Quay lại bảng điều khiển Bảng điều khiển Bugfender và duyệt
đến FEEDBACKtab Bạn sẽ tìm thấy một phần có tên là 'Phản hồi của người dùng' Đây là cùng một phản hồi mà chúng tôi đã gửi từ ứng dụng.
Bạn có thể đi sâu vào phản hồi bằng cách nhấp vào nó và bạn sẽ thấy chi tiết Tại đây, bạn có thể thay đổi trạng thái phản hồi và gửi nó dưới dạng sự cố tới kho lưu trữ GitHub.
Gửi sự cố từ ứng dụng tới Bugfender
Được rồi, bây giờ chúng ta có thể tạo một vấn đề và gửi nó đến dịch vụ Bugfender Để làm điều đó, hãy thêm một nút nữa với một trình xử lý báo chí.
Tiếp theo, chúng ta sẽ xác định _repotIssuehàm Ở đây, trước tiên chúng tôi gửi nhật ký lỗi và sau đó gửi vấn đề với tiêu đề và thông tin chi tiết.
void _reportIssue() {
FlutterBugfender.error('Reporting issue');
Trang 20FlutterBugfender.sendIssue("Issue Found" "We have found an issue in the , counter");
}
Bây giờ, nếu chúng ta nhấn vào nút có biểu tượng báo cáo lỗi, ứng dụng sẽ gửi nhật ký lỗi và sự cố tới Bugfender.
Trang 22Đi tới bảng điều khiển Bugfender và duyệt đến ISSUEStab Bạn sẽ thấy vấn đề được ghi ở đó Vui lòng bấm vào đó để xem thông tin chi tiết.
Chế độ xem chi tiết có thể giống như hình ảnh bên dưới Như trường hợp phản hồi, bạn cũng có thể thay đổi trạng thái và tạo sự cố trên GitHub.
Nếu bạn nhận thấy nhật ký, bạn sẽ tìm thấy nhật ký lỗi được gửi từ ứng dụng.
Các API quan trọng hơn từ Bugfender để sử dụng
Bugfendercó nhiều phương thức API khác mà bạn có thể sử dụng để gửi nhật ký Đây là danh sách các phương pháp mà chúng tôi chưa sử dụng trong ứng dụng của mình nhưng bạn có thể thử.
await FlutterBugfender.fatal("Fatal sent!"); await FlutterBugfender.error("Error sent!"); await FlutterBugfender.warn("Warning sent!"); await FlutterBugfender.info("Info sent!"); await FlutterBugfender.debug("Debug sent!"); await FlutterBugfender.trace("Trace sent!");
await FlutterBugfender.setDeviceString("user.email" "example@example.com", );
Trang 23print(await FlutterBugfender.sendIssueMarkdown("Test Issue with markdown",
"Issue _value_ **goes** here!"));
await FlutterBugfender.setForceEnabled(true); await FlutterBugfender.setForceEnabled(false); await FlutterBugfender.forceSendOnce();
print(await FlutterBugfender.getDeviceUri());print(await FlutterBugfender.getSessionUri());
Ok, vậy thôi! Chúng tôi có một ứng dụng Flutter được tích hợp với Bugfender và chúng tôi biết cách gửi các loại nhật ký khác nhau đến nó.
· Packet Sniff Tools
Chụp hình Trang Web đăng nhập trên máy ảo Windows 10 Pro, có hiển thị thông tin tên đăng nhập và mật khẩu dưới dạng đã bị mã hóa
Trang 252.Chuẩn bị bắt đầu quét lỗ hổng Rapid7 từ IoT Security.
1.Đăng nhập với tư cách chủ sở hữu hoặc quản trị viên đã bật tính năng quét lỗ hổng bảo mật.
2.Vì IoT Security chỉ hỗ trợ một lần quét lỗ hổng bảo mật của một thiết bị nên hãy đảm bảo rằng không có quá trình quét nào khác của thiết bị này hiện đang được tiến hành.
Nhấp chuột
Báo cáo
Báo cáo quét lỗ hổng bảo mật
và kiểm tra cột Trạng thái Nếu bạn thấy Xử lý
đối với thiết bị bạn muốn quét, hãy đợi cho đến khi quá trình quét hiện tại kết thúc trước khi bắt đầu quá trình quét mới.
Khi bạn thấy thiết bị chưa được quét, bạn có thể tiếp tục quét mới.
Chỉ bắt đầu quét thiết bị hiện không hoạt động (và sẽ không hoạt động cho đến khi quá trình quét hoàn tất).
Thiết bị
, rồi bấm vào mục nhập trong cột Tên thiết bị cho thiết bị bạn muốn quét.
4.Ở đầu trang Chi tiết thiết bị, nhấp vào menu Hành động, sau đó nhấp vào
Trang 265.Đọc thận trọng về cách quét các thiết bị đang hoạt động và nếu thiết bị hiện không hoạt động,
Tiếp tục
3.Đặt các thông số cho quá trình quét mà bạn muốn Rapid7 thực hiện.
Trang 27- Đây là một nhóm các công cụ quét tại chỗ, qua đó công việc quét được phân phối để cung cấp khả năng cân bằng tải và khả năng chịu lỗi Họ quét các thiết bị trên mạng nội bộ của bạn.
- Đây là một công cụ quét tại chỗ duy nhất để quét các thiết bị trong mạng nội bộ của bạn.
3.Công cụ quét được lưu trữ trên máy chủ Rapid7
- Đây là một công cụ quét mà Rapid7 lưu trữ trên đám mây Nó cho phép bạn quét các thiết bị công khai trên mạng của mình (ví dụ: máy chủ web và email) và xem chúng như một kẻ tấn công bên ngoài mà không có quyền truy cập.
Các mục trong danh sách này được gọi từ API Rapid7, vì vậy danh sách công cụ quét của bạn có thể khác nhau tùy thuộc vào cấu hình Rapid7 của bạn.
Hồ sơ Rapid7
: Chọn một trong các cấu hình quét lỗ hổng bảo mật, chẳng hạn như sau:
- Sử dụng hồ sơ này để quét toàn bộ các lỗ hổng dựa trên mạng, các bản vá và kiểm tra lớp ứng dụng Nó chỉ quét các cổng mặc định Nó sử dụng Web Spider để thăm dò các trang web để tìm hiểu cấu trúc thư mục, thư mục mặc định, tệp, liên kết bị hỏng và liên kết không thể truy cập được Sau đó, nó phân tích dữ liệu này để tìm các lỗi bảo mật và các vấn đề khác do lỗi phần mềm hoặc lỗi cấu hình.
2.Kiểm tra đầy đủ mà không có Web Spider
Trang 28- Hồ sơ này giống như Full Audit ngoại trừ nó không bao gồm Web Spider để quét các trang web.
Để có danh sách đầy đủ các cấu hình quét (hoặc các mẫu như Rapid7 đề cập đến chúng), hãy xem phụ lục các mẫu quét Rapid7
Trang web Rapid7
: Chọn vị trí đặt thiết bị được quét.
4.Nhấp chuột
Tùy thuộc vào loại quét bạn chọn, có thể mất từ vài phút đến nửa giờ, và đôi khi thậm chí lâu hơn Tuy nhiên, quá trình quét thường mất 20-30 phút Nếu có sự cố, chẳng hạn như máy quét không thể tiếp cận thiết bị mục tiêu, nỗ lực cuối cùng sẽ hết hiệu lực sau hai giờ.
Sau khi Rapid7 hoàn tất quá trình quét, nó sẽ báo cáo lại cho IoT Security Nếu có bất kỳ Lỗ hổng và Phơi nhiễm Phổ biến (CVE) nào được phát hiện, IoT Security ngay lập tức cập nhật điểm số rủi ro và CVE trên trang Chi tiết thiết bị Cập nhật CVE trên
Trang 29Rủi roCác lỗ hổng
trang không được tạo ngay lập tức và có thể mất đến 24 giờ để xuất hiện Rapid7 cung cấp Bảo mật IoT với số ID CVE của lỗ hổng bảo mật, mức độ nghiêm trọng (CVSS) và số cổng dịch vụ IoT Security truy xuất mô tả cho CVE từ trang web của Viện Tiêu chuẩn và Công nghệ Quốc gia (NIST) Ví dụ: mô tả cho CVE-2001-0142 đến từ trang NIST này
Trang 305.Sau khi quá trình quét hoàn tất, hãy xem kết quả.Bạn có hai tùy chọn để xem báo cáo:
Trang 31Lấy dữ liệu ra khỏi tín hiệu thô
Trang 32Giữ cái nhìn tổng quan ngay cả trên các giao thức phức tạp
Ghi lại và gửi tín hiệu