Security & Forensic

전체 글 +51
반응형

반응형

반응형

반응형

반응형

반응형

반응형

반응형

반응형

반응형

반응형

반응형

'정보보호' 카테고리의 다른 글

정보보호실무-05-위험분석  (0) 2023.07.25
정보보호실무-04-취약점분석  (0) 2023.07.25
정보보호실무-03-위협  (0) 2023.07.25
정보보호실무-01-위험관리  (0) 2023.07.06
취약점, 위협과 위험의 차이  (1) 2022.04.16

반응형
디지털 포렌식 5대원칙
  • 신속하고 적법한 과정으로 되집되어야 하여 (신속성 및 정당성)
    수집 및 분석 도구니 프로그램의 신뢰성,  수집 및 분석 절차나 방법의 공정성
  • 수집 과정에서 위변조 되지 않았다는 것을 증명해야 하며 (무결성)
  • 동일한 조건에서는 항상 동일한 결과를 제공해야 한다. (재현의 원칙)
  • 그리고 이를 위한 법적 제도적 장치를 마련해야 한다. (적법성)
    디지털 포렌식 표준 가이드라인, 전자증거 개시(e-Discovery) 제도, 재판 이후 증거물에 대한 파기의 제도적 장치

1. 정당성의 원칙
획득한 증거 자료가 적법한 절차를 준수해야 하며, 위법한 방법으로 수집된 증거는 법적 효력을 상실한다.

2. 무결성의 원칙
수집 증거가 위/변조되지 않았음을 증명할 수 있어야 한다.(Hash)

|3. 재현의 원칙
같은 조건과 상황에서 항상 같은 결과가 나오도록 재현할 수 있어야 하고, 수행할 때마다 다른 결과가 나온다면 증거로 제시할 수 없다. 동일한 조건에서는 항상 동일한 결과가 나와야 한다.

4. 신속성의 원칙
휘발성 증거의 수집 여부는 신속한 조치에 의해 결정되므로 모든 과정은 지체없이 진행되어야한다.

5. 관리 연속성의 원칙(Chain of Custody)
증거물 획득 -> 이송 -> 분석 -> 보관 -> 법정 제출의 각 단계에서 담당자 및 책임자를 명확히 해야한다.

디지털 포렌식 어려움

증거의 양이 많아 수집 및 분석의 시간이 오래 걸림
디지털 증거가 비가시성, 복제, 위변조 및 삭제 가능성이 많고  (증거 조작이나 훼손 위험성)
신뢰성을 갖춘 전문도구가 많지 않고 (국제적으로 신뢰성을 인정 받을 수 있는 전문 도구 개발 필요성)
디지털 포렌식 전문가 인력이 많지 않다

디지털 증거 보장을 위한 제도적 장치
디지털 데이터의 특성 비가시성, 취약성, 복제 용이성, 대량성, 전문성, 휘발성, 초국경성을 뒷받침 할만한 제도적 장치가 마련되어야 한다. 제도적 장치로 [디지털 포렌식 표준 가이드라인], [디지털 포렌식 도구 검증], [디지털 수사관 입증], [디지털 증거 분석실 검증] 등이 있다.

디지털 증거 보장 위한 제도적 장치, 무엇이 있을까
디지털 증거 특성 고려...피해자·피의자 관점에서의 컨설팅 등 제도 마련 필요
반응형

반응형

반응형

반응형

Windows 설치날짜 정보 확인 유의 사항

 

http://az4n6.blogspot.kr/2017/02/when-windows-lies.html

 

레지스트리의 설치 날짜는 윈도우 업데이트, 노트북 구매(미리 설치된 OS), 임의 수정 등으로 실제 설치/최초 사용 날짜와 다를 수 있습니다.운영체제 설치 날짜를 명확히 확인하려면 다음 3가지 정보를 상호 검증할 필요가 있습니다.

 

- 레지스트리 윈도우 설치 날짜

  HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion (TimeStamp 값으로 저장됨)

  ) HexDecimal -> 10진수 변환, 10진수 Timestamp 1333608934 Date로 변환

- 볼륨 포맷 날짜

 

- 계정 생성 날짜

C:\>dir /ah /s /tc ntuser.dat (OS 설치 드라이브에서 실행)

 C:\Users\chohb 디렉터리

     2012-04-05  오후 03:55        24,903,680 ntuser.dat

     

 C:\Users\Default 디렉터리

     2009-07-14  오전 11:34           262,144 NTUSER.DAT

 

비교

OS 설치 드라이브에서 C\User 폴더의 속성에서 생성일 확인

 

 

사용자(Users)\Default 폴더 생성일은 2012-04-05이다

 

WMIC

C:\>wmic useraccount get caption, name, Fullname, installdate, sid

Caption                 FullName  InstallDate  Name           SID

chohb-PC\Administrator                         Administrator  S-1-5-21-2610363949-2116855674-2356788

997-500

chohb-PC\chohb                                 chohb          S-1-5-21-2610363949-2116855674-2356788

997-1000

chohb-PC\Guest                                 Guest          S-1-5-21-2610363949-2116855674-2356788

997-501

 

WMIC User Account에는 InstallDate 값이 안나온다     

 

C:\>wmic os get installdate

InstallDate

20120405155534.000000+540

 

SystemInfo

C:\>systeminfo|findstr /i /c:"Original Install Date" /c:"원래 설치 날짜"

원래 설치 날짜:          2012-04-05, 오후 3:55:34                             

 

C:\>net user chohb : 계정생성일자 안나옴

사용자 이름                        chohb

전체 이름

설명

사용자 설명

국가 코드                          000 (시스템 기본값)

활성 계정                         

계정 만료 날짜                     기한 없음

 

마지막으로 암호 설정한 날짜        2015-08-17 오전 10:15:58

암호 만료 날짜                     기한 없음

암호를 바꿀 수 있는 날짜           2015-08-17 오전 10:15:58

암호 필요                          아니요

사용자가 암호를 바꿀 수도 있음     

 

허용된 워크스테이션                전체

로그온 스크립트

사용자 프로필

홈 디렉터리

최근 로그온                        2017-03-09 오전 11:50:09

 

허용된 로그온 시간                 전체

 

로컬 그룹 구성원                   *Administrators

                                   *ora_dba

글로벌 그룹 구성원                 *None

명령을 잘 실행했습니다.

 

반응형

반응형
lnk는 바로 가기(Shortcut) 와 비슷하면서도 다른 개념입니다. .lnk 바로 가기는 .lnk 라는 완전히 별개의 파일(해당 .lnk 의 실제 파일도 가지고 있는)이 따로 존재하고, 이러한 .lnk 포맷은 윈도우의 익스플로러 쉘에서 지정된 파일로 이동을 시켜주는 하나의 파일 형식일 뿐입니다. 하지만 지금 이야기하고 있는 링크에 대한 링크는 윈도우가 아닌 파일 시스템 차원에서 연결된 것이며, 이렇게 생성된 파일은 그 자체로 윈도우나 프로그램에서 개별적인 파일처럼 취급이 됩니다.
간단하게 C:\ShinB.txt 파일에 대한 C:\WinTT.lnk 바로 가기(Shortcut)를 만들고, 이러한 바로 가기(Shortcut)를 익스플로러에서 실행하면 C:\ShinB.txt 파일이 열립니다. 하지만 C:\ShinB.txt 에 링크로 연결된 C:\WinTT.txt 는 그대로 C:\WinTT.txt 로 열립니다. 그리고 하드 링크와 같이 최종적으로 서로 동일한 실제 파일로 연결되기 때문에 C:\ShinB.txt 나 C:\WinTT.txt 둘 중에 아무 파일로 접근하여 내용을 수정하면, 다른 파일에도 동시에 수정된 내용이 적용되는 것이다.

 

반응형

반응형

Windows 10에서의 ShellBags

Win10 1903 버전부터 Shellbags에는 nodeslot이라는 번호만 기록하고 데이터는 ShellbagMRU에 저장. 분석 시 두 개를 연계하여 분석해야 함

 

ShellBag/ShellBagMRU 포렌식적 의미

  • 존재하는 폴더의 삭제/덮어쓰기에 대한 증거 추적
  • Explorer 통한 폴더 접근에 대한 MAC 타임 추적
  • 사용자가 특정 폴더에 접근한 시간
  • Item TypeHidden Folder인 것이 존재한다면 Hidden Folder에 대한 존재 여부를 확인할 수 있다.
  • Network Drive External Device 폴더 접근 이력 조회(정보 유출 조사)

 현재 삭제된 디렉토리에 대한 열람 및 접근 등의 과거 행위도 남아 있으므로 포렌식 관점에서 중요한 의미가 있다.

  

셀백 분석에서 바탕화면(DeskTop Folder)은 폴더 내 파일까지 분석 및 조회가 된다. 또한 압축 파일도 분석된다.

압축 파일을 압축 해제할려면 어딘가 대상 폴더가 있어야 하기 때문으로 해석된다.

 

hive 위치

Windows XP

  • NTUSER.DAT\Software\Microsoft\Windows\Shell
  • NTUSER.DAT\Software\Microsoft\Windows\ShellNoRoam
  • NTUSER.DAT\Software\Microsoft\Windows\StreamMRU

 Windows 7

  • NTUSER.DAT\Software\Microsoft\Windows\Shell
  • UsrClass.dat\Local Settings\Software\Microsoft\Windows\Shell

  sbag util 조사하는 레지스트리 하위 값은 다음과 같다.

  • NTUSER.DAT\Software\Microsoft\Windows\Shell\BagMRU
  • NTUSER.DAT\Software\Microsoft\Windows\Shell\Bags
  • NTUSER.DAT\Software\Microsoft\Windows\ShellNoRoam\BagMRU
  • NTUSER.DAT\Software\Microsoft\Windows\ShellNoRoam\Bags
  • UsrClass.DAT\Local Settings\Software\Microsoft\Windows\Shell\BagMRU
  • UsrClass.DAT\Local Settings\Software\Microsoft\Windows\Shell\Bags
  • UsrClass.DAT\Local Settings\Software\Microsoft\Windows\ShellNoRoam\BagMRU
  • UsrClass.DAT\Local Settings\Software\Microsoft\Windows\ShellNoRoam\Bags 

 Shellbag item Type

분석 도구

demo 버전일 경우일부 데이터는 Full 내용으로 보이지 않을  있다시간변환에 대한 옵션이 없기 때문에

디폴트인 UTC 기준으로 데이터가 정리된다.

 

sbag64

hive 위치 확인

E:\InstallFiles\Forensic\sbag64.v.0.48.win>sbag64.exe -livehives

Valid license can't be found, contact info@tzworks.net to purchase a commercial  license.

 

실행

C:\>sbag64 -csv c:\users\administrator\ntuser.dat > c:\ntuser_sbag.csv

 

결과

Bag Number: "Bags" subkey 식별자

Registry key last write time:  폴더 최초 접근 시간 혹은 마지막으로 참조된 시간

Folder name

Full path

Embedded creation date / time: BagMRU Key값이 만들어진 시간

Embedded modify date / time: BagMRU Key값이 수정된 시간

Embedded access date / time: BagMRU Key값이 접근된 시간

 

Eric Zimmerman_s tools

ZIP 파일 외 일반 파일도 7개 분석됨 (?)

 

원격폴더 접속도 보인다 : "Nerwork Location" Shell Type값을 가진다.

 

shellbag_analyzer_cleaner

Type 보면 "Old/deleted Folder", "Folders on Network/External Device"도 있다. 또한 탐색기에서의 이동 뿐만 아니라 CMD CD명령으로 이동한 폴더도 표시된다

(2020-06-05) 테스트 결과 압축파일이나 바탕화면 내 파일 접근해도 안보임

원격폴더 접속도 보인다 : "Folders on Network / External Device" Shell Type값을 가진다.

 

Windows Shellbag forensics in Depth

Windows ShellBag Forensics in Depth.pdf
1.74MB

 

반응형

반응형

취약점, 위협과 위험의 차이

취약점(Vulnerability)
SW나 HW의  설계구조적, 생산적(SW구현포함), 관리적, 운영적 관점에서의 결함이나 허점

 

위협(Threats)
사람의 행위를 포함한 위험을 초래할 수 있는 직간접적  원인

위험(Risk)
내외부  위협으로 인해 발생할 수 있는 자산의  피해   

예) 권한을 넘어선 정보 열람을 통한 주요 정보 유출

 

웹 어플이케이션에  패스워드 에이징 즉 패스워드  길이 제한이나  특수문자, 영숫자 조합 관리 기능이 없다 : 취약점
사용자가  간단한 패스워드를 입력할  수 있다 : 위협
위로 인해 어 패스워드 유추가 쉽고 패스워드  유출이나 Brute Force, Password Guessing 공격으로 정보유출이나 서비스  중지 발생 : 위험

 

자산(Assets)
조직의 활동을 위한 또는 활동에 관여되는 가치를 가진 모든 유무형의 보호 대상

 

위험관리(Risk Management)
위협으로부터의 발생할 수 있는 피해인 위험에 대해 대비하고 대응, 관리하기 위한 일련의 과정

위협은 모든 자산에 대해 현실적으로 다양한 이유로 취약점이 존재하지 않을 수는 없으므로 이를 통해 발생할 수 있는 위험을 수용 가능한 수준으로 감소시키고 유지하고자 하는 것이 위험관리의 목적

 

위험관리 절차
자산 분석 -> 자산 분류 -> 위험 식별 -> 위험 측정 -> 위험 산출 -> 위험 조치 -> 위험 수용
     └ - - - - - - - - 위험 분석 - - - - - - - - ┘               └ - - - - 위험 평가 - - - - ┘

 

위험분석

정의

자산별로 위협으로부터 발생할 수 있는 위험의 유형이나 피해정도(규모)를 파악하는 것

 

목적

위험을 분석해야 대응책 즉 보안요구사항을 알 수 있고 이를 바탕으로 보안요구사항을 충족하는 정보보호대책을

수립할 수 있며 이러한 대책을 SW나 HW적으로 적용하여 보안위험을 감소시킬 수 있다.

 

방법

기본통제접근법

자산 유형별로 기본 베이스라인(체크 리스트)를 작성하고 이에 기반하여 위험을 분석

장점

시간과 비용 절감

단점

전문가나 경력이 많은 사람에 의해 자산 구성요소나 환경변화에 따른 주기적 체크리스트 업데이트 필요

누락이나 잘못된 정보에 의해 평가가 적절치 못할 경우 발생

 

비정형 접근법

구체적인 방법론 보다 경험자의 경험에 기반하여 위험을 분석

장점

시간과 비용 절감

단점

새로운 유형의 위험이나 경력이 부족한 부분의 위험분석은 적절하게 대응이 불가

소규모 조직에 적합하고 규모가 크거나 자산이 많은 경우 적용의 어려움

경험이 적은 사람이 진행할 경우 적절한 위험 식별이 어려움

 

상세 위험분석

구조적인 위험분석 방법론에 근거하여 자산식별 및 분류, 취약점 분석, 위험 분석을 단계별로 구체적으로 수행

장점

보안컨설팅에서 가장 많이 사용됨

자산별로 구체적으로 위험을 분석하므로 가장 적절한 대응책 수립 가능

보안 화면 변화에 가장 적절하고 유연하게 대응

단점

시간과 비용이 많이 듬

구조적인 위험분석 방법론을 잘 이해하고 있는 인적자원이 필요

 

위험조치(위험대응전략)

정의

자산 현황을 파악하고 자산을 유형별로 식별, 분류한 후 자산별로 위험을 분석하여 적절한 보안요구사항을 도출한 후

정보보호대책을 수립, 적용하여 위험을 수용가능한 수준으로 감소, 유지하는 것

 

 

 

반응형

반응형


간혹 다운로드된 파일을 어디에서 다운로드 받은건지 알고 싶을때가 있다.

웹 브라우져 이력을 분석하면 되지만 간단하게 알 수 있는 방법을 고민하다가 찾아낸 자료

Zone.Identifier 를 이용하면 된다.

 

네이버 클라우드에서 파일 다운로드

CMD에서 Zone.Identifier 확인

F:\temp>more < 캘빈클라인가방앞.JPG:Zone.Identifier

[ZoneTransfer]

ZoneId=3

ReferrerUrl=https://cloud.naver.com/

HostUrl=https://files.cloud.naver.com/file/download.api?resourceKey=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

 

F:\temp>more < 인천공항주차대행안전주차.pdf:zone.identifier

[ZoneTransfer]

ZoneId=3

ReferrerUrl=https://cloud.naver.com/

HostUrl=https://files.cloud.naver.com/file/download.api?resourceKey=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

 

주의

OS 로컬 보안 설정이나 어플리케이션에 따라 Zone.Identifier ADS가 생성되지 않는 경우도 있다.

반응형

반응형

유용한 명령어 및 스크립트

 

scan these directories for items of interest e.g. unusual exe, dll, bat, lnk etc files with:

dir /s /b %localappdata%\*.exe | findstr /e .exe
dir /s /b %appdata%\*.exe | findstr /e .exe
dir /s /b %localappdata%\*.dll | findstr /e .dll
dir /s /b %appdata%\*.dll | findstr /e .dll
dir /s /b %localappdata%\*.bat | findstr /e .bat
dir /s /b "%appdata%\Microsoft\Windows\Start Menu\Programs\Startup\" | findstr /e .lnk
dir /s /b "C:\Users\Public\" | findstr /e .exe
dir /s /b "C:\Users\Public\" | findstr /e .lnk
dir /s /b "C:\Users\Public\" | findstr /e .dll
dir /s /b "C:\Users\Public\" | findstr /e .bat

 

Scan for malware with Windows Defender
"%ProgramFiles%\Windows Defender\MpCmdRun.exe" -Scan -ScanType 1
"%ProgramFiles%\Windows Defender\MpCmdRun.exe" -Scan -ScanType 2
"%ProgramFiles%\Windows Defender\MpCmdRun.exe" -Scan -ScanType 3 -File C:\Users\[username]\AppData\Local\Temp

 

Check running executables for malware via VirusTotal
PS F:\temp> foreach ($process in Get-WmiObject win32_process | where {$_.ExecutablePath -notlike ""}) {Invoke-RestMethod -Method 'POST' -Uri 'https://www.virustotal.com/vtapi/v2/file/report' -Body @{ resource =(Get-FileHash $process.ExecutablePath | select Hash -ExpandProperty Hash); apikey = "바이러스토탈 API Key"}}

 

바이러스토탈은 원래 유료이며 무료는 분석(조회) 건수 제한이 있습니다.

 

List of IPV4 addresses who have connected (RDP)
Get-WinEvent -Log 'Microsoft-Windows-TerminalServices-LocalSessionManager/Operational' | select -exp Properties | where {$_.Value -like '*.*.*.*' } | sort Value -u

 

