생성 데이터 인텔리전스

NSPX30: 2005년 이후 진화한 정교한 AitM 지원 임플란트

시간

ESET 연구진은 이전에 공개되지 않은 중국 관련 위협 행위자 Blackwood가 수행한 공격에 대한 분석을 제공합니다. 이 공격자는 최소 2018년부터 활동해 온 것으로 보입니다. 공격자는 공격자를 통해 NSPX30이라는 정교한 임플란트를 전달합니다. -in-the-middle(AitM) 공격은 합법적인 소프트웨어의 업데이트 요청을 하이재킹합니다.

이 블로그 게시물의 핵심 사항:

  • 우리는 Tencent QQ, WPS Office 및 Sogou Pinyin과 같은 합법적인 소프트웨어의 업데이트 메커니즘을 통해 배포되는 NSPX30 임플란트를 발견했습니다.
  • 우리는 중국, 일본 회사는 물론 중국, 일본, 영국에 위치한 개인을 대상으로 한 표적 공격에서 임플란트를 발견했습니다.
  • 우리 연구에서는 NSPX30의 진화를 피해자로부터 데이터를 수집하도록 설계된 Project Wood라고 명명한 2005년의 작은 백도어까지 추적했습니다.
  • NSPX30은 드로퍼, 설치 프로그램, 로더, 오케스트레이터, 백도어 등 여러 구성 요소를 포함하는 다단계 임플란트입니다. 후자의 두 가지 모두 자체 플러그인 세트를 가지고 있습니다.
  • 이 임플란트는 패킷을 가로채는 공격자의 능력을 중심으로 설계되어 NSPX30 운영자가 인프라를 숨길 수 있게 되었습니다.
  • NSPX30은 또한 여러 중국 맬웨어 방지 솔루션에 자체적으로 허용 목록을 추가할 수 있습니다.
  • 우리는 이 활동을 Blackwood라고 명명한 새로운 APT 그룹의 소행으로 간주합니다.

블랙우드 프로필

Blackwood는 최소 2018년부터 활동 중인 중국 관련 APT 그룹으로, 중국과 일본의 개인 및 기업을 대상으로 사이버 스파이 활동에 참여하고 있습니다. Blackwood는 적법한 소프트웨어 업데이트를 통해 NSPX30이라는 임플란트를 전달하기 위해 중간자 공격을 수행하고, 임플란트에서 생성된 트래픽을 가로채서 명령 및 제어 서버의 위치를 ​​숨길 수 있는 기능을 갖추고 있습니다.

캠페인 개요

2020년에는 중국에 위치한 표적 시스템에서 악성 활동이 급증한 것이 감지되었습니다. 공격자가 다른 APT 그룹과 관련된 악성 코드 툴킷을 사용하려는 시도를 감지함에 따라 이 시스템은 우리가 일반적으로 "위협 자석"이라고 부르는 것이 되었습니다. 회피 판다, 루오유, LittleBear로 추적하는 세 번째 위협 행위자입니다.

해당 시스템에서 우리는 세 그룹의 툴킷에 속하지 않는 의심스러운 파일도 발견했습니다. 이로 인해 NSPX30이라는 임플란트에 대한 조사가 시작되었습니다. 우리는 2005년까지 거슬러 올라가 그 진화를 추적할 수 있었습니다.

ESET 원격 측정에 따르면 임플란트는 소수의 시스템에서 감지되었습니다. 피해자는 다음과 같습니다:

  • 중국과 일본에 소재한 신원이 확인되지 않은 개인,
  • 영국의 유명 공립 연구 대학 네트워크에 연결된 신원 미상의 중국어 사용자,
  • 중국의 대규모 제조 및 무역 회사,
  • 엔지니어링 및 제조 분야의 일본 기업의 중국 사무실입니다.

또한 공격자가 액세스 권한이 손실되면 시스템을 다시 손상시키려고 시도하는 것도 확인했습니다.

그림 1은 ESET 원격 측정에 따른 Blackwood 대상의 지리적 분포입니다.

그림 1. 블랙우드 피해자의 지리적 분포
그림 1. 블랙우드 피해자의 지리적 분포

NSPX30 진화

NSPX30 임플란트에 대한 연구를 진행하면서 우리는 그 진화를 초기 조상, 즉 Project Wood라는 이름의 간단한 백도어로 다시 매핑했습니다. 우리가 찾을 수 있는 가장 오래된 프로젝트 우드 샘플은 2005년에 컴파일되었으며, 여러 임플란트를 만들기 위한 코드베이스로 사용된 것으로 보입니다. NSPX30이 발전한 임플란트 중 하나는 2008년 저자에 의해 DCM으로 명명되었습니다.

그림 2는 수집된 샘플 분석, ESET 원격 측정 및 공개 문서를 기반으로 이러한 개발의 타임라인을 보여줍니다. 그러나 여기에 문서화된 이벤트와 데이터는 알 수 없는 수의 위협 행위자에 의한 거의 XNUMX년 간의 개발 및 악의적 활동에 대한 불완전한 그림입니다.

그림 2. Project Wood, DCM 및 NSPX30의 주요 변형 타임라인
그림 2. Project Wood, DCM 및 NSPX30의 주요 변형 타임라인

다음 섹션에서는 Project Wood, DCM 및 NSPX30에 관한 몇 가지 조사 결과를 설명합니다.

프로젝트 우드

