Phân tích mã độc - BackDoor
Trong bài viết này mình sẽ giới thiệu khái quát về backdoor cũng như phân tích một mẫu backdoor để giúp các bạn hiểu và có cái nhìn trực quan hơn về loại mã độc này.
Giới thiệu về backdoor
Loại mã độc này sau khi được cài đặt vào máy sẽ tự động mở ra một cổng dịch vụ cho phép kẻ tấn công (hacker) có thể kết nối từ xa tới máy bị nhiễm, từ đó nó sẽ nhận và thực hiện lệnh mà kẻ tấn công đưa ra.
Cơ chế xâm nhập vào máy victim:
Mẫu backdoor được fake tên gần giống với các tiến trình hệ thống của Window như winIogon.exe, Isass.exe… Kẻ tấn công làm việc này để ẩn giấu mã độc, lừa người chạy mã độc vì nếu người dùng không chú ý kỹ sẽ bị nhầm lẫn với file hệ thống.
Cơ chế hoạt động
Đây là mẫu malware thực hiện khá nhiều hành vi khác nhau, tuy nhiên trong khuôn khổ bài viết, mình chỉ đi phân tích hành vi mở cổng dịch vụ và tải file từ server của mẫu này.
Cơ chế mở cổng dịch vụ và tải file từ server
- Bypass Windows FireWall để có thể mở cổng không bị Window phát hiện
- Lấy thông tin cấu hình máy gửi về server (Thông tin hệ điều hành, Thông tin CPU)
- Mở cổng lắng nghe
- Tải và thực thi file nhận từ server
Chi tiết các hành vi
Bypass Windows FireWall:
Mã độc thực hiện kiểm tra key List có tồn tại không. Nếu có nó thay đổi giá trị của trường C:WINDOWSsystem32Isass.exe thành C:WINDOWSsystem32Isass.exe:*:Enabled:Local Security Authority Service
Hình 2: Bypass Windows FireWall
Lấy thông tin cấu hình của hệ điều hành:
Mã độc dùng các hàm GetUserNameA để lấy tên user, GetComputerNameA để lấy tên của computer, hàm GetVersionExA để lấy thông tin phiên bản của hệ điều hành.
Hình 3: Lấy thông tin cấu hình của hệ điều hành
Lấy cấu hình của vi xử lý:
Do thông tin cấu hình của vi xử lý được Window lưu trữ trong key HKLMHARDWAREDESCRIPTIONSystemCentralProcessor 0. Mã độc truy vấn vào key này để lấy thông tin.
Hình 4: Lấy cấu hình của vi xử lý
Thực hiện các kiểm tra về mạng:
Mã độc sử dụng socket để thực hiện hành vi kết nối đến server
Hình 5: Thực hiện kiểm tra mạng, mở cổng kết nối
Kiểm tra kết nối mạng (lan, modem)
Hình 5.1: Kiểm tra kết nối mạng
Kết nối đến server: (hàm ConnectToServer_www_6bone_net())
Hình 5.2: Kết nối đến server
Mở cổng lắng nghe: (Hàm Connect_server())
Mã độc làm việc này để chuẩn bị gửi lệnh và nhận dữ liệu từ server trả về.
Mã độc thực hiện tính tốc độ mạng: (Hàm TinhTocDoMang())
Tính tốc độ kết nối đến server của một vài nước như Brazin, Đức, Ả rập, Australia
Hàm GetTimeConnectToUrl: sử dụng hàm clock() để tính thời gian sử dụng kết nối:
Hình 5.5: Kỹ thuật để tính tốc độ mạng
Tải file từ server và thực thi file: Việc tải file về được thực hiện bằng cách:
Mã độc sẽ gửi yêu cầu lên server bằng hàm send() . Server nhận được yêu cầu và gửi lại nội dung. Nội dung nhận về sẽ được ghi vào 1 file ở máy nạn nhân. Sau khi xử lý xong, file sẽ bị xóa.
Hình 6.1: Tải file từ server
Thực hiện tải file từ server: (Hàm Revc_())
Hình 6.3: Tải file từ sever
Trên đây là bài phân tích của mình. Bài phân tích còn nhiều thiếu xót, rất mong nhận được sự góp ý của các bạn.
Giới thiệu về backdoor
Loại mã độc này sau khi được cài đặt vào máy sẽ tự động mở ra một cổng dịch vụ cho phép kẻ tấn công (hacker) có thể kết nối từ xa tới máy bị nhiễm, từ đó nó sẽ nhận và thực hiện lệnh mà kẻ tấn công đưa ra.
Cơ chế xâm nhập vào máy victim:
Mẫu backdoor được fake tên gần giống với các tiến trình hệ thống của Window như winIogon.exe, Isass.exe… Kẻ tấn công làm việc này để ẩn giấu mã độc, lừa người chạy mã độc vì nếu người dùng không chú ý kỹ sẽ bị nhầm lẫn với file hệ thống.
Cơ chế hoạt động
Đây là mẫu malware thực hiện khá nhiều hành vi khác nhau, tuy nhiên trong khuôn khổ bài viết, mình chỉ đi phân tích hành vi mở cổng dịch vụ và tải file từ server của mẫu này.
Cơ chế mở cổng dịch vụ và tải file từ server
- Bypass Windows FireWall để có thể mở cổng không bị Window phát hiện
- Lấy thông tin cấu hình máy gửi về server (Thông tin hệ điều hành, Thông tin CPU)
- Mở cổng lắng nghe
- Tải và thực thi file nhận từ server
Chi tiết các hành vi
Bypass Windows FireWall:
Mã độc thực hiện kiểm tra key List có tồn tại không. Nếu có nó thay đổi giá trị của trường C:WINDOWSsystem32Isass.exe thành C:WINDOWSsystem32Isass.exe:*:Enabled:Local Security Authority Service
Hình 2: Bypass Windows FireWall
Lấy thông tin cấu hình của hệ điều hành:
Mã độc dùng các hàm GetUserNameA để lấy tên user, GetComputerNameA để lấy tên của computer, hàm GetVersionExA để lấy thông tin phiên bản của hệ điều hành.
Hình 3: Lấy thông tin cấu hình của hệ điều hành
Lấy cấu hình của vi xử lý:
Do thông tin cấu hình của vi xử lý được Window lưu trữ trong key HKLMHARDWAREDESCRIPTIONSystemCentralProcessor 0. Mã độc truy vấn vào key này để lấy thông tin.
Hình 4: Lấy cấu hình của vi xử lý
Thực hiện các kiểm tra về mạng:
Mã độc sử dụng socket để thực hiện hành vi kết nối đến server
Hình 5: Thực hiện kiểm tra mạng, mở cổng kết nối
Kiểm tra kết nối mạng (lan, modem)
Hình 5.1: Kiểm tra kết nối mạng
Kết nối đến server: (hàm ConnectToServer_www_6bone_net())
Hình 5.2: Kết nối đến server
Mở cổng lắng nghe: (Hàm Connect_server())
Mã độc làm việc này để chuẩn bị gửi lệnh và nhận dữ liệu từ server trả về.
[FONT=&]
[/FONT]
Hình 5.3: Mở cổng lắng nghe
Mã độc thực hiện tính tốc độ mạng: (Hàm TinhTocDoMang())
Tính tốc độ kết nối đến server của một vài nước như Brazin, Đức, Ả rập, Australia
[FONT=&]
[/FONT]
Hình 5.4: Tính tốc độ mạng
Hàm GetTimeConnectToUrl: sử dụng hàm clock() để tính thời gian sử dụng kết nối:
Hình 5.5: Kỹ thuật để tính tốc độ mạng
Tải file từ server và thực thi file: Việc tải file về được thực hiện bằng cách:
Mã độc sẽ gửi yêu cầu lên server bằng hàm send() . Server nhận được yêu cầu và gửi lại nội dung. Nội dung nhận về sẽ được ghi vào 1 file ở máy nạn nhân. Sau khi xử lý xong, file sẽ bị xóa.
Hình 6.1: Tải file từ server
Hình 6.2: Ghi nội dung nhận được vào file, sau đó thực thi file và xóa
Thực hiện tải file từ server: (Hàm Revc_())
Hình 6.3: Tải file từ sever
Trên đây là bài phân tích của mình. Bài phân tích còn nhiều thiếu xót, rất mong nhận được sự góp ý của các bạn.
Chỉnh sửa lần cuối bởi người điều hành: