Tự Triển Khai Lab Pentest Active Directory với BadBlood (Máu Xấu) Để Múc Với BloodHound (Máu Chó)

BadBlood hay “Máu xấu” là gì

Hiểu một cách đơn giãn thì BadBlood sẽ giúp chúng ta xây dựng một hệ thống domain Microsoft Active Directory với cấu trúc OU và hàng nghìn đối tượng lỗi từa lưa để mà tập hack hay pentest hay thử nghiệm các hàng khủng như “Máu Chó” BloodHound .

badblood thư mục hoạt động săn lùng mối đe dọa

Khi triển khai Bad Blood thành công, kết quả ta sẽ có một hệ thống domain tương tự như miền được tìm thấy trong thế giới thực để có thể :

  • Bắt đầu cuộc hành trình săn lùng mối đe dọa danh tính đặc quyền với BloodHound.
  • Xây dựng miền thử nghiệm
  • … hay học các khóa học Onlien Live CEH v12, CPENT LPT tại CEHVIETNAM, Security+, Pentest+ tại CompTIA VN hay các lớp học giá rẻ tiết kiệm phí tại Security365 như hacking với Kali Linux nâng cao, Pentest với Metasploit nâng cao tại Security365 (lưu ý cần học các lớp că bản trước)

#BadBlood là gì ?

BadBloodlà một công cụ giúp bảo mật cho Active Directory theo hướng Learn Hack to Secure hay Learn Secure by Hack của Learn Security Online. Chạy BadBlood trên một domain để các nhà phân tích và kỹ sư bảo mật có thể thực hành sử dụng các công cụ nhằm hiểu rõ và đưa ra quy định về bảo mật Active Directory.

Mỗi lần công cụ này chạy sẽ cho ra những kết quả khác nhau. Miền, người dùng, nhóm, máy tính và quyền là khác nhau.

Bắt đầu 

  1. Tải xuống BadBlood và giải nén
  2. Chạy BadBlood./badblood/invoke-badblood.ps1
  3. Hacking hay Pentesting

Tập lệnh Invoke-BadBlood.ps1 PowerShell nằm ở thư mục gốc của kho lưu trữ BadBlood. Một số lời nhắc xuất hiện được thiết kế để đảm bảo tính năng này chỉ được chạy trong môi trường thử nghiệm hoặc giáo dục. 

Lưu ý ! Chỉ chạy BadBlood trong quá trình thử nghiệm bảo mật.

Làm theo lời nhắc để triển khai BadBlood.

BadBlood được thiết kế để chạy với người dùng là Domain Admin & Schema Admin.

Security365 http://www.security365.vn

Những gì được triển khai? 

1. LAPS

Badblood bắt đầu bằng việc mở rộng lược đồ của domain hiện tại bằng cách cài đặt LAPSAD_Laps_install\InstallLAPSSchema.ps1

LAPS là công cụ miễn phí của Microsoft được thiết kế để  remediated lateral movement  trên một miền bằng cách tạo ngẫu nhiên mật khẩu cho người dùng quản trị trên các đối tượng máy tính.

2. Tạo Cơ cấu đơn vị tổ chức

Sau khi mở rộng lược đồ, BadBlood tạo cấu trúc OU mới trên domain của bạn. Chi tiết đầy đủ về bản mở rộng này có thể được xem trong tệp

AD_OU_CreateStructure\CreateOUStructure.ps1 Bằng cách cá nhân hóa tệp cấu hình “3lettercodes.csv” BadBlood có thể tùy chỉnh các OU được thêm vào các OU mà tôi gọi là “OU cấp cao nhất”.

Cấu trúc phụ chi tiết của OU có thể được mở rộng bằng cách sửa đổi các biến trong createoustructure.ps1. Bản phát hành đầu tiên của công cụ này tạo ra cấu trúc OU tương tự như cấu trúc được mô tả bên dưới.

BadBlood sử dụng cấu trúc OU mới này để sắp xếp ngẫu nhiên các đối tượng và quyền. 

3. Tạo các Người dùng

Sau khi cấu trúc hoàn tất, BadBlood bắt đầu tạo số lượng người dùng ngẫu nhiên (500-10000) vào miền. Quá trình này được thiết kế trong

AD_Users_Create\CreateUsers.ps1 Trong quá trình tạo mỗi người dùng, BadBlood chọn ngẫu nhiên một OU hoặc vùng chứa và đặt người đó vào một đường dẫn ngẫu nhiên. Công cụ này tạo ra người dùng nam và nữ rất ngẫu nhiên dựa trên các tệp văn bản nằm trong thư mục \Names trong thư mục AD_Users_Create.

Ngoài ra, mỗi người dùng được tạo bằng một mật khẩu duy nhất. 

Công cụ điền thêm thông tin về tài khoản người dùng và chuyển sang bước tiếp theo: Nhóm.

Lưu ý: Nếu bạn muốn tạo thêm người dùng bằng công cụ này, hãy chỉnh sửa biến $NumOfUsers trong tập lệnh Invoke-BadBlood.OU theo cấp Bản phát hành đầu tiên của công cụ này không có tham số nên bạn sẽ phải chỉnh sửa tệp ps1.

4. Tạo các Nhóm

Sau khi người dùng hoàn tất, công cụ sẽ chuyển sang tạo các nhóm trong miền. Việc này được thực hiện bởi

AD_Groups_Create\CreateGroups.ps1 Các nhóm được đặt tên ngẫu nhiên trong tập lệnh này lấy thông tin từ tệp hotmail.txt nằm trong cùng thư mục với tập lệnh. Các nhóm, giống như người dùng, được đặt ngẫu nhiên trong các OU và Vùng chứa ngẫu nhiên trong miền.

