Virus scheduled Tasks
Author: Benina
Bài viết này chỉ làm rõ ý tưởng lây lan của virus qua chức năng “Scheduled Tasks” của Windows. Scheduled Tasks là chức năng lập lịch trình để thực hiện một tác vụ (task) nào đó cho Windows. Lợi dụng chức năng này, virus sẽ cài đặt một tác vụ nguy hại, khi đến thời điểm nào đó, Windows sẽ thực hiện tác vụ do virus tạo ra một cách tự động.
Ý tưởng ở đây là virus sẽ tạo ra một tác vụ, cứ đến giờ hẹn là sẽ copy file virus vào thư mục Startup để khi Windows khởi động lần sau sẽ tự động chạy file virus. Muốn vậy, đầu tiên virus sẽ tạo ra một file hình ảnh .jpg là bản sao của virus vào thư mục %systemdir% (/WINDOWS/System32), mục đích để che giấu ngụy trang nó thành 1 file ảnh. Sau đó virus tạo ra một file .bat và cho thực thi file này. File .bat sẽ bật service Task Scheduler lên và Start service đó, sau đó cài đặt 1 tác vụ (task). Tác vụ này đúng giờ hẹn mỗi ngày sẽ copy file hình ảnh .jpg đã tạo trước vào thư mục Startup để khi Windows khởi động lần sau thì nó tự động thực thi cùng Windows và khi copy nó đổi đuôi .jpg thành .exe.
Nói thêm một chút, Scheduled Tasks là một dịch vụ (service) được Windows cung cấp. Muốn dịch vụ này hiện hành, thì đầu tiên ta bật nó lên cho chạy tự động (auto), cho nó khởi động (start), và cài đặt cho dịch vụ 1 tác vụ (task). Muốn tìm hiểu cơ bản các vấn đề này, ta phải khảo sát từng bước từng bước một như sau.
1.Quản lý user và password trên máy:
Ta phải tìm hiểu về cách quản lý user login vào Windows trước tiên.
_Vào Control panel\ Administrative Tools \ Computer Management
_Trong panel bên trái chọn:
System Tools \ Local Users and Groups \ User
_Trong panel bên trái click phải vào user cần cài đặt password và chọn Set Password
2.Bật tắt một Services của Windows:
Để bật Service Task Scheduled ta làm như sau:
_Vào Control panel\ Administrative Tools \ Services
_Trong panel bên phải chọn Task Scheduler
_Click phải vào Task Scheduler, chọn Properties, trong StartupType chọn Automatic. Nhấn Apply xác nhận
_Click phải vào Task Scheduler, chọn Start khởi động dịch vụ
3.Scheduler Tasks:
Cài đặt 1 tác vụ cho Task Scheduler.
_Vào Start\Programs\Accessories\System Tools\Scheduled Tasks
_Click vào Add Scheduled Task\ Chọn Next; chọn nút Browse, chọn chương trình cần chạy định kỳ. Chọn Daily. Bấm tiếp Next
_Chọn Start time, Every Day, chọn Start date (nếu muốn chạy liền sau vài phút để test thì chọn lùi lại 1 ngày tại mục này)
_Tại mục này nên đánh vào password của user hiện hành mà ta setup lúc đầu thì task này mới chạy. User và pass này là lúc bạn login vào Windows.
_Sau đó bấm nút Finish
Chú ý: nếu có hộp thông báo lỗi thì task này ko chạy có thể bạn chưa set pass cho user hay chưa bật service Task Scheduer hoặc các bước trên bạn điền sai gì đó nhất là pass ko trùng với pass user hiện hành. Nếu muốn thử task này chạy ko ta click phải vào Task vừa tạo và chọn Run. Nếu Run được thì OK
4.Sử dụng các lệnh Dos cho việc cài đặt 1 task:
Để sử dụng lệnh Dos ta vào Start\Run\ , gỏ vào cmd. Chi tiết các lệnh này các bạn có thể tham khảo các tài liệu khác. Tôi chỉ đưa ra các command sử dụng cho mục đích bài viết. Các bạn có thể tìm cách sử dụng các lệnh sau trong các tài liệu khác: net, sc, at, schtask, cmd, copy,…..
a/-Kiểm tra Service “Task Scheduler”
Trong cửa sổ cmd ta gỏi vào dòng lệnh sau để xem service cần xem có chạy ko::
net start
Nó sẽ liệt kê các services đang chạy
Nếu services “Task Scheduler” có trong list thì service này đang chạy.
Giả sử máy bạn, service này ko chạy. Ta làm tiếp như sau
b/-Xem tên của Service đăng ký với Windows:
Service “Task Scheduler” ko phải là tên mà service này đăng ký với Windows mà tên của nó đăng ký với Windows là Schedule. Xem hình dưới đây mục Service name
Ta phải biết tên service này để sử dụng sau này. Trong cmd ta dùng lệnh này:
sc GetKeyName “Task Scheduler”
Vậy tên đăng ký của “Task Scheduler” là Schedule
c/-Xem trạng thái của service
Sau khi có tên service ta xem trạng thái của service bằng lệnh sau:
sc query Schedule
Ta thấy trên hình
d/-Bật service :
Ta dùng lệnh sau:
sc config "Schedule" start= auto
e/-Start service:
Sau khi ta cho service trạng thái là auto. Lúc này service được bật lên nhưng nó chưa chạy. Chúng ta phải start nó bằng lệnh sau:
sc start Schedule
f/-Lập lịch trình (schedule) cho một tác vụ (task)
Sọan thảo file schedule.bat có nội dung sau:
sc config "Schedule" start= auto
sc start Schedule
at 21:08 /every:m,t,w,th,f,s,su cmd /c copy "%systemdrive%\%systemdir%\virus.jpg" "%systemdrive%\Documents and Settings\%username%\Start Menu\Programs\Startup\virus.exe"
Trong đó file ví dụ để copy là virus.jpg (là file hình ảnh bảo sao của virus), file này được copy và đổi đuôi thành exe vào thư mục Startup để cho chạy mỗi khi Windows khởi động.
Trong file bat các biến môi trường hệ thống của Windows, chúng đã lưu sẳn trong HĐH:
%systemdrive%=C: (Là ổ đĩa chứa HĐH)
%systemdir%=\WINDOWS\SYSTEM32 (Là thư mục chứa các file hệ thống)
%username%= (Là tên user name mà bạn login vào Windows)
%windir%=\WINDOWS (Là thư mục chứa Windows)
Chú ý: sau khi thực hiện, file bat sẽ tự kill chính nó luôn để xóa vết tích.
5. Reversing Info:
_Sau khi chạy file bat trên thì trong thư mục C:\WINDOWS\Tasks sẽ chứa các file tác vụ do Windows tạo ra. File này ko có thể copy,xem và di chuyển. Nhưng cho xóa. Vì vậy muốn xem file này, ta ko còn dùng fần mềm đặc chủng nào. Đầu tiên ta xóa nó. Rồi vào thùng rác Recyble Bin mà CUT nó ra một nơi nào đó để xem. Nếu ko CUT được thì dùng WordPad vào menu File\Open file trong thùng rác mà xem.
_Thông tin Service Schedule chứa trong registry sau:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Schedule
Một options khác của Task Scheduler được chứa trong khóa registry sau:
HKLM\SOFTWARE\Microsoft\SchedulingAgent\
6.Lời kết :
Phần code virus tôi ko public ra đây vì vấn đề tế nhị. Đồng thời tôi chỉ muốn mô tả chức năng task scheduler của Windows mà thôi. Nếu các bạn lập trình tốt, thì tòan bộ các chức năng của file bat cũng có thể lập trình bằng các hàm API, như bật service, start service, cài đặt task scheduler. Tôi đã coding thử nghiệm thành công. Chúc các bạn vui vẽ.
Benina (2009)