내용의 테이블:
- 개요
- 감염 사슬
- 프로세스 트리
- 캠페인 1:
– 끈기
– 배치 파일
– PowerShell 스크립트
– 로더
– 엑스웜/렘코스 - 캠페인 2
- 맺음말
- IOCS
- 탐지
- MITRE ATTACK TTP
소개 :
최근 위협 캠페인을 통해 XWorm과 Remcos를 포함한 원격 액세스 트로이 목마를 배포하기 위해 BAT 기반 로더를 사용하는 방식이 진화하고 있음이 밝혀졌습니다. 이러한 캠페인은 일반적으로 ImgKit과 같이 신뢰할 수 있는 플랫폼에 호스팅되는 ZIP 아카이브로 시작하며, 사용자 상호작용을 유도하기 위해 합법적인 콘텐츠처럼 보이도록 설계되었습니다.
압축 파일을 추출하면 감염 경로의 초기 단계 역할을 하는 고도로 난독화된 BAT 스크립트가 포함되어 있습니다. 이 BAT 파일은 정적 탐지를 회피하는 첨단 기술을 사용하며, RAT 페이로드를 메모리에 직접 주입하는 PowerShell 기반 로더를 실행합니다. 이러한 접근 방식은 엔드포인트 방어를 우회하는 최신 악성코드의 증가 추세인 파일리스 실행을 가능하게 합니다.
이 캠페인에서 주목할 만한 점은 악성 BAT 스크립트를 배포하는 데 SVG 파일을 사용한다는 점입니다. 이러한 SVG에는 취약한 환경에서 렌더링되거나 피싱 페이지에 삽입될 때 실행 체인을 트리거하는 내장 JavaScript가 포함되어 있습니다. 이 기법은 악성코드 배포에 비전통적인 파일 형식을 사용하고, 스크립팅 기능을 악용하여 탐지를 피하는 방향으로 전환되고 있음을 보여줍니다.
감염 사슬:

프로세스 트리:

캠페인 1:
캠페인 1 분석 과정에서 캠페인과 관련된 여러 BAT 스크립트를 발견했는데, 이는 위협 환경이 변화하고 있음을 시사합니다. 이러한 스크립트 중 일부는 부분 또는 테스트 단계의 코드를 포함하는 활발하게 개발 중인 것으로 보이며, 다른 스크립트는 완전히 작동하여 페이로드 다운로드 및 실행을 포함한 전체 공격 체인을 실행할 수 있습니다.
아래 이미지는 두 개의 BAT 파일을 보여줍니다.
- 방법 1: EML(이메일 파일)을 통해 첨부 파일로 직접 전달합니다.
- 방법 2: ImageKit 플랫폼에 호스팅된 URL을 통해 다운로드합니다.
전달 방식의 이러한 변화는 위협 행위자들이 감염 성공률을 높이고 감지 메커니즘을 회피하기 위해 다양한 접근 방식을 실험하고 있음을 시사합니다.

고집:
이 악성코드는 Windows 시작 폴더에 BAT 파일을 생성하여 지속성을 확보합니다. 이를 통해 사용자가 시스템을 시작하거나 계정에 로그인할 때마다 악성 스크립트가 자동으로 실행됩니다.

배치 파일:
아래 그림은 난독화된 형태의 BAT 스크립트와 난독화된 버전이 함께 표시되어 있습니다.

PowerShell 스크립트:
아래 그림은 PowerShell 프로세스 창과 실행 중 사용된 명령줄 인수를 보여줍니다. 이를 통해 악성코드가 PowerShell을 활용하여 메모리 내 페이로드를 전달하는 방식을 파악할 수 있습니다. 다음 섹션에서는 PowerShell 스크립트를 자세히 분석하여 XWorm 배포에서 이 스크립트가 어떤 역할을 하는지 살펴보겠습니다.


