'공부'에 해당되는 글 93건

  1. 2012.05.07 Sysinternals
  2. 2012.01.10 Windows Vista/7 Recycle.bin 분석 1
  3. 2011.12.19 NT/2K/XP 휴지통 파일 분석 4

Sysinternals

공부/Forensics 2012. 5. 7. 20:51 |


- Sysinternals 툴 소개 -



레알 말이 필요없는 프로그램이다.



툴이름

개요

I/F

Sysinternals Suite

Sysinternals 모든 툴 세트

-

AccessChk

파일이나 레지스트리, 서비스에 대해서 사용자/그룹이 가지는 액세스 권한의 체크

CUI

AccessEnum

폴더나 파일, 레지스트리에 대한 퍼미션(Read/Write/Deny )의 체크

GUI

AdRestore

Windows Server 2003 도메인 콘트롤러로부터 삭제된 객체를 다시 이용하도록 한다

CUI

Autologon

자동 로그 온을 설정

GUI

Autoruns

시작 시나 로그인 시, 익스플로러나 IE 시작 시 등에 자동 실행되는 프로그램의 목록·설정

GUI/CUI

BgInfo

시스템 정보나 네트워크 설정 등을 이미지화한 화면를 작성해 설정한다

GUI/CUI

BlueScreen

블루스크린이라 불리는 에러 화면을 본뜬 스크린 세이버

-

CacheSet

캐쉬 크기의 상한과 하한을 조정해 설정한다

GUI

ClockRes

시스템의 시각 시계의 분해가능을 표시

CUI

Contig

명령 라인판의 경량인 defrag

CUI

Ctrl2cap

키보드의Ctrl ()Caps Lock를 바꿔 넣는 커넬 모드의 디바이스 드라이버

CUI

DebugView

OutputDebugString ()DbgPring 으로부터의 디버그 정보를 표시

GUI

DiskExt

디스크 매핑을 표시

CUI

Diskmon

물리 디스크에의 액세스를 표시

GUI

DiskView

하드 디스크의 단편화 상태나 지정한 파일의 위치를 표시

GUI

Du

지정한 디렉토리의 사용 상황을 표시

CUI

EFSDump

EFS (Encrypting File System) 그리고 암호화된 파일/디렉토리 정보의 표시

CUI

Filemon

파일 시스템에의 액세스 상황을 실시간에 표시

GUI

Handle

열려 있는 파일이나 디렉토리를 표시

CUI

Hex2dec

10 진수/16 진수 변환의 계산기

CUI

Junction

심볼링크의 작성

CUI

LDMDump

LDM (논리 디스크 매니저) 데이터베이스의 내용을 표시

CUI

ListDLLs

현재 이용하고 있다DLL를 목록표시

CUI

LiveKd

마이크로소프트의 커넬 디버거를 사용하여 가동중의 시스템을 조사

CUI

LoadOrder

시스템에 읽히고 있는 디바이스 드라이버를 목록표시

CUI

LogonSessions

시스템 상에서 가동 중인 로그 온 세션을 목록표시

CUI

MoveFile

다음 시작 시로 지정 파일의 이동/삭제의 실행

CUI

NewSID

SID (보안 식별자)을 임의의 것으로 변경

GUI

NTFSInfo

NTFS 볼륨의 크기나 MFT(Master File Table )에 관한 정보를 표시

CUI

PageDefrag

페이지 파일과 레지스트리 하이브의 defrag를 실행

GUI

PendMoves

다음 시작 시에 rename/삭제가 실행되는 파일의 목록표시

CUI

Portmon

시리얼과 패러렐 포트의 가동 상황의 모니터링 툴

GUI

Process Explorer

가동중의 프로세스에 관해서 다채로운 기능을 제공하는 강력한 툴

GUI

Process Monitor

파일 시스템이나 레지스트리, 프로세스등의 가동 상황의 모니터링 툴

GUI

ProcFeatures

프로세서의 정보를 표시

CUI

PsExec

지정한 사용자로 로컬/원격으로 프로세스를 실행

CUI

PsFile

원격로부터 열리고 있는 파일을 표시

CUI

PsGetSid

지정한 컴퓨터/사용자의SID를 표시

CUI

PsInfo