이러한 임플란트 진화의 출발점은 9월 XNUMX일에 컴파일된 작은 백도어이다.th, 2005, 두 구성 요소인 로더와 백도어의 PE 헤더에 있는 타임스탬프에 따르면. 후자에는 시스템 및 네트워크 정보를 수집하는 기능은 물론 키 입력을 기록하고 스크린샷을 찍는 기능도 있습니다.

그림 3과 같이 반복되는 뮤텍스 이름을 기반으로 백도어의 이름을 Project Wood로 지정했습니다.

그림 3. 대부분의 샘플에서 반복되는 테마가 있는 Project Wood 코드
그림 3. 대부분의 샘플에서 반복되는 테마가 있는 Project Wood 코드

컴파일 타임스탬프는 공격자가 변조할 수 있으므로 신뢰할 수 없는 지표입니다. 따라서 이 특정한 경우에는 추가 데이터 포인트를 고려했습니다. 첫째, 로더 및 백도어 샘플의 PE 헤더에 있는 타임스탬프입니다. 표 1을 참조하세요. 두 구성 요소의 컴파일 시간에는 17초의 차이만 있습니다.

표 1. 2005년 샘플 구성요소의 PE 컴파일 타임스탬프

SHA-1

파일 이름

PE 컴파일 타임스탬프

상품 설명

9A1B575BCA0DC969B134
4651F16514660D1B78A6

MainFuncOften.dll

2005-01-09 08:21:22

프로젝트 우드 백도어.

내보내기 테이블의 타임스탬프는 PE 컴파일 타임스탬프와 일치합니다.

834EAB42383E171DD6A4
2F29A9BA1AD8A44731F0

해당 사항 없음

2005-01-09 08:21:39

Project Wood 로더에는 리소스로 포함된 백도어가 포함되어 있습니다.

 

두 번째 데이터 포인트는 다음을 사용하여 압축된 드로퍼 샘플에서 나옵니다. UPX. 이 도구는 해당 버전(그림 4)을 결과 압축 파일(이 경우 UPX 버전 1.24)에 삽입합니다. 2003에서 발표 됨, 샘플 편집 날짜 이전.

그림 4. 드로퍼 샘플의 도구 버전이 포함된 UPX 문자열
그림 4. 드로퍼 샘플의 도구 버전이 포함된 UPX 문자열

세 번째 데이터 포인트는 샘플이 Visual Studio 5을 사용하여 컴파일되었음을 나타내는 PE 리치 헤더(그림 6.0)의 유효한 메타데이터입니다. 1998에서 발표 됨, 샘플 컴파일 날짜 이전.

그림 5. 드로퍼 샘플의 PE 리치 헤더
그림 5. 드로퍼 샘플의 PE 리치 헤더

타임스탬프, 리치 헤더 메타데이터, UPX 버전이 모두 공격자가 조작되었을 가능성은 거의 없다고 평가합니다.

공개 문서

A에 따라 기술 논문 2011년 XNUMX월 SANS Institute에서 게시한 이름과 출처가 밝혀지지 않은 백도어(Project Wood)는 스피어피싱 이메일을 통해 홍콩의 정치인을 표적으로 삼는 데 사용되었습니다.

2014년 XNUMX월 G DATA는 신고 Operation TooHash라는 캠페인의 이름은 다음과 같습니다. 젤세미 APT 그룹. DirectsX라는 루트킷 G DATA는 DCM 및 이후 NSPX6에서 볼 수 있는 일부 기능을 갖춘 Project Wood 백도어의 변형(그림 30 참조)을 로드합니다(예: 사이버 보안 제품의 허용 목록 지정(나중에 자세히 설명됨, 표 4 참조)).

그림 6. 반복되는 주제
그림 6. 반복되는 주제는 Operation TooHash의 샘플에도 존재합니다.

DCM 일명 다크 스펙터

초기 Project Wood는 여러 프로젝트의 코드베이스로 사용되었습니다. 그 중 하나는 저자가 만든 DCM(그림 7 참조)이라는 임플란트입니다.

그림 7. DCM 이식에서 새로운 뮤텍스 이름을 사용하는 코드
그림 7. DCM 이식에서 새로운 뮤텍스 이름을 사용하는 코드

2016년 Tencent의 보고서에서는 공격자의 AitM 기능을 사용하여 DCM 설치 프로그램을 소프트웨어 업데이트로 제공하여 피해자를 손상시키고 DNS 요청을 통해 합법적인 서버로 데이터를 유출하는 더욱 발전된 DCM 변종에 대해 설명합니다. 공격에 DCM이 사용된 것을 마지막으로 관찰한 것은 2018년이었습니다.

공개 문서

DCM은 중국 회사에서 처음으로 문서화되었습니다. 2012년의 장민, 그 시점에서는 이름이 지정되지 않았지만 나중에 Dark Specter로 명명되었습니다. 2016 년 Tencent.

NSPX30

우리가 발견한 가장 오래된 NSPX30 샘플은 6월 XNUMX일에 편집되었습니다.th, 2018. NSPX30은 공격자의 AitM 기능에 전적으로 의존하여 작업이 두 단계로 나누어졌기 때문에 DCM과 구성요소 구성이 다릅니다. DCM의 코드는 더 작은 구성요소로 분할되었습니다.

