![]() |
Source: https://www.2-spyware.com/remove-autoit-v3-script-virus.html |
1. Sơ lược về AutoIT
AutoIt là một ngôn ngữ kịch bản miễn phí được thiết kế nhằm tự
động hóa các nhu cầu cơ bản của người dùng cũng như các tác vụ liên quan tới GUI
Windows. AutoIt thường rất nhỏ và có khả năng thực thi trên tất cả các hệ điều
hành Windows mà không đòi hỏi các thư viện “runtimes” như các chương trình được
lập trình bằng Visual C++, ...Ngôn ngữ này được sử dụng cho các mục đích như:
- Mô phỏng lại các tổ hợp phím, thao tác di chuyển chuột và các thao tác điều khiển cửa sổ.
- Nhận thông tin và tương tác với các thành phần điều khiển như edit boxes, check boxes, list boxes, button, status bar.
- Tương tác với các tiến trình.
- Gọi trực tiếp tới các DLL và các hàm Windows API.
- Các script có thể được biên dịch thành các tập tin thực thi độc lập.
- ...
Nhờ vào những tính năng tiện lợi ở trên mà việc sử dụng
AutoIT để viết phần mềm độc hại không phải là mới. Nó có thể được sử dụng làm
keylogger, downloader, hoặc giai đoạn thăm dò trong quá trình lây nhiễm máy
tính của nạn nhân. Tại Việt Nam, mã độc dạng này đã xuất hiện từ những năm 2006,
điển hình trong đó là mã độc XRobots.
2. Công cụ sử dụng
Danh sách các công cụ được sử dụng trong bài viết:
- Exeinfo PE/ PEStudio
- Hex Editor (HxD)
- Resource Hacker
- Aut2Exe v3 Converter
- Exe2Aut Decompiler
- autoit64to32.py & AutoItSC.bin(autoit-v3.2.8.1)
3. Cách nhận biết AutoIT
Khi phân tích một tập tin nghi ngờ là mã độc, thường người
phân tích sẽ sử dụng các công cụ để kiểm tra xem tập tin đó có định dạng gì, được
biên dịch bằng ngôn ngữ nào, có bị packed hay không, …Với AutoIt sẽ có các dấu
hiệu nhận biết như sau.
- Thông qua các công cụ như Exeinfo PE hoặc PEStudio:
- Thông qua Magic number: A3484BBE986C4AA9994C530A86D6487D
Khi biên dịch một AutoIt script với công cụ Aut2Exe, theo mặc định, một tệp thực
thi pack bằng UPX được tạo ra. Mở bằng một trình Hex editor và tìm kiếm chuỗi magic
number nói trên, theo sau sẽ là dấu hiệu nhận dạng của AutoIt thông qua chuỗi AU3!EA06.
4. Phương pháp trích xuất
script
Các phương pháp trình bày dưới đây được tham khảo từ các
chuyên gia @VK_Intel; @0xffff0800; @Hexacorn
- Phương pháp thứ nhất: “Drag & Drop”
Sở dĩ gọi phương pháp này là “drag & drop” là vì nó rất
đơn giản, chỉ việc kéo thả một AutoIt exe-file vào trình Exe2Aut để nhận được script gốc. Exe2Aut sẽ tự động lưu script tại cùng thư mục với phần mở rộng là
<filename>_.au3:
Tuy nhiên, không phải trường hợp nào Exe2Aut cũng hoạt động, ví dụ như trường hợp này:
- Phương pháp thứ hai
Để khắc phục cho trường hợp không trích xuất được bằng
phương pháp đầu, phương pháp này sử dụng Resource
Hacker để trích xuất script resource, lưu lại với tên bất kì với phần mở rộng
là .au3. Tiếp theo, chuyển đổi file đã lưu sang định dạng PE bằng công cụ Aut2Exe. Lưu ý bỏ tùy chọn "Compile for system x64" trong quá
trình thực hiện vì Exe2Aut không hỗ
trợ x64 executables.
- Phương pháp thứ 3
Sử dụng Python script (được convert từ autoit64to32.pl(Perl script) của @Hexacorn) để trích
xuất AutoIT script blob từ file thực thi và chuyển đổi sang định dạng 32 bit
tương ứng bằng cách sử dùng AutoItSC.bin
(32 bit) đi kèm trong bộ autoit-v3.2.8.1.
File sau chuyển đổi sẽ thông qua Exe2Aut
để lấy ra nội dung của script:
Nội dung của autoit64to32.py
như sau:
import sys if len(sys.argv) != 3: print "Usage: python.exe autoit64to32.py <AutoItSC.bin> <sample>" sys.exit(1) else: try: print 'Processing: ' + sys.argv[2] print '- Reading ' + sys.argv[1] autoitsc_content = open(sys.argv[1], 'rb').read() print '- Reading ' + sys.argv[2] sample_content = open(sys.argv[2], 'rb').read() print '- Looking for the script' offset = sample_content.find(b'\xA3\x48\x4B\xBE\x98\x6C\x4A\xA9\x99\x4C\x53\x0A\x86\xD6\x48\x7D') if offset != -1: print '- Script found at: 0x%x' % offset sample_content = sample_content[offset:] pe32_filename = sys.argv[2] + '.a32b.exe' print '- Creating 32-bit version: ' + pe32_filename open(pe32_filename, 'wb').write(autoitsc_content + sample_content) else: print '- Script not found !' except Exception as e: print repr(e)
Dưới đây là phần demo minh họa cho phương pháp này:
R&D Center - VinCSS (a member of Vingroup)
Bài viết đạt đến trình cảnh giới cả về bố cục và lời văn. Chỉ tiếc trình người đọc gà quá nên xem code cứ như xem hoạt hình hê hê. Hóng bài kế.
ReplyDeleteMột ngôn ngữ để tưởng niệm :( hazz
ReplyDelete