1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Môn học phân tích mã Độc báo cáo bài thực hành ptit ranalystic

44 2 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Phân tích mã độc WannaCry
Tác giả Nông Đức Thịnh, Lê Anh Quân, Phùng Đắc Quý
Người hướng dẫn TS. Đinh Trường Duy
Trường học Học viện Công nghệ Bưu chính Viễn thông
Chuyên ngành Phân tích mã độc
Thể loại Báo cáo bài thực hành
Năm xuất bản 2024
Thành phố Hà Nội
Định dạng
Số trang 44
Dung lượng 8,17 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Cấu trúc

  • 1. Mục đích (3)
  • 2. Cơ sở lý thuyết (3)
    • 2.1. Các công cụ (3)
    • 2.2. Địa chỉ TOR (4)
    • 2.3. Mã độc (4)
    • 2.4. Mã độc Ransomware (6)
    • 2.5. Mã độc WannaCry(Thuộc họ Ransomware) (7)
    • 2.6. Phân tích mã độc (9)
    • 2.7. Phân tích tĩnh (9)
  • 3. Các bước thực hiện (10)
    • 3.1. Kiểm tra loại tệp mã độc (10)
    • 3.2. Trích xuất trong mẫu đáng ngờ (11)
    • 3.3. Kiểm tra xáo trộn hoặc nén (18)
    • 3.4. Phân tích PE Header (19)
    • 3.5. Dùng IDA tìm kiểm mật khẩu của file 2058.bin (25)
    • 3.6. Mở file 2058.bin (31)
    • 3.7. Phân tích hai file taskdl.exe và taskse.exe (33)
    • 3.8. Phân loại mã độc sử dụng Fuzzy hashing (42)
  • 4. Kết thúc bài lab (0)
  • 5. Video minh chứng (44)

Nội dung

Với PEV ta có thể trích xuất các thông tin quan trọng như là header, sections, và nhiều tài nguyên khác của tệp tin PE, từ đó có thể sử dụng công cụ này để trích xuất từ một tệp mẫu và t

Mục đích

- Giúp sinh viên hiểu rõ về loại mã độc wannacry Một loại mã độc thuộc họ ransomware(loại mã độc tống tiền) Đồng thời cung cấp cho sinh viên kiến thức và cách sử dụng một số công cụ phục vụ cho qua trình phân tích mã độc như IDA, VirusTotal,v.v.

Cơ sở lý thuyết

Các công cụ

- PEV: Đây là một công cụ giúp trích xuất thông tin từ tệp tin PE(Portable

Executable), một loại tệp tin thực thi phổ biến của hệ điều hành Windows Với PEV ta có thể trích xuất các thông tin quan trọng như là header, sections, và nhiều tài nguyên khác của tệp tin PE, từ đó có thể sử dụng công cụ này để trích xuất từ một tệp mẫu và tiến hành phân tích

- IDA: là một phần mềm gỡ rối(decompiler/ dissembler) phục vụ cho quá trình dịch ngược Với IDA ta có thể phân tích cấu trúc chi tiết một tệp tin dưới dạng một ngôn ngữ gần với ngôn ngữ máy gọi là assembly Từ đó ta có thể phân tích các luồng hoạt động của tệp tin, nâng cao hơn có thể sửa đổi luồng hoạt động để giả lập các hoạt động của tệp tin Nhìn chung IDA là một công cụ mạnh mẽ chuyên được sử dụng cho phân tích các mã độc

- VirusTotal: là một dịch vụ mạng để phân tích các tệp tin dưới dạng truy vấn vào các cơ sở dữ liệu để trích xuất thông tin về tệp tin đó Với lượng thông tin lớn trong cơ sở dữ liệu thì hầu như các loại mã độc đều đã được ghi lại và chứa nhiều thông tin về loại mã độc đó Từ đó giúp người nghiên cứu có thể trích

3 xuất được nhiều thông tin hữu ích để phục vụ cho các mục tiêu nghiên cứu khác.

Địa chỉ TOR

- Địa chỉ TOR: địa chỉ TOR là một lớp mạng cho phép liên lạc, giao tiếp ẩn danh Nó được xây dựng dựa trên mã nguồn mở và có tổng cộng hơn 7 nghìn mạng chuyển tiếp do nhiều lập trình viên cùng nhau xây dựng Với mạng TOR người dùng tự thiết lập lưu lượng, các điểm mà gói tin đi qua TOR khiến việc theo dõi hoạt động Internet khó khăn hơn do nó chặn việc truy xuất đến các gói tin bao gồm cả địa chỉ nguồn lẫn cả địa chỉ đích Điều này giúp che giấu vị trí hoặc phân tích lưu lượng mạng từ bất kỳ điểm truy nhập nào

- Một số điểm quan trọng về địa chỉ Tor: o Định dạng:

▪ Địa chỉ Tor thường có định dạng kết thúc bằng ".onion"

▪ Ví dụ: http://example.onion o Sự ẩn danh:

▪ Các dịch vụ sử dụng địa chỉ Tor thường không thể truy cập được từ internet thông thường Điều này bảo vệ địa chỉ IP của máy chủ và người dùng, giúp duy trì sự ẩn danh o Sử dụng:

▪ Địa chỉ Tor được sử dụng để truy cập các trang web, dịch vụ hoặc ứng dụng mà không muốn bị theo dõi Chúng có thể bao gồm các diễn đàn, dịch vụ email, hoặc các trang web cung cấp nội dung nhạy cảm o Mạng lưới Tor:

▪ Địa chỉ Tor chỉ có thể được truy cập qua phần mềm Tor, điều này có nghĩa là người dùng cần cài đặt và sử dụng trình duyệt Tor hoặc các ứng dụng tương thích với mạng Tor để truy cập các dịch vụ này o Lợi ích và rủi ro:

▪ Mặc dù mạng Tor cung cấp sự ẩn danh và bảo vệ quyền riêng tư, nhưng cũng có những rủi ro nhất định Một số dịch vụ trên mạng Tor có thể liên quan đến hoạt động bất hợp pháp, vì vậy người dùng cần cẩn trọng.

