Security & Forensic

반응형

UserAssist 분석

 

레지스트리 키의 일종으로 최근에 실행한 프로그램이나 자주 사용하는 프로그램의 목록, 마지막 실행날짜, 실행 횟수 등이 기록되어 있다.  각 사용자의 NTUSER.DAT 레지스트리 파일에 응용 프로그램의 실행 횟수를 유지한다.

 

추가적으로 Windows7/Vista 이후부 터 생겨난 UAC로 인해 일반사용자가 특정 경로에 파일이나 레지스트리를 쓰게 되면 파일, 레지스트리 가상화가 이루어지는데 이때 가상화를 통해 쓰여진 데이터는 NTUSER.dat가 아닌 UsrClass.dat에 저장되기 때문에 정확한 분석을 위해 UsrClass.dat도 추가적으로 수집 및 분석해야 한다.

 

계정 sid 조회

F:\tool\forensic\usbdeviceforensics>whoami /user <- 현재 사용자 SID
chohb\chohb     S-1-5-21-2555433415-3599755044-3103386514-1001


F:\tool\forensic\usbdeviceforensics>WMIC useraccount get name, sid /format:table

Name                    SID
Administrator          S-1-5-21-2555433415-3599755044-3103386514-500
chohb                    S-1-5-21-2555433415-3599755044-3103386514-1001
DefaultAccount         S-1-5-21-2555433415-3599755044-3103386514-503
Guest                     S-1-5-21-2555433415-3599755044-3103386514-501
WDAGUtilityAccount  S-1-5-21-2555433415-3599755044-3103386514-504

 

레지스트리 경로

값이 인코딩 되어 있다.
경로 1 : HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\UserAssist

경로 2 : HKU\{USER}\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\UserAssist\

 

- {USER} 부분은 확인하고자 하는 계정의 SID

- 하위에 응용프로그램 GUID\Count 구조로 구성되어 있거 인코딩되어 있어 바로 읽기가 불가능

- 그러므로 MUICache와는 달리 프로그램으로 보는게 훨씬 보기 좋음

 

레지스트리 외 관련 파일
참고 : https://secuworld.tistory.com/30

 

regripper
C:\Tools\Forensic\RegRipper2.8>regex.exe -h f:\test\reg-hive-backup

F:\tool\forensic\RegRipper2.8>rip.exe -r "f:\test\reg-hive-backup\chohb.NTUSER.DAT" -p userassist_tln
1583282229|REG|||[Program Execution] UserAssist - {1AC14E77-02E7-4E5D-B744-2EB1AE5198B7}\cmd.exe (14)
1583282217|REG|||[Program Execution] UserAssist - C:\Tools\Forensic\RegRipper2.8\rr.exe (1)
1583282207|REG|||[Program Execution] UserAssist - C:\Tools\Forensic\RegRipper2.8\rip.exe (1)
1583282169|REG|||[Program Execution] UserAssist - Microsoft.Windows.Explorer (99)
1583281338|REG|||[Program Execution] UserAssist - {6D809377-6AF0-444B-8957-A3773F02200E}\Notepad++\notepad++.exe (13)
1583280390|REG|||[Program Execution] UserAssist - windows.immersivecontrolpanel_cw5n1h2txyewy!microsoft.windows.immersivecontrolpanel (9)

......

 

UserAssistView Tool

F:\>F:\temp\userassistview\UserAssistView.exe /sxml userassist.xml

F:\>F:\script\batch\LogParser.exe -stats:off -i:xml "select * from 'UserAssist.xml' order by item_name "

userassist.xml 내용

F:\tool\forensic\RegRipper2.8>type userassist.xml      

< 참고 >

Item_name에 실행 파일의 전체 경로가 나오는데 경로를 잘 살펴봐야 한다. 예를 들어 \\tsclient\...이런 경우는 원격 PC의 실행 파일을 실행한 경우이다.

 

UserAssist 정보는 실행시간 정보가 있어서 IECache나 Prefetch의 정보들과 연관지어 분석을 하시면 악성코드가 어떤 경로를 통해서 다운로드되고 실행되었는지를 파악하기 좋음.

보통 사용자의 동의를 구하지 않고 실행된 악성코드가 2~3회 실행되는 경우는 그다지 많지 않습니다. 즉, 딱 한번 그러니까 특정 취약점이나 사회공학 기법에 의해 악성코드를 실행하고 서비스를 올려서 C&C와 통신을 하게 되는데 딱 한번 실행되기 때문에 Prefetch 폴더에 있는 악성코드라 의심되는 파일의 prefetch 파일의 생성시간을 가지고 감염 시간대를 좁혀 나갈 수 있음

 

반응형