플러그인 샘플에서 발견된 PDB 경로를 따라 임플란트의 이름을 지정했습니다.

  • Z:작업 공간mm32NSPX30플러그인pluginb001.pdb
  • Z:WorkspaceCodeMMX30ProtrunkMMPluginshookdllReleasehookdll.pdb

우리는 NSP가 지속성 기술인 영구 로더 DLL을 참조한다고 믿습니다. msnsp.dll, 내부적으로 이름이 지정됨 mynsp.dll (Export Table 데이터에 따르면) 아마도 Winsock으로 설치되었기 때문일 것입니다. nAMEs걸음 p로바이더(NSP).

마지막으로, 우리가 아는 한, NSPX30은 이 출판물 이전에 공개적으로 문서화되지 않았습니다.

기술적 분석

ESET 원격 측정을 사용하여 합법적인 소프트웨어가 (암호화되지 않은) HTTP 프로토콜을 사용하여 합법적인 서버에서 업데이트를 다운로드하려고 시도하면 시스템이 손상된다는 사실을 확인했습니다. 하이재킹된 소프트웨어 업데이트에는 Tencent QQ, Sogou Pinyin 및 WPS Office와 같은 인기 있는 중국어 소프트웨어에 대한 업데이트가 포함됩니다.

ESET 원격 측정에 표시된 실행 체인의 그림은 그림 8에 나와 있습니다.

그림 8. 관찰된 실행 체인의 그림
그림 8. 관찰된 실행 체인의 그림

표 2에서는 다운로드가 발생한 시점에 사용자 시스템에서 도메인이 확인된 URL 및 IP 주소의 예를 제공합니다.

표 2. 합법적인 다운로더 구성 요소의 관찰된 URL, 서버 IP 주소 및 프로세스 이름

URL

처음 본

IP 주소

ASN

다운

https://dl_dir.qq[.]com/
invc/qq/minibrowser.zip

2021-10-17

183.134.93[.]171

AS58461 (차이나넷)

Tencentdl.exe

ESET 원격 측정 및 패시브 DNS 정보에 따르면 다른 사례에서 관찰된 IP 주소는 합법적인 소프트웨어 회사의 도메인과 연결되어 있습니다. 우리는 그 중 일부에 최대 수백만 개의 연결을 등록했으며 해당 IP 주소에서 합법적인 소프트웨어 구성 요소가 다운로드되는 것을 확인했습니다.

네트워크 이식 가설

공격자가 처음에 목표물을 손상시킬 수 있는 도구를 아직 발견하지 못했기 때문에 공격자가 정확히 어떻게 NSPX30을 악성 업데이트로 제공할 수 있는지 우리는 알 수 없습니다.

이러한 능력을 보여주는 중국 관련 위협 행위자들에 대한 우리의 경험을 바탕으로 합니다(회피 판다마법사), 라우터 임플란트에 대한 최근 연구 블랙테크카마로 드래곤 (일명 머스탱 팬더), 우리는 공격자가 피해자의 네트워크, 아마도 라우터나 게이트웨이와 같은 취약한 네트워크 장비에 네트워크 임플란트를 배포하고 있다고 추측합니다.

DNS를 통한 트래픽 리디렉션에 대한 징후를 찾지 못했다는 사실은 가정된 네트워크 임플란트가 업데이트와 관련된 암호화되지 않은 HTTP 트래픽을 가로챌 때 DLL, 실행 파일 또는 ZIP 아카이브 형식의 NSPX30 임플란트의 드로퍼로 응답한다는 것을 의미할 수 있습니다. DLL이 포함되어 있습니다.

이전에 우리는 NSPX30 임플란트가 C&C 인프라를 익명화하기 위해 공격자의 패킷 차단 기능을 사용한다고 언급했습니다. 다음 하위 섹션에서는 이를 수행하는 방법을 설명합니다.

HTTP 가로채기

백도어를 다운로드하기 위해 오케스트레이터는 합법적인 중국 검색 엔진이자 소프트웨어 제공업체인 Baidu 웹사이트에 특이한 방식으로 HTTP 요청(그림 9)을 수행합니다. 사용자 에이전트 Windows 98에서 Internet Explorer로 가장합니다. 서버의 응답은 백도어 구성 요소가 추출되어 메모리에 로드되는 파일에 저장됩니다.

그림 9. 오케스트레이터가 보낸 HTTP 요청
그림 9. 오케스트레이터가 보낸 HTTP 요청

XNUMXD덴탈의 요청-URI 사용자 지정이며 오케스트레이터 및 손상된 시스템의 정보를 포함합니다. 가로채지 않는 요청의 경우 합법적인 서버에 이러한 요청을 보내면 404 오류 코드가 반환됩니다. 약간 다른 방법을 사용하여 백도어에서 플러그인을 다운로드하기 위해 유사한 절차를 사용합니다. 요청-URI.

네트워크 이식은 단순히 HTTP GET 요청을 찾아야 합니다. www.baidu.com 그 특별한 늙은이랑 사용자 에이전트 분석하고 요청-URI 어떤 페이로드를 보내야 하는지 결정합니다.

UDP 가로채기

초기화 중에 백도어는 수동 UDP 청취 소켓을 생성하고 운영 체제가 포트를 할당할 수 있도록 합니다. 수동 백도어를 사용하는 공격자에게는 문제가 발생할 수 있습니다. 예를 들어 NAT를 사용하는 방화벽이나 라우터가 네트워크 외부에서 들어오는 통신을 차단하는 경우입니다. 또한 백도어에 접속하려면 임플란트 컨트롤러가 손상된 시스템의 정확한 IP 주소와 포트를 알아야 합니다.

