Kết quả không thành công: hãy cho AgentTesla tiếp xúc với nước sạch. Phần 1

Kết quả không thành công: hãy cho AgentTesla tiếp xúc với nước sạch. Phần 1
Gần đây, một nhà sản xuất thiết bị lắp đặt điện ở Châu Âu đã liên hệ với Group-IB - nhân viên của tập đoàn này đã nhận được một lá thư đáng ngờ có tệp đính kèm độc hại trong thư. Ilya Pomerantsev, một chuyên gia phân tích phần mềm độc hại tại CERT Group-IB, đã tiến hành phân tích chi tiết tệp này, phát hiện ra phần mềm gián điệp AgentTesla ở đó và cho biết những gì có thể xảy ra từ phần mềm độc hại đó cũng như mức độ nguy hiểm của nó.

Với bài đăng này, chúng tôi sẽ mở một loạt bài viết về cách phân tích các tệp nguy hiểm tiềm tàng như vậy và chúng tôi đang chờ đợi những người tò mò nhất vào ngày 5 tháng XNUMX để có một hội thảo trực tuyến tương tác miễn phí về chủ đề này. “Phân tích phần mềm độc hại: Phân tích các trường hợp thực tế”. Tất cả các chi tiết đều được cắt.

Cơ chế phân phối

Chúng tôi biết rằng phần mềm độc hại đã tiếp cận máy của nạn nhân thông qua email lừa đảo. Người nhận thư có lẽ đã được BCCed.

Kết quả không thành công: hãy cho AgentTesla tiếp xúc với nước sạch. Phần 1
Phân tích các tiêu đề cho thấy người gửi thư đã bị giả mạo. Trên thực tế, lá thư để lại với vps56[.]oneworldhosting[.]com.

Kết quả không thành công: hãy cho AgentTesla tiếp xúc với nước sạch. Phần 1
Tệp đính kèm email chứa kho lưu trữ WinRar qoute_jpeg56a.r15 với một tập tin thực thi độc hại QOUTE_JPEG56A.exe bên trong.

Kết quả không thành công: hãy cho AgentTesla tiếp xúc với nước sạch. Phần 1

Hệ sinh thái phần mềm độc hại

Bây giờ hãy xem hệ sinh thái của phần mềm độc hại đang được nghiên cứu trông như thế nào. Sơ đồ dưới đây cho thấy cấu trúc của nó và hướng tương tác của các thành phần.

Kết quả không thành công: hãy cho AgentTesla tiếp xúc với nước sạch. Phần 1
Bây giờ chúng ta hãy xem xét từng thành phần phần mềm độc hại chi tiết hơn.

Bộ tải

tập tin gốc QOUTE_JPEG56A.exe là một biên soạn AutoIt v3 kịch bản.

Kết quả không thành công: hãy cho AgentTesla tiếp xúc với nước sạch. Phần 1
Để làm xáo trộn tập lệnh gốc, một trình làm xáo trộn có chức năng tương tự PELock AutoIT-Obfuscator đặc điểm.
Quá trình giải mã được thực hiện theo ba giai đoạn:

  1. Loại bỏ sự xáo trộn Vì-Nếu

    Bước đầu tiên là khôi phục luồng điều khiển của tập lệnh. Làm phẳng luồng điều khiển là một trong những cách phổ biến nhất để bảo vệ mã nhị phân của ứng dụng khỏi bị phân tích. Các phép biến đổi khó hiểu làm tăng đáng kể độ phức tạp của việc trích xuất và nhận dạng các thuật toán và cấu trúc dữ liệu.

    Kết quả không thành công: hãy cho AgentTesla tiếp xúc với nước sạch. Phần 1

  2. Phục hồi hàng

    Hai hàm được sử dụng để mã hóa chuỗi:

    • gdorizabegkvfca - Thực hiện giải mã giống Base64

      Kết quả không thành công: hãy cho AgentTesla tiếp xúc với nước sạch. Phần 1

    • xgacyukcyzxz - XOR byte-byte đơn giản của chuỗi đầu tiên với độ dài của chuỗi thứ hai

      Kết quả không thành công: hãy cho AgentTesla tiếp xúc với nước sạch. Phần 1

    Kết quả không thành công: hãy cho AgentTesla tiếp xúc với nước sạch. Phần 1

  3. Loại bỏ sự xáo trộn Chuỗi nhị phân и Thực hiện

    Kết quả không thành công: hãy cho AgentTesla tiếp xúc với nước sạch. Phần 1

