모의해킹 관점에서 본 Active Directory

Active Directory?

다수의 윈도우 시스템(PC, 서버)을 중앙에서 관리(계정정책 변경, 시스템 접근권한, 시스템 정보 수집 등)하기 위해 사용되는 체계

사용자, 사용자그룹, 네트워크 데이터 등을 하나로 통합 관리하는 새로운 인터페이스

  • 목적
    • 윈도우 기반의 컴퓨터들을 위한 인증 서비스 제공
  • 위협
    • Domain Controller 서버 내부 침투에 대한 위험성
    • AD 관리자 계정 탈취에 의한 위험성
  • 사례
    • AD 관리자 계정이 탈취되어 DC 서버 등 기업 시스템 전체가 장악되고, 내부 정보 유출 및 랜섬웨어 감염

Active Directory Enumeration

Active Directory 환경을 열거하는 것은 도메인 관리자 권한을 얻는 데 필요한 과정

도메인, 그룹 정책, ACL(Access Control List) 및 사용자 검색에서 액세스 가능한 지점을 찾는 것이 목표

[Powerview]

PowerShell에서 동작 가능하도록 작성한 스크립트.

powerview명령어

  • 도메인 정보 가져오기
    • Get-NetDomain or Get-NetDomain -Domain <DomainName>
  • 도메인 정책 가져오기
    • Get-DomainPolicy
  • 도메인 컨트롤러 가져오기
    • Get-NetDomainController or Get-NetDomainController -Domain <DomainName>

Enumeration Tools

  • Powercat - Powershell 에서 작성된 netcat.
  • SCShell
  • Evil-Winrm
  • RunasCs

Active Directory 인증

네트워크 상에서 로그인을 구현하기 위해 인증 프로토콜이 필요. NTLM과 Kerberos 두 가지 인증 프로토콜이 사용되고 있음

  • NTLM(NT LAN Manager)
    • Windows Server 군에서는 여전히 사용중
    • 이전 버전의 윈도우 인증 프로토콜
  • Kerberos
    • Windows Server 2000 이후 제품군에 적용
    • 현재 윈도우 기본 인증 프로토콜

Kerberos 인증

표준 프로토콜로 네트워크에서 클라이언트와 서버를 상호 인증하는 방식

세 가지 요소는 KDC(Key Distribution Center), 클라이언트, 서버

KDC는 도메인 컨트롤러의 일부로서 설치되며 AS(Authentication Service)와 TGS(Ticket-Granting Service) 기능 수행

  1. 사용자가 네트워크에 로그온하면 AS에 TGT(Ticket Grant Ticket)을 요청
  2. 클라이언트는 네트워크 자원에 접근할 때 TGT와 인증자(Authenticator), 대상 서버의 SPN(Service Principal Name)을 제시
  3. 클라이언트는 네트워크 서비스와의 통신에 사용될 세션 티켓을 받기 위해 서비스 계정 도메인의 TGS에 접속
  4. 대상 서버가 인증자를 검증하고 나면 클라이언트 사용자에 대한 Access Token을 생성

NTLM 인증

  1. 클라이언트가 서버로 사용자 이름을 전송
  2. 서버는 이에 대한 요청 값을 생성해 클라이언트로 전송
  3. 클라이언트는 이 요청 값을 사용자 암호로 암호화해 서버로 응답을 전송
  4. 로컬 게정인 경우 서버는 SAM(Security Account Manager)을 검색해 사용자의 응답을 검증
  5. 도메인 계정의 경우 서버는 이 응답을 도메인 컨트롤러로 전달해 검증하고 사용자 계정에 대한 그룹 정책을 받음
  6. Access Token을 발급받고 세션 생성

Active Directory Lateral Movement

  1. 그룹 정책 객체를 사용하여 로컬 그룹에 사용자 추가
  2. 그룹 정책을 사용하여 로컬 관리자 그룹에 도메인 사용자 추가
  3. 로컬 그룹에 사용자 추가 net local group Administrators HACKER\iccardo/add
  4. 동일한 암호로 여러 시스템에 존재하는 로컬 사용자 위장
  5. 파일 공유에 대한 읽기 권한 허용
  6. AD 내에서 ACL 구성
  7. AD 사용자/그룹을 사용하여 MSSQL 인스턴스에 대한 접근 구성

Active Directory Persistence

몇 가지 기술들은 지속성을 위해 사용될 수 있다.

  • Golden Ticket
  • Silver Ticket
  • AdminSDHolder Group
  • DSRM Credentials
  • ACL Persistence
  • Security Descriptors
  • Skeleton Key
  • Custom SSP
  • DCShadow

Active Directory Methodology

 

Active Directory Methodology

 

book.hacktricks.xyz

 

References

 

S1ckB0y1337/Active-Directory-Exploitation-Cheat-Sheet

 

S1ckB0y1337/Active-Directory-Exploitation-Cheat-Sheet

A cheat sheet that contains common enumeration and attack methods for Windows Active Directory. - S1ckB0y1337/Active-Directory-Exploitation-Cheat-Sheet

github.com

 

반응형

'Security > System' 카테고리의 다른 글

[Embedded] 아두이노와 7세그먼트로 시계만들기  (0) 2020.11.29