이 PowerShell 명령은 Base64로 인코딩된 문자열을 디코딩하여 메모리에서 실행하는 스크립트를 실행합니다. -nop 옵션을 사용하여 사용자 프로필을 로드하지 않고, -w hidden 옵션을 사용하여 창을 숨기고, iex(Invoke-Expression) 옵션을 사용하여 디코딩된 콘텐츠를 실행합니다.
난독화된 스크립트:

난독화된 스크립트를 두 부분으로 나누었습니다. PowerShell 스크립트의 첫 번째 부분은 현재 사용자 프로필 디렉터리에 있는 배치 파일(aoc.bat)에 포함된 난독화된 코드를 찾아 실행하도록 설계되었습니다. 먼저, 환경 변수에서 사용자 이름을 검색하여 전체 경로를 구성합니다. aoc.bat. UTF-8 인코딩을 사용하여 모든 줄을 읽고 각 줄을 반복하며, 특히 트리플 콜론 주석 접두사(:::)로 시작하고 Base64 인코딩된 문자열이 뒤에 오는 줄을 찾습니다. 해당 줄을 찾으면 Base64 문자열을 바이트 배열로 디코딩한 다음, $ttzhae 변수에 할당된 유니코드 문자열로 변환합니다. 디코딩된 문자열($ttzhae)에는 PowerShell 스크립트 계층이 추가로 포함되어 있으며, 이 스크립트는 Invoke-Expression을 사용하여 메모리에서 실행됩니다. 이를 통해 공격자는 겉보기에 무해한 배치 파일 주석 내에 복잡하거나 다단계의 악성 PowerShell 로직을 은밀하게 내장하고 실행하여 은밀하고 파일리스(fileless) 실행을 가능하게 합니다.

이 스크립트는 두 가지 주요 Windows 보안 메커니즘인 AMSI(Antimalware Scan Interface)와 ETW(Event Tracing for Windows)를 프로그래밍 방식으로 비활성화하여 탐지를 회피합니다. .NET 리플렉션과 동적 대리자 생성을 활용하여 GetProcAddress, GetModuleHandle, VirtualProtect, AmsiInitialize와 같은 네이티브 함수를 확인합니다. 이러한 네이티브 함수를 사용하여 메모리에서 AmsiScanBuffer 함수를 찾아 (mov eax, 0; ret) 명령어로 패치하여 AMSI 검사를 효과적으로 우회합니다. 마찬가지로, EtwEventWrite의 시작 부분을 반환 명령어로 덮어써서 이벤트 추적을 비활성화합니다. 이러한 메모리 내 수정을 통해 악성 PowerShell 활동이 엔드포인트 보호 솔루션에 의해 기록되거나 검사되지 않고 은밀하게 실행될 수 있습니다.

PowerShell 스크립트의 두 번째 부분에서는 먼저 환경에서 현재 사용자 이름을 검색하고 이름이 지정된 파일에 대한 경로를 구성합니다. aoc.bat 사용자 프로필 디렉터리에 있습니다. 이 배치 파일 내에 숨겨진 암호화 및 압축된 .NET 어셈블리로 내장된 페이로드를 실행합니다. 스크립트는 Base64로 인코딩된 페이로드 문자열이 포함된 :: 접두사가 붙은 주석 줄을 구체적으로 검색합니다. 이 문자열은 백슬래시(\)를 구분 기호로 사용하여 두 부분으로 나뉩니다. 각 부분은 Base64 디코딩, 하드코딩된 키와 IV(PKCS7 패딩이 적용된 CBC 모드)를 사용한 AES 복호화, 그리고 첨부된 그림과 같이 GZIP 압축 해제 과정을 거칩니다. 결과적으로 두 개의 개별 .NET 어셈블리가 생성되며, 둘 다 메모리에 직접 로드되어 실행됩니다. 첫 번째 어셈블리는 인수 없이 호출되고, 두 번째 어셈블리는 시뮬레이션된 명령줄 입력으로 '%*'를 전달하여 실행됩니다.

두 번째 페이로드는 더욱 중요한 역할을 합니다. 이는 최종 맬웨어인 XWorm 원격 액세스 트로이 목마(RAT)를 실행하는 로더 역할을 합니다.

