WinorDLL64: 방대한 Lazarus 무기고의 백도어?

WinorDLL64: 방대한 Lazarus 무기고의 백도어?

소스 노드 : 1975596

대상 지역, 동작 및 코드의 중복으로 인해 악명 높은 북한과 연계된 APT 그룹이 이 도구를 사용하고 있음을 알 수 있습니다.

ESET 연구원들은 다음 중 하나를 발견했습니다. Wslink 다운로더 파일 이름을 기반으로 이 페이로드의 이름을 WinorDLL2021로 지정했습니다. WinorDLL64.dll. 파일 이름이 있는 Wslink WinorLoaderDLL64.dll는 다른 로더와 달리 서버로 실행되고 수신된 모듈을 메모리에서 실행하는 Windows 바이너리용 로더입니다. 단어에서 알 수 있듯이 로더는 이미 손상된 시스템에 페이로드 또는 실제 맬웨어를 로드하는 도구 역할을 합니다. 초기 Wslink 침해 벡터는 식별되지 않았습니다.

처음에 알려지지 않은 Wslink 페이로드는 블로그 게시물이 게시된 직후 한국에서 VirusTotal에 업로드되었으며 Wslink의 고유 이름을 기반으로 하는 YARA 규칙 중 하나에 맞았습니다. WinorDLL64. Wslink와 관련하여 ESET 원격 측정은 중부 유럽, 북미 및 중동에서 몇 번만 감지되었습니다.

XNUMXD덴탈의 WinorDLL64 페이로드는 특히 광범위한 시스템 정보를 획득하는 백도어 역할을 하며 파일 추출, 덮어쓰기, 제거와 같은 파일 조작 수단을 제공하고 추가 명령을 실행합니다. 흥미롭게도 Wslink 로더에 의해 이미 설정된 연결을 통해 통신합니다.

2021년에는 Wslink가 알려진 위협 행위자의 도구임을 시사하는 데이터를 찾지 못했습니다. 그러나 페이로드를 광범위하게 분석한 후 WinorDLL64 Lazarus APT 그룹에 표적 지역을 기반으로 신뢰도가 낮고 알려진 Lazarus 샘플과 동작 및 코드가 중복됩니다.

적어도 2009년부터 활동한 이 악명 높은 북한 연계 그룹은 소니 픽처스 엔터테인먼트 해킹 그리고 수십억 달러 2016년 사이버 범죄자Walk Through California 프로그램, WannaCryptor (일명 WannaCry) 2017년에 발생했으며, 한국의 공공 및 주요 인프라 적어도 2011년부터. US-CERT와 FBI는 이 그룹을 호출합니다. 숨겨진 코브라.

우리의 광범위한 지식 이 그룹의 활동과 운영에 대해 우리는 Lazarus가 체계적으로 조직되고 잘 준비된 대규모 팀으로 구성되어 있으며 대규모 도구 세트를 활용하는 여러 하위 그룹으로 구성되어 있다고 생각합니다. 작년에 우리는 Lazarus 도구를 발견했습니다. 을 활용한 CVE‑2021‑21551 네덜란드의 항공 우주 회사 직원과 벨기에의 정치 언론인을 대상으로 하는 취약성. 이것은 취약점의 첫 번째 남용으로 기록되었습니다. 이 도구와 취약점이 결합되어 손상된 시스템의 모든 보안 솔루션에 대한 모니터링이 불가능해졌습니다. 우리는 또한에 대한 광범위한 설명을 제공했습니다. 가상 머신의 구조 Wslink의 샘플에 사용됩니다.

이 블로그 게시물은 Lazarus에 대한 WinorDLL64의 속성을 설명하고 페이로드 분석을 제공합니다.

나사로 링크

