0x0102

바로가기 (LNK) 본문

Study/Digital Forensic

바로가기 (LNK)

jxx_yxjx 2022. 7. 24. 23:10

바로가기 (LNK)

  • Windows Shortcut
  • .lnk 확장자

생성하는 방법

  • 사용자가 직접 생성
  • 프로그램 설치 시에 생성
  • 운영체제가 자동으로 생성

바로가기가 무엇인지 간단하게 살펴보기 위해 바탕화면에 있는 바로가기를 우클릭하여 속성을 확인해보면

이런식으로 확장자가 .lnk로 설정되어 있는 것을 확인할 수 있다.

또한 바로가기 탭을 확인해보면

대상에 원본파일에 대한 경로를 가지고 있는 것도 확인할 수 있다.

바로가기 파일이 생성되는 경로

  • 바탕화면
    • %UserProfile%\Desktop

  • 시작메뉴
    • %ProgramData%\Microsoft\Windows\StartMenu
    • %UserProfile%\Appdata\Roaming\Microsoft\Windows\StartMenu

  • 최근 실행
    • %UserProfile%\AppData\Roaming\MicroSoft\Windows\Recent

  • 빠른 실행 - (작업 표시줄 관련)
    • %ProgramData%\Microsoft\Internet Explorer\Quick Launch
    • %UserProfile%\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch
    • %UserProfile%\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\UserPinned\TaskBar // user가 pin한 경우

+)

%UserProfile%\Appdata\Roaming\Microsoft\Windows\StartMenu

예를 들어 다음과 같은 경로를 들어갔을 경우 이렇게 각 폴더에 들어가면 바로가기 파일(들)이 들어있는 것을 확인할 수 있다.

그렇다면 lnk는 포렌식이 어떤 의미를 가질까?

실습을 통해 알아보자

[바로가기(LNK) 실습]

  • FTK Imager 사용 - 추출
    • %UserProfile%\Desktop
    • %UserProfile%\AppData\Roaming\Microsoft\Windows\Recent

+) 이때 %UserProfile% = C:\Users\[사용자] 를 의미한다. 일종의 예약어이므로 기억해두자!

[첫번째 실습] - %UserProfile%\Desktop 경로의 바로가기 추출

ftk imager를 실행하고 add evidence item - logical - c drive 이후 root 폴더 - 사용자 - .lnk파일을 찾아 바탕화면 아래 새 폴더에 export 시킨다.

도구를 다운로드 받는다.

좌측 1.5.0.0 다운로드

도구를 아까 ftk imager에서 추출한 파일과 같은 파일에 압축 해제한 후 터미널에서 실행한다.

+) 아쉽게도 이 도구는 CLI(콘솔로 사용)형식이다.

사용법을 간단히 읽어보면, -d -f 옵션 중 하나는 반드시 사용해야 하며 d옵션 아래에는 디렉토리, f 옵션 아래에는 파일을 주면 되는 것 같다.

LECmd를 실행 후 -f 옵션을 주고 ' 아까 추출한 바로가기' 를 실행한다.

완료!

해당 내용을 본격적으로 분석해보자

상단의 source file은 우리가 분석하고자 하는 바로가기 파일 그 자체를 의미하며

target file은 그 바로가기 파일의 원본 파일에 해당한다.

+target file의 중요도가 더 높다.

source와 target file의 created(생성), modified(수정), accessed time(접근 시간)을 모두 확인할 수 있다.

file size는 원본 파일의 크기를 의미한다.

Relative Path(상대 경로), Working Directory (절대 경로) 또한 확인할 수 있다.

[두번째 실습] - %UserProfile%\AppData\Roaming\Microsoft\Windows\Recent

ftk imager에서 다음과 같은 경로로 이동해주면, 수많은 lnk 파일들을 확인할 수 있다.

이번에는 디렉토리 옵션을 사용해볼 것이므로 recent 파일을 통째로 export files 해준다.

완료되면 터미널로 돌아와 -d 옵션을 주고 recent 파일을 넣고 실행한다.

실행하게 되면 정말 많은 내용들이 출력되는데, 모든 정보를 스크롤하며 읽을 수 없으므로 옵션을 사용해보자.

옵션의 사용법을 알아보기 위해서는 터미널에서 LECmd.exe에 -h 옵션을 주면 된다.

그럼 이러한 사용법을 알 수 있다.

먼저 html옵션을 사용해보도록 하자.

사용법을 살펴보니, --html 옵션을 주고 쌍따옴표 안에 꼭 전체 경로를 적으라고 한다.

그렇다면 다시 바탕화면에 lnk_jumplist 폴더로 가서 save라는 임의의 폴더를 하나 생성한 후 경로를 따오자.

이렇게 명령어를 입력한 후 실행하고 save 파일로 이동해보자.

그럼 이러한 xhtml파일이 뜨고 실행해주면

아까 보았던 터미널 상의 방대한 자료가 잘 정리되어 나오는 것을 확인할 수 있다.

지난주 실습에 이용했던 image.E01 파일도 볼 수 있다.

이때 Target Created 시간과 Source Created 시간이 다른 것을 확인할 수 있다.

+) 이때 시간은 영국시간 기준이므로 한국시간을 기준으로 보고싶다면 9시간을 더해야한다.

아마 생성 후 내가 이 파일을 여는 과정에서 바로가기가 생성된 것 같다.

원본 파일을 중심으로 바로가기 파일의 상대경로와 그를 바탕으로 계산한 절대경로도 알 수 있다.

또한 worknig directory의 드라이브, 즉 볼륨의 시리얼 넘버를 알려준다.

이게 중요한 이유는 lnk를 통해 어떤 볼륨에 존재했던 파일인가를 알 수 있기 때문이다.

모든 사용자의 c 드라이브는 저마다 다른 일련번호를 가지고 있는데,

lnk만으로 볼륨, 즉 드라이브의 일련번호를 알 수 있기 때문에 증거의 효력을 가질 수 있는 것이다.

html 형태로 추출해보았으니 다른 형태로도 추출해보자.

(html은 사람이 보고 검색하기에는 편리하나 자동화하기에는 좋지 않다는 단점이 있다)

csv형태로 추출해보았다.

그럼 이렇게 엑셀파일이 추출되고, 확인해보면 아까와 똑같은 정보들이 엑셀형태로 저장되어 있는 것을 확인할 수 있다.

csv형식은 타임라인을 형성하거나 파이썬으로 자동화, 시각화 할때 자주 사용되니 알아두자.

'Study > Digital Forensic' 카테고리의 다른 글

Prefetch 개념 및 실습  (0) 2022.07.25
Jumplist  (0) 2022.07.25
$LogFile, $UsnJrnl  (0) 2022.07.24
$MFT 개념 및 실습  (0) 2022.07.24
Windows Registry 실습  (0) 2022.07.23