짐을 싣는 사람
이 로더는 탐지를 회피하고, 이벤트 로깅을 비활성화하며, 내장된 페이로드를 메모리에 직접 실행하도록 설계되었습니다. Assembly.Load를 통해 .NET 실행 파일을 복호화하고 실행하거나, VirtualProtect와 델리게이트를 사용하여 복호화된 셸코드를 실행함으로써 이를 구현합니다.



로더 기능:
- 탐지 회피

- 이벤트 로깅 비활성화

- 내장된 페이로드 추출 및 실행
여기에서는 탐지를 피하고 은밀하게 실행하기 위해 메모리 내 실행 기술을 사용하는 여러 로더를 식별했습니다. 이러한 로더 중 일부는 암호화된 .NET 실행 파일을 포함하고 있으며, 이 실행 파일은 런타임에 복호화되어 Assembly.Load 후 .EntryPoint.Invoke를 사용하여 메모리에서 직접 실행됩니다. 이를 통해 로더는 실행 파일을 디스크에 쓰지 않고도 관리되는 코드를 실행할 수 있습니다.
반면, 다른 변형들은 바이너리 대신 암호화된 셸코드를 사용합니다. 이러한 변형들은 셸코드를 복호화하고, VirtualProtect를 사용하여 메모리 보호 기능을 수정하여 실행 가능하게 만든 다음, Marshal.GetDelegateForFunctionPointer를 통해 생성된 대리자를 사용하여 실행합니다. 아래 그림과 같이,

- 고집

엑스웜
우리는 이전에 보고했습니다 엑스웜 및 렘 코스 올해 초에 핵심 기능, 키로깅, 원격 명령 실행, 데이터 유출, 지속 및 회피 방법과 같은 고급 기능에 대한 심층 분석을 제공했습니다.

