Security & Forensic

반응형
디지털 포렌식 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

 

반응형

반응형

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 등 검색에 유효

 

반응형

반응형

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

 

분석을 위해 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은 상업적 목적이나 용도로 사용되어서는 안된다.

반응형