SOC Prime Bias: Critical

04 Nov 2026 11:45 UTC

ESC1 및 ESC8 공격 경로: 소셜 엔지니어링에서 AD CS 남용까지

Author Photo
SOC Prime Team linkedin icon 팔로우
ESC1 및 ESC8 공격 경로: 소셜 엔지니어링에서 AD CS 남용까지
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

요약

위협 행위자들은 Microsoft Teams를 통해 IT 헬프 데스크 직원을 사칭하여 소셜 엔지니어링을 사용하고 Quick Assist를 통해 원격 액세스를 설정했습니다. 액세스 권한을 획득한 후, ESC1 및 ESC8 기술을 통해 잘못 구성된 Active Directory 인증서 서비스(AD CS)를 악용하여 권한을 상승시키고 도메인 수준 인증을 획득했습니다. 침입은 인증서 등록, DCSync 활동, 후속 데이터 유출을 허용했습니다.

조사

조사는 초기 Teams 피싱 상호 작용에서 후속 인증서 남용까지의 공격 체인을 재구성했습니다. 분석가들은 원격 세션 원격 검사, 사용자 기록 가능 디렉토리에서의 의심스러운 런타임 실행, 인증서 등록 요청 및 PKINIT 활동을 포함한 AD CS 이벤트를 상관시켰습니다. 인증된 신원과 기원 장치 사이의 불일치는 잠재적인 NTLM 릴레이 공격을 식별하는 데 중요한 회전점을 제공했습니다.

완화

조직은 승인되지 않은 지원 요청에 대한 강력한 확인 절차를 시행하고 Microsoft Teams에서의 외부 액세스를 제한해야 합니다. 기술적 완화 조치에는 비즈니스용 앱 제어를 사용하여 승인되지 않은 런타임을 차단하고 인증(자격 증명) 및 등록 엔드포인트의 HTTPS에서 확장 보호를 활성화하여 AD CS를 강화하는 것이 포함됩니다. 등록 서비스에서 NTLM을 비활성화하고 인증서 템플릿을 정기적으로 감사하는 것도 중요합니다.

대응

악의적인 활동이 감지되면 응답자는 즉시 영향을 받는 워크스테이션을 격리하고 제외 위험을 위해 손상된 신원을 검토해야 합니다. 승인되지 않은 인증서는 취소되고 업데이트된 취소 정보가 게시되어야 합니다. 기존 TGT를 무효화하지 않는 인증서 취소와 별도로 Kerberos 티켓을 평가해야 합니다. 자동 차단에서 제외된 계정에도 수동 격리가 할당되어야 합니다.

공격 흐름

탐지

가능한 시스템 네트워크 구성 발견 (cmdline을 통해)

SOC Prime 팀
2026년 11월 2일

비정상 위치에서 실행된 Java 이진 파일 (process_creation을 통해)

SOC Prime 팀
2026년 11월 2일

대체 원격 액세스 / 관리 소프트웨어 (process_creation을 통해)

SOC Prime 팀
2026년 11월 2일

도메인 컨트롤러를 위한 인증서 요청 이벤트 [ADCS] (감사를 통해)

SOC Prime 팀
2026년 11월 2일

인증서 요청 이벤트 [ADCS] (감사를 통해)

SOC Prime 팀
2026년 11월 2일

잘못 구성된 ADCS 템플릿 사용 [ESC1/SAN] (감사를 통해)

SOC Prime 팀
2026년 11월 2일

강제 공격 가능성 (감사를 통해)

SOC Prime 팀
2026년 11월 2일

의심스러운 인증서 관련 작업 시도 (감사를 통해)

SOC Prime 팀
2026년 11월 2일

PetitPotam/ADCS-ESC8 공격 활용 가능성 [MS-EFSRPC/ADCS-PKI] (감사를 통해)

SOC Prime 팀
2026년 11월 2일

DCSync 공격 가능성 (감사를 통해)

SOC Prime 팀
2026년 11월 2일

Quick Assist 무단 액세스 가능성 (감사를 통해)

SOC Prime 팀, Elastic
2026년 11월 2일

IOC (HashSha256) 감지: 헬프 데스크 사칭에서 AD CS 남용까지: ESC1 및 ESC8 침입 경로 조사

