일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- diva
- CTF-d
- ctf
- MFT
- Docker
- foremost
- 인시큐어뱅크
- XSS
- logstash
- Strings
- 안드로이드
- ESXi
- frida
- 2018
- Openstack
- lord of sql injection
- vulnhub
- NTFS
- otter
- beebox
- base64
- Volatility
- igoat
- kibana
- Reflected XSS
- 파이썬
- SQL Injection
- InsecureBank
- elasticsearch
- Suninatas
- Today
- Total
Information Security
NTFS MFT 본문
10GB 새로운 파티션을 생성했다.
새로운 파티션에 boan.txt를 복사했다.
010 Editor 프로그램을 이용해 새로운 파티션을 열었다.
3F 섹터의 시작 주소다.
Ctrl + g를 눌러 sector 옵션으로 변경 후 3F로 이동하면 NTFS를 보여준다.
00 02를 보면 정수 값 512byte라는 것을 알 수 있다.
08을 보면 하나의 클러스트 당 8개의 섹터가 필요하다.
0xC00000 주소를 보아 클러스트의 시작 주소라는 것을 알 수 있다. (63 sector + 0xC00000 * 8 = 6291519 sector)
10진수 6291519로 입력 후 이동하면 FILEO가 보이고 내리다 보면 MFT가 보인다.
FILE0 위치에서+54로 이동 하면 System Volume을 확인할 수 있다.
조금 내리다보면 boan.txt가 보이는 것을 알 수 있다.
38번째에 Ctrl + b를 눌러 북마크를 표시했다.
+38 byte 만큼 이동을 하면 첫 번째 섹터를 알 수 있다.
길이 60만큼 이동하면 두 번째 섹터를 알 수 있다.
똑같은 방법으로 하다 보면 마지막으로 FF FF FF FF 끝을 알 수 있다.
첫 번째 섹터에는 64bit로 create 시간 정보가 저장되어 있다.
두 번째에는 수정시간이 들어있다.
세 번째에는 MFT 자체 수정시간 (마우스 오른쪽 클릭에서 속성에서 볼 수 없는 값)
마지막으로 access time이다.
파일 이름을 알 수 있다.
Run 레지스트 방식으로 다른 곳에 데이터를 저장하고 있다.
31을 바이너리 값으로 변경하면 0011 0001이라는 것을 알 수 있다. 이 값의 의미는 0001은 하나를 이용하는 것이고 0011은 위치를 가리킨다.
5A FE 13은 1310298 값이다.
NTFS 시작 위치 + 파일 런 오프셋(0x1000 단위) = 파일 내용 위치
0x7E00 byte + (0x13FE5A * 0x1000) byte = 0x13FE61E00 byte
해당 위치에 파일 내용이 있는 것을 알 수 있다.