diff --git a/src/images/arte.png b/src/images/arte.png index 57f392dbe..388ff8433 100644 Binary files a/src/images/arte.png and b/src/images/arte.png differ diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-cognito-enum/cognito-identity-pools.md b/src/pentesting-cloud/aws-security/aws-services/aws-cognito-enum/cognito-identity-pools.md index 99f1a2d7d..ea290fbb9 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-cognito-enum/cognito-identity-pools.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-cognito-enum/cognito-identity-pools.md @@ -4,13 +4,13 @@ ## Basic Information -아이덴티티 풀은 사용자가 **임시 자격 증명**을 획득할 수 있도록 하여 중요한 역할을 합니다. 이러한 자격 증명은 Amazon S3 및 DynamoDB를 포함한 다양한 AWS 서비스에 접근하는 데 필수적입니다. 아이덴티티 풀의 주목할 만한 기능은 익명 게스트 사용자와 사용자 인증을 위한 다양한 아이덴티티 제공자를 지원한다는 점입니다. 지원되는 아이덴티티 제공자는 다음과 같습니다: +Identity pools는 사용자가 **임시 자격 증명**을 획득할 수 있도록 하여 중요한 역할을 합니다. 이러한 자격 증명은 Amazon S3 및 DynamoDB를 포함한 다양한 AWS 서비스에 접근하는 데 필수적입니다. Identity pools의 주목할 만한 기능은 익명 게스트 사용자와 사용자 인증을 위한 다양한 신원 제공자를 지원한다는 점입니다. 지원되는 신원 제공자는 다음과 같습니다: -- Amazon Cognito 사용자 풀 -- Facebook, Google, Amazon으로 로그인, Apple로 로그인과 같은 소셜 로그인 옵션 +- Amazon Cognito user pools +- Facebook, Google, Login with Amazon, Sign in with Apple과 같은 소셜 로그인 옵션 - OpenID Connect (OIDC) 호환 제공자 -- SAML (Security Assertion Markup Language) 아이덴티티 제공자 -- 개발자 인증 아이덴티티 +- SAML (Security Assertion Markup Language) 신원 제공자 +- 개발자 인증 신원 ```python # Sample code to demonstrate how to integrate an identity provider with an identity pool can be structured as follows: import boto3 @@ -39,17 +39,17 @@ Identity Pool 세션을 생성하려면 먼저 **Identity ID를 생성해야** 이는 **사용자의 정보를 유지하는 데 유용합니다** (항상 동일한 Identity ID를 사용하는 사용자). -또한, 서비스 **cognito-sync**는 **이 정보를 관리하고 동기화하는** 서비스를 제공합니다 (데이터 세트에서 정보를 전송하고 스트림 및 SNS 메시지로 전송하는 등). +또한, 서비스 **cognito-sync**는 **이 정보를 관리하고 동기화하는** 서비스를 제공합니다 (데이터 세트에서, 스트림 및 SNS 메시지로 정보를 전송하는 등). ### Tools for pentesting -- [Pacu](https://github.com/RhinoSecurityLabs/pacu), AWS 취약점 탐지 프레임워크로, 이제 "cognito\_\_enum" 및 "cognito\_\_attack" 모듈이 포함되어 있어 계정의 모든 Cognito 자산을 자동으로 열거하고 약한 구성, 접근 제어에 사용되는 사용자 속성 등을 플래그하며, 사용자 생성(여기에는 MFA 지원 포함) 및 수정 가능한 사용자 정의 속성을 기반으로 한 권한 상승을 자동화합니다. 사용 가능한 Identity Pool 자격 증명, ID 토큰에서 가정 가능한 역할 등을 포함합니다. +- [Pacu](https://github.com/RhinoSecurityLabs/pacu), AWS 취약점 탐지 프레임워크로, 이제 "cognito\_\_enum" 및 "cognito\_\_attack" 모듈이 포함되어 있어 계정의 모든 Cognito 자산을 자동으로 열거하고 약한 구성, 접근 제어에 사용되는 사용자 속성 등을 플래그하며, 사용자 생성(여기에는 MFA 지원 포함) 및 수정 가능한 사용자 정의 속성, 사용 가능한 Identity Pool 자격 증명, ID 토큰에서 가정 가능한 역할 등을 기반으로 한 권한 상승을 자동화합니다. 모듈 기능에 대한 설명은 [블로그 게시물](https://rhinosecuritylabs.com/aws/attacking-aws-cognito-with-pacu-p2) 2부를 참조하십시오. 설치 지침은 주요 [Pacu](https://github.com/RhinoSecurityLabs/pacu) 페이지를 참조하십시오. #### Usage -주어진 Identity Pool 및 사용자 풀 클라이언트에 대해 사용자 생성을 시도하고 모든 권한 상승 벡터를 시도하는 샘플 cognito\_\_attack 사용법: +샘플 cognito\_\_attack 사용법으로 주어진 Identity Pool 및 사용자 풀 클라이언트에 대해 사용자 생성 및 모든 권한 상승 벡터를 시도합니다: ```bash Pacu (new:test) > run cognito__attack --username randomuser --email XX+sdfs2@gmail.com --identity_pools us-east-2:a06XXXXX-c9XX-4aXX-9a33-9ceXXXXXXXXX --user_pool_clients @@ -59,9 +59,9 @@ us-east-2:a06XXXXX-c9XX-4aXX-9a33-9ceXXXXXXXXX --user_pool_clients ```bash Pacu (new:test) > run cognito__enum ``` -- [Cognito Scanner](https://github.com/padok-team/cognito-scanner)는 원치 않는 계정 생성 및 아이덴티티 풀 상승을 포함하여 Cognito에 대한 다양한 공격을 구현하는 파이썬 기반 CLI 도구입니다. +- [Cognito Scanner](https://github.com/padok-team/cognito-scanner)는 원치 않는 계정 생성 및 아이덴티티 풀 상승을 포함하여 Cognito에 대한 다양한 공격을 구현하는 파이썬 CLI 도구입니다. -#### 설치 +#### Installation ```bash $ pip install cognito-scanner ``` @@ -69,13 +69,13 @@ $ pip install cognito-scanner ```bash $ cognito-scanner --help ``` -자세한 정보는 https://github.com/padok-team/cognito-scanner 를 확인하세요. +더 많은 정보는 https://github.com/padok-team/cognito-scanner 를 확인하세요. ## IAM 역할 접근 -### 인증되지 않은 사용자 +### 인증되지 않음 -인증되지 않은 사용자로서 Cognito 앱에서 **AWS 자격 증명**을 얻기 위해 공격자가 알아야 할 유일한 것은 **Identity Pool ID**이며, 이 **ID는 웹/모바일** **애플리케이션**에 하드코딩되어 있어야 사용될 수 있습니다. ID는 다음과 같은 형식입니다: `eu-west-1:098e5341-8364-038d-16de-1865e435da3b` (무차별 대입 공격이 불가능합니다). +공격자가 인증되지 않은 사용자로서 Cognito 앱에서 **AWS 자격 증명**을 얻기 위해 알아야 할 유일한 것은 **Identity Pool ID**이며, 이 **ID는 웹/모바일** **애플리케이션**에 하드코딩되어 있어야 사용될 수 있습니다. ID는 다음과 같이 보입니다: `eu-west-1:098e5341-8364-038d-16de-1865e435da3b` (무작위 대입 공격이 불가능합니다). > [!TIP] > 기본적으로 **IAM Cognito 인증되지 않은 역할은** `Cognito_Unauth_Role`로 호출됩니다. @@ -114,11 +114,11 @@ aws cognito-identity get-credentials-for-identity --identity-id -- > [!WARNING] > 기본적으로 인증되지 않은 cognito **사용자는 정책을 통해 할당되었더라도 권한을 가질 수 없습니다**. 다음 섹션을 확인하세요. -### 향상된 인증 흐름 vs 기본 인증 흐름 +### Enhanced vs Basic Authentication flow -이전 섹션은 **기본 향상된 인증 흐름**을 따랐습니다. 이 흐름은 생성된 IAM 역할 세션에 **제한적인** [**세션 정책**](../../aws-basic-information/#session-policies)을 설정합니다. 이 정책은 세션이 [**이 목록의 서비스만 사용할 수 있도록**](https://docs.aws.amazon.com/cognito/latest/developerguide/iam-roles.html#access-policies-scope-down-services) 허용합니다 (역할이 다른 서비스에 접근할 수 있었더라도). +이전 섹션은 **기본 향상된 인증 흐름**을 따랐습니다. 이 흐름은 생성된 IAM 역할 세션에 **제한적인** [**세션 정책**](../../aws-basic-information/index.html#session-policies)을 설정합니다. 이 정책은 세션이 [**이 목록의 서비스만 사용할 수 있도록**](https://docs.aws.amazon.com/cognito/latest/developerguide/iam-roles.html#access-policies-scope-down-services) 허용합니다 (역할이 다른 서비스에 접근할 수 있었더라도). -그러나 **Identity pool에 "기본 (클래식) 흐름"이 활성화되어 있다면**, 사용자는 해당 흐름을 사용하여 **제한적인 세션 정책이 없는** 세션을 얻을 수 있습니다. +그러나 **Identity pool에 "Basic (Classic) Flow"가 활성화되어 있으면**, 사용자는 해당 흐름을 사용하여 **제한적인 세션 정책이 없는** 세션을 얻을 수 있습니다. ```bash # Get auth ID aws cognito-identity get-id --identity-pool-id --no-sign @@ -135,7 +135,7 @@ aws sts assume-role-with-web-identity --role-arn "arn:aws:iam:::role/ `An error occurred (InvalidParameterException) when calling the GetOpenIdToken operation: Basic (classic) flow is not enabled, please use enhanced flow.` -IAM 자격 증명이 설정되어 있는 경우, [어떤 접근 권한이 있는지 확인하고](../../#whoami) [권한 상승을 시도하세요](../../aws-privilege-escalation/). +IAM 자격 증명이 있는 경우 [어떤 접근 권한이 있는지 확인하고](../../index.html#whoami) [권한 상승을 시도하세요](../../aws-privilege-escalation/index.html). ### 인증된 사용자 @@ -144,32 +144,32 @@ IAM 자격 증명이 설정되어 있는 경우, [어떤 접근 권한이 있는 **Identity Pool**에 접근하는 **인증된 사용자**를 위한 **역할**도 있을 수 있습니다. -이를 위해 **아이덴티티 제공자**에 접근해야 할 수도 있습니다. 만약 그것이 **Cognito User Pool**이라면, 기본 동작을 악용하여 **직접 새로운 사용자를 생성할 수 있을지도 모릅니다**. +이를 위해 **아이덴티티 제공자**에 접근해야 할 수 있습니다. 만약 그것이 **Cognito User Pool**이라면, 기본 동작을 악용하여 **직접 새로운 사용자를 생성할 수 있을지도 모릅니다**. > [!TIP] -> **IAM Cognito 인증 역할은 기본적으로** `Cognito_Auth_Role`로 호출됩니다. +> **IAM Cognito 인증 역할은 기본적으로** `Cognito_Auth_Role`로 생성됩니다. 어쨌든, **다음 예제**는 **Identity Pool**에 접근하기 위해 사용되는 **Cognito User Pool**에 이미 로그인했다고 가정합니다 (다른 유형의 아이덴티티 제공자도 구성될 수 있다는 점을 잊지 마세요).
aws cognito-identity get-id \
---identity-pool-id <identity_pool_id> \
---logins cognito-idp.<region>.amazonaws.com/<YOUR_USER_POOL_ID>=<ID_TOKEN>
+--identity-pool-id  \
+--logins cognito-idp..amazonaws.com/=
 
 # 이전 명령 응답에서 identity_id를 가져옵니다
 aws cognito-identity get-credentials-for-identity \
