WinorDLL64: Một cửa hậu từ kho vũ khí khổng lồ của Lazarus?

WinorDLL64: Một cửa hậu từ kho vũ khí khổng lồ của Lazarus?

Nút nguồn: 1975596

Khu vực được nhắm mục tiêu và sự trùng lặp về hành vi và mã, cho thấy công cụ này được sử dụng bởi nhóm APT khét tiếng có liên kết với Triều Tiên

Các nhà nghiên cứu của ESET đã phát hiện ra một trong những trọng tải của trình tải xuống wslink mà chúng tôi đã phát hiện vào năm 2021. Chúng tôi đã đặt tên cho tải trọng này là WinorDLL64 dựa trên tên tệp của nó WinorDLL64.dll. Wslink, có tên tệp WinorLoaderDLL64.dll, là trình tải dành cho các tệp nhị phân của Windows, không giống như các trình tải khác như vậy, chạy như một máy chủ và thực thi các mô-đun đã nhận trong bộ nhớ. Như cách diễn đạt gợi ý, trình tải phục vụ như một công cụ để tải trọng tải hoặc phần mềm độc hại thực tế vào hệ thống đã bị xâm nhập. Vectơ thỏa hiệp Wslink ban đầu chưa được xác định.

Tải trọng Wslink không xác định ban đầu đã được tải lên VirusTotal từ Hàn Quốc ngay sau khi xuất bản bài đăng trên blog của chúng tôi và đạt một trong các quy tắc YARA của chúng tôi dựa trên tên duy nhất của Wslink WinorDLL64. Về Wslink, phép đo từ xa của ESET chỉ phát hiện được một số ít – ở Trung Âu, Bắc Mỹ và Trung Đông.

Sản phẩm WinorDLL64 tải trọng đóng vai trò như một cửa hậu đáng chú ý nhất là thu thập thông tin hệ thống phong phú, cung cấp phương tiện để thao tác tệp, chẳng hạn như trích xuất, ghi đè và xóa tệp cũng như thực thi các lệnh bổ sung. Thật thú vị, nó giao tiếp qua một kết nối đã được thiết lập bởi trình tải Wslink.

Vào năm 2021, chúng tôi không tìm thấy bất kỳ dữ liệu nào cho thấy Wslink là công cụ của một tác nhân đe dọa đã biết. Tuy nhiên, sau khi phân tích sâu rộng về tải trọng, chúng tôi đã quy WinorDLL64 đến nhóm Lazarus APT với độ tin cậy thấp dựa trên khu vực được nhắm mục tiêu và sự trùng lặp về cả hành vi và mã với các mẫu Lazarus đã biết.

Hoạt động ít nhất là từ năm 2009, nhóm khét tiếng liên kết với Bắc Triều Tiên này chịu trách nhiệm về các sự cố cấp cao như cả hai Hack Sony Pictures Entertainment và hàng chục triệu đô la các nhà điều khiển mạng năm 2016, Các WannaCryptor (hay còn gọi là WannaCry) bùng phát vào năm 2017 và lịch sử lâu dài của các cuộc tấn công gây rối chống lại Cơ sở hạ tầng công cộng và quan trọng của Hàn Quốc kể từ ít nhất là năm 2011. US-CERT và FBI gọi nhóm này là RẮN ẨN.

Dựa trên kiến thức sâu rộng về các hoạt động và hoạt động của nhóm này, chúng tôi tin rằng Lazarus bao gồm một nhóm lớn được tổ chức có hệ thống, chuẩn bị kỹ lưỡng và được tạo thành từ một số nhóm nhỏ sử dụng một bộ công cụ lớn. Năm ngoái, chúng tôi phát hiện ra một công cụ Lazarus đó đã tận dụng lợi thế của CVE ‑ 2021‑21551 lỗ hổng nhằm vào một nhân viên của một công ty hàng không vũ trụ ở Hà Lan và một nhà báo chính trị ở Bỉ. Đây là trường hợp lạm dụng lỗ hổng đầu tiên được ghi nhận; kết hợp lại, công cụ và lỗ hổng bảo mật đã dẫn đến việc giám sát tất cả các giải pháp bảo mật trên các máy bị xâm nhập bị che khuất. Chúng tôi cũng đã cung cấp một mô tả chi tiết về cấu trúc của máy ảo được sử dụng trong các mẫu của Wslink.

