0
0
Lập trình
Flame Kris
Flame Krisbacodekiller

DFCD 2024: Chiến Lược Giữ Vững Giải Thưởng Của Đội Red Team

Đăng vào 4 ngày trước

• 4 phút đọc

Bài viết từ góc nhìn của đội Red Team

1. Chuẩn Bị Trước Khi Tham Gia Cuộc Thi

Trước thềm cuộc thi DFCD 2024, đội trưởng Thái đã lên kế hoạch chiến lược rõ ràng, giúp cả đội có định hướng nhất quán trong từng bước đi. Đội đã phối hợp để điều chỉnh hệ thống bảo mật ModSecurity và xây dựng hệ thống giám sát qua Splunk. Với kinh nghiệm từ năm 2023, cơ cấu tổ chức của đội Blue không thay đổi, khiến đội Red năm nay phải phụ thuộc khá nhiều vào đội Blue, không thể tấn công thoải mái như năm trước.

Chúng tôi chuẩn bị đầy đủ các công cụ cần thiết, đặc biệt là việc gửi flag, vì nếu thiếu sót ở phần này sẽ gặp khó khăn lớn! Cuộc thi kéo dài 3 giờ đồng hồ, nên việc giữ tinh thần tỉnh táo và tập trung là ưu tiên hàng đầu. Trước ngày thi, tôi đã thức khuya, chỉ ngủ được lúc 1-2 giờ sáng.

2. Cuộc Chiến Nhằm Đạt Giải Thưởng

Khi cuộc thi bắt đầu, toàn đội hào hứng chờ đợi từng giây. Thế nhưng, trang web báo lỗi 403 trong 5 phút đầu tiên. Đội Red không khỏi nghi ngờ tình hình này, bởi kinh nghiệm năm trước cho thấy BTC thường cung cấp các dịch vụ dễ bị lỗi. Đây là một thử thách lớn khi chúng tôi không nhận được thông tin rõ ràng về các dịch vụ đang chạy.

Hành động đầu tiên của đội Red là quét hệ thống của mình bằng các công cụ như dirsearch và fuff, nhưng chỉ phát hiện được một endpoint duy nhất là /api. Chúng tôi quyết định phân tích và tìm hiểu các API trên trang này để hiểu rõ hoạt động của chúng.

2.1. Những Round Đầu Tiên

Chỉ sau khoảng 10 phút, chúng tôi nhận được nhiều payload tấn công từ đội Blue. Đội trưởng Thắng đã gửi cho đội Red một endpoint với payload như sau:

Copy
/mathsays?t=Solve%20for%20x%20in%20{x%20+%20(x^2%20/%204)%20=%203}%20within%20the%20set%20{x%20%E2%88%88%20[0,8]%20;%20x%20%3E%201}.

Ngay lập tức, đội Red tiến hành truy cập và phân tích endpoint này. Chúng tôi phát hiện ra một đoạn mã JavaScript có dấu hiệu của command injection. Thế nhưng, chưa có đủ thời gian để đưa ra thêm payload, đội Blue đã cập nhật thêm nhiều payload khác trong bảng chuẩn bị của họ.

Khi tìm ra lỗi, chúng tôi khá ngạc nhiên vì flag lại ở dạng ảnh. Đội Red chia nhau thực hiện submit flag: tôi lấy nhiệm vụ viết mã để tự động hóa việc gửi flag, trong khi một số thành viên dùng Google Image và iPhone để quét ảnh và submit thủ công. Đây chính là thử thách lớn!

Bắt tay vào việc tự động submit flag, chúng tôi đã chia nhỏ công việc thành ba bước:

  • Tải ảnh tự động
  • Đọc ảnh qua OCR để lấy flag
  • Tự động gửi flag

Trong phân phần này, chúng tôi đã xây dựng được công cụ gửi flag tự động.

2.2. Các Round Giữa

Sau nhiều phút suy nghĩ, tôi đã nhanh chóng viết được đoạn mã thực hiện tải file ảnh:

Copy
import requests

def get_image(ip_and_port):
    # Logic tải ảnh ở đây
    pass

Giai đoạn này giúp giảm bớt một bước trong việc lấy ảnh, tuy nhiên việc lấy flag vẫn là thủ công. Tôi tiếp tục phát triển phần tiếp theo của công cụ là đọc ảnh và lưu flag vào file để gửi một lần cho nhanh.

May mắn thay, năm 2024 này, chúng tôi đã có các công cụ OCR để hỗ trợ việc này. Trong vòng 1 phút 30 giây, tôi đã xây dựng thành công phần quan trọng này của công cụ:

Copy
import pytesseract
from PIL import Image

def extract_numbers_from_image(image_path):
    # Logic lọc số từ ảnh ở đây
    pass

Nhờ đó, đội Red tự tin hơn trong việc tấn công, phòng thủ và quan trọng hơn là cập nhật các payload bypass.

2.3. Những Round Cuối

Trong những round cuối, đội Red liên tục dao động trong top 10, có lúc đạt top 4. Tuy nhiên, đội Blue đã lại một lần nữa ghi bàn với endpoint mới, từ đó đội Red đã tìm ra được flag nhanh chóng.

Mặc dù gặp nhiều khó khăn, nhưng nhờ tinh thần đồng đội và sự hợp tác giữa hai đội, chúng tôi đã đạt thứ hạng cao nhất có thể.

3. Kết Luận

Chúng tôi đã thành công bảo vệ giải thưởng của mình tại DFCD 2024. Đây quả thật là một trải nghiệm tuyệt vời để cả đội không chỉ nâng cao kỹ năng chuyên môn mà còn học hỏi được nhiều kỹ năng mềm.

Bài Học Rút Ra

1. Chuẩn Bị Kỹ Càng

  • Các công cụ như Splunk, và các script sẵn có giúp chúng tôi vận hành nhanh chóng.

2. Phân Tích Thông Tin Nhanh Chóng

  • Phân tích các endpoint và payload mới là yếu tố then chốt trong cuộc thi.

3. Gắn Kết Đội Ngũ

  • Sự phối hợp giữa Red Team và Blue Team là yếu tố quan trọng giúp cả đội thành công.

4. Kỹ Năng Quản Lý Thời Gian

  • Đội đã học được cách duy trì phong độ và quản lý thời gian hợp lý.

5. Sáng Tạo Trong Giải Pháp Kỹ Thuật

  • Khả năng tận dụng công cụ và giải pháp mới đã giúp đội vượt qua nhiều thử thách.

Cuối cùng, những nỗ lực không ngừng nghỉ của mỗi thành viên là minh chứng cho thành công chung của cả đội.
source: viblo

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào