AhnLab Security Emergency response Center(ASEC)은 국가 차원의 지원을 받는 공격 그룹으로 알려진 Lazarus 그룹이 최근 윈도우 IIS 웹 서버를 대상으로 공격을 수행한 것을 확인하였다. 일반적으로 공격자들은 스캐닝 결과 취약한 버전을 갖는 웹 서버가 확인되면 버전에 맞는 취약점을 이용해 웹쉘을 설치하거나 악성 명령을 실행한다. 아래 [그림 1]의 자사 AhnLab Smart Defense(ASD) 로그를 보면 공격 대상이 윈도우 서버 시스템이고, IIS 웹 서버 프로세스인 w3wp.exe에 의해 악성 행위가 수행되는 것이 확인된다. 이에 따라 공격자 또한 부적절하게 관리되고 있거나 취약한 웹 서버를 최초 침입 경로로 하여 이후 악성 명령을 실행한 것으로 추정된다.
공격자는 윈도우 IIS 웹 서버 프로세스인 w3wp.exe를 통해 정상 응용 프로그램(Wordconv.exe)과 해당 프로그램이 참조하는 악성 DLL(msvcr100.dll)을 동일한 폴더 경로에 배치하고 악성 DLL 실행을 위해 정상 응용 프로그램을 실행하였다. 이러한 공격 수행 방식을 MITRE ATT&CK 에서는 DLL Side-Loading (T1574.002) 기법으로 분류하고 있다.

Lazarus 그룹이 DLL Side-Loading 기법을 사용하여 악성코드를 실행하는 행위는 이미 여러 차례 확인된 바 있다. 공격자는 DLL Side-Loading 기법에 사용하는 정상 프로세스 이름을 지속적으로 변경하고 있으며 본 글에서는 공격자가 초기 침투 과정에서 사용한 DLL Side-Loading 기법과 이후 행위에 대해 소개하고자 한다.
1. 초기 침투 : 윈도우 IIS 웹 서버를 이용한 DLL Side-Loading (Wordconv.exe, msvcr100.dll)
공격자는 윈도우 IIS 웹 서버 프로세스(w3wp.exe)를 통해 Wordconv.exe, msvcr100.dll, msvcr100.dat을 생성하고 Wordconv.exe를 실행하였다. Wordconv.exe의 임포트 DLL 목록에는 아래 [그림 2]와 같이 msvcr100.dll이 존재하므로 Wordconv.exe가 실행될 경우 운영체제의 DLL 검색 순서에 따라 동일 경로의 DLL 파일을 먼저 로드한다. 결과적으로 악성 msvcr100.dll이 Wordconv.exe 프로세스의 메모리에서 실행된다.

msvcr100.dll의 기능은 아래 [그림 3]과 같이 Wordconv.exe 실행 시점에 실행 인자로 전달받은 키(df2bsr2rob5s1f8788yk6ddi4x0wz1jq)와 인코딩된 PE 파일(msvcr100.dat)을 Salsa20 알고리즘을 통해 복호화하여 메모리 상에서 PE 파일을 실행한다. 그리고 FreeLibraryAndExitThread WinAPI 호출을 통해 로드된 악성 DLL 모듈을 해제한 뒤 자기 자신(msvcr100.dll)을 삭제하는 기능을 수행한다.

또한, msvcr100.dll은 지난 2022년 ASEC은 “BYOVD 기법으로 백신 프로그램을 무력화하는 라자루스 공격 그룹의 악성코드 감염 사례”에서 소개한 cylvc.dll 악성코드의 기능과 외형이 매우 유사하였다. 따라서 msvcr100.dll은 cylvc.dll의 변형 악성코드로 추정된다.

cylvc.dll은 msvcr100.dll와 동일한 방식으로 Salsa20 알고리즘을 통해 dat 확장자를 갖는 데이터 파일을 복호화한 뒤 메모리상에서 PE를 실행하였다. 2022년 당시 메모리 상에서 실행된 PE는 공격자 C&C 서버와 통신하는 백도어 악성코드였다.

2. 거점 확보 및 자격 증명 정보 탈취
공격자는 초기 침투에 이어 거점 확보를 수행한 뒤 Notepad++ 플러그인으로 알려진 “Color picker plugin” 오픈소스를 악용한 추가 악성코드(diagn.dll)를 생성하였다.


diagn.dll의 기능은 RC6 알고리즘으로 인코딩된 PE 파일을 실행 인자 값으로 전달받아 내부에 하드코딩된 키로 데이터 파일을 복호화하여 메모리 상에서 PE 파일을 실행한다.
- RC6 키 : 5A 27 A3 E8 91 45 BE 63 34 23 11 4A 77 91 53 31 5F 47 14 E2 FF 75 5F D2 3F 58 55 6C A8 BF 07 A1
공격 당시의 인코딩된 PE 데이터 파일이 수집되지 않아 메모리 상에서 실행된 PE 파일의 악성 행위에 대해 알 수 없었지만, AhnLab Smart Defense (ASD) 인프라에서 공격자가 해당 모듈을 통해 lsass.exe 프로세스 메모리에 접근한 이력이 확인되었다. 따라서 공격자는 미미카츠와 같은 자격 증명 정보 탈취 도구를 실행한 것으로 추정된다.

3. 측면 이동
시스템 자격 증명 정보를 획득한 공격자는 내부 정찰을 수행한 뒤 원격 접속(3389 포트)을 이용하여 내부 네트워크로 측면 이동(Lateral Movement)을 수행하였다. 측면 이동 이후 공격자의 추가 악성 행위는 현재까지 확인되지 않았다.

4. 결론 및 대응 방안
Lazarus 그룹은 초기 침투를 위해 Log4Shell, 공동 인증서 취약점, 3CX 공급망 공격 등 다양한 공격 벡터를 사용하며 매우 위협적이고 전 세계적으로 활발하게 활동하는 공격 그룹 중 하나이다. 따라서 기업 보안 담당자는 공격 표면 관리(Attack Surface Management)를 통해 공격자에게 노출될 수 있는 자산을 식별하고 지속적으로 최신 보안 패치 등 관리를 해야한다.
특히, 공격자는 Dll Side-loading 기법을 초기 침투에 주로 사용하고 있으므로 기업에서는 비정상적인 프로세스 실행 관계 등을 모니터링하여 공격자가 정보 탈취, 측면 이동 등을 수행하지 못하도록 선제적으로 대응해야한다.
현재 안랩 제품군에서 이번 공격 사례에서 확인한 악성코드에 대해 다음 탐지명으로 진단하고 있다.
[파일 진단]
– Trojan/Win.LazarLoader.C5427612 (2023.05.15.02)
– Trojan/Win.LazarLoader.C5427613 (2023.05.15.03)
[IOC]
[Dll Side-loading 파일 경로]
– C:\ProgramData\USOShared\Wordconv.exe
– C:\ProgramData\USOShared\msvcr100.dll
[MD5]
– e501bb6762c14baafadbde8b0c04bbd6 : diagn.dll
– 228732b45ed1ca3cda2b2721f5f5667c : msvcr100.dll
– 47d380dd587db977bf6458ec767fee3d : ? (msvcr100.dll의 변형 악성코드)
– 4d91cd34a9aae8f2d88e0f77e812cef7 : cylvc.dll (msvcr100.dll의 변형 악성코드)
Categories:악성코드 정보
[…] 과거 2023년 5월 ASEC 블로그 “윈도우 IIS 웹 서버를 노리는 Lazarus 그룹”[2] 블로그에서 소개한 바 있다. 해당 공격 사례에서는 공격자가 부적절하게 […]
[…] 목적으로 일반적인 PC들뿐만 아니라 서버 시스템도 공격 대상으로 한다. [4] […]