NHỮNG KHÁI NIỆM CƠ BẢN
Các thành phần của Script
1.3 Điều khiển lỗi, định nghĩa biến và dữ liệu người dùng
KIỂM SOÁT QUẢN LÝ WINDOWS BẰNG SCRIPT (WINDOWS
Giới thiệu WMI
2.2 Nguyên tắc hoạt động của WMI
Sử dụng WMI
2.6 Các thuộc tín của WMI
VIẾT KỊCH BẢN CHẠY TRÊN CÁC MÁY TỪ XA (SCRIPTING REMOTE)
Giới thiệu về Scripting Romote và xây dựng Scripting Romote
3.2 Xử lý sự cố lỗi với Scripting Romote
3.3 Xử lý lỗi kịch bản điều khiển từ xa bằng Network Monitor 3.0
3.4 Tìm hiểu kịch bản điều khiển xa
3.5 Các thủ thuật của kịch bản điều khiển xa
Chương 4 Một số thủ thuật Scripts khác
- Kiến thức : Sinh viên trình bày đƣợc các thủ thuật runas, truy vấn cục bộ để lấy thông tin, tương tác và xử lý theo lô
+ Triển khai được các thủ thuật mã hóa, truy vấn, tương tác và xử lý theo lô với thủ thuật runas và các WMIC tương ứng
Thái độ : Tích cực tìm hiểu về các kỹ thuật Script bổ sung
Nội dung chương: Thời gian: 25 giờ (LT: 5; TH: 20)
4.1 Thủ thuật “runas” nhƣng với sự mã hóa
4.2 Truy vấn cho quản trị viên cục bộ bằng WMIC
4.3 Sử dụng WMIC tương tác
4.4 Sử dụng WMIC trong các file Batch
IV Điều kiện thực hiện chương trình:
4 Đầy đủ tài liệu học tập nhƣ: Giáo án, giáo trình về môn học Kỹ thuật kịch bản mạng
V Phương pháp và nội dung đánh giá:
+ Trình bày đƣợc các kiến thức nền tảng về kịch bản mạng
+ Trình bày đƣợc các đặc điểm kỹ thuật của một số kịch bản thông dụng
+ Trình bày đƣợc các kỹ thuật xây dựng và triển khai kịch bản mạng.
+ Xây dựng và lập trình đƣợc các script để quản lý và tự động hóa quá trình kiểm soát và điều khiển từ xa.
+ Triển khai một số kỹ thuật kịch bản mạng phổ biến.
- Về thái độ: Có đạo đức và lương tâm nghề nghiệp, ý thức kỷ luật tốt, tích cực tiếp thu kiến thức mới.
- Học sinh tham gia học ít nhất 80% tổng số tiết môn học, tham gia kiểm tra và thi kết thúc môn học theo quy chế hiện hành.
- Điểm đánh giá quá trình gồm có:
+ Kiểm tra thường xuyên: 01 bài kiểm tra (Điểm hệ số 1)
+ Kiểm tra định kỳ: 03 bài kiểm tra (Điểm hệ số 2)
+ Thi kết thúc môn học:
VI Hướng dẫn sử dụng chương trình:
1 Phạm vi áp dụng chương trình:
Chương trình môn học Network Scripting được sử dụng để giảng dạy cho trình độ cao đẳng khóa tuyển sinh năm 2017.
2 Hướng dẫn một số điểm chính về phương pháp giảng dạy môn học:
Giáo viên có thể áp dụng các phương pháp giảng dạy đa dạng, kết hợp giữa truyền thống và hiện đại, như thuyết trình, sử dụng hình ảnh trực quan và tổ chức hoạt động nhóm, tùy thuộc vào nội dung bài học.
Để nâng cao chất lượng đào tạo môn học, việc đầu tư vào cơ sở vật chất và trang thiết bị là rất cần thiết Các yếu tố quan trọng bao gồm phòng học thực hành máy tính, máy chiếu đa năng, giáo trình, video trực quan, cùng với các thiết bị phần cứng và mạng máy tính.
3 Những trọng tâm chương trình cần chú ý:
CHƯƠNG 1 NHỮNG KHÁI NIỆM CƠ BẢN
Câu nói nổi tiếng rằng "Đưa cho một anh chàng sắp chết đói một con cá, bạn nuôi được anh ta một ngày; nhưng nếu dạy cho anh ta cách câu cá, bạn nuôi anh ta cả đời" nhấn mạnh tầm quan trọng của việc trang bị kiến thức và kỹ năng cho người khác Thay vì chỉ cung cấp giải pháp tạm thời, việc giáo dục và hướng dẫn sẽ giúp họ tự lập và phát triển bền vững trong cuộc sống Điều này không chỉ mang lại lợi ích cho cá nhân mà còn góp phần xây dựng một cộng đồng mạnh mẽ hơn.
Trong thế giới bận rộn của các chuyên gia công nghệ thông tin, câu nói "Đưa cho một admin một script, bạn giúp anh ta giải quyết một vấn đề; nhưng nếu dạy anh ta cách viết script, bạn giúp anh ta làm được công việc suốt đời" thể hiện rõ tầm quan trọng của việc trang bị kỹ năng cho người làm IT Việc dạy cách viết script không chỉ giúp họ giải quyết vấn đề hiện tại mà còn mang lại lợi ích lâu dài trong sự nghiệp của họ.
Việc tự động hóa công việc quản trị hàng ngày bằng các script có thể mang lại sự thoải mái cho các admin Mặc dù có hàng trăm script miễn phí trên mạng, như từ Script Center của Microsoft, nhưng việc sử dụng chúng không phải lúc nào cũng dễ dàng Nhiều script có thể không phù hợp với cấu hình cụ thể của tổ chức bạn, buộc các admin phải điều chỉnh và sửa đổi để phù hợp Điều này có thể làm cho họ trở thành những "thợ sửa chữa" lành nghề, phải kết hợp và tinh chỉnh nhiều script nhỏ thành một giải pháp lớn hơn hoặc sử dụng dữ liệu đầu ra của script này làm đầu vào cho script khác Sự linh hoạt và khả năng tùy chỉnh là rất quan trọng trong việc tối ưu hóa quy trình làm việc.
Để sửa chữa máy móc, thợ máy cần hiểu rõ cấu trúc của nó, điều này không thể phủ nhận Tương tự, nếu admin muốn điều chỉnh script, họ phải nắm vững cách xây dựng và viết mã, biến những ý tưởng mới hoặc mã có sẵn thành sản phẩm độc đáo và phù hợp với nhu cầu của mình Khi đó, họ sẽ được công nhận là những người sáng tạo thực thụ.
Để trở thành "thợ lành nghề" trong lĩnh vực công nghệ, việc nắm vững các kiến thức cơ bản là điều cần thiết, đặc biệt là Windows scripting Nhiều người nghĩ rằng scripting rất khó, một phần do việc dịch thuật thuật ngữ này sang tiếng Việt gặp nhiều khó khăn Mặc dù "script" có nghĩa là "kịch bản", nhưng trong ngành công nghệ, nó không liên quan đến việc sản xuất phim mà là một công cụ quan trọng để lập trình và tự động hóa.
Trong thế giới IT, nhiều đoạn mã phức tạp thường chỉ được các chuyên gia hiểu rõ, gây khó khăn cho những người mới như sinh viên công nghệ Vì vậy, bài viết này sẽ bắt đầu từ những kiến thức cơ bản nhất về scripting trên hệ điều hành Windows, giúp nâng cao khả năng hiểu biết về các khía cạnh sâu sắc hơn Mục tiêu là giúp những người mới bắt đầu, như bạn và tôi, có thể tự động hóa công việc thông qua scripting, từ đó giúp cuộc sống của các quản trị viên dễ dàng hơn Chúng ta sẽ khám phá cả những script tự viết và những script tải về từ nhiều nguồn khác nhau, cùng với các tài nguyên hữu ích để hiểu biết sâu hơn về Windows scripting và các công cụ hỗ trợ trong tương lai.
1.2 Các thành phần của Script
Các thiếtlập TCP/IP scripting
Most administrators use Visual Basic Script (VBScript) for writing Windows admin scripts due to its powerful capabilities and relatively simple syntax VBScript can be integrated with Windows Management Instrumentation (WMI) and Active Directory Services Interfaces (ADSI) to script various aspects of Windows operating systems or networks utilizing Active Directory This article will begin by exploring Windows scripting with VBScript and WMI to perform a useful task: changing the IP address of a network adapter.
Việc chuyển một máy ảo (VM) chạy hệ điều hành Windows Server 2003 từ mạng ảo này sang mạng ảo khác là cần thiết để tái sử dụng máy chủ cho các mục đích khác Điều này yêu cầu thay đổi địa chỉ IP và có thể là cổng vào mặc định trên server Bạn có thể thực hiện việc này bằng cách mở Network Connections trong Control Panel.
Panel và kích phải chuột lên Local Area Connections, chọn Properties >
Để thay đổi địa chỉ IP trên Windows, bạn có thể vào tab General trong Internet Protocol (TCP/IP), chọn Properties, nhập địa chỉ IP mới và nhấn OK hai lần Tuy nhiên, phương pháp này có thể phức tạp và mất thời gian Các chuyên gia thường ưa chuộng sử dụng Command Prompt với lệnh Netsh, nhưng cần lưu ý rằng lệnh này có nhiều ngữ cảnh và tham số khó nhớ, việc thực hiện sai có thể gây ra hậu quả nghiêm trọng Nếu bạn không chắc chắn, hãy tham khảo phần trợ giúp Help hoặc quay lại phương pháp đầu tiên.
Chúng ta sẽ tìm hiểu cách thay đổi địa chỉ IP của máy tính bằng VBScript và WMI, bắt đầu với những khái niệm cơ bản như đối tượng (object), phương thức (method), thuộc tính (property) và không gian tên (namespace) Để bắt đầu, hãy chạy script trên máy cục bộ với biến strComputer được định nghĩa là "." để tham chiếu đến máy tính hiện tại, sử dụng làm điểm khởi đầu cho không gian tên WMI Không gian tên WMI là một tập hợp phân cấp các lớp đối tượng khác nhau, hỗ trợ quản lý nhiều khía cạnh của máy tính Windows Hầu hết các lớp WMI hữu ích nằm trong không gian tên root\cimv2, và trước khi làm việc với chúng, chúng ta cần diễn giải thành các đối tượng, sau đó xem xét thuộc tính và gọi phương thức để thao tác với chúng.
Lớp, đối tượng, thuộc tính và phương thức là những khái niệm cơ bản trong lập trình Ví dụ, lớp MicrowaveOven đại diện cho tập hợp trừu tượng của tất cả các lò vi sóng mà không có lò thực nào được đưa vào Lớp này có thể có các thuộc tính như màu sắc (Color) và kích thước theo khối lập phương, giúp định hình và mô tả các đặc điểm của lò vi sóng.
Các lò vi sóng có các thuộc tính chính như kích thước bên trong (CubicInches) và tính năng mặt quay tròn (HasTurntable) Những đặc điểm này xác định màu sắc, kích thước và khả năng quay của lò vi sóng, tạo nên sự đa dạng cho từng loại sản phẩm.
Lớp MicrowaveOven có các phương thức như SetCookingTime (thiết lập thời gian nấu), SetPowerLevel (thiết lập mức điện sử dụng) và Reset (nấu lại) để thao tác với lớp Để gọi một phương thức, cần cung cấp tham số cho nó Ví dụ, để sử dụng phương thức SetCookingTime, bạn có thể định nghĩa biến CookingTime (thời gian nấu) trong một số giây và đưa biến này vào phương thức để thiết lập cho một trường hợp cụ thể Trong WMI VBScript, bạn có thể thực hiện như sau: intCookingTime = 120 và errSetCookingTime = objMicrowave.SetCookingTime(intCookingTime).
Nhƣng đối tƣợng lò vi sóng (objMicrowave) ở đâu ra? Chúng ta vẫn chƣa tạo nó, vì vậy hãy tạo bằng cách dùng lệnh Set và phương thức CreateObject:
Xử lý sự cố lỗi với Scrip ting Romote
Trong bài viết trước, chúng ta đã sử dụng kịch bản ChangeIPAddress.vbs để thay đổi địa chỉ IP trên máy tính từ xa Dưới đây là những thay đổi mà chúng ta đã thực hiện trong kịch bản này.
If WScript.Arguments.Count = 0 Then
Wscript.Echo "Usage: ChangeIPAddress.vbs new_IP_address"
End If strComputer = "xp2" strAddress = Wscript.Arguments.Item(0) arrIPAddress = Array(strAddress) arrSubnetMask = Array("255.255.255.0")
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") Set colNetAdapters = objWMIService.ExecQuery("Select * from
Win32_NetworkAdapterConfiguration where IPEnabled=TRUE")
For Each objNetAdapter in colNetAdapters
41 errEnableStatic = objNetAdapter.EnableStatic(arrIPAddress, arrSubnetMask)
Dòng lệnh strComputer = "xp2" cho thấy máy tính đang sử dụng kịch bản có tên XP2 Địa chỉ IP ban đầu của máy tính điều khiển xa XP2 là 172.16.11.43.
Bây giờ khi chúng ta chạy kịch bản này bằng cách đánh ChangeIPAddress.vbs
172.16.11.65 từ một máy trạm quản lý có tên là XP, những thứ xảy ra đƣợc đƣa ra dưới đây:
1 Kịch bản đã hoạt động Ví dụ địa chỉ của XP2 đã thay đổi từ 172.16.11.43 thành 172.16.11.65
2 Kịch bản cần đến nhiều thời gian để thực thi
3 Kịch bản trả lại lỗi dưới đây: C:\tools\ChangeIPAddress.vbs(23, 6)
SWbemObjectEx: The remote procedure call failed
Làm thế nào chúng ta có thể giải quyết đƣợc các kết quả đó?
Một điều chúng ta có thể thực hiện là khuyến khích việc "bỏ qua lỗi" Điều này phản ánh thực tế rằng trong lĩnh vực CNTT, không phải lúc nào cũng có giải pháp chính xác cho mọi vấn đề Các quản trị viên thường phải áp dụng những cách giải quyết khác để xử lý các tình huống phát sinh khi không có giải pháp hoàn hảo.
Vì vậy làm thế nào chúng ta có thể bỏ qua lỗi? Hãy thêm dòng dưới đây vào gần vị trí bắt đầu của phần đầu (header):
Hay nói cách khác, phần đầu (header) của chúng ta sẽ nhƣ sau:
Hiện tại, chúng ta không gặp lỗi và kịch bản của chúng ta hoạt động tốt Tuy nhiên, quá trình thực thi vẫn cần nhiều thời gian, có thể mất vài phút Vậy điều gì sẽ xảy ra tiếp theo?
Xử lý sựcố thông báo lỗi
Các thông báo lỗi đôi khi khá khó hiểu và điều này là một trong những vấn đề đáng quan tâm Đây là một thông báo lỗi:
SWbemObjectEx: The remote procedure call failed
Và đây là dòng mã tạo ra nó: errEnableStatic = objNetAdapter.EnableStatic(arrIPAddress, arrSubnetMask)
Dòng mã này hoạt động khi địa chỉ IP trên máy tính mục tiêu bị thay đổi, nhưng sau đó lại xuất hiện thông báo lỗi Để hiểu rõ nguyên nhân, chúng ta cần tìm hiểu về SwebObjectEx Một tìm kiếm nhanh trên MSDN có thể cung cấp thông tin hữu ích về vấn đề này.
Extends the functionality of SWbemObject This object adds the Refresh method for
(Mở rộngchứcnăngcủa SWbemObject Đối tượng này bổ sung phương pháp Refresh cho các đốitượng SwbemRefresher)
Vì vậy SwbemObjectEx cơ bản chỉ bổ sung thêm chức năng cho SWbemObject Vậy SwbemObject là gì?
Contains and manipulates a single WMI object class or instance
WMI, hay Windows Management Instrumentation, là một công cụ quản lý hệ thống, nhưng thông tin trên trang này có thể không phù hợp Trong nhiều trường hợp, SWbemObject (SWbemObjectEx) là đối tượng chính mà bạn quản lý hoặc truy vấn trong WMI Trong kịch bản này, chúng ta đang truy vấn lớp Win32_NetworkAdapterConfiguration để trả về một bộ sưu tập các đối tượng gọi là colNetAdapter, đại diện cho các adapter mạng trên máy tính Do đó, SWbemObjectEx (hoặc SWbemObject) được đề cập trong thông báo lỗi này là một yếu tố quan trọng.
43 giản hóa đối tƣợng đang thể hiện bản thân adapter mạng, ví dụ nhƣ objNetAdapter Vậy tại sao objNetAdapter tạo ra lỗi.
Vấn đề này đã trở thành một mối quan tâm lớn Theo ý kiến của một chuyên gia uy tín, có khả năng một thành phần trong hotfix cho Windows XP đã thay đổi cách lệnh gọi trả về được thực hiện khi có lỗi xảy ra Thông thường, nếu phương pháp EnableStatic của đối tượng trong lớp Win32_NetworkAdapterConfiguration được gọi thành công, nó sẽ trả về 0, nghĩa là không có lỗi; ngược lại, nếu trả về 1, cần khởi động lại Tuy nhiên, với Windows XP, việc thay đổi địa chỉ IP trên adapter mạng không yêu cầu khởi động lại Nếu hotfix thay đổi điều gì đó trong WMI hoặc thành phần khác khiến Windows không khởi động lại trước khi địa chỉ mới được áp dụng, điều này có thể dẫn đến lỗi do cấu hình adapter mạng rơi vào trạng thái không rõ ràng cho đến khi máy tính được khởi động lại Khi kịch bản vẫn đang chạy trên máy trạm quản trị và cấu hình adapter mạng của máy tính mục tiêu chưa rõ ràng, kết nối RPC giữa hai máy tính sẽ rất kém, dẫn đến lỗi xảy ra.
Chúng tôi đang tiếp tục nghiên cứu vấn đề này và đã có một số câu trả lời khả thi Một trong những hướng giải quyết có thể là xác nhận xem lỗi chỉ liên quan đến phương pháp EnableStatic của Win32_NetworkAdapterConfiguration hay không Thay vì chỉ thay đổi địa chỉ IP của adapter mạng trên máy tính mục tiêu, chúng tôi đang xem xét khả năng viết một kịch bản khác để thay đổi cổng mặc định Nếu thành công, điều này sẽ cho phép kết nối từ máy trạm quản trị đến máy tính từ xa và sử dụng phương pháp WMI để điều chỉnh thiết lập mạng.
Để thay đổi cổng mặc định, chúng tôi khuyên bạn nên xem lại phần 4 của loạt bài này, nơi chúng tôi đã hướng dẫn cách sử dụng MSDN để tìm hiểu về các thuộc tính và phương pháp của Win32_NetworkAdapterConfiguration Chúng tôi tin rằng điều này sẽ giúp bạn tự viết một kịch bản tương tự Hãy thử nghiệm nhé!
Khi bạn tự viết kịch bản, đôi khi nó có thể thành công, nhưng cũng có lúc không Nếu kịch bản của bạn không hiệu quả, hãy thực hiện các bước sau đây để cải thiện nó.
1 Đầu tiên vào trang MSDN của Win32_NetworkAdapterConfiguration class
2 Tìm trên trang này phương pháp phải thực hiện để thay đổi cổng trên adapter mạng Kiểm tra nhanh trong trang sẽ cho bạn điều này:
SetGateways - Specifies a list of gateways for routing packets destined for a different subnet than the one this adapter is connected to
SetGateways là một danh sách cổng dùng để định tuyến các gói đã được cấu hình trước cho subnet khác với subnet mà adapter đang kết nối Đây chính là mục tiêu của chúng ta, vì vậy hãy nhấp chuột vào SetGateways để truy cập trang SetGateways Method của lớp Win32_NetworkAdapterConfiguration.
3 Trên trang SetGateways Method này bạn sẽ thấy giải thích này:
The SetGateways WMI class method allows for the configuration of a list of gateways for routing packets to a subnet that differs from the one connected to the Network Interface Card (NIC) It is important to note that this method is applicable only when the NIC is set to static IP mode.
Phương pháp lớp SetGateways WMI xác định danh sách cổng để định tuyến các gói đến một mạng con khác so với mạng con mà adapter mạng được kết nối Phương pháp này chỉ hoạt động khi Card mạng (NIC) đang ở chế độ IP tĩnh.
Để sử dụng phương pháp này, máy tính mục tiêu cần có địa chỉ tĩnh Bạn có thể tham khảo cú pháp gọi phương pháp trong tài liệu hướng dẫn.
Hàm SetGateways(A, B) cho phép bạn thiết lập địa chỉ IP cho cổng, trong đó A là chuỗi địa chỉ IP và B là giá trị nguyên từ 1 đến 9999 để chỉ định tham số Để viết kịch bản, bạn có thể bắt đầu từ kịch bản ChangeIPAddress.vbs gốc ở phần 2 và thực hiện các điều chỉnh cần thiết cho đến khi tạo ra một kịch bản mới phù hợp.
If WScript.Arguments.Count = 0 Then
Wscript.Echo "Usage: ChangeGateway.vbs gateway_address metric"
End If strComputer = "xp2" strGateway = Wscript.Arguments.Item(0) arrGateway = Array(strGateway) intMetric = Wscript.Arguments.Item(1) arrMetric = Array(intMetric)
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") Set colNetAdapters = objWMIService.ExecQuery("Select * from
Win32_NetworkAdapterConfiguration where IPEnabled=TRUE")
For Each objNetAdapter in colNetAdapters errGateway = objNetAdapter.SetGateways(arrGateway, arrMetric)
'Display result or error code
Wscript.Echo "Adapter's gateway has been successfully changed to " & strGateway
Wscript.Echo "Changing the adapter's gateway was not successful Error code " & errGateway
Xử lý lỗi kịch bản điều khiển từ xa bằng Network Monitor 3.0
Microsoft has recently released a new version of Network Monitor, which is part of Microsoft Systems Management Server Network Monitor 3.0 features several improvements over its predecessor, enhancing its functionality and performance.
Cải thiện giao diện người dùng hiển thị các khung khi chúng đang hoạt động theo thời gian thực.
Nhiều phiên capture đồng thời và capture đồng thời trên nhiều adapter mạng.
Khả năng hiển thị “cuộc đàm thoại” mạng, nghĩa là các session protocol cụ thể.
Hỗ trợ cho Vista, Windows XP và Windows Server 2003 (cả 32 bit và 64 bit).
Panel lọc mới cho phép bạn sử dụng các bộ lọc chỉ định.
Chúng tôi đang sử dụng NM3 để theo dõi dấu vết từ máy tính đang chạy kịch bản ChangeIPAddress.vbs Dưới đây là thiết lập cần kiểm tra.
Máy trạm quản trị viên
Tên: test124.test.com Địa chỉ IP: 172.16.11.124 (tĩnh)
Tên: test125.test.com Địa chỉ IP: 172.16.11.125 (tĩnh)
Tên: dc181.test.com Địa chỉ IP: 172.16.11.181
Tuy nhiên trước khi chạy ChangeIPAddress.vbs trên test124 để thay đổi địa chỉ IP của test125, hãy quan sát NM3 một chút.
Khi bạn khởi chạy NM3, nó sẽ có giao diện nhƣ hình 1:
Hình 1: Cửa sổ Network Monitor 3.0 khi đƣợc mở
Trước khi tiếp tục, hãy chọn hộp kiểm Enable Conversations để chúng ta có thể quan sát đƣợc kiểu session protocol xuất hiện trong suốt quá trình dò theo.
Bây giờ kích chuột vào tab New Capture Điều này cho phép mở đƣợc một tab mới với tên Capture1 có thể sử dụng để tạo dấu vết mạng
Hình 2: Mở một tab capture mới
Để kiểm tra NM3 một cách đơn giản, hãy nhấn vào nút Play để bắt đầu quá trình capture Tiếp theo, từ máy tính test124, mở một cửa sổ lệnh và nhập lệnh ping để xem kết quả.
172.16.11.125 nghĩa là chúng ta đang ping từ test125 đến test124 Kết quả đƣợc cho như hình 3 dưới đây:
Hình 3 cho thấy vết tích của ping 172.16.11.125, bao gồm hai gói ARP (một yêu cầu ARP và một đáp ứng ARP) cùng với một chuỗi các gói ICMP (các thông điệp Echo Request và Echo Reply) Nếu bạn nắm vững kiến thức cơ bản về kết nối mạng TCP/IP, thì thông tin này sẽ rất dễ hiểu.
Hãy quan sát tình huống “đàm thoại” đã xảy ra trong hình 4 Mở nút My Traffic để hiển thị điều đó:
Hình 4: Các “cuộc đàm thoại”
Lưu ý rằng có hai cuộc “đàm thoại” đã xuất hiện: ARP và IPv4 (ICMP)
Bây giờ chúng ta hãy chọn gói ARP Request và quan sát bên trong nó (hình 5):
Hình 5: Việc kiểm tra một gói
Chúng ta đã đƣợc giới thiệu sơ bộ về NM3, bây giờ hãy sử dụng nó để xử lý một số lỗi xảy ra.
Chúng tôi khởi động lại cả hai máy trạm và xóa bộ nhớ cache (ARP, NDS,…) Sau đó, trên máy tính test124, chúng tôi mở cửa sổ lệnh và nhập lệnh ChangeIPAddress.vbs 172.16.11.144 để thay đổi địa chỉ IP của máy tính test125 từ 172.16.11.125 thành 172.16.11.144 Hình 6 dưới đây trình bày những kết quả thu được.
Hình 6: Các kết quả thu đƣợc khi chạy ChangeIPAddress.vbs 172.16.11.144
Hình 6 cung cấp cái nhìn tổng quan về sự kiện đã xảy ra, với 90 giây cuối cùng được giữ lại và 274 khung hình được lưu Thông báo lỗi xuất hiện xung quanh khung 241, trong khi cửa sổ lệnh trả về tại khung 274 Chúng ta có nhiều lưu lượng để phân tích, vì vậy hãy bắt đầu xem xét hình 6 để tiến hành phân tích.
Các khung 3-4 hiển thị tên TEST125 đang tồn tại dưới địa chỉ IP là 172.16.11.125 bằng DNS.
Các khung 5-6 hiển thị địa chỉ IP 172.16.11.125 đang tồn tại bên trong địa chỉ MAC bằng ARP.
Các khung 7-9 thể hiện thủ tục „bắt tay‟ TCP (SYN, SYN/ACK, ACK) xuất hiện giữa hai máy tính test124 và test125.
Các khung 10-11 thể hiện ràng buộc RPC đang tồn tại đƣợc thành lập giữa hai máy tính
Các khung 12-13 thể hiện DCOM đang tồn tại đƣợc sử dụng trên RCP (WMI sử dụng DCOM để „bắt tay‟ các cuộc gọi từ xa).
Do không thể quan sát tất cả 274 khung trong hình vẽ, chúng tôi đã sao chép thông tin về từng khung vào một file văn bản Bạn có thể nhấp vào đây để xem trang thông tin đầy đủ về tất cả các khung khi chạy ChangeIPAddress.vbs.
Khi xử lý sự cố, bạn nên bắt đầu từ những kiến thức hiện có thay vì từ những điều chưa hiểu Điều này giúp bạn tiếp cận vấn đề một cách hiệu quả hơn.
Trong bài viết trước, chúng tôi đã phát triển ChangeGateway.vbs và nó hoạt động mà không gặp lỗi Trước khi kiểm tra kỹ file ChangeIPAddress.txt, hãy khởi động lại các máy trạm và thực hiện một lần capture khác để xem kết quả của lệnh ChangeGateway.vbs 172.16.11.2.
1 trên test124 để thay đổi cổng mặc định của test125 từ 172.16.11.1 thành 172.16.11.2 (chỉ ra tham số đo bằng 1) Đây là những gì lần capture thứ hai thể hiện (hình 7):
Hình 7: Kết quả chạy ChangeGateway.vbs 172.16.11.2 1
Lúc này chỉ có 217 khung để phân tích (!) và bạn có thể vào đây để xem tóm tắt toàn bộ các khung.
Phân tích của capture cho ChangeGateway.vbs
Hãy phân tích lần capture thứ hai bằng cách tóm tắt các khung thành từng đoạn, đảm bảo rằng quá trình này diễn ra mà không phát sinh lỗi.
Chỉ là NM3 header – bỏ qua
Trong môi trường công nghệ, có nhiều RPC/DCOM mà nếu xem xét kỹ lưỡng, chúng ta sẽ nhận thấy một số WMI như WMI-IWbemLoginClientID, WMI-IWbemLevel1Login, WMI-IWbemServices, và WMI-IWbemFetchSmartEnum Thông qua việc tìm kiếm trên MSDN, chúng ta có thể tìm hiểu thêm về chức năng của các giao diện này Chẳng hạn, giao diện IwbemServices cho phép các máy khách và nhà cung cấp truy cập vào các dịch vụ WMI, tương tự như các giao diện WMI được gọi từ máy tính điều khiển xa thông qua DCOM bởi máy trạm đang chạy kịch bản Một số giao diện trong số này không gây khó hiểu cho người đọc.
Những thứ gây khó hiểu cho người đọc đầu tiên đó là các cụm TCP với các gói RPC
"Continued Response" chỉ ra rằng các kết nối đã được thiết lập trước đó đang được sử dụng cho nhiều mục đích khác nhau Trong phần tiếp theo, chúng tôi sẽ bỏ qua một số khung để tập trung vào các khía cạnh quan trọng hơn.
Chúng ta quan sát thấy một cụm DCOM với các kết thúc kết nối TCP bằng FIN/ACK, cho thấy kịch bản có thể đã hoàn thành nhiệm vụ và đang tiến hành quét dọn Ngoài ra, có một số yêu cầu DNS và LDAP giữa test124 và bộ điều khiển miền, mặc dù nguyên nhân không rõ ràng, nhưng chúng tôi sẽ bỏ qua một số khung khi chúng xuất hiện quá nhiều.
Tìm hiểu kịch bản điều khiển xa
Hai loại kịch bảnđiềukhiển xa
Có hai loại kịch bản điều khiển xa: loại đầu tiên cho phép chạy kịch bản trên máy tính A để điều khiển máy tính mục tiêu B thực hiện các hành động cụ thể Trong thử nghiệm với kịch bản ChangeIPAddress.vbs, chúng tôi đã thay đổi dòng mã từ strComputer = "." thành strComputer = "xp2".
Khi chạy kịch bản trên máy tính A với dòng đầu tiên, địa chỉ IP của máy tính này sẽ được thay đổi Ngược lại, nếu sử dụng dòng thứ hai và chạy kịch bản trên máy tính A, địa chỉ IP của máy tính B sẽ bị thay đổi.
Kịch bản điều khiển xa thứ hai cho phép quản trị viên thực hiện các tác vụ trên máy tính B mà không cần phải chạy kịch bản trên máy tính A Thay vào đó, quản trị viên có thể đăng nhập trực tiếp vào máy tính B để sử dụng kịch bản, mang lại hiệu quả và tiết kiệm thời gian trong quá trình quản lý hệ thống.
B Chính vì vậy tôi đã đƣa kịch bản từ máy tính A sang máy tính mục tiêu B và sau đó chạy nó ở đây Tôi có thể thực hiện điều đó như thế nào? Nếu có một môi trường Active Directory sau đó tôi có thể thử và chạy kịch bản nhƣ kịch bản đăng nhập trên máy tính điều khiển xa Chúng ta hãy xem thực hiện nhƣ thế nào trong bài tiếp theo, nhƣng bây giờ hãy chú ý rằng có hai loại kịch bản điều khiển xa.
Chạy kịch bản trên máy tính nội bộ và nhắm đến máy tính điều khiển xa.
Chạy kịch bản trực tiếp trên máy tính điều khiển xa.
Hãy diễn tả sự khác nhau giữa hai cách mô tả kịch bản điều khiển xa:
Kiểu thứ nhất liên quan đến việc kết nối đến máy tính điều khiển xa và sau đó chạy kịch bản.
Kiểu thứ hay liên quan đến việc triển khai kịch bản cho máy tính điều khiển xa, sau đó chạy kịch bản.
Tìm hiểuvề kết nốikịch bảnđiềukhiển xa
Kiểu đầu tiên của kịch bản điều khiển xa cho phép bạn chạy một kịch bản trên máy tính cục bộ để kết nối với một máy tính điều khiển xa và thực hiện các tác vụ ngược lại Điều này có ba ý nghĩa quan trọng.
Để thực hiện điều gì đó trên máy tính điều khiển xa, trước tiên cần thiết lập kết nối mạng với máy tính đó Một trong những vấn đề có thể cản trở kết nối mạng là việc không giải quyết được hostname hoặc FQDN thành địa chỉ IP, dẫn đến lỗi trong kịch bản.
Vấn đề tường lửa có thể ảnh hưởng đến việc chạy kịch bản WMI trên máy tính điều khiển xa, vì cần mở ngoại lệ quản trị từ xa trong tường lửa Windows Khi mở Windows Firewall từ Control Panel, không thấy hộp kiểm Remote Administration, do applet này chủ yếu dành cho người dùng gia đình Trong môi trường doanh nghiệp với Active Directory, việc quản lý tường lửa thường được thực hiện qua Group Policy Cần cấu hình Group Policy để thiết lập các quy tắc cần thiết cho tường lửa.
Computer Configuration\Administrative emplates\Network\NetworkConnections\Windows Firewall\Domain Profile\Windows Firewall: Dho phép ngoại lệ quản trị từ xa trở về.
Khi bạn nhắm đến chính sách này đối với một máy tính điều khiển xa thì nó sẽ mở hai cổng TCP trên máy tính đó: cổng 445 và 135.
Cổng TCP 445 là cổng dành cho lưu lượng Server Message Block (SMB) Nếu cổng này bị chặn trên tường lửa của máy tính điều khiển từ xa, bạn sẽ không thể kết nối bằng WMI cũng như không thể sử dụng các công cụ quản lý khác.
Khi sử dụng Computer Management để quản lý máy tính từ xa, bạn có thể gặp lỗi “System error 53 has occurred The network path was not found” nếu cổng bị khóa Lỗi này cho thấy đường dẫn mạng không thể được xác định, gây khó khăn trong việc thực hiện các kịch bản.
Cổng TCP 135 là cổng dành cho lưu lượng vào Distributed COM (DCOM) và đóng vai trò lắng nghe cho DCOM Service Control Manager (SCM), cung cấp dịch vụ RPC để thuyết minh các đối tượng COM Để các truy vấn WMI từ máy tính cục bộ có thể thành công, cả cổng TCP 135 và 445 cần phải được mở trên tường lửa của máy tính từ xa, cho phép kết nối dịch vụ WMI và thuyết minh các đối tượng DCOM trên máy tính điều khiển xa.
Khi chạy kịch bản trên máy tính điều khiển xa, khả năng thực hiện các hành động phụ thuộc vào quyền hạn của tài khoản người dùng đang sử dụng Ví dụ, nếu bạn đăng nhập vào máy tính A bằng tài khoản người dùng thông thường và chạy kịch bản ChangeIPAddress.vbs để thay đổi địa chỉ IP của máy tính điều khiển xa B, kịch bản sẽ kết nối qua RPC với dịch vụ WMI trên máy tính B Tuy nhiên, hành động này có thể không thành công nếu không có quyền quản trị viên cục bộ, vì kịch bản sẽ thực hiện hành động với quyền hạn của người dùng hiện tại, mà không đủ quyền để thay đổi thiết lập mạng.
Khi bạn đang sử dụng máy tính A đã đăng nhập vào tài khoản miền, bạn có thể áp dụng kịch bản của mình để thay đổi địa chỉ IP của máy tính B bằng cách thực hiện các bước sau.
Kịch bản ChangeIPAddress.vbs của bạn có thể thay đổi nhƣ sau:
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") với strUser = "Administrator" strPassword = “Pa$$w0rd”
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2", strUser, strPassword)
Mật khẩu của tài khoản quản trị viên cho máy tính từ xa hiện đang gặp rủi ro về an toàn, vì nó được lưu trữ trong văn bản của kịch bản và có thể dễ dàng bị quan sát.
Để loại bỏ hai dòng đầu tiên và giấu các giá trị strUser và strPassword trong kịch bản, bạn nên mã hóa cứng các giá trị này Tuy nhiên, nếu ai đó sử dụng chương trình như Network Monitor 3.0, họ có thể dễ dàng truy cập thông tin quan trọng, dẫn đến việc thỏa hiệp an toàn máy tính từ xa của bạn.
Sử dụng lệnh nâng cao như runas /user:Administrator cmd.exe để chạy kịch bản từ cửa sổ lệnh có thể là giải pháp tối ưu cho việc thực hiện kịch bản từ xa Điều này đảm bảo rằng kịch bản có sự nhận diện chính xác, thường là quyền quản trị trên máy tính mục tiêu, mặc dù quy trình này có thể phức tạp Một cách đơn giản hơn là đăng nhập vào máy trạm với tài khoản quản trị miền, sau đó mở lệnh và chạy kịch bản.