Lazarus 샘플과 동작 및 코드에서 중복되는 부분을 발견했습니다. 고스트 시크릿 작전 그리고 뱅크샷 임플란트 McAfee에서 설명합니다. GhostSecret 및 Bankshot 기사의 임플란트 설명에는 WinorDLL64의 기능과 중복되는 부분이 포함되어 있으며 샘플에서 일부 코드 중복을 발견했습니다. 이 블로그 게시물에서는 FE887FCAB66D7D7F79F05E0266C0649F0114BA7C WinorDLL64와 비교하기 위한 GhostSecret의 샘플(1BA443FDE984CEE85EBD4D4FA7EB1263A6F1257F), 달리 명시되지 않는 한.

다음 세부 정보는 Lazarus에 대한 신뢰도가 낮은 속성을 뒷받침하는 사실을 요약한 것입니다.

1. 피해자학

  • AhnLab의 동료 연구원들은 원격 측정에서 Wslink의 한국 피해자를 확인했는데, 이는 전통적인 Lazarus 표적을 고려한 관련 지표이며 우리는 몇 건의 적중만 관찰했습니다.

그림 1. mstoned7이 Ahnlab의 연구원인 보고된 한국인 피해자

2. 멀웨어

  • McAfee에서 보고한 최신 GhostSecret 샘플(FE887FCAB66D7D7F79F05E0266C0649F0114BA7C)는 2018년 2018월 기준입니다. 우리는 2018년 말에 Wslink의 첫 번째 샘플을 발견했고 동료 연구자들은 XNUMX년 XNUMX월에 적중률을 보고했습니다. 따라서 이러한 샘플은 비교적 짧은 시간 간격으로 발견되었습니다.
  • XNUMXD덴탈의 PE 리치 헤더 동일한 개발 환경과 유사한 크기의 프로젝트가 다른 여러 알려진 Lazarus 샘플(예: 70DE783E5D48C6FBB576BC494BAF0634BC304FD6; 8EC9219303953396E1CB7105CDB18ED6C568E962). 가중치가 낮은 지표인 이러한 Wslink 및 Lazarus 샘플만 다루는 다음 규칙을 사용하여 이러한 중복을 발견했습니다. 우리는 그들을 테스트 VirusTotal의 역추적 내부 파일 코퍼스.

rich_signature.length == 80 및
pe.rich_signature.toolid(175, 30319) == 7 및
pe.rich_signature.toolid(155, 30319) == 1 및
pe.rich_signature.toolid(158, 30319) == 10 및
pe.rich_signature.toolid(170, 30319) >= 90 및
pe.rich_signature.toolid(170, 30319) <= 108

이 규칙은 VirusTotal에서 더 읽기 쉽고 사용되는 다음 표기법으로 변환될 수 있습니다. 여기에서 제품 버전 및 빌드 ID를 볼 수 있습니다(VS2010 빌드 30319), 사용된 소스/오브젝트 파일의 수 및 유형([LTCG C++] 여기서 LTCG는 링크 타임 코드 생성을 의미하며, [ASM], [ 씨 ]), 수출 횟수([경험치]) 규칙에서:

[LTCG C++] VS2010 빌드 30319 개수=7
[EXP] VS2010 빌드 30319 개수=1
[ASM] VS2010 빌드 30319 개수=10
[ C ] VS2010 빌드 30319 [ 90 .. 108 ]에서 카운트

  • GhostSecret 기사에서는 추가로 서비스로 실행되는 "인바운드 제어 서버 연결을 위해 포트 443에서 수신 대기하는 고유한 데이터 수집 및 임플란트 설치 구성 요소"에 대해 설명했습니다. 이는 구성에 따라 다를 수 있는 포트 번호를 제외한 Wslink 다운로더 동작에 대한 정확한 설명입니다. 요약하자면 구현은 다르지만 둘 다 동일한 목적을 수행합니다.
  • 로더는 Oreans의 Code Virtualizer에 의해 가상화되며, 상용 프로텍터로 사용됩니다. 자주 나사로.
  • 로더는 다음을 사용합니다. 메모리 모듈 메모리에서 직접 모듈을 로드하는 라이브러리. 이 라이브러리는 맬웨어에 의해 일반적으로 사용되지는 않지만 Lazarus 및 Kimsuky와 같은 북한 관련 그룹 사이에서 꽤 인기가 있습니다.
  • 분석 중에 찾은 WinorDLL64와 GhostSecret 사이의 코드에서 중복됩니다. 귀인의 결과와 중요성은 표 1에 나열되어 있습니다.