Tải chính được lưu dưới dạng chia trong thư mục Fonts phần tài nguyên của tập tin.

Kết quả không thành công: hãy cho AgentTesla tiếp xúc với nước sạch. Phần 1
Thứ tự dán như sau: TIEQHCXWFG, IME, SPDGUHIMPV, KQJMWQQAQTKTFXTUOSW, AOCHKRWWSKWO, JSHMSJPS, NHHWXJBMTTSPXVN, BFUIFWWXVE, HWJHO, AVZOUMVRDWFLWU.

Hàm WinAPI được sử dụng để giải mã dữ liệu được trích xuất Mật mãGiải mãvà khóa phiên được tạo dựa trên giá trị được sử dụng làm khóa fZgFiZlJDxvuWatFRgRXZqmNCIyQgMYc.

Tệp thực thi được giải mã được gửi đến đầu vào hàm ChạyPE, thực hiện Quá trìnhTiêm в RegAsm.exe sử dụng tích hợp Mã vỏ (còn được biết là RunPE ShellCode). Quyền tác giả thuộc về người sử dụng diễn đàn tiếng Tây Ban Nha không thể phát hiện được[.]net dưới biệt danh Wardow.

Kết quả không thành công: hãy cho AgentTesla tiếp xúc với nước sạch. Phần 1
Kết quả không thành công: hãy cho AgentTesla tiếp xúc với nước sạch. Phần 1
Cũng cần lưu ý rằng trong một trong các chủ đề của diễn đàn này, một công cụ làm xáo trộn cho AutoIt có đặc tính tương tự được xác định trong quá trình phân tích mẫu.

Mình Mã vỏ khá đơn giản và thu hút sự chú ý chỉ mượn từ nhóm hacker AnunakCarbanak. Hàm băm cuộc gọi API.

Kết quả không thành công: hãy cho AgentTesla tiếp xúc với nước sạch. Phần 1
Kết quả không thành công: hãy cho AgentTesla tiếp xúc với nước sạch. Phần 1

Chúng tôi cũng biết về các trường hợp sử dụng Mã vỏ kiểu Pháp phiên bản khác nhau.
Ngoài chức năng được mô tả, chúng tôi cũng xác định các chức năng không hoạt động:

  • Chặn chấm dứt quy trình thủ công trong trình quản lý tác vụ

    Kết quả không thành công: hãy cho AgentTesla tiếp xúc với nước sạch. Phần 1

  • Khởi động lại một tiến trình con khi nó kết thúc

    Kết quả không thành công: hãy cho AgentTesla tiếp xúc với nước sạch. Phần 1

  • Bỏ qua UAC

    Kết quả không thành công: hãy cho AgentTesla tiếp xúc với nước sạch. Phần 1

  • Lưu tải trọng vào một tập tin

    Kết quả không thành công: hãy cho AgentTesla tiếp xúc với nước sạch. Phần 1

  • Trình diễn các cửa sổ phương thức

    Kết quả không thành công: hãy cho AgentTesla tiếp xúc với nước sạch. Phần 1

  • Chờ vị trí con trỏ chuột thay đổi

    Kết quả không thành công: hãy cho AgentTesla tiếp xúc với nước sạch. Phần 1

  • AntiVM và AntiSandbox

    Kết quả không thành công: hãy cho AgentTesla tiếp xúc với nước sạch. Phần 1

  • tự hủy hoại

    Kết quả không thành công: hãy cho AgentTesla tiếp xúc với nước sạch. Phần 1

  • Bơm tải trọng từ mạng

    Kết quả không thành công: hãy cho AgentTesla tiếp xúc với nước sạch. Phần 1

Chúng tôi biết rằng chức năng như vậy là điển hình cho người bảo vệ CypherIT, rõ ràng là bộ nạp khởi động được đề cập.

Kết quả không thành công: hãy cho AgentTesla tiếp xúc với nước sạch. Phần 1

Module chính của phần mềm

Tiếp theo, chúng tôi sẽ mô tả ngắn gọn mô-đun chính của phần mềm độc hại và xem xét nó chi tiết hơn trong bài viết thứ hai. Trong trường hợp này, nó là một ứng dụng trên NET..

Kết quả không thành công: hãy cho AgentTesla tiếp xúc với nước sạch. Phần 1
Trong quá trình phân tích, chúng tôi phát hiện ra rằng một bộ làm mờ đã được sử dụng ConfuserEX.

Kết quả không thành công: hãy cho AgentTesla tiếp xúc với nước sạch. Phần 1

IELibrary.dll

Thư viện được lưu trữ dưới dạng tài nguyên mô-đun chính và là một plugin nổi tiếng dành cho Đặc vụTesla, cung cấp chức năng trích xuất nhiều thông tin khác nhau từ trình duyệt Internet Explorer và Edge.

Đặc vụ Tesla là một phần mềm gián điệp mô-đun được phân phối bằng mô hình phần mềm độc hại dưới dạng dịch vụ dưới vỏ bọc của một sản phẩm keylogger hợp pháp. Đặc vụ Tesla có khả năng trích xuất và truyền thông tin xác thực của người dùng từ trình duyệt, ứng dụng email và ứng dụng khách FTP đến máy chủ cho kẻ tấn công, ghi lại dữ liệu clipboard và chụp màn hình thiết bị. Tại thời điểm phân tích, trang web chính thức của nhà phát triển không có sẵn.

Điểm vào là hàm Nhận mật khẩu đã lưu lớp InternetExplorer.

Kết quả không thành công: hãy cho AgentTesla tiếp xúc với nước sạch. Phần 1
Nói chung, việc thực thi mã là tuyến tính và không chứa bất kỳ biện pháp bảo vệ nào chống lại việc phân tích. Chỉ có chức năng chưa thực hiện mới đáng được quan tâm NhậnCookie đã lưu. Rõ ràng, chức năng của plugin đáng lẽ phải được mở rộng, nhưng điều này chưa bao giờ được thực hiện.

Kết quả không thành công: hãy cho AgentTesla tiếp xúc với nước sạch. Phần 1

Gắn bootloader vào hệ thống

Hãy nghiên cứu cách bootloader được gắn vào hệ thống. Mẫu vật đang nghiên cứu không neo, nhưng trong các trường hợp tương tự, nó xảy ra theo sơ đồ sau:

  1. Trong thư mục C:Người dùngCông khai tập lệnh được tạo Visual Basic

    Kịch bản ví dụ:

    Kết quả không thành công: hãy cho AgentTesla tiếp xúc với nước sạch. Phần 1

  2. Nội dung của tệp bootloader được đệm bằng ký tự null và được lưu vào thư mục %Temp%
  3. Khóa tự động chạy được tạo trong sổ đăng ký cho tệp tập lệnh HKCUSoftwareMicrosoftWindowsCurrentVersionRun

Vì vậy, dựa trên kết quả của phần phân tích đầu tiên, chúng tôi có thể thiết lập tên của các họ của tất cả các thành phần của phần mềm độc hại đang được nghiên cứu, phân tích kiểu lây nhiễm và cũng có được đối tượng để viết chữ ký. Chúng ta sẽ tiếp tục phân tích đối tượng này trong bài viết tiếp theo, nơi chúng ta sẽ xem xét mô-đun chính chi tiết hơn Đặc vụTesla. Đừng bỏ lỡ!

Nhân tiện, vào ngày 5 tháng XNUMX, chúng tôi mời tất cả độc giả tham gia hội thảo trực tuyến tương tác miễn phí về chủ đề “Phân tích phần mềm độc hại: phân tích các trường hợp thực tế”, trong đó tác giả của bài viết này, một chuyên gia CERT-GIB, sẽ trình bày trực tuyến giai đoạn đầu tiên của quá trình xử lý. phân tích phần mềm độc hại - giải nén các mẫu bán tự động bằng cách sử dụng ví dụ về ba trường hợp nhỏ thực tế từ thực tế và bạn có thể tham gia phân tích. Hội thảo trực tuyến phù hợp với các chuyên gia đã có kinh nghiệm phân tích các tệp độc hại. Đăng ký hoàn toàn từ email công ty: đăng ký. Đang chờ bạn!

Yara

rule AgentTesla_clean{
meta:
    author = "Group-IB"
    file = "78566E3FC49C291CB117C3D955FA34B9A9F3EEFEFAE3DE3D0212432EB18D2EAD"
    scoring = 5
    family = "AgentTesla"
strings:
    $string_format_AT = {74 00 79 00 70 00 65 00 3D 00 7B 00 30 00 7D 00 0D 00 0A 00 68 00 77 00 69 00 64 00 3D 00 7B 00 31 00 7D 00 0D 00 0A 00 74 00 69 00 6D 00 65 00 3D 00 7B 00 32 00 7D 00 0D 00 0A 00 70 00 63 00 6E 00 61 00 6D 00 65 00 3D 00 7B 00 33 00 7D 00 0D 00 0A 00 6C 00 6F 00 67 00 64 00 61 00 74 00 61 00 3D 00 7B 00 34 00 7D 00 0D 00 0A 00 73 00 63 00 72 00 65 00 65 00 6E 00 3D 00 7B 00 35 00 7D 00 0D 00 0A 00 69 00 70 00 61 00 64 00 64 00 3D 00 7B 00 36 00 7D 00 0D 00 0A 00 77 00 65 00 62 00 63 00 61 00 6D 00 5F 00 6C 00 69 00 6E 00 6B 00 3D 00 7B 00 37 00 7D 00 0D 00 0A 00 73 00 63 00 72 00 65 00 65 00 6E 00 5F 00 6C 00 69 00 6E 00 6B 00 3D 00 7B 00 38 00 7D 00 0D 00 0A 00 5B 00 70 00 61 00 73 00 73 00 77 00 6F 00 72 00 64 00 73 00 5D 00}
    $web_panel_format_string = {63 00 6C 00 69 00 65 00 6E 00 74 00 5B 00 5D 00 3D 00 7B 00 30 00 7D 00 0D 00 0A 00 6C 00 69 00 6E 00 6B 00 5B 00 5D 00 3D 00 7B 00 31 00 7D 00 0D 00 0A 00 75 00 73 00 65 00 72 00 6E 00 61 00 6D 00 65 00 5B 00 5D 00 3D 00 7B 00 32 00 7D 00 0D 00 0A 00 70 00 61 00 73 00 73 00 77 00 6F 00 72 00 64 00 5B 00 5D 00 3D 00 7B 00 33 00 7D 00 00 15 55 00 52 00 4C 00 3A 00 20 00 20 00 20 00 20 00 20 00 20 00 00 15 55 00 73 00 65 00 72 00 6E 00 61 00 6D 00 65 00 3A 00 20 00 00 15 50 00 61 00 73 00 73 00 77 00 6F 00 72 00 64 00 3A 00}
condition:
     all of them
}

rule  AgentTesla_obfuscated {
meta:
    author = "Group-IB"
    file = "41DC0D5459F25E2FDCF8797948A7B315D3CB075398D808D1772CACCC726AF6E9"
    scoring = 5
    family = "AgentTesla"
strings:
    $first_names = {61 66 6B 00 61 66 6D 00 61 66 6F 00 61 66 76 00 61 66 79 00 61 66 78 00 61 66 77 00 61 67 6A 00 61 67 6B 00 61 67 6C 00 61 67 70 00 61 67 72 00 61 67 73 00 61 67 75 00}
    $second_names = "IELibrary.resources"
condition:
     all of them
}

rule AgentTesla_module_for_IE{
meta:
    author = "Group-IB"
    file = "D55800A825792F55999ABDAD199DFA54F3184417215A298910F2C12CD9CC31EE"
    scoring = 5
    family = "AgentTesla_module_for_IE"
strings:
    $s0 = "ByteArrayToStructure" 
    $s1 = "CryptAcquireContext" 
    $s2 = "CryptCreateHash" 
    $s3 = "CryptDestroyHash" 
    $s4 = "CryptGetHashParam" 
    $s5 = "CryptHashData"
    $s6 = "CryptReleaseContext" 
    $s7 = "DecryptIePassword" 
    $s8 = "DoesURLMatchWithHash" 
    $s9 = "GetSavedCookies" 
    $s10 = "GetSavedPasswords" 
    $s11 = "GetURLHashString"  
condition:
     all of them
}

rule RunPE_shellcode {
meta:
    author = "Group-IB"
    file = "37A1961361073BEA6C6EACE6A8601F646C5B6ECD9D625E049AD02075BA996918"
    scoring = 5
    family = "RunPE_shellcode"
strings:
    $malcode = {
      C7 [2-5] EE 38 83 0C // mov     dword ptr [ebp-0A0h], 0C8338EEh
      C7 [2-5] 57 64 E1 01 // mov     dword ptr [ebp-9Ch], 1E16457h
      C7 [2-5] 18 E4 CA 08 // mov     dword ptr [ebp-98h], 8CAE418h
      C7 [2-5] E3 CA D8 03 // mov     dword ptr [ebp-94h], 3D8CAE3h
      C7 [2-5] 99 B0 48 06 // mov     dword ptr [ebp-90h], 648B099h
      C7 [2-5] 93 BA 94 03 // mov     dword ptr [ebp-8Ch], 394BA93h
      C7 [2-5] E4 C7 B9 04 // mov     dword ptr [ebp-88h], 4B9C7E4h
      C7 [2-5] E4 87 B8 04 // mov     dword ptr [ebp-84h], 4B887E4h
      C7 [2-5] A9 2D D7 01 // mov     dword ptr [ebp-80h], 1D72DA9h
      C7 [2-5] 05 D1 3D 0B // mov     dword ptr [ebp-7Ch], 0B3DD105h
      C7 [2-5] 44 27 23 0F // mov     dword ptr [ebp-78h], 0F232744h
      C7 [2-5] E8 6F 18 0D // mov     dword ptr [ebp-74h], 0D186FE8h
      }
condition:
    $malcode 
}

rule AgentTesla_AutoIT_module{
meta:
    author = "Group-IB"
    file = "49F94293F2EBD8CEFF180EDDD58FA50B30DC0F08C05B5E3BD36FD52668D196AF"
    scoring = 5
    family = "AgentTesla"
strings:                                    
    $packedexeau = {55 ED F5 9F 92 03 04 44 7E 16 6D 1F 8C D7 38 E6 29 E4 C8 CF DA 2C C4 E1 F3 65 48 25 B8 93 9D 66 A4 AD 3C 39 50 00 B9 60 66 19 8D FC 20 0A A0 56 52 8B 9F 15 D7 62 30 0D 5C C3 24 FE F8 FC 39 08 DF 87 2A B2 1C E9 F7 06 A8 53 B2 69 C3 3C D4 5E D4 74 91 6E 9D 9A A0 96 FD DB 1F 5E 09 D7 0F 25 FB 46 4E 74 15 BB AB DB 17 EE E7 64 33 D6 79 02 E4 85 79 14 6B 59 F9 43 3C 81 68 A8 B5 32 BC E6}
condition:
     all of them
}

Băm

Họ tên qoute_jpeg56a.r15
MD5 53BE8F9B978062D4411F71010F49209E
SHA1 A8C2765B3D655BA23886D663D22BDD8EF6E8E894
SHA256 2641DAFB452562A0A92631C2849B8B9CE880F0F8F

890E643316E9276156EDC8A

Kiểu Lưu trữ WinRAR
Kích thước máy 823014
Họ tên QOUTE_JPEG56A.exe
MD5 329F6769CF21B660D5C3F5048CE30F17
SHA1 8010CC2AF398F9F951555F7D481CE13DF60BBECF
SHA256 49F94293F2EBD8CEFF180EDDD58FA50B30DC0F08

C05B5E3BD36FD52668D196AF

Kiểu PE (Tập lệnh AutoIt được biên dịch)
Kích thước máy 1327616
Tên khai sinh Không biết
Dấu ngày tháng 15.07.2019
Linker Trình liên kết của Microsoft(12.0)[EXE32]
MD5 C2743AEDDADACC012EF4A632598C00C0
SHA1 79B445DE923C92BF378B19D12A309C0E9C5851BF
SHA256 37A1961361073BEA6C6EACE6A8601F646C5B6ECD

9D625E049AD02075BA996918

Kiểu Mã vỏ
Kích thước máy 1474

Nguồn: www.habr.com

Thêm một lời nhận xét