#About
1.부트 프리패치의 크기는?
(바이트 단위, 단위 생략)
2. 부트 프리패치의 프리패쳐 버전은?
(0x00000020)
답 포맷 : [1번 답]_[2번 답], 대괄호/문장부호 생략
#Solution
프리패치란 ?
프리패치란 윈도우 XP 이후의 운영체제에서 부팅이나 응용프로그램을 실행할 때 속도향상을 위해 구현된 기능이며 크게 부트 프리패치와 응용프로그램 프리패치로 나뉜다.
프리패치의 특징
1. 부트프리패치
부트 프리패치의 경우 프리패처에 의해 시스템 부팅 시 사용하는 파일을 최대 120초 까지 모니터링한 결과파일을 생성하며 참조 목록을 통해 부팅 과정에서 로드되는 악성코드확인이 가능하다
2. 응용프로그램 프리패치
응용프로그램 프리패치의 경우 응용프로그램을 초기 실행 시 캐시 관리자가, 10초간 사용한 파일을 모니터링한 결과파일을 생성하며 악성코드의 직접 실행 흔적을 발견할 수 있다
3. 프리패치 파일의 경로
프리패치는 %SystemRoot%\Prefetch에 <filename>_<filepath hash>.pf로 저장되며, 윈도우 7의 경우 최대 128개, 윈도우 8과 10의 경우 최대 1024개까지 파일이 생성되며 최대 개수를 넘게되면 가장 오래전에 생성된 파일부터 자동 삭제한다
4. 프리패치 활성화
윈도우 7 환경에서는 기본적으로 프리패치 기능이 활성화 되어있지 않으며, 활성화를 위해서는 첫 번째로 레지스트리와 두 번째로는 서비스의 확인이다.
4-1 레지스트리 값 확인
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlset\Control\Session Manager\Memory Management\PrefetchParameters\EnablePrefetcher
0 = 프리패치 기능을 사용하지 않음
1 = 응용프로그램 프리패칭만 사용
2 = 부트 프리패칭만 사용
3 = 부트/응용프로그램 프리패칭 모두 사용 (Default Value)
4-2 서비스 실행 확인
Windows + R을 통해 services.msc를 입력하면 서비스 관리 프로그램이 실행 되며 Windows Event Log와 Task Scheduler 기능이 실행되고 있어야 한다
5. 프리패치 파일에서 획득 가능한 정보
응용프로그램 이름
응용프로그램 실행 횟수
응용프로그램 마지막 실행 시각
참조 목록
파일시스템 시간 정보
[그림 1] - 프리패치 파일 확인
[그림 1]은 문제에서 주어진 프리패치 파일이며, 문제에서 요구하는 것은 부트 프리패치의 바이트 크기와
프리패쳐의 버전이므로 부트 프리패치 파일을 먼저 찾아야 하며 부트 프리패치 파일의 이름은 NTOSBOOT-B00DFAAD.pf 이다
[그림 2] - 부트 프리패치 파일 확인
문제에서 요구하는 부트 프리패치 파일을 찾았으니, 바이트 크기와 프리패쳐 버전을 알아내기 위해서는
아래와 같이 윈도우 버전에 따라 다른 프리패치의 구조를 알아야한다
[그림 2] - Windows 7, Windows XP 프리패치 구조
버전에 따라 구조가 다르므로 가장 먼저 봐야할 것은 버전 정보가 적힌 오프셋 0x00~0x03에 해당하는 부분이다
0x17
Windows XP, Windows2003
0x23
Windows Vista, Windows 7
0x1A
Windows 8.1
0X1E
Windows 10
[그림 3] - 프리패쳐 버전 확인
프리패쳐의 버전 확인결과 Windows Vista 또는 Windows 7에서 사용하는 프리패쳐임을 확인할 수 있었다
프리패쳐의 버전을 확인했으니 Windows 7또는 Windows Vista에서 사용하는 프리패치의 구조 중 바이트 정보에 해당하는 오프셋은 아래와 같다
[그림 4] - 바이트 크기 확인
오프셋 0x0C~0x0F에 해당하며 리틀엔디언 형식으로 저장되어 있기 때문에 마지막 바이트부터 읽어야한다
바이트 크기는 0x001B2968이며 이를 10진수로 변환하면 1780102이다
Answer = 1780102_0x00000017
'Wargame' 카테고리의 다른 글
[Cresendo] Prefetch Problem 03 (0) | 2017.11.05 |
---|---|
[Cresendo] Prefetch Problem 02 (0) | 2017.11.05 |
[Lord of SQL Injection] Dragon (0) | 2017.11.02 |
[Lord of SQL Injection] Xavis (0) | 2017.11.02 |
[Lord of SQL Injection] Nightmare (0) | 2017.11.02 |