---identity-id <identity_id> \
---logins cognito-idp.<region>.amazonaws.com/<YOUR_USER_POOL_ID>=<ID_TOKEN>
+--identity-id  \
+--logins cognito-idp..amazonaws.com/=
 
 
-# IdToken에서 사용자가 User Pool 그룹으로 인해 접근할 수 있는 역할을 찾을 수 있습니다
-# 특정 역할에 대한 자격 증명을 얻으려면 --custom-role-arn을 사용하세요
+# IdToken에서 사용자가 User Pool 그룹으로 접근할 수 있는 역할을 찾을 수 있습니다
+# --custom-role-arn을 사용하여 특정 역할에 대한 자격 증명을 가져옵니다
 aws cognito-identity get-credentials-for-identity \
---identity-id <identity_id> \
-    --custom-role-arn <role_arn> \
-    --logins cognito-idp.<region>.amazonaws.com/<YOUR_USER_POOL_ID>=<ID_TOKEN>
+--identity-id  \
+    --custom-role-arn  \
+    --logins cognito-idp..amazonaws.com/=
 
> [!WARNING] -> 사용자가 로그인하는 아이덴티티 제공자에 따라 **다른 IAM 역할을 구성할 수 있으며**, 심지어 **사용자**에 따라 (클레임을 사용하여) 다를 수 있습니다. 따라서 동일한 또는 다른 제공자를 통해 여러 사용자에 접근할 수 있는 경우, **모든 사용자의 IAM 역할에 로그인하고 접근하는 것이 가치가 있을 수 있습니다**. +> 사용자가 로그인하는 아이덴티티 제공자에 따라 **다른 IAM 역할을 구성할 수 있으며**, 심지어 **사용자**에 따라 (클레임을 사용하여) 다를 수 있습니다. 따라서 동일한 또는 다른 제공자를 통해 다양한 사용자에 접근할 수 있다면, **모든 사용자의 IAM 역할에 로그인하고 접근하는 것이 가치가 있을 수 있습니다**. {{#include ../../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/azure-security/az-services/vms/README.md b/src/pentesting-cloud/azure-security/az-services/vms/README.md index 28d79e62a..37da4cf02 100644 --- a/src/pentesting-cloud/azure-security/az-services/vms/README.md +++ b/src/pentesting-cloud/azure-security/az-services/vms/README.md @@ -28,7 +28,7 @@ Azure 가상 머신(VMs)은 유연하고, 필요에 따라 사용할 수 있는 - **없음**: 기본적으로 모든 포트를 엽니다. - **기본**: HTTP(80), HTTPS(443), SSH(22), RDP(3389)와 같은 수신 포트를 쉽게 열 수 있습니다. - **고급**: 보안 그룹을 선택합니다. -- **백업**: **표준** 백업(하루에 한 번) 및 **향상된**(하루에 여러 번) 백업을 활성화할 수 있습니다. +- **백업**: **표준** 백업(하루에 한 번) 및 **향상된** 백업(하루에 여러 번)을 활성화할 수 있습니다. - **패치 조정 옵션**: 선택한 정책에 따라 VM에 자동으로 패치를 적용할 수 있도록 합니다. [**문서**](https://learn.microsoft.com/en-us/azure/virtual-machines/automatic-vm-guest-patching)에서 설명합니다. - **알림**: VM에서 무언가 발생할 때 이메일이나 모바일 앱으로 자동 알림을 받을 수 있습니다. 기본 규칙: - CPU 사용률이 80%를 초과 @@ -38,15 +38,15 @@ Azure 가상 머신(VMs)은 유연하고, 필요에 따라 사용할 수 있는 - 총 네트워크가 500GB를 초과 - 총 네트워크 아웃이 200GB를 초과 - VmAvailabilityMetric이 1 미만 -- **헬스 모니터**: 기본적으로 포트 80에서 HTTP 프로토콜을 확인합니다. +- **상태 모니터**: 기본적으로 포트 80에서 HTTP 프로토콜을 확인합니다. - **잠금**: VM을 잠가 읽기 전용(**ReadOnly** 잠금)으로 설정하거나 읽고 업데이트할 수 있지만 삭제할 수 없는(**CanNotDelete** 잠금) 상태로 설정할 수 있습니다. -- 대부분의 VM 관련 리소스는 **디스크, 스냅샷** 등과 같은 잠금을 **지원합니다.** +- 대부분의 VM 관련 리소스는 **잠금을 지원**하며, 디스크, 스냅샷 등도 포함됩니다. - 잠금은 **리소스 그룹 및 구독 수준**에서도 적용할 수 있습니다. ## 디스크 및 스냅샷 - **2개 이상의 VM에 디스크를 연결할 수 있도록 활성화할 수 있습니다.** -- 기본적으로 모든 디스크는 **플랫폼 키로 암호화**됩니다. +- 기본적으로 모든 디스크는 **암호화**되어 있습니다. - 스냅샷에서도 동일합니다. - 기본적으로 모든 네트워크에서 **디스크를 공유할 수 있지만**, 특정 **개인 접근**으로 **제한**하거나 **공개 및 개인 접근을 완전히 비활성화**할 수 있습니다. - 스냅샷에서도 동일합니다. @@ -76,7 +76,7 @@ Get-AzDisk -Name -ResourceGroupName ## 이미지, 갤러리 이미지 및 복원 지점 -**VM 이미지**는 새로운 가상 머신(VM)을 **생성하는 데 필요한 운영 체제, 애플리케이션 설정 및 파일 시스템**을 포함하는 템플릿입니다. 이미지와 디스크 스냅샷의 차이점은 디스크 스냅샷이 주로 백업 또는 문제 해결을 위해 사용되는 단일 관리 디스크의 읽기 전용 시점 복사본인 반면, 이미지는 **여러 디스크를 포함할 수 있으며 새로운 VM을 생성하기 위한 템플릿으로 사용되도록 설계되었습니다**.\ +**VM 이미지**는 운영 체제, 애플리케이션 설정 및 **새 가상 머신(VM)**을 생성하는 데 필요한 파일 시스템을 포함하는 템플릿입니다. 이미지와 디스크 스냅샷의 차이점은 디스크 스냅샷이 주로 백업 또는 문제 해결을 위해 사용되는 단일 관리 디스크의 읽기 전용 시점 복사본인 반면, 이미지는 **여러 디스크를 포함할 수 있으며 새로운 VM을 생성하기 위한 템플릿으로 사용되도록 설계되었습니다**.\ 이미지는 Azure의 **이미지 섹션** 또는 **Azure 컴퓨트 갤러리** 내에서 관리할 수 있으며, 이를 통해 **버전**을 생성하고 이미지를 크로스 테넌트로 공유하거나 공개할 수 있습니다. **복원 지점**은 VM 구성과 **시점** 애플리케이션 일관성 **스냅샷**을 저장합니다. 이는 VM과 관련이 있으며, 특정 시점에서 VM을 복원할 수 있도록 하는 것이 목적입니다. @@ -144,13 +144,13 @@ Get-AzRestorePointCollection -Name -ResourceGroupName -ResourceGroupName ``` -## 코드 실행 in VMs +## VM에서 코드 실행 ### VM 확장 -Azure VM 확장은 Azure 가상 머신(VMs)에서 **배포 후 구성** 및 자동화 작업을 제공하는 작은 애플리케이션입니다. +Azure VM 확장은 Azure 가상 머신(VM)에서 **배포 후 구성** 및 자동화 작업을 제공하는 작은 애플리케이션입니다. -이것은 **VM 내에서 임의의 코드를 실행**할 수 있게 합니다. +이것은 **VM 내부에서 임의의 코드를 실행**할 수 있게 합니다. 필요한 권한은 **`Microsoft.Compute/virtualMachines/extensions/write`**입니다. @@ -539,7 +539,7 @@ Set-AzVMAccessExtension -ResourceGroupName "" -VMName "" -Na VMAccess 확장 -이 확장은 Windows VM 내의 사용자 비밀번호를 수정하거나(존재하지 않는 경우 생성) 할 수 있게 해줍니다. +이 확장은 Windows VM 내의 사용자 비밀번호를 수정(또는 존재하지 않을 경우 생성)할 수 있게 해줍니다. ```bash # Run VMAccess extension to reset the password $cred=Get-Credential # Username and password to reset (if it doesn't exist it'll be created). "Administrator" username is allowed to change the password @@ -622,7 +622,7 @@ az sig gallery-application list --gallery-name --resource-group < - Linux: `/var/lib/waagent/Microsoft.CPlat.Core.VMApplicationManagerLinux//` - Windows: `C:\Packages\Plugins\Microsoft.CPlat.Core.VMApplicationManagerWindows\1.0.9\Downloads\\` -새로운 애플리케이션을 설치하는 방법은 [https://learn.microsoft.com/en-us/azure/virtual-machines/vm-applications-how-to?tabs=cli](https://learn.microsoft.com/en-us/azure/virtual-machines/vm-applications-how-to?tabs=cli)에서 확인하세요. +새로운 애플리케이션 설치 방법은 [https://learn.microsoft.com/en-us/azure/virtual-machines/vm-applications-how-to?tabs=cli](https://learn.microsoft.com/en-us/azure/virtual-machines/vm-applications-how-to?tabs=cli)에서 확인하세요. > [!CAUTION] > **개별 앱과 갤러리를 다른 구독이나 테넌트와 공유하는 것이 가능합니다**. 이는 공격자가 애플리케이션에 백도어를 설치하고 다른 구독 및 테넌트로 이동할 수 있게 할 수 있기 때문에 매우 흥미롭습니다. @@ -721,17 +721,17 @@ az vm application set \ ### 사용자 데이터 -이것은 **지속적인 데이터**로, 메타데이터 엔드포인트에서 언제든지 검색할 수 있습니다. Azure에서 사용자 데이터는 AWS 및 GCP와 다르다는 점에 유의하세요. **여기에 스크립트를 배치하면 기본적으로 실행되지 않습니다**. +이것은 **지속적인 데이터**로, 언제든지 메타데이터 엔드포인트에서 검색할 수 있습니다. Azure에서 사용자 데이터는 AWS 및 GCP와 다르다는 점에 유의하세요. **여기에 스크립트를 배치하면 기본적으로 실행되지 않습니다**. ### 사용자 정의 데이터 예상 경로에 저장될 데이터를 VM에 전달하는 것이 가능합니다: -- **Windows**에서는 사용자 정의 데이터가 `%SYSTEMDRIVE%\AzureData\CustomData.bin`에 이진 파일로 저장되며 처리되지 않습니다. -- **Linux**에서는 `/var/lib/waagent/ovf-env.xml`에 저장되었고 현재는 `/var/lib/waagent/CustomData/ovf-env.xml`에 저장됩니다. +- **Windows**에서는 사용자 정의 데이터가 `%SYSTEMDRIVE%\AzureData\CustomData.bin`에 이진 파일로 저장되며, 처리되지 않습니다. +- **Linux**에서는 `/var/lib/waagent/ovf-env.xml`에 저장되었고, 현재는 `/var/lib/waagent/CustomData/ovf-env.xml`에 저장됩니다. - **Linux 에이전트**: 기본적으로 사용자 정의 데이터를 처리하지 않으며, 데이터가 활성화된 사용자 정의 이미지가 필요합니다. -- **cloud-init:** 기본적으로 사용자 정의 데이터를 처리하며 이 데이터는 [**여러 형식**](https://cloudinit.readthedocs.io/en/latest/explanation/format.html)일 수 있습니다. 사용자 정의 데이터에 스크립트만 보내면 쉽게 스크립트를 실행할 수 있습니다. -- Ubuntu와 Debian이 여기에 넣은 스크립트를 실행하는 것을 확인했습니다. +- **cloud-init:** 기본적으로 사용자 정의 데이터를 처리하며, 이 데이터는 [**여러 형식**](https://cloudinit.readthedocs.io/en/latest/explanation/format.html)일 수 있습니다. 사용자 정의 데이터에 스크립트만 보내면 쉽게 스크립트를 실행할 수 있습니다. +- Ubuntu와 Debian이 여기에 넣은 스크립트를 실행하는 것을 시도해 보았습니다. - 이 스크립트가 실행되기 위해 사용자 데이터를 활성화할 필요도 없습니다. ```bash #!/bin/sh @@ -739,7 +739,7 @@ echo "Hello World" > /var/tmp/output.txt ``` ### **명령 실행** -Azure가 **VM에서 임의의 명령을 실행**하기 위해 제공하는 가장 기본적인 메커니즘입니다. 필요한 권한은 `Microsoft.Compute/virtualMachines/runCommand/action`입니다. +이것은 Azure가 **VM에서 임의의 명령을 실행**하기 위해 제공하는 가장 기본적인 메커니즘입니다. 필요한 권한은 `Microsoft.Compute/virtualMachines/runCommand/action`입니다. {{#tabs }} {{#tab name="Linux" }} @@ -793,7 +793,7 @@ Invoke-AzureRmVMBulkCMD -Script Mimikatz.ps1 -Verbose -output Output.txt ## 인증되지 않은 접근 {{#ref}} -../../az-unauthenticated-enum-and-initial-entry/az-vms-unath.md +../../az-unauthenticated-enum-and-initial-entry/az-vms-unauth.md {{#endref}} ## 포스트 익스플로잇