List Alternate Data Streams in current Dir and view them
gi * -s *
gc [FILENAME] -s [ADSNAME]

 

Locate BITSAdmin Persistence
bitsadmin /list /allusers /verbose

 

Find files without extensions
Get-ChildItem -Path C:\Users\[user]\AppData -Recurse -Exclude *.* -File -Force -ea SilentlyContinue

 

Obtain hash of unsigned or invalid DLLs currently loaded by processes
$A=$(foreach ($dll in gps|select -ExpandProperty modules -ea ig){Get-AuthenticodeSignature $dll.FileName |Where-Object Status -NE "Valid"|Select Path});$B=$(foreach ($dll in $A){Get-FileHash $dll.Path| select Hash -ExpandProperty Hash})|Sort-Object| Get-Unique;$B

 

Obtain unsigned DLL information loaded by processes
listdlls -u

 

Check all Appdata files for unsigned or invalid executables
Get-ChildItem -Recurse $env:APPDATA\..\*.exe -ea ig| ForEach-object {Get-AuthenticodeSignature $_ -ea ig} | Where-Object {$_.status -ine "Valid"}|Select Status,Path

 

Find executables and scripts in Path directories ($env:Path)
Get-Command * -Type Application | FT -AutoSize
Get-Command -Name * | FL FileVersionInfo

 

Find files created/written based on date date
Get-ChildItem C:\ -recurse -ea SilentlyContinue -force | where-object { $_.CreationTime.Date -match "12/25/2014"}
Get-ChildItem C:\ -recurse -ea SilentlyContinue -force | where-object { $_.LastWriteTime -match "12/25/2014"}
Get-ChildItem C:\ -recurse -ea SilentlyContinue -force | where-object { $_.CreationTime.Hour -gt 2 -and $_.CreationTime.Hour -lt 15}

 

USN Journal (any changes to NTFS volume)
c:\>fsutil usn readjournal F: > f-usn.txt

반응형

반응형

Loki, Simple IOC and Incident Response Scanner 

 

사용법

F:\tool\malware\loki_0.30.6>F:\tool\malware\loki_0.30.6\loki.exe -h

IOC 및 Yara RuleSet 업데이트
F:\tool\malware\loki_0.30.6>loki-upgrader.exe

분석 수행
F:\tool\malware\loki_0.30.6>loki.exe -p f:\temp -a 1 --printall  --allreasons

탐지되면 탐지 이유도 알려준다. 간단하고 좋은 도구인 것 같다.

 

반응형

반응형

정보유출 흔적 조사

 

자료 저장 매체를 이용한 부분과 온라인을 이용한 부분으로 나누어 살펴본다. 

두 경우 모두 여러가지 아티팩트를 분석해서 시간적 연관성을 기반으로 수행한다.

 

자료 저장 매체 이용

1) 이동형 매체 사용 흔적

  대상 아티팩트 : 레지스트리/setupapi.log, setupapi.dev.log 파일/이벤트로그
  획득 정보 : 
시간 정보, 마운트 드라이브 정보


usb device view

usb Forensic Tracker

2) 1)에서 구한 USB 사용 시간 전후 파일 접근 이력

  대상 아티팩트 : 저널파일 / 로그파일 / $MFT 파일 / 최근 사용자 행위
  획득 정보 :  파일 정보

 

$MFT
F:\RawCopy>RawCopy64.exe /FileNamePath:c:0 /OutputPath:f:\temp\c-Dir

$LogFile
F:\RawCopy>RawCopy64.exe /FileNamePath:c:2 /OutputPath:f:\temp\c-Dir

$UsnJrnl
F:\ExtractUsnJrnl>ExtractUsnJrnl64.exe /DevicePath:C: /OutputPath:F:\temp\c-Dir

 

3) 드라이브 파일 복사, 이동 이력
  대상 아티팩트 : 저널파일 / 로그파일 / $MFT 파일 / ShellBag / Shellbag MRU
  획득 정보 :  파일 정보
. 특히 1)에서 구한 시간 및 드라이브로의 파일 이동/복사 분석

 

NTFS Log Tracker

Shellbag Analyzer

Last Activity View

특정 시간대 즉 USB 이용 시간대와 비슷한 시간대에 H 드라이브에 접근 했음을 알 수 있다.

 
4) 시간 전후 실행 프로그램 정보

  대상 아티팩트 : 프리패치분석, 프로그램 및 접근파일 정보 / AppCache / ShimCache
  획득 정보 :  응용 프로그램 정보

 

JumpList View

온라인 매체 이용

1) 웹 접속 이력 

  대상 아티팩트 : Web Cache / Chrome History / Last Activity View
  획득 정보 :  
시간 정보, 접속 URL

 

2) 정보 중 "mail" 문자열 포함 URL 분석 

  대상 아티팩트 : Web Cache / Chrome History / Last Activity View
  획득 정보 :  
시간 정보, 접속 URL

 

  웹 메일 통한 정보 유출 분석을 위한 메일 관련 웹 URL 파악

 

IE History View

Chrome History View

3) 정보 중 웹 하드, 클라우드 드라이브 문자열 포함 URL 분석 

  대상 아티팩트 : Web Cache / Chrome History / Last Activity View
  획득 정보 :  
시간 정보, 접속 URL

 

  웹 하드, 클라우드 저장소를 통한 정보 유출 분석을 위해 관련 웹 URL 파악

 

4) 특정 웹 접속 시간 전후 파일 접근 이력
   자료 저장 매체 이용 부분의 2)와 동일

 

Last Activity View

Jump List View


5) 대상 웹 접속 시간 전후 브라우저 캐쉬 분석

IE WebCache 분석
dir c:\webcache*.dat /s /w

tasklist | find /i "taskhost" 또는 tasklist | findstr /i /c:"taskhost"

taskkill /f /im "taskhostw.exe" /t 또는 taskkill /f /im "taskhostex.ext" /t 또는 taskkill /f /im "taskhost.ext" /t
WebCachev__.dat을 붙잡고 있는 부모 프로세스 제거

 

 xcopy /s /c /e /h /i /r /y "%localappdata%\Microsoft\Windows\Webcache\*.dat" C:\test
또는 

xcopy /s /c /e /h /i /r /y "c:\Users\chohb\AppData\Local\Microsoft\Windows\WebCache\*.dat" C:\test
WebCachev__.dat을 C드라이브로 복사

 

esentutl /mh WebCachev__.dat
파일이 Dirty Shutdown 상태인지 확인

 

esentutl /p WebCachev__.dat
Dirty Shutdown --> Clean Shutdown으로 변경

 

nirsoft사의 esedatabaseview나 ESEViewer로 확인

 

참고 : https://secuworld.tistory.com/33

반응형

반응형

Rekall을 이용한 Live Forensic

 

Rekall을 이용한 Live Forensic에는 아래와 같이 두 가지 모드가 있다.

 

API Access

장점  : OS별 프로파일이 필요없으며 실행 속도가 빠르다. 주로 프로세스, 파일시스템, WMI 분석

단점  : 지원 플러그인 부족.  멀웨어나 히든 프로세스 분석 등 심층 분석 불가. OS API가 제공되는 범위 내 분석

 

Memory Analysis

장점  : 지원 플러그인 충분.  멀웨어나 히든 프로세스 분석 등 심층 분석 가능

단점  : OS별 프로파일 필요 실행 속도가 느리다. 결정적으로 프로파일 문제가 다수 발생하여 거의 실행이 안됨

위의 경우 이미지 포렌식이 아닌 라이브 포렌식의 경우이다. 

API Access의 경우 Rekall Stand-Alone 버전을 가지고 몇 가지 유용한 분석 내용을 살펴보도록 한다.

 

F:\tool\forensic\Rekall-Standalone>rekal.exe --live API

플러그인 목록

[1] Live (API) 14:54:57> dir(plugins)    

아티팩트 리스트

[1] Live (API) 14:57:26> artifact_list

artifact_view

[1] Live (API) 14:58:42> artifact_view "WindowsAppInitDLLs"

artifact_collector 
[1] Live (API) 15:00:16> artifact_collector "WMILoggedOnUsers", output_path="f:\\temp"

f:\\temp 폴더에 artifacts%2fWMILoggedOnUsers.csv, artifacts%2fWMILoggedOnUsers.json 파일이 생김

 

프로세스 조회
[1] Live (API) 15:02:09> pslist?
file:            f:\tool\forensic\rekall-standalone\rekall\plugins\response\processes.py
Plugin:          APIPslist (pslist)
:                This is a Typed Plugin.
Positional Args:   pids: One or more pids of processes to select. (type: ArrayIntParser)
Keyword Args:
  proc_regex: A regex to select a process by name. (type: RegEx)
  verbosity:  An integer reflecting the amount of desired output: 0 = quiet, 10 = noisy. (type: IntParser)
Docstring:       A live pslist plugin using the APIs.
Link:            http://www.rekall-forensic.com/epydocs/rekall.plugins.response.processes.APIPslist-class.html

 

pslist 구조

[1] Live (API) 15:03:13> describe pslist, max_depth=2

실행 프로세스 목록

실행 명령줄 조회

파일 검색

파일 조회

시간은 TimeStamp 값으로 표시됨

 

특정 날짜 이후로 생성이나 변경된 파일

F:\>timestamptodate.exe 2 "2020-03-01 00:00:00"
1582988400.0

 

[1] Live (API) 12:30:27> select path.filename, path.st_mtime from glob(globs: "f:\\temp\\*") where path.st_mtime > 1582988400.0

File Mactime Timeline

select Path, Path.st_ino, Path.st_mode, Path.st_uid.uid, Path.st_gid.gid, Path.st_size, Path.st_atime as a, Path.st_mtime as m, Path.st_ctime as c from hash(paths: ( select path from glob(globs: "c:\\windows\\*.exe") ).path.filename, hash: "md5")

yara_scan

Search for all the binaries in Folders that contain the string "xxxxxx" in hex format

plugins.search('select * from file_yara(paths: (select path.filename from glob("F:\\Test\\MacroFiles\\*")).filename, 

binary_string: {str})', query_parameters=dict(str="http".encode("utf-16-le").encode("hex")))

일반 ASC가 아닌 문서 내부에서 특정 단어 검색, 내부 매크로 존재나 내용 확인 등에 유효

 

실행 파일에서 특정 문자열 검색
select * from file_yara( paths: (select path.filename from glob("c:\\windows\\*.exe")).filename, 

yara_expression: "rule r1 {strings: $a = \"CreateRemoteThread\" wide condition: any of them}")

악성코드들이 자주 호출하여 사용하는 API 등 검색에 유효

 

반응형

반응형

시스템 이상징후 판단 기준

 

동적 분석이 아닌 정적 분석에 의해 간단하고 빠르게 판단할 수 있는 전적으로 나름대로의 개인적인 기준을 정리해 봄

 

프로세스(실행 가능한 PE 포맷)

- OS 필수 프로세스와 동일한 경로에 위치하면서 파일명을 비교하여 유사율이 조직 내부 기준(%) 이상인 경우
- OS 필수 프로세스와 다른 경로에 위치하면서 파일명이 동일한 경우
- OS 필수 프로세스와 비교하여 실행된 프로세스 개수, 프로세스 실행 권한, 숨김, 실행경로, 부모 프로세스가
  기본 정보와 다를 경우

- OS 필수 프로세스와 동일한 경로에 위치하면서 이름더 같은데 실행 기본 사용자가 다른 것
- 속성이 숨김일 경우. 특히 시작 프로그램에 등록되어 있으면서 숨김 속성일 경우

- Code Siging/디지털 서명 이 안되어 있을 경우

- Code Signing/디지털 서명 이 되어 있지만 패커 정보(패킹주체, 회사)가 없는 경우

- 악성코드들이 주로 사용하는 API를 사용하는 경우. 프로세스가 로드하는 DLL이나 호출하는 API가 악성코드가 자주
  또는 반드시 사용하는 API를 호출

- VirusTotal 검색 또는 Open Source ClamAV 검색

- 실행 후 삭제되었거나 원격으로 실행된 프로세스 (프리패치는 존재하지만 실행파일은 존재하지 않는 경우)

- ADS(Alternative Data Stream) 형태로 존재하는 실행 가능한 포맷(exe, dll, sys, scr, ocx)의 파일
- 로드된 DLL 또는 윈도우즈 폴더 내 DLL 목록에서 버전이 없는 파일이 있는 경우(추가로 DLL을 로드하여 사용하는
  프로세스 정보)

- 부모 프로세스가 winword.exe, excel.exe, powerpoint.exe 이면서 자식 프로세스가 cmd.exe, wscript.exe,

   powershell.exe이면 굉장히 위험


OS 기본 주요 프로세스 예제

smss.exe 1) 프로세스 실행 경로 : C:\Windows\System32
2) 부모프로세스명 : System
3) 실행허용 개수 : 1
4) 실행권한 : System
winint.exe 1) 프로세스 실행 경로 : C:\Windows\System32
2) 부모프로세스명 : 없음
3) 실행허용 개수 : 1
4) 실행권한 : System
윈7 - : taskhost.exe
윈8 : taskhostex.exe
윈10 : taskhostw.exe
1) 프로세스 실행 경로 : C:\Windows\System32
2) 부모프로세스명 : 윈7 이하 : services.exe / 윈8 이상 : svchost.exe
3) 실행 허용 개수 : Login user count
4) 실행권한 : User
lsass.exe 1) 프로세스 실행 경로 : C:\Windows\System32
2) 부모프로세스명 : wininit.exe
3) 실행허용 개수 : 1
4) 실행권한 : System
winlogon.exe 1) 프로세스 실행 경로 : C:\Windows\System32
2) 부모프로세스명 : 없음
3) 실행허용 개수 : Login user count
4) 실행권한 : System
csrss.exe 1) 프로세스 실행 경로 : C:\Windows\System32
2) 부모프로세스명 : 없음
3) 실행허용 개수 : xp - Login user count / vista이상 - Login user count + 1
4) 실행권한 : System
lsm.exe
( Xp만 체크한다 )
1) 프로세스 실행 경로 : C:\Windows\System32
2) 부모프로세스명 : wininit.exe
3) 실행허용 개수 : 1
4) 실행권한 : System
expolorer.exe 1) 프로세스 실행 경로 : C:\Windows\
2) 부모프로세스명 : 없음
3) 실행허용 개수 : Login user count
4) 실행권한 : User
iexpolorer.exe 1) 프로세스 실행 경로 : C:\Program Files\Internet Explorer or C:\Program Files (x86)\Internet Explorer
2) 부모프로세스명 : explorer.exe
3) 실행허용 개수 : Login user count
4) 실행권한 : User

네트워트 (IP나 웹 URL)

- 외부로 접속된 IP/URL 주소가 악성코드 유포지 목록에 포함된 IP 주소인 경우(Open Source DataSet 이용)

   http://www.malware-domains.com/files/justdomains.zip
   https://ransomwaretracker.abuse.ch/downloads/RW_DOMBL.txt
- 웹 평판과 연동

- VirusTotal 검색

- Hosts, Hosts.ics 파일에 임의로 등록된 /IPURL

 

일반 파일

- 내부에 실행 가능한 스크립트를 가진 매크로 존재 (특히 다운로드된 파일)

- 숨긴 파일이나 숨긴 폴더 내에 존재하는 파일

- 일반 폴더가 아닌 특수 목적의 시스템 폴더에 존재하는 파일

- Hosts, Hosts.ics 파일이 사용자 의도와 상관없이 변경된 경우

 

서비스나 자동 실행 파일

- 최근에 등록되었거나 자동실행 여부 등 속성이 변경된 경우

- 서비스 실행 파일이나 로드하는 DLL이 최근에 접근일자가 변경된 경우

 

반응형

'DFIR > 시스템 분석' 카테고리의 다른 글

시스템 이상징후 기초 분석  (0) 2020.03.12

반응형

악성코드가 자주 사용하는 레지스트리 경로

 

아래에 언급된 레지스트리는 OS 유형이나 버젼별로 또는 OS 업데이트에 따라 가변적이므로 항상 최신의 정보를 인지할 수 있도록 해야 한다.

 

문서를 더블 클릭할 때마다 자동으로 실행
HKCR\Wordpad.Document.[version]\shell\open\command 

 

F:\Temp>reg query HKEY_CLASSES_ROOT\Wordpad.Document.1\shell\open\command
HKEY_CLASSES_ROOT\Wordpad.Document.1\shell\open\command
    (기본값)    REG_EXPAND_SZ    "%ProgramFiles%\Windows NT\Accessories\WORDPAD.EXE" "%1"

 

cmd.exe를 /d 옵션없이 실행하면 위 경로에 설정된 실행 파일들 자동 실행
HKLM\SOFTWARE\Microsoft\Command Processor\AutoRun
HKEY_CURRENT_USER\Software\Microsoft\Command Processor\AutoRun


F:\temp>reg query "HKLM\SOFTWARE\Microsoft\Command Processor"  /v AutoRun
F:\temp>reg query "HKEY_CURRENT_USER\Software\Microsoft\Command Processor" /v AutoRun

 

기타 설치 중 설정이나 사용자 추가에 의한 자동실행 관련
OS 부팅 시 자동 실행
F:\temp>reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Run"
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
    TrustNetCert    REG_SZ    C:\Program Files (x86)\UNETsystem\TrustNET\NPH\TrustNetCert.exe
    MagicMRS    REG_SZ    C:\Program Files (x86)\DreamSecurity\SmartMobileSign\Launcher.exe
    CrossEXService    REG_SZ    C:\Program Files (x86)\iniLINE\CrossEX\crossex\CrossEXService.exe


HKU\SID\Software\Microsoft\Windows NT\CurrentVersion\Windows 

HKCU\Software\Microsoft\Windows NT\CurrentVersion\Windows
Load : 시스템이 시작할 때 등록된 경로에 있는 파일이 자동으로 동작

 

HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
HKU\SID\Software\Microsoft\Windows NT\CurrentVersion\Winlogon 
HKCU\Software\Microsoft\Windows NT\CurrentVersion\Winlogon

사용자가 로그인 시 등록된 경로에 있는 파일이 자동으로 동작

 

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Run
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run 
Run 키에 등록된 파일은 Windows OS가 시작할 때 자동으로 실행

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\RunOnce

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce 

RunOnce 키에 등록된 파일은 Windows OS가 시작할 때 자동으로 실행

 

GUI Application이 시작될 때마다 DLL을 memory 내로 Load함 

현재 로그온 한 세션에서 각 어플리케이션에 의해서 로드가 되는 DLL 항목이 지정된다.
HKLM\Software\Microsoft\Windows NT\CurrentVersion\Windows
F:\temp>reg query "HKLM\Software\Microsoft\Windows NT\CurrentVersion\Windows" /v AppInit_DLLs

 