Bài đăng trên blog này giải thích quy kết của WinorDLL64 cho Lazarus và cung cấp phân tích về tải trọng.

Liên kết đến La-xa-rơ

Chúng tôi đã phát hiện ra sự trùng lặp trong cả hành vi và mã với các mẫu Lazarus từ Chiến dịch GhostSecretcấy ghép Bankshot được mô tả bởi McAfee. Mô tả về các bộ cấy trong cả hai bài viết GhostSecret và Bankshot chứa các phần trùng lặp về chức năng với WinorDLL64 và chúng tôi đã tìm thấy một số mã trùng lặp trong các mẫu. Trong blogpost này, chúng tôi sẽ chỉ sử dụng FE887FCAB66D7D7F79F05E0266C0649F0114BA7C mẫu từ GhostSecret để so sánh với WinorDLL64 (1BA443FDE984CEE85EBD4D4FA7EB1263A6F1257F), trừ khi có quy định khác.

Các chi tiết sau đây tóm tắt các sự kiện hỗ trợ cho sự quy kết có độ tin cậy thấp của chúng tôi đối với Lazarus:

1. Nạn nhân

  • Các nhà nghiên cứu từ AhnLab đã xác nhận các nạn nhân Hàn Quốc của Wslink trong phép đo từ xa của họ, đây là một chỉ số có liên quan khi xem xét các mục tiêu Lazarus truyền thống và chúng tôi chỉ quan sát thấy một vài lần truy cập.

Hình 1. Nạn nhân Hàn Quốc được báo cáo, trong đó mstoned7 là nhà nghiên cứu từ Ahnlab

2. Phần mềm độc hại

  • Mẫu GhostSecret mới nhất được báo cáo bởi McAfee (FE887FCAB66D7D7F79F05E0266C0649F0114BA7C) là từ tháng 2018 năm 2018; chúng tôi đã phát hiện ra mẫu Wslink đầu tiên vào cuối năm 2018 và các nhà nghiên cứu đồng nghiệp đã báo cáo các lượt truy cập vào tháng XNUMX năm XNUMX mà họ đã tiết lộ sau khi chúng tôi xuất bản. Do đó, các mẫu này được phát hiện cách nhau một khoảng thời gian tương đối ngắn.
  • Sản phẩm Tiêu đề phong phú PE chỉ ra rằng cùng một môi trường phát triển và các dự án có quy mô tương tự đã được sử dụng trong một số mẫu Lazarus đã biết khác (ví dụ: 70DE783E5D48C6FBB576BC494BAF0634BC304FD6; 8EC9219303953396E1CB7105CDB18ED6C568E962). Chúng tôi đã tìm thấy sự trùng lặp này bằng cách sử dụng các quy tắc sau chỉ bao gồm các mẫu Wslink và Lazarus này, đây là một chỉ báo có trọng số thấp. Chúng tôi đã thử nghiệm chúng trên Cuộc săn lùng của VirusTotal và tập tin nội bộ của chúng tôi.

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

Quy tắc này có thể được dịch sang ký hiệu sau dễ đọc hơn và được sử dụng bởi VirusTotal, nơi người ta có thể xem phiên bản sản phẩm và ID bản dựng (Bản dựng VS2010 30319), số lượng và loại tệp nguồn/đối tượng được sử dụng ([LTCG C++] trong đó LTCG là viết tắt của Tạo mã thời gian liên kết, [ASM], [ C ]), và số lần xuất khẩu ([EXP]) trong quy tắc:

[LTCG C++] VS2010 bản dựng 30319 đếm=7
[EXP] VS2010 bản dựng 30319 đếm=1
[ASM] Bản dựng VS2010 30319 đếm=10
[ C ] VS2010 bản dựng 30319 đếm trong [ 90 .. 108 ]

  • Bài báo GhostSecret đã mô tả “một thành phần cài đặt và thu thập dữ liệu duy nhất lắng nghe trên cổng 443 cho các kết nối máy chủ điều khiển gửi đến” cũng chạy như một dịch vụ. Đây là mô tả chính xác về hành vi của trình tải xuống Wslink, ngoài số cổng, có thể thay đổi tùy theo cấu hình. Tóm lại, mặc dù cách thực hiện khác nhau, nhưng cả hai đều phục vụ cùng một mục đích.
  • Trình tải được ảo hóa bởi Trình ảo hóa mã của Oreos, đây là trình bảo vệ thương mại được sử dụng thường xuyên của Lazarus.
  • Bộ nạp sử dụng Bộ nhớ thư viện để tải các mô-đun trực tiếp từ bộ nhớ. Thư viện này không được sử dụng phổ biến bởi phần mềm độc hại, nhưng nó khá phổ biến trong các nhóm liên kết với Bắc Triều Tiên như Lazarus và Kimsuky.
  • Chồng chéo mã giữa WinorDLL64 và GhostSecret mà chúng tôi đã tìm thấy trong quá trình phân tích của mình. Các kết quả và tầm quan trọng trong phân bổ được liệt kê trong Bảng 1.

