Xác định hệ thống bị tấn

công bằng các lệnh

Windows

Quản trị mạng – Các máy

tính Windows là những

máy tính bị tấn công nhiều

nhất. Chính vì vậy mà

Microsoft đã xây dựng rất

nhiều công cụ trong hệ điều hành Windows để các quản

trị viên và một số người dùng có thể phân tích nhằm xác

định xem máy tính của họ hiện có bị thỏa hiệp hay không.

Trong hướng dẫn gồm hai phần này, phần đầu tiên chúng

tôi sẽ giới thiệu cho các bạn về 5 công cụ dòng lệnh hữu

dụng trong Windows để thực hiện một hành động phân

tích đó.

1. WMIC

Windows Management Instrumentation Command-line

(WMIC) không chỉ đơn thuần là một lệnh mà có rất nhiều tính

năng khác. Công cụ này có một giao diện dòng lệnh cho

Windows Management Instrumentation API bên trong

Windows. WMIC cho phép quản lý người dùng truy cập các

thông tin chi tiết trên máy tính Windows, gồm có các thuộc

tính chi tiết của hàng ngàn các thiết lập và đối tượng. WMIC

được xây dựng bên trong Windows XP Professional,

Windows 2003 và Windows Vista. Để sử dụng nó, người

dùng phải khởi chạy chương trình bằng cách chạy lệnh

WMIC, theo sau là phần mà người dùng quan tâm (thường

được gọi là các alias bên trong hệ thống). Cho ví dụ, để biết

về các quá trình đang chạy trên máy tính, người dùng có thể

chạy lệnh:

C:\> wmic process

Phần đầu ra của lệnh này có vẻ khá khó đọc vì định không

được chỉ định. Tuy nhiên với WMIC, đầu ra mà công cụ này

cung cấp được định dạng hoàn toàn khác, trong đó phần "list

full" sẽ hiển thị các thông tin chi tiết cho mỗi lĩnh vực mà

người dùng quan tâm, còn phần "list brief" sẽ cung cấp một

dòng đầu ra cho mỗi một mục báo cáo dưới sạng danh sách

các mục, chẳng hạn như các quá trình đang chạy, các chương

trình tự động khởi chạy và những chia sẻ hiện hữu.

Cho ví dụ, chúng ta có thể quan sát mọi quá trình đang chạy

trên máy tính bằng cách chạy lệnh:

C:\> wmic process list brief

Lệnh trên sẽ hiển thị tên, ID của quá trình và quyền ưu tiên

của mỗi quá trình đang chạy cũng như các thuộc tính khác. Để

nhận thêm các thông tin chi tiết hơn, chạy lệnh:

C:\> wmic process list full

Lệnh này sẽ hiển thị tất cả các thông tin chi tiết, gồm có

đường dẫn của file thực thi có liên kết với quá trình và lệnh

triệu gọi dòng lệnh của nó. Khi nghiên cứu một máy tính có bị

tiêm nhiễm hay không, quản trị viên cần phải xem xét từng

quá trình để xác định xem các quá trình này có hợp lệ trên

máy tính hay không, sau đó nghiên cứu các quá trình lạ hoặc

không mong đợi bằng cách sử dụng các cỗ máy tìm kiếm.

Ngoài các alias về các quá trình, người dùng có thể thay thế

startup để nhận danh sách các chương trình tự động khởi chạy

trên máy tính, gồm có các chương trình khởi chạy khi hệ

thống khởi động hoặc người dùng đăng nhập, đây là những

chương trình được định nghĩa bởi một auto-start registry

key hoặc thư mục:

C:\> wmic startup list full

Rất nhiều malware có thể tự động chạy trên máy tính bằng

cách thêm một mục auto-start bên cạnh các mục hợp lệ khác

có bên trong các công cụ antivirus hay các chương trình

system tray. Người dùng có thể quan sát các thiết lập khác

trên máy tính với WMIC bằng cách thay thế "startup" bằng

"QFE" (cụm chữ cái viết tắt cho Quick Fix Engineering) để

thấy được mức vá của một hệ thống, bằng "share" để xem

danh sách các file chia sẻ trên Windows hoặc bằng

"useraccount" để thấy được các thiết lập tài khoản chi tiết

của người dùng.

Một tùy chọn khác bên trong WMIC là khả năng chạy một

lệnh để thu thập thông tin trên trên một chu kỳ nào đó bằng

cách sử dụng cú pháp "/every:[N]" sau phần còn lại của lệnh

WMIC. [N] ở đây là một số nguyên, chỉ thị rằng WMIC sẽ

chạy lệnh trên cứ [N] giây một lần. Bằng cách đó, người dùng

có thể tìm kiếm các thay đổi trong các thiết lập của hệ thống

theo thời gian, cho phép khảo sát một cách kỹ lưỡng đầu ra.

Sử dụng chức năng này để kéo toàn bộ các thông tin về quá

trình trong 5 giây một lần, người dùng có thể chạy:

C:\> wmic process list brief /every:1

Nhấn CTRL+C sẽ dừng chu kỳ.

2. Lệnh net

Giới thiệu ở trên, WMIC là một lệnh tương đối mới, tuy nhiên

còn có một số lệnh khác không phải là mới nhưng khá hữu

dụng đó là lệnh "net". Các quản trị viên có thể sử dụng lệnh

này để hiển thị tất cả các thông tin hữu dụng.

Cho ví dụ, lệnh "net user" sẽ hiển thị tất cả các tài khoản

người dùng được định nghĩa nội bộ trên máy tính. Lệnh "net

localgroup" sẽ hiển thị các nhóm, lệnh "net localgroup

administrators" sẽ hiển thị thành viên của nhóm quản trị viên

và lệnh "net start" hiển thị các dịch vụ đang chạy.

Các hacker thường đưa người dùng vào một hệ thống hoặc đặt

các tài khoản của họ vào một nhóm quản trị viên, vì vậy

chúng ta luôn phải kiểm tra đầu ra của các lệnh này để xem

liệu hacker đã sửa đổi các tài khoản trên máy tính hay chưa.

Thêm vào đó, một số hacker có thể tạo các dịch vụ xấu trên

máy tính, vì vậy người dùng nên cần thận với chúng.

3. Openfiles

Nhiều quản trị viên Windows không quen với việc sử dụng

các lệnh openfiles mạnh có trong Windows. Mặc dù vậy, như

tên ngụ ý của nó, lệnh này sẽ hiển thị tất cả các file được mở

trong máy tính, chỉ thị tên quá trình đang tương tác với mỗi

file. Nó được xây dựng trong các phiên bản Windows đời

mới, từ XP Pro đến Vista. Giống như lệnh lsof phổ biến cho

Linux và Unix, nó cũng thể hiện cho các quản trị viên tất cả

các file đang mở trên máy tính, cung cấp tên quá tình và

đường dẫn hoàn chỉnh cho mỗi file. Tuy nhiên không giống

như lsof, nó không cung cấp nhiều thông tin chi tiết, chẳng

hạn như số ID của quá trình, số người dùng hoặc các thông tin

khác.

Xem xét phân vùng thông tin mà nó thu thập được, bạn sẽ

không hề ngạc nhiên rằng lệnh openfiles thực sự tiêu hao rất

nhiều hiệu suất. Chính vì vậy, thông thường các quá trình có

liên quan đến openfiles bị tắt mặc định, nghĩa là người dùng

không thể kéo bất cứ dữ liệu nào từ lệnh này cho tới khi bật

nó. Chức năng này có thể được kích hoạt bằng cách chạy

lệnh:

C:\> openfiles /local on

Người dùng sẽ cần phải khởi động lại và khi hệ thống hoạt

động trở lại, họ sẽ có thể chạy lệnh openfiles như dưới đây:

C:\> openfiles /query /v

Lệnh này sẽ hiển thị đầu ra một cách chi tiết, gồm có tài

khoản người dùng mà quá trình cho một file mở đang chạy

bên trong. Từ đó có thể nhận biết được malware gì đã được

cài đặt, hoặc tấn công gì có thể đang được thực hiện trên máy

tính, người dùng nên tìm kiếm các file dị thường hoặc các file

không mong đợi, đặc biệt các file có liên quan đến những

người dùng nội bộ không mong đợi trên máy tính.

Khi kết thúc với lệnh openfiles, chức năng tính toán của nó có

thể được tắt bỏ và hệ thống sẽ trở lại với tình trạng hiệu suất

bình thường bằng cách chạy lệnh dưới đây và khởi động lại

máy tính:

C:\> openfiles /local off