Windows 사용자 추적 방법
현재 우리가 분석하고 있는 사고는 시스템 장애가 아닌 누군가 침입하여 조작하였다는 것을 가정으로 진행하고 있다. 따라서 누군가 침입하였다면, 분명 시스템을 사용한 흔적들이 레지스트리, 혹은 파일, 유저 데이터 영역에 남아 있게 된다. 이를 타임라인으로 통합을 통해 나누어 분석하게 되면, 사용자가 어떠한 작업을 진행하였는지 을 알 수 있다.
이와 같은 사용자 추적이 필요한 이유는 침입 경로와 실행 개체를 확인해 공격된 경로를 알아냄으로써, 사고 머신에 발견하지 못한 흔적을 찾고, 침입할 수 있었던 취약점을 함께 확인 할 수 있다. 그럼 사용자의 흔적을 추적하는데 용의한 데이터를 확인하는 방법에 대해 알아보자.
사용자와 흔적에 관련된 파일은 Ntuser.dat 파일에 저장되어 있다. 이 파일은 앞서 레지스트리 분석에서 진행하였던 RegRipper를 이용하여 분석할 수 있으므로 손쉽게 분석된 정보를 얻을 수 있다. RegRipper GUI 도구를 이용하면 Ntuser.dat 관련 데이터만 분석하여 확인할 수 있으니 분석에 어려움은 없을 거라 판단된다. 그럼 각 항목별 이용법에 대해 설명하고, 개별 사용방법에 대해 알아보도록 하자.
Userassist
프로그램 실행 흔적을 확인할 수 있다
Userassist 키는 유저가 실행한 프로그램에 대해 카운트하여 기록한다. 레지스트리에 기록되는 위치는 아래와 같다. 시작 메뉴 내에 존재하는 메뉴로 실행한 프로그램들에 대해 기록한다.
레지스트리 키는 다음과 같다.
Software\Microsoft\Windows\CurrentVersion\Explorer\UserAssist\{GUID}\Count
해당 레지스트리를 이루는 값들에 대해 알아보자.
UEME_RUNPIDL: 바로가기 아이콘 혹은 LNK(링크) 파일을 시작 메뉴 혹은 시작 메뉴내 문서에서 실행하였을 때 나타난다.
UEME_RUNPATH: 실행 프로그램을 탐색기, 시작메뉴 혹은 시작 à 실행에서 실행하였을 때 나타난다. 제일 유용한 정보이지 싶다.
UEME_RUNCPL: 제어 프로그램(제어판 확장자인 CPL로 제작된 프로그램)을 실행하였을 때 나타난다.
실제 값을 확인해 보면 마지막 괄호에 숫자가 표시되는데, 괄호안 숫자의 의미는 실행 횟수를 의미한다. 그리고 각 등록 프로그램별 마지막 실행일자만 표시된다.
C:\Forensic\Reg\RegRipper>rip -r c:\Forensic\case\NTUSER.DAT -p userassist
Launching UserAssist (Active Desktop) v.20080726
UserAssist (Active Desktop)
Software\Microsoft\Windows\CurrentVersion\Explorer\UserAssist\{75048700-EF1F-11D
0-9888-006097DEACF9}\Count
LastWrite Time Mon Sep 26 08:29:01 2011 (UTC)
Mon Sep 26 08:29:01 2011 (UTC) < 실행 일자
UEME_RUNPATH (234) < RUNPATH이므로 탐색기 혹은 실행 메뉴를 통해 실행한 것으로 판단 가능하다.
UEME_RUNPATH:C:\WINDOWS\system32\cmd.exe (17) ß 실행한 프로그램과 실행 횟수를 알 수 있다.
Mon Sep 26 08:28:54 2011 (UTC)
UEME_UISCUT (48)
Mon Sep 26 08:28:33 2011 (UTC)
UEME_RUNPATH:C:\WINDOWS\system32\mmc.exe (11)
Mon Sep 26 08:26:00 2011 (UTC)
UEME_RUNPATH:C:\Program Files\Internet Explorer\iexplore.exe (29)
UEME_RUNPIDL (63)
UEME_RUNPIDL:::{2559A1F4-21D7-11D4-BDAF-00C04F60B9F0} (29)
Mon Sep 26 08:25:06 2011 (UTC)
UEME_RUNPIDL:%csidl2%\Twinternals\Protected Storage Explorer.lnk (2)
UEME_RUNPATH:C:\Program Files\Twinternals\Protected Storage Explorer\PSE
xplorer.exe (2)
UEME_RUNPATH:{E5CCBFD9-EE52-43DE-8336-8E5869A63A2D} (2)
Mon Sep 26 08:02:34 2011 (UTC)
UEME_RUNPATH:C:\Documents and Settings\Administrator\My Documents\prodis
cover_basic_6.5_setup.exe (3)
Mon Sep 26 05:44:24 2011 (UTC)
UEME_RUNPATH:C:\Forensic\Tool\fcli\fcli.exe (1)
…중략
MUICache
마지막 실행 시간만 알수 있다
MUI (Multilingual User Interface), 다중 언어 지원 프로그램에 대해 레지스트리에 캐쉬해 놓은 내용을 할 수 있다. 단점이라면, 마지막 실행 파일의 실행 시간만 알 수 있다는 점이 아쉽다.
레지스트리 경로는 아래 위치에서 확인이 가능하다. 실행 파일중 의심 파일이 존재하는지 확인하는 용도로 사용하자.
Software\Microsoft\Windows\ShellNoRoam\MUICache
C:\Forensic\Reg\RegRipper>rip -r c:\Forensic\case\NTUSER.DAT -p muicache
Launching muicache v.20080324
MUICache
Software\Microsoft\Windows\ShellNoRoam\MUICache
LastWrite Time Mon Sep 26 08:27:10 2011 (UTC)
C:\WINDOWS\system32\taskmgr.exe (Windows TaskManager)
C:\Forensic\Reg\USBDumper.exe (USBDumper)
C:\Forensic\Reg\regdump.exe (regdump)
C:\WINDOWS\system32\logon.scr (Logon Screen Saver)
C:\Program Files\Cain\Cain.exe (Cain – Password Recovery Utility)
C:\Program Files\Internet Explorer\iexplore.exe (Internet Explorer)
C:\WINDOWS\system32\NOTEPAD.EXE (Notepad)
C:\Program Files\Windows NT\Accessories\WORDPAD.EXE (WordPad)
C:\WINDOWS\system32\cmd.exe (Windows Command Processor)
C:\Forensic\Tool\fcli\fcli.exe ( )
…중략
MRUList
사용자의 입력과 확인한 문서 정보들에 대해 추적이 가능하다
사용하였던 문서와 같은 연결될 확장자 파일들과 시작메뉴의 실행에서 입력한 명령문에 대해서 확인 할 수 있다.
MRUList 키값은 실행에 입력한 Runmru와 연결된 확장자인 RecentDoc로 구분하여 확인할 수 있다. 통해 실행한 순서를 확인할 수 있는데 기존 입력값을 재사용한 경우가 있으므로 주의하기 바란다. 기준은 최근값이 앞에 나오며, 마지막 입력 실행 시간만 알 수 있다. RecentDocs의 경우 전체 리스트를 확인 후 각 파일별 실행 시간에 대해 확인할 수 있다.
레지스트리 경로는 다음과 같다.
연결된 확장자 실행 정보
Software\Microsoft\Windows\CurrentVersion\Explorer\RecentDocs
시작메뉴의 실행 입력 정보
Software\Microsoft\Windows\CurrentVersion\Explorer\RunMRU
C:\Forensic\Reg\RegRipper>rip -r c:\Forensic\case\NTUSER.DAT -p recentdocs
Launching recentdocs v.20100405
RecentDocs
**All values printed in MRUList\MRUListEx order.
Software\Microsoft\Windows\CurrentVersion\Explorer\RecentDocs
LastWrite Time Thu Dec 29 08:31:49 2011 (UTC)
63 = 10.0.2.17??mysql
45 = unlockday.sql
44 = openfile.txt
62 = Forensic
49 = test.txt
61 = ads
60 = adstest.txt
51 = 濡쒖뺄 ?붿뒪??(C:)
50 = JUHAN-1.txt
34 = ??蹂쇰ⅷ (E:)
36 = ‘Vboxsvr’??怨듭쑀 (Z:)
59 = SynDOS1.1(www.programas-hack.com).rar
58 = SynDOS1.1(www.programas-hack.com)
57 = style.ini
10 = _cfg.txt
11 = _cfg-1.txt
41 = 222235654_cfg.txt
…중략
1 = bginfo
0 = BGILAB08.BGI
Software\Microsoft\Windows\CurrentVersion\Explorer\RecentDocs\.BGI
LastWrite Time Mon Jun 20 23:57:24 2011 (UTC) < BGILAB08.BGI의 마지막 실행 시간
MRUListEx = 0
0 = BGILAB08.BGI
Software\Microsoft\Windows\CurrentVersion\Explorer\RecentDocs\.bkf
LastWrite Time Tue Oct 11 08:40:25 2011 (UTC)
…중략
// 이제 실행 메뉴에 입력한정보를 확인해 보자.
C:\Forensic\Reg\RegRipper>rip -r c:\Forensic\case\NTUSER.DAT -p runmru
Launching runmru v.20080324
RunMru
Software\Microsoft\Windows\CurrentVersion\Explorer\RunMRU
LastWrite Time Mon Sep 26 07:20:20 2011 (UTC)
// 실행 순서는 최근 사용한 값인 b부터 순서대로 정리 된다.
MRUList = bjiefhgdca
a \\vboxsvr\1
b regedit\1
c eventvwr\1
d gpedit.msc\1
e cmd\1
f mstsc\1
g \\10.0.2.16\1
h services.msc\1
i shutdown -a\1
j msconfig\1
Typedurls
사용자가 접근한 웹사이트를 확인할 수 있다
인터넷 익스플로러에 직접 입력한 주소값에 대해 저장한다.
캐시된 열어본 페이지(또는 주소 상자)의 값을 보여주는 것으로 인터넷 옵션을 이용하여 삭제한 경우 값을 확인할 수 없다.
이 역시 마지막 입력값의 시간만을 알 수 있다.
C:\Forensic\Reg\RegRipper>rip -r c:\Forensic\case\NTUSER.DAT -p typedurls
Launching typedurls v.20080324
TypedURLs
Software\Microsoft\Internet Explorer\TypedURLs
LastWrite Time Mon Sep 26 08:27:11 2011 (UTC)
url1 -> http://majorgeeks.com/Disk_Image_Viewer_d3534.html
url2 -> http://www.kat.ph/search/pro%20discover%20forensic/
url3 -> http://www.securiteam.com/tools/5JP0I2KFPA.html
url4 -> http://torcache.net/torrent/6967E74A027BA660324E34FC39BC0AA9E3F16EDE.t
orrent
url5 -> http://fr.kat.ph/16-fbi-tools-analyse-hacker-t1959289.html
url6 -> http://www.openwall.com/passwords/microsoft-windows-nt-2000-xp-2003-vi
sta-7
url7 -> http://google.co.kr/
url8 -> http://jobkorea.co.kr/
url9 -> http://www.naver.com/
url10 -> http://msn.com/
url11 -> https://www.facebook.com/
url12 -> http://www.windyzone.com/
url13 -> http://naver.com/
…중략
앞서 확인한 Regripper는 별도의 파일로 Ntuser.dat 내보내기를 진행한 이후에 확인할 수 있는 도구이다. 만약 바로 확인을 진행하고자 한다면, Ntuser.dat를 파일로 내보내야 하는 시간이 필요하므로 작업이 번거로울 수 있다. 여기서는 특정 기능에 특화된 도구에 대해 알아보자.
UserAssist
http://blog.didierstevens.com/programs/userassist/ 에서 제작한 본 도구는 Userassist에 특화 하여 확인할 수 있다.
현재 로그인 유저의 데이터를 바로 확인할 수 있으며, 그 외 레지스트리 파일이나, DAT 파일을 연결하여 확인도 가능하다(현재 사용자에 대한 확인은, 비스타 이후 버전에서는 동작하지 않는다).
사용에 대한 어려움은 없으니 사용해 보도록 하자.
Index
현재 시스템에서 사용중인 Index.dat를 검색하여 인터넷 익스플로러를 통해 방문한 사이트들에 대해 효과적으로 확인할 수 있다.
본 도구는 아래 링크에서 다운로드 가능하다.
http://www.systenance.com/indexdat.php
사용법은 어렵지 않으니 굳이 설명하지 않겠다.
'Security' 카테고리의 다른 글
AWS - Guardduty 멜웨어 탐지 차단 기능 (0) | 2022.07.27 |
---|---|
Powershell - Exchange 메일 추척 (0) | 2022.04.15 |
WMI - 원격 실행 보안 (0) | 2022.04.15 |
Spring4Shell - Spring RCE 취약점 및 조치 방안 정리 (0) | 2022.04.01 |
간편하게 IP 숨기기/속이기, 우회 접속, 프록시 종류 (0) | 2022.03.27 |