표 1. WinorDLL64와 GhostSecret 사이의 유사점과 둘 다 동일한 위협 행위자에 기인한다는 점에서 이들의 중요성

WinorDLL64와 GhostSecret의 다른 유사점 영향
프로세서 아키텍처를 가져오는 책임이 있는 코드의 코드 중복 낮은
현재 디렉터리 조작에서 코드 중복 낮은
프로세스 목록을 가져올 때 코드가 겹칩니다. 낮은
파일 전송 시 코드 중복 낮은
나열 프로세스의 동작 중복 낮은
현재 디렉터리 조작에서 동작 중복 낮은
파일 및 디렉토리 목록에서 동작 중복 낮은
목록 볼륨의 동작 중복 낮은
파일 읽기/쓰기 동작 중복 낮은
생성 프로세스의 동작 중복 낮은
파일의 안전한 제거에서 상당한 동작 중복 낮은
프로세스 종료 시 상당한 동작 중복 낮은
시스템 정보 수집 시 상당한 동작 중복 낮은

파일 전송 기능의 코드 중복은 그림 2 및 그림 3에 강조 표시되어 있습니다.

그림 2. 파일을 보내는 GhostSecret

그림 3. 파일을 보내는 Wslink

기술적 분석

WinorDLL64는 특히 광범위한 시스템 정보를 획득하고 파일 조작 수단을 제공하며 추가 명령을 실행하는 백도어 역할을 합니다. 흥미롭게도 로더에 의해 이미 설정된 TCP 연결을 통해 통신하고 로더의 일부 기능을 사용합니다.

그림 4. Wslink의 통신 시각화

백도어는 하나의 매개변수를 허용하는 이름 없는 단일 내보내기가 있는 DLL입니다. 이전 블로그 포스트. 이 구조에는 TLS 컨텍스트(소켓, 키, IV)와 256비트 AES-CBC로 암호화된 메시지를 송수신하기 위한 콜백이 포함되어 있어 WinorDLL64가 이미 설정된 연결을 통해 운영자와 데이터를 안전하게 교환할 수 있습니다.

다음 사실은 라이브러리가 실제로 Wslink의 일부라는 확신을 갖게 합니다.

  • 고유한 구조는 모든 곳에서 예상되는 방식으로 사용됩니다. 예를 들어 TLS 컨텍스트 및 기타 의미 있는 매개변수가 예상 순서대로 올바른 콜백에 제공됩니다.
  • DLL의 이름은 WinorDLL64.dll Wslink의 이름은 WinorLoaderDLL64.dll.

WinorDLL64는 여러 명령을 허용합니다. 그림 5는 명령을 수신하고 처리하는 루프를 보여줍니다. 각 명령은 고유 ID에 바인딩되며 추가 매개변수가 포함된 구성을 허용합니다.

그림 5. 백도어 명령 수신 루프의 주요 부분

레이블이 있는 명령 목록은 그림 6에 있습니다.

그림 6. 명령 목록

표 2에는 수정된 WinorDLL64 명령의 요약이 포함되어 있으며 이전 범주는 이전에 문서화된 GhostSecret 기능과의 관계를 나타냅니다. 수정된 범주에서 중요한 변경 사항만 강조 표시합니다.

표 2. 백도어 명령 개요