Bảng 1. Điểm tương đồng giữa WinorDLL64 và GhostSecret và tầm quan trọng của chúng trong việc quy cả hai cho cùng một tác nhân đe dọa

Những điểm tương đồng khác giữa WinorDLL64 và GhostSecret Va chạm
Mã chồng chéo trong mã chịu trách nhiệm lấy kiến ​​trúc bộ xử lý Thấp
Chồng chéo mã trong thao tác thư mục hiện tại Thấp
Chồng chéo mã trong việc lấy danh sách quy trình Thấp
Chồng chéo mã khi gửi tệp Thấp
Hành vi chồng chéo trong quy trình niêm yết Thấp
Hành vi chồng chéo trong thao tác thư mục hiện tại Thấp
Chồng chéo hành vi trong danh sách tệp và thư mục Thấp
Hành vi chồng chéo trong khối lượng danh sách Thấp
Chồng chéo hành vi trong việc đọc/ghi tệp Thấp
Chồng chéo hành vi trong quá trình tạo Thấp
Chồng chéo hành vi đáng kể trong việc xóa tệp an toàn Thấp
Chồng chéo hành vi đáng kể trong việc chấm dứt các quy trình Thấp
Chồng chéo hành vi đáng kể trong việc thu thập thông tin hệ thống Thấp

Sự trùng lặp mã trong chức năng gửi tệp được đánh dấu trong Hình 2 và Hình 3.

Hình 2. GhostSecret đang gửi một tập tin

Hình 3. Wslink đang gửi tệp

Phân tích kỹ thuật

WinorDLL64 đóng vai trò là một cửa hậu thu thập thông tin hệ thống rộng rãi nhất, cung cấp phương tiện để thao tác tệp và thực thi các lệnh bổ sung. Thật thú vị, nó giao tiếp qua kết nối TCP đã được thiết lập bởi trình tải của nó và sử dụng một số chức năng của trình tải.

Hình 4. Trực quan hóa giao tiếp của Wslink

Cửa hậu là một DLL với một lần xuất không tên duy nhất chấp nhận một tham số – một cấu trúc giao tiếp đã được mô tả trong phần của chúng tôi. bài đăng blog trước. Cấu trúc chứa ngữ cảnh TLS – ổ cắm, khóa, IV – và lệnh gọi lại để gửi và nhận tin nhắn được mã hóa bằng AES-CBC 256 bit cho phép WinorDLL64 trao đổi dữ liệu an toàn với người vận hành qua kết nối đã được thiết lập.

Các sự kiện sau đây khiến chúng tôi tin tưởng với độ tin cậy cao rằng thư viện thực sự là một phần của Wslink:

  • Cấu trúc duy nhất được sử dụng ở mọi nơi theo cách dự kiến, ví dụ: ngữ cảnh TLS và các tham số có ý nghĩa khác được cung cấp theo thứ tự dự đoán cho các lệnh gọi lại chính xác.
  • Tên của DLL là WinorDLL64.dll và tên của Wslink là WinorLoaderDLL64.dll.

WinorDLL64 chấp nhận một số lệnh. Hình 5 hiển thị vòng lặp nhận và xử lý lệnh. Mỗi lệnh được liên kết với một ID duy nhất và chấp nhận một cấu hình có chứa các tham số bổ sung.

Hình 5. Phần chính của vòng lặp nhận lệnh của backdoor

Danh sách lệnh, với các nhãn của chúng tôi, nằm trong Hình 6.

Hình 6. Danh sách lệnh

Bảng 2 chứa một bản tóm tắt các lệnh WinorDLL64, trong đó các danh mục cũ và đã sửa đổi đề cập đến mối quan hệ với chức năng GhostSecret đã được ghi lại trước đó. Chúng tôi chỉ đánh dấu những thay đổi quan trọng trong danh mục đã sửa đổi.

Bảng 2. Tổng quan về lệnh backdoor

Phân loại ID lệnh Chức năng Mô tả
Mới 0x03 Thực thi lệnh PowerShell WinorDLL64 hướng dẫn trình thông dịch PowerShell chạy không hạn chế và đọc các lệnh từ đầu vào tiêu chuẩn. Sau đó, cửa hậu chuyển lệnh đã chỉ định tới trình thông dịch và gửi kết quả đầu ra cho người vận hành.
0x09 Nén và tải xuống một thư mục WinorDLL64 lặp lại đệ quy trên một thư mục được chỉ định. Nội dung của mỗi tệp và thư mục được nén riêng biệt và ghi vào một tệp tạm thời, tệp này sau đó được gửi đến người vận hành và sau đó được xóa an toàn.
0x0D Ngắt kết nối phiên Ngắt kết nối người dùng đã đăng nhập được chỉ định khỏi phiên Dịch vụ Máy tính Từ xa của người dùng. Lệnh cũng có thể thực hiện các chức năng khác nhau dựa trên tham số.
0x0D Liệt kê các phiên Thu thập các chi tiết khác nhau về tất cả các phiên trên thiết bị của nạn nhân và gửi chúng cho người điều hành. Lệnh cũng có thể thực hiện các chức năng khác nhau dựa trên tham số.
0x0E Đo thời gian kết nối Sử dụng Windows API NhậnĐếmTick để đo thời gian cần thiết để kết nối với một máy chủ được chỉ định.
Thay đổi 0x01 Nhận thông tin hệ thống Thu thập thông tin chi tiết toàn diện về hệ thống của nạn nhân và gửi chúng cho người điều hành.
0x0A Xóa tệp an toàn Ghi đè các tệp được chỉ định bằng một khối dữ liệu ngẫu nhiên, đổi tên từng tệp thành một tên ngẫu nhiên và cuối cùng xóa từng tệp một một cách an toàn.
0x0C Giết quy trình Chấm dứt tất cả các quy trình có tên khớp với mẫu được cung cấp và/hoặc với một PID cụ thể.
Xưa 0x02/0x0B Tạo một quy trình Tạo một quy trình với tư cách là người dùng hiện tại hoặc được chỉ định và tùy ý gửi đầu ra của nó cho người vận hành.
0x05 Đặt/Nhận thư mục hiện tại Nỗ lực thiết lập và sau đó có được đường dẫn của thư mục làm việc hiện tại.
0x06 Liệt kê các tập Lặp lại các ổ đĩa từ C: đến Z: và lấy loại ổ đĩa và tên ổ đĩa. Lệnh cũng có thể thực hiện các chức năng khác nhau dựa trên tham số.
0x06 Liệt kê các tập tin trong một thư mục Lặp lại các tệp trong thư mục được chỉ định và thu thập thông tin như tên, thuộc tính, v.v. Lệnh cũng có thể thực hiện các chức năng khác nhau dựa trên tham số.
0x07 Viết vào một tập tin Tải xuống và nối lượng dữ liệu đã nêu vào tệp được chỉ định.
0x08 Đọc từ một tập tin Tệp được chỉ định được đọc và gửi đến người vận hành.
0x0C Liệt kê các quy trình Thu thập thông tin chi tiết về tất cả các quy trình đang chạy trên thiết bị của nạn nhân và gửi thêm ID của quy trình hiện tại.

Kết luận

Tải trọng của Wslink được dành riêng để cung cấp phương tiện thao tác tệp, thực thi mã tiếp theo và thu thập thông tin mở rộng về hệ thống cơ bản có thể được tận dụng sau này để di chuyển bên, do mối quan tâm cụ thể đến các phiên mạng. Trình tải Wslink lắng nghe trên một cổng được chỉ định trong cấu hình và có thể phục vụ các máy khách kết nối bổ sung và thậm chí tải các tải trọng khác nhau.

WinorDLL64 chứa sự chồng chéo trong môi trường phát triển, hành vi và mã với một số mẫu Lazarus, điều này cho thấy rằng nó có thể là một công cụ từ kho vũ khí khổng lồ của nhóm APT liên kết với Bắc Triều Tiên này.