XWorm 외에도 동일한 캠페인의 여러 변형도 활용되었습니다. 렘 코스원격 데스크톱 접속, 키로깅, 명령 실행, 파일 조작, 스크린샷 캡처, 데이터 유출 등 다양한 기능을 제공하는 널리 알려진 상업용 원격 접속 트로이 목마(RAT)입니다.
캠페인 2:
캠페인 2는 주로 피싱 공격에 사용되는 JavaScript가 내장된 SVG(Scalable Vector Graphics) 파일을 활용하여 악성코드 유포 방식에 눈에 띄는 변화를 가져왔습니다. 이러한 악성 SVG는 정상적인 이미지 파일로 보이도록 제작되어 취약한 소프트웨어 환경(예: 오래된 이미지 뷰어 또는 이메일 클라이언트)에서 렌더링되거나, 의심하지 않는 사용자를 유인하도록 설계된 피싱 웹 페이지에 내장됩니다. 이제 SVG 파일에 내장된 JavaScript는 트리거 메커니즘으로 작동하여 SVG를 열거나 미리 볼 때 ZIP 압축 파일의 자동 다운로드를 시작합니다.
다운로드된 ZIP 압축 파일에는 난독화된 BAT 스크립트가 포함되어 있으며, 이 스크립트는 맬웨어의 초기 접근 경로 역할을 합니다. 사용자가 직접 또는 소셜 엔지니어링 기법을 통해 BAT 스크립트를 실행하면 캠페인 1에서 관찰된 것과 유사한 다단계 감염 사슬이 시작됩니다. 구체적으로, BAT 스크립트는 PowerShell 명령을 호출하여 메모리에 있는 로더 실행 파일(EXE)을 직접 디코딩하고 실행합니다. 이 로더는 최종 페이로드를 복호화하고 배포하는데, 이 캠페인에서는 이 페이로드가 XWorm 원격 접근 트로이 목마(RAT)입니다.
SVG를 전달 메커니즘으로 사용하는 것은 공격 방법론에 있어 주목할 만한 발전을 보여줍니다. 이미지 파일은 일반적으로 무해한 것으로 간주되어 기존 보안 도구에서는 심층적인 콘텐츠 검사에서 제외되는 경우가 많기 때문입니다. 위협 행위자는 SVG의 스크립팅 기능을 악용하여 경계 방어를 효과적으로 우회하고 파일 없이 은밀하게 악성 페이로드를 전달할 수 있습니다.
결론 :
이러한 캠페인은 난독화된 스크립트, 파일리스 맬웨어, 그리고 SVG와 같은 비전통적인 파일 형식을 사용하여 XWorm 및 Remcos와 같은 원격 액세스 트로이 목마를 유포하는 추세가 증가하고 있음을 보여줍니다. 공격자는 BAT 파일에 페이로드를 내장하고 PowerShell을 통해 이를 실행함으로써 정적 방어 체계를 효과적으로 우회합니다. 피싱 공격에서 SVG를 사용하는 방식에서 맬웨어 유포 방식으로 전환됨에 따라, 이처럼 진화하는 위협에 대응하기 위해서는 행동 탐지, 콘텐츠 검사, 그리고 사용자 인식 개선이 더욱 중요해지고 있습니다.
IOC:
| MD5 | 입양 부모로서의 귀하의 적합성을 결정하기 위해 미국 이민국에 |
| EDA018A9D51F3B09C20E88A15F630DF5 | BAT |
| 23E30938E00F89BF345C9C1E58A6CC1D | JS |
| 1CE36351D7175E9244209AE0D42759D9 | 짐을 싣는 사람 |
| EC04BC20CA447556C3BDCFCBF6662C60 | 엑스웜 |
| D439CB98CF44D359C6ABCDDDB6E85454 | 렘코스 |
감지:
Trojan.LoaderCiR
트로이 목마.제네릭FC.S29960909
MITRE 공격 TTP:
| 술책 | 기술 ID 및 이름 | 기술설명 |
| 실행 | T1059.001 – 명령 및 스크립팅 인터프리터: PowerShell | PowerShell은 명령을 해석하고, 데이터를 해독하고, 페이로드를 호출하는 데 사용됩니다. |
| T1106 – API를 통한 실행 | 스크립트는 .NET API(예: Assembly.Load, Invoke)를 사용하여 메모리에서 페이로드를 실행합니다. | |
| 방어 회피 | T1027 – 난독화된 파일 또는 정보 | 페이로드는 Base64로 인코딩되고, AES로 암호화되며, 정적 탐지를 우회하기 위해 압축됩니다. |
| T1140 – 파일 또는 정보 난독화 해제/디코딩 | 스크립트는 실행하기 전에 페이로드를 디코딩하고 압축을 해제합니다. | |
| T1055.012 – 프로세스 주입: .NET 어셈블리 주입 | 페이로드는 메모리에 로드됩니다. | |
| T1036 – 위장 | 악성 콘텐츠는 배치 파일에 숨겨져 있습니다. | |
| 고집 | T1053 – 예약된 작업/작업 | strartup 메뉴를 통해 지속성을 확립하세요. |
| 초기 액세스 | T1204 – 사용자 실행 | 실행은 사용자가 배치 파일을 수동으로 실행하는 데 따라 달라집니다. |
| 명령 및 제어 | T1132 – 데이터 인코딩 | Base64와 암호화는 명령이나 페이로드를 인코딩하는 데 사용됩니다. |
| T1219 – 원격 접속 소프트웨어 | Xworm은 감염된 호스트에 대한 완전한 원격 액세스 및 제어 기능을 제공합니다. | |
| 자격 증명 액세스 | T1056.001 – 입력 캡처: 키로깅 | XWorm에는 사용자 입력과 자격 증명을 훔치는 키로깅 기능이 포함되어 있습니다. |
| 여과 | T1041 – C2 채널을 통한 유출 | 도난당한 데이터는 Xworm이 사용하는 것과 동일한 C2 채널을 통해 유출됩니다. |
저자:
바이바브 빌라데
루마나 시디키