범주 명령 ID 기능 상품 설명
신제품 0 X 03 PowerShell 명령 실행 WinorDLL64는 PowerShell 인터프리터가 제한 없이 실행하고 표준 입력에서 명령을 읽도록 지시합니다. 이후 백도어는 지정된 명령을 인터프리터에게 전달하고 출력을 운영자에게 보냅니다.
0 X 09 디렉토리 압축 및 다운로드 WinorDLL64는 지정된 디렉터리를 재귀적으로 반복합니다. 각 파일 및 디렉토리의 내용은 개별적으로 압축되고 나중에 운영자에게 전송된 후 안전하게 제거되는 임시 파일에 기록됩니다.
0x0D 세션 연결 끊기 사용자의 원격 데스크톱 서비스 세션에서 지정된 로그온 사용자의 연결을 끊습니다. 이 명령은 매개변수에 따라 다른 기능을 수행할 수도 있습니다.
0x0D 세션 나열 피해자 장치의 모든 세션에 대한 다양한 세부 정보를 수집하여 운영자에게 보냅니다. 이 명령은 매개변수에 따라 다른 기능을 수행할 수도 있습니다.
0x0E 연결 시간 측정 Windows API를 사용합니다. GetTickCount 지정된 호스트에 연결하는 데 필요한 시간을 측정합니다.
수정 0 X 01 시스템 정보 얻기 피해자의 시스템에 대한 포괄적인 세부 정보를 수집하여 운영자에게 보냅니다.
0x0A 파일을 안전하게 제거 임의의 데이터 블록으로 지정된 파일을 덮어쓰고 각 파일의 이름을 임의의 이름으로 변경한 다음 마지막으로 하나씩 안전하게 제거합니다.
0x0C 프로세스 종료 이름이 제공된 패턴 및/또는 특정 PID와 일치하는 모든 프로세스를 종료합니다.
낡은 0x02/0x0B 프로세스 생성 현재 또는 지정된 사용자로 프로세스를 생성하고 선택적으로 해당 출력을 운영자에게 보냅니다.
0 X 05 현재 디렉토리 설정/가져오기 현재 작업 디렉토리의 경로를 설정하고 획득하려고 시도합니다.
0 X 06 볼륨 나열 C:에서 Z:까지 드라이브를 반복하고 드라이브 유형과 볼륨 이름을 가져옵니다. 이 명령은 매개변수에 따라 다른 기능을 수행할 수도 있습니다.
0 X 06 디렉토리의 파일 나열 지정된 디렉토리의 파일을 반복하고 이름, 속성 등과 같은 정보를 얻습니다. 이 명령은 매개변수에 따라 다른 기능을 수행할 수도 있습니다.
0 X 07 파일에 쓰기 명시된 양의 데이터를 지정된 파일에 다운로드하고 추가합니다.
0 X 08 파일에서 읽기 지정된 파일을 읽고 운영자에게 보냅니다.
0x0C 프로세스 나열 피해자의 기기에서 실행 중인 모든 프로세스에 대한 세부 정보를 획득하고 현재 프로세스의 ID를 추가로 전송합니다.

결론

Wslink의 페이로드는 파일 조작, 추가 코드 실행 및 네트워크 세션에 대한 특정 관심으로 인해 나중에 측면 이동에 활용할 수 있는 기본 시스템에 대한 광범위한 정보를 얻기 위한 수단을 제공하는 데 전념합니다. Wslink 로더는 구성에 지정된 포트에서 수신하고 추가 연결 클라이언트에 서비스를 제공하고 다양한 페이로드를 로드할 수도 있습니다.

WinorDLL64는 여러 Lazarus 샘플과 함께 개발 환경, 동작 및 코드가 겹치는 부분을 포함하며, 이는 북한과 연계된 이 APT 그룹의 방대한 무기고에서 나온 도구일 수 있음을 나타냅니다.

ESET Research는 비공개 APT 인텔리전스 보고서 및 데이터 피드를 제공합니다. 본 서비스에 대한 문의사항은 ESET 위협 인텔리전스 페이지.

IoC

