도메인 컨트롤러로 안내해 주세요: 공격자가 사용자 환경을 가로질러 이동하는 방법
댄 굴드도 이 게시물에 기여했습니다.
이 블로그 시리즈의 첫 번째 부분에서는 위협 행위자가 ATT&CK 프레임워크의 발견 단계를 수행하여 초기 감염 후 입지를 확보할 수 있는 다양한 방법을 살펴보았습니다.이를 통해 표준 도메인 권한이 있는 경우에도 중요한 네트워크 및 도메인 정보를 얻을 수 있습니다.또한 도메인 컨트롤러가 직접 공격을 받거나 공격의 일부로 활용될 수 있는 일부 구성 요소에 대해서도 살펴보았습니다.
여기서는 공격의 다음 단계인 측면 이동을 실행하기 위해 이러한 구성 요소에 대해 사용할 수 있는 공격 및 도구의 예를 자세히 설명하겠습니다.

위협 행위자는 검색 단계의 이전 게시물에서 설명한 것과 같은 유용한 정보를 바탕으로 이제 도메인 컨트롤러로 향하는 경로에서 측면 이동을 자신 있게 시도할 수 있습니다.하지만 최종 목표에 도달하려면 필요한 자격 증명, 중간 대상 시스템 및 구성 요소 정보가 해당 공격 도구와 함께 있어야 합니다.

ATT&CK: 래터럴 무브먼트
특히 Windows 도메인에서 측면 이동은 두 가지 수준에서 발생할 수 있습니다.첫 번째는 애플리케이션 수준입니다. 공격자는 암호 해시나 패스 더 티켓과 같은 자격 증명 기반 기술을 사용할 수 있으며, 이를 통해 최종 대상 (이 경우에는 도메인 컨트롤러) 으로 향하는 과정에서 실제로 컴퓨터 간에 이동하는 네트워크 수준을 활용합니다.
이를 통해 자격 증명 기반 기술을 사용할 수 있습니다.
측면 이동을 위한 자격 증명 기반 기술
솔직히 도메인 관리자 자격 증명이 발견되면 일반적으로 명령 프롬프트를 통해 도메인 컨트롤러를 사용할 수 있습니다.
공격자는 Windows에서 사용자, 로그인 및 권한을 인증하는 데 사용되는 로컬 보안 기관 하위 시스템 서비스 (LSASS) 와 같은 공통 위치에 캐시된 자격 증명을 덤프하려고 합니다.자격 증명 (해시된 암호/티켓) 이 메모리에 보관되는 이유는 무엇인가요?SSO (Single Sign-On) 의 경우 사용자가 항상 재인증하지 않아도 되기 때문입니다.
공격자는 운이 좋으면 과거 관리자 로그인이 메모리에 남아 있는 시스템을 손상시킵니다.이러한 로그인 자격 증명은 Mimikatz 또는 유사한 LSASS 메모리 검사 도구를 사용하여 알아낼 수 있습니다.아시다시피 Mimikatz와 유사한 도구를 사용하면 위협 행위자가 LSASS에서 사용하는 실행 중인 컴퓨터의 커널 메모리에서 NTLM 해시 및 Kerberos 티켓 정보와 같은 인증 자격 증명을 찾아 추출할 수 있습니다.
아래 예는 Mimikatz를 사용한 자격 증명 덤핑을 보여줍니다.

대부분의 경우 처음에 손상된 계정은 Windows 시스템의 로컬 관리자 계정만 있으면 Mimikatz와 같은 도구를 성공적으로 실행할 수 있습니다.즉, Windows 디버그 권한과 같이 커널을 읽는 데 필요한 권한이나 LSASS와 같은 특정 중요한 Windows 프로세스에 대한 권한이 부여된 메모리를 갖게 됩니다.앞서 언급한 것처럼 Windows 도메인은 도메인 전체에서 리소스를 요청하는 사용자 및 컴퓨터에 거의 원활한 환경을 제공하기 위해 싱글 사인온 기능에 크게 의존합니다.이를 용이하게 하기 위해 Windows에서는 해시된 자격 증명을 메모리에 저장하는 기능을 사용하고 있으며, 이전 버전에서는 일반 텍스트 암호를 메모리에 저장하는 기능을 사용해 왔습니다.이는 Mimikatz와 같은 도구가 NTLM 해시를 검색할 수 있는 주요 방법 중 하나이며, 경우에 따라 해시 전달 및 티켓 전달 공격과 같은 기술을 위한 일반 텍스트 암호를 검색할 수 있습니다.
Kerberos 티켓을 메모리에서 덤프하는 방법은 다음과 같습니다.

