본문 바로가기

forensic/Win Artifact

Windows Artifacts - .LNK 파일구조와 윈도우 응용프로그램 로그표현 목록

OS Windows 10
Used Tools IE01Analyzer, 010Editor
Site https://www.epochconverter.com

.LNK확장자 파일은 Windows shortcut file이라고 부른다. 윈도우 시스템에서 사용하는 파일에 대한 링크파일이다.

쉽게 말해 바로가기이며 사용자 지정 위치에 생성된다.

 

.LNK파일이 위치한 곳은 다음과 같다.

기본 시작메뉴  
관리자 라이브러리  
사용자 시작메뉴 C:\Users\KUSTI\AppData\Roaming\Microsoft\Windows\Start Menu
최근문서 C:\Users\KUSTI\AppData\Roaming\Microsoft\Windows\Recent
사용자별 바탕화면  
Sendto 메뉴 링크 C:\Users\KUSTI\AppData\Roaming\Microsoft\Windows\SendTo
사용자 빠른실행 C:\Users\KUSTI\AppData\Roaming\Microsoft\Windows\Recent\AutomaticDestinations
사용자 라이브러리  

<표1>

실제로 찾아보면 대부분 .LNK확장자로 이루어져 있다는 것을 알 수 있다.

 

그럼 다음을 포렌식관점에서 찾아보도록 하자

ShellLinkHeader MAC Time Modified, Access, Change / Creation Time
LinkInfo VolumeID Drive Type / SerialNumber, VolumeID Size
  System name  
  Network 공유정보  
  원본 파일 위치  

<표2>

위와 같은 정보들을 알 수 있다.

 

이중 ShellLinkHeader를 보도록 하자

<사진1>

위는 ShellLinkHeader구조이다.

 

 

위를 바탕으로 윈도우 응용프로그램 로그표현 목록을 보자.

  • Jumplist
    • Windows 7에서 새로 추가된 Artifact이며 응용프로그램별로 그룹화 되어있다.
    • 사용자가 자주 사용하거나 최근에 사용한 문서 또는 프로그램을 관리하는 링크 파일이다.
    • 경로는 다음과 같다.
      C:\Users\KUSTI\AppData\Roaming\Microsoft\Windows\Recent\AutomaticDestinations
  • RecentDocs, Recent folder
    • RecentDocs 레지스트리는 다음과 같은 경로에 있다.
      HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\RecentDocs
    • 포렌식관점
      • 최근 실행한 응용프로그램의 이름, 목록 확인
      • 마지막으로 실행한 응용프로그램 시간
      • 응용프로그램 실행 횟수
    • Recent folder
      • <표1>에서 최근문서를 뜻한다.
  • UserAssist
    • UserAssist는 다음과 같은 경로에 있다.
      HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\Cu rrentVersion\Explorer\UserAssis
    • ROT-13을 통해 Encoding되어있다.
    • 실행기록과 바로가기를 가르키는 2개의 Sub Key가 존재한다. (Windows 7,8,10,11)
      • CEBFF5CD-ACE2-4F4F-9178-9926F41749EA (실행기록)
      • F4E57C4B-2036-45F0-A9AB-443BCFE33D9F (바로가기)
    • 아래 <사진2>에서 보라색 박스는 응용프로그램의 이름이 ROT-13으로 Encoding되어 있는 곳이다.
      붉은색 박스는 세션번호, 초록색 박스는 실행횟수이다.
      검은색박스는 마지막실행시간인데 2022 07 07을 뜻한다.

<사진2>

<사진2>에서 Window timestamp를 Unix timestamp로 바꾸기 위해선 다음 정보를 알아야 한다.

  • 리틀엔디안
    • 01D8A1A6A82E7690으로 읽고 10진수로 133033926165690000이다.
  • Unix Timestamp 방식
    • 1970년부터 시작해 초단위로 더하는 방식
  • Window timestamp 방식
    • 1601년부터 시작해 100ns(나노초)만큼 올라간다.

100ns * 10000000 = 1s

369년을 초로 바꾸면 윤년을 포함해 11644473600초이다.

 

(133033926165690000 / 10000000) - 11644473600 = 1658919016

1658919016을 https://www.epochconverter.com/ 를 통해 확인하면

2022년 July 27일 Wednesday AM 10:50:16 이고 여기서 GMT+9:00을 적용하면
2022년 7월 27일 수요일 오후 7:50:16 임을 알 수 있다.

 

Time zone list / Epoch to time zone converter (epoch 1658919016)

There is only one Unix time and it is created by using the UTC/GMT time zone. This means you might have convert time zones to calculate timestamps. Most programming languages have libraries to help you converting time zones, calculating by hand might not b

www.epochconverter.com

 

'forensic > Win Artifact' 카테고리의 다른 글

Windows Artifacts - Open Save MRU  (0) 2022.09.09
Windows Artifacts - ShellBags  (0) 2022.08.17