---
# System prepended metadata

title: CTFZone 2024

---

# CTFZone 2024
## Forensics
### Lost Information

![image](https://hackmd.io/_uploads/ryLx7VR5C.png)

Đề cho chúng ta một file check.img, tuy nhiên mình mount thử thì không được, có vẻ nó đã bị corrupted.

![image](https://hackmd.io/_uploads/Byv97E09R.png)

Ném vào volatility3 để phân tích qua thì không thấy có gì mới, thử kiểm tra mft file tuy nhiên khi mình check mft header file disk này thì không thấy. Khá ảo nên mình nghĩ có thể nó bị corrupted.

Mình dựa vào end of mft record để tìm và sửa lại header mft record.

> end of mft record : FF FF FF FF 82 79 47 11
> corrupt header mft record : 20 20 20 20 30 00 03 00
> correct header mft record : 46 49 4C 45 30 00 03 00

![image](https://hackmd.io/_uploads/SyZCd80c0.png)

```python=
def replace_hex_in_file(file_path, old_hex, new_hex):
    old_bytes = bytes.fromhex(old_hex)
    new_bytes = bytes.fromhex(new_hex)
    
    with open(file_path, 'rb') as file:
        file_data = file.read()

    new_file_data = file_data.replace(old_bytes, new_bytes)
    
    with open(file_path, 'wb') as file:
        file.write(new_file_data)

if __name__ == "__main__":
    file_path = "check.img" 
    old_hex = "2020202030000300"
    new_hex = "46494C4530000300"
    
    replace_hex_in_file(file_path, old_hex, new_hex)
```

Đề bài đề cập rằng có một số file quan trọng đã bị thay đổi. Mình nghĩ đến ngay một file rất quan trọng log được các sự kiện xảy ra với một file đó là $UsnJrnl record file.

Dạo quanh github, mình tìm thấy một profile github rất uy tín và có một tool là [UsnJrnlCarver](https://github.com/jschicht/UsnJrnlCarver) của [jschicht](https://github.com/jschicht) (Bố của mọi loại parser, carver NTFS).

Giờ tiến hành carve disk image này thôi.

> UsnJrnlCarver.exe /InputFile:"C:\Users\tamin\OneDrive\Máy tính\UsnJrnlCarver-master (1)\UsnJrnlCarver-master\check.img" /OutputPath:"C:\Users\tamin\OneDrive\Máy tính\UsnJrnlCarver-master (1)\UsnJrnlCarver-master\out"

![image](https://hackmd.io/_uploads/SyYWbwR5R.png)

![image](https://hackmd.io/_uploads/B1UJzDRqA.png)

Giờ sử dụng parse sang csv bằng [UsnJrnl2Csv](https://github.com/jschicht/UsnJrnl2Csv) cũng của [jschicht](https://github.com/jschicht).

![image](https://hackmd.io/_uploads/SkIJUD090.png)

Ném vào Timeline Explorer, filter reason là delete thì ta thấy các file ở ký tự đầu tiên là các ký tự của flag. Ghép nó lại ta có flag chính.