원격 레지스트리API 에 액세스하여 로컬/원격의 시스템 정보의 표시

CUI

PsKill

프로세스명/ID를 지정해 로컬/원격의 프로세스를kill

CUI

PsList

로컬/원격의 프로세스 정보를 표시

CUI

PsLoggedOn

로컬/원격의 컴퓨터에 로그인중의 사용자를 표시

CUI

PsLogList

로컬/원격의 이벤트 로그의 내용을 표시

CUI

PsPasswd

로컬/원격의 사용자의 패스워드 변경

CUI

PsService

로컬/원격의 서비스 상태의 표시와 제어

CUI

PsShutdown

로컬/원격의 컴퓨터의 셧다운과 재시작의 실행

CUI

PsSuspend

로컬/원격의 프로세스의 중지와 resume의 실행

CUI

PsTools

툴명이 「Ps 」으로 시작되는 일련의 툴 모음

CUI

RegDelNull

통상의 레지스터리 편집기에서는 지울 수 없는 키의 삭제

CUI

RegHide

통상의 레지스터리 편집기에서는 안보이는 키의 작성

CUI

Regjump

레지스트리 패스를 지정해regedit를 시작

CUI

Regmon

레지스트리에의 액세스의 모니터링 툴

GUI

RootkitRevealer

rootkit 베이스의 멀웨어 검출 툴

GUI

SDelete

미 국방총성 준거 방식 등을 사용한 파일/디렉토리 등을 소거

CUI

ShareEnum

네트워크내의 파일 공유의 상황을 표시

GUI

Sigcheck

파일의 버젼 정보나 디지털 서명등을 표시

CUI

Streams

NTFS 의 대체 데이터 스트림(ADS)을 검출

CUI

Strings

바이노리필드 내의 UNICODE /ASCII 문자열을 표시

CUI

Sync

디스크의 데이터를 플래시(UNIXsync 명령)

CUI

TCPView

프로세스와 관련시켜 TCP/UDP 상태를 표시

GUI/CUI

VolumeID

FAT /NTFS 드라이브의 볼륨 레벨을 설정

CUI

Whois

NIC 의 등록 정보의 표시(whois 명령)

CUI

WinObj

객체 매니저 이름 공간의 표시

GUI

ZoomIt

데스크탑 화면의 확대 표시와 페인트 도구

GUI

'공부 > Forensics' 카테고리의 다른 글

데이터 복구와 파일 카빙의 차이점  (0) 2012.07.05
[PaulTew]Timelord  (0) 2012.07.05
DLL(Dynamic Link Library)  (1) 2012.05.07
Windows Vista/7 Recycle.bin 분석  (1) 2012.01.10
NT/2K/XP 휴지통 파일 분석  (4) 2011.12.19
Posted by extr
:


저번 NT/XP/2K 버젼의 Recycler 분석에 이어, windows vista/7의 Recycler에 대해 알아보도록 하겠습니다.

Windows vista/7 의 버젼과 그 이전 버젼들을 비교하여 가장 쉽게 겉으로 보이는 특징들을 말해보자면 두 가지 정도가 있습니다.

 첫 번째로, 시스템 폴더의 이름이 바뀌었다는 것.. Recycler에서 Recycle.bin으로 재명명되었습니다.

두 번째 특징은 INFO2 레코드를 사용하지 않고 대신에 $I~형식의 파일을 사용해서 정보를 기록하는데, 이는 밑에서 더 자세히 알아보겠습니다.

OS INFO2 Record Length System Folder File System
Windows 95/98/ME 800 Bytes C:\Recycled FAT32
Windows NT/2K/XP 800 Bytes C:\Recycler\[UserSID] NTFS
Windows Vista/7 Not used. C:\$Recycle.bin\[UserSID] NTFS

[Windows Recycler]

파일이 삭제가 되면 이전에는 D[volume][index].[file extension] 형식으로 간단히 저장이 되었지만
vista 이후 버젼부턴 조금 달라집니다.

[그림 1] Recycle.bin 내부의 $R~ 파일들

이런 식으로 삭제된 실제 파일은 $R[랜덤 문자열].[원본 확장자(없을 시, 폴더)] 파일 형식을 지니며 존재하게 되는데요.