SOC Prime AI 규칙
2026년 11월 2일

인증서 템플릿 남용 및 NTLM 인증 릴레이 탐지 [Microsoft Windows 보안 이벤트 로그]

SOC Prime AI 규칙
2026년 11월 2일

LDAPS 및 SMB 연결을 통한 인증서 기반 인증 남용 [Windows 네트워크 연결]

SOC Prime AI 규칙
2026년 11월 2일

Microsoft Teams 피싱 및 무단 액세스를 위한 이식형 런타임 실행 [Windows 프로세스 생성]

SOC Prime AI 규칙
2026년 11월 2일

시뮬레이션 실행

  • 공격 내러티브 & 명령: 적대자는 Microsoft Teams를 통해 IT 지원을 가장한 피싱 캠페인을 시작합니다. 그들은 희생자에게 “Quick Assist”를 열라고 지시합니다. 세션이 설정되면 공격자는 원격 액세스를 사용하여 휴대용 python.exe 를 위장된 디렉토리에 드롭합니다: C:Users<User>AppDataRoamingKB. 마지막으로, 횡적 이동을 촉진하기 위해 공격자는 systeminfo and ipconfig 를 사용하여 호스트에 대한 정찰 데이터를 수집합니다.

  • 회귀 테스트 스크립트:

    # 시뮬레이션 스크립트: Teams 피싱 및 이식형 런타임 실행
    
    # 1. 설정: AppData에 '악성' 디렉토리 생성
    $targetDir = "$env:APPDATAKB"
    if (!(Test-Path $targetDir)) { New-Item -Path $targetDir -ItemType Directory -Force }
    
    # 2. 이식형 런타임 시뮬레이션 (python.exe라는 더미 파일 생성)
    # 실제 공격에서는 실제 이진 파일 사용.
    $dummyPython = Join-Path $targetDir "python.exe"
    New-Item -Path $dummyPython -ItemType File -Force
    
    # 3. 'Teams' 부모 프로세스가 Quick Assist를 생성하는 시뮬레이션
    # 주의: 단일 스크립트에서 실제 Teams.exe 프로세스 트리를 쉽게 위조하기 어렵기에 
    # 고급 인젝션 없이 명령 줄과 예상되는 동작을 모방하여 원격 검사를 시뮬레이션.
    
    Write-Host "[!] 공격 시퀀스 시뮬레이션 중..."
    
    # 프로세스 체인을 통해 탐지 로직 트리거
    # 주의: 특정 Sigma 규칙을 트리거하려면 'python.exe' 프로세스가 
    # 'Teams.exe'의 자식으로 원격 검사가 되어야 함.
    
    # 단계 A: Teams가 Quick Assist를 호출하는 시뮬레이션 (원격 검사의 수동 시뮬레이션)
    # 실제 테스트 환경에서는 'ProcessHacker' 또는 'Sysmon'과 같은 도구를 
    # 사용하여 부모 PID를 변경할 수 있지만 이 스크립트에서는 시퀀스를 실행합니다.
    
    Start-Process "cmd.exe" -ArgumentList "/c echo Teams가 Quick Assist를 호출하는 시뮬레이션 중"
    
    # 단계 B: 특정 경로에서 '이식형 런타임' 실행
    Start-Process -FilePath $dummyPython -ArgumentList "--version" -ErrorAction SilentlyContinue
    
    # 단계 C: 탐색 명령 실행
    Start-Process "cmd.exe" -ArgumentList "/c systeminfo"
    Start-Process "cmd.exe" -ArgumentList "/c ipconfig"
    Start-Process "cmd.exe" -ArgumentList "/c tasklist"
    
    Write-Host "[+] 시뮬레이션 완료. 경고 사항을 위해 SIEM 점검."
  • 정리 명령:

    # 정리: 시뮬레이션 악성 디렉토리 및 파일 제거
    $targetDir = "$env:APPDATAKB"
    if (Test-Path $targetDir) {
        Remove-Item -Path $targetDir -Recurse -Force
        Write-Host "[+] 정리 성공: $targetDir 제거됨."
    } else {
        Write-Host "[-] 정리 실패: 디렉토리 찾지 못함."
    }