Kerberos 티켓 관련 공격에 사용할 수 있는 또 다른 도구는 Rubeus입니다.여기에는 특정 인스턴스의 사용자 암호/해시를 기반으로 또는 사용자의 인증서 저장소를 기반으로 TGT (Ticket-Granting-Ticket) 를 검색하는 Kerberos 티켓 요청과 같은 기능이 있습니다.또한 Rubeus는 특정 도메인 내에서 또는 포리스트의 도메인 전체에서 S4U (Service-for-User) 제한 위임을 수행하여 Windows 도메인에서 제한된 위임을 악용하는 데에도 사용될 수 있습니다.

아래 예에서 위협 행위자가 메모리에서 자격 증명 해시 정보를 덤프하고 관리자 계정으로 식별된 특정 계정 이름을 찾을 수 있음을 알 수 있습니다.이 계정은 해당 컴퓨터에 어느 시점에 로그온했을 것이기 때문에 존재하는 것입니다.

이 특정 덤프에는 도메인의 로그온 서버와 같은 정보도 포함됩니다.검색 단계에서 수집한 정보를 통해 이를 확증하여 대상 도메인 컨트롤러를 확인할 수 있습니다.
아래 예에서 “IT 관리자” 이전에 덤프된 계정 NTLM 해시를 통해 이 해시를 전달하여 관리자 권한 토큰이 상승된 새 Windows cmd 프로세스를 시작할 수 있었습니다.즉, 새 cmd 프로세스는 실제로 로그인한 사용자에게 보안 문제가 발생한 시스템에 대한 로컬 관리자 권한만 있어도 권한이 있는 계정의 컨텍스트에서 작업을 수행할 수 있습니다.

이 새로운 프로세스는 “itadmin”의 상승된 토큰으로 실행될 것입니다. 즉, 이를 사용하여 다른 원격 액세스 도구를 실행하여 네트워크를 통해 도메인 컨트롤러를 대상으로 하고 도메인 컨트롤러를 연결할 수 있습니다.아래 이미지에서 해시 전달 공격이 성공하면 전원 관리자와 같은 보조 도구가 사용되는 것을 볼 수 있습니다. PaExec 도메인 컨트롤러에 원격으로 연결하여 나머지 공격을 수행하는 데 사용할 수 있습니다.이미지의 hostname 명령은 애플리케이션 및 네트워크 수준 모두에서 성공적인 측면 이동을 확인합니다.

도메인 컨트롤러 시스템에서 실행 중인 서비스를 검사하여 PaExec이 해당 프로세스와 연결되었는지 확인할 수 있습니다.손상된 랩톱에서 관리자 수준 토큰을 생성하는 데 사용한 해시 전달 기술은 PaExec 원격 관리 도구를 실행하는 데 사용되었으며 아래 이미지와 같이 성공적이었습니다.

이것은 공격자가 애플리케이션 수준 (프로세스 메모리의 자격 증명 도용) 에서 네트워크 수준 (smb, msrpc 또는 http 머신 트래버설) 으로 이동하여 최종 목표인 도메인 컨트롤러에 도달하는 방법을 간단하게 보여줍니다.
공격&CK: 임팩트
이 시점에서 도메인 컨트롤러에 도달하면 공격자가 책임을 집니다.계속해서 원격으로 추가 악성 파일을 도메인 컨트롤러에 복사할 수 있습니다.예를 들어 이제 Mimikatz를 도메인 컨트롤러에 복사하고 이를 사용하여 다른 도메인 정보와 함께 내장 KRBTGT 사용자 계정의 해시를 추출하여 골든 티켓 공격을 시작할 수 있습니다.그러면 전체 도메인에 대한 패스 더 티켓 공격에 이를 사용할 수 있습니다.
공격자는 국외에 거주하면서 이미 설치된 도구를 사용하여 랜섬웨어와 같은 것을 배포하고 데이터베이스 또는 애플리케이션 서버와 같은 다른 민감한 서버에 연결하여 데이터를 추가로 유출할 수도 있습니다.여기에는 PSExec, PowerShell, SCCM 등 소프트웨어를 배포할 수 있는 모든 IT 관리 도구가 포함될 수 있습니다.
공격의 정교함에 따라 공격자는 모든 사용자 지정 도구를 사용하거나 메모리에서만 코드를 실행할 수 있습니다. 따라서 Mimikatz와 같은 도구에 대한 시그니처 분석은 보안 도구가 탐지 및 방지하기가 어려워집니다.비슷한 맥락에서 행동 분석에도 리소스가 많이 소모될 수 있으므로 특히 레거시 중요 애플리케이션을 실행하는 서버 환경이나 레거시 운영 체제에서는 이러한 분석 기법이 비활성화될 수 있습니다.
다음 게시물에서는 이러한 공격의 완화 방법을 살펴보겠습니다.