Winlogon Notification Package
Winlogon 이벤트 핸들러를 익스포트하고 있는 dll
Winlogon은 사용자의 시스템 로그온 같은 특정이벤트 발생 시 notification package 에서 해당 이벤트의 정보를 제공하는 익스포트한 핸들러를 자동 수행한다.
HKLM\Software\Microsoft\WindowsNT\CurrentVersion\Winlogon\Notify
F:\temp>reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v Notify

 

시스템이벤트 연결 실행 

사용자 로그온/로그오프, 화면보호기 시작 등 이벤트에 외부 기능을 차단하는 알림  
HKLM\Software\Policies\Microsoft\Windows\Control Panel\Desktop\

 

탐색기에 연결되어 각 경우마다 자동 실행
탐색기 Explorer.exe에 연결된 쉘(Shell) 확장, BHO(Browser Helper Objects), 익스플로러 툴바(Explorer Toolbar) 목록을
레지스트리의 아래 경로에서 내용 확인

HKLM\Software\Microsoft\Windows\CurrentVersion\ShellServiceObjectDelayLoad\
HKLM\Software\Microsoft\Windows\CurrentVersion\Explorer\ShellServiceObjects\
HKLM\Software\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\
HKLM\Software\Classes\Drive\ShellEx\ContextMenuHandlers\
HKLM\Software\Classes\Drive\ShellEx\PropertySheetHandlers\
HKLM\Software\Classes\Drive\ShellEx\DragDropHandlers\
HKLM\Software\Classes\Drive\ShellEx\CopyHookHandlers\
HKLM\Software\Classes\Folder\ShellEx\ContextMenuHandlers\
HKLM\Software\Classes\Folder\ShellEx\PropertySheetHandlers\
HKLM\Software\Classes\Folder\ShellEx\DragDropHandlers\
HKLM\Software\Classes\Folder\ShellEx\CopyHookHandlers\
HKLM\Software\Classes\Directory\ShellEx\ContextMenuHandlers\
HKLM\Software\Classes\Directory\ShellEx\PropertySheetHandlers\
HKLM\Software\Classes\Directory\ShellEx\DragDropHandlers\
HKLM\Software\Classes\Directory\ShellEx\CopyHookHandlers\
HKLM\Software\Classes\Directory\Background\ShellEx\ContextMenuHandlers\
HKLM\Software\Classes\Directory\Background\ShellEx\PropertySheetHandlers\
HKLM\Software\Classes\Directory\Background\ShellEx\DragDropHandlers\
HKLM\Software\Classes\Directory\Background\ShellEx\CopyHookHandlers\


응용프로그램 연결 실행

응용프로그램을 실행시키면 레지스트리의 Image File Execution Options 키를 확인합니다. 만약 하위 키 값에 실행하려는 이미지가 존재하면 Debugger 값을 참조하여 해당 값에 연결되어 있는 이미지를 먼저 실행합니다.

HKLM\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options

F:\temp>reg query "HKLM\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options"
F:\temp>reg query "HKLM\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options" /v ProcName

F:\temp>reg query "HKLM\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options" /v Debugger

일반적인 AutoRun 경로

HKLM\Software\Microsoft\Windows\CurrentVersion\policies\Explorer\Run
HKLM\Software\Microsoft\Windows\CurrentVersion\Run
HKLM\Software\Microsoft\Windows\CurrentVersion\Runonce
HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnceEx
HKLM\Software\Microsoft\Windows\CurrentVersion\RunServices
HKLM\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce
HKCU\Software\Microsoft\Windows NT\CurrentVersion\Windows\Run
HKCU\Software\Microsoft\Windows\CurrentVersion\Run
HKCU\Software\Microsoft\Windows\CurrentVersion\RunOnce
HKCU\Software\Microsoft\Windows\CurrentVersion\RunServices
HKCU\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce
(ProfilePath)\Start Menu\Programs\Startup

 

SharedTaskScheduler
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\SharedTask
프로그램을 자동으로 시작 시킬 수 있는 레지스트리 중 하나. 대부분의 사용자가 사용하지 않는 기능이므로

사용되고 있다면 의심해볼 만 하다. Windows 의 Shell 프로그램인 Explorer.exe 프로세스가 로드되자마자 
특정 레지스트리 항목에 지정된 dll 들을 참조하여 불러오는 형태이다. 
적용되는 시스템 : Windows Vista, XP, 2000, NT

 

Shell\Open\Command
HKCR\exefile\shell\open\command
HKCR\batfile\shell\open\command 
HKCR\comfile\shell\open\command


default value가 “.%1. %*” 인데 이 값을 “파일명 "%1" %*” 과 같이 수정된 경우 프로그램을 숨겨 자동실행하고자 함이다.
F:\temp>reg query "HKCR\exefile\shell\open\command"
HKEY_CLASSES_ROOT\exefile\shell\open\command
    (기본값)    REG_SZ    "%1" %*
    IsolatedCommand    REG_SZ    "%1" %*

ShellServiceObjectDelayLoad(SSODL)
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\ShellServiceObjectDelayLoad


Undocumented 된 Windows 자동 실행방법 중 하나이다. Windows 의 Shell 프로그램인 Explorer.exe 프로세스가 

시작되면 레지스트리 항목에 지정된 dll 들을 참조하여 불러온다.

SYTEM.INI / WIN.INI File
악성코드는 해당 파일 및 항목들을 조작하여 Windows 부팅시 악성코드가 자동 시작되도록 만든다


SYSTEM.INI 파일

HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon 

 

사용자가 시스템에 로그인 한 후 실행되어야 하는 프로그램을 지정. 디폴트는 Userinit.exe 로 이 프로그램은 사용자의 

실행환경을 설정하고 바로 종료된다. 따라서 Userinit.exe 가 부팅 이후 상당한 시간이 지났는데도 실행중인 경우 의심해 보아야 한다. Userinit.exe 외에 추가적으로 실행한 프로그램을 등록할 수 있다.

 

SYSTEM.INI 파일 : 악성코드는 Shell 혹은 Userinit 값의 데이터를 조작하여 부팅 시 자동실행되도록 한다.
예를 들어, Shell value는 디폴트로 Explorer.exe가 세팅되어 있으므로  Shell=Explorer.exe %system%\System32.exe 와 같이 수정하여 시스템 재부팅 후 로그인시에 자동 실행되도록 할 수 있다


F:\temp>reg query "HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon" /v shell
    shell    REG_SZ    explorer.exe

F:\temp>reg query "HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon" /v userinit
    userinit    REG_SZ    C:\Windows\system32\userinit.exe,


WIN.INI 파일

HKCU\Software\Microsoft\Windows NT\CurrentVersion\Windows
악성코드는 Load 혹은 Run 값의 데이터를 조작하여 부팅 시 자동실행되도록 할 수 있다.

F:\temp>reg query "HKCU\Software\Microsoft\Windows NT\CurrentVersion\Windows" /v load [Run]

 

ShellExecute Hook
Windows Explorer(ShellExecute)을 이용하여 프로그램을 실행하는 경우 ShellExecuteHooks 에 등록된 모듈이 먼저 실행된다.
HKLM\Software\Microsoft\Windows\CurrentVersion\Explorer\ShellExecuteHooks

 

인터넷 브라우저 관련

IE확장기능(BHO)
BHO가 자동으로 로드하는 DLL 확인
HKLM\Software\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects\


F:\temp>reg query "HKLM\Software\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects" /s
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects\{199921A6-940E-420A-B063-B12A146EFB7C}
    (기본값)    REG_SZ    UplusNetDriveDsShell

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects\{31D09BA0-12F5-4CCE-BE8A-2923E76605DA}
    (기본값)    REG_SZ    Skype for Business Click to Call BHO
    NoExplorer    REG_SZ    1

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects\{D0498E0A-45B7-42AE-A9AA-ABA463DBD3BF}
    (기본값)    REG_SZ
    NoInternetExplorer    REG_SZ    1

위에서 matching이 되는 Registry Key는 따로 등록에 되어 있는데 위치는 다음과 같으며 제조 회사, 로드 되는 DLL,
DLL 의 위치 등이 등록되어 있다.
\HKCR\CLSID
\HKCR\BHO

기타 BHO

HKLM\Software\Microsoft\Internet Explorer\Extensions
HKLM\Software\Microsoft\Internet Explorer\Toolbar
HKLM\Software\Microsoft\Internet Explorer\Explorer Bars
HKLM\Software\Microsoft\Internet Explorer\UrlSearchHooks


IE Start page / search page / search bar / search assistant URL
IE 의 시작페이지와 검색도우미(search assistant)에 관련된 항목. 이 곳에 심겨있는 unknown 키의 경우 악성코드라기

보다는 Adware일 가능성이 많다.  라인 마지막 부분의 웹주소가 사용자가 설정하지 않았거나 의심스러운 것이면 확인

HKCU\Software\Microsoft\Internet Explorer\Main
HKCU\Software\Microsoft\Internet Explorer\Search
HKCU\Software\Microsoft\Internet Explorer\SearchURL
HKCU\Software\Microsoft\Internet Explorer\Toolbar
HKLM\SOFTWARE\Microsoft\Internet Explorer\Search
HKLM\SOFTWARE\Microsoft\Internet Explorer\SearchURL

Default URL Searchhook
URL Search Hook에 관련된 항목. URL Search Hook 은 사용자가 웹 브라우저의 주소 창에 http://, ftp:// 같은 정확한
프로토콜을 표시하지 않고 웹주소만 입력한 경우에 사용된다. 웹브라우져가 정확한 프로토콜을 찾아내는데 실패하면 URL Search Hook 객체를 호출한다. 
기본값은 {CFBFAE00-17A6-11D0-99CB-00C04FD64497}라는 CLSID(클래스 아이디)가 기본값(Default Value)으로 설정되어 있다. 대다수의 IE Hijacker 는 사용자가 프로토콜을 입력하지 않은 상태로 url 을 입력핛 경우 공격자의 사이트로 리다이렉트 시키는 방법을 통해 악성코드를 다운받게 한다.
HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\URLSearchHooks

 

Extra Items in IE right-click menu
IE 에서 마우스 우클릭했을 때 보여지는 확장항목 레지스트리이다. 각각의 서브키들은 메뉴 아이템들을 나타낸다. 
원하지 않는 것들은 지울 수 있다. 악성코드는 사용자가 해당항목을 클릭하도록 하여 악의적인 스크립트가 있는 페이지

를 실행하도록 할 수 있다. (참조 : http://support.microsoft.com/kb/177241/ko/)
HKCU\Software\Microsoft\Internet Explorer\MenuExt


IE나 Explorer가 실행될때마다 등록된 DLL 실행 
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers

 

악성코드가 은닉등을 위해 값을 변경할 수 있는 레지스트리

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\Hidden\SHOWALL

 : "Type" 이 빈칸으로 세팅됨 (원래 값은 “radio” 이다.)


HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced

: "ShowSuperHidden" 이 0 으로 세팅됨

 

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\HideFileExt

: "UncheckedValue" 가 1 로 세팅됨

 

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\Hidden\SHOWALL

: "CheckedValue" 가 0 으로 세팅됨

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\SuperHidden

: "UncheckedValue" 가 1 로 세팅됨

 

악성코드 선호 경로 (Malware Favorite Path) 
시스템에 유입되는 악성코드 중 바로 실행되어 목적9개인정보나 기밀정보 탈취, 악성코드 전사 배포 등)을 수행한 후
스스로 소멸하거나 장기적으로 은닉하면서 시스템을 모니터링하거나 다른 시스템으로 추가적인 침투를 수행하는 유형이 있다.

전자의 경우는 실행 이후 자가 삭제 등의 방법을 이용해 흔적을 삭제할 수 있지만, 후자의 경우는 목적을 달성할 때까지 최대한 시스템에 은닉하고 있어야 한다.  


후자의 경우 특정 조직에 타겟팅된 악성코드라면 사전에 조사를 마친 정보를 이용하거나 다운로더에 의해 최적화된 악성코드를 유입시키기 때문에 조직의 보안 시스템을 이용해 탐지하기는 매우 어렵다. 하지만 주기적이고 지속적인 2차공격은 조직 내부의 보안 정책과 조직의 망 구성 등에 따라 최소 1~2주에서 몇 달이 걸리기도 한다. 그 때문에 최적화된 악성코드도 시간이 지나면서 탐지될 가능성이 높아진다. 

악성코드를 은닉하는 방법은 루트킷 기법부터 슬랙 영역 사용, 속성 변경, 파일명 변경, 파일 숨기기 등 다양하지만 가장 기본적인 방법은 사용자가 자주 사용하지 않는 폴더를 이용하는 것이다. 사용자가 사용하지 않는 폴더는 AV의 실시간 감지의 대상이 되지 않기 때문에 정밀 검사를 수행하지 않는 이상 탐지될 위험이 적다. 물론, 최적화된 악성코드는 정밀 검사를 수행한다고 해도 탐지되기 어렵다. 

악성코드가 자주 위치하는 경로를 살펴보면 다음과 같다. 해당 경로는 악성코드의 존재 여부를 판단할 때 우선적으로 살펴볼 필요가 있으며, 일부 경로는 파일이 존재하는 것만으로도 악성코드의 존재 여부를 판단할 수 있기 때문에 모니터링 항목에 추가할 필요가 있다. 

시스템 폴더 
시스템 폴더는 윈도우의 주요 시스템 파일이 존재하는 곳으로 은닉을 위해 시스템 파일과 파일명을 유사하게 변경하거나 경로를 바꿔 저장한다. 

%SystemRoot%\ 

%SystemRoot%\system\ 
%SystemRoot%\system32\ 
%SystemRoot%\system32\ 
%SystemRoot%\system32\dllcache 
%SystemRoot%\system32\drivers 
%SystemRoot%\SysWOW64\ 
%SystemRoot%\SysWOW64\dllcache 
%SystemRoot%\SysWOW64\drivers 

SysWOW64는 64비트 시스템에서만 존재하는 폴더로 32비트와의 호환성을 위해 존재하는 폴더이다. “%SystemRoot%\system32\” 폴더에 64비트 시스템 파일이 위치한다면 “%SystemRoot%\SysWOW64\”에는 
32비트 시스템 파일이 위치한다. 따라서, 64비트 시스템에서는 2개의 폴더를 모두 조사할 필요가 있다. 

 

위 폴더에 시스템  파일과 유사한 이름으로 존재하거나  시스템  파일과 동일한 이름이지만 위 폴더가 아닌 다른 폴더에 존재하는 실행 가능한 포맷의 파일들 조사  

사용자 기본 폴더
윈도우 비스타 이후부터 사용자의 홈 폴더는 “%SystemDrive%\Users\” 하위에 존재한다. 해당 폴더 하위를 살펴보면 사용자의 홈 폴더 이외에도 기본 폴더인 “Public(공용)”, “Default”가 존재한다. “Public” 폴더에는 각 사용자가 공통으로 가지는 파일(공용 사진, 비디오 등)이 저장되어 있고, “Default” 폴더에는 새로운 사용자 생성 시 초기 구성(프로파일링)을

위한 파일이 저장되어 있다. 이런 폴더는 일반적으로 직접 들어가지 않기 때문에 공격자가 자주 은닉의 대상으로 삼는다. 또한 “Default”에 악성코드를 위치시키면 새로운 사용자가 생성될 때마다 자동 복사되기도 한다. 

%SystemDrive%\Users\Public\(%Public%) 
%SystemDrive%\Users\Default\   

사용자 데이터 폴더
사용자의 응용프로그램 데이터가 저장되는 데이터 폴더는 숨긴 폴더이기 때문에 폴더 속성을 변경해야만 나타난다.

데이터 폴더도 일반적으로는 들어가지 않기 때문에 해당 경로가 악성코드 은닉에 자주 사용된다. 

%UserProfile%\AppData\ 
%UserProfile%\AppData\Local\(%LocalAppData%) 
%UserProfile%\AppData\LocalLow\ 
%UserProfile%\AppData\Roaming\(%AppData%) 
%SystemDrive%\ProgramData\(%AllUsersProfile%) 
  
휴지통 폴더 
윈도우의 휴지통 폴더는 운영체제에 의해 보호되어 있기 때문에 폴더 속성을 변경해야만 나타난다. 휴지통 폴더 하위에는 각 사용자의 SID 폴더가 나타나도 SID 폴더에 각 사용자가 삭제한 파일이 위치한다. 바탕화면에서 살펴보는 휴지통 내용은 로그인 사용자의 SID 폴더 내용이다. 악성코드는 휴지통 하위 SID 폴더와 동일한 수준으로 자주 은닉한다. 

%SystemDrive%\$Recycle.Bin

 

휴지통은 휴지통이라는 특수한 어플리케이션만 접근이 가능하며 휴지통에 파일을 표시하는 네이밍 룰에 맞는 파일만 표시하기 때문에 일반 파일이나 실행 가능한 포맷의 파일들을 자주 숨겨 놓는다.  

시스템 볼륨 정보 폴더 
시스템 복원 지점이나 볼륨 섀도 복사본이 저장되는 시스템 볼륨 정보 폴더는 운영체제에 의해 보호되어 있다. 폴더 속성을 변경하면 폴더의 존재는 확인할 수 있지만 폴더 내용은 확인할 수 없다. 폴더 내용을 확인하기 위해서는 폴더의 접근 권한을 변경해주어야 한다. 따라서, 악성코드를 장기간 안전하게 은닉할 수 있고 일부 보안 솔루션은 이런 이유로 해당 폴더 하위를 진단하지 못하기 때문에 악성코드가 종종 사용한다. 

%SystemDrive%\System Volume Information\ 

임시 폴더 
임시 폴더는 공격자가 의도하기 보다는 악성코드가 시스템에 자동 유입되거나 드롭퍼가 드롭할 때 임시로 사용하는 경로로 악성코드의 복사본이 자주 존재한다. 

%UserProfile%\AppData\Local\Temp(%Temp%) 
%SystemRoot%\Temp\ 
%LocalAppData%\Microsoft\Windows\Temporary Internet Files\ 

웹 브라우저 다운로드 경로 
웹 브라우저의 기본 다운로드 경로나 액티브 X, 자바 애플릿 경로 등도 웹 브라우저를 이용하는 악성코드가 다운되어 있을 가능성이 많다. 

%UserProfile%\Downloads 
%UserProfile%\AppData\LocalLow\Sun\Java\Deployment\cache\6.0\# 
%SystemRoot\Downloaded Program Files(Active X) 

알려진 폴더 
조직마다 공통된 사양의 표준 PC를 사용하다보니 모든 사용자에게 공통으로 존재하는 폴더가 있다. 특정 조직을 공격할 때 이런 폴더들이 종종 사용되곤 한다. 

%SystemDrive%\Intel 
%SystemDrive%\HNC 
%SystemDrive%\JungUmData 
… … 

