PHÂN TÍCH MÃ ĐỘC 1. Phân tích động Mô hình phù hợp để phân tích mã độc. Cài 2 máy tính ảo kali + xp chỉ 2 máy tính kết nối với nhau Máy ảo kali chạy phần mềm giả lập internet inetsim Phương pháp phân tích tĩnh Khác với phương pháp phân tích hoạt động, phương pháp phân tích tĩnh cho phép Phân tích để xác định ngôn ngữ lập trình mã độc Xác định chương trình nén hay cơ chế bảo vệ tránh dịch ngược. Thực hiện giải nén đưa về định dạng phù hợp Dùng các công cụ gỡ lỗi, debug mã độc khi không thể dịch ngược hoặc việc dịch ngược thiếu hiệu quả Mã độc hại thường có các kỹ thuật chống dịch ngược, có các kỹ thuật chống debug (antidebug) và người phân tích cần phải vượt qua việc này để phân tích (antidebug)
Trang 1PHÂN TÍCH MÃ ĐỘC
1 Phân tích động
- Mô hình phù hợp để phân tích mã độc.
Cài 2 máy tính ảo kali + xp chỉ 2 máy tính kết nối với nhau
Máy ảo kali chạy phần mềm giả lập internet inetsim
( Đi thi giữa kì, viết báo cáo ptmd, 6 công cụ để phân tích động, đề thi hỏi phần nào thì dùng công cụ đó)
- Công cụ theo dõi tiến trình bằng prosess Monitor
- Công cụ quan sát các tiến trình bằng prosess Exproer
- Công cụ Regshot quan sát sự thay đổi registry
- Công cụ Wireshark quan sát các thông tin kết nối mạng
- Công cụ ApateDNS quan sát các yêu cầu DNS
- Công cụ Netcat quan sát các kết nối mạng
Các bước phân tích như sau:
Bước 1: Thực thi chương trình Process Mornitor, Thiết lập bộ lọc với tên mã độc
định thực thi
Bước 2: Thực thi chương trình Process Explorer
Bước 3: Thực thi chương trình Regshot và thu thập snapshot đầu tiên của chương
trình
Bước 4: Xem xét lại toàn bộ các thông tin về kết nối mạng giữa 2 máy sử dụng
InetSim và ApateDNS
Bước 5: Thực thi Wireshark để ghi lại toàn bộ thông tin phân tích mạng.
Sau khi hoàn thành toàn bộ các bước trên mới thực hiện công việc kích hoạt mã độc vào sau một khoảng thời gian sẽ ngừng lại các chương trình phân tích, từ đó phân tích các thông tin thu được
Trang 22 Phương pháp phân tích tĩnh
Khác với phương pháp phân tích hoạt động, phương pháp phân tích tĩnh cho phép
- Phân tích để xác định ngôn ngữ lập trình mã độc
- Xác định chương trình nén hay cơ chế bảo vệ tránh dịch ngược
- Thực hiện giải nén đưa về định dạng phù hợp
- Dùng các công cụ gỡ lỗi, debug mã độc khi không thể dịch ngược hoặc việc dịch ngược thiếu hiệu quả
- Mã độc hại thường có các kỹ thuật chống dịch ngược, có các kỹ thuật chống debug (anti-debug) và người phân tích cần phải vượt qua việc này để phân tích (anti-debug)
- Công cụ phân tích:
+ Công cụ Peid xác định tệp tin phân tích có bị nén không (dã coppy trong tool)
+ Công cụ Dependency Walker xác định các tệp tin dll
+ Công cụ PEView, xem thông tin trong các trường trong định dạng PeFile
+ Công cụ HexEditor xem thông tin tệp tin dưới dạng hex
+ Công cụ IDA pro phần mềm xem mã Assembly của tệp tin
+ Công cụ OllyDebug phần mềm hỗ trợ debug cho tệp tin
+ Các công cụ hỗ trợ Unpack
+ Ngoài ra còn nhiều phần mềm hỗ trợ phân tích khác
Bước 1: Sử dụng công cụ Peid xác định tệp tin phân tích có bị nén không?
Bước 2: Nếu bị nén file có thể giải nén fike thủ công hoặc công cụ giải nén hỗ trợ
Ví dụ nếu mẫu bị nén bằng UPX, có thể giải nén file thủ công sử dụng
Trang 3Khi đi thi điền vào báo cáo
I.Virustotal
1 Điền 2 giá trị mã băm hash trên Virustotal -> Details
MD5 bb7425b82141a1c0f7d60e5106676bb1
1 trong 2 (SHA-1/SHA-256) SHA-1 9dce39ac1bd36d877fdb0025ee88fdaff0627cdb
2 File tyle:…… Dùng công cụ TRID kiểm tra kiêu file Win64 EXE
3 Information of File:
A, File được tạo ra bởi ngôn ngữ lập trình nào? Microsoft Visual C++ 6.0
Dùng công cụ PEID
B, Kích thước của File ?(ghi chính xác bytes) 16,384 bytes
C, Ngày tạo ra file (property -> Detals) 2:19 AM ngày 1/8/2012
D, Người tạo ra(nếu có) (property -> Detals)
4 Last Ana (lần phân tích cuối cùng)
A, Số phần mềm phát hiện ra mã độc? (Virustotal) 48/69
B, Đặt tên đa phần mà gì? (trojan,…) Trojan
C, Xem ngày cuối phân tích (Virustotal -> Detail ->History 2020-10-03 20:50:59
D, Liệt kê một số tên để điền vào loveletter.exe
ex1.exe
5 String Để tìm thú vị
II Công cụ Peview
Time Date Stamp: 19/12/2010 sun 16:16:19UTC
III Công cụ PEID
Trang 4Nếu có pack dùng PEID kiểm tra xem có nén không?
Có nén thì giải nén, mới đưa vào công cụ để kiểm tra Nếu bị nén file có thể giải nén file thủ công hoặc công cụ giải nén hỗ trợ
Link nghiên cứu cách giải nén:
https://whitehat.vn/threads/upx-pack-va-unpack.4696/
A, Entrypoint 00001820
B, Ngôn ngữ tạo Microsoft Visual C++ 6.0
IV DepenDne Kiểm tra xem công cụ của mình gọi đến những công cụ nào? (Giải thích ý nghĩa)
Sơ đồ này có ý nghĩa gì? (ví dụ KERNEL32 có ý nghĩa gì?)
Trong virustotal -> Details -> Imports
KERNEL32.dll
Tệp Kernel32.dll xử lý việc sử dụng bộ nhớ trong "Microsoft Windows" Đây là một trong những tệp chính cần thiết để "Windows" hoạt động bình thường Khi bạn khởi động PC - kernel32.dll được tải vào một không gian được bảo vệ trong bộ nhớ
và ở đó sau khi nó định vị các ứng dụng khác muốn được tải vào bộ nhớ Không có
Trang 5gì hoạt động trong “Windows” nếu tệp kernel32.dll bị hỏng, bị di chuyển hoặc bị xóa
MSVCRT.dll
Tệp msvcrt.dll là một phần của "Microsoft Visual Studio 6.0" và rất quan trọng để hầu hết các ứng dụng hoạt động bình thường Nó cũng chứa mã chương trình cho phép các ứng dụng được viết bằng "Microsoft Visual C ++" chạy đúng cách Mã chương trình về cơ bản là các công cụ so sánh chuỗi và các phép toán toán học như các phép toán lượng giác Đây là một tập tin rất có giá trị đối với các lập trình viên
V Phân tích động: (có thi giữa phần) (Thực hiện trên máy ảo)
Các bước:
B1: Mở Procmon.exe
Mở Filter (lọc)
Lọc theo tên của tên của tiến trình -> is ->
Pei đại diện cho tiến trình
B2: Mở Procexp exe
Trình bày theo mô hình cây
Chạy trên tiến trình nào?
B3: Thực thi chương trình Regshot và chụp ảnh và sau đó chạy xong thì chụp ảnh lại
Có bao nhiêu thay đổi?, bao nhiêu Key mời?
Còn lại có yêu cầu gì thì dùng CFF Explorer làm.