우리는 공격자가 백도어가 명령을 수신하여 수집된 데이터를 추출하는 것과 동일한 포트를 사용하여 후자의 문제를 해결했다고 믿습니다. 따라서 네트워크 임플란트는 패킷을 전달할 위치를 정확히 알 수 있습니다. 데이터 유출 절차는 기본적으로 소켓이 생성된 후 시작되며, 소켓에 대한 DNS 쿼리로 구성됩니다. microsoft.com 도메인; 수집된 데이터는 DNS 패킷에 추가됩니다. 그림 10은 백도어가 보낸 첫 번째 DNS 쿼리의 캡처를 보여줍니다.

그림 10. DNS 쿼리
그림 10. 백도어가 보낸 DNS 쿼리. 수집된 정보는 일반 텍스트로 추가됩니다.

첫 번째 DNS 쿼리가 다음으로 전송됩니다. 180.76.76[.]11:53 (작성 당시 DNS 서비스를 노출하지 않는 서버) 다음 각 쿼리에 대해 그림 11과 같이 대상 IP 주소가 후속 주소로 변경됩니다.

그림 11. 백도어가 보낸 DNS 메시지
그림 11. 백도어가 보낸 DNS 메시지. 각 요청마다 IP 주소가 XNUMX씩 증가한다는 점에 유의하세요.

XNUMXD덴탈의 180.76.76.0/24 네트워크는 Baidu가 소유하고 있으며 흥미롭게도 이러한 IP 주소의 일부 서버는 다음과 같은 DNS 서비스를 노출합니다. 180.76.76.76, 이는 Baidu의 것입니다. 공용 DNS 서비스.

우리는 DNS 쿼리 패킷이 가로채어지면 네트워크 임플란트가 이를 공격자의 서버로 전달한다고 믿습니다. 임플란트는 여러 값을 결합하여 지문을 생성함으로써 패킷을 쉽게 필터링할 수 있습니다. 예를 들면 다음과 같습니다.

  • 대상 IP 주소
  • UDP 포트(우리는 관찰했습니다. 53, 44998000),
  • 일치하는 DNS 쿼리의 트랜잭션 ID 0xFEAD,
  • 도메인 이름, 그리고 
  • 외부 데이터가 추가된 DNS 쿼리입니다.

마무리

공격자의 AitM 기능을 사용하여 패킷을 가로채는 것은 C&C 인프라의 위치를 ​​숨기는 영리한 방법입니다. 우리는 중국 외부, 즉 일본과 영국에 위치한 피해자를 관찰했으며, 이에 대해 오케스트레이터는 백도어를 배포할 수 있었습니다. 그런 다음 공격자는 백도어에 명령을 보내 플러그인을 다운로드했습니다. 예를 들어, 영국의 피해자는 Tencent QQ로부터 정보와 채팅을 수집하도록 설계된 두 개의 플러그인을 받았습니다. 따라서 우리는 AitM 시스템이 제대로 작동하고 있다는 것을 알고 있으며, 유출 메커니즘도 마찬가지라고 가정해야 합니다.

일부 서버 – 예를 들어 180.76.76.0/24 네트워크 – 그런 것 같아요 애니캐스트된, 이는 (합법적인) 들어오는 요청에 응답하기 위해 전 세계에 여러 개의 지리적 위치가 있는 서버가 있을 수 있음을 의미합니다. 이는 네트워크 차단이 Baidu의 네트워크에 더 가깝기보다는 대상에 더 가까운 곳에서 수행될 가능성이 있음을 나타냅니다. Baidu는 네트워크 인프라의 일부를 중국 외부에 보유하고 있으므로 중국 ISP로부터의 차단도 불가능합니다. 따라서 중국 외부의 피해자는 Baidu 서비스에 접속하기 위해 중국 ISP를 경유할 수 없습니다.

NSPX30

다음 섹션에서는 악성코드 실행의 주요 단계를 설명합니다.

무대 1

그림 12는 합법적인 구성 요소가 디스크에 여러 파일을 생성하는 악성 드로퍼 DLL을 로드할 때의 실행 체인을 보여줍니다.

그림 12. 드로퍼 DLL에 의해 시작된 실행 체인
그림 12. 드로퍼 DLL에 의해 시작된 실행 체인

드로퍼가 실행됩니다. RsStub.exe, 중국 맬웨어 방지 제품인 Rising Antivirus의 합법적인 소프트웨어 구성 요소로, 악성 프로그램을 사이드로드하는 데 악용됩니다. comx3.dll.

그림 13은 이 구성요소를 실행하는 동안 수행된 주요 단계를 보여줍니다.

그림 13. 로딩 체인
그림 13. 다음과 같은 경우 로딩 체인이 시작되었습니다. RsStub.exe 악의적인 로드 comx3.dll

인셀덤 공식 판매점인 RsStub.exe 통화 종료프로세스, 합법적인 API 함수 코드 대신 쉘코드의 로더 함수가 실행됩니다.

로더는 파일에서 설치 프로그램 DLL을 해독합니다. comx3.dll.txt; 그런 다음 쉘코드는 설치 프로그램 DLL을 메모리에 로드하고 진입점을 호출합니다.

설치 프로그램 DLL

설치 프로그램은 오픈 소스 구현에서 가져온 UAC 우회 기술을 사용하여 새로운 승격된 프로세스를 만듭니다. 표 3에서 볼 수 있듯이 어떤 것을 사용하는지는 여러 조건에 따라 달라집니다.

표 3. UAC 우회 기법을 적용하기 위해 충족해야 하는 주요 조건과 각 하위 조건

조건은 두 가지 프로세스의 존재를 확인합니다. avp.exe Kaspersky의 맬웨어 방지 소프트웨어의 구성 요소이며 rstray.exe Rising Antivirus의 구성 요소입니다.

설치 프로그램은 Windows Defender의 샘플 제출을 비활성화하려고 시도하고 로더 DLL에 대한 제외 규칙을 추가합니다. msnsp.dll. cmd.exe를 통해 두 개의 PowerShell 명령을 실행하여 이를 수행합니다.

  • cmd /c powershell -inputformat 없음 -outputformat 없음 -NonInteractive -Command Set-MpPreference -SubmitSamplesConsent 0
  • cmd /c powershell -inputformat 없음 -outputformat 없음 -NonInteractive -Command Add-MpPreference -ExclusionPath “C:Program Files (x86)Common Filesmicrosoft sharedTextConvmsnsp.dll”

그런 다음 설치 프로그램은 영구 로더 DLL을 다음 위치에 삭제합니다. C:프로그램 파일(x86)공용 파일microsoft sharedTextConvmsnsp.dll API를 사용하여 지속성을 설정합니다. WSC설치이름공간 DLL을 다음과 같이 설치하려면 Winsock 네임스페이스 공급자 이름 msnsp, 그림 14과 같습니다.

그림 14. 악성 Winsock 네임스페이스 공급자를 설치하는 코드
그림 14. 악성 Winsock 네임스페이스 공급자를 설치하는 코드

결과적으로 프로세스가 Winsock을 사용할 때마다 DLL이 자동으로 로드됩니다.

마지막으로 설치 프로그램은 로더 DLL을 삭제합니다. mshlp.dll 암호화된 오케스트레이터 DLL WIN.cfgC:프로그램데이터윈도우.

무대 2

이 단계는 실행으로 시작됩니다. msnsp.dll. 그림 15는 2단계의 로딩 체인을 보여줍니다.

그림 15. 로딩 체인
그림 15. 시스템이 악성 Winsock 네임스페이스 공급자를 로드할 때 시작되는 로드 체인

오케스트라

그림 16은 백도어 획득 및 플러그인 로드를 포함하여 오케스트레이터가 수행하는 주요 작업을 보여줍니다.

그림 16. Orchestrator 구성 요소의 실행 체인 및 주요 작업
그림 16. Orchestrator 구성 요소의 실행 체인 및 주요 작업

로드되면 오케스트레이터는 해당 작업을 수행하기 위해 두 개의 스레드를 만듭니다.

오케스트레이터 스레드 1

오케스트레이터는 디스크에서 원본 드로퍼 파일을 삭제하고 디스크에서 백도어 로드를 시도합니다. msfmtkl.dat. 파일이 존재하지 않거나 열리지 않는 경우 오케스트레이터는 앞서 설명한 대로 Windows 인터넷 API를 사용하여 중국 회사 Baidu의 합법적인 웹 사이트에 대한 연결을 엽니다.

서버의 응답은 유효성 검사 절차에 따라 임시 파일에 저장됩니다. 모든 조건이 충족되면 파일 내부에 있는 암호화된 페이로드가 새 파일에 기록되고 다음과 같이 이름이 변경됩니다. msfmtkl.dat.

암호화된 페이로드를 사용하여 새 파일이 생성되면 오케스트레이터는 해당 콘텐츠를 읽고 RC4를 사용하여 페이로드를 해독합니다. 결과 PE는 메모리에 로드되고 해당 진입점이 실행됩니다.

오케스트레이터 스레드 2

현재 프로세스의 이름에 따라 오케스트레이터는 플러그인 로드, 중국산 3개 맬웨어 방지 소프트웨어 제품의 로컬 데이터베이스에 로더 DLL을 허용 목록에 추가하는 제외 항목 추가 등 여러 작업을 수행합니다.

표 4에서는 오케스트레이터가 해당 로더를 허용 목록에 추가할 수 있는 보안 소프트웨어 제품군의 프로세스 이름과 일치할 때 취하는 조치를 설명합니다.

표 4. 특정 보안 소프트웨어 이름을 가진 프로세스에서 실행 시 Orchestrator의 작업

프로세스 이름

타겟 소프트웨어

동작

qqpcmgr.exe

qqpctray.exe

qqpcrtp.exe

Tencent PC 관리자

합법적인 DLL을 로드하려고 시도합니다. TAVinterface.dll 내보낸 기능을 사용하려면 CreateTaveInstance 인터페이스를 얻으려면. 인터페이스에서 두 번째 함수를 호출하면 파일 경로가 매개변수로 전달됩니다.

360safe.exe

360트레이.exe

360 세이프가드(일명 360Safe)

합법적인 DLL을 로드하려고 시도합니다. deepscancloudcom2.dll 내보낸 기능을 사용하려면 XD열기, XDAddRecordsExXD닫기, SQL 데이터베이스 파일에 새 항목을 추가합니다. speedmem2.hg.

360sd.exe

360 바이러스 백신