그 밖에 폴더 
앞서 언급한 폴더 이외에도 악성코드가 자주 위치하는 경로는 다음과 같다. 
%AppData%\Microsoft\Windows\Start Menu\Programs\Startup 
%SystemDrive%\Program Files\Common Files\(%CommonProgramFiles%) 
%SystemDrive%\Program Files (x86)\Common Files\(%CommonProgramFiles(x86)%) 
… … 

공격자는 언제든지 자기가 원하는 대로 악성코드의 위치를 변경시킬 수 있다. 따라서, 앞서 언급한 경로는 절대 지표보다는 참고 지표로 사용할 필요가 있다. 조직 내에서 감염 시스템을 분석했을 때 해당 악성코드가 은닉을 위해 특정 폴더를 사용한 경우, 해당 경로를 침해 지표로 만들어 추가적인 감염시스템을 찾는 용도로 사용할 수 있다. 

반응형

반응형

시스템 이상징후 기초 분석

 

분석을 위해 CMD 창을 띄워서 실행 결과를 표시할 때 만약 한글이 깨져 보인다면 CMD 출력 창을 UTF-8로 변경한다.

C:\Dropbox\DFIR\Window\SystemBasic\Tools\RegRipper>chcp -> 현재 코드페이지 

활성 코드 페이지: 949

C:\Dropbox\DFIR\Window\SystemBasic\Tools\RegRipper>chcp 65001  -> 코드페이지 변경

 

포렌식이나 침해사고 분석에서 시간은 매우 중요하다. 파일의 MAC Time이나 이벤트 발생 시간등과 직접적 연관이 있고

데이터 표현이나 분석에서 중요한 기법인 TimeLine 에서 시간은 기본이다. 수 많은 데이터에서 분석 범위를 한정하기 위해서도 이벤트 발생 시간으로 그 범위가 결정되어 보다 빠르고 정밀하게 분석이 가능하다.

 

표준 시간대(TimeSozne) 변경 여부
C:\>w32tm /tz
시간대: Current:TIME_ZONE_ID_UNKNOWN Bias: -540min (UTC=LocalTime+Bias)
[Standard Name:"대한민국 표준시" Bias:0min Date:(지정되지 않음)]
[Daylight Name:"대한민국 일광 절약 시간" Bias:-60min Date:(지정되지 않음)]

NTP 설정 및 활성화 여부
C::\>w32tm /dumpreg /subkey:parameters
값 이름                       값 종류                값 데이터
-------------------------------------------------------
NtpServer                  REG_SZ              time.windows.com,0x9
ServiceDll                 REG_EXPAND_SZ       %systemroot%\system32\w32time.dll
ServiceDllUnloadOnStop    REG_DWORD           1
ServiceMain                REG_SZ              SvchostEntry_W32Time
Type                        REG_SZ              NTP

서비스 상태
C:\>sc query w32time
SERVICE_NAME: w32time
        종류               : 30  WIN32
        상태              : 1  STOPPED
        WIN32_EXIT_CODE    : 0  (0x0)
        SERVICE_EXIT_CODE  : 0  (0x0)
        검사점         : 0x0
        WAIT_HINT          : 0x0

C:\>w32tm /query /status
윤초 조정: 3(동기화되지 않음)
계층: 0(지정되지 않음)
정밀도: -23(틱당 119.209ns)
루트 지연: 0.0000000s
루트 분산: 0.0000000s
참조 ID: 0x00000000(지정되지 않음)
마지막으로 동기화한 시간: 지정되지 않음    <- 주의깊게 살펴봐야 함
원본: Local CMOS Clock <- NTP가 내려가 있을 경우임. 
폴링 간격: 10(1024s)

 

또는

 

윤초 조정: 0(경고 없음)
계층: 4(보조 참조 - (S)NTP로 동기화됨)
정밀도: -23(틱당 119.209ns)
루트 지연: 0.1376417s
루트 분산: 7.9801694s
참조 ID: 0x28515E41(원본 IP:  40.81.94.65)
마지막으로 동기화한 시간: 2020-03-12 오후 3:14:52
원본: time.windows.com,0x9
폴링 간격: 12(4096s)


동기화 주기 
C:\>w32tm /query /configuration
......

MinPollInterval: 10 (로컬)
MaxPollInterval: 15 (로컬)
......
FrequencyCorrectRate: 4 (로컬)
......
UpdateInterval: 360000 (로컬)
......

OS 시간변경 여부

관련 이벤트 ID

security log : XP 이하 : 520, 577 / Vista 이후 : 4616

system log : XP 이하없음 / Vista 이후 : 1, 34

Application log : XP 이하없음 / Vista 이후 : 20000

F:\temp>LogParser.exe -stats:off -i:evt "select TimeGenerated, Message from security where EventID=4616"

F:\temp>LogParser.exe -stats:off -i:evt "select TimeGenerated, Message, strings from system where EventID=6013"

TimeGenerated       Message                Strings
------------------- ---------------------- --------------------------
2020-02-17 12:38:56 시스템 작동 시간은 15초입니다.     ||||15|60|-540 대한민국 표준시
2020-02-18 08:47:25 시스템 작동 시간은 11초입니다.     ||||11|60|-540 대한민국 표준시
2020-02-18 12:00:00 시스템 작동 시간은 11568초입니다.  ||||11568|60|-540 대한민국 표준시
2020-02-19 08:46:00 시스템 작동 시간은 9초입니다.      ||||9|60|-540 대한민국 표준시
2020-02-19 12:00:00 시스템 작동 시간은 11649초입니다.  ||||11649|60|-540 대한민국 표준시
2020-02-20 08:51:38 시스템 작동 시간은 9초입니다.      ||||9|60|-540 대한민국 표준시
2020-02-20 11:59:59 시스템 작동 시간은 11311초입니다.  ||||11311|60|-540 대한민국 표준시
2020-02-20 12:00:00 시스템 작동 시간은 11312초입니다.  ||||11312|60|-540 대한민국 표준시
2020-02-21 08:46:09 시스템 작동 시간은 10초입니다.     ||||10|60|-540 대한민국 표준시
2020-02-21 11:59:59 시스템 작동 시간은 11640초입니다.  ||||11640|60|-540 대한민국 표준시

 

F:\temp>wevtutil qe System /q:"*[System[(EventID=6013)]]" /e:Events /uni:false /f:text

……

Event[38]:

  Log Name: System

  Source: EventLog

  Date: 2020-03-11T08:43:17.827

  Event ID: 6013

  Task: N/A

  Level: 정보

  Opcode: N/A

  Keyword: 클래식

  User: N/A

  User Name: N/A

  Computer: chohb

  Description:

시스템 작동 시간은 14초입니다.

……

 

F:\temp>wevtutil qe /rd Security /q:"*[System[(EventID=520) or (EventID=4616)]]" /e:Events /uni:false /f:text
Event[17]:
  Log Name: Security
  Source: Microsoft-Windows-Security-Auditing
  Date: 2020-02-27T11:48:42.317
  Event ID: 4616
  Task: Security State Change
  Level: 정보
  Opcode: 정보
  Keyword: 감사 성공
  User: N/A
  User Name: N/A
  Computer: chohb
  Description:
시스템 시간이 변경되었습니다.

주체:
        보안 ID:                S-1-5-19
        계정 이름:              LOCAL SERVICE
        계정 도메인:            NT AUTHORITY
        로그온 ID:              0x3E5

프로세스 정보:
        프로세스 ID:    0x1584
        이름:           C:\Windows\System32\svchost.exe

이전 시간:              ‎2020‎-‎02‎-‎27T02:48:42.313630900Z
새 시간:                ‎2020‎-‎02‎-‎27T02:48:42.317348000Z

이 이벤트는 시스템 시간이 변경되면 생성됩니다. 시스템 권한으로 실행되는 Windows 시간 서비스가 정기적으로 시스템 시간을 변경하는 것은 정상입니다. 다른 시스템 시간 변경은 컴퓨터를 임의로 변경하려는 시도를 나타낼 수 있습니다.

 

Prefetch

C:\>dir %windir%\prefetch\rundll*.pf

2019-07-19  오후 01:17             4,467 RUNDLL32.EXE-65953559.pf

2019-07-19  오전 11:05             4,445 RUNDLL32.EXE-A3EE2396.pf

 

C:\>PECmd.exe -f c:\Windows\prefetch\RUNDLL32.EXE-65953559.pf | findstr /i /c:"timedate.cpl"

Rundll32-XXXXXXXXXX.pf 가 있고 해당 프리패치 내 참조 파일 목록에 timedate.cpl이 있으면 OS 시간 변경을 유출할 수 있지만 제어판을 열어도 동일 흔적이 남기 때문에 다른 흔적도 같이 살펴보아서 정상 시간 변경 여부를 판단해야 한다.

 

부팅 이력

최근 부팅 시간

F:\temp>uptime.exe 또는 F:\tool\forensic>net stats work
\\CHOHB has been up for: 0 day(s), 7 hour(s), 25 minute(s), 37 second(s)

F:\temp>systeminfo
시스템 부트 시간:        2020-03-12, 오전 8:41:50

 

부팅 이력

관련 이벤트 ID

F:\temp>wevtutil qe System /q:"*[System[(EventID=6005) or (EventID=6006) or (EventID=6008) or (EventID=6009)]]" /e:Events /uni:false /f:text 

Event[37]:
  Log Name: System
  Source: EventLog
  Date: 2020-03-01T18:51:20.926
  Event ID: 6005
  Task: N/A
  Level: 정보
  Opcode: N/A
  Keyword: 클래식
  User: N/A
  User Name: N/A
  Computer: chohb
  Description:
이벤트 로그 서비스가 시작되었습니다.

 

F:\>LogParser.exe -stats:off "select timegenerated, message from system where eventid = '6005' or eventid = 6006"
TimeGenerated       Message
------------------- ---------------------
2020-02-17 12:34:52 이벤트 로그 서비스가 시작되었습니다.
2020-02-17 12:38:29 이벤트 로그 서비스가 멈추었습니다.
2020-02-17 12:38:56 이벤트 로그 서비스가 시작되었습니다.
2020-02-17 18:02:34 이벤트 로그 서비스가 멈추었습니다.

F:\script\batch>wevtutil qe Security /q:"*[System[(EventID=4624) or (EventID=4627) ]]" /e:Events /uni:false /f:text
Event[87]:
  Log Name: Security
  Source: Microsoft-Windows-Security-Auditing
  Date: 2020-02-27T11:49:02.355
  Event ID: 4624
  Task: Logon
  Level: 정보
  Opcode: 정보
  Keyword: 감사 성공
  User: N/A
  User Name: N/A
  Computer: chohb
  Description:
계정이 성공적으로 로그온되었습니다.

주체:
        보안 ID:                S-1-5-18
        계정 이름:              CHOHB$
        계정 도메인:            WORKGROUP
        로그온 ID:              0x3E7

로그온 정보:
        로그온 유형:            5
        제한된 관리 모드:       -
        가상 계정:              아니요
        상승된 토큰:            예

 

공유 현황

의도치 않게 생성된 공유 폴더나 기존 공유 폴더의 접근 권한 변경 확인. admin$나 IPC$는 원격에서 해당 PC에
프로그램을 실행 시킬 수 있으므로 특히 주의가 필요하다. 

F:\temp>net share
F:\temp>wmic path win32_share get * /format:table

 

공유폴더 접근 권한

F:\temp>net share IPC$
공유 이름          IPC$
경로
설명               원격 IPC
최대 사용자 수     제한 없음
사용자
캐싱               문서의 수동 캐시
사용 권한          Everyone, FULL  <- Everyone, FULL이다

 

F:\temp>F:\tool\OS\accesschk.exe -h IPC$
IPC$
  RW BUILTIN\Administrators
  RW S-1-5-32-549
  RW BUILTIN\Backup Operators
  RW NT AUTHORITY\INTERACTIVE
  RW NT AUTHORITY\SERVICE
  RW NT AUTHORITY\BATCH

 

F:\temp>net share users
공유 이름          Users
경로               C:\Users
설명
최대 사용자 수     제한 없음
사용자
캐싱               문서의 수동 캐시
사용 권한          BUILTIN\Administrators, FULL
                   Everyone, FULL

F:\temp>F:\tool\OS\accesschk.exe -d C:\Users
C:\Users
  RW NT AUTHORITY\SYSTEM
  RW BUILTIN\Administrators
  R  BUILTIN\Users
  R  Everyone

 

AllShareFolderACL.zip
0.13MB

 

중요 폴더 권한

F:\temp>icacls C:\WINDOWS
C:\WINDOWS NT SERVICE\TrustedInstaller:(F)
           NT SERVICE\TrustedInstaller:(CI)(IO)(F)
           NT AUTHORITY\SYSTEM:(M)
           NT AUTHORITY\SYSTEM:(OI)(CI)(IO)(F)
           BUILTIN\Administrators:(M)
           BUILTIN\Administrators:(OI)(CI)(IO)(F)
           BUILTIN\Users:(RX)
           BUILTIN\Users:(OI)(CI)(IO)(GR,GE)
           CREATOR OWNER:(OI)(CI)(IO)(F)
           APPLICATION PACKAGE AUTHORITY\ALL APPLICATION PACKAGES:(RX)
           APPLICATION PACKAGE AUTHORITY\ALL APPLICATION PACKAGES:(OI)(CI)(IO)(GR,GE)
           APPLICATION PACKAGE AUTHORITY\모든 제한된 응용 프로그램 패키지:(RX)
           APPLICATION PACKAGE AUTHORITY\모든 제한된 응용 프로그램 패키지:(OI)(CI)(IO)(GR,GE)

F:\temp>F:\tool\OS\accesschk.exe -d C:\windows
C:\Windows
  RW NT SERVICE\TrustedInstaller
  RW NT AUTHORITY\SYSTEM
  RW BUILTIN\Administrators
  R  BUILTIN\Users
  R  APPLICATION PACKAGE AUTHORITY\ALL APPLICATION PACKAGES
  R  APPLICATION PACKAGE AUTHORITY\?? ??? ?? ???? ???

 

세션 연결 확인

C:\>net session /list

NBT(NetBIOS) Session

arp spoofing 시도 등 원격에서 호스트명을 알아내기 위해 주로 사용하는 명령어가 nbtstat -c
C:\>nbtstat -c
Wi-Fi:
노드 IpAddress: [10.102.10.72] 범위 ID: []
    캐시에 이름 없음

 

F:\script\batch>nbtstat -a 10.102.10.72
이더넷:
노드 IpAddress: [10.102.10.219] 범위 ID: []
           NetBIOS 원격 컴퓨터 이름 테이블
       이름               유형         상태
    ---------------------------------------------
    TEST           <00>  UNIQUE      등록됨
    TEST           <03>  UNIQUE      등록됨
    TEST           <20>  UNIQUE      등록됨
    ..__MSBROWSE__.<01>  GROUP       등록됨
    WORKGROUP      <00>  GROUP       등록됨
    WORKGROUP      <1D>  UNIQUE      등록됨
    WORKGROUP      <1E>  GROUP       등록됨
......

 

로그온-오프 내역

F:\script\batch>wevtutil qe Security /q:"*[System[(EventID=4624) or (EventID=4627) ]]" /e:Events /uni:false /f:text
Event[87]:
  Log Name: Security
  Source: Microsoft-Windows-Security-Auditing
  Date: 2020-02-27T11:49:02.355
  Event ID: 4624
  Task: Logon
  Level: 정보
  Opcode: 정보
  Keyword: 감사 성공
  User: N/A
  User Name: N/A
  Computer: chohb
  Description:
계정이 성공적으로 로그온되었습니다.

주체:
        보안 ID:                S-1-5-18
        계정 이름:              CHOHB$
        계정 도메인:            WORKGROUP
        로그온 ID:              0x3E7

로그온 정보:
        로그온 유형:            5
        제한된 관리 모드:       -
        가상 계정:              아니요
        상승된 토큰:            예


F:\script\batch>F:\tool\OS\NTLast.exe -f

 - No Records - Check to see if auditing is on

<참고> 시스템 감사 정책이 활성화되어 있어야 한다.

 

네트워크 관련

NIC 동작 모드

F:\script\batch>F:\tool\OS\promiscdetect.exe

 

Promiscuous Mode가 발견되면 Warning과 함께 알려준다.

 

현재 연결 내역

F:\script\batch>netstat -anb

 

라우팅 정보

F:\script\batch>netstat -r

<참고>

네트워크 데이터 흐름을 분석하기 위해 라우팅 정보를 수집해야 한다. 만약 게이트웨이 등이 내부 개인 PC등으로 설정되어 있으면 중계 컴퓨터로 사용될 수도 있다. "netstat -r" 명령어로 인터페이스 / 라우팅 테이블 정보를 확인한다. 특히 네트워크 인터페이스 정보를 분석해야 하는 이유는 MAC의 변조 유무를 파악하여 sniffer / spoofing 공격에 당하고 있는지를 파악할 수 있어야 한다.

 

DNSQuery

C:\>ipconfig /displaydns

ARP
F:\script\batch>arp -a[v]

 

<참고>

ARP Cache Table의 내용을 공격자의 의도대로 변경한다. 그 결과 패킷의 전송 방향이 달라진다.

 

예약 작업

F:\script\batch>schtasks
폴더: \Microsoft\XblGameSave
작업 이름                                다음 실행 시간         상태
======================================== ====================== 
XblGameSaveTask                          N/A                    준비

 

폴더: \Microsoft\Windows\WaaSMedic
작업 이름                                다음 실행 시간         상태
======================================== ======================
PerformRemediation                       2020-03-15 오전 6:51:5 준비

 

프로세스 분석

<참고>
악성코드 등에서 자주 사용하는 레지스트리 경로, 등록된 이상한 파일 들이 있는지 확인

1. HKCR\Wordpad.Document.[version]\shell\open\command 
: 문서를 더블 클릭할 때마다 실행

2. HKLM\SOFTWARE\Microsoft\Command Processor\AutoRun
: cmd.exe를 실행할 때마다 실행

3. HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows\AppInit_DLLs
:  GUI Application이 시작될 때마다 DLL을 memory 내로 Load함

4. HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Notify
: 사용자 로그온/로그오프, 화면보호기 시작 등 이벤트에 외부 기능을 차단하는 알림 

 

자동실행 프로그램

C:\>rip.exe -r "f:\Test\chohb.NTUSER.DAT" -f system -p autoruns

C:\>reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run" 
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run 
    TrustNetCert    REG_SZ    C:\Program Files (x86)\UNETsystem\TrustNET\NPH\TrustNetCert.exe 
    MagicMRS    REG_SZ    C:\Program Files (x86)\DreamSecurity\SmartMobileSign\Launcher.exe 
    CrossEXService    REG_SZ    C:\Program Files (x86)\iniLINE\CrossEX\crossex\CrossEXService.exe