이 파일들의 정보가 기록되어있는 파일(이전의 INFO2와 같은) 또한 따로 존재한답니다.

[그림 2] Recycle.bin 내부의 $I~ 파일들

파일이 삭제되면 파일의 메타 데이터만 삭제가 되고 실제 데이터는 삭제가 되지 않습니다.
 
그러므로, 다시 복원을 해야하는 경우 이 메타 데이터를 다시 복구를 하기 위해 vista 이후 버젼에는 $I~파일,

vista 이전 버젼에는 INFO2 파일로 관리를 해왔습니다.

INFO2와 비슷하게, $I~ 파일 내부에는 파일이 삭제된 시간, 삭제된 위치, 삭제된 파일의 크기등이 기록되어 있습니다.


 Data Structure Data Size Data Offset Range
File Header 8Bytes 0 - 7 (0x000 - 0x007)
File Size 8Bytes 8 - 15 (0x008 - 0x00F)
File Deleted Date and Time 8Bytes 16 - 23 (0x010 - 0x017
File Name and Path (Before being Deleted) 520Bytes 24 - 543 (0x018 - 0x21F)
[$I Record Structure]

[그림 3] $I 파일에서 png파일 레코드

'공부 > Forensics' 카테고리의 다른 글

데이터 복구와 파일 카빙의 차이점  (0) 2012.07.05
[PaulTew]Timelord  (0) 2012.07.05
DLL(Dynamic Link Library)  (1) 2012.05.07
Sysinternals  (0) 2012.05.07
NT/2K/XP 휴지통 파일 분석  (4) 2011.12.19
Posted by extr
:




휴지통(RECYCLE BIN)은 본래 파일을 삭제하기 위해 임시적으로 보관하는 목적을 지니고 있지만, 

보관을 함으로써 우연찮게 실수로 삭제된 파일을 복구할 수 있게 해준다.

 

휴지통

[그림 1] 휴지통 내부 모습

보통 파일을 삭제하는 방법은 일반적으로 Delete키를 이용하거나 휴지통으로 파일을 드래그한 뒤

휴지통 비우기를 이용하여 포렌식 측면에서 안전하게 삭제하는 방법이 있지만,

어떤 이유에서인지 귀찮아서 Shift+Delete 키를 이용하여 영구적으로 삭제해버리는 경우도 많다. 

하지만 이런 경우엔 데이터 복구 프로그램으로 쉽게 복구가 가능하다고 하니 가급적 안전하게 삭제하는 것이 좋다.


OS INFO2 Record Length System Folder File System
Windows 95/98/ME  800 Bytes C:\Recycled FAT32 
Windows NT/2K/XP 800 Bytes C:\Recycler\[UserSID] NTFS
Windows Vista/7 Not used. C:\$Recycle.bin\[UserSID] NTFS

[Windows Recycler]


위 표는 윈도우의 버젼별로 휴지통을 비교한 것이다.

가장 큰 특징으론 윈도우 비스타 이후로는 INFO2를 사용하지 않는 대신 $I~파일을 사용한다는 것이고,
휴지통 폴더 이름 앞에 메타 데이터 파일처럼 $가 붙는다는 것이 존재한다.


[그림 2] FTK에서의 RECYCLER 내부 모습


RECYCLER의 하위 디렉토리로는 하나 또는 그 이상의 User SID가 적혀있는 숨김 파일 폴더가 존재하는데,

이 폴더는 한 번 이상 휴지통을 이용하여 삭제한 적이 없다면 생성되지 않는다.

User SID 하위에는 휴지통을 사용해 삭제된 파일 또는 폴더가 존재하게 된다.

삭제된 파일 또는 폴더의 형식은 다음과 같다.


D(Deleted)[원본 파일이 존재 했던 드라이브 문자][인덱스 번호].[원본 파일 확장자(폴더라면 없음)]


예를 들어서 C드라이브에 존재하는 zip파일을 3번째로 삭제를 했다면 Dc3.zip이 되는거고,
E드라이브에 존재하는 폴더를 5번째로 삭제했다고 가정하면 De5가 되는 것이다.

(참고 - 인덱스 번호는 Windows 2000 이전까지는 0부터 시작했지만, XP 이후로는 1부터 시작한다.)


이렇게 Deleted 파일을 만드는 이유는 첫째, 다른 폴더에 동일한 파일명을 지닌 파일이 삭제되었을 때 구별하기 위함이고,


둘 째로 파일이 삭제된 시간과 삭제된 원본 위치는 MFT entry에 존재하지 않는 정보이기 때문에 그것을 보관하기 위해
별도의 파일을 만들어야 하기 때문이다.


Deleted 파일을 다시 복원하려고 할 때 파일 컨텐츠는 그대로 가지고 있으므로 문제가 되지 않지만,


파일 명이나 원본 경로가 완전히 바뀌어 버렸기 때문에 복구 대상 파일 만으로는 완벽하게 복구할 수는 없다.

하지만 INFO2의 정보를 이용하여 쉽게 복구가 가능한데..

복구하는 방법을 살펴보기 전에 INFO2의 구조부터 파악해보자.


Data Structure Data Size Data Offset Range
 Unknown  12Bytes 0 - 11 (0x001 - 0x00B)
Record Size (0x320)  4Bytes 12 - 15 (0x00C - 0x00F)
[INFO2 Header Structure]

이것은 INFO2 헤더의 구조이다.

헤더 중 제일 앞 12byte 영역은 4byte씩 세 부분으로 나뉘어져 있는 것 같은데, 정확한 의미는 아직 파악되지 않은 것으로 알려져 있다.

그 뒤에 나오는 4바이트 영역이 레코드 크기를 의미하며 이는 항상 0x320으로 고정된 값을 지니고 있다.


Data Structure Data Size Data Offset Range
Unknown  4Bytes 0 - 3 (0x000 - 0x003)
File Record (ASCII) 260Bytes 4 - 263 (0x004 - 0x107)
Record Number 4Bytes 264 - 267 (0x108 - 0x10B)
Drive Letter 4Bytes 268 - 271 (0x10C - 0x10F)
Deleted Time/Date (64bit Windows Time) 8Bytes 272 - 279 (0x110 - 0x117)
Deleted File Original Size 4Bytes 280 - 283 (0x118 - 0x11B)
File Record (UNICODE) 516Bytes 284 - 799 (0x11C - 0x31F)
[INFO2 Record Structure]

앞서 헤더 영역에서와 마찬가지로 첫 4byte가 어디에 사용되는지 정확한 의미는 파악이 되지않고 있다.

파일 레코드 영역은 해당 파일의 전체 경로(드라이브 문자부터 파일의 확장자까지)를 의미한다.


[그림 3] INFO2에서의 test.txt에 대한 파일 레코드



복구 방법은 의외로 간단하다.

복원 할 대상 파일에 대하여 새로운 MFT entry를 할당하는 것 만으로도 사실상 파일 자체의 복원은 끝이난다.
(새로 할당된 MFT Entry는 삭제되었던 오리지널 파일과 완전 동일하다. 단, Access Time은 제외한다.)

파일 자체의 복구가 아닌, 기록까지 완벽히 없애기 위해선 다음과 같은 프로세스를 거쳐야한다.


1.엔트리가 구성되었다면 RECYCLER에 존재하는 복원 대상 파일의 Deleted File을 삭제한다.

2.파일이 삭제됨에 따라, 동시에 INFO2 Record의 존재 또한 필요가 없어졌으니 간단히 Record 영역을 삭제해버리면 된다.

2번 같은 경우, 모든 Record를 삭제해도 되긴하다만, 첫 문자를 예약된 문자로 처리하면 쉽게 무시할 수 있으므로,

해당 Record에 있는 전체 경로의 첫 문자를 0x00으로 변경해버리면 쉽게 작업을 할 수가 있다.

복구에 대한 유틸리티도 상용에 많이 나와있으니 그것을 이용해도 좋을 것 같다. 

'공부 > Forensics' 카테고리의 다른 글

데이터 복구와 파일 카빙의 차이점  (0) 2012.07.05
[PaulTew]Timelord  (0) 2012.07.05
DLL(Dynamic Link Library)  (1) 2012.05.07
Sysinternals  (0) 2012.05.07
Windows Vista/7 Recycle.bin 분석  (1) 2012.01.10
Posted by extr
: