Như chúng tôi đã trình bày ở Chương 5, một thủ thuật thông dụng của những kẻ tấn công là gắn kết những chương trình tự chạy tinh vi vào những vị trí mà chúng sẽ tự động khởi chạy vào giờ đã đặt trước. Những vị trí này vẫn còn tồn tại trong Windows 2000 và chúng sẽ được kiểm tra tìm kiếm các lệnh lạ trong những hệ thống bị tấn công.
Một lần nữa, những giá trị Registry khởi động phù hợp được định vị tại HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion:
▼…\Run ■…\RunOnce ▲…\RunOnceEx
Một điểm khác biệt nhỏ trong Windows 2000 là vị trí của thư mục Startup của đổi tượng sử dụng. Tại Windows 2000 thư mục Startup được cất trong một thư mục khác là Documents and Settíng dưới gốc
(%systemdrive%\Documents and Settings\%user%\Start Menu\Programs\Startup). ☻Lập Bẫy Đường Dẫn Chạy Tính phổ biến 7 Tính đơn giản 7 Chịu ảnh hưởng 10 Mức độ rủi ro 8
Đôi khi những cổng thoát mà ta biết lại là rất khó để nhận ra. Lưu ý tới vị trí đơn giản của một tiện ích của Trojan Windows có tên explorer.exe tại gốc của đường dẫn %systmedrive% trong hệ thống mục tiêu. (Bất kỳ đối tượng sử dụng nào cũng có thể viết được chương trình này nhờ chế độ mặc định.) Khi một đối tượng sử dụng ngay sau đó truy xuất tương tác, chương trình tự chạy này sẽ trở thành một tiện ích mặc định cho đối tượng sử dụng đó. Vì sao điều này xảy ra?
Như đã giới thiệu trong phần Bộ Phát Triển Phần Mềm Microsoft (SDK), khi file chạy và các file thuộc dạng DLL không được đặt trước bới một đường dẫn trong mục Registry, Windows NT 4.0 / 2000 sẽ tìm kiếm file trong thứ tự các vị trí sau: 1. Thư mục tại đó phần mềm ứng dụng được cài đặt 2. Thư mục hiện hành trong quá trình xử lý mẹ 3. Thư mục hệ thống 32 bit (%windir%\System32) 4. Thư mục hệ thống 16 bit (%windir%/System) 5. Thư mục Windows (%windir%)
6. Các thư mục được xác nhận trong biến số môt trường PATH. Tình trạng này đã được chứng minh nhờ trình mặc định NT / 2000 được
nhận dạng nhờ khóa Registry
HKLM\SOFTWARE\Mcrosoft\WindowsNT\CurrentVersion\Winlogon\Shell. Giá trị mặc định cho khoá này là “explorer.exe”; không có đường dẫn file nào được chỉ ra. Vì vậy, nếu bất kỳ ai sao chép một trình đã chỉnh sửa có tên “explorer.exe” đến gốc của %SystemDrive% (ví dụ: C:\) vào thời gian đã cho trước, giá trị của explore.exe tại WinLogon\Shell\explore.exe sẽ được đọc ra. Hệ thống tệp tin sẽ được phân tách ngay tại gốc (vì thư mục hiện hành trong khi hệ thống khởi động là %systemdrive%), bắt gặp file chạy explorer.exe hiệu chỉnh của chúng ta. Quá trình này sẽ trở thành một trình cho phiên đăng nhập riêng biệt này.
Theo những gì Alberto Aragones đã viết tại trang http://www.quimeras.com/secadv/ntpath.htm, điều này sẽ rất dễ dàng chứng minh được bằng cách sao chép một trình lệnh NT / 2000 (cmd.exe) sang phần gốc hệ thống, sau đó thoát ra khỏi hệ thống, và lại nhập vào hệ thống. Trình Windows chuẩn được che phủ bằng một trình lệnh.
Chúng ta sẽ xem trong Chương 14, các công cụ như eLiTeWrap sẽ làm cho việc gói các đa chương trình trở nên dễ dàng hơn. Những đa chương trình này cũng có thể được chạy ngầm định và không đồng bộ nếu muốn. Bất kỳ ai cũng có thể dễ dàng liên kết một back door (như Back Oifice 2000) với một bản sao của explorer.exe, rồi đặt nó vào gốc hệ thống, và chương trình này sẽ được khởi chạy ngầm tại thời điểm có đăng nhập tương tác xảy ra. Trình Explorer dường như vẫn chạy bình thường, vì vậy không ai có thể khôn ngoan hơn thế được.
Cũng tại trang http://www.quimeras.com/secadv/ntpath.htm, Alberto cũng đưa ra một cách thức thuận tiện để thực hiện tiểu xảo này từ xa. Cơ sở để thực hiện tiểu xảo này là dựa vào máy chủ có sử dụng chương trình kết nối NT / 2000 chạy trên máy chủ mục tiêu. Đầu tiên, kết nối với máy mục tiêu, sau đó tải lên file chạy explorer.exe cổng thoát (với dòng lệnh FTP). Sau đó, từ dòng lệnh telnet, đổi thành %windir%, chạy explorer.exe thật, và kết thúc phiên telnet. Explorer.exe giả sẽ chạy trên bất kỳ phiên truy cập tương tác nào.
Kỹ thuật này cũng có thể áp dụng được đối với DLL. Với các file chạy của Windows nhập thư viện động, thông tin trong file chạy dùng để định vị tên của các DLL cần thiết. Hệ thống sẽ dò tìm các DLL theo đúng trong trình tự tương tự như trên. Trục trặc tương tự cũng xảy ra.