Mã độc

- Mã độc là một loại phần mềm được tạo ra và chèn vào hệ thống một cách bí mật với mục đích thâm nhập, phá hoại hệ thống, lấy cắp thông tin, làm gián

4 đoạn hoặc tổn hại tới tính bí mật, tính toàn vẹn và tính sẵn sàng của hệ thống hay các máy tính cá nhân

- Mã độc có thể có dạng một tập tin thực thi, script, mã nguồn hoặc bất kỳ phần mềm nào khác

- Một số loại mã độc phổ biến: Logic bombs, Trojan horses, Backdoor, Rootkit, Adware, Spyware, Ransomware, Virus, Worm, Zombie/Bot,…

- Nguyên tắc hoạt động của mã độc: o Xâm nhập vào hệ thống: Mã độc thường sử dụng các lỗ hổng bảo mật hoặc phương pháp xâm nhập khác để xâm nhập vào hệ thống máy tính hoặc thiết bị khác o Điều khiển và kiểm soát hệ thống: Sau khi xâm nhập thành công, mã độc sẽ tìm cách lấy quyền điều khiển và kiểm soát hệ thống Điều này cho phép kẻ tấn công có thể thực hiện các hoạt động độc hại trên hệ thống mà không bị phát hiện o Mở cửa hậu cho kẻ tấn công: Mã độc thường sẽ tạo ra các lỗ hổng hoặc cửa sau trên hệ thống, cho phép kẻ tấn công có thể tiếp tục tấn công hoặc truy cập vào hệ thống sau này mà không cần phải xâm nhập lại o Thực hiện các hoạt động độc hại: Mã độc thường sẽ thực hiện các hoạt động độc hại trên hệ thống, bao gồm việc tạo ra các file giả mạo, thay đổi các cài đặt hệ thống, mã hoá các tệp tin quan trọng, đánh cắp thông tin cá nhân hoặc thông tin quan trọng, và thậm chí là điều khiển các thiết bị khác trong mạng của nạn nhân o Che giấu sự hoạt động: Mã độc thường sẽ giấu kín hoạt động của mình để tránh bị phát hiện và gỡ bỏ khỏi hệ thống Điều này có thể bao gồm việc tránh các chương trình chống virus, mã hóa các tệp tin hoặc các kết nối mạng bằng các phương thức mã hóa chéo, hoặc thay đổi các cài đặt hệ thống để tránh bị phát hiện

- Hình thức phát tán: o Phát tán qua email o Phát tán qua usb o Phát tán qua lỗ hổng o Phát tán qua điểm yếu hệ thống o Phát tán qua các file nguồn không an toàn: crack, keygen, free, social

- Các thành phần của mã độc: o Files: Đây là thành phần chính của mã độc, chứa mã nguồn, encrypt data, payload và các thông tin của mã độc… o Registry keys: Đây là các khóa trong hệ thống registry trên Windows, chứa các thông tin quan trọng về hệ thống và các ứng dụng Mã độc có thể tạo, ghi, sửa đổi các key để khởi động và thực thi cùng hệ thống o Process, memory: Mã độc có thể tạo ra các process mới hoặc sửa đổi bộ nhớ của các tiến trình đang chạy trên máy tính để thực hiện các hoạt động độc hại o Folders: Một số mã độc tạo ra các thư mục, thư mục ẩn để che dấu các tệp tin độc hại

- Các kỹ thuật ẩn mình của mã độc: o File có thuộc tính ẩn: Theo mặc định, hệ điều hành thiết lập không hiển thị các tệp có thuộc tính ẩn hoặc thuộc tính tệp hệ thống Mã độc thường lợi dụng cơ chế này để ẩn các file độc hại o Giả mạo icon: Mã độc có thể giả mạo các icon của thư mục, file nén, phần mềm chuẩn,… để ẩn mình o Giả mạo shortcut o Side-Loading, hijacking dll: Mã độc lợi dụng cơ chế load dll của hệ điều hành và phần mềm để ẩn mình o Giả mạo file: Mã độc có thể giả mạo các phần mềm để ẩn mình o Fileless: Mã độc fileless không tồn tại dạng file trên hệ thống o Pre-OS boot: Mã độc có thể ghi đè MBR để ẩn mình o Chỉ chạy khi có môi trường: Mã độc chỉ chạy khi có một điều kiện nào đó để ẩn mình o Lợi dụng các tiến trình, service hệ thống o Virus lây file: Mã độc ẩn mình bằng cách lây nhiễm vào các chương trình, tệp thực thi.

Mã độc Ransomware

- Ransomware là một loại phần mềm độc hại (malware) được thiết kế để mã hóa dữ liệu của nạn nhân và yêu cầu một khoản tiền chuộc (thường dưới dạng tiền điện tử như Bitcoin) để khôi phục quyền truy cập vào dữ liệu Đây là một trong những loại tấn công mạng nguy hiểm và phổ biến, thường nhắm vào các cá nhân, doanh nghiệp, và tổ chức chính phủ

- Cách thức lây lan: o Email Phishing: Gửi các email lừa đảo có chứa tệp đính kèm độc hại hoặc đường dẫn dẫn tới trang web chứa mã độc o Lỗ hổng phần mềm: Lợi dụng các lỗ hổng trong phần mềm hoặc hệ điều hành, đặc biệt nếu hệ thống chưa được cập nhật bản vá bảo mật o Drive-by Download: Ransomware được tự động tải xuống khi người dùng truy cập vào các trang web không an toàn hoặc bị xâm nhập o Quảng cáo độc hại (Malvertising): Lây lan qua các quảng cáo trực tuyến trên các trang web phổ biến

- Các phương pháp hoạt động: o Mã hóa dữ liệu: Ransomware sử dụng các thuật toán mã hóa mạnh để mã hóa tệp tin Nạn nhân không thể mở các tệp này nếu không có khóa giải mã o Đe dọa công khai dữ liệu: Một số ransomware (chẳng hạn như các biến thể của ransomware LockBit) đe dọa sẽ công khai hoặc bán dữ liệu nhạy cảm của nạn nhân nếu không nhận được tiền chuộc o Lây lan trong mạng: Ransomware hiện đại có khả năng tự lây lan qua các máy tính khác trong cùng một mạng, tạo thành các cuộc tấn công lớn hơn