시작프로그램
C:\>Autorunsc.exe  -> 아래 레지스트리 조회
HKLM\System\CurrentControlSet\Control\Terminal Server\Wds\rdpwd\StartupPrograms
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Userinit


C:\>wmic Startup get * /format:list

부팅 시 실행
C:\>Autorunsc.exe -b
HKLM\System\CurrentControlSet\Control\Session Manager\BootExecute

AppInit DLLs
C:\>Autorunsc.exe -d

Explorer AddOn
C:\>Autorunsc.exe -e
HKLM\SOFTWARE\Classes\Protocols\Filter

실행 목록(활성 프로세스)
C:\>pslist64.exe -t

프로세스 계층형 조회

-> 원래 부모 프로세스가 아닌 다른 프로세스를 부모로 가지면 상세 분석 필요

-> 윈도우 기본 프로세스랑 이름이 비슷하거나 이름이 같으면서 기본 경로가 다르면 상세 분석 필요

C:\>tasklist
C:\>wmic process list brief [ or wmic path win32_process get * /format:list ]

로드 DLL
C:\>Listdlls.exe /?
C:\>Listdlls.exe [ -r ]
C:\>Listdlls.exe -u
C:\>tasklist /m

Handle
C:\>handle.exe 

서비스 목록
F:\script\batch>sc query

F:\>wmic service list brief

F:\>wmic path win32_service get * /format:list

F:\>tasklist /svc

 

활성 드라이브 목록

F:\>sc query type= driver | more

 

최근 실행 명령어

HKU\{UserSID}\Software\Microsoft\Windows\CurrentVersion\Explorer\RunMRU

반응형

'DFIR > 시스템 분석' 카테고리의 다른 글

시스템 이상징후 판단 기준  (0) 2020.03.13

반응형

파일시스템-파일변경분석

 

분석을 위해 CMD 창을 띄워서 실행 결과를 표시할 때 만약 한글이 깨져 보인다면 CMD 출력 창을 UTF-8로 변경한다.

C:\Dropbox\DFIR\Window\SystemBasic\Tools\RegRipper>chcp -> 현재 코드페이지 

활성 코드 페이지: 949

C:\Dropbox\DFIR\Window\SystemBasic\Tools\RegRipper>chcp 65001  -> 코드페이지 변경

 

최근 변경 파일

F:\temp>dir /a-d/o-d/p %SystemRoot%\system32
2020-03-12  오전 08:48           491,218 perfh012.dat
2020-03-12  오전 08:48         1,652,058 PerfStringBackup.INI
2020-03-12  오전 08:42         2,942,912 argosregexpr.dll
2020-03-12  오전 08:42           598,392 FNTCACHE.DAT

......

 

특정일 이후 생성, 수정 파일

F:\temp>forfiles /s /d +2019-07-15 /c "cmd /c echo @isdir @path @fdate"
FALSE "F:\temp\AccessData_Registry_Viewer_2.0.0.exe" 2020-03-06
TRUE "F:\temp\activitiescache" 2020-03-06
FALSE "F:\temp\bcc-master.zip" 2019-12-31
FALSE "F:\temp\chromedriver_win32_80.0.3987.106.zip" 2020-02-19
TRUE "F:\temp\chromehistoryview" 2019-12-13
TRUE "F:\temp\cports-x64" 2019-12-19

......

 

F:\temp>forfiles /p c:\windows /s /d +2019-07-15 /c "cmd /c echo @isdir @path @fdate"
FALSE "c:\windows\AhnInst.log" 2020-01-31
TRUE "c:\windows\appcompat" 2020-02-18
TRUE "c:\windows\apppatch" 2020-03-11

......


특정일 이후 변경 파일 일괄 복사

C:\>xcopy c:\Windows\system32\*.* c:\temp\ /d:07-17-2019 [ or 2019-07-17 ? ]

 

PowerShell 이용

파일 생성 수정과 관련된 Property

PS c:\>Get-ChildItem -Path c:\down\lab -File -Recurse | Select-Object -Property name, *time | Format-Table -Autsize

 

오늘 생성된 파일

PS c:\>Get-ChildItem -Path c:\down\ -File -Recurse | Where-Object {$_.CreationTime -gt (Get-Date).Date}

 

7일동안 생성된 파일

PS c:\>Get-ChildItem -Path c:\down\ -File -Recurse | Where-Object {$_.CreationTime -gt (Get-Date).AddDays(-7)}

 

특정일 이후 생성된 파일

PS c:\>Get-ChildItem -Path c:\down\ -File -Recurse | Where-Object {$_.CreationTime -gt “03/01/2018”}

 

오늘 생성된 파일만 복사

PS c:\>Get-ChildItem -Path c:\down\ -File -Recurse | Where-Object {$_.CreationTime -gt (Get-Date).Date} | Copy-Item -Destination D:\DownloadedFromInternet\

 

최근 접근 파일

F:\temp>dir %AppData%\Microsoft\Windows\Recent
2020-03-02  오후 05:07               954 (180927)주간업무보고-해외사업부.docx.lnk
2020-03-09  오후 12:08             1,199 (승인)2019년_KPI성과관리_보안사업부문 보안연구센터_성과목표.xls.lnk
2020-03-11  오후 05:12               798 (최종제출)2020년 Biz Plan(매출목표)_보안사업부문_20191213.xlsx.lnk
......

 

참고로 최근 열어본 문서 레지스트리
HKU\%UserSID%\Software\Microsoft\Office\{Version}\{Program}\File MRU
HKLM\Software\HNC\Hwp\6.5\RecentFile
HKLM\Software\HNC\Hwp\{Version}\HwpFrame\RecentFile
HKU\%UserSID%\Software\Adobe\Acrobat Reader
HKU\%UserSID%\Software\Adobe\Adobe Acrobat
HKU\%UserSID%\Software\Microsoft\Windows\CurrentVersion\Explorer\RecentDocs
HKU\%UserSID%\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\LastVisitedMRU
HKU\%UserSID%\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\LastVisitedPidlMRU
HKU\%UserSID%\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\OpenSaveMRU
HKU\%UserSID%\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\OpenSavePidlMRU

 

특정일 기간동안 접근된 파일

F:\temp>F:\tool\OS\AFind.exe c:\Windows /d 2-10 <- 10일전부터 2일전까지 접근된 파일
Searching...
c:\Windows\appcompat\appraiser\AltData
        APPRAISER_TelemetryBaseline_20H1.bin    12/03/2020  08:49:16
        APPRAISER_TelemetryBaseline_UNV.bin     12/03/2020  08:49:16
......

 

afind.exe는 시,분,초로도 찾을 수 있다. 또는 특정 폴더 모든 파일의 마지막 접근 시간을 알 수 있다.

 

숨긴 폴더

전체 숨긴 폴더

C:\>dir /ahd[/b]

2019-06-05  오후 02:40    <DIR>          $Recycle.Bin

2019-06-05  오후 01:39    <DIR>          $SysReset

2019-06-19  오전 11:33    <DIR>          $X

2019-06-05  오후 02:06    <JUNCTION>     Documents and Settings [C:\Users]

......


읽기
전용이 아닌 숨긴 폴더

C:\>dir /ahd-r

 

읽기 전용 숨긴 폴더

C:\>dir /ahdr

2018-05-31  오전 09:10    <DIR>          MSOCache

 

숨긴 파일

C:\>dir /ah-d /S

C:\Dropbox 디렉터리

2019-07-09  오후 07:57                35 .dropbox

2019-07-09  오후 07:57               258 desktop.ini

......

 

E:\Tools\SecurityToolSuite>HFind.exe c:\

Searching...

c:\$Recycle.Bin\S-1-5-18

  desktop.ini                           24/02/2019 17:57:03

......

 

ADS(Alternative Data Stream) 파일

ADSIdentifier 

Windows-based command-line application that identifies, and optionally removes, NTFS Alternate Data Streams

 

F:\temp>F:\tool\forensic\ADSIdentifier.exe /Folder:f:\

Create Date            Size in Bytes   Stream Name
--------------------------------------------------
오전 12:00:00                       116   f:\backup\네이버-기술자료-20191030-001.zip:Zone.Identifier
오전 12:00:00                        60   f:\backup\209번백업\WBS\.DS_Store:AFP_AfpInfo
오전 12:00:00                        60   f:\backup\209번백업\WBS\Systrace_WBS_180430.xlsx:RVContext
......

 

Alternatestreamview 

c:\>alternatestreamview64.exe /RunAsAdmin /FolderPath "c:\" /ScanSubfolders 1 /ShowZeroLengthStreams 1 /scsv "f:\temp\adslist.csv" -> 결과 파일 f:\temp\adslist.csv 확인

 

Streams64
Reveal NTFS alternate streams.
C:\>streams64.exe /nobanner -s f:\temp [ | find /i ":$DATA" |find /i /v "zone" ]
참고 : 파일로 Export 시 속도가 매우 느리다.

 

Dir CMD
C:\>dir c:\ /s /R | find ":$D" |find /i /v "Zone"

 

SFind(Stream find)

Alternate Data Stream Finder
C:\>SFind.exe c:\

 

lads(list ads)

C:\>lads.exe c:\ /S /A

 

다운로드된 파일
ADSIdentifier
Zone.Identifier도 ADS의 일종이며 Zone.Identifier 값이 3이면 인터넷으로부터 다운로드된 파일이라 할 수 있다.
Zone ID 값
1 - 로컬 인트라넷
2 - 신뢰할 수 있는 사이트(URLZONE_TRUSTED)
3 - 인터넷
4 - 제한된 사이트(URLZONE_UNTRUSTED)

 

C:\>ADSIdentifier.exe /Folder:c:\ [ /P ]

Dir CMD
C:\>dir C: /S /R | findstr /i /c:":$D" |findstr /i /c:"Zone.Identifier"

PowerShell
PS C:\> get-ChildItem c:\* -Recurse -ErrorAction SilentlyContinue | get-item -Stream Zone*
PSPath        : Microsoft.PowerShell.Core\FileSystem::C:\BackUp\\1343034360262.jpg:Zone.Identifier
PSParentPath  : Microsoft.PowerShell.Core\FileSystem::C:\BackUp\
PSChildName   : 1343034360262.jpg:Zone.Identifier
PSProvider    : Microsoft.PowerShell.Core\FileSystem
PSIsContainer : False
FileName      : C:\BackUp\\1343034360262.jpg
Stream        : Zone.Identifier
Length        : 343
......

 

삭제 파일

F:\temp>dir /ad /s f:\ | findstr /i /c:"recy"

 

<참고>

https://secuworld.tistory.com/32?category=849780

 

프린트 출력 파일

EventLogs
참고

이벤트 뷰어 내 [응용 프로그램 및 서비스 로그] > [Microsoft] > [Windows] > [PrintService] > [Operational]에서

속성 창을 통해 로깅 사용이 활성화 되어 있어야 한다.

C:\>dir %windir%\System32\winevt\logs\*print*.evtx

2020-03-12  오후 02:06            69,632 Microsoft-Windows-PrintService%4Operational.evtx
......


F:\temp>wevtutil el | findstr /i /c:"print"
Microsoft-Windows-PrintService/Operational

......


F:\temp>wevtutil qe Microsoft-Windows-PrintService/Operational /f:text

F:\temp>wevtutil epl Microsoft-Windows-PrintService/Operational f:\test\printlist.evtx

F:\temp>LogParser.exe -i:evt "select TimeWritten, strings from f:\test\printlist.evtx"
TimeWritten         Strings
------------------- -----------------------------------------------------------------------------------
2020-03-12 14:10:18 3
2020-03-12 14:10:19 3
2020-03-12 14:10:20 3|us008PC|Samsung M262x 282x Series (USB001)|Samsung Universal Print Driver 3|1|0x0
2020-03-12 14:10:20 C:\Windows\system32\spool\PRINTERS\00003.SHD|-|0x0|0x5|104
2020-03-12 14:10:20 3|279864|1|0|0|0|600|1|3
2020-03-12 14:10:20 3|문서 인쇄|chohb|\\CHOHB|Samsung M262x 282x Series (USB001)|USB001|279864|1

......

 

제약조건

프린터된 파일 경로 및 이름을 알 수 없다. 프린터 시 생성되는 SHD와 SPL 파일을 분석하면 되겠지만 이 파일들은

프린터 출력이 종료되면 삭제되어 버린다.

 

Persistent file locations of interest
다음의 폴더에 실행 가능한 파일들이 생성되어 있는지 확인
%localappdata%\\.<4-9 file ext> 
%localappdata%\\.lnk 
%localappdata%\\.bat 
%appdata%\\.<4-9 file ext> 
%appdata%\\.lnk 
%appdata%\\.bat 
%appdata%\\.bat 
%SystemRoot%\ 
%appdata%\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\*.lnk 
%SystemRoot%\System32\\ 
%SystemRoot%\System32\tasks\ 
%SystemRoot%\\
C:\Users\[user]\appdata\roaming\[random] 
C:\Users\Public\* 

Unusual Exe etc

다음의 폴더에 실행 가능한 파일들이 생성되어 있는지 확인
dir /s /b %localappdata%\*.exe | findstr /e .exe 
dir /s /b %appdata%\*.exe | findstr /e .exe 
dir /s /b %localappdata%\*.dll | findstr /e .dll 
dir /s /b %appdata%\*.dll | findstr /e .dll 
dir /s /b %localappdata%\*.bat | findstr /e .bat 
dir /s /b "%appdata%\Microsoft\Windows\Start Menu\Programs\Startup\" | findstr /e .lnk 
dir /s /b "C:\Users\Public\" | findstr /e .exe 
dir /s /b "C:\Users\Public\" | findstr /e .lnk 
dir /s /b "C:\Users\Public\" | findstr /e .dll 
dir /s /b "C:\Users\Public\" | findstr /e .bat 

반응형

반응형

OS기본파일 디지털서명 검사

powershell
PS F:\temp> gci -path c:\windows -Recurse -File -include *.dll | select directory, name, fullname

PS F:\temp> Get-ChildItem -path $env:windir -Recurse -File -include *.dll | select fullname |  foreach-object { get-authenticodesignature $_.fullname } | Out-File "f:\Temp\WinFiles-SignCheck.txt" -Append


결과

sigcheck

Windows Directory 파일 서명 여부 확인

F:\temp>F:\tool\OS\Sigcheck\sigcheck64.exe -nobanner -s %windir%

F:\temp>F:\tool\OS\Sigcheck\sigcheck64.exe -nobanner -u -e -s %windir%

OS기본파일 무결성 검사

sfc

F:\temp>sfc /VERIFYONLY

 

반응형

반응형

장치드라이버 디지털서명 검사

 

sigverif

결과

서명안된 파일들의 hash값을 구하거나 파일명으로 VirusTotal등에서 악성코드 여부를 조회

 

driverquery

/si : Displays digital signature information for both signed and unsigned device drivers.
F:\temp>driverquery.exe /SI

powershell

F:\temp>powershell
PS F:\temp> Get-WmiObject -class win32_systemdriver | select InstallDate, pathname,  DisplayName

PS F:\temp> Get-WmiObject -class win32_systemdriver |  foreach-object { get-authenticodesignature $_.pathname }

WMI win32_systemdriver
F:\temp>wmic path win32_systemdriver get caption, pathname, installdate /format:table

signtool

SignTool is a command-line CryptoAPI tool that digitally-signs files, verifies signatures in files, and time stamps files.

F:\temp>F:\tool\OS\SignTool\signtool64.exe verify /pa C:\Windows\SysWOW64\vulkaninfo.exe
File: C:\Windows\SysWOW64\vulkaninfo.exe
Index  Algorithm  Timestamp
========================================
0      sha256     RFC3161
Successfully verified: C:\Windows\SysWOW64\vulkaninfo.exe

 

driversignature.bat

@echo off
if Exist driverquery_list.txt del driverquery_list.txt
wmic path win32_systemdriver get pathname > driverquery_list.txt
for /f "tokens=*" %%a in ('type driverquery_list.txt') do (
rem echo %%a
F:\tool\OS\SignTool\signtool64.exe verify /pa %%a
)
if Exist driverquery_list.txt del driverquery_list.txt

 

F:\temp>driversignature.bat

Successfully verified: C:\WINDOWS\system32\drivers\3ware.sys
File: C:\WINDOWS\system32\drivers\acpi.sys
Index  Algorithm  Timestamp
========================================
0      sha256     RFC3161

Successfully verified: C:\WINDOWS\system32\drivers\acpi.sys
File: C:\WINDOWS\system32\drivers\AcpiDev.sys
Index  Algorithm  Timestamp
========================================
SignTool Error: No signature found.

......

 

sigcheck

특정파일에 코드사인이 되어있는지 유무 판별을 해주는 유틸

F:\temp>F:\tool\OS\Sigcheck\sigcheck64.exe -i C:\Windows\SysWOW64\vulkaninfo.exe
c:\windows\syswow64\vulkaninfo.exe:
        Verified:       Signed
......

(이하 디지털서명 상세 정보 확인)

 

<참고>

sigcheck, signtool 등 MicroSoft Sysinternal 에 포함된 tool은 상업적 목적이나 용도로 사용되어서는 안된다.

반응형

반응형

Windows Search DB 분석

 

윈도우 검색(Windows Search)은 색인(Indexing)을 사용하여 빠르게 검색할 수 있도록 지원하는 윈도우 운영체제의 기능이며 윈도우 검색에서 기본 색인 대상은 일반 파일을 비롯하여 이메일, 메신저, 웹 히스토리 등의 정보이다.

 

파일명 : Windows.edb <- EDB(Extensible Storage Engine DB) 포맷

파일경로 : C:\ProgramData\Microsoft\Search\Data\Applications\Windows


분석 데이터

* Outlook Mail Data (Time ,Contents)
* OneNote Title
* Internet History (URLs, Last visit time)
* Lnk list
* Network Drive (When adding offline)
* Favorites
* File, Folder Information (Time, Contents(2KB), Path,...)
* Activity History (Recently used programs, Windows 10 Timeline)

 

WinSearchDBAnalyzer Advantages

- WinSearchDBAnalyzer can recovery deleted records.

- WinSearchDBAnalyzer works well on Windows 10.

- WinSearchDBAnalyzer can extract and analyze Windows.edb from live
  system.

- Regardless of status of the file, WinSearchDBAnalyzer can parse any
  file.
(Dirty status is OK)

- WinSearchDBAnalyzer shows more information than the other tools .

  (File categorization by extension, File hierarchy, File Contents)

- WinSearchDBAnalyzer can apply to UTC time.

 

분석

F:\>forecopy.exe -f C:\ProgramData\Microsoft\Search\Data\Applications\Windows\Windows.edb f:\test

F:\>esentutl.exe /mh f:\test\Windows.edb | findstr /i /c:"state"
            State: Dirty Shutdown

F:\>esentutl.exe /p f:\test\Windows.edb
F:\>esentutl.exe /mh f:\test\Windows.edb | findstr /i /c:"state"
            State: Clean Shutdown

ESEDatabazseView Tool

F:\>ESEDatabaseView.exe /table "f:\test\windows.edb" * /scomma "f:\test\Windowsedb\WindowSearch_*.csv"

F:\>tasklist |findstr /i /c:"ESEDatabaseView.exe"
ESEDatabaseView.exe          24036 Console                    1     31,688 K <- 프로세스 종료 확인

 

WinSearchDBAnalyzer Tool

- 삭제된 파일에 대한 정보 및 파일 내용도 확인 가능

 

- 인덱스된 폴더 및 파일 확인

 

- Web 접속 이력 : http. https

- IE를 통해 다운로드 받은 파일 내역

 

- OutLook 메일 내역

 

- 삭제 파일 내역

반응형

반응형

웹 분석-Chrome

 

아티팩트 저장 경로

Cache

%USERPROFILE%\AppData\Local\google\chrome\user data\default\cache 폴더

 

History
%USERPROFILE%\AppData\Local\google\chrome\user data\default\history 파일

History파일에는 사용자가 방문한 URL 및 접속 시간, 다운로드 내역 등이 기록됩니다. 
Chrome브라우저의 방문기록은 urls 테이블과 visits 테이블에 의해 방문 url과 방문 기록을 분리하여 관리합니다. 
urls 테이블에는 방문했던 사이트 고유의 url들이 저장되고, visits 테이블에는 urls 테이블을 참조하여 방문 이력이 
관리 됩니다. 다운로드 기록은 downloads 테이블과 downloads_url_chains 테이블에 의해 관리되며 downloads에는 
다운로드 받은 파일에 대한 내역이 기록되고 downloads_url_chains테이블에는 다운로드 받은 url들이 기록됩니다.
활용성이 높은 데이터가 들어있는 Table은 downloads, downloads_url_chains, urls, visits가 있습니다.

History DB Table List

downloads Table
다운로드 받은 파일을 관리, 저장경로, 다운로드 시작 시간, 용량 등의 항목이 기록됩니다.


downloads_url_chains Table
다운로드 받은 파일의 원래 URL 관리

 

urls Table 
사용자의 접속 URL을 관리, 접속 URL, 최근 접속 시간, 총 접속 수 등을 기록


visits Table
접속 URL, 접속 시간 등 접속 기록은 urls 테이블을 포함하여 visits 테이블에 저장 

 

keyword_search_terms
크롬 검색 키워드

 

Cookie
%USERPROFILE%\AppData\Local\google\chrome\user data\default\Cookies 파일

쿠키는 일반적으로 웹마다 남기는 형태가 다르기 때문에 그 형식을 정확히 알기란 어렵거나 쿠키를 암호화 등을 통해

관리한다면 정확한 의미나 값을 파악하는게 쉽지 않다.

 

Download

%USERPROFILE%\AppData\Local\google\chrome\user data\default\history 파일

 

Typed URL

%USERPROFILE%\AppData\Local\google\chrome\user data\default\shortcuts 파일

검색어를 포함하여 주소창에서 직접 입력한 후 접근한 사이트. 그러므로 keyword_search_terms 보다 폭넓은
데이터 포함

New Tab

%USERPROFILE%\AppData\Local\google\chrome\user data\default\top sites 파일

최근 접근 Top 10 Web URL


Bookmarks

%USERPROFILE%\AppData\Local\google\chrome\user data\default\Bookmarks 파일
Privacy 관련 자료로 암호화되어 있어 DB를 직접 열 수 없다. 


Visited Link

%USERPROFILE%\AppData\Local\google\chrome\user data\default\Visited Links 파일
Privacy 관련 자료로 암호화되어 있어 DB를 직접 열 수 없다. 


Preferences

%USERPROFILE%\AppData\Local\google\chrome\user data\default\Preferences 파일

백업, 북마크, 브라우저, 검색 엔진, 다운로드, 확장 기능, 플러그인, 세션, 싱크 설정 정보, 클라우드 프린트,
DNS 프리패칭 정보

 

이러한 정보들의 관리 방법이나 경로는 크롬 버전이 달라질 때 마다 변경될 수 있다.


위 정보 중 백업, 북마크, 검색 엔진, 다운로드 설정 정보를 통해서도 사용자의 행위를 프로파일링 해볼 수 있다. 하지만, 특정인의 특징이라고 보기에는 다소 보편적인 내용이기 때문에 효과가 크지 않다. 
반면, 클라우드 프린트, DNS 프리패칭, 줌 레벨은 사용자의 인터넷 사용 패턴을 알려주기 때문에 프로파일링하는데 큰 도움이 된다. 해당 정보는 넓은 의미에서 프라이버시로 볼 수 있지만, 일반 사용자 입장에서는 딱히 삭제할 방법이 없다.

 

분석

SQLite 
크롬 브라우저에서는 Sqlite db 형태로 파일을 관리하므로 손쉽게 Sqlite Browser를 통해 분석이 가능

F:\temp>sqlite3.exe "%USERPROFILE%\AppData\Local\google\chrome\user data\default\history"
sqlite> .table
Error: database is locked

 

F:\temp>dir "%USERPROFILE%\AppData\Local\google\chrome\user data\default\history" 
2020-03-10  오후 05:11        11,239,424 History 

F:\temp>forecopy.exe -f "%USERPROFILE%\AppData\Local\google\chrome\user data\default\history" "f:\temp"

F:\temp>dir "f:\temp\history"
2020-03-10  오후 05:19        11,239,424 history

F:\temp>sqlite3.exe "f:\temp\history"
sqlite> .database
main: f:\temp\history
sqlite> .table
downloads                meta                     urls
downloads_slices         segment_usage            visit_source
downloads_url_chains     segments                 visits
keyword_search_terms     typed_url_sync_metadata


History

sqlite> pragma table_info(urls);
0|id|INTEGER|0||1
1|url|LONGVARCHAR|0||0
2|title|LONGVARCHAR|0||0
3|visit_count|INTEGER|1|0|0
4|typed_count|INTEGER|1|0|0
5|last_visit_time|INTEGER|1||0
6|hidden|INTEGER|1|0|0


sqlite> SELECT datetime(last_visit_time / 1000000 - 11644473600, 'unixepoch', 'localtime') last_visit_time,url,title 

FROM urls ORDER BY last_visit_time DESC [limit 10];

 

Download

sqlite> SELECT datetime(end_time / 1000000 - 11644473600, 'unixepoch', 'localtime') end_time, target_path, tab_url

FROM downloads ORDER BY end_time DESC limit 10;

Keyword Search
select b.url, a.term, datetime(b.last_visit_time / 1000000 - 11644473600, 'unixepoch', 'localtime')

from keyword_search_terms a, urls b  where a.url_id = b.id;

 

기타 Cookies, Typed URL, New Tab도 동일한 방식으로 분석하면 된다. 다만 각 SQLite DB 내 Table 구조 및 Field에

대한 이해가 선행되어야 한다.

 

DB Browser for SQLite Tool

BrowsingHistoryView Tool

Internet Explorer, MicroSoft Edge, Mozilla Firefox, Google Chrome, Opera and Safari 통합 히스토리 분석

 

GUI

CLI

F:\>BrowsingHistoryView.exe /LoadIE 0 /LoadFirefox 0 /LoadSafari 0 /LoadChrome 1 /HistorySource 1 /scomma "f:\test\chrome-back.csv"

F:\tool\forensic\browsinghistoryview-x64>dir "f:\test\chrome-back.csv"
2020-03-10  오후 02:05         1,585,621 chrome-back.csv


F:\temp>F:\tool\forensic\LogParser\LogParser.exe -h -i:csv "f:\test\chrome-back.csv" -headerRow:on

Fields:
  Filename (S)    RowNumber (I)    URL (S)          Title (S)
  Visit Time (S)  Visit Count (I)  Visited From (S) Visit Type (S)
  Web Browser (S) History File (S) User Profile (S) Browser Profile (S)
  URL Length (I)  Typed Count (I)  Record ID (I)

F:\temp>F:\tool\forensic\LogParser\LogParser.exe -i:csv -iDQuotes:auto "select * from 'f:\test\chrome-back.csv'"

<참고>

Visit Type

Hindsight
Chrome 모든 아티팩트를 대상으로 TimeLine 구성

 

TimeLine 생성

C:\Temp>hindsight.exe -i "C:\Users\chohb\AppData\Local\Google\Chrome\User Data\Default" -b Chrome -f sqlite -o "c:\temp\chrome_forensic"

DB Browser for SQLite로 TimeLine 조회

SNSS(Server Session) 파일 분석
다음 두 가지 파일이 SNSS 포맷을 가진 크롬 관련 파일이다.

- Current Session / Current Tabs
- Last Session / Last Tabs

 

위 파일은 현재 탭을 포함한 탭 및 세션 상태와 관련된 모든 것을 저장합니다. 가장 최근의 정보이므로 포렌식에서 

매우 민김한 정보일 수 있다.

분석 시에는 해당 파일들이 Shared read/write 권한이 없어서 실기간으로 접근이 불가능하며 권한을 임의로 부여해도

크롬 실행 시 다시 초기의 권한으로 변경한다.


Current Tab/Session, Last Tab/Session 분석  - Current Web URL 확인

C:\>forecopy.exe -f "C:\Users\chohb\AppData\Local\Google\Chrome\User Data\Default\Current Session" c:\test

C:\>forecopy.exe -f "C:\Users\chohb\AppData\Local\Google\Chrome\User Data\Default\Current Tabs" c:\test

C:\>forecopy.exe -f "C:\Users\chohb\AppData\Local\Google\Chrome\User Data\Default\Last Tabs" c:\test

C:\>forecopy.exe -f "C:\Users\chohb\AppData\Local\Google\Chrome\User Data\Default\Last Session" c:\test

 

Tab 분석

C:\Tools\Forensic\Chromagnon\dist>chromagnonTab.exe "c:\test\Current Tabs"

SelectedNavigationInTab - Tab: 16, Index: 0, Time: 13228317039685565

UpdateTabNavigation - Tab: 16, Index: 0, Url: https://chrome-apps-doc2.appspot.com/extensions/tabs.html

SelectedNavigationInTab - Tab: 20, Index: 0, Time: 13228319147209300

UpdateTabNavigation - Tab: 20, Index: 0, Url: https://secuworld.tistory.com/34

 

C:\Tools\Forensic\Chromagnon\dist>chromagnonTab.exe "c:\test\Last Tabs"

......

UpdateTabNavigation - Tab: 21, Index: 0, Url: chrome://newtab/

UpdateTabNavigation - Tab: 21, Index: 1, Url: https://www.google.com/search?q=chrome+cookie+forensic&oq=chrome+cookie+forensic&aqs=chrome..69i57j0.34298j0j7&sourceid=chrome&ie=UTF-8

UpdateTabNavigation - Tab: 21, Index: 2, Url: https://www.google.com/search?ei=j3lnXq6VI4y2mAW3mozoBQ&q=chrome+cookie+forensic+sqlite+query&oq=chrome+cookie+forensic+sqlite+query&gs_l=psy-ab.3...2404.6489..6866...0.0..0.136.1767.1j14......0....1..gws-wiz.......0i30j0i13i30j33i160j33i21.GPMZ9fq-5Z8&ved=0ahUKEwjumPy05o_oAhUMG6YKHTcNA10Q4dUDCAs&uact=5

UpdateTabNavigation - Tab: 21, Index: 3, Url: https://digitalisx.tistory.com/entry/Google-Chrome-History-with-Python

SelectedNavigationInTab - Tab: 23, Index: 6, Time: 13228315714799040

UpdateTabNavigation - Tab: 23, Index: 3, Url: https://secuworld.tistory.com/

UpdateTabNavigation - Tab: 23, Index: 4, Url: https://secuworld.tistory.com/manage

UpdateTabNavigation - Tab: 23, Index: 5, Url: https://secuworld.tistory.com/manage/posts

UpdateTabNavigation - Tab: 23, Index: 6, Url: https://secuworld.tistory.com/manage/newpost/34?type=post&returnURL=https%3A%2F%2Fsecuworld.tistory.com%2Fmanage%2Fposts

UpdateTabNavigation - Tab: 23, Index: 7, Url: https://secuworld.tistory.com/manage/posts

UpdateTabNavigation - Tab: 23, Index: 8, Url: https://secuworld.tistory.com/manage/newpost/34?type=post&returnURL=https%3A%2F%2Fsecuworld.tistory.com%2Fmanage%2Fposts

UpdateTabNavigation - Tab: 23, Index: 9, Url: https://secuworld.tistory.com/manage/posts

Session 분석

C:\Tools\Forensic\Chromagnon\dist>chromagnonSession.exe "c:\test\Current Session"

......

UpdateTabNavigation - Tab: 19, Index: 0, Url: https://secuworld.tistory.com/34

......

SetSelectedTabInIndex - Window: 13, Index: 0

SetTabIndexInWindow - Tab: 14, Index: 0

SetPinnedState - Tab: 14, Pinned: 0


C:\Tools\Forensic\Chromagnon\dist>chromagnonSession.exe "c:\test\Last Session"

......

SetTabIndexInWindow - Tab: 8, Index: 1

SetPinnedState - Tab: 8, Pinned: 0

SetSelectedNavigationIndex - Tab: 2, Index: 9

UpdateTabNavigation - Tab: 2, Index: 9, Url: https://secuworld.tistory.com/manage/posts

SetSelectedTabInIndex - Window: 1, Index: 1

......

UpdateTabNavigation - Tab: 2, Index: 9, Url: https://secuworld.tistory.com/manage/posts

......

 

Chromagnon
2020년 3월 현재 아직 Python v3.x 는 지원하지 않지만 Python v2.x에서 exe로 만들어 실행하면 된다.

이 또한 크롬이 실행중일 경우 Access Denied가 발생하여 분석이 안된다.

 

E:\Tools\Chromagnon>py -2 chromagnonCache.py "C:\Users\admin\AppData\Local\Google\Chrome\User Data\Default\Cache" [ -o c:\temp\ ]

--------------------------------------------------------------------------------
Hash: 0x3ac547ab
Usage Counter: 0
Reuse Counter: 0
Creation Time: 2020-01-15 04:42:01.214355
Key: https://images.contentstack.io/v3/assets/bltefdd0b53724fa2ce/bltfe1709fd28e63c7e/5d07f061b0b16b1c530d1197/logo-maps-24-color.svg
State: Normal
Data (6848 bytes) at 0xc1031126 : HTTP Header image/svg+xml
Data (883 bytes) at 0xa30113d8 : Data
--------------------------------------------------------------------------------
......

 

E:\Tools\Chromagnon>py -2 chromagnonDownload.py "C:\Users\admin\AppData\Local\Google\Chrome\User Data\Default\history"
2019-12-11 00:08:53.688932      https://github.com/packetzero/dnsparser E:\temp\dnsparser-master.zip
2019-12-11 00:27:13.877036      https://bitbucket.org/paulc/dnslib/downloads/   E:\temp\paulc-dnslib-9b80cd497f3d.zip
2019-12-11 01:28:54.747286      http://www.dnspython.org/kits/1.16.0/   E:\temp\dnspython-1.16.0.zip

 

E:\Tools\Chromagnon>py -2 chromagnonHistory.py "C:\Users\admin\AppData\Local\Google\Chrome\User Data\Default\history"
2019-12-10 07:45:50.957715      35      https://www.daum.net/
2019-12-10 07:46:35.677765      1       https://sports.media.daum.net/sports

E:\Tools\Chromagnon>py -2 chromagnonVisitedLinks.py "C:\Users\admin\AppData\Local\Google\Chrome\User Data\Default\Visited Links" "http://www.naver.com"
http://www.naver.com False

반응형

반응형

웹 분석 - IE

 

분석 대상

웹 캐시, 접속 히스토리, 검색 키워드, 쿠키, 파일 다운로드 목록, 아이콘 캐시, 세션복원 정보, 호환성 목록, DOM 저장소 내용, 북마크 

 

웹 캐시

• 행위의 동기, 목적, 수단, 방법 등 많은 정보 획득 가능
• 웹 브라우저에서 열람한 파일도 저장이 되어 내용 확인이 가능
• 특히 html 캐시 파일을 통해 웹 메일 내용 분석이 가능할 수 있다.

접속 히스토리
• 사용자가 방문한 웹 사이트 접속 정보 저장
• 방문 사이트 URL, 방문 시간, 방문 횟수, 사이트 제목 등
• 저장 형식
  직접 접근 – URL 입력 창에 직접 주소 입력
  간접 접근 – URL 링크를 통해서 접근


쿠키
웹 사이트 방문 시 자동으로 사용자 저장장치에 저장되는 텍스트 데이터
자동 로그인 기능 -> 로그인 아이디 저장 옵션 활성화 시 로그인 아이디 획득 가능
쇼핑몰 열람한 물건, 장바구니 물건
웹 하드 찜 해놓은 자료, 다운받은 자료 등 획득 가능

 

IE 웹 브라우저 위치
Location of Internet Explorer history
Windows 7, 8, 10
C:\Users\<username>\Favorites
C:\Users\<username>\AppData\Local\Microsoft\Windows\WebCache
C:\Users\<username>\AppData\Local\Microsoft\Internet Explorer\Recovery

OS별, IE 버전별로 다를 수 있음

Format of Internet Explorer history
Bookmarks
Internet Explorer Bookmarks are stored in separate Internet Shortcut (.url) files within the 'Favorites' folder.

Cache
Internet Explorer Cache records are stored in the 'WebCacheV01.dat' ESE database, within the 'Content' containers. The cached files are stored as separate files in locations specified within the ESE database.

Cookies
Internet Explorer Cookie records are stored in the 'WebCacheV01.dat' ESE database, within the 'Cookies' containers. The cookie files are stored as separate files in locations specified within the ESE database.

Downloads
Internet Explorer Downloads are stored in the 'WebCacheV01.dat' ESE database, within the 'iedownload' containers.

Session Data
Internet Explorer Session Data is stored in a number of .dat files within the 'Recovery' folder.

Website Visits
Internet Explorer Website Visits are stored in the 'WebCacheV01.dat' ESE database, within the 'History' containers.

 

C:\Users\chohb\AppData\Local\Microsoft\Windows\WebCache 디렉터리
2020-03-10  오전 09:50       297,795,584 WebCacheV01.dat   <- Windows EDB(Extensible Storage Engine DB) Format
2020-03-10  오전 09:48            16,384 WebCacheV01.jfm

 

분석

F:\>forecopy.exe -f C:\Users\chohb\AppData\Local\Microsoft\Windows\WebCache\WebCacheV01.dat f:\test

F:\temp>dir f:\test\WebCacheV01.dat
2020-03-10  오전 10:07       297,795,584 WebCacheV01.dat

 

