Registry AutoRun
레지스트리 값을 설정함에 따라 Startup Folder와 동일하게 자동으로 특정 프로그램이 실행되도록 하여 지속성을 유지할 수 있습니다. 다음은 로그인 시 자동으로 실행하도록 설정 가능한 레지스트리 목록입니다.
경로
실행
HKCU\...\Run
머신에 사용자 로그인 시마다 유저 컨텍스트에서 자동 실행
HKCU\...\RunOnce
머신에 사용자 로그인 시 유저 컨텍스트에서 1회 자동 실행 후 삭제
HKCU\..\UserInitMprLogonScript
머신에 사용자 로그인 시마다 유저 컨텍스트에서 자동 실행
Run과 RunOnce 레지스트리는 실행 로직은 동일하되, 실행 후 자동으로 삭제 하는 것의 차이입니다.
반면 Environment의 경우 실행 시점이 두 환경보다 우선입니다. 일반적으로 Windows 로그인 이후 흐름은 다음과 같습니다.
logon process
↓
winlogon.exe
↓
userinit.exe
├─ 실행: UserInitMprLogonScript
└─ 실행: explorer.exe
↓
└─ 실행: Run / RunOnce
반면 UserInitMprLogonScript의 경우 사용자가 로그인을 성공한 직후 GUI 환경이 배포되기 이전 실행되어 AV/EDR 동작 이전에 실행될 가능성이 있기에 은닉성 측면에서 우위에 있습니다.
Abuse
# 레지스트리에 파일 등록
reg add "HKCU\Environment\UserInitMprLogonScript" /v "WindowsDefender" /t REG_SZ /d "C:\Windows\Temp\rev.ps1" /f
# 등록된 레지스트리 키 확인
reg query "HKCU\Environment\UserInitMprLogonScript"
# 등록된 레지스트리 키 삭제
reg delete "HKCU\Environment\UserInitMprLogonScript" /v "WindowsDefender" /f
Last updated
Was this helpful?