- Hậu quả của các cuộc tấn công ransomware:

6 o Tổn thất tài chính: Khoản tiền chuộc thường từ vài trăm đến hàng triệu đô la, tùy thuộc vào quy mô tổ chức và giá trị của dữ liệu o Mất dữ liệu: Nếu không có bản sao lưu, nạn nhân có thể mất vĩnh viễn dữ liệu khi không trả tiền chuộc o Gián đoạn hoạt động: Ransomware làm gián đoạn hoạt động của cá nhân hoặc tổ chức, có thể gây tổn thất lớn cho doanh nghiệp o Rủi ro dữ liệu: Nếu dữ liệu bị đánh cắp hoặc đe dọa công khai, sẽ ảnh hưởng đến uy tín và bảo mật của tổ chức hoặc cá nhân

- Một số biến thể ransomware nổi tiếng: o WannaCry: Xuất hiện vào năm 2017 và gây ảnh hưởng toàn cầu

WannaCry khai thác lỗ hổng EternalBlue của Windows o LockBit: Một biến thể hiện đại với khả năng mã hóa mạnh và đe dọa rò rỉ dữ liệu, nhắm vào các doanh nghiệp lớn o Ryuk: Nhắm vào các tổ chức lớn và thường yêu cầu khoản tiền chuộc cao Ryuk có khả năng lây lan và phát triển từ các phần mềm độc hại khác o Jigsaw: Mã hóa và liên tục xóa tệp tin của nạn nhân nếu họ không trả tiền trong một thời gian nhất định, gây áp lực lớn cho nạn nhân

- Phòng chống Ransomware: o Sao lưu dữ liệu: Luôn sao lưu dữ liệu quan trọng và lưu trữ các bản sao này ở nơi an toàn, tách biệt với mạng chính o Cập nhật phần mềm: Đảm bảo hệ điều hành và các ứng dụng luôn được cập nhật để tránh các lỗ hổng bảo mật o Huấn luyện nhân viên: Đào tạo người dùng, nhân viên trong doanh nghiệp để nhận diện các mối đe dọa như email lừa đảo hoặc liên kết độc hại o Phần mềm chống mã độc: Sử dụng phần mềm chống mã độc để phát hiện và ngăn chặn các mã độc o Sử dụng tường lửa và các công cụ lọc email: Giúp ngăn chặn các email và trang web độc hại tiếp cận người dùng

- Phản ứng khi bị tấn công: o Cách ly hệ thống bị nhiễm: Ngắt kết nối thiết bị bị nhiễm khỏi mạng để tránh ransomware lây lan o Báo cáo cho các cơ quan an ninh mạng: Nếu là một tổ chức, nên báo cáo sự cố cho các cơ quan an ninh mạng để nhận hỗ trợ o Không trả tiền chuộc: Trả tiền không đảm bảo rằng dữ liệu sẽ được giải mã và có thể khuyến khích các cuộc tấn công tiếp theo o Khôi phục từ bản sao lưu: Nếu có bản sao lưu, hãy khôi phục từ đó thay vì trả tiền chuộc

→ Ransomware là một mối đe dọa nghiêm trọng đối với an ninh mạng hiện đại, yêu cầu sự chuẩn bị kỹ lưỡng và phản ứng nhanh chóng để giảm thiểu thiệt hại.

Mã độc WannaCry(Thuộc họ Ransomware)

- WannaCry là một loại ransomware xuất hiện lần đầu vào tháng 5 năm 2017, gây ra một trong những cuộc tấn công mạng toàn cầu lớn nhất từng được ghi nhận WannaCry nhắm đến các máy tính chạy hệ điều hành Windows và đã mã hóa dữ liệu của nạn nhân, yêu cầu họ trả tiền chuộc bằng Bitcoin để khôi phục quyền truy cập vào dữ liệu a Đặc điểm chính của WannaCry:

- Khai thác lỗ hổng EternalBlue: o WannaCry khai thác lỗ hổng bảo mật EternalBlue (CVE-2017-0144) trong giao thức SMB (Server Message Block) của Windows, được phát hiện bởi Cơ quan An ninh Quốc gia Mỹ (NSA) Lỗ hổng này đã bị rò rỉ bởi nhóm hacker Shadow Brokers và sau đó bị các nhóm tấn công mạng lợi dụng o EternalBlue cho phép WannaCry lây lan từ máy tính này sang máy tính khác trên cùng một mạng nội bộ, khiến cuộc tấn công lan rộng rất nhanh và ảnh hưởng đến hàng trăm ngàn thiết bị trên toàn thế giới

- Cơ chế hoạt động: o Sau khi xâm nhập vào hệ thống, WannaCry mã hóa các tệp tin trên máy tính bằng cách sử dụng mã hóa AES và RSA, khiến nạn nhân không thể truy cập dữ liệu của mình o WannaCry sau đó hiển thị một thông báo đòi tiền chuộc, yêu cầu nạn nhân phải thanh toán một khoản tiền bằng Bitcoin để nhận được khóa giải mã và khôi phục dữ liệu Ban đầu, khoản tiền chuộc là 300 USD và tăng lên nếu không thanh toán trong khoảng thời gian nhất định

- Cơ chế “Kill Switch”: o Trong mã của WannaCry có một tên miền kiểm tra (kill switch domain) ẩn, và nếu tên miền này hoạt động, mã độc sẽ ngừng lây lan Một chuyên gia bảo mật đã vô tình phát hiện và kích hoạt "kill switch", giúp làm giảm tốc độ lây lan của WannaCry trên toàn cầu b Ảnh hưởng của WannaCry:

- Toàn cầu: WannaCry đã ảnh hưởng tới hơn 150 quốc gia, bao gồm các cơ sở hạ tầng quan trọng như bệnh viện, ngân hàng, trường học và doanh nghiệp lớn

