Security & Forensic

반응형

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

 

분석을 위해 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 

반응형