BLOG

Windows11 WSA Client 간단 분석 본문

Digital Forensic

Windows11 WSA Client 간단 분석

Radbit 2022. 4. 11. 13:28

출처 | https://gist.github.com/vhanla/247ee77dd0cdd5449e02e2d517a13019

 

WSA Client (wsaclient.exe) is the manager UI application for Windows 11's Windows Subsystem for Android platform
and here I collect interesting stuff that I found in wsaclient.exe

WSA 클라이언트는 윈도우 11 Subsystem For Android platform(Android용 하위 시스템 설정)를 위한 UI 매니저 어플리케이션임.

1. One instance application.
1. 단일 인스턴스 어플리케이션.


wsaclient.exe is the only application that runs, and handles params for different actions, like uninstall, launch APKs, restart, etc.
wsaclient.exe는 apk 실행, 다시 시작, 삭제 같은 작업에 대한 매개변수를 처리하고 실행하는 유일한 응용프로그램이다.

 

To check and block other instances, it uses MUTEX strings and it is this one (it might change in future versions)

다른 인스턴스를 확인, 막기위해 다음과 같은 MUTEX 문자열을 사용함. (이후 바뀔 수 있음.)
  
   Mutex = CreateMutexExW(0, L"{42CEB0DF-325A-4FBE-BBB6-C259A6C3F0BB}", 0, 0x1F0001u);
   
   Just check for "{42CEB0DF-325A-4FBE-BBB6-C259A6C3F0BB}" to see if WSA is running, at least its client. WSAService is better, but mostly this one serves.

2. WSA 경로
  원본 경로(권한 이슈 존재):
  %PROGRAMFILES%\WindowsApps\MicrosoftCorporationII.WindowsSubsystemForAndroid_1.7.32815.0_x64__8wekyb3d8bbwe\WsaClient\WsaClient.exe


  바로가기 가능 경로:
  %USERPROFILE%\AppData\Local\Microsoft\WindowsApps\MicrosoftCorporationII.WindowsSubsystemForAndroid_8wekyb3d8bbwe\WsaClient.exe
  or
  %LOCALAPPDATA%\Microsoft\WindowsApps\MicrosoftCorporationII.WindowsSubsystemForAndroid_8wekyb3d8bbwe\WsaClient.exe

  NOTICE: version in original path changes accordingly, but shortcut path updates to it


3. Parameters (wsaclient.exe가 존재하는 디렉토리에서 /wsaclient 포함하며 패키지 이름은 레지스트리 Uninstall 하위 폴더에서 확인 가능하다.)
  - /deeplink wsa-client://developer-settings (앱 설정 디버깅 시작)
  - /uninstall {패키지 이름} 예.) /uninstall com.amazon.venezia (삭제)
  - /restart (WSA 재시작)
  - /launch wsa://{패키지 이름} 예.) /launch wsa://com.amazon.venezia (실행)

  - /modify {패키지 이름}  (설정)

4. Registry entries
  
  HKEY_CURRENT_USER
  \Software\Microsoft\WSA
    \VMLifeCycleMode   HKEY_LOCAL_MACHINE,L"Software\\Microsoft\\WSA",L"VMLifeCycleMode",0x18u,0i64,&pvData,&pcbData);
    \OptionalDiagnosticDataEnabled, 0 // 진단 데이터 보내기 설정한 경우
  
5. Interesting window creation
  
  WndClass.lpfnWndProc = (WNDPROC)sub_1400389F0;
  WndClass.hInstance = (HINSTANCE)*((_QWORD *)::lpParam + 2);
  WndClass.lpszClassName = L"{1D0BDE36-7849-4135-AD13-8C75D8472111}";
  WndClass.hCursor = LoadCursorW(0i64, (LPCWSTR)0x7F00);
  RegisterClassW(&WndClass);
  Window = CreateWindowExW(
             0,
             L"{1D0BDE36-7849-4135-AD13-8C75D8472111}",
             &NameToResolve,
             0,
             0,
             0,
             0,
             0,
             0i64,
             0i64,
             *((HINSTANCE *)lpParam + 2),
             lpParam);
             
6. App Details (in Windows Registry)
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Uninstall\{패키지 이름}
e.g HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Uninstall\com.amazon.venezia

    이름        //      데이터 종류
  \AndroidPackageName string (package name)
  \AndroidVersionCode string 
  \DisplayIcon string (path to icon file)
  \DisplayName string 
  \DisplayVersion string (version of the app)
  \EstimatedSize dword 
  \InstallDate string e.g(YYYYmmdd)
  \ModifyPath string "C:\Users\vhanla\AppData\Local\Microsoft\WindowsApps\MicrosoftCorporationII.WindowsSubsystemForAndroid_8wekyb3d8bbwe\WsaClient.exe" /modify com.amazon.venezia
  \NoRepair dword default 1
  \Publisher string
  \QuietUninstallString string "C:\Users\vhanla\AppData\Local\Microsoft\WindowsApps\MicrosoftCorporationII.WindowsSubsystemForAndroid_8wekyb3d8bbwe\WsaClient.exe" /uninstall com.amazon.venezia
  \UninstallString string "C:\Users\vhanla\AppData\Local\Microsoft\WindowsApps\MicrosoftCorporationII.WindowsSubsystemForAndroid_8wekyb3d8bbwe\WsaClient.exe" /uninstall com.amazon.venezia
  
  SubKeys (optional)
  \Capabilities
    \URLAssociations
      \someuriname string e.g. wsa.hexvalues then use it to launch that app passing a param, e.g. feedly://params

 

- 추가 분석 (진행중)

 

// 내 해당 유저의 SID가 있는 pri파일 존재.

D:\원본경로\Files_20220411145436\C\Program Files\WindowsApps\MicrosoftCorporationII.WindowsSubsystemForAndroid_2203.40000.1.0_x64__8wekyb3d8bbwe\microsoft.system.package.metadata\ 

 

// 해당 디렉토리 내에 로그파일 생성. WSA를 통해 앱을 실행한 이력이 남음.

( 안드로이드 시스템의 전반적인 작동 로그가 남음. )

C:\Users\[사용자]\AppData\Local\Packages

\MicrosoftCorporationII.WindowsSubsystemForAndroid_8wekyb3d8bbwe\LocalState\diagnostics\logcat\

 

// 해당 파일(userdata) 이미지 존재하며 해당 이미지파일 Encase 탑재 가능.

C:\Users\[사용자]\AppData\Local\Packages

\MicrosoftCorporationII.WindowsSubsystemForAndroid_8wekyb3d8bbwe\LocalCache\userdata

해당 파일은 암호화 되어 있음. 이를 사용하려면 사용자 섹션으로 접촉해서 사용자의 키로 복호화 한 후 어플리케이션을 사용하는 것인데, 이 과정이

[ adb를 통해 앱 설치 → 윈도우11에서 가상에 설치된 APP을 실행시킴 → WSA를 통해 해당 userdata(가상 하드디스크) 접속 후 APP실행 ] 으로 추측된다.

 

- Android 용 windows 하위 시스템 설정에 Windows 하위 시스템 끄기 설정이 있는데(다시 시작) 해당 설정을 이용하면 userdata의 접근 시간 최신화가 진행된다. ( 이후에 WSA를 아예 처음 시작할 때도 해당 userdata가 최신화 됨.)

'Digital Forensic' 카테고리의 다른 글

Windows Event Log (1) - 개요  (0) 2023.07.31
NTFS #1  (0) 2022.10.03
Big endian / Little endian  (0) 2021.05.30
윈도우7 Jump List 관련  (0) 2018.12.29
Live Response #1  (0) 2018.11.29