Cơ quan Y tế Quốc gia Anh (NHS) là một trong những nạn nhân lớn nhất, khiến nhiều dịch vụ chăm sóc sức khỏe bị gián đoạn nghiêm trọng

- Thiệt hại tài chính: Cuộc tấn công gây ra thiệt hại hàng tỷ USD, không chỉ từ tiền chuộc mà còn từ thiệt hại do mất dữ liệu, gián đoạn hoạt động và chi phí phục hồi hệ thống c Phương pháp phòng tránh:

- Cập nhật hệ điều hành: o Microsoft đã phát hành bản vá bảo mật khẩn cấp cho các phiên bản Windows, bao gồm cả các phiên bản đã ngừng hỗ trợ như Windows XP Để ngăn ngừa WannaCry, người dùng cần cài đặt các bản vá (Microsoft Security Bulletin MS17-010) nhằm bảo vệ hệ thống khỏi lỗ hổng

- Ngắt kết nối các thiết bị lây nhiễm:

8 o Đối với các hệ thống bị nhiễm, cách ly ngay khỏi mạng có thể ngăn chặn sự lây lan sang các thiết bị khác

- Sao lưu dữ liệu thường xuyên: o Thực hiện sao lưu dữ liệu định kỳ và lưu trữ bản sao lưu ở nơi an toàn, tách biệt với hệ thống chính để có thể phục hồi dữ liệu khi cần

- Tăng cường bảo mật mạng: o Cấu hình tường lửa để chặn các giao thức không an toàn như SMB từ internet, và triển khai các biện pháp bảo mật mạng khác để giảm thiểu nguy cơ lây lan

- Giáo dục nhận thức về an ninh mạng: o Đào tạo nhân viên và người dùng để nhận diện các email lừa đảo, tệp đính kèm đáng ngờ và các liên kết độc hại, vì WannaCry và các ransomware khác thường lợi dụng những yếu tố này để lây lan ban đầu d Hậu quả của WannaCry trong lĩnh vực an ninh mạng

- WannaCry đã trở thành một lời cảnh tỉnh lớn đối với các tổ chức và cá nhân về tầm quan trọng của việc cập nhật hệ thống, bảo vệ dữ liệu và nâng cao nhận thức an ninh mạng Nó cũng đặt ra câu hỏi về sự quản lý và bảo mật của các công cụ khai thác bị rò rỉ, và thúc đẩy sự phát triển của các biện pháp phòng chống ransomware.

Phân tích mã độc

- Phân tích mã độc: là việc nghiên cứu hành vi của mã độc Mục đích chính khi thực hiện phân tích mã độc là thu thập thông tin từ mẫu mã độc Từ đó xác định được khả năng của mã độc, phát hiện và ngăn chặn nó Ngoài ra phân tích mã độc cũng làm nguồn cung cấp, xác định mẫu mã độc để hỗ trợ việc phát hiện và ngăn chặn trong tương lai

- Phân loại kỹ thuật phân tích mã độc: o Phân tích tĩnh: Phân tích mã nguồn hoặc file thực thi của mã độc mà không cho mã độc hoạt động Thường thực hiện trên máy tính an toàn không kết nối mạng Cho phép khám phá cấu trúc và chức năng bên trong của mã độc Phát hiện các công cụ và kỹ thuật được sử dụng o Phân tích động: Phân tích mã độc bằng cách cho mã độc thực thi và giám sát và phân tích hoạt động của nó Thường thực hiện trong môi trường cô lập để đảm bảo an toàn Cho phép nghiên cứu hành vi của mã độc trên máy chủ, tương tác với mạng và hệ thống Có thể phát hiện các chỉ số mạng và máy chủ liên quan đến mã độc o Phân tích kết hợp(phân tích lai): Là hình thức phân tích mã độc kết hợp phân tích tĩnh và phân tích động.

Phân tích tĩnh

- Phân tích tĩnh là kỹ thuật phân tích tệp nghi ngờ (mẫu) mà không thực thi nó

- Phân tích tĩnh là phương pháp phân tích ban đầu liên quan đến việc trích xuất thông tin hữu ích từ tệp nhị phân nghi ngờ để đưa ra quyết định có căn cứ về cách phân loại hoặc phân tích mã độc và chỉ ra hướng phân tích tiếp theo

- Phân tích tĩnh được chia làm 2 loại:

9 o Phân tích tĩnh cơ bản: Tìm cách hiểu mã độc bằng cách phân tích chính file, cấu trúc file, các chức năng được sử dụng bởi mã độc,… o Phân tích tĩnh nâng cao: Phân tích sâu hơn và tìm cách hiểu được mã độc dựa trên dịch ngược

- Vai trò của phân tích tĩnh: o Cung cấp thông tin ban đầu mà không cần thực thi tệp o Xác định hành vi tiềm ẩn o Xác định cách thức hoạt động o Hỗ trợ phân tích động sau đó o Phân loại tệp

- Một số công cụ phân tích tĩnh: IDA, Ghidra, Floss, PeStudio, Yara,…

- Quy trình phân tích tĩnh:

Các bước thực hiện

Kiểm tra loại tệp mã độc

- Bước 1: Tại Terminal của lab, gõ lệnh “ ls ” để hiển thị tất cả tệp tin, thư mục tại đường dẫn hiễn tại

Hình 1: Hiển thị các tệp tin

- Bước 2: Lần lượt gõ lệnh “ file (tên t ệp)” để kiểm tra kiểu của từng tệp

Hình 2: Kiểm tra kiểu của tệp o Kết quả cho thấy kiểu của tệp Jhin.png là PE32, Lab.pdf là kiểu pdf và Ptit.txt là kiểu text được mã hóa theo kiểu ASCII Từ đây ta có thể rút ra được tệp Jhin.png có thể được xếp vào tệp nghi ngờ do nó là một loại tệp thực thi được việt cho hệ điều hành Windows 32bits.

Trích xuất trong mẫu đáng ngờ

- Bước 1: Gõ lệnh “ strings -n 10 Jhin.png | less ” để trích xuất chuỗi trong mẫu với chiều dài tối thiểu trên 1 dòng phải là 10

