
2022년 이란 정부 지원 APT 공격자는 미국의 한 연방 민간 행정부 기관이 운영하던 패치되지 않은 VMware Horizon 서버에서 Log4Shell 취약점 CVE-2021-44228을 악용해 내부 네트워크에 침투했다.
공격자는 원격 코드 실행 이후 Windows Defender의 탐지 범위를 축소하고 XMRig 암호화폐 채굴기를 설치했다. 이후 RDP와 탈취한 자격 증명을 이용해 내부로 이동한 뒤, 관리자 계정과 Ngrok 터널을 통해 지속적인 접근 경로를 확보했다.
| 항목 | 내용 |
|---|---|
| 피해 조직 | 미국 연방 민간 행정부 기관·FCEB, 기관명 비공개 |
| 최초 침투 대상 | 외부에 공개된 VMware Horizon 서버 |
| 최초 침투 취약점 | CVE-2021-44228, Log4Shell |
| 취약 구성요소 | Apache Log4j 2의 log4j-core |
| 추정 공격 주체 | 이란 정부 지원 APT |
| 최초 탐지 시점 | 2022년 4월 |
| 주요 공격 결과 | 암호화폐 채굴, 자격 증명 탈취, 내부 이동, 관리자 계정 생성, 원격 접근 경로 확보 |
| 주요 도구 | XMRig, Mimikatz, PsExec, Ngrok, PowerShell |
Log4Shell은 Log4j가 로그 메시지에 포함된 JNDI Lookup 표현식을 평가하는 과정에서 공격자가 지정한 LDAP 등의 외부 서버로 연결하고, 특정 조건에서 외부 코드를 불러와 실행할 수 있었던 취약점이다.
공격자는 애플리케이션이 기록하는 HTTP 헤더나 요청 파라미터에 조작된 문자열을 삽입하는 것만으로 인증 없이 코드 실행을 유도할 수 있었다. 영향을 받는 주요 구성요소는 log4j-core이며, log4j-api만 사용하는 애플리케이션은 직접적인 영향을 받지 않는다.
공격 문자열이 포함된 HTTP 요청
↓
VMware Horizon이 요청값을 로그로 기록
↓
취약한 Log4j가 JNDI 표현식 평가
↓
공격자가 지정한 외부 서버로 연결
↓
VMware Horizon 서버에서 원격 코드 실행
VMware는 2021년 12월 VMware Horizon을 포함한 여러 제품이 CVE-2021-44228과 관련 취약점의 영향을 받는다고 공지하고 패치와 임시 조치 방법을 안내했다. 그러나 피해 기관의 서버에는 필요한 조치가 적용되지 않았다.
공격자는 인터넷에 공개돼 있던 VMware Horizon 서버가 Log4Shell 패치를 적용하지 않은 상태라는 것을 확인하고 취약점을 악용했다.
피해 서버는 초기 공격 과정에서 알려진 악성 IP인 다음 주소와 통신했다.
182.54.217[.]2
CISA는 피해 VMware Horizon 서버와 해당 IP 사이의 통신을 확인했으며, 공격자가 취약점 공개 약 두 달 뒤인 2022년 2월경부터 내부에 접근했을 가능성이 있다고 판단했다.
공격자는 Log4Shell을 통해 명령 실행 권한을 얻은 직후 PowerShell을 사용해 Windows Defender의 제외 경로를 수정했다.
특히 C:\ 드라이브 전체를 검사 제외 대상으로 추가해 이후 내려받는 도구와 악성 파일이 백신 검사에 탐지될 가능성을 낮췄다.
공격자는 PowerShell 스크립트와 압축 파일을 내려받아 VMware Horizon 서버에 XMRig 기반 암호화폐 채굴기를 설치했다.
확인된 주요 구성 파일은 다음과 같다.
WinRing0x64.sys: 하드웨어 접근에 사용되는 드라이버wuaucltservice.exe: XMRig 채굴기 실행 파일config.json: 채굴 서버 및 실행 설정RuntimeBroker.exe: 채굴기 실행과 지속성 확보에 사용된 파일mde.ps1: 후속 파일 다운로드에 사용된 PowerShell 스크립트공격자는 RuntimeBrokerService라는 예약 작업을 생성해 RuntimeBroker.exe가 매일 SYSTEM 권한으로 실행되도록 했다. 정상 Windows 구성요소와 유사한 이름을 사용해 관리자의 의심을 줄이려 한 것으로 볼 수 있다.
암호화폐 채굴기 설치 이후 공격자는 VMware Horizon 서버에 머무르지 않고 내부 시스템으로 이동했다.
공격자는 기존 Windows 기본 계정인 DefaultAccount와 RDP를 이용해 VMware VDI-KMS 호스트에 접속한 뒤 Mimikatz, PsExec, Ngrok 등의 도구를 전송했다. 다만 공개 자료에는 해당 계정의 자격 증명을 어떤 경로로 확보했는지 명시되어 있지 않다.
공격자는 Mimikatz를 사용해 내부 이동에 필요한 자격 증명을 확보하고 LSASS 메모리 덤프를 시도했다. 일부 LSASS 덤프 시도는 피해 기관의 보안 제품에 의해 차단된 것으로 보고됐다.
획득한 자격 증명을 기반으로 공격자는 새로운 도메인 관리자 계정을 생성했다. 또한 기존 로컬 관리자 계정의 비밀번호를 변경해 새로 만든 계정이 발견되거나 삭제되더라도 다른 관리자 계정을 통해 접근을 유지할 수 있도록 했다.
공격자는 탈취한 관리자 권한으로 도메인 컨트롤러에 접근했다.
이후 PowerShell 명령을 이용해 도메인에 등록된 컴퓨터, 운영체제와 IP 주소 등을 수집하고 내부 네트워크 구조와 추가 공격 대상을 파악했다.
공격자는 여러 내부 시스템에 Ngrok을 설치해 내부 RDP 서비스를 외부와 연결하는 암호화된 터널을 구성했다.
Ngrok은 정상적인 터널링 서비스지만, 공격자는 이를 악용해 별도의 인바운드 포트를 개방하지 않고도 외부에서 내부 호스트에 접근했다. 이 터널은 지속적인 원격 접근과 명령제어 경로로 활용될 수 있다.
외부 공개 VMware Horizon 서버에서 Log4Shell 악용
↓
PowerShell 실행 및 Windows Defender 탐지 범위 축소
↓
XMRig 설치와 예약 작업을 통한 지속성 확보
↓
RDP를 이용한 VDI-KMS 호스트 이동
↓
Mimikatz를 이용한 자격 증명 탈취와 관리자 계정 생성
↓
도메인 컨트롤러 접근 및 내부 자산 정찰
↓
여러 시스템에 Ngrok을 설치해 원격 접근 경로 확보
XMRig는 Monero 등의 암호화폐를 채굴할 수 있는 공개 소프트웨어다. 프로그램 자체는 합법적으로 사용할 수 있지만, 공격자는 피해 서버의 CPU 자원을 무단으로 이용하기 위해 이를 설치했다.
이 사고에서는 XMRig 실행 파일이 정상 Windows 구성요소와 유사한 wuaucltservice.exe라는 이름으로 위장됐다. 공격자는 악성 RuntimeBroker.exe를 실행하는 RuntimeBrokerService 예약 작업을 생성해 채굴기가 매일 SYSTEM 권한으로 실행되도록 했다.
정상 파일과 구분하기 위해서는 파일명뿐만 아니라 실행 경로, 디지털 서명, 파일 해시, 부모 프로세스, 명령행과 예약 작업 생성 시각을 함께 확인해야 한다.
Mimikatz는 Windows 메모리에서 자격 증명과 인증 정보를 추출하는 데 사용될 수 있는 도구다.
공격자는 VDI-KMS 호스트에서 Mimikatz와 LSASS 메모리 덤프를 이용해 내부 이동에 필요한 자격 증명을 확보하려 했다. 확보된 권한은 도메인 관리자 계정 생성과 추가 시스템 접근에 사용됐다.
PsExec은 Microsoft Sysinternals에서 제공하는 정상적인 원격 관리 도구다. 관리자는 원격 Windows 시스템에서 프로그램을 실행할 때 사용할 수 있지만, 공격자는 탈취한 관리자 권한을 이용해 다른 호스트에 명령을 실행하거나 파일을 배포하는 데 악용할 수 있다.
따라서 PsExec 실행 자체보다 비정상 계정의 사용, 관리자 공유 접근, 원격 서비스 생성과 짧은 시간 내 여러 호스트에서 발생한 실행 행위를 함께 확인해야 한다.
Ngrok은 내부 포트를 외부 서비스와 연결하는 리버스 프록시·터널링 도구다.
공격자는 여러 내부 호스트에 Ngrok을 설치해 RDP 접근을 중계하고, 네트워크 경계 장비에서 직접적인 외부 인바운드 연결이 보이지 않도록 했다. 정상 개발 업무에도 사용될 수 있으므로 설치 주체, 대상 포트, 실행 계정, 실행 호스트와 접속 시각을 종합적으로 확인해야 한다.
PowerShell은 Windows Defender 제외 설정 변경, 외부 파일 다운로드, 네트워크 상태 확인, 도메인 자산 수집과 후속 도구 실행에 사용됐다.
따라서 PowerShell 자체를 차단하기보다 인코딩 명령, 보안 설정 변경, 외부 다운로드와 후속 프로세스 생성이 연속적으로 발생하는 행위를 탐지해야 한다.
아래 표는 공개 자료에서 확인된 공격 행위를 MITRE ATT&CK 기법에 매핑한 것이다.
| 순서 | 전술 | 기법 | 적용 내용 |
|---|---|---|---|
| 1 | Initial Access | T1190 Exploit Public-Facing Application | 공개된 VMware Horizon의 Log4Shell 취약점 악용 |
| 2 | Execution | T1059.001 PowerShell | 백신 설정 변경, 파일 다운로드 및 정찰 |
| 3 | Defense Evasion | T1562.001 Impair Defenses | Windows Defender 제외 경로 추가 |
| 4 | Command and Control | T1105 Ingress Tool Transfer | XMRig, Mimikatz, PsExec, Ngrok 다운로드 |
| 5 | Persistence | T1053.005 Scheduled Task | RuntimeBrokerService 예약 작업 생성 |
| 6 | Impact | T1496.001 Compute Hijacking | XMRig을 통한 암호화폐 채굴 |
| 7 | Lateral Movement | T1021.001 Remote Desktop Protocol | Horizon 서버에서 내부 VDI-KMS로 이동 |
| 8 | Credential Access | T1003.001 LSASS Memory | LSASS 메모리 덤프 시도 |
| 9 | Credential Access | T1555 Credentials from Password Stores | Mimikatz로 저장된 자격 증명 추출 |
| 10 | Persistence | T1136.002 Domain Account | 신규 도메인 관리자 계정 생성 |
| 11 | Persistence | T1098 Account Manipulation | 로컬 관리자 계정 비밀번호 변경 |
| 12 | Discovery | T1018 Remote System Discovery | 도메인 내부 시스템 목록 확인 |
| 13 | Discovery | T1016.001 Internet Connection Discovery | 외부 네트워크 연결 여부 확인 |
| 14 | Command and Control | T1090 Proxy | Ngrok으로 암호화된 원격 접근 터널 구성 |
| 15 | Defense Evasion | T1070.004 File Deletion | 다운로드에 사용한 PowerShell 스크립트 삭제 |
아래 IoC는 본 사고에서 확인된 지표다. 현재도 동일한 인프라나 파일이 악성 활동에 사용된다는 의미는 아니므로, 차단 목록에 바로 적용하기보다 과거 침해 흔적을 조사하는 용도로 활용하는 것이 적절하다.
| 유형 | 지표 | 설명 |
|---|---|---|
| IP | 182.54.217[.]2 | 초기 Log4Shell 악용 및 후속 파일 다운로드와 관련된 악성 IP |
| 서비스 | ngrok | 내부 RDP 접근을 중계한 리버스 프록시 |
| 외부 통신 | LDAP·RMI·DNS | JNDI Lookup 악용 과정에서 발생할 수 있는 외부 연결 |
| 프로토콜 | RDP | 내부 시스템 이동 |
| 프로토콜 | HTTPS | 도구 다운로드와 Ngrok 터널 통신 |
182.54.217[.]2는 CISA가 해당 사고에서 확인한 알려진 악성 IP다. Ngrok과 RDP는 정상적으로도 사용될 수 있으므로 단독 IoC보다 실행 주체와 전후 행위를 함께 분석해야 한다.
| 파일명 | MD5 | 역할 |
|---|---|---|
WinRing0x64.sys | 0c0195c48b6b8582fa6f6373032118da | XMRig 관련 하드웨어 접근 드라이버 |
wuaucltservice.exe | 6b8d058db910487ff90fe39e1dcd93b8 | XMRig 채굴기 |
config.json | 910350d4f72b7b25f4fbecfc08d815cd | 채굴기 설정 파일 |
mde.ps1
file.zip
RuntimeBroker.exe
RuntimeBrokerService
WinRing0x64.sys
wuaucltservice.exe
config.json
mimikatz.exe
PsExec.exe
ngrok.exe
파일명은 쉽게 변경될 수 있고 RuntimeBroker.exe, PsExec.exe, WinRing0x64.sys 등은 정상 파일과 이름이 같을 수 있다. 따라서 파일 해시, 디지털 서명, 실행 경로와 실제 행위를 함께 확인해야 한다.
log4j-core JAR 탐색자산 목록에 존재하는 서버만 점검해서는 관리되지 않는 외부 공개 시스템을 놓칠 수 있다. 외부 공격 표면과 실제 운영 환경을 함께 확인해야 한다.
다음 요청 영역에서 JNDI 관련 문자열과 변형된 표현식을 탐지한다.
User-AgentX-Forwarded-ForRefererCookie단순히 ${jndi:ldap: 문자열만 검색하면 인코딩되거나 난독화된 요청을 놓칠 수 있다. URL 디코딩과 문자열 정규화를 수행한 뒤 ${lower:}, ${upper:}, 환경변수 치환 등의 우회 표현식을 함께 검사해야 한다.
다음 통신을 중점적으로 확인한다.
Java 또는 VMware 프로세스
→ 외부 LDAP/RMI/DNS 통신
→ 실행 파일 또는 스크립트 다운로드
→ 짧은 시간 내 PowerShell 실행
네트워크 이벤트만 단독으로 판단하기보다 해당 시점의 웹 요청, 프로세스 실행과 계정 로그를 함께 분석해야 한다.
다음 PowerShell 행위는 높은 우선순위로 탐지해야 한다.
Add-MpPreference 또는 Set-MpPreference 실행-EncodedCommand, -enc 사용Invoke-WebRequest, WebClient, DownloadString 을 이용한 외부 다운로드특히 Java·VMware 프로세스가 PowerShell을 자식 프로세스로 생성하고, 이어서 Defender 설정 변경과 외부 다운로드가 발생하면 높은 우선순위로 조사해야 한다.
RuntimeBrokerService와 유사한 예약 작업 생성계정과 예약 작업 이벤트는 생성 주체, 실행 계정, 대상 파일 경로와 발생 시간을 기준으로 상관분석해야 한다.
config.json에서 채굴 풀 주소·지갑 설정 확인WinRing0x64.sys 드라이버 로드파일명 기반 탐지만으로는 이름이 변경된 XMRig을 놓칠 수 있으므로 CPU 사용 패턴, 드라이버 로드, 프로세스 계보와 외부 연결을 함께 분석해야 한다.
ngrok.exe 실행조직에서 Ngrok을 정상적으로 사용한다면 허용 사용자, 호스트, 대상 포트와 업무 목적을 사전에 정의하고 예외 목록으로 관리해야 한다.
VMware Horizon에 Log4Shell 의심 요청
↓ (30초 이내)
Java·VMware 프로세스에서 PowerShell 실행
↓
Windows Defender 제외 설정 변경
↓ (5분 이내)
외부 IP에서 ZIP·EXE·PS1 다운로드
↓
신규 예약 작업 생성 및 채굴 프로세스 실행
↓
내부 호스트로 RDP·PsExec 이동
↓
신규 관리자 계정 또는 Ngrok 프로세스 생성
각 이벤트를 단독으로 탐지하는 것보다 웹 요청, 프로세스, 보안 설정, 네트워크와 계정 이벤트를 연결하면 정확도를 높일 수 있다.
이 사고는 패치되지 않은 외부 공개 서버 하나가 내부 이동과 지속적인 원격 접근으로 확대될 수 있음을 보여준다.
공격자는 Log4Shell로 VMware Horizon 서버에서 코드를 실행한 뒤 Defender 탐지 범위를 축소하고, XMRig과 예약 작업을 설치했다. 이후 RDP와 탈취한 자격 증명을 이용해 도메인 환경으로 이동하고 Ngrok 터널을 통해 접근 경로를 유지했다.
특히 Log4Shell 패치와 대응 지침이 이미 공개된 이후에도 실제 운영 자산에 조치가 적용되지 않아 침해가 발생했다. 따라서 조직은 외부 공개 자산과 취약 구성요소를 지속적으로 식별하고, PowerShell 기반 보안 설정 변경, 서버 간 RDP, 특권 계정 생성과 비인가 터널링 도구 실행을 연계해 탐지해야 한다.
CISA·미 해안경비대
Malicious Cyber Actors Continue to Exploit Log4Shell in VMware Horizon Systems
CISA
Mitigating Log4Shell and Other Log4j-Related Vulnerabilities
Apache Logging Services
Apache Log4j Security Vulnerabilities
NIST NVD
CVE-2021-44228 Detail
VMware
VMSA-2021-0028: VMware Response to Apache Log4j Remote Code Execution Vulnerabilities
VMware Blogs
Guidance to VMware Horizon Customers Regarding Log4j
Picus Security
CISA Alert AA22-320A: Iranian APT Actors Target US Federal Network
Check Point Software
What Is XMRig Malware?
MITRE ATT&CK
Enterprise Techniques