파일을 열려고 시도합니다. sl2.db 로더 DLL에 대한 경로가 포함된 base64로 인코딩된 이진 구조를 추가합니다.

kxescore.exe

kxetray.exe

킹소프트 안티바이러스

합법적인 DLL을 로드하려고 시도합니다. securitykxescankhistory.dll 내보낸 기능을 사용하려면 KSDllGetClassObject 인터페이스를 얻으려면. vtable에서 함수 중 하나를 호출할 때 파일 경로를 매개변수로 전달합니다.

표 5는 프로세스 이름이 선택한 인스턴트 메시징 소프트웨어의 이름과 일치할 때 수행되는 조치를 설명합니다. 이러한 경우 오케스트레이터는 디스크에서 플러그인을 로드합니다.

표 5. 특정 인스턴트 메시징 소프트웨어 이름을 사용하는 프로세스에서 실행 시 Ochestrator 작업

프로세스 이름

타겟 소프트웨어

동작

qq.exe

Tencent QQ

이름이 지정된 뮤텍스를 만들려고 시도합니다. QQ 메시지 잠금 받기. 뮤텍스가 아직 존재하지 않으면 플러그인을 로드합니다. c001.dat, c002.datc003.dat 디스크에서.

위챗.exe

WeChat

플러그인 로드 c006.dat.

텔레그램.exe

텔레그램

플러그인 로드 c007.dat.

스카이프.exe

Skype:

플러그인 로드 c003.dat.

cc.exe

알려지지 않은; 혹시 클라우드챗.

raidcall.exe

RaidCall

yy.exe

알려지지 않은; 아마도 다음의 지원서일 것입니다. YY 소셜 네트워크.

aliim.exe

알리왕

플러그인 로드 c005.dat.

해당 작업을 완료한 후 스레드가 반환됩니다.

플러그인 그룹 “c”

오케스트레이터 코드 분석을 통해 우리는 "c" 그룹에 최소한 6개의 플러그인이 존재할 수 있다는 것을 알고 있으며, 현재로서는 그 중 3개만 알려져 있습니다.

표 6은 식별된 플러그인의 기본 기능을 설명합니다.

표 6. 그룹 "c"의 플러그인에 대한 설명

플러그인 이름

상품 설명

c001.dat

자격 증명, 채팅 로그, 연락처 목록 등을 포함하여 QQ 데이터베이스에서 정보를 훔칩니다.

c002.dat

Tencent QQ의 여러 기능을 연결합니다. KernelUtil.dll Common.dll 의 기억에 QQ.exe 프로세스를 통해 직접 메시지와 그룹 메시지를 가로채고 데이터베이스에 대한 SQL 쿼리를 수행할 수 있습니다.

c003.dat

여러 API를 후크합니다.

- CoCreate인스턴스

- 웨이브인오픈

- 웨이브인닫기

- waveInAddBuffer

- waveOut열기

- 웨이브아웃쓰기

- waveOut닫기

이를 통해 플러그인은 여러 프로세스에서 오디오 대화를 가로챌 수 있습니다.

백도어

우리는 백도어의 기본 목적, 즉 컨트롤러와 통신하고 수집된 데이터를 유출하는 것에 대해 이미 몇 가지 세부 정보를 공유했습니다. 컨트롤러와의 통신은 대부분 플러그인 구성 데이터를 다음과 같은 암호화되지 않은 파일에 쓰는 것을 기반으로 합니다. 라이센스.dat, 로드된 플러그인에서 기능 호출. 표 7은 백도어가 처리하는 가장 관련성이 높은 명령을 설명합니다.

표 7. 백도어가 처리하는 일부 명령에 대한 설명

명령 ID

상품 설명

0 X 04

역방향 셸을 생성하거나 닫고 입력 및 출력을 처리합니다.

0 X 17

컨트롤러에서 제공하는 경로로 파일을 이동합니다.

0x1C

임플란트를 제거합니다.

0x1E

지정된 디렉터리에서 파일 정보를 수집하거나, 드라이브의 정보를 수집합니다.

0 X 28

컨트롤러가 제공한 PID로 프로세스를 종료합니다.

플러그인 그룹 "a" 및 "b"

백도어 구성 요소에는 디스크에 기록되고 백도어에 기본 감시 및 정보 수집 기능을 제공하는 자체 내장형 플러그인 DLL(표 8 참조)이 포함되어 있습니다.

표 8. 백도어에 내장된 플러그인 그룹 'a', 'b'에 대한 설명

플러그인 이름

상품 설명

a010.dat

레지스트리에서 설치된 소프트웨어 정보를 수집합니다.

b010.dat

스크린샷을 찍습니다.

b011.dat

기본 키로거.

결론

우리는 중국, 일본, 영국의 개인과 기업을 대상으로 사이버 스파이 작전을 수행한 Blackwood라는 위협 행위자의 공격과 능력을 분석했습니다. 우리는 30년부터 Blackwood가 배포한 맞춤형 임플란트인 NSPX2005의 진화 과정을 Project Wood라는 작은 백도어에 매핑했습니다.

흥미롭게도 2005년의 Project Wood 이식은 구현된 기술을 고려할 때 맬웨어 개발 경험이 있는 개발자의 작업인 것으로 나타나 원시 백도어의 역사에 대해 아직 더 많은 것을 발견하지 못했다고 믿게 만듭니다.

WeLiveSecurity에 게시된 연구에 대한 문의 사항은 다음으로 문의하십시오. [이메일 보호].
ESET Research는 비공개 APT 인텔리전스 보고서 및 데이터 피드를 제공합니다. 본 서비스에 대한 문의사항은 ESET 위협 인텔리전스 페이지.

IOC

파일

SHA-1

파일 이름

ESET 탐지 이름

상품 설명

625BEF5BD68F75624887D732538B7B01E3507234

minibrowser_shell.dll

Win32/Agent.AFYI

NSPX30 초기 드로퍼.

43622B9573413E17985B3A95CBE18CFE01FADF42

comx3.dll

Win32/Agent.AFYH

설치 프로그램용 로더.

240055AA125BD31BF5BA23D6C30133C5121147A5

msnsp.dll

Win32/Agent.AFYH

영구 로더.

308616371B9FF5830DFFC740318FD6BA4260D032

mshlp.dll

Win32/Agent.AFYH

오케스트레이터용 로더입니다.

796D05F299F11F1D78FBBB3F6E1F497BC3325164

comx3.dll.txt

Win32/TrojanDropper.Agent.SWR

해독된 설치 프로그램.

82295E138E89F37DD0E51B1723775CBE33D26475

WIN.cfg

Win32/Agent.AFYI

해독된 오케스트레이터.

44F50A81DEBF68F4183EAEBC08A2A4CD6033DD91

msfmtkl.dat

Win32/Agent.VKT

백도어가 해독되었습니다.

DB6AEC90367203CAAC9D9321FDE2A7F2FE2A0FB6

c001.dat

Win32/Agent.AFYI

자격 증명 및 데이터 스틸러 플러그인.

9D74FE1862AABAE67F9F2127E32B6EFA1BC592E9

c002.dat

Win32/Agent.AFYI

Tencent QQ 메시지 차단 플러그인.

8296A8E41272767D80DF694152B9C26B607D26EE

c003.dat

Win32/Agent.AFYI

오디오 캡처 플러그인.

8936BD9A615DD859E868448CABCD2C6A72888952

a010.dat

Win32/Agent.VKT

정보 수집 플러그인.

AF85D79BC16B691F842964938C9619FFD1810C30

b011.dat

Win32/Agent.VKT

키로거 플러그인.

ACD6CD486A260F84584C9FF7409331C65D4A2F4A

b010.dat

Win32/Agent.VKT

화면 캡처 플러그인.

네트워크

IP

도메인

호스팅 제공 업체

처음 본

세부 정보

104.193.88[.]123

www.바이두[.]com

베이징바이두넷컴과학기술유한회사

2017-08-04

페이로드를 다운로드하기 위해 오케스트레이터 및 백도어 구성요소가 접속하는 합법적인 웹사이트입니다. HTTP GET 요청은 AitM에 의해 차단됩니다.

183.134.93[.]171

dl_dir.qq[.]com

IRT‑CHINANET‑ZJ

2021-10-17

합법적인 소프트웨어에 의해 드로퍼가 다운로드된 URL의 일부입니다.

MITRE ATT&CK 기술

이 테이블은 다음을 사용하여 제작되었습니다. 버전 MITRE ATT&CK 프레임워크의 14개.

술책

ID

성함

상품 설명

자원 개발

T1587.001

기능 개발: 맬웨어

Blackwood는 NSPX30이라는 맞춤형 임플란트를 사용했습니다.

초기 액세스

T1195

공급망 침해

NSPX30의 드로퍼 구성 요소는 AitM을 통해 합법적인 소프트웨어 업데이트 요청이 차단될 때 전달됩니다.

실행

T1059.001

명령 및 스크립팅 인터프리터: PowerShell

NSPX30의 설치 프로그램 구성 요소는 PowerShell을 사용하여 Windows Defender의 샘플 제출을 비활성화하고 로더 구성 요소에 대한 제외를 추가합니다.

T1059.003

명령 및 스크립팅 인터프리터: Windows 명령 셸

NSPX30의 설치 프로그램은 다음을 사용할 수 있습니다. cmd.exe를 UAC를 우회하려고 할 때.

NSPX30의 백도어는 리버스 셸을 생성할 수 있습니다.

T1059.005

명령 및 스크립팅 인터프리터: Visual Basic

NSPX30의 설치 프로그램은 UAC를 우회하려고 시도할 때 VBScript를 사용할 수 있습니다.

T1106

네이티브 API

NSPX30의 설치 프로그램 및 백도어 사용 CreateProcessA/W 구성 요소를 실행하는 API입니다.

고집

T1574

도용 실행 흐름

NSPX30의 로더는 Winsock이 시작될 때 프로세스에 자동으로 로드됩니다.

권한 에스컬레이션

T1546

이벤트 트리거 실행

NSPX30의 설치 프로그램은 레지스트리를 수정하여 미디어 버튼 키 값(APPCOMMAND_LAUNCH_APP2) 로더 실행 파일을 가리킵니다.

T1548.002

악용 고도 제어 메커니즘: 사용자 계정 제어 우회

NSPX30의 설치 프로그램은 세 가지 기술을 사용하여 UAC 우회를 시도합니다.

방어 회피

T1140

파일 또는 정보의 난독화/디코드

NSPX30의 설치 프로그램, 오케스트레이터, 백도어 및 구성 파일은 RC4 또는 비트 및 산술 명령어의 조합으로 해독됩니다.

T1562.001

방어력 손상: 도구 비활성화 또는 수정

