본문 바로가기
해킹/디지털포렌식

[SUA][4주차]Windows Registry내용 정리, regedit 등 도구 사용하여 실습

by IT공부방 2022. 7. 4.

1. Windows Artifacts

->아티팩트란, 사전에서는 인공물, 유물을 의미한다.

->디지털포렌식에서는 운영체제나 애플리케이션을 사용하면서 생성되는 흔적을 의미한다. 즉, 윈 도우가 가지고 있는 특유의 기능들과 그 기능을 구현하는데 필요한 요소들로부터 찾을 수 있는 여러가지 정보이다. 보통 시스템에 생성되는 증거를 2가지(생성증거, 보관증거)로 분류하는데 생성 증거(프로세스, 시스템에 자동으로 생성한 데이터)에 해당하는 것이 아티팩트이다.

 

 

 

2. Registry

->정의 : 레지스트리란, 윈도우 운영체제와 응용 프로그램 운영에 필요한 정보를 담고 있는 계층 형 데이터베이스이다. 모든 하드웨어, 운영체제 및 응용 프로그램 설정 정보, 서비스의 중요 데이 터 등이 기록되어 있다. 또한 부팅과정부터 로그인, 서비스와 응용 프로그램 실행 등의 모든 활동 에 관여하며 윈도우 시스템의 모든 정보가 담겨 있다고 생각하면 된다.

 

->레지스트리 구조 : 레지스트리는 키와 값이라는 두 가지 기본 요소를 포함한다. 여기서 키는 폴 더와 비슷하다. 그리고 각 키는 서브키를 가질 수 있으며 백슬래시를 사용하여 키의 계급 수준을 나타낸다. 즉, 키의 서브키와 서브키의 서브키 구조가 나타난다.

 

->레지스트리 조회 : 레지스트리를 조회해보면 루트 키, value, type, data의 정보를 확인할 수 있다. 윈도우 작업표시줄 검색창에 regedit하면, 레지스트리 편집기가 나타난다. 총 5개의 키(폴더)가 나 타나고 그 아래에 여러 서브키가 존재하는 것을 확인할 수 있었다.

 

->아래는 레지스트리의 루트 키에 대한 내용이다. 약어를 사용해서 레지스트리 편집기의 검색창 에 검색 가능하다.

-HKEY_CLASSES_ROOT (HKCR) : 파일 확장자 연결정보, com객체 등록정보

-HKEY_CURRNET_USER (HKCU) : 현재 시스템에 로그인된 사용자의 프로파일 정보

-HKEY_LOCAL_MACHINE (HKLM) : 시스템 하드웨어, 소프트웨어 설정 및 기타 환경 정보

-HKEY_USERS (HKU) : 시스템의 모든 사용자와 그룹에 관한 프로파일 정보

-HKEY_CURRNET_CONFIG (HKCC) : 시스템이 시작할 때 사용되는 하드웨어 프로파일 정보

 

 

2-1)Timezone

->경로 : HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation

->다양한 운영체제가 서로 다른 시간대를 구현하고 있기 때문에 TIMEZONE 정보는 중요하다.

->구성

- Bias : 현지 시간 변환에 대한 현재 분을 나타낸다. Bias를 통해 현재 컴퓨터의 Timezone을 알 수 있다. 참고로 현재 컴퓨터 설정은 utc+9이다. 여기서 utc는 국제 표준시이다. 우리나라가 국제 표 준시보다 9시간 빠르다는 의미이다.

- TimeZoneKeyName : 로컬 컴퓨터의 표준 시간대 이름을 나타낸다.

 

2-2)Systeminfo

->경로 : HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion

->운영체제와 사용자, 조직, 시스템에 등록된 컴퓨터 이름, 마지막 종료 시간 등의 시스템과 관련 된 정보들을 확인할 수 있다.

->구성

-ProductName : 운영체제 이름

-Owner : 사용자의 이름

-Productid : 운영체제 식별자

-BuildLab(ex) : 운영체제 세부 버전

-InstallDate : 운영체제 설치 날짜(유닉스 시간 형식)

-InstallTime : 운영체제 설치 날짜, 시간을 보여줌 

 

->실습

- InstallTime : 레지스트리의 InstallTime에 저장된 16진수 값을 Dcode프로그램으로 복사해서 decode해 보았다. 그 결과 Windows Filetime에 2021-02-15 17:42 라는 정보가 나오는데, 이는 cmd창에 systeminfo 실행하고 ‘원래 설치 날짜’ 라는 결과에서도 찾아볼 수 있다.