Lưu ý: Nếu bạn muốn tạo thêm nhóm bằng công cụ này, hãy chỉnh sửa biến $NumOfGroups trong tập lệnh Invoke-BadBlood.

5. Tạo các đối tượng Máy tính trong domain

Công cụ bây giờ chuyển sang tạo máy tính bằng cách gọi

AD_Computers_Create\CreateComputers.ps1 Những máy tính này cũng có tên được tạo ngẫu nhiên. Giống như các đối tượng khác được tạo trước đó, máy tính được đặt trong các OU ngẫu nhiên. Nếu bạn muốn tạo thêm máy tính bằng công cụ này, hãy chỉnh sửa biến $NumOfComps trong tập lệnh Invoke-BadBlood.

6. Tạo các ACL

Điểm chính của công cụ này là bước tiếp theo: Trình tạo quyền. Tôi đã thử nghiệm rất nhiều với DACL Active Directory và tôi đã tạo một trình tạo để tạo các quyền ngẫu nhiên mỗi khi công cụ này chạy. Dù thế nào đi nữa, công cụ này bổ sung các quyền rất ngẫu nhiên và rất dễ bị xâm lấn.

Đây là phần BadBlood mà tôi tự hào nhất khi phát triển. Tập lệnh tạo quyền là

AD_Permission_Randomizer\GenerateRandomPermissions.ps1 Quyền ngẫu nhiên Tập lệnh này gọi và nhập các hàm từ thư mục AD_OU_SetACL. Có nhiều tập lệnh trong thư mục này, với nhiều chức năng bên trong mỗi tập lệnh. Chúng có thể được sử dụng để tự động hóa nhiều tác vụ cấp phép Active Directory mà quản trị viên có thể gặp phải trong ngày làm việc.

Trong BadBlood, tôi kêu gọi những tập lệnh này phá hoại, tràn ngập và chỉ trích Miền. Những tập lệnh này là những tập lệnh khiến Miền này trở thành Miền tồi tệ nhất trong lịch sử Miền.

Quay lại trang generaterandompermissions.ps1, tất cả các quyền được đặt (ngẫu nhiên) với BadBlood đều được tìm thấy trong chức năng “Tạo-PermissionSet”. Có rất nhiều quyền trong chức năng này. BadBlood chọn ngẫu nhiên những quyền cần thêm. Nó ngẫu nhiên hóa các quyền mỗi khi hàm được gọi. BadBlood gọi hàm này rất nhiều lần. 

BadBlood lấy các quyền ngẫu nhiên này, chọn người dùng ngẫu nhiên và đặt quyền ngẫu nhiên trên các OU ngẫu nhiên. Sau đó, nó chọn các nhóm ngẫu nhiên và đặt các quyền ngẫu nhiên trên các OU ngẫu nhiên. Sau đó, nó thực hiện tương tự đối với các máy tính ngẫu nhiên.

Gợi ý: Tại thời điểm này, mọi thứ đều rất ngẫu nhiên.

7. Thêm đối tượng vào nhóm 

Bước cuối cùng của Invoke-BadBlood được lưu trữ trong Ad_Groups_Create\AddRandomToGroups.ps1. Tập lệnh này thực hiện ba chức năng chính để kết thúc BadBlood

  1. Chọn 80% người dùng trên miền và thêm họ vào các nhóm ngẫu nhiên. Bây giờ những người dùng này đã có được các quyền được cấp cho các nhóm! Ngoài ra, họ còn bị ảnh hưởng bởi các quyền được áp dụng cho các nhóm mà họ hiện là thành viên.
  2. Chọn 20% số nhóm và thêm chúng vào các nhóm ngẫu nhiên. Vì điều này, các quyền bắt đầu trở nên khó khăn hơn trên miền
  3. Chọn 10% số máy tính và thêm chúng vào các nhóm ngẫu nhiên. Tại sao? Tôi nghĩ đó là một ý tưởng hay và chỉ cần một vòng lặp nữa là hoàn thành.
mẫu miền thư mục hoạt động badblood

Lưu ý Số lượng người dùng, máy tính, nhóm, ACL và mối quan hệ thành viên nhóm chưa được kiểm soát 

Dữ liệu mẫu có thể thử nghiệm với BloodHound

Sau khi BadBlood chạy đã đến lúc thu thập dữ liệu trên miền. Đây là kết quả mẫu được tạo bằng cách chạy Bloodhound trên domain lỗi được dựng với BadBlood .

Đầu ra mẫu của truy vấn tiêu chuẩn “Đường dẫn ngắn nhất đến quản trị viên tên miền” Thật tệ phải không???

Tìm người ở bên trái “Noemi_Henry”. Đầu tiên: cái tên đó có tuyệt vời không? Thứ hai Mở rộng người có thể kiểm soát Noemi

đường dẫn ngắn nhất đến quản trị viên tên miền

Naomi có hơn 90 bộ điều khiển đối tượng rõ ràng. Miền này là giấc mơ của đội đỏ. Đó cũng là ước mơ của một nhà tư vấn bảo mật muốn bạn liên hệ với anh ta để thực hiện phân tích về miền và viết kế hoạch về cách bảo mật cơ sở hạ tầng này. Vui lòng liên hệ với tôi nếu có bất kỳ yêu cầu nào về Active Directory Security 

Tôi hy vọng bạn thích công cụ này trong môi trường HỌC TẬP  của mình . Đây là công cụ công khai đầu tiên có thể tải một lượng lớn thư rác vào miền Active Directory.

Security365 & CEHVIETNAM sẽ triển khai các miền với BadBlood để các bạn thành cho lớp CEH v12CPENT

Tải xuống BadBlood

Bình luận về bài viết này