NSPX30의 설치 프로그램은 Windows Defender의 샘플 제출을 비활성화하고 로더 구성 요소에 대한 제외를 추가합니다.

NSPX30의 오케스트레이터는 보안 소프트웨어의 데이터베이스를 변경하여 로더 구성 요소를 허용 목록에 추가할 수 있습니다. 대상 소프트웨어에는 Tencent PC Manager, 360 Safeguard, 360 Antivirus 및 Kingsoft AntiVirus가 포함됩니다.

T1070.004

표시 제거: 파일 삭제

NSPX30은 해당 파일을 제거할 수 있습니다.

T1070.009

표시기 제거: 명확한 지속성

NSPX30은 지속성을 제거할 수 있습니다.

T1202

간접 명령 실행

NSPX30의 설치 프로그램은 Windows의 Command Shell을 통해 PowerShell을 실행합니다.

T1036.005

가장 무도회: 적법한 이름 또는 위치 일치

NSPX30의 구성 요소는 합법적인 폴더에 저장됩니다. %PROGRAMDATA%인텔.

T1112

레지스트리 수정

NSPX30의 설치 프로그램은 UAC를 우회하려고 시도할 때 레지스트리를 수정할 수 있습니다.

T1027

난독화된 파일 또는 정보

NSPX30의 구성 요소는 디스크에 암호화되어 저장됩니다.

T1027.009

난독화된 파일 또는 정보: 임베디드 페이로드

NSPX30의 드로퍼에는 내장된 구성 요소가 포함되어 있습니다.

NSPX30의 로더에는 내장된 쉘코드가 포함되어 있습니다.

T1218.011

시스템 바이너리 프록시 실행: Rundll32

NSPX30의 설치 프로그램은 다음을 통해 로드할 수 있습니다. rundll32.exe.

자격 증명 액세스

T1557

중간의 적

NSPX30 임플란트는 AitM 공격을 통해 피해자에게 전달됩니다.

T1555

암호 저장소의 자격 증명

NSPX30 플러그인 c001.dat Tencent QQ 데이터베이스에서 자격 증명을 훔칠 수 있습니다.

발견

T1083

파일 및 디렉토리 검색

NSPX30의 백도어와 플러그인은 파일 목록을 표시할 수 있습니다.

T1012

쿼리 레지스트리

NSPX30 a010.dat 플러그인은 설치된 소프트웨어의 다양한 정보를 레지스트리에서 수집합니다.

T1518

소프트웨어 검색

NSPX30 a010.dat 플러그인은 레지스트리에서 정보를 수집합니다.

T1082

시스템 정보 검색

NSPX30의 백도어는 시스템 정보를 수집합니다.

T1016

시스템 네트워크 구성 검색

NSPX30의 백도어는 다양한 네트워크 어댑터 정보를 수집합니다.

T1049

시스템 네트워크 연결 검색

NSPX30의 백도어는 네트워크 어댑터 정보를 수집합니다.

T1033

시스템 소유자/사용자 검색

NSPX30의 백도어는 시스템 및 사용자 정보를 수집합니다.

수집

T1056.001

입력 캡처: 키로깅

NSPX30 플러그인 b011.dat 기본 키로거입니다.

T1560.002

수집된 데이터 보관: 라이브러리를 통한 보관

NSPX30 플러그인은 zlib를 사용하여 수집된 정보를 압축합니다.

T1123

오디오 캡처

NSPX30 플러그인 c003.dat 입력 및 출력 오디오 스트림을 기록합니다.

T1119

자동 수집

NSPX30의 오케스트레이터와 백도어는 자동으로 플러그인을 실행하여 정보를 수집합니다.

T1074.001

데이터 스테이징: 로컬 데이터 스테이징

NSPX30의 플러그인은 유출되기 전에 데이터를 로컬 파일에 저장합니다.

T1113

화면 캡처

NSPX30 플러그인 b010.dat 스크린샷을 찍습니다.

명령 및 제어

T1071.001

애플리케이션 계층 프로토콜: 웹 프로토콜

NSPX30의 오케스트레이터 및 백도어 구성 요소는 HTTP를 사용하여 페이로드를 다운로드합니다.

T1071.004

애플리케이션 계층 프로토콜: DNS

NSPX30의 백도어는 DNS를 사용하여 수집된 정보를 추출합니다.

T1132.001

데이터 인코딩: 표준 인코딩

유출을 위해 수집된 데이터는 zlib로 압축됩니다.

T1001

데이터 난독화

NSPX30의 백도어는 C&C 통신을 암호화합니다.

T1095

비응용 계층 프로토콜

NSPX30의 백도어는 C&C 통신에 UDP를 사용합니다.

T1090

대리

NSPX30과 C&C 서버의 통신은 식별되지 않은 구성 요소에 의해 프록시됩니다.

여과

T1020

자동화된 유출

가능한 경우 NSPX30의 백도어는 수집된 모든 정보를 자동으로 추출합니다.

T1030

데이터 전송 크기 제한

NSPX30의 백도어는 고정된 패킷 크기로 DNS 쿼리를 통해 수집된 데이터를 추출합니다.

T1048.003

대체 프로토콜을 통한 유출: 암호화되지 않은 비-C2 프로토콜을 통한 유출

NSPX30의 백도어는 DNS를 사용하여 수집된 정보를 추출합니다.

spot_img

최신 인텔리전스

spot_img