Tài liệu Quản lý mạng Windows bằng Script - Phần 11: Các thủ thuật kịch bản khác .Trong - Pdf 97

Quản lý mạng Windows bằng Script - Phần 11: Các thủ thuật kịch bản
khác

Trong phần trước của loạt bài này chúng ta đã biết hai thủ thuật cho kịch bản
điều khiển xa. Trong phần trước chúng ta đã xem thêm hai mẹo kịch bản
nữa. Mẹo đầu tiên, thủ thuật kịch bản điều khiển xa từ một độc giả, mẹo thứ
hai, một ví dụ thế giới thực được dùng để thể hiện cách sử dụng the
Windows Management Instrumentation Command-line (WMIC).

Thủ thuật 1: Thủ thuật “runas” nhưng với sự mã hóa

Thủ thuật kịch bản đầu tiên được đệ trình bởi độc giả Steven Beard đến từ
Anh. Steve đưa ra một cách hoàn toàn khác để gọi lệnh “runas” từ bên trong
kịch bản và điều này có thể hữu dụng trong các môi trường hoạt động kinh
doanh như thế nào. Hãy lắng nghe những gì mà Steve đã nói:

Tôi đã sử dụng vb script trong nhiều năm qua để quản trị miền Windows của
tôi nhưng chưa bao giờ hiểu hết về WMI mà chỉ là những gì tôi thực sự cần
thiết. Mặc dù phần cuối cùng của các bạn quan tâm đến hàm runas là rất tốt,
nhưng tôi sử dụng nó theo nhiều cách khác nhau, bạn có thể xem dưới đây:
Set WshShell = CreateObject("Wscript.Shell")
Set WshEnv = WshShell.Environment("PRocess")
WshShell.Run "runas.exe /user:" & "domain\user" & "
" & Chr(34) & "cscript c:\PCQuery.vbs" & Chr(34)
Wscript.Sleep 800
WshShell.AppActivate WshEnv("SystemRoot") &
"\system32\runas.exe"
Wscript.Sleep 200
WshShell.SendKeys "PASSWORD" & "~"
Wscript.Sleep 500
Set WshShell = Nothing

anh ta có được đủ quyền điều khiển trên máy trạm. Quản trị viên nhận ra
điều này có thể là một vấn đề nghiêm trọng khi (a) nó can thiệp vào chính
sách bảo mật của công ty và (b) cho phép người dùng đăng nhập vào các
máy trạm của họ như các quản trị viên, nghĩa là họ có thể xử lý đơn giản trên
máy trạm của họ khi quản trị cục bộ có thể thực hiện gần như bất cứ cái gì
trên các máy của họ, tuy nhiên điều này có thể dẫn đến chi phí hỗ trợ cao
hơn.

Bây giờ để làm cho nó phức tạp hơn chút ít, nhóm quản trị cục bộ
Administrators đính kèm trên máy trạm được đặt lại tên thành một tên nào
đó và tài khoản người dùng Administrator cục bộ đính kèm cũng được đặt
lại tên. Kiểm tra máy trạm thứ hai đã phát hiện ra rằng nhóm cục bộ quản trị
viên đính kèm và tài khoản người dùng cục bộ cũng đều được đặt lại tên trên
máy tính này, tuy nhiên chúng được đặt lại tên khác với máy trạm đầu tiên!
Thực sự là một sự phức tạp gây đau đầu! Việc giải quyết điều này giống như
nó đòi hỏi phải đăng nhập vào các máy trạm và đào bới tìm kiếm tất cả
người dùng và các nhóm cục bộ trên mỗi máy tính để xác định tài khoản
người dùng cục bộ nào là quản trị cục bộ trên máy đó, hoặc tìm các khác để
xác định thông tin này. Có thể là một kịch bản?

Bạn có thể giải quyết bằng kịch bản nhưng thay vì làm điều đó, bạn hãy thử
thực hiện một cái gì đó khác và sử dụng Windows Management
Instrumentation Command-line (WMIC) xem sao. WMIC cơ bản là một
công cụ (một trình thông dịch lệnh) cho phép truy vấn thông tin WMI trực
tiếp từ dòng lệnh thay vì phải thực hiện nó bên trong một kịch bản. WMIC
có thể được sử dụng theo hai cách: tương tác (đưa ra một lệnh tại một thời
điểm nào đó ở cửa sổ lệnh) hoặc trong các file.

Sử dụng WMIC tương tác


C:\Documents and Settings\myself>wmic path
win32_groupuser where
(groupcomponent="win32_group.name=\"administrators\
",domain=\"%computername%\"")
No Instance(s) Available.
Tại sao lệnh bị hỏng? Rõ ràng bởi vì tên của nhóm tồn tại đã truy vấn bởi mã
cứng trong lệnh. Nhưng nếu nhóm quản trị cục bộ đính kèm được đặt lại tên
thì bạn có thể xác định tên mới của nó như thế nào? Câu trả lời đơn giản là
nhóm này có thể được đặt tên là gì thì nó vẫn giống nhóm cũ ở bề ngoài.
Hay nó theo cách khác, nó là bộ nhận dạnh bảo mật (SID) không thay đổi và
vẫn là S-1-5-32-544 (bạn có thể xem thêm tại đây
để có thêm danh sách về
các SID).

Vậy chúng ta có thể xác định tên của nhóm là gì nếu biết SID của nó? Chúng
ta có thể sử dụng lại WMIC một lần nữa, giống như dưới đây:
C:\Documents and Settings\myself>wmic group where
(sid = "S-1-5-32-544" and localaccount = true) get
name
Name
JustAnotherGroup
Vậy nhóm quản trị đính kèm trên hệ thống này được đặt lại tên thành
JustAnotherGroup!

Dù thế nào đi chăng nữa bây giờ chúng ta cũng biết được tên của nhóm này,
chúng ta có thể sử dụng WMIC để truy vấn các thành viên của nó:
C:\Documents and Settings\myself>wmic path
win32_groupuser where
(groupcomponent="win32_group.name=\"justanothergrou
p\",domain=\"%computername%\"")

/node:"xp191" group where (sid = "S-1-5-32-544" and
localaccount = true) get name
Name
JustAnotherGroup
Bây giờ chúng ta sử dụng kết quả này để lấy danh sách các thành viên của
nhóm:
C:\Documents and Settings\Administrator>wmic
/node:"xp191" path win32_groupuser where
(groupcomponent =
"win32_group.name=\"justanothergroup\",domain=\"xp1
91\"")
GroupComponent?????????????????????????????PartComp
onent
win32_group.domain="xp191",name="justanothergroup"?
\\XP191\root\cimv2:Win32_UserAccount.Domain="XP191"
,Name="JustAnotherAccount"
win32_group.domain="xp191",name="justanothergroup"?
\\XP191\root\cimv2:Win32_UserAccount.Domain="XP191"
,Name="sjones"
win32_group.domain="xp191",name="justanothergroup"?
\\XP191\root\cimv2:Win32_UserAccount.Domain="XP191"
,Name="gsmith"
win32_group.domain="xp191",name="justanothergroup"?
\\XP191\root\cimv2:Win32_Group.Domain="TEST",Name="
Domain Admins"
Kết quả giốnh như những gì chúng ta mong đợi. Từ điểm này, bạn hoàn toàn
dễ dàng viết một file đơn giản để truy vấn tất cả các máy trạm trên mạng và
lưu kết quả trong một file văn bản để có thể phân tích về sau.

Kết luận


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status