Hình 3: trích xuất chuỗi với độ dài tối thiểu là 10 trong file Jhin.png

Hình 4: Các chuỗi trích xuất được trong file Jhin.png

Hình 5: Các chuỗi trích xuất được trong file Jhin.png o Kết quả cho thấy trích xuất được rất nhiều thông tin từ thư viện dll

(SHELL32, WS2_32,v.v), các hàm được sử dụng(RegCloseKey, CloseHandle,v.v) cũng như các chuỗi đáng ngờ o Có một số chuỗi đáng ngờ như

“12t9YDPgwueZ9NyMgw519p7AA8isjr6SMw”,

“13AM4VW2dhxYgXeQepoHkHSQuy6NgaEb94”, cả 3 chuỗi đều có liên quan đến địa chỉ dẫn đến thông tin giao dịch của một loại tiền ảo là bitcoin

Hình 6: Địa chỉ bitcoin tương ứng

Hình 7: Địa chỉ bitcoin tương ứng

- Bước 2: Gõ lệnh “ strings Jhin.png | grep - i “file” | sort ” để tiến hành trích xuất chuỗi ứng với các hàm của hệ thống tệp

Hình 8: Trích xuất chuỗi liên quan đến file trong Jhin.png o Kết quả cho thấy các hàm quan trọng để tương tác với hệ thống file như: CratefileA(tạo file), ReadFile(đọc file), WriteFile(ghi file),

DeleteFile(xóa file),v.v Qua kết quả có thể thấy rằng mẫu có gần như toàn bộ các tác vụ đối với hệ thống file o CopyFile, CreateFile, DeleteFile, MoveFile, ReadFile, WriteFile: các hàm cho phép thao tác sao chép, tọa, xóa, di chuyển, đọc và ghi file

14 o GetFileAttribute, GetFileSize, GetModuleFileName: các hàm cho phép trích xuất các thông tin từ file như là thuộc tính, kích thước và đường dẫn của file chứa modules cụ thể o SetFileTime, SetFilePointer, SetFileAttributeW: Các hàm này cho phép mẫu có thể sửa đổi các trường thuộc tính của tệp như thời gian; các thuộc tình của tệp và con trỏ tệp tin để điều hướng đến nơi đọc hoặc ghi dữ liệu o SystimetoFileTime: Chuyển đổi định dạng thời gian của hệ thống sang định dạng thời gian của tệp

- Bước3: Gõ lệnh “ strings Jhin.png | grep - i “dll” | sort ” để tiến hành trích xuât các chuỗi ứng với các thư viện dll mà mẫu nhập

Hình 9: Trích xuất chuỗi liên quan đến dll trong Jhin.png o ADVAPI32.dll: thư viện chứa các chức năng bảo mật cho ứng dụng của Windows Thư viện chứa các hàm, thủ tục để ứng dụng có thể giao tiếp với hệ điều hành và truy nhập vào các tài nguyên quan trọng như registry, bảo mật, quản lý tài khoản người dùng,v.v Mã độc có thể tận dụng thư viện này để phá vỡ đi các thủ tục, các rào cản mà adval32 quy định khi ứng dụng giao tiếp với hệ điều hành nhằm đảm bảo tính bảo mật, nhờ đó các mã độc có thể can thiệp một cách tùy ý đến các thành phần quan trọng của hệ thống o KERNEL32.dll: thư viện chứa các hàm hệ thống cho ứng dụng của

Windows Với thư viện này mã độc có thể thao tác và điều khiển hệ điều hành can thiệp sâu vào các khu vực thuộc kernel mode hoặc can thiệp vào các phần cứng để thực hiện các tác vụ độc hại

- Bước 4: Gõ lệnh “ strings Jhin.png | grep - i “reg” | sort ” để tiến hành trích xuât các chuỗi ứng các hàm liên quan đến registry được mẫu sử dụng

Hình 10: Trích xuất các chuỗi liên quan đến reg trong Jhin.png o RegCloseKey: Đóng lại key đang được mở o RegCreateKeyW: Tạo một Key mới, nếu Key đã tồn tại thì hàm này sẽ mở key đó o RegQuerryValueExA: Trích xuất kiểu dữ liệu và giá trị của một trường tên nằm trong key đang được mở o RegSetValueExA: Chỉnh sửa kiểu và giá trị của một trường tên trong key đang được mở

- Bước 5: Gõ lệnh “ strings Jhin.png | grep - i “crypt” | sort ” để trích xuất các chuỗi liên quan đến việc mã hóa

Hình 11: Trích xuất các chuỗi liên quan đến crypt trong Jhin.png o Qua kết quả có thể thấy các hàm liên quan đến thêm key, hủy key, mã hóa, giải mã Điều này có thể gợi mở rằng mẫu khả năng cao có thể là mã độc thuộc họ ransomware(loại mã độc mã hóa, đánh cắp dữ liệu nhạy cảm của nạn nhân với mục đích là tống tiền); hoặc cũng có thể là một số dòng mã độc nguy hiểm sử dụng mã hóa để ẩn mình hoặc che dấu các thông tin quan trọng của mã độc

- Bước 6: Gõ lệnh “ strings Jhin.png | grep - i “process” | sort ” để trích xuất các chuỗi liên quan đến tiến trình

Hình 12: Trích xuất các chuôi liên quan đến process trong Jhin.png o Kết quả cho thấy mẫu có khả năng tương tác với chương trình, đặc biệt là có thể tạo và kết thúc một tiến trình bất kì thông qua hàm CreateProcessA và TerminateProcess Bên cạnh đó mẫu cũng có khả năng truy xuất vào vùng bộ nhớ heap của một tiến trình đang chạy thông qua hàm GetProcessHeap

- Bước 7: Gõ lệnh “ Gõ l ệnh “strings Jhin.png | grep - i “resource” | sort ” để trích xuất các chuỗi liên quan đến tài nguyên của hệ thống

Hình 13: Trích xuất các chuôi liên quan đến resource trong Jhin.png o Kết quả cho thấy mẫu cũng có khả năng can thiệp đến tài nguyên hệ thống Mẫu có thể truy tìm địa chỉ của tài nguyên cụ thể qua hàm FindResourceA và truy xuất hoặc là khóa tài nguyên thông qua hàm LoadResource, LockResource Điều này có thể khiến cả hệ thống hoạt động bất thường hoặc thậm chí không thể hoạt động do các tài nguyên quan trọng như RAM, ROM,v.v có thể bị khóa.

Kiểm tra xáo trộn hoặc nén

- Go lệnh “ pescan Jhin.png ” để kiểm tra xáo trộn tệp

Hình 14: Kiểm tra xáo trộn tệp Jhin.png

18 o Kết quả cho thấy entropy của tệp là khoảng 7.99 và được đánh giá là có thể mẫu đã được đóng gói.

Phân tích PE Header

- Bước 1: Gõ lệnh “ readpe – all Jhin.png ” để tiến hành phân tích PE header của mẫu

Hình 15: Kiểm tra PE Header tệp Jhin.png o Kết quả tại phần timestamp thuộc phần COFF header cho thấy thời gian mẫu được tạo ra là ngày 20/11/2010

Hình 16: Kiểm tra PE Header tệp Jhin.png

Hình 17: Kiểm tra PE Header tệp Jhin.png

Hình 18: Kiểm tra PE Header tệp Jhin.png o Kết quả cho thấy có xuất hiện hàm import nhưng không xuất hiện hàm export o Mẫu này có sử dụng các thư viện dll là kernel32.dll, user32.dll, advapi32.dll, msvcrt.dll

Hình 19: Kiểm tra PE Header tệp Jhin.png o Một số hàm sử dụng để quản lí dịch vụ như: CreateServiceA,

OpenServiceA, StartServiceA, CloseServiceHandle o Một số hàm sử dụng để quản lí file như: CreateFileA, WriteFile,

SetFileAttributeA, CopyFileA, SetFileTime,v.v o Một số hàm để quản lý registry như: RegCreateKeyW, RegSetValueA, RegQuerryValueA, RegCloseKey

Hình 20: Kiểm tra PE Header tệp Jhin.png o Một số hàm để quản lí tiến trình như: GetProcessHeap,

21 o Với địa chỉ ảo chỉ có một hàm để trích xuất địa chỉ ảo của một tiến trình cụ thể là GetProcAddress

Hình 21: Kết hợp grep để kiểm tra PE Header tệp Jhin.png o Một số hàm có thể sử dụng làm xáo trộn thông tin như: LoadResource, LoadLibraryA

Hình 22: Kiểm tra PE Header tệp Jhin.png

22 o Có tổng cộng 4 sections: text có kích thước là 286762bytes, rdata có kích thước 24576 bytes, data có kích thuớ 8192 bytes và rsrc có kích thước 344832 bytes o Từ kết quả cho thấy section rsrc có kích thước lớn hơn các section khác rất nhiều Điều này có thể gợi ra sự nghi ngờ về mẫu

- Bước 2: Gõ lệnh “ peres -x Jhin.png ” để trích xuất tệp tin nằm trong section

Hình 23: Trích xuất các tệp tin nằm trong section rsrc của Jhin.png o Kết quả cho thấy trích xuất được 1 tệp tin và 2 thư mục từ section.rsrc là: 2058.bin, manifests và versions

- Bước 3: Thực hiện di chuyển vào các thư mục và dùng lệnh file để kiểm tra kiểu của các tệp

Hình 24: Kiểm tra kiểu của các tệp vừa được trích xuất o Kết quả cho thấy tệp 1.xml trong thư mục manifests chỉ là một tệp document thông thường; tệp 1.rc trong thư mục versions thì cũng đơn giản là một tệp văn bản(data nghĩa là lệnh file không phát hiện tệp ở dạng đặc biệt nào và sẽ trả về kiểu cuối cùng là data tương ứng với tệp chỉ chứa các ký tự văn bản thông thường) Tuy nhiên kiểu của tệp 2058.bin lại là kiểu zip, một dạng tệp nén Lúc này chúng ta cần phải giải nén để biết bên trong tệp đó chứa những dữ liệu gì

- Bước 4: Sử dụng lệnh “ unzip 2058.bin ” để tiến hành giải nén tệp

Hình 25: Tiến hành giải nén tệp 2058.bin

24 o Kết quả cho thấy để giải nén cần phải cung cấp mật khẩu Vậy nên việc giải nén tạm thời chưa thể thực hiện được do chưa biết mật khẩu.

Dùng IDA tìm kiểm mật khẩu của file 2058.bin

- Bước 1: Gõ lệnh “./idafree84_linux.run ” để tiến hành cài đặt

Hình 26: Tiến hành cài đặt ida64

- Bươcs 2: Gõ lệnh “./idafree -8.4/ida64 Jhin png” để khởi động ida

Hình 27: Khởi động ida64 để bắt đầu phân tích Jhin.png

Hình 28: Giao diện của ida64 sau khi khởi động

- Bước 3: Tại góc trái Click đúp vào hàm sub_4010FD(nơi gọi đến hàm

Hình 29: IDA View-B tại hàm sub_4010FD o Kết quả cho thấy trước khi gọi đến hàm RegCreateKeyW thì mẫu sẽ đẩy giá trị 8000001h vào bộ nhớ ngăn xếp, góc bên trái biểu thị đây là giá trị của hKey Do đó registry mới sẽ thuộc Hive là

- Bước 4: Tại cửa sổ function bên trái tìm đến hàm WinMain, sau đó Click đúp vào hàm

Hình 30: IDA- View của hàm WinMain o Trong sơ đồ dissamble view: ngay khối thứ 3, phát hiện ra rằng mẫu đã bắt đầu thực hiện thao tác với file tasksche.exe(file này nằm trong 2058.zip) nên phỏng đoán rằng việc mẫu giải nén file 2058.bin nằm ở các khối trước đó

Hình 31: Ida-view của hàm WinMain o Phân tích khối trước đó, ta nhận thấy mẫu đang cố đẩy một giá trị tại aI và có dòng comment bên cạnh là “/i”, ngay bên dưới mẫu lại gọi đến

27 hàm p argv Có thể nghi ngờ rằng hàm này là để giải nén tệp và aI có thể là giá trị mật khẩu cho việc giải nén Do đó ta click đúp vào aI để xem xét giá trị này

Hình 32: Text-view của hàm WinMain o Kết quả cho thấy dạng text tại địa chỉ ảo của biến aI Dịch lên phía trên một chút chúng ta phát hiện một biến Str có giá trị là “ WNcry@2ol7 ” Ta nghi ngờ có thể đây là mật khẩu dành cho việc giải nén

- Bước 5: Tại cửa sổ text-view tìm đến hàm CreateProcessA và xem đoạn code mà IDA định nghĩa chứa hàm CreateProcessA

Hình 33: Text-view chứa hàm CreateProcessA

- Bước 6: Tại cửa sổ Function name bên trái truy cập đến hàm tự định danh sub_401064

Hình 34: IDA-view của hàm sub_401064

Hình 35: IDA-view của hàm sub_401064 o Đây chính là đoạn code mà mẫu tạo ra một process mới Tên của process được định nghĩa tại địa chỉ của: (giá trị trong thanh ghi ebp + giá trị của biến lpCommandLine)

- Bước 7: Chọn view -> Open subviews -> Dissambly để tạo một cửa sổ mới hiển thị dưới dạng text Tại cửa sổ IDA-View B gõ Alt + T, sau đó nhập mutex để tìm kiếm chuỗi ứng với mutex

Hình 36: Text-view chứa hàm OpenMutextA

- Bước 7: Tại cửa số IDA View-A tìm đến hàm mà IDA định nghĩa ứng với sub_401EFF

Hình 38: IDA-view tại hàm sub_401EFF o Kết quả cho thấy một Mutex mới được tạo ra, và tên của Mutex được định nghĩa bởi đối số lpName Tại khối bên trên có thể thấy lpName là giá trị tương ứng với giá trị lưu trữ trong Buffer Trước đó Buffer đã được cài đặt và gán giá trị có định dạng %s%d, với %s là chuỗi

“Global\\MsWinZonesCacheCounterMutexA”; %d là một số nguyên

30 được 0 Vậy tên của mutex sẽ có định dạng là

“Global\\MsWinZonesCacheCounterMutexA0” o Chức năng của Mutex này để đảm bảo rằng chỉ có một bản sao của mẫu đang chạy trên hệ thống tại một thời điểm Khi mẫu chạy nó sẽ tạo ra một Mutex với tên duy nhất là

Global\\MsWinZonesCacheCounterMutexA0 Nếu một tiến trình khác của mẫu cố chạy và phát hiện Mutex đã tồn tại thì mẫu sẽ không khởi động một bản sao mới

- Tệp mà mẫu mã hóa sẽ có phần mở rộng là wnry

Mở file 2058.bin

- Bước 1: sử dụng lệnh “ unzip -P WNcry@2ol7 2058.bin -d extracted ” để thử giải nén với thông tin mật khẩu được thu thâp tại bước 3.5

Hình 39: Giải nén tện 2058.bin với mật khẩu đã tìm được trước đó

Hình 40: Truy cập đến đường dẫn nơi chứa các file giải nén của 2058.bin o Kết quả cho thấy mật khẩu là đúng và đã giải nén được tệp 2058.bin

- Bước 2: Sử dụng lệnh “ strings c.wnry | grep - i “.onion” ” để trích xuất chuỗi trong tệp c.wnry

Hình 41: Trích xuất chuỗi trong tệp c.wnry o Kêts quả cho thấy tệp này chứa 5 địa chỉ tor là: o gx7ekbenv2riucmf.onion o 57g7spgrzlojinas.onion o xxlvbrloxvriy2c5.onion o 76jdd2ir2embyv47.onion

Phân tích hai file taskdl.exe và taskse.exe

- Bước 1: Gõ lệnh “ file taskdl.txt ” và file “ taskse.exe ” để kiểu tra kiểu của hai tệp này

Hình 42: Kiểm tra kiểu của 2 tệp taskdl.exe và taskse.exe o Kết quả cho thấy cả hai tệp đều có kiểu là PE được viết cho Windows

- Bước 2: Sử dụng câu lệnh “ strings (tên file) | grep - i “dll” “ để trích xuất các thư viện dll được sử dụng bởi hai file

Hình 43: Kiểm tra chuỗi liên quan đến dll của taskdl.exe và taskse.exe

- Bước 3: Sử dụng lệnh “ strings (tên file) | grep -i process “ để trích xuất chuỗi liên quan đến tiến trình

Hình 44: Kiểm tra chuỗi liên quan đến process của taskdl.exe và taskse.exe

- Bước 4: Sử dụng lệnh “ strings (tên file) | grep -i crypt “ để trích xuất chuỗi liên quan đến mã hóa

Hình 45: Kiểm tra chuỗi liên quan đến crypt của taskdl.exe và taskse.exe

- Bước 5: Sử dụng lệnh “ strings (tên file) | grep -i reg ” để trích xuất các chuỗi liên quan đến thanh gh

Hình 46: Kiểm tra chuỗi liên quan đến reg của taskdl.exe và taskse.exe

- Bước 6: Sử dụng lệnh “ strings (tên file) | grep -i file ” để trích xuất các chuỗi liên quan đến file

Hình 47: Kiểm tra chuỗi liên quan đến file của taskdl.exe và taskse.exe

Bảng so sánh chuỗi trích xuất

Thư viện dll - Kernel32.dll

Các hàm liên quan đến process

Các hàm liên quan đến mã hóa

Các hàm liên quan đến thanh ghi - Không có - Không có

Các hàm liên quan đến file

- Bước 7: Sử dụng lệnh “ pescan (tên t ệp)” để kiểm tra xáo trộn tệp

Hình 48: Kiểm tra xáo trộn 2 tệp taskdl.exe và taskse.exe o Kết quả cho thấy entropy của cả 2 tệp là khoảng 3.2 và 2.5 mức entropy thông thường, tệp không bị đóng gói

- Bước 8: Sử dụng lệnh “ readpe taskdl.exe -all ” để đọc PE header của file taskdl.exe

Hình 49: Kiểm tra PE Header của tệp taskdl.exe

Hình 50: Kiểm tra PE Header của tệp taskdl.exe

Hình 51: Kiểm tra PE Header của tệp taskdl.exe

Hình 52: Kiểm tra PE Header của tệp taskdl.exe

Hình 53: Kiểm tra PE Header của tệp taskdl.exe

- Bước 9: Gõ lệnh “ readpe taskse.exe – all ” để đọc PE header của tệp taskse.exe

Hình 54: Kiểm tra PE Header của tệp taskse.exe

Hình 55: Kiểm tra PE Header của tệp taskse.exe

Hình 56: Kiểm tra PE Header của tệp taskse.exe

Hình 57: kiểm tra PE Header của tệp taskse.exe

Bảng so sanh PE Header

Time stamp Thứ 3, ngày 14/7/2009 Thứ 2, ngày 13/7/2009

Tổng thư viện dll mã mẫu nhập

Các thư viện dll mà mẫu xuất

- Bước 10: Sử dụng lênh “md5sum (tên file)” để trích xuất hàm băm sử dụng thuật toán md5 cho tệp

Hình 58: Trích xuất hàm băm cho tệp taskdl.exe và taskse.exe o Hàm băm tương ứng với tệp taskdl.exe là:

4fef5e34143e646dbf9907c4374276f5 o Hàm băm tương ứng với tệp taskse.exe là:

Phân loại mã độc sử dụng Fuzzy hashing

- Bước 1: Sử dụng câu lệnh “ ssdeep -r /Ransomeware > output.txt ” để tiến hành tạo fuzzy cho các tệp tin nằm trong thư mục Ransomeware và ghi nó ra tệp output.txt nhằm phục vụ cho việc phân loại

Hình 59: Tạo fuzzy hasing cho các mã độc trong thư mục Ransomware

- Bước 2: Sử dụng lệnh “ ssdeep -m output.txt Jhin.png ” để phân loại cho mẫu Jhin.png

Hình 60: Phân loại cho tệp Jhin.png với cơ sở dữ liệu đã được tạo trước đó o Kết quả cho thấy mẫu là mã độc WannaCry và thuộc họ Ransomware Tỉ lệ khớp lên đến 91%

- Bước 3: Sử dụng lệnh “ ssh ubuntu@192.168.0.20 ” để kết nối đến một container khác

Hình 61: Sử dụng ssh để kết nối đến container của server

Kết thúc bài lab

- Bước 4: Nhập mật khẩu chính là mã băm đã được trích xuất từ một trong 2 file taskdl.exe và taskse.exe trước đó Sau đó gõ lệnh “ cat filetoview ” để đọc nọi dung trong tệp tin filetoview

Hình 62: Sử dụng lệnh cat để đọc nội dung trong tệp tin filetoview

4 Kiểm tra và kết thúc bài lab

- Gõ lệnh “ stoplab ” để kết thúc bài lab

Ngày đăng: 16/11/2024, 15:05

HÌNH ẢNH LIÊN QUAN

Hình 10: Trích xuất các chuỗi liên quan đến  reg trong Jhin.png - Môn học phân tích mã Độc báo cáo bài thực hành ptit ranalystic
Hình 10 Trích xuất các chuỗi liên quan đến reg trong Jhin.png (Trang 16)
Hình 19: Kiểm tra PE Header tệp Jhin.png - Môn học phân tích mã Độc báo cáo bài thực hành ptit ranalystic
Hình 19 Kiểm tra PE Header tệp Jhin.png (Trang 21)
Hình 24: Kiểm tra kiểu của các tệp vừa được trích xuất - Môn học phân tích mã Độc báo cáo bài thực hành ptit ranalystic
Hình 24 Kiểm tra kiểu của các tệp vừa được trích xuất (Trang 24)
Hình 28: Giao diện của ida64 sau khi khởi động - Môn học phân tích mã Độc báo cáo bài thực hành ptit ranalystic
Hình 28 Giao diện của ida64 sau khi khởi động (Trang 26)
Hình 30: IDA- View của hàm WinMain - Môn học phân tích mã Độc báo cáo bài thực hành ptit ranalystic
Hình 30 IDA- View của hàm WinMain (Trang 27)
Hình 31: Ida-view của hàm WinMain - Môn học phân tích mã Độc báo cáo bài thực hành ptit ranalystic
Hình 31 Ida-view của hàm WinMain (Trang 27)
Hình 36: Text-view chứa hàm OpenMutextA - Môn học phân tích mã Độc báo cáo bài thực hành ptit ranalystic
Hình 36 Text-view chứa hàm OpenMutextA (Trang 30)
Hình 38: IDA-view tại hàm sub_401EFF - Môn học phân tích mã Độc báo cáo bài thực hành ptit ranalystic
Hình 38 IDA-view tại hàm sub_401EFF (Trang 30)
Hình 40: Truy cập đến đường dẫn nơi chứa các file giải nén của 2058.bin - Môn học phân tích mã Độc báo cáo bài thực hành ptit ranalystic
Hình 40 Truy cập đến đường dẫn nơi chứa các file giải nén của 2058.bin (Trang 32)
Hình 50: Kiểm tra PE Header của tệp taskdl.exe - Môn học phân tích mã Độc báo cáo bài thực hành ptit ranalystic
Hình 50 Kiểm tra PE Header của tệp taskdl.exe (Trang 37)
Hình 51: Kiểm tra PE Header của tệp taskdl.exe - Môn học phân tích mã Độc báo cáo bài thực hành ptit ranalystic
Hình 51 Kiểm tra PE Header của tệp taskdl.exe (Trang 38)
Hình 59: Tạo fuzzy hasing cho các mã độc trong thư mục Ransomware - Môn học phân tích mã Độc báo cáo bài thực hành ptit ranalystic
Hình 59 Tạo fuzzy hasing cho các mã độc trong thư mục Ransomware (Trang 42)

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w