본문 바로가기

SWUFORCE/Inflearn

[인프런 스터디] 6주차 - 바로가기 파일 포렌식(.lnk) 개념 및 실습

$MFT (Master File Table)

  • NTFS 파일 시스템(Windows의 파일 시스템)에서 파일, 디렉터리를 관리하기 위한 구조
  • 하나의 파일당 하나의 MFT 엔트리를 가짐
  • $MFT란 MFT 엔트리의 집합

 

 

MFT 엔트리

  • 파일의 이름, 생성·수정·변경시간, 크기, 속성 등을 가지고 있음
  • 파일의 디스크 내부 위치, 파일의 시스템 경로를 알 수 있음

 

 

$MFT 실습

  • [root]\$MFT
  • mft explorer 도구 이용하여 살펴보기

 

 

$LogFile

  • 메타데이터의 트랜잭션 저널 정보
  • 저널링(Jounaling), 트랜잭션(Transaction)

 

 

$UsnJrnl

  • 파일이나 디렉터리에 변경 사항이 생길 때 이를 기록
  • 시간 순서대로 엔트리 저장, 기본 크기는 32MB

 

 

$LogFile, $UsnJrnl 실습

  • ftk imager 로 파일 추출해서 살펴보기

 

 


 

 

 

바로가기(LNK)

  • Windows Shortcut
  • .lnk 확장자
  • 바탕화면
    • %UserProfile%\Desktop
  • 시작 메뉴
    • %ProgramData%\Microsoft\Windows\Start Menu
    • %UserProfile%\Appdata\Roaming\Microsoft\Windows\Start Menu
  • 최근 실행
    • %UserProfile%\AppData\Roaming\Microsoft\Windows\Recent
  • 빠른 실행
    • %ProgramData%\Microsoft\Internet Explorere\Quick Launch
    • %UserProfile%\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch
    • %UserProfile%\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar

 

 

 

 

[실습]

  • ftk imager 이용하여 추출
  • LECmd 다운로드하기

 

 

 

파일 분석

.\LECmd.exe -f '.\Netflix.lnk'

 

lnk 바로가기 파일 아무거나 가지고 분석

헤더 구분선 밑에 Target created/modified/accessed 는 다 원본 파일의 시간 나타냄, file size 도 마찬가지

 

 

 

 

디렉터리 분석

  • %UserProfile%\AppData\Roaming\Microsoft\Windows\Recent
  • ftk imager로 위 경로 따라서 Recent 폴더 추출하기
    • .\LECmd.exe -d .\Recent\ (양이 너무 많아서 한 번에 보기 어려움)
    • .\LECmd.exe -d .\Recent\ --csv "폴더 경로" (엑셀로 시각화하기, 파이썬으로 자동화 가능)
    • .\LECmd.exe -d .\Recent\ --html "폴더 경로" (html로 편하게 보기)

html 로 연 Recent 최근 실행 폴더

 

 

위 %LogFile 의 Volume Serial Number를 보면

cmd 에서 vol

 

36EF-DBC9로 같다는 것을 알 수 있음

다 삭제되고 lnk 만 남아도 이런 걸로 흔적?을 찾아낼 수 있음

 

 

 

 


 

 

 

 

바로가기 (링크파일)

  • 공식 명칭: Shell Link, 영문 명칭: Windows Shortcut
  • 윈도우에만 존재하는 기능으로 응용 프로그램, 디렉터리, 파일 등의 객체를 참조하는 파일
  • 명줄이 아닌 GUI에서만 동작
  • .lnk 확장자를 가짐

 

 

파일 구조

  • Shell Link Binary File Format

바로가기 파일 기본 구조

 

 

  • SHELL_LINK_HEADER
    • 링크 대상 파일의 속성 (읽기 전용, 숨긴 파일, 시스템, 볼륨 레이블, 암호화, 압축 등)
    • 링크 대상 파일의 생성, 수정, 접근 시간

 

 

  • LINKTARGET_IDLIST
    • 링크 대상의 정보를 리스트 형태로 구성해 놓은 구조
    • IDList - ItemIDSize, Data
  • LINKINFO
    • 링크 대상 파일의 크기/경로/드라이브 형식/드라이브 시리얼 번호

 

 

  • Volume ID

 

 

  • STRING_DATA
    • 바로가기 설명, 링크 대상까지의 상대 경로, 바로가기 활성화 시 작업 디렉터리 위치 저장
  • EXTRA_DATA
    • 링크 대상에 대한 추가 정보
    • NetBIOS 이름, MAC 주소
    • 콘솔에서 실행될 경우 디스플레이 설정 값, 코드 페이지 정보, 환경 변수 정보 등

 

 

 

시그니처 카빙