ESET Research cung cấp các báo cáo tình báo APT riêng và nguồn cấp dữ liệu. Mọi thắc mắc về dịch vụ này, hãy truy cập Thông báo về mối đe dọa của ESET .

IoC

SHA-1 Tên phát hiện ESET Mô tả
1BA443FDE984CEE85EBD4D4FA7EB1263A6F1257F Win64/Wslink.A Kết xuất bộ nhớ của tải trọng Wslink được phát hiện WinorDll64.

Kỹ thuật MITER ATT & CK

Bảng này được tạo bằng cách sử dụng phiên bản 12 của khung AT&CK. Chúng tôi không đề cập đến các kỹ thuật từ bộ tải nữa, chỉ có trọng tải.

Chiến thuật ID Họ tên Mô tả
Phát triển nguồn lực T1587.001 Phát triển khả năng: Phần mềm độc hại WinorDLL64 là một công cụ tùy chỉnh.
Thực hiện T1059.001 Trình thông dịch Lệnh và Tập lệnh: PowerShell WinorDLL64 có thể thực thi các lệnh PowerShell tùy ý.
T1106 API gốc WinorDLL64 có thể thực hiện các quy trình tiếp theo bằng cách sử dụng TạoProcessWCreateProcessAsUserW API.
Phòng thủ né tránh T1134.002 Thao tác mã thông báo truy cập: Tạo quy trình bằng mã thông báo WinorDLL64 có thể gọi API WTSQueryUserTokenCreateProcessAsUserW để tạo một quy trình dưới quyền của một người dùng mạo danh.
T1070.004 Loại bỏ chỉ báo: Xóa tệp WinorDLL64 có thể xóa các tệp tùy ý một cách an toàn.
khám phá T1087.001 Khám phá tài khoản: Tài khoản cục bộ WinorDLL64 có thể liệt kê các phiên và liệt kê tên người dùng và máy khách được liên kết, cùng với các chi tiết khác.
T1087.002 Khám phá tài khoản: Tài khoản miền WinorDLL64 có thể liệt kê các phiên và liệt kê các tên miền được liên kết cùng với các chi tiết khác.
T1083 Khám phá tệp và thư mục WinorDLL64 có thể lấy danh sách tệp và thư mục.
T1135 Khám phá chia sẻ mạng WinorDLL64 có thể khám phá các ổ đĩa mạng được chia sẻ.
T1057 Khám phá quy trình WinorDLL64 có thể thu thập thông tin về các tiến trình đang chạy.
T1012 Sổ đăng ký truy vấn WinorDLL64 có thể truy vấn sổ đăng ký Windows để thu thập thông tin hệ thống.
T1082 Khám phá thông tin hệ thống WinorDLL64 có thể lấy thông tin như tên máy tính, HĐH và phiên bản gói dịch vụ mới nhất, kiến ​​trúc bộ xử lý, tên bộ xử lý và dung lượng trên các ổ đĩa cố định.
T1614 Khám phá vị trí hệ thống WinorDLL64 có thể lấy tên quốc gia mặc định của nạn nhân bằng cách sử dụng GetLocaleInfoW API.
T1614.001 Khám phá vị trí hệ thống: Khám phá ngôn ngữ hệ thống WinorDLL64 có thể lấy ngôn ngữ mặc định của nạn nhân bằng cách sử dụng GetLocaleInfoW API.
T1016 Khám phá cấu hình mạng hệ thống WinorDLL64 có thể liệt kê thông tin bộ điều hợp mạng.
T1049 Khám phá kết nối mạng hệ thống WinorDLL64 có thể thu thập danh sách các cổng nghe.
T1033 Chủ sở hữu hệ thống / Khám phá người dùng WinorDLL64 có thể liệt kê các phiên và liệt kê tên người dùng, tên miền và máy khách được liên kết – cùng với các chi tiết khác.
Bộ sưu tập T1560.002 Lưu trữ dữ liệu đã thu thập: Lưu trữ qua Thư viện WinorDLL64 có thể nén và lọc thư mục bằng cách sử dụng nhanh lên thư viện.
T1005 Dữ liệu từ Hệ thống cục bộ WinorDLL64 có thể thu thập dữ liệu trên thiết bị của nạn nhân.
Va chạm T1531 Xóa quyền truy cập tài khoản WinorDLL64 có thể ngắt kết nối người dùng đã đăng nhập khỏi các phiên được chỉ định.

Dấu thời gian:

Thêm từ Chúng tôi sống An ninh