F:\temp>C:\Windows\SysWOW64\esentutl.exe /mh f:\test\WebCacheV01.dat

F:\temp>C:\Windows\SysWOW64\esentutl.exe /mh f:\test\WebCacheV01.dat | findstr /i /c:"state" 
            State: Dirty Shutdown

 

메타데이터 확인, Dirty Shutdown 상태 확인, 만약 Dirty Shutdown 상태이면 아래 명령으로 Clean Shutdown 상태로 변경

 

F:\temp>C:\Windows\SysWOW64\esentutl.exe /p f:\test\WebCacheV01.dat

F:\temp>C:\Windows\SysWOW64\esentutl.exe /mh f:\test\WebCacheV01.dat | findstr /i /c:"state"
            State: Clean Shutdown


ESEDatabaseView Tool

GUI

<컨테이너 설명>

ㆍ각 정보들은 Container_N 형식의 이를을 가진 테이블에 저장되어 있고 분석 대상 항목별로 각 테이블이 존재한다.
ㆍ각 Container_N 테이블에 저장되는 정보의 종류는 Containers 테이블의 ContainerId 칼럼과 Name 칼럼을 참조
ㆍHistory는 ContainerID 40, 341, 344, 79. 10, 62 등 name 이 history인 ContainerId에 저장

예를 들어 ContainerID 35, History Table 내역이다.

 

CLI

F:\temp>F:\tool\forensic\esedatabaseview\ESEDatabaseView.exe /table "f:\temp\WebCacheV01.dat" * /sxml "f:\test\WebCacheExportIE\webcache_*.xml"

 

내보내기 파일 이름에 '*' 문자를 사용하면 테이블 이름이 Container1 인 경우 내 보낸 파일 이름은 webcache_Container1.csv가 됩니다. 이때 주의할 점은 읽어들이는 WebCache 파일 폴더와 Export 하고자 하는 폴더가 서로 달라야 한다.

 

각 테이블(컨테이너) 설명은 webcache_Containers.??? 파일에 존재한다.
F:\Test\WebCacheExportIE>LogParser.exe -i:xml "select containerid, name, directory from 'F:\Test\WebCacheExportIE\webcache_Containers.xml' [where name like '%download%']"

이 작업은 다소 시간이 걸릴 수 있다. 아래 명령으로 작업 종료 여부를 확인하면 된다.

F:\temp>tasklist |findstr /i /c:"ESEDatabaseView.exe"

F:\temp>dir f:\test\WebCacheExportIE

Connect History

F:\temp>LogParser.exe -i:csv "select containerid, name, extract_token(directory, -2, '\\'), rownumber from 
'F:\Test\WebCacheExportIE\webcache_Containers.csv' where directory like '%History%' order by name "

위에서 하얀색이 Connect History이다. 이에 해당되는 Container_XX(ID) 를 분석하면 된다.

 

F:\temp>LogParser.exe -h -i:xml "f:\test\WebCacheExportIE\webcache_Container_35.xml" -headerRow:on

Fields: <- Field도 당연히 테이블마다 다르다. 조회해야할 컨테이너 번호는 <컨테이너 설명> 참고
  entryid (I)         containerid (I)  cacheid (I)         urlhash (I)  securedirectory (I) filesize (I)     type (I)            flags (I)
  accesscount (I)     synctime (I)     creationtime (I)    expirytime (I)  modifiedtime (I)    accessedtime (I) 

  postchecktime (I)   synccount (I)   exemptiondelta (I)  url (S)          responseheaders (S)

F:\temp>LogParser.exe -i:xml "select accessedtime, url from 'F:\Test\WebCacheExportIE\webcache_Container_35.xml'"

Download Lists

F:\temp>LogParser.exe -i:csv "select containerid, name, extract_token(directory, -2, '\\'), rownumber
from 'F:\Test\WebCacheExportIE\webcache_Containers.csv' where directory like '%download%' order by name "

위에서 하얀색이 Download  이다. 이에 해당되는 Container_XX(ID) 를 분석하면 된다.

F:\temp>LogParser.exe -h -i:xml "f:\test\WebCacheExportIE\webcache_Container_28.xml" -headerRow:on

Fields:
  entryid (I)         containerid (I)  cacheid (I)         urlhash (I)  securedirectory (I) filesize (I)     type (I)            flags (I)
  accesscount (I)     synctime (I)     creationtime (I)    expirytime (I)  modifiedtime (I)    accessedtime (I) 
  postchecktime (I)   synccount (I)   exemptiondelta (I)  url (S)          responseheaders (S)

 

F:\temp>LogParser.exe -i:xml "select accessedtime, url from 'F:\Test\WebCacheExportIE\webcache_Container_28.xml'"
-> 조회해야할 컨테이너 번호는 <컨테이너 설명> 참고
accessedtime       url
------------------ -------------------------------------------------
131605413646823263 iedownload:{64953B9E-FA60-11E7-9BCC-BCAEC53A859B}
131605413718460058 iedownload:{64953B9F-FA60-11E7-9BCC-BCAEC53A859B}
131605413837932764 iedownload:{7195ED56-FA60-11E7-9BCC-BCAEC53A859B}

...... <- Download 내역은 바로 알기가 어렵다. 아래 IE10Analyzer처럼 별도 도구를 이용하여 분석

 

Web Cache
logparser에서 extract_token 함수를 적용하기 위해 Export Format을 csv로 변경
F:\temp>ESEDatabaseView.exe /table "f:\temp\WebCacheV01.dat" * /scomma "f:\test\WebCacheExportIE\webcache_*.csv"  


F:\temp>LogParser.exe -i:csv "select containerid, name, extract_token(directory, -2, '\\'), rownumber, directory from 
'F:\Test\WebCacheExportIE\webcache_Containers.csv' where directory like '%cache%' order by Directory "

위에서 하얀색이 Web Cache 이다. 이에 해당되는 Container_XX(ID) 를 분석하면 된다.

 

Cookies

F:\temp>LogParser.exe -i:csv "select containerid, name, extract_token(directory, -2, '\\'), rownumber from 
'F:\Test\WebCacheExportIE\webcache_Containers.csv' where directory like '%cookie%' order by name "

위에서 하얀색이 Cookie 이다. 이에 해당되는 Container_XX(ID) 를 분석하면 된다.

 

BrowsingHistoryView Tool
Internet Explorer, MicroSoft Edge, Mozilla Firefox, Google Chrome, Opera and Safari 통합 히스토리 분석

GUI

CLI

F:\temp>BrowsingHistoryView.exe /LoadIE 1 /LoadFirefox 0 /LoadSafari 0 /LoadChrome 0 /HistorySource 1 /scomma "f:\test\ie-back.csv"

F:\tool\forensic\browsinghistoryview-x64>dir "f:\test\IE-back.csv" 
2020-03-10  오후 02:05         137,401 IE-back.csv


F:\temp>F:\tool\forensic\LogParser\LogParser.exe -h -i:csv "f:\test\IE-back.csv" -headerRow:on

Fields: 
  Filename (S)    RowNumber (I)    URL (S)          Title (S) 
  Visit Time (S)  Visit Count (I)  Visited From (S) Visit Type (S) 
  Web Browser (S) History File (S) User Profile (S) Browser Profile (S) 
  URL Length (I)  Typed Count (I)  Record ID (I) 

F:\temp>F:\tool\forensic\LogParser\LogParser.exe -i:csv -iDQuotes:auto "select * from 'f:\test\IE-back.csv'"

<참고>

Visit Type 값은 없다

 

IE10Analyzer Tool

<참고>

기타 분석 항목별 다양한 오픈소스 분석 도구들이 존재한다. 

분석 목적, 분석 방법, 설치 여부(Setup 수행 ? Portable ?), 실행 형태(GUi/CLI ?) 등에 따라 분석 항목별로 2 - 3개의 도구들로 분석하여 Cross Check 해본다.  포렌식 분석 시 대상 시스템에 변화를 주어서는 안된다. 무결성의 문제가 발생한다.

만약 어쩔 수 없다면 시스템 영역이 아닌 별도 사용자 영역에 최소한의 변화만 발생시키도록 한다. 예를 들어 레지스트리를 변경시키는 Setup 설치 도구 보다는 CLI를 지원하는 도구를 USB에서 실행하여 실행 결과를 USB에 저장하는 것이 더 좋은 것이다.

 

<참고>

ESEDatabaseView가 분석할 수 있는 ESE Databases
.  contacts.edb - Stores contacts information in Microsoft live products.
.  WLCalendarStore.edb - Stores calendar information in Microsoft Windows Live Mail.
.  Mail.MSMessageStore - Stores messages information in Microsoft Windows Live Mail.
.  WebCacheV24.dat and WebCacheV01.dat - Stores cache, history, and cookies information in Internet Explorer 10.
.  Mailbox Database.edb and Public Folder Database.edb - Stores mail data in Microsoft Exchange Server.
.  Windows.edb - Stores index information (for Windows search) by Windows operating system.
.  DataStore.edb - Windows updates information (Located under C:\windows\SoftwareDistribution\DataStore )
. spartan.edb - Stores the Favorites of Internet Explorer 10/11. (Stored under

                    %LOCALAPPDATA%\Packages\Microsoft.MicrosoftEdge_8wekyb3d8bbwe\AC\MicrosoftEdge\

                    User\Default\DataStore\Data\nouser1\120712-0049)

 

 

 

반응형

반응형

삭제파일 목록 조회

 

휴지통은 사용자가 삭제한 파일이나 폴더가 완전 삭제하기 전에 이동되는 중간 임시 영역이다. 이러한 휴지통은 파일시스템으로 보면 하나의 디렉터리에 불과하다. 이러한 휴지통 디렉터리의 접근은 다른 어플리케이션은 불가능하고 단지 휴지통 어플리케이션만 가능하며 휴지통 내 파일 역시 휴지통 어플리케이션이 해석 가능한 포맷의 파일명을 가진 것들만 표시가 가능하다.

 

사용자가 삭제한 즉 휴지통으로 이동된 파일 또는 폴더는 실제 파일은 그대로 남겨둔 채 파일 시스템에 기록된 파일 또는 폴더의 메타 정보만을 변경한다. 그러므로 포렌식 관점에서 덮어쓰여 지지만 않았으면 복원이 얼마던지 가능하고 원본 파일 복원을 위해 다양한 정보를 저장하는 파일을 휴지통 정보 파일이라고 부른다. 이러한 휴지통 정보파일은 Vista 이전 버전에서는 단일 파일로 관리하였고 Vista 이후 부터는 삭제된 개체별로 하나씩 생성하여 관리하고 있다.

 

파일 삭제 시 메타 정보 변화

삭제 시 : 원본파일 MFT Entry 삭제, 휴지통 폴더의 새로운 MFT Entry 생성
복원 시 : 휴지통 폴더의 MFT Entry 삭제, 원본파일 MFT Entry 생성

휴지통 파일

휴지통은, 내부에 삭제된 파일을 저장할 때 아래와 같은 규칙을 통해 파일의 이름을 생성한다. 

Windows XP 휴지통 정보 파일
삭제된 파일명 : D[drive letter][index number].[extension of original]
정보 파일명 : INFO2


Windows 7+ 휴지통 정보 파일
삭제된 파일명 : $R[random].[extension of original]
정보 파일명 : $I[same with $R].[extension of original]


윈도우 vista 이전에서는 파일이 삭제될 경우 INFO2 파일과 D로 시작하고 원본 파일의 확장자로 끝나는 파일이 생성된다. 


"D" + 드라이브경로 + 증가되는 숫자 + "." + 원본 파일의 확장자 예) Dc1.hwp


D로 시작하는 파일은 삭제된 파일의 실제 데이터이며 INFO2 파일은 삭제된 파일을 표현하는데 사용되는 정보가 저장되어있다.  Vista 방식에서 사용되는 $I 와 다르게 INFO2 단일 파일에 삭제된 파일들의 메타정보가 저장되며 파일이 추가적으로 삭제될 경우 계속 업데이트 되는 방식이다. 

Vista+ 에서는 위와같은 방식을 사용하지 않고 삭제된 파일별로 $I, $R 파일이 생성되는데 $R의 경우 원본 파일의 내용이 저장되어있으며 $I는 삭제된 파일의 정보를 저장하고있다.
$R,I의 명명 규칙은 $R 혹은 $I 문자열 뒤 랜덤 영문(대문자),숫자 값과 원본 파일의 확장자로 명명되어있다.

$R의 경우 원본파일 그 자체이기 때문에 OS별로 차이점이 없지만 $I는 OS별로 조금씩 다르므로 분석 시 유의해야 한다.

 

파일이 휴지통으로 이동된 후 완전 삭제되더라도 디스크 내부에서 $I 파일의 조각을 발견하게 된다면 삭제된 파일이 

존재하였다는 중요한 단서가 될 수 있다. 

획득 정보

INFO2
원본 파일 경로 및 이름 (File Record)
휴지통 내의 파일 식별자 (Record Number)
원본 파일이 위치하고 있었던 드라이브의 번호 (Drive Designator)
파일이 삭제된 날짜 및 시간 (File Deleted Date/Time)
원본 파일 크기 (Deleted File Physical Size)

$I
원본 파일 크기 (File Size)
파일이 삭제된 날짜 및 시간 (File Delete Date/Time)
원본 파일 경로 및 이름 (File Record)


휴지통은 파일명 규칙에 맞지 않는 파일이 휴지통에 있을 경우, 일반적인 휴지통 열람으로는 내용을 보여주지 않는다.

이와 같은 특성 때문에 악성코드 혹은 사건 용의자가 정보를 은닉하는데 애용되기 때문에 반드시 파일 시스템을 해석하여 내부의 정보를 살펴볼 필요가 있다는 점을 기억하자. 

 

휴지통 폴더 내부에는 사용자 계정 별로 계정 SID 이름으로 된 폴더가 존재하고 서로 공유되지 않고 독립적으로 사용되며 다른 사용자의 접근은 일반 사용자 권한으로는 불가능하다. 그러므로 조사를 원하는 사용자의 휴지통 경로를 구분하여 분석을 진행할 필요가 있다.

 

각 파티션마다 휴지통 폴더가 생기는 이유?

드라이브(파티션)마다 각각 휴지통 폴더가 존재한다. 서로 다른 파티션은 논리적으로 독립된 공간이다. 따라서 같은 파티션 내에서 파일을 이동 시키면 해당 파일 데이터는 그대로 둔 채 경로만 변경한다. 하지만 파티션 간에 데이터를 이동할 경우에는 원본 파티션에서 데이터를 읽어 목적지 파티션에서 해당 데이터를 써야만 한다. 여기서 각 파티션은 하나의 볼륨 내에 존재하는 것을 의미한다.

 

C: 파티션에 운영체제를 설치한 후 D: 파티션에서 파일을 지웠다면 이 파일은 C:의 휴지통 폴더로 이동하는 것이 아니라 D:의 휴지통 폴더로 이동한다. 즉 D: 파티션에서 파일을 지울 때마다 C:로 이동시켜야 하는 번거로움이 없어진다. 그렇지 않다면 큰 파일이나 많은 양의 파일을 한번에 지울 경우 파일을 지우는 시간이 무척 많이 걸릴 것이며 시스템 성능 저하를 초래할 것이다.

 

하지만  바탕화면의 휴지통을 클릭했을 때 C: 파티션뿐만아니라 D: 파티션에서 삭제된 파일도 보이는게 그 이유는 볼륨 내에 존재하는 모든 파티션의 휴지통 폴더에서 같은 휴지통 이름을 가지는 폴더를 전부 링크 시켜 놓아 함께 보여주기 때문이다.

 

Rifiuti
Rifiuti[2] is a for analyzing Windows Recycle Bin INFO2 file in Window XP- and $i Files in Windows Vista+. 

rifiuti.exe : INFO2 파일 분석
rifiuti-vista[64].exe : $i 파일 분석

 

먼저 휴지통 폴더 조회

C:\>dir /ad /s c:\ | findstr /i /c:"recy" 
2020-03-09  오전 09:05              $Recycle.Bin 
 c:\$Recycle.Bin 디렉터리 
 c:\$Recycle.Bin\S-1-5-18 디렉터리 
 c:\$Recycle.Bin\S-1-5-21-795312640-3018449293-233669703-1001 디렉터리 

C:\>dir c:\$Recycle.Bin /s
c:\$Recycle.Bin 디렉터리
2020-03-09  오후 08:30                 2 WhufT^].jpg

 c:\$Recycle.Bin\S-1-5-21-795312640-3018449293-233669703-1001 디렉터리
2019-12-14  오후 01:09               104 $IZ522XF.vscode
2017-11-14  오전 08:41                98 $I4HT8VQ.lnk 
2019-12-20  오후 01:31               102 $IJ8H8A0.lnk 
2019-12-13  오전 09:20               122 $IQRGYB6.lnk 

휴지통 내 lnk 링크 파일은 형식이 lnk 이지만 일반 링크파일 분석 방법으로 분석이 되지 않는다.

 

C:\rifiuti>rifiuti-vista64.exe c:\$Recycle.Bin\S-1-5-21-795312640-3018449293-233669703-1001
Recycle bin path: 'c:\$Recycle.Bin\S-1-5-21-795312640-3018449293-233669703-1001'
Version: 2
Index   Deleted Time    Size    Path
$IZ522XF.vscode 2019-12-14 04:09:57     12      C:\vscodeworkspace\JavaScript\.vscode
......

 

C:\rifiuti>rifiuti-vista.exe f:\$RECYCLE.BIN\S-1-5-21-2555433415-3599755044-3103386514-1001

Recycle bin path: 'c:\$Recycle.Bin\S-1-5-21-795312640-3018449293-233669703-1001'

Version: 2

OS Guess: Windows 10 or above

Time zone: Coordinated Universal Time (UTC) [+0000]

 

Index   Deleted Time    Size    Path

$I27ZKYW.torrent        2019-07-09 12:42:55     105071  C:\Temp\한나몬타나_시즌1.torrent

$IAZX7PY.torrent        2019-07-11 10:32:03     473356  C:\Temp\[limetorrents.info]Hannah.Montana.Season.4.torrent

$I0I5U18.avi    2019-07-11 10:32:12     218361856       C:\Temp\SEZON 4\Hannah Montana Forever.S04E01.640x480.avi

$I4IEUQQ.avi    2019-07-11 10:32:12     222615552       C:\Temp\SEZON 4\Hannah Montana Forever.S04E08.640x480.avi

$I4OEP2Z.avi    2019-07-11 10:32:12     221011968       C:\Temp\SEZON 4\Hannah Montana Forever.S04E09.640x480.avi

......


NTFS Journal Files
$MFT 추출
C:\>RawCopy64.exe /FileNamePath:C:0 /OutputPath:C:\Results