SHA-1 ESET 탐지 이름 상품 설명
1BA443FDE984CEE85EBD4D4FA7EB1263A6F1257F Win64/Wslink.A 검색된 Wslink 페이로드 WinorDll64의 메모리 덤프.

MITRE ATT&CK 기술

이 테이블은 다음을 사용하여 제작되었습니다. 버전 12 ATT&CK 프레임워크의 로더의 기술은 다시 언급하지 않고 페이로드만 언급합니다.

술책 ID 성함 상품 설명
자원 개발 T1587.001 기능 개발: 맬웨어 WinorDLL64는 사용자 지정 도구입니다.
실행 T1059.001 명령 및 스크립팅 인터프리터: PowerShell WinorDLL64는 임의의 PowerShell 명령을 실행할 수 있습니다.
T1106 네이티브 API WinorDLL64는 다음을 사용하여 추가 프로세스를 실행할 수 있습니다. CreateProcessWCreateProcessAsUserW 아피스.
방어 회피 T1134.002 액세스 토큰 조작: 토큰으로 프로세스 생성 WinorDLL64는 API를 호출할 수 있습니다. WTSQueryUserTokenCreateProcessAsUserW 가장된 사용자로 프로세스를 생성합니다.
T1070.004 표시 제거: 파일 삭제 WinorDLL64는 임의의 파일을 안전하게 제거할 수 있습니다.
발견 T1087.001 계정 검색: 로컬 계정 WinorDLL64는 다른 세부 정보 중에서 세션을 열거하고 관련 사용자 및 클라이언트 이름을 나열할 수 있습니다.
T1087.002 계정 검색: 도메인 계정 WinorDLL64는 다른 세부 정보 중에서 세션을 열거하고 연결된 도메인 이름을 나열할 수 있습니다.
T1083 파일 및 디렉토리 검색 WinorDLL64는 파일 및 디렉토리 목록을 얻을 수 있습니다.
T1135 네트워크 공유 검색 WinorDLL64는 공유 네트워크 드라이브를 검색할 수 있습니다.
T1057 프로세스 발견 WinorDLL64는 실행 중인 프로세스에 대한 정보를 수집할 수 있습니다.
T1012 쿼리 레지스트리 WinorDLL64는 Windows 레지스트리를 쿼리하여 시스템 정보를 수집할 수 있습니다.
T1082 시스템 정보 검색 WinorDLL64는 컴퓨터 이름, OS 및 최신 서비스 팩 버전, 프로세서 아키텍처, 프로세서 이름 및 고정 드라이브의 공간과 같은 정보를 얻을 수 있습니다.
T1614 시스템 위치 검색 WinorDLL64는 다음을 사용하여 피해자의 기본 국가 이름을 얻을 수 있습니다. GetLocalInfoW API.
T1614.001 시스템 위치 검색: 시스템 언어 검색 WinorDLL64는 다음을 사용하여 피해자의 기본 언어를 얻을 수 있습니다. GetLocalInfoW API.
T1016 시스템 네트워크 구성 검색 WinorDLL64는 네트워크 어댑터 정보를 열거할 수 있습니다.
T1049 시스템 네트워크 연결 검색 WinorDLL64는 청취 포트 목록을 수집할 수 있습니다.
T1033 시스템 소유자/사용자 검색 WinorDLL64는 세션을 열거하고 관련 사용자, 도메인 및 클라이언트 이름을 다른 세부 정보와 함께 나열할 수 있습니다.
수집 T1560.002 수집된 데이터 보관: 라이브러리를 통한 보관 WinorDLL64는 다음을 사용하여 디렉토리를 압축하고 유출할 수 있습니다. 퀵즈 도서관.
T1005 로컬 시스템의 데이터 WinorDLL64는 피해자의 장치에서 데이터를 수집할 수 있습니다.
영향 T1531 계정 액세스 제거 WinorDLL64는 지정된 세션에서 로그온한 사용자의 연결을 끊을 수 있습니다.

타임 스탬프 :

더보기 우리는 보안을 산다