- InstallDate : 레지스트리의 InstallDate는 유닉스 시간정보로 나타낸 설치 날짜이다. 해당 결과를 복사해서 EpochConverter 사이트의 폼에 넣었다. 그 결과 앞서 본 것처럼 2021년 2월 15일 오후 5시 42분정보를 확인할 수 있었다.

 

 

2-3)Autoruns : 자동실행 프로그램의 정보

->경로 : HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

 

2-4)User Account : 사용자 계정 정보

->경로 : HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\

->시스템 사용자 목록, 마지막으로 로그인한 사용자, 각 사용자 별 기본 경로를 볼 수 있다.

->ProfileList 아래에 4개의 서브 키를 볼 수 있다. 차례대로 ‘systemprofile, LocalService, NetworkService, 사용자가 만든 계정’ 을 의미한다. 네번째 사용자가 만든 계정을 의미하는 ‘S-1-5-21-,,,,,,,-1001’라는 서브 키 이름에서 마지막 숫자 정보가 중요하다. 1000 이상은 user권한을 의미하고 500은 administrator권한을 의미하는데 여기서는 1001이므로 user권한을 나타내고 있다.

->사용자의 최종 로그인 시간 정보

: LocalProfileLoadTimeHigh(0x01d86293)와 LocalProfileLoadTimeLow(0xe29563c5)를 합치면, 최종 로그인 시간을 알 수 있다. 0x01d86293e29563c5이를 Dcode 프로그램에 넣어 최종 로그인 시간을 확인했다. 최종 로그인한 시간은 ‘2022-05-08 13:27:10.8585413 +09:00’ 이다.

 

 

2-5)Environment Variables : 시스템 환경 변수 편집을 들어가면, ‘사용자에 대한 환경변수’와 ‘시스템 환경변수’가 있다.

->경로(2가지)

- 사용자 환경변수 : HKU\{SID}\Environment

- 시스템 환경변수 : HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment

 

2-6)Executable(UserAssist, OpenSavePidLMRU, LastVisitedPidMRU):응용프로그램 실행에 따른 흔적

- UserAssist: HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\UserAssist

->최근에 실행한 프로그램 목록과 마지막 실행 시간, 실행 횟수 등이 기록되어 있다.(사용자를 도와주는 기능)

->UserAssist의 아래 서브키들 중, {CEBFF5CD-ACE2-4F4F-9178-9926F41749EA}\Count는 실행파일의 실행을 기록하고 있고, {F4E57C4B-2036-45F0-A9AB-443BCFE33D9F}\Count는 바로가기 실행 기록들을 남기고 있다.

->{F4E57C4B-2036-45F0-A9AB-443BCFE33D9F}\Count 의 값 중 하나를 선택해서 rot13.com 에서 문자열을 디코딩해보았다.
->Visual Studio 2017을 사용했다는 것을 알 수 있다.

 

-OpenSavePidLMRU: HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\OpenSavePidlMRU

->열기 혹은 저장 기능으로 사용된 파일의 정보를 나타낸다. 파일의 확장자 별로 그룹화된 것을 확인할 수 있다.

 

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

->열기 혹은 저장 기능을 사용한 응용 프로그램 정보를 나타낸다.

 

2-7)USB Connection : USB 등의 이동형 저장장치의 연결 흔적을 추적 가능함(USB 제품명, 시리얼 번호, 최초 연결 시각, 마지막 연결 시각)

->경로

- 모든 USB(마우스, 키보드 등) : HKLM\SYSTEM\ControlSet001\Enum\USB

->VID_[vendor_id]&PID_[product_id] 형태로 키 이름이 구성되어 있고 그 아래 여러 서브키가 존재하는 형태이다.

->VID와 PID를 알면, USB의 종류를 알 수 있다.

-USB 저장장치 : HKLM\SYSTEM\ControlSet001\Enum\USBSTOR

->시스템에 연결되었던 모든 USB 저장장치의 정보가 기록되어 있다.

-마운트 디바이스 : HKLM\SYSTEM\MountedDevices

->시스템에 마운트되었던 장치의 리스트를 나타낸다.

->특정 이름을 갖는 값의 이진 값을 봤더니 마운트할 때 사용했던 USB 관련 정보가 나타났다.