$LogFile 추출
C:\>RawCopy64.exe /FileNamePath:C:2 /OutputPath:C:\Results

$UsnJRNL 추출
C:\>ExtractUsnJrnl64.exe /DevicePath:C: /OutputPath:C:\Results

$UsnJRNL CSV 저장, 반드시 Comma로 필드 분리
C:\>UsnJrnl2Csv64.exe /UsnJrnlFile:C:\Results\$UsnJrnl_$J.bin /OutputFormat:csv /Separator:,

/OutputPath:C:\Dropbox\DFIR\Window\FileSystem\Results

C:\>LogParser.exe -h -i:CSV c:\Results\UsnJrnl_2019-07-18_23-37-34.csv -headerrow:on
Fields:
  Filename (S)           RowNumber (I)               癤풭ffset (S)
  FileName (S)           USN (I)                     Timestamp (T)
  Reason (S)             MFTReference (I)            MFTReferenceSeqNo (I)
  MFTParentReference (I) MFTParentReferenceSeqNo (I) FileAttributes (S)
  MajorVersion (I)       MinorVersion (I)            SourceInfo (S)
  SecurityId (I)

C:\>LogParser.exe -stats:on -i:csv "select Timestamp, FileName,  FileAttributes, reason

from UsnJrnl_2019-07-18_23-37-34.csv where reason like '%delete%'"
Timestamp           Filename                                                                  FileAttributes           Reason
------------------- ------------------------------------------------------------------------- ------------------------ ------------
2019-07-17 01:51:25 C:\Results\UsnJrnl_2019-07-18_23-37-34.csv archive                  CLOSE+FILE_DELETE
2019-07-17 01:51:25 C:\Results\UsnJrnl_2019-07-18_23-37-34.csv archive                  CLOSE+FILE_DELETE
2019-07-17 01:51:55 C:\Results\UsnJrnl_2019-07-18_23-37-34.csv hidden+archive+temporary CLOSE+FILE_DELETE
2019-07-17 01:51:55 C:\Results\UsnJrnl_2019-07-18_23-37-34.csv archive                  CLOSE+FILE_DELETE
2019-07-17 01:52:20 C:\Results\UsnJrnl_2019-07-18_23-37-34.csv hidden+archive+temporary CLOSE+FILE_DELETE
2019-07-17 01:52:20 C:\Results\UsnJrnl_2019-07-18_23-37-34.csv archive                  CLOSE+FILE_DELETE
2019-07-17 01:52:20 C:\Results\UsnJrnl_2019-07-18_23-37-34.csv hidden+archive+temporary CLOSE+FILE_DELETE
2019-07-17 01:52:20 C:\Results\UsnJrnl_2019-07-18_23-37-34.csv archive                  CLOSE+FILE_DELETE
2019-07-17 01:53:26 C:\Results\UsnJrnl_2019-07-18_23-37-34.csv archive                  CLOSE+FILE_DELETE
2019-07-17 01:53:26 C:\Results\UsnJrnl_2019-07-18_23-37-34.csv archive                  CLOSE+FILE_DELETE
......

Windows Search DB

Windows Search DB를 통해서도 삭제 파일 정보 확인 가능

WinSearchDBAnalyzer Tool

- 삭제된 파일에 대한 정보 및 파일 내용도 확인 가능

반응형

반응형

다운로드 받은 파일 조회

 

각 파일의 Zone.Identifier 값으로 다운로드 여부를 판단하며 Zone.Identifier 값이 3이면 인터넷으로부터 다운로드된 파일이라   있다.


Zone.Identifier는
 ADS 일종으로 아래와 같은 값을 가진다.

Zone ID

1 - 로컬 인트라넷

2 - 신뢰할 있는 사이트(URLZONE_TRUSTED)

3 - 인터넷

4 - 제한된 사이트(URLZONE_UNTRUSTED)

 

분석
ADSIdentifier Tool

Windows-based command-line application that identifies, and optionally removes, NTFS Alternate Data Streams.


F:\tool\forensic>ADSIdentifier.exe /folder:f:\

Dir Command

F:\tool\forensic>dir f: /S /R | findstr /i /c:":$D" |findstr /i /c:"Zone.Identifier"

Powershell

PS F:\tool\forensic> get-ChildItem f:\* -Recurse -ErrorAction SilentlyContinue | get-item -Stream Zone*

다운받은 파일을 어디서 다운받았는지 출처 확인

네이버에서 "한글양면인쇄.pdf" 파일을 다운받은 후 아래 명령어로 확인

C:\temp>more < 한글양면인쇄.pdf:Zone.Identifier

[ZoneTransfer]

ZoneId=2  <- ZoneID가 3이 아닌 2이네. 추가 혹인이 필요해 보임

ReferrerUrl=https://cloud.naver.com/

HostUrl=https://files.cloud.naver.com/file/download.api?resourceKey=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

반응형

반응형

사용자의 PC 사용 성향, 패턴을 분석하는데 유용하다, 문서 작업을 많이 하는지 인터넷을 많이 하는지.......주로 어떤 프로그램을 많이 실행하는지 또한 고의적으로 삭제하지 않는 한 OS에 의해 삭제되지 않으므로 삭제된 프로그램이나 파일의 사용 흔적을 조사할 수 있다.

RecentDoc 분석
Windows 탐색기를 통해 최근 오픈된 문서 목록
최근 접근(사용) 폴더/문서, 거의 lnk 파일 ( = 바로가기 파일) 형태로 존재, 폴더 목록에 대한 lnk 파일도 존재한다.

Recent 디렉터리에는 최근에 사용된 파일이나 폴더들의 항목들이 '바로가기'의 형태로 존재

C:\Users\<username>\AppData\Roaming\Microsoft\Windows\Recent Folder

F:\temp>dir /a-d C:\Users\chohb\AppData\Roaming\Microsoft\Windows\Recent Folder /O-D 
2020-03-09  오후 01:42               466 temp (9).lnk 
2020-03-09  오후 01:42               687 DFIR-Windows-Behaviour-Analyze.docx.lnk 
2020-03-09  오후 12:51               748 2020년도.lnk
......


링크파일분석 참고 : https://secuworld.tistory.com/24?category=849780

폴더로 관리되는 RecentDoc은 최근에 접근, 열람한 문서 정보가, 레지스트리에 저장되는 UserAssist는 주로 최근에 실행한 응용 프로그램 정보가 저장된다.

 

참고로 최근 열어본 문서 레지스트리
HKU\%UserSID%\Software\Microsoft\Office\{Version}\{Program}\File MRU
HKLM\Software\HNC\Hwp\6.5\RecentFile
HKLM\Software\HNC\Hwp\{Version}\HwpFrame\RecentFile
HKU\%UserSID%\Software\Adobe\Acrobat Reader
HKU\%UserSID%\Software\Adobe\Adobe Acrobat
HKU\%UserSID%\Software\Microsoft\Windows\CurrentVersion\Explorer\RecentDocs
HKU\%UserSID%\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\LastVisitedMRU
HKU\%UserSID%\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\LastVisitedPidlMRU
HKU\%UserSID%\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\OpenSaveMRU
HKU\%UserSID%\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\OpenSavePidlMRU

RecentfilesView
GUI

CLI
F:\tool\forensic\recentfilesview>RecentFilesView.exe /sxml "f:\temp\RecentFiles.xml" /sort ~"Modified Time"


F:\tool\forensic\recentfilesview>F:\tool\forensic\LogParser\LogParser.exe -i:xml "select * from 'f:\temp\RecentFiles.xml'"

 

RecentFiles.xml 파일 내용

regripper
F:\tool\forensic\recentfilesview>F:\tool\forensic\RegRipper2.8\rip.exe -r f:\test\reg-hive-backup\chohb.NTUSER.DAT -p recentdocs

F:\tool\forensic\recentfilesview>F:\tool\forensic\RegRipper2.8\rip.exe -r f:\test\reg-hive-backup\chohb.NTUSER.DAT -p recentdocs_tln

JumpList 분석

Win 7 이상 . 최근 접근한 문서나 자주 열람하는 문서 정보

윈도우 7 이전에는 Recent와 UserAssist로 사용자의 편의성을 위하여 목록들을 유지하였다. 하지만 7에 와서는 이 두개에 더해 새로운 기능이 추가되었는데 바로 점프리스트이다. 점프리스트란 작업 표시줄에서 아이콘에 마우스를 우클릭하면 이전에 열었던 목록이나 자주 여는 파일의 목록들이 나타난다. 이를 점프리스트라 한다.

점프 목록은 윈도우 7+에서 응용프로그램 실행 시 작업 표시줄에 표시된다. 작업 표시줄에 나타나는 응용프로그램에 마우스를 위치시킨 후 마우스를 우클릭하면 해당 응용프로그램으로 최근에 열거나 사용했던 파일들이 표시된다. 이를 점프 목록이라 부른다. 다음은 Adobe Acrobat 프로그램의 점프 목록이다.

바로가기(lnk, 링크파일)는 단순히 특정 개체에 대한 정보와 실행 통로를 제공해 주는데에 그치는 반면, 점프 리스트는 아래와 같은 정보를 추가적으로 저장하여 사용자의 편의를 높혀준다.

  • Recent(최근 항목) : 응용프로그램을 통해 최근 열람한 파일. 기존 최근 접근 문서 목록도 점프리스트에 포함
  • Frequent(자주 사용하는 항목) : 응용프로그램을 통해 자주 열람하는 파일
  • Tasks(작업) : 경우에 따라 미디어 재생, 새 문서 작성 등의 기능을 빠르게 이용
  • Pinned(사용자 고정) : 응용프로그램의 사용이 종료되어도 작업 표시줄에 응용프로그램 아이콘을 남겨두기 위한 기능(사용자가 자주 사용하는 응용프로그램일 가능성이 크다)

점프리스트는 Windows 7부터 추가된 기능으로 바로가기의 확장형이라고 볼 수 있기 때문에, 정보의 해석과 활용은

바로가기 링크 파일과 유사하다. 다만 기존 링크파일 외 새롭게  추가된 전용 포멧을 사용하는 .CustomDestinations 파일과 컴파운드 파일 포맷을 사용하는 .automaticDestination-ms 파일이 각각 존재하기 때문에, 전용 도구와 컴파운드 뷰어를 활용하여 추가로 분석을 해야한다. 

“Recent” 라는 이름으로 이전에 Acrobat으로 열었던 파일 목록을 저장하고 있다. 자주 방문한 경로나 파일은 “Frequent” 라는 이름의 목록으로 따로 표현해 주기도 한다. 이러한 목록을 점프 목록이라 한다. 점프 목록은 특정 응용프로그램에만 적용되는 것이 아니라 윈도우 탐색기(Windows Explorer)와 같은 기본 프로그램에도 적용된다. 윈도우 탐색기의 점프 목록은 최근에 방문했던 폴더 경로가 포함되어 있다. 단순히 방문만 한다고 기록되는 것은 아니고 특정 폴더에서 파일을 실행시키거나 행위를 했을 때만 점프 목록에 기록된다. 브라우저의 경우에는 최근에 방문한 사이트 경로나 자주 사용하는 사이트 경로도 저장된다. 게다가 브라우저에 따라 최근 닫은 사이트 경로도 포함해주기도 한다. 

이처럼 점프 목록은 이전부터 사용된 응용프로그램 로그인 “Recent” 폴더(최근 사용 문서)나 “UserAssist” 키보다 더 많은 그리고 더 중요한 정보를 포함하고 있다. 게다가 최근 사용 문서 정보처럼 사용자가 일부러 삭제하지 않는 이상 운영체제 설치때부터 계속해서 관련 로그를 저장한다. 따라서, 윈도우 7에서 포렌식 분석 시 필수적으로 분석해야 하는 자료 중 하나이다.

 

포렌식 관점에서 Jump List는 사용자의 응용프로그램 사용 흔적 및 패턴을 파악할 수 있고 윈도우 설치 시부터 자동 설정되는 부분도 있기 때문에 의도적으로 삭제하는 경우가 아닌 이상 지속적으로 로그가 저장이 된다. 만약 삭제될 경우에도 볼륨에 그대로 유지되어 복구가 가능하다.

 

JumpList는 기존 RecentDoc 및 UserAssist 외 Win7+ 에서 추가로 생성

자주 사용하는 문서 + 자주 사용하는 프로그램 <- MRU 알고리즘에 의해 MRU List로 관리

운영체제가 자동으로 생성하거나 사용자가 생성(Pinned)

링크파일(lnk)이 아닌 CDF(Compound Document File) 형태로 존재

   . AutomaticDestinations 폴더의 내용은 CDF(Compound Document File; 이하 복합문서) 형태로 저장
   . Compound File Explorer(CFX;
http://www.coco.co.uk/developers/CFX.html) 를 통해 구조 분석 가능
   . CustomDestinations의 경우 자체 포멧을 사용
악성 파일 실행 흔적 / 외장저장장치 파일 열람 흔적  /  웹 사이트 접속 이력 확인 가능
AutomaticDestinations, CustomDestinations 두 가지 점프리스트 포멧이 모두 내부적으로는 바로가기(.lnk) 파일을 포함하고 있어서 분석 관점에서 정보의 해석과 활용은 바로가기 파일과 교차하여 진행하는 것이 좋다. 

 

또한 JumpList의 항목은 사용자의 삭제 행위에 의해서만 삭제되기 때문에, 의도적으로 삭제되지 않는 한 파일이나 프로그램 사용에 관련된 정보를 획득할 수 있다. 반대로는 삭제된 흔적이 발견되는 경우, 사건에 관련하여 용의자 의도를 의심해볼 필요가 있을 것이다. 단, 점프 리스트 자체를 사용하지 않음으로 설정하면 관련 파일들이 모두 삭제되어진다.

※ Compound Document Format : FAT 파일 시스템과 굉장히 유사한 형태로 되어 있는 파일 포멧으로, 파일 시스템이 파일을 저장하듯 내부의 스트림(Stream)으로 데이터를 저장, 관리할 수 있기 때문에 목적에 따라 자주 사용되는 포멧이다. (대표적으로는 Office 2003까지의 문서 파일들이 사용하였고, 지금 설명하는 점프리스트의 AutomaticDestinations 파일이나, 윈도우의 스티커 노트, HWP 문서 등이 이 포멧을 사용한다.)

 

AutomaticDestinations
자주 사용되는 목록(Frequent)나 작업목록(Tasks)가 존재 -> 운영체제가 자동 생성
F:\temp>dir /a-d c:\Users\chohb\AppData\Roaming\Microsoft\Windows\Recent\AutomaticDestinations /O-D
2020-03-09  오후 01:52         2,455,770 f01b4d95cf55d32a.automaticDestinations-ms
2020-03-09  오후 01:52           424,960 7fbc827655307cb6.automaticDestinations-ms
2020-03-09  오후 01:51         3,270,144 5f7b5f1e01b83767.automaticDestinations-ms"
......

CustomDestinations
최근 사용한 목록(Recent)나 사용자가 직접 고정시킨 항목(Pinned)  -> 응용프로그램이 자동 생성 + 사용자 생성

F:\temp>dir /a-d c:\Users\chohb\AppData\Roaming\Microsoft\Windows\Recent\CustomDestinations /O-D
2020-03-09  오후 01:35            22,354 5d696d521de238c3.customDestinations-ms
2020-03-09  오전 08:48             5,349 99fdce3ec7898a04.customDestinations-ms
2020-03-09  오전 08:46                24 f18460fded109990.customDestinations-ms
......

 

파일명 구성 : 앞의 16글자는 Application ID로 각 App에 해당하는 ID를 띄고 있으며 각 파일의 내부를 확인해보면 여러 항목들이 존재하는 것을 확인할 수가 있다. 이러한 App ID는 http://kali-km.tistory.com/entry/Jump-List-App-ID  에서 Ctrl+F로 찾아서 어떠한 프로그램의 점프 리스트 목록인지 확인할 수가 있다.

 

내용을 확인할 때는 HxD로 열어서 확인하거나 BinText를 통해서도 확인이 가능하다. 하지만 정확히 분석하기 위해서는 JumpList와 관련된 툴을 이용하는 것이 좋다.

 

분석

JumplistView Tool

GUI

Jump list filename이 데이터 출처이다. 이를 통해 OS나 응영프로그램이 자동으로 생성한 것인지

사용자가 직접 생성한 것인지 파악할 수 있다.

 

CLI
F:\tool\forensic\jumplistsview>JumpListsView.exe /sxml F:\temp\JumpList.xml
F:\tool\forensic\jumplistsview>F:\tool\forensic\LogParser\LogParser.exe -stats:off -i:xml "select filename, full_path, accessed_time, application_name from 'F:\temp\JumpList.xml'"

JLECmd

F:\tool\forensic\jumplistsview>F:\tool\forensic\JLECmd.exe -d c:\Users\chohb\AppData\Roaming\Microsoft\Windows\Recent\AutomaticDestinations all

F:\tool\forensic\jumplistsview>F:\tool\forensic\JLECmd.exe -d c:\Users\chohb\AppData\Roaming\Microsoft\Windows\Recent\CustomDestinations all

반응형

반응형

파일 행위 분석-LastVisitedPidlMRU

Windows XP의 LastVisitedMRU 이름이 Windows Vista 부터 LastVisitedPidlMRU로 변경

LastVisitedPidlMRU 키는 응용프로그램에서 파일을 열기 위해 사용하는 특정 실행 파일을 추적합니다.
또한 각 값은 해당 응용프로그램이 액세스 한 마지막 파일의 디렉토리 위치를 추적합니다. 즉 최근에
사용자가 사용한 프로그램 및 최근에 접근한 폴더를 확인이 가능하다.

레지스트리 주요경로 
Windows XP- 
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\LastVisitedMRU

HKU\[SID]\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\LastVisitedMRU


Windows 7+ 

HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\LastVisitedPidlMRU

HKU\[SID]\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\LastVisitedPidlMRU


HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\LastVisitedPidlMRU

HKU\[SID]\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\LastVisitedPidlMRU

최근 10개 데이터 조회
해당 레지스트리 값은 REG_BINARY 값이므로 reg query로 조회하면 직접 한 번에 내용을 읽을 수 없으므로 아래와 같은 방법으로 분석한다.

 

분석

분석 데이터는 최근 사용자 TimeLine 분석(https://secuworld.tistory.com/16) 을 통해 확인할 수 있다.

LastActivityView

Data Source를 보면 OpenSavePidlMRU, LastVisitedPidlMRU 등 레지스트리도 추출하여 표시한다.

 

RegRipper / rip.exe

regripper Tool 모든 plugin 분석

C:\>rip.exe -r "C:\Test\reg-hive-backup\chohb.NTUSER.DAT" -f ntuser >> c:\temp\rr-ntuser.txt


rr-ntuser.txt 파일 내용

응용 프로그램별로 가장 최근에 접근한 폴더 확인

 

반응형