tên challenge: Don't forget to lock mô tả: We seiz...
Создано: 7 мая 2026 г.
Отвечено с использованием GPT-5.5 Thinking от Chat01
Создано: 7 мая 2026 г.
Отвечено с использованием GPT-5.5 Thinking от Chat01
tên challenge: Don't forget to lock
mô tả: We seized a suspect's computer and managed to capture a RAM dump before it was powered off, along with an encrypted disk. Your objective is to decrypt the drive.
link đính kèm: https://drive.google.com/file/d/1vbLkEBumF0rmokvW9iWbCKMtCjmPzP4J/view?usp=drive_link
flag format: THC{...}
solve challenge
bạn cần tự tải file challenge về, vì file này hơi nặng nên tôi không thế gửi lên cho bạn được
Mình chưa thể lấy flag cuối cùng vì môi trường chạy lệnh của mình không tải được file từ Google Drive: gdown lỗi DNS khi resolve drive.google.com, còn trình đọc web chỉ mở được trang Drive dạng HTML với link “Sign in”, không có nội dung archive để phân tích. Trang Drive xác nhận tên file là chall.tar.gz, nhưng không cung cấp file bytes cho mình trong phiên này. (Google Drive)
Dựa trên mô tả challenge, hướng giải gần như chắc là trích key BitLocker/FVEK từ RAM dump, rồi mount ổ đĩa mã hóa. Plugin Volatility-BitLocker dùng để lấy FVEK trong memory, sau đó dùng Dislocker/libbde để giải mã volume; repo plugin cũng mô tả đúng luồng này. (GitHub) bdemount nhận khóa theo dạng FVEK:TWEAK base16 qua option -k. (manpages.opensuse.org)
Chạy cục bộ như sau:
bashmkdir dont-forget-lock && cd dont-forget-lock # tải file gdown 'https://drive.google.com/uc?id=1vbLkEBumF0rmokvW9iWbCKMtCjmPzP4J' -O chall.tar.gz tar -xvzf chall.tar.gz find . -maxdepth 3 -type f -exec file {} \;
Sau đó xác định RAM dump và disk image, ví dụ:
bashls -lh file *
Nếu disk là BitLocker:
bashsudo apt update sudo apt install -y libbde-utils ntfs-3g git python3-pip # kiểm tra image/partition BitLocker bdeinfo encrypted_disk.img
Tìm offset partition nếu image là full disk:
bashmmls encrypted_disk.img
Ví dụ nếu partition bắt đầu ở sector 2048, offset bytes là:
bashecho $((2048 * 512))
Trích FVEK từ RAM:
bashgit clone https://github.com/breppo/Volatility-BitLocker.git # nếu challenge dùng Volatility 2: volatility -f memory.raw imageinfo volatility -f memory.raw --profile=<PROFILE> bitlocker --dump-dir keys
Plugin sẽ in ra hoặc dump key dạng:
textFVEK=<hex> TWEAK=<hex>
Mount ổ bằng bdemount:
bashmkdir -p bde_mount ntfs_mount sudo bdemount \ -k FVEK_HEX:TWEAK_HEX \ -o OFFSET_BYTES \ encrypted_disk.img \ bde_mount sudo mount -o ro,loop,show_sys_files,streams_interface=windows \ bde_mount/bde1 \ ntfs_mount
Tìm flag:
bashgrep -RaoE 'THC\{[^}]+\}' ntfs_mount 2>/dev/null
Nếu disk image là partition BitLocker trực tiếp, bỏ -o OFFSET_BYTES:
bashsudo bdemount -k FVEK_HEX:TWEAK_HEX encrypted_partition.img bde_mount sudo mount -o ro,loop bde_mount/bde1 ntfs_mount grep -RaoE 'THC\{[^}]+\}' ntfs_mount 2>/dev/null
Mình không muốn bịa flag khi chưa đọc được archive. Khi bạn chạy được các lệnh trên, đoạn quan trọng nhất cần gửi lại là output của:
bashfind . -maxdepth 3 -type f -exec file {} \; mmls encrypted_disk.img volatility -f memory.raw --profile=<PROFILE> bitlocker --dump-dir keys
Từ đó có thể chốt chính xác FVEK:TWEAK, mount disk và lấy THC{...}.