Cách "Block" URL trong IE - (Simple and Easy)

Cách "Block" URL trong IE - (Simple and Easy)

Source: http://ask-leo.com/is_there_a_way_to_block_certain_urls_in_ie.html

1. Mở file host này ra (nhớ mở bằng notepad), nằm trong đường dẫn c:\windows\system32\drivers\etc\hosts

2. Thêm 127.0.0.1 tên website muốn block (nhớ là ko được thay đổi nội dung original nhé)

3. Restart windows. Và từ bây giờ sẽ không access vô các trang web đã chỉ định bằng bất kỳ web browser nào

Cấu trúc của file hosts
...................................
# Copyright (c) 1993-1999 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a '#' symbol.
#
# For example:
#
# 102.54.94.97 rhino.acme.com # source server
# 38.25.63.10 x.acme.com # x client host

127.0.0.1 localhost
127.0.0.1 Tên_website_cần_block
..................................
Server bị lỗi netlogon

Server bị lỗi netlogon

Mình có cái server chạy window 2k3. Không biết vì sao dạo này nó bị lổi netlogon rất nhiều (view trong event). Nhìn thảm lắm...
Thông báo lỗi như thế này: event 5774
"The dynamic registration of the DNS record '_ldap._tcp.pdc._msdcs.anthaifood.com.vn. 600 IN SRV 0 100 389 atf02.anthaifood.com.vn.' failed on the following DNS server:

DNS server IP address: 205.209.96.207
Returned Response Code (RCODE): 5
Returned Status Code: 9017

For computers and users to locate this domain controller, this record must be registered in DNS.

USER ACTION
Determine what might have caused this failure, resolve the problem, and initiate registration of the DNS records by the domain controller. To determine what might have caused this failure, run DCDiag.exe. You can find this program on the Windows Server 2003 installation CD in Support\Tools\support.cab. To learn more about DCDiag.exe, see Help and Support Center. To initiate registration of the DNS records by this domain controller, run 'nltest.exe /dsregdns' from the command prompt on the domain controller or restart Net Logon service. Nltest.exe is available in the Microsoft Windows Server Resource Kit CD.
Or, you can manually add this record to DNS, but it is not recommended.

ADDITIONAL DATA
Error Value: DNS bad key.

For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.
"

Hỏi pa'c Bill thì pa'c trả lời như thế này: "A common cause for these errors is that a domain controller references itself as a primary DNS server in its TCP/IP properties. When the domain controller starts in this configuration, the Netlogon service may start before the DNS service starts. Because the Netlogon service must register records in DNS and the DNS service is not yet available, errors may occur. In this situation, you can safely ignore the errors because the Netlogon service will again try to register the records in approximately five minutes, at which time it will be successful."

Hiện tại thì server mình có chức năng như pa'c Bill đã nói và mình cũng làm theo hướng dẫn như thế này:
"However, there are two ways to avoid the errors in this scenario:
• Make sure that domain controllers do not reference themselves as a primary DNS server in their TCP/IP properties.
• Configure the Netlogon service to depend on the DNS service. This will cause the Netlogon service to start after the DNS service starts. To do this, run REGEDT32, and go to:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Servic es\Netlogon
In the right pane, double-click the value DependOnService and add DNS to the next available blank line. Click OK and exit Registry Editor."

Chưa giải quyết được theo cách 2

Thiết lập hai server chạy song song - Phần IV: Remove Server have died

Phần IV: Gỡ bỏ server đã chết.

bước 1: Giả sử server 1 chết hẳn
bước 2: từ server 2 thực hiện theo phần 3. sau đó ra CMD ta đánh tiếp các lệnh để gở bỏ xác domain đã chết.

Các lệnh để config (copy từ trong DOS)

-----------------------------------------------------------
Microsoft Windows [Version 5.2.3790]
(C) Copyright 1985-2003 Microsoft Corp.

C:\>ntdsutil "Lệnh đầu tiên trong quá trình remove server have died

ntdsutil: Metadata cleanup "Lệnh 2 trong quá trình remove server have died

metadata cleanup: connections "Lệnh 3 trong quá trình remove server have died
server connections: connect to server ser.anthaifood.com "Lệnh 4 trong quá trình remove server have died
Binding to ser.anthaifood.com ...
Connected to ser.anthaifood.com using credentials of locally logged on user.
server connections: quit "Lệnh 5 trong quá trình remove server have died

metadata cleanup: select operation target "Lệnh 6 trong quá trình remove server have died
select operation target: list domain "Lệnh 7 trong quá trình remove server have died
Found 1 domain(s)
0 - DC=anthaifood,DC=com
--Các bạn để ý dòng found 1 domain(s) chỉ có 1 domain anthaifood thôi, nên ở đây ta sẽ chọn số 0, tương ứng với domain ta có là anthaifood (trường hợp nếu bạn có nhiều domain thì cũng sẽ được liệt kê ở đây)--
select operation target: select domain 0 "Lệnh 8 trong quá trình remove server have died
No current site
Domain - DC=anthaifood,DC=com
No current server
No current Naming Context
select operation target: list sites "Lệnh 9 trong quá trình remove server have died
Found 1 site(s)
0 - CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=anthaifood,DC=com
--(Các bạn nhìn tại dòng found 1 site(s). Mặc định ta có 1 site tương ứng với số 0--

select operation target: select site 0 "Lệnh 10 trong quá trình remove server have died
Site - CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=anthaifood,DC=com

Domain - DC=anthaifood,DC=com
No current server
No current Naming Context
select operation target: list servers in site "Lệnh 11 trong quá trình remove server have died
Found 2 server(s)
0 - CN=SERVER,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC
=anthaifood,DC=com
1 - CN=SER,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=an
thaifood,DC=com
--Bạn nhìn tại dòng found 2 server(S) gồm có SERVER đã chết, tương ứng với số 0 và SER còn sống, tương ứng với số 1.--
select operation target: select server 0 "Lệnh 12 trong quá trình remove server have died
Site - CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=anthaifood,DC=com

Domain - DC=anthaifood,DC=com
Server - CN=SERVER,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configurati
on,DC=anthaifood,DC=com
DSA object - CN=NTDS Settings,CN=SERVER,CN=Servers,CN=Default-First-Site
-Name,CN=Sites,CN=Configuration,DC=anthaifood,DC=com
DNS host name - server.anthaifood.com
Computer object - CN=SERVER,OU=Domain Controllers,DC=anthaifood,DC=com
No current Naming Context
select operation target: quit "Lệnh 13 trong quá trình remove server have died
metadata cleanup: remove select server "Lệnh 14 trong quá trình remove server have died
Transferring / Seizing FSMO roles off the selected server.
Removing FRS metadata for the selected server.
Searching for FRS members under "CN=SERVER,OU=Domain Controllers,DC=anthaifood,D
C=com".

Removing FRS member "CN={c007d6ea-dcc0-4d58-83ad-a80d41cbb4a1},CN=RootDFS|Datase
rver,CN=RootDFS,CN=DFS Volumes,CN=File Replication Service,CN=System,DC=anthaifo
od,DC=com".
Deleting FRS connection "CN={c007d6ea-dcc0-4d58-83ad-a80d41cbb4a1},CN={c09b2596-
d30b-4a94-8d94-d4a35033aedc},CN=RootDFS|Dataserver,CN=RootDFS,CN=DFS Volumes,CN=
File Replication Service,CN=System,DC=anthaifood,DC=com".
Deleting subtree under "CN={c007d6ea-dcc0-4d58-83ad-a80d41cbb4a1},CN=RootDFS|Dat
aserver,CN=RootDFS,CN=DFS Volumes,CN=File Replication Service,CN=System,DC=antha
ifood,DC=com".
(Xuất hiện thông báo, chọn YES)

Removing FRS member "CN=SERVER,CN=Domain System Volume (SYSVOL share),CN=File Re
plication Service,CN=System,DC=anthaifood,DC=com".
Deleting subtree under "CN=SERVER,CN=Domain System Volume (SYSVOL share),CN=File
Replication Service,CN=System,DC=anthaifood,DC=com".
Deleting subtree under "CN=SERVER,OU=Domain Controllers,DC=anthaifood,DC=com".
The attempt to remove the FRS settings on CN=SERVER,CN=Servers,CN=Default-First-
Site-Name,CN=Sites,CN=Configuration,DC=anthaifood,DC=com failed because "Element
not found.";
metadata cleanup is continuing.
"CN=SERVER,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=an
thaifood,DC=com" removed from server "ser.anthaifood.com"
metadata cleanup: quit "Lệnh 15 trong quá trình remove server have died
ntdsutil: quit "Lệnh 16 trong quá trình remove server have died
Disconnecting from ser.anthaifood.com...

C:\>
-----------------------------------------------------------

- Tiếp theo bạn bỏ dĩa cài win2k3 vào cài thêm bộ support tool (SUPTOOLS.MSI)

- Sau khi cài xong bộ support tool, ta vào start ---> run ---> mmc .
- vào menu file ----> add remove snap in ---> chọn công cụ có tên là ADSI edit ---> mở ADSI edit chuột phải chọn dòng connect to...


Tại dòng select a well known naming context: ta chọn domain

Sau đó ta connect thêm 1 lần nữa .... Nhưng kỳ này ta chọn Configuration.



Sau đó chọn dòng như trong hình, để xóa các dấu vết còn lại của server 1


Delete dòng đang chọn

Đến đây coi như bạn đã hoàn thành remove server 1 đã chết

(Bài viết có tham khảo website nhatnghe.com)

Thiết lập hai server chạy song song - Phần III: Operation Master

PHẦN III: Operation Master

Giới thiệu: Mặc dù W2k/W2k3 hỗ trợ Multi Master (các DC hoạt động song song nhau, không phân biệt chính/phụ ). Tuy nhiên vẫn còn một số chức năng hoạt động ở chế độ Single Master, cụ thể là:
1. Schema Master: Quản lý schema, mỗi forest có 1 cái
2. Domain Naming: Quản lý danh sách các domain, mỗi forest có 1 cái
3. PDC: Giả lập server NT để chứng thực cho các WS đồi cũ (win9x), mỗi domain có 1 cái
4. RID: cấp số ID cho user, mỗi domain có 1 cái
5. Infrastructer: Quản lý danh sách user ở domain khác tham dự vào các nhóm của domain hiện tại., mỗi domain có 1 cái

Mặc định các chức năng do DC1 nắm giữ. Khi DC1 chết thì những thao tác liên quan đến 5 chức năng này sẽ không thực hiện được.

Khi DC1 "chết bất đắc kỳ tử", ta cần "cưỡng chế" DC2 giữ 5 chức năng này. Bài viết sẽ hướng dẫn chi tiết các bước thực hiện việc "cưỡng chế"

Bài viết này gồm 3 bước:
1. Giả sử master DC bị chết (DC1 bị ngủm bất đắc kỳ tử)
2. Từ Addition DC (DC2) ra CMD gõ các lệnh để cưỡng chế 5 chức năng single master của DC1 sang DC2
3. Sau khi thành công, DC2 tạo user và client join domain bằng user mới tạo thành công.

Thực hiện
1./ giả sử DC1 bị die (shutdown DC1)
2./ từ DC2, vào cmd gõ các lệnh để cưỡng chế 5 chức năng single master của DC1 sang DC2
Trình tự các lệnh như sau: (Copy từ màn hình DOS ra)
--------------------------------------------------------
Microsoft Windows [Version 5.2.3790]
(C) Copyright 1985-2003 Microsoft Corp.

C:\>ntdsutil 'Lệnh đầu tiên trong wá trình Operation Master
ntdsutil: ?
'Các lệnh trong 'ntdsutil'
? - Show this help information
Authoritative restore - Authoritatively restore the DIT database
Configurable Settings - Manage configurable settings
Domain management - Prepare for new domain creation
Files - Manage NTDS database files
Group Membership Evaluation - Evaluate SIDs in token for a given user or group
Help - Show this help information
LDAP policies - Manage LDAP protocol policies
Metadata cleanup - Clean up objects of decommissioned servers
Popups %s - (en/dis)able popups with "on" or "off"
Quit - Quit the utility
Roles - Manage NTDS role owner tokens
Security account management - Manage Security Account Database - Duplicate SID Cleanup
Semantic database analysis - Semantic Checker
Set DSRM Password - Reset directory service restore mode administrator account password


ntdsutil: Roles 'Lệnh thứ 2 trong wá trình Operation Master
fsmo maintenance: ?
'Các lệnhh trong 'Roles'
? - Show this help information
Connections - Connect to a specific domain controller
Help - Show this help information
Quit - Return to the prior menu
Seize domain naming master - Overwrite domain role on connected server
Seize infrastructure master - Overwrite infrastructure role on connected server
Seize PDC - Overwrite PDC role on connected server
Seize RID master - Overwrite RID role on connected server
Seize schema master - Overwrite schema role on connected server
Select operation target - Select sites, servers, domains, roles and naming contexts
Transfer domain naming master - Make connected server the domain naming master
Transfer infrastructure master - Make connected server the infrastructure master
Transfer PDC - Make connected server the PDC
Transfer RID master - Make connected server the RID master
Transfer schema master - Make connected server the schema master

fsmo maintenance: connections 'Lệnh thứ 3 trong quá trình Operation Master
server connections: ?
'Các lệnh trong 'connections'
? - Show this help information
Clear creds - Clear prior connection credentials
Connect to domain %s - Connect to DNS domain name
Connect to server %s - Connect to server, DNS name or IP address
Help - Show this help information
Info - Show connection information
Quit - Return to the prior menu
Set creds %s %s %s - Set connection creds as domain, user, pwd.
Use "NULL" for null password,
* to enter password from the console.

server connections: connect to server ser.anthaifood.com 'Lệnh thứ 4 trong wá trình Operation Master
Binding to ser.anthaifood.com ...
Connected to ser.anthaifood.com using credentials of locally logged on user.
server connections: quit 'Lệnh thứ 5 trong wá trình Operation Master

fsmo maintenance: seize schema master 'Lệnh thứ 6 trong wá trình Operation Master
Attempting safe transfer of schema FSMO before seizure.
ldap_modify_sW error 0x34(52 (Unavailable).
Ldap extended error message is 000020AF: SvcErr: DSID-0321032A, problem 5002 (UNAVAILABLE), data 1722
(Xuất hiện thông báo, chọn "YES")


Win32 error returned is 0x20af(The requested FSMO operation failed. The current FSMO holder could not be contacted.))
Depending on the error code this may indicate a connection,
ldap, or role transfer error.
Transfer of schema FSMO failed, proceeding with seizure ...
Server "ser.anthaifood.com" knows about 5 roles
Schema - CN=NTDS Settings,CN=SER,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=anthaifood,DC=com
Domain - CN=NTDS Settings,CN=SERVER,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=anthaifood,DC=com
PDC - CN=NTDS Settings,CN=SERVER,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=anthaifood,DC=com
RID - CN=NTDS Settings,CN=SERVER,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=anthaifood,DC=com
Infrastructure - CN=NTDS Settings,CN=SERVER,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=anthaifood,DC=com

fsmo maintenance: seize domain naming master 'Lệnh thứ 7 trong wá trình Operation Master
Attempting safe transfer of domain naming FSMO before seizure.
ldap_modify_sW error 0x34(52 (Unavailable).
Ldap extended error message is 000020AF: SvcErr: DSID-0321032A, problem 5002 (UNAVAILABLE), data 1722
(Xuất hiện thông báo, chọn "YES")


Win32 error returned is 0x20af(The requested FSMO operation failed. The current FSMO holder could not be contacted.))
Depending on the error code this may indicate a connection,ldap, or role transfer error.
Transfer of domain naming FSMO failed, proceeding with seizure ...
Server "ser.anthaifood.com" knows about 5 roles
Schema - CN=NTDS Settings,CN=SER,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=anthaifood,DC=com
Domain - CN=NTDS Settings,CN=SER,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=anthaifood,DC=com
PDC - CN=NTDS Settings,CN=SERVER,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=anthaifood,DC=com
RID - CN=NTDS Settings,CN=SERVER,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=anthaifood,DC=com
Infrastructure - CN=NTDS Settings,CN=SERVER,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=anthaifood,DC=com

fsmo maintenance: seize RID master 'Lệnh thứ 8 trong wá trình Operation Master (chữ RID viết hoa)
Attempting safe transfer of RID FSMO before seizure.
ldap_modify_sW error 0x34(52 (Unavailable).
Ldap extended error message is 000020AF: SvcErr: DSID-03210922, problem 5002 (UNAVAILABLE), data 1722
(Xuất hiện thông báo, chọn "YES")


Win32 error returned is 0x20af(The requested FSMO operation failed. The currentFSMO holder could not be contacted.))
Depending on the error code this may indicate a connection,ldap, or role transfer error.
Transfer of RID FSMO failed, proceeding with seizure ...
Searching for highest rid pool in domain
Server "ser.anthaifood.com" knows about 5 roles
Schema - CN=NTDS Settings,CN=SER,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=anthaifood,DC=com
Domain - CN=NTDS Settings,CN=SER,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=anthaifood,DC=com
PDC - CN=NTDS Settings,CN=SERVER,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=anthaifood,DC=com
RID - CN=NTDS Settings,CN=SER,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=anthaifood,DC=com
Infrastructure - CN=NTDS Settings,CN=SERVER,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=anthaifood,DC=com

fsmo maintenance: seize PDC 'Lệnh thứ 9 trong wá trình Operation Master
(chữ PDC viết hoa)
Attempting safe transfer of PDC FSMO before seizure.
ldap_modify_sW error 0x34(52 (Unavailable).
Ldap extended error message is 000020AF: SvcErr: DSID-03210511, problem 5002 (UNAVAILABLE), data 1722
(Xuất hiện thông báo, chọn "YES")


Win32 error returned is 0x20af(The requested FSMO operation failed. The current FSMO holder could not be contacted.))
Depending on the error code this may indicate a connection,
ldap, or role transfer error.
Transfer of PDC FSMO failed, proceeding with seizure ...
Server "ser.anthaifood.com" knows about 5 roles
Schema - CN=NTDS Settings,CN=SER,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=anthaifood,DC=com
Domain - CN=NTDS Settings,CN=SER,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=anthaifood,DC=com
PDC - CN=NTDS Settings,CN=SER,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=anthaifood,DC=com
RID - CN=NTDS Settings,CN=SER,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=anthaifood,DC=com
Infrastructure - CN=NTDS Settings,CN=SERVER,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=anthaifood,DC=com

fsmo maintenance: seize infrastructure master 'Lệnh thứ 10 trong wá trình Operation Master
Attempting safe transfer of infrastructure FSMO before seizure.
ldap_modify_sW error 0x34(52 (Unavailable).
Ldap extended error message is 000020AF: SvcErr: DSID-0321032A, problem 5002 (UNAVAILABLE), data 1722
(Xuất hiện thông báo, chọn "YES")


Win32 error returned is 0x20af(The requested FSMO operation failed. The current FSMO holder could not be contacted.))
Depending on the error code this may indicate a connection,
ldap, or role transfer error.
Transfer of infrastructure FSMO failed, proceeding with seizure ...
Server "ser.anthaifood.com" knows about 5 roles
Schema - CN=NTDS Settings,CN=SER,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=anthaifood,DC=com
Domain - CN=NTDS Settings,CN=SER,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=anthaifood,DC=com
PDC - CN=NTDS Settings,CN=SER,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=anthaifood,DC=com
RID - CN=NTDS Settings,CN=SER,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=anthaifood,DC=com
Infrastructure - CN=NTDS Settings,CN=SER,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=anthaifood,DC=com
fsmo maintenance: quit 'Lệnh thứ 11 trong wá trình Operation Master
ntdsutil: quit 'Lệnh thứ 12 trong wá trình Operation Master
Disconnecting from ser.anthaifood.com...

C:\>

--------------------------------------------------------

3./ Bây giờ ta thử bằng cách từ máy DC 2 (vừa được lên master) ta tạo user và từ máy client có thể join vào domain bằng user mới được tạo.
Test bằng cách này vẫn chưa đầy đủ lắm, nếu ta mở Domain Controller Security Policy & Domain Security Policy lên được thì đã thành công.

(Bài viết có thao khảo từ nhatnghe.com)

Thiết lập hai server chạy song song - Phần II: Distributed file system – DFS

Phần II: Distributed file system – DFS

Giới thiệu: Sau khi đã thiết lập 2 DC chạy song song (phần 1), thì khi 1 trong 2 DC này chết, thì user vẫn logon vào domain bình thường. Nhưng nhu cầu sử dụng không dừng tại đây, yêu cầu mới được đặt ra:

- Xây dựng một hệ thống thư mục sao cho việc truy xuất dữ liệu của user không bị phụ thuộc vào nơi chưa thư mục đó nhằm mục đích dễ bảo trì hệ thống
- Các File server load balancing với nhau
- Nếu có 1 File server chết vẫn không ảnh hưởng đến user

Đó là lý do sử dụng Distributed file system (DFS)

Yêu cầu: đã làm các bước ở phần 1
Thực hiện bài này gồm các bước:
-bước 1: Trên server1, tạo thư mục (trên 1 ổ dĩa bất kỳ) chứa các thành phần cấu tạo rootdfs, và thư mục data chứa dữ liệu cho user dùng(share 2 thư mục này)
-bước 2:trên server2,tạo thư muc backup root,và thư mục backup data(trên ỗ dĩa bất kỳ)
-bước 3: sữ dụng distributed file system để cấu hình root, và tạo link cho thư mục data.
-bước 4:client Map thư mục data về xài ,test thử bàng cách tạo file ,lưu file và sửa file.và ta thấy các file đều được lưu ở 2 server, tắt 1 trong 2 DC mà client vẫn o biết và sữ dụng thư mục Map bình thường

Thực hiện:
server1
-Trước hết ta tạo trên ổ dĩa bất kỳ 2 thư mục. Tên các bạn đặt tùy ý, ở đây mình đặt là "root dfs" và "data"
-Thư mục "root dfs" chứa các thành phần tạo nên root của Distributed file system. Còn thư mục "data" là thư mục cho user MAP về xài. Sau đó share 2 thư mục trên (share full cho dễ làm)
server 2:
-Đồng thời trên server 2 ,cũng tạo 2 thư mục dùng để backup rootdfs và data.chúng ta cũng share 2 thư mục đó (share full cho dễ làm)

*Sau đó ta quay lại server 1 cấu hình cho DFS:
-Trên server 1:
Vào administrative tool -> chọn Distributed file system. Trong Distributed file system chuột phải chọn New root:
Trong màn hình New Root Winzard chọn Next:

Chọn Domain Root trong cửa sổ Root Type -> click Next

Chọn Domain, nếu trường hợp có nhiều domain.

Chọn server.

Đặt tên cho Root Name. (đặt tên là RootDFS)

Chọn thư mục share Root dfs

Click vào finish. Vậy là ta tạo được 1 rootdfs


- Tiếp theo là bạn sẽ tạo 1 root target: Tại root bạn click chuột phải chọn "New target root". ta sẽ tạo 1 root target trên server2 (tên server2 là ser)

Trong hộp thoại "Root share" ta tìm đến thư mục mà ta share làm backup root dfs ,ở đây mình chọn là "backup root" vậy là ta đã hoàn chĩnh tạo root dfs cho cả 2 DC



- Tiếp theo ta tạo link từ root (khi user MAP thư mục này xài bằng đường link này). Trong ô link name: bạn đặt tên cho link (ở đây tôi đặt tên là Dataserver)
- bạn nhìn xuống ô Preview of UNC path to the link: đây là đường dẫn để user dùng map thư mục data về xài
- Bạn bấm browse sau đó chọn đường dẫn đến thư muc "data" ở "server1". Sau đó bạn bấm OK sẽ tạo được 1 link nàm trong root dfs mà bạn tạo


- Tiếp theo ta sẽ tạo 1 "link target" bằng cách chuột phải lên "link data" ta mới tạo chọn "new target" -> Thưc hiện giống phần trên: trong hộp thoại chọn "browse" tìm đến thư mục chứa "backup data" nằm trên "server2": -> NEXT -> OK, nó sẽ hỏi bạn có Đồng bộ không,? bạn bấm OK ->OK mấy cái cho xong

Sau đó reset 2 máy DC lại ,coi như đã xong .việc tiếp theo là chúng ta đi kiễm tra

TỪ MÁY CLIENT (CHẮC CHẮN MÁY CLIENT ĐÃ JOIN VÀO DOMAIN)

Từ máy client ->start ->run ->cmd
Đánh lệnh: net use z: \\anthaifood\rootdfs\dataserver\%username% để ta MAP thư mục data về cho từng user.
Sau đó trong ỗ dĩa đã MAP bạn tạo thử 1 file.
Sau đó bạn wa bên "DC 1" vào thư mục "data"
Bên "DC2" vào thư mục "backup data" xem coi có file bạn mới tạo chưa? Nếu có thì chúc mừng bạn ..bạn đã thành công.

Thiết lập hai server chạy song song - Phần I

Bài viết này gồm các bước sau:
- Bước 1 : Dựng Domain Controller cho Server1
- Bước 2 : Dùng Server2 join Domain vào Server1 và dựng Domain Controller cho máy Server2
- Bước 3 : Đồng bộ 2 server, bật Gobal Catalog
- Bước 4 : Join domain cho máy client
- Bước 5 : Tắt chế độ cache logon và test thử bằng cách tắt 1 trong 2 Domain Controller.

1/ Máy Server 1: Nâng cấp lên domain controller

Đặt IP tĩnh cho DC theo các tham số sau:
IP: 192.168.1.10
NetMask: 255.255.255.0
Preferred DNS Server: 192.168.1.10

  • Vào Start -> Run -> Chạy chương trình DCPROMO để nâng cấp lên lên Domain Controller
  • Cửa sổ "Active Directory Installation Wizard" , nhấn Next
  • Domain Controller Type, chọn Domain controller for a new domain và click next
  • Ở khung Ceate New Domain, chọn Domain in a new forest
  • Khung New Domain Name, điền vào domains của bạn (ở đây là anthaifood.com)
  • NetBIOS Domain Name, để nguyên giá trị mặc định
  • Chọn giá trị mặc định cho các thư mục chứa cấu hình hệ thống
  • DNS Registration Diagnostics, chọn Install and configure the DNS server on this computer, and set this computer to use this DNS server as its preferrend DNS server
  • Permissions, chọn Permissions compatible only with Windows 2000 or Windows Server 2003 operating systems ....
  • Dicrectory Services Restore Mode Administrator Password, điền password nếu bạn cần.
  • Chọn Finish để kết thúc quá trình cài đặt và reboot lại.
Sau khi reboot lại thì tạo user tên “u1” , password: 123 (Để tạo được thì ta phải chỉnh sữa lại trong Domain Controller Policy một tí)

2/ Máy Server 2: Join vào domain và nâng cấp lên domain controller.

A/ Join domain :

Đặt IP tĩnh cho server2 theo các tham số sau:
IP: 192.168.1.20
NetMask: 255.255.255.0
Preferred DNS Server: 192.168.1.10

Click nút phải chuột trên My Computer / Properties / Computer Name / Change
Điền tên domain “anthaifood.com” vào ô domain

Sau khi OK, sẽ hiện lên 1 của sổ ta điền user để join domains, bạn điền user : administrator (user của máy server1)

OK, reboot lại máy server 2

B/ Dựng Domain Controller

Sau khi rebot lại máy Server2, vào Start -> Run -> Chạy chương trình DCPROMO để nâng cấp lên lên Domain Controller. (lúc này ta vẫn sử dụng tài khoản administrator cục bộ của máy server2)

Cửa sổ "Active Directory Installation Wizard" , nhấn Next
Tại cửa sổ "Domain Controller Type" chọn dòng Additional domain controller for an existing domain.



Network Credentials: Nhập username & password administrator của máy server1


Để mặc định tại các cửa sổ này




Dicrectory Services Restore Mode Administrator Password, điền password nếu cần (là password cần khi chúng ta restore hệ thống Domain Controller)


Đến cửa sổ này thì đợi một tí.


Đến đây thì đã thành công, chọn Finish để kết thúc quá trình cài đặt và reboot lại.


C/ Dựng DNS :

Đặt lại IP cho server2 theo các tham số sau:
IP: 192.168.1.20
NetMask: 255.255.255.0
Preferred DNS Server: 192.168.1.20

Vào Control Panel -> Windows Components, chọn Details
Ở phần Networking Services chọn Domain Name System (DNS) và nhấn OK, nhấn tiếp Next để cài đặt.

3/ Đồng bộ 2 server và join domains cho client

A/ Server1:

Start -> Program File -> Administrator Tool -> Active Directory Site and Services

Trong cữa sổ Active Directory Site and Services chọn Sites -> Defaut-Fist-Site-Name -> Servers thì sẽ thấy 2 server, vào properties từng NTDS Settings của mỗi server và check vào Gobal Catalog -1-.

Trỏ Alternate DNS Server1 về Server2 (192.168.1.20)

B/ Server 2:
Trỏ Alternate DNS Server2 về Server1 (192.168.1.10)

Reboot Server1 & Server2

4/ Máy Client:

Đặt IP tĩnh cho máy Client theo các tham số sau:
IP: 192.168.1.2
NetMask: 255.255.255.0
Preferred DNS Server: 192.168.1.10
Alternate DNS Server : 192.168.1.20

Click nút phải chuột trên My Computer / Properties / Computer Name / Change
Điền tên domain “anthaifood.com” vào ô domain, khi hỏi username và password thì điền vào tài khoản quản trị của Domain Controller (DC)
Reboot lại Client

Sau khi reboot lại đăng nhập bằng tài khoản sau: user: u1 / password : 123

5/ thử nghiệm:

Tắt đi 1 trong 2 server mà máy client vẫn login vào được DC, tạo thêm u2,u3 ... để thử nghiệm.
Ghi chú: tắt chế độ cache logon trong local plicy (interactive logon) test mới chính xác
Cách tắt chế độ cache logon
Security Settings > Local Policies > Security Options
Interactive logon: Number of previous logons to cache (in case domain controller is not available) Not Defined  cho giá trị này = 0.

Ghi chú:
-1-: Global Catalog là một Database rút gọn của bộ AD đầy đủ, Global Catalog chỉ chứa những thuộc tính thường dùng của các object.

Trong môi trường single domain, MS khuyến cáo tất cả các Domain controller đều đảm nhận 2 chức năng là DNS và Global Catalog. Cũng trong mô hình này, Globla Catalog sẽ được build trực tiếp từ AD local mà không cần replicate.
(Tham khảo thêm: http://technet.microsoft.com/en-us/library/cc728188(WS.10).aspx)

(Tham khảo tại trang nhatnghe.com)
Ngăn chặn virus lây từ USB <-> Computer

Ngăn chặn virus lây từ USB <-> Computer

Đây là cách ngăn chặn hầu hết các virus sinh ra từ file autorun.inf

1. Cách chống virus lây từ máy tính sang usb

Trong usb ta tạo 1 file autorun.inf có thuộc tính Read-Only

2. Cách chống virus lây từ usb sang máy tính

Start -> run -> gpedit.msc

User configuration -> Administrative Templetes -> System

Nhìn bên phải tìm key Turn off Autoplay, nhấn double click vào Turn off Autoplay

Chọn tab Setting -> Enabled -> All Drives -> OK
Cách xóa status trong Yahoo Messenger

Cách xóa status trong Yahoo Messenger

Các status mà mình đã gõ vào Y!M thông thường nó save chồng và không xóa được. Để xóa các status này, bạn làm như sau :

Cách 1 : Chỉnh Registry

Vào Start \Run \regedit

[HKEY_CURRENT_USER\Software\Yahoo\Pager\profiles\nick muốn xóa status\Custom Msgs]
Nhìn bên trái có các status, mỗi status có 3 giá trị trong registry, xóa 3 giá trị đó là xong (REG_SZ, REG_BINARY, REG_DWORD)

Sau đó sign out yahoo messenger hay restart máy là xong

Cách 2 : Sử dụng phần mềm YIM-Status Edit

Link down : http://www.box.net/shared/2n22slz0or
Ta`i lie^.u   C.E.H  - v.5

Ta`i lie^.u C.E.H - v.5

Giới thiệu
Kì thi chứng chỉ Hacker mũ trắng(Certified Ethical Hacker – viết tắt: CEH) được phát triển bởi hội đồng chuyên gia cố vấn thương mại điện tử thế giới nhằm cung cấp một chứng chỉ có giá trị trong ngành bảo mật chuyên nghiệp. Chứng chỉ CEH được cấp cho những người đạt đến mức độ hiểu biết và sự khéo léo trong xử lí sự cố nhất định và nó chứng tỏ khả năng của họ trong lĩnh vực tin học và an toàn mạng

Nội Dung:
• Module 1: Introduction to Ethical Hacking
• Module 2: Footprinting
• Module 3: Scanning
• Module 4: Enumeration
• Module 5: System Hacking
• Module 6: Trojans and Backdoors
• Module 7: Sniffers
• Module 8: Denial of Service
• Module 9: Social Engineering
• Module 10: Session Hijacking
• Module 11: Hacking Web Servers
• Module 12: Web Application Vulnerabilities
• Module 13: Web-based Password Cracking Techniques
• Module 14: SQL Injection
• Module 15: Hacking Wireless Networks
• Module 16: Virus and Worms
• Module 17: Physical Security
• Module 18: Linux Hacking
• Module 19: Evading IDS, Firewalls, and Honeypots
• Module 20: Buffer Overflows
• Module 21: Cryptography
• Module 22: Penetration Testing

Tài Liệu:

Tài liệu tiếng anh: http://www.box.net/shared/09zm8nulu5
Slide của môn học:
hxxp://rapidshare.com/files/67209440/CEHv5_Assembly_Language_Tutorial.pdf
hxxp://rapidshare.com/files/67209777/CEHv5_Module_23a_-_Exploit_Writing.pdf
hxxp://rapidshare.com/files/67209807/CEHv5_Module_23b_-_Exploit_Writing.pdf
hxxp://rapidshare.com/files/67209885/CEHv5_Module_23c_-_Exploit_Writing.pdf
hxxp://rapidshare.com/files/67210216/CEHv5_Module_26_-_Reverse_Engineering_Techniques.pdf
hxxp://rapidshare.com/files/67204974/CEH_v5_Module_00__Student_Introduction.pdf
hxxp://rapidshare.com/files/67205075/CEH_v5_Module_01_Introduction_to_Ethical_Hacking.p df
hxxp://rapidshare.com/files/67205339/CEH_v5_Module_02_Footprinting.pdf
hxxp://rapidshare.com/files/67205587/CEH_v5_Module_03_Scanning.pdf
hxxp://rapidshare.com/files/67205708/CEH_v5_Module_04_Enumeration.pdf
hxxp://rapidshare.com/files/67206042/CEH_v5_Module_05_System_Hacking.pdf
hxxp://rapidshare.com/files/67206260/CEH_v5_Module_06_Trojans_and_Backdoors.pdf
hxxp://rapidshare.com/files/67206493/CEH_v5_Module_07_Sniffers.pdf
hxxp://rapidshare.com/files/67206617/CEH_v5_Module_08_Denial_of_Service.pdf
hxxp://rapidshare.com/files/67207048/CEH_v5_Module_09_Social_Engineering.pdf
hxxp://rapidshare.com/files/67207113/CEH_v5_Module_10_Session_Hijacking.pdf
hxxp://rapidshare.com/files/67207238/CEH_v5_Module_11_Hacking_Webservers.pdf
hxxp://rapidshare.com/files/67207333/CEH_v5_Module_12_Web_Application_Vulnerabilities.p df
hxxp://rapidshare.com/files/67207556/CEH_v5_Module_13_Web-based_Password_Cracking_Techniques.pdf
hxxp://rapidshare.com/files/67207639/CEH_v5_Module_14_SQL_Injection.pdf
hxxp://rapidshare.com/files/67207972/CEH_v5_Module_15_Hacking_Wireless_Networks.pdf
hxxp://rapidshare.com/files/67208297/CEH_v5_Module_16_Virus_and_Worms.pdf
hxxp://rapidshare.com/files/67208675/CEH_v5_Module_17_Physical_Security.pdf
hxxp://rapidshare.com/files/67208782/CEH_v5_Module_18_Linux_Hacking.pdf
hxxp://rapidshare.com/files/67209049/CEH_v5_Module_19_Evading_IDS_Firewall_and_Honeypot .pdf
hxxp://rapidshare.com/files/67209080/CEH_v5_Module_20_Buffer_Overflow.pdf
hxxp://rapidshare.com/files/67209191/CEH_v5_Module_21_Cryptography.pdf
hxxp://rapidshare.com/files/67209235/CEH_v5_Module_22_Penetration_Testing.pdf
hxxp://rapidshare.com/files/67209335/CEH_v5_Module_24_Covert_Hacking.pdf
hxxp://rapidshare.com/files/67209380/CEH_v5_Module_25_Writing_Virus_Codes.pdf

Desription
Xa Cách

Xa Cách

Xa Cách
Tác giả: Xuân Diệu
 
  
Có một bận em ngồi xa anh quá
Anh bảo em ngồi xích lại gần hơn,
Em xích  gần hơn một chút anh hờn,
Em ngoan ngoãn xích gần hơn chút nữa.

Anh  sắp giận, em mỉm cười, vội vã
Đến kề anh, và mơn trớn: "Em đây"
Anh vui  liền, nhưng bỗng lại buồn ngay.
Vì anh nghĩ, thế vẫn còn xa lắm.

Đôi  mắt của người yêu, ôi vực thẳm!
Ôi trời xa, vừng trán của người yêu!
Ta  thấy gì đâu sau sắc yêu kiều
Mà ta riết giữa đôi tay thất vọng.

Dầu  tin tưởng: Chung một đời, một mộng,
Em là em; anh vẫn cứ là anh.
Có thể  nào qua Vạn Lí trường thành
Của hai vũ trụ chứa đầy bí mật.

Thương  nhớ cũ trôi theo ngày tháng mất,
Quá khứ anh, anh không nhắc cùng em.
-  Linh hồn ta còn u ẩn hơn đêm,
Ta chưa thấu, nữa là ai thấu rõ.

Kiếm  mãi, nghi hoài, hay ghen bóng gió,
Anh muốn vào dò xét giấc em mơ,
Nhưng  anh giấu em những mộng không ngờ,
Cũng như em giấu những điều quá thực... 

Hãy sát đôi đầu! Hãy kề đôi ngực!
Hãy trộn nhau đôi mái tóc ngắn  dài!
Những cánh tay! Hãy quấn riết đôi vai!
Hãy dâng cả tình yêu lên  sóng mắt!

Hãy khăng khít những cặp môi gắn chặt
Cho anh nghe đôi hàm  ngọc của răng;
Trong say sưa, anh sẽ bảo em rằng:
"Gần thêm nữa! Thế vẫn  còn xa lắm!"
Microsoft® Windows® Malicious Software Removal Tool

Microsoft® Windows® Malicious Software Removal Tool

Công cụ Microsoft Windows Malicious Software Removal kiểm tra các máy tính đang sử dụng hệ điều hành Windows XP, Windows 2000, và Windows Server 2003 để tìm kiếm các phần mềm nguy hiểm — bao gồm cả Blaster, Sasser, và Mydoom— và giúp bạn loại bỏ chúng. Khi quá trình tìm kiếm và loại bỏ đã hoàn thành, một công cụ sẽ hiển thị sẽ báo cáo kết quả cho bạn biết được những phần mềm nguy hiểm nào đã bị phát hiện và loại bỏ.

Microsoft đưa ra phiên bản cập nhật cho công cụ này vào thứ 3 tuần thứ 2 mỗi tháng nhằm đáp ứng nhu cầu bảo mật liên tục. Công cụ này luôn sẵn sàng trong gói cập nhật Microsoft Update, Windows Update và Microsoft Download Center.

Ghi chú
Phiên bản của công cụ này được phát hành bởi Microsoft Update và Windows Update được chạy nền và sẽ báo cáo lại bất kỳ sự lây nhiễm nào được tìm thấy trong máy của bạn. Nếu như bạn muốn chạy công cụ này nhiều lần trong tháng thì bạn có thể sử dụng phiên bản trên Website, bạn có thể download bản cài đặt tại Download Center.

Bởi vì máy tính có thể trông vẫn hoạt động bình thường khi bị lây nhiễm, Microsoft khuyên bạn nên chạy công cụ này ngay cả khi máy bạn đang chạy ổn định. Bạn cũng nên cập nhật thường xuyên các chương trình antivirus để giúp máy tính của bạn tránh khỏi các chương trình nguy hiểm.

Download
Quản lý mạng Windows bằng Script - Phần 10: Các thủ thuật của kịch bản điều khiển xa

Quản lý mạng Windows bằng Script - Phần 10: Các thủ thuật của kịch bản điều khiển xa

Trong các bài viết trước, chúng ta đã được giới thiệu về một số khái niệm và các vấn đề xung quanh kịch bản điều khiển xa trên nền Windows. Trong phần này chúng tôi sẽ tiếp tục giới thiệu cho các bạn hai thủ thuật liên quan đến kịch bản điều khiển xa này qua sử dụng kịch bản WMI được viết bằng VBScript.

Thủ thuật 1: Tạo Cscript.exe, cấu hình kịch bản mặc định trên các máy tính từ xa

Đây là thủ thuật đầu tiên và nó thực sự đơn giản nhưng cũng khá thông minh do đó chúng ta cần phải có một số kiến thức cơ bản để dễ dàng tiếp cận. Bảo đảm rằng bạn biết một số cách để khởi chạy kịch bản trên các máy tính Windows. Ví dụ, nếu bạn có kịch bản ChangeIPAddress.vbs trên một máy tính thì có thể khởi chạy nó bằng cách:

- Kích đúp vào file .vbs hoặc shortcut trỏ đến file.

- Kích Start, sau đó kích Run, nhập vào ChangeIPAddress.vbs và kích OK.

- Mở một cửa sổ lệnh và điều hướng đến thư mục có kịch bản, nhập vào ChangeIPAddress.vbs sau đó nhấn ENTER.

Điều gì sẽ xảy ra nếu bạn thực hiện những thứ này, câu trả lời đó phụ thuộc vào những thiết lập mặc định nào được đặt cho Windows Script Host (WSH) trên máy tính của bạn. Windows Script Host (WSH) là một ngôn ngữ kịch bản độc lập dùng cho các scripting engine, có nghĩa là WSH sử dụng scripting engine là VBScript để chạy các kịch bản VBScript, vì vậy WSH hành động như “môi trường” bên trong mà kịch bản của bạn chạy. Tuy nhiên WSH thực sự có hai cấu hình kịch bản mặc định:

- Wscript.exe, cung cấp một hộp thoại trên Windows cho việc thiết lập các thuộc tính kịch bản và hiển thị đầu ra kịch bản.

- Cscript.exe, cho phép cấu hình các thuộc tính kịch bản và hiển thị đầu ra kịch bản từ cửa sổ lệnh.

Hãy xem sự khác nhau giữa chúng trong trường hợp bạn không biết hoặc quên. Chúng tôi sẽ sử dụng kịch bản ChangeIPAddress.vbs từ phần 2 của loạt bài này để minh chứng. Hãy mở cửa sổ lệnh trên máy tính Windows Vista và sử dụng kịch bản này để thay đổi địa chỉ IP của máy tính thành 172.16.11.173. Bây giờ việc đầu tiên cần chú ý đó là thay đổi các thiết lập cấu hình mạng cần thiết những tiêu chuẩn quản trị cục bộ trên máy, để thực hiện điều này chúng ta cần kích chuột phải vào shortcut của cửa sổ lệnh dưới Accessories và chọn Run As Administrator. Khi thực hiện điều đó thì cửa sổ User Account Control (UAC) xuất hiện, kích Continue để tiếp tục (nếu tài khoản người dùng đầu tiên là một thành viên trong nhóm quản trị cục bộ trên máy) hoặc nhập vào các thông tin quan trọng của tài khoản quản trị cục bộ (nếu tài khoản chỉ là một thành viên của nhóm người dùng cục bộ trên máy).

Mở cửa sổ lệnh mức quản trị và đánh lệnh để thay đổi địa chỉ của máy tính (Hình 1).


Hình 1: Thay đổi địa chỉ IP dùng kịch bản

Điều gì sẽ xảy ra khi chúng ta nhấn ENTER, khi nhấn xong một vài giây sau, hộp thoại dưới đây sẽ xuất hiện (Hình 1)


Hình 2: Đầu ra của kịch bản xuất hiện như một hộp thoại

Thông báo này đến từ đâu? Bạn hãy nhớ lại rằng kịch bản của chúng ta Change IPAddress.vbs gồm có các dòng dưới đây ở cuối của kịch bản:

'Display result or error code

If errEnableStatic=0 Then
Wscript.Echo "Adapter's IP address has been successfully changed to " & strAddress
Else
Wscript.Echo "Changing the adapter's address was not successful. Error code " & errEnableStatic
End If

Vậy những gì đang xảy ra là lệnh Wscript.Echo đang hiển thị đầu ra (nghĩa là hiển thị một hộp thoại) thay vì hiển thị đầu ra bên trong cửa sổ lệnh. Lý do là vì mặc định Wscript.exe có cấu hình kịch bản mặc định và cấu hình này được thiết lập cho những gì nó hiển thị đầu ra bằng cửa sổ giống như vậy.

Chúng ta có thể dừng các hành vi này và lấy đầu ra kịch bản để hiển thị bên trong cửa sổ lệnh được không? Có một cách có thể giải quyết được nhiệm vụ này đó là triệu gọi Cscript.exe được cấu hình kịch bản dòng lệnh khi chạy kịch bản. Bạn có thể thực hiện được điều này như hình 3 dưới đây:


Hình 3: Sử dụng cscript.exe xuất đầu ra kịch bản bên trong cửa sổ lệnh

Tuy nhiên cách này có thể làm phiền bạn vì phải đánh cscript trước khi đánh tên kịch bản giống như vậy, vì vậy bạn có thể thiết lập Cscript.exe như một cấu hình kịch bản mặc định cho tất cả triệu gọi WSH bằng thực hiện này (Hình 4):


Hình 4: Tạo cscript.exe cho cấu hình mặc định

Bây giờ chúng ta có thể chạy kịch bản và hiển thị đầu ra của nó từ bên trong cửa sổ lệnh mà không cần phải đánh cscript trước (Hình 5):


Hình 5: Khi Cscript.exe là cấu hình kịch bản mặc định thì đầu ra
của kịch bản được hiển thị bên trong cửa sổ lệnh

Chúng ta có một nhóm kịch bản giống ChangeIPAddress.vbs mà muốn chạy từ xa bằng cách triển khai chúng đến các máy đích như kịch bản đăng nhập hoặc khởi động kịch bản bằng Group Policy. Bên cạnh đó một số kịch bản có các câu lệnh Wscript.Echo trong chúng tạo đầu ra kịch bản. Điều gì sẽ xảy ra khi một trong các kịch bản đó được triển khai cho máy tính điều khiển xa và chạy trên máy? Một loạt các cửa sổ sẽ xuất hiện trên màn hình desktop của người dùng như kịch bản chạy trên máy, và người dùng sẽ phải kích OK, OK và OK,… cho tới khi các cửa sổ bật ra này biến mất hết và kịch bản kết thúc công việc của nó. Vậy có cách nào để khắc phục hiện tượng này?

Chúng ta có thể khắc phục hiện tượng này bằng hai cách. Đầu tiên, bạn có thể soạn thảo tất cả các kịch bản xóa hoặc chú thích câu lệnh Wscript.Echo để kịch bản không tạo ra bất cứ đầu ra nào. Đó là một chút trở ngại, đặc biệt nếu bạn có một số lượng lớn kịch bản. Vì vậy phương pháp thứ hai là gì? Đây là một mẹo nhỏ mà chúng tôi muốn chia sẻ với bạn:

Trong môi trường Active Directory trong Group Policy đang được sử dụng để quản lý các máy tính desktop, bạn có thể thay đổi cấu hình kịch bản từ Wscript.exe thành Cscript.exe trên các máy tính trong một OU bằng các bước dưới đây:

1. Sử dụng Notepad để tạo một file văn bản có tên là ChangeToCscript.bat với hai dòng dưới đây trong nó:
@echo off
cscript //h:cscript //s

2. Mở GPO được liên kết đến OU và điều hướng đến Computer Configuration\Windows Settings\Scripts\Startup.

3. Kích đúp vào thiết lập chính sách khởi động Startup để mở trang thuộc tính của nó.

4. Kích nút Show Files và copy/paste file ChangeToCscript.bat từ Windows Explorer vào thư mục con của SYSVOL, nơi các kịch bản khởi động được đặt.

5. Kích nút Add trên trang thuộc tính cho thiết lập chính sách khởi động.

6. Kích nút Browse và chọn ChangeToCscript.bat.

7. Đóng tất cả các trang thuộc tính.

8. Việc bổ sung thêm kịch bản khởi động này sẽ làm cho kịch bản mặc định trên các máy tính mục tiêu được chuyển từ Wscript.exe thành Cscript.exe trong lần khởi động lại tiếp theo của các máy tính đó, và điều này sẽ làm việc mà không cần quan tâm đến người dùng mục tiêu là người dùng chuẩn hay quản trị viên cục bộ.

Lưu ý: ChangeToCscript.bat phải được chạy như một kịch bản khởi động và không là kịch bản đăng nhập. Nếu bạn chạy nó như một kịch bản đăng nhập thì nó sẽ chỉ làm việc khi người dùng mục tiêu là quản trị viên trên máy tính.

Bạn có thể làm gì với chỉ một file có hai dòng? Bây giờ bạn có thể triển khai các kịch bản mà bạn muốn đối với các máy tính mục tiêu và không phải lo lắng về người dùng gặp phải rất nhiều cửa sổ pop-up xuất hiện trên màn hình của họ.

Thủ thuật 2: Thực hiện “runAs” mà không cần các thông tin chỉ định

Thủ thuật thứ hai được đệ trình với chúng tôi bởi một trong các độc giả sau khi đã đọc các phần trước loạt bài này. Chúng tôi được phép trích dẫn trực tiếp từ email giải thích của anh ấy:

FYI là cách tôi thực hiện ‘runAs’ mà không cần phải nhập vào các thông tin quan trọng khác, là sử dụng tài khoản quản trị viên cục bộ cho WMI, sau đó lưu mật khẩu quản trị trong một file văn bản trên một mạng chia sẻ được bảo vệ bởi sự cho phép NTFS. Ví dụ, nếu ‘tech1’, ‘tech4’ và ‘tech5’ là các tài khoản miền thông thường (không phải quản trị miền), nhưng các người dùng này được thẩm định để chạy kịch bản WMI, sau đó tôi cho phép truy cập NTFS các tài khoản này thành file văn bản, file văn bản này gồm có mật khẩu quản trị cục bộ. Sau đó có kịch bản nhập passwword và kết nối bằng sử dụng Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2", strComputer & “\Administrator”, strImportedPassword).

Ở trên là không đúng 100%. Tôi sử dụng.

Set objSWbemLocator = CreateObject("WbemScripting.SWbemLocator")
objSWbemLocator.Security_.Privileges.AddAsString("SeSecurityPrivilege")
Set objWMIService = objSWbemLocator.ConnectServer(strComputer, "root\cimv2", strComputer & "\administrator", strPWD, "", "", &H80)
Set objReg = objSWbemLocator.ConnectServer(strComputer, "root\default", strComputer & "\administrator", strPWD, "", "", &H80)
Set oReg = objReg.Get("StdRegProv")


…để hoàn thành thứ tương tự.

Việc kết nối với tài khoản quản trị cục bộ lại có hiệu quả thú vị khác; nó không để lại bản sao profile tài khoản quản trị miền của bạn trên máy tính trong Documents and Settings. Khi sử dụng tài khoản miền của mình, tôi đã có một số người dùng hỏi “Tại sao bạn được kết nối vào máy tính của tôi” và việc phân vân rằng đang xảy ra việc rình mò gì đó. Bằng cách sử dụng tài khoản quản trị cục bộ, họ không nhận ra bất cứ ai đã kết nối (họ được khóa không cho xem các bản ghi bảo mật).

Với bản ghi, trong thực tế chúng ta có một cặp mật khẩu quản trị cục bộ khác nhau sử dụng ở đây; vì vậy kịch bản nhập vào một danh sách và thử từng cái một cho tới khi thành công hoặc hết các tùy chọn

Quản trị mạng Windows bằng Script - Phần 9: Tìm hiểu kịch bản điều khiển xa

Quản trị mạng Windows bằng Script - Phần 9: Tìm hiểu kịch bản điều khiển xa

Lúc này bạn cần phải quay lại ôn và nghiên cứu một cách chi tiết các kỹ thuật của kịch bản điều khiển xa trước khi chúng ta tiến xa hơn trong vấn đề này. Một cách cũng tốt cho bạn đó là nhảy vào và thử mọi thứ, tuy nhiên cách làm này đôi khi lại đưa bạn gặp phải bức tường. Để tránh gặp phải bức tường này chúng ta phải tìm hiểu về những nền tảng của chúng.

Hai loại kịch bản điều khiển xa

Có hai loại kịch bản điều khiển xa. Loại thứ nhất là khi chúng ta chạy một kịch bản trên máy tính A và máy tính mục tiêu là B để thực hiện một số hành động trên nó. Trong thử nghiệm bằng sử dụng kịch bản ChangeIPAddress.vbs, chúng tôi đã thay đổi dòng:

strComputer = "."

thành:

strComputer = "xp2"

Nếu chúng tôi sử dụng dòng đầu trên ở trên và chạy kịch bản trên máy tính A thì sẽ thay đổi được địa chỉ IP của máy tính này. Còn nếu chúng ta sử dụng dòng thứ hai ở trên và chạy kịch bản trên máy tính A thì sẽ thay đổi được địa chỉ IP của máy tính B.

Kiểu thứ hai của kịch bản điều khiển xa và nó làm việc giống như vậy. Tôi là một quản trị viên, đã đăng nhập vào máy tính A và có một kịch bản muốn sử dụng để thực hiện một số công việc trên máy tính B. Tuy nhiên thay vì cố gắng chạy kịch bản trên máy tính A và mục tiêu là máy tính B, tôi muốn chạy kịch bản trực tiếp trên máy tính 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ểu về kết nối kịch bản điều khiển xa

Bây giờ chúng ta hãy tập trung vào kiểu đầu tiên của kịch bản điều khiển xa. Nó có nghĩa gì khi chạy một kịch bản trên máy tính cục bộ của bạn để kết nối đến một máy tính điều khiển xa và chạy ngược lại nó? Nó có 3 ý nghĩa:

  • Kết nối mạng
  • Nhận dạng người dùng
  • Cho phép thích hợp

1. Kết nối mạng

Với kịch bản để thực hiện điều gì đó trên máy tính điều khiển xa, trước tiên nó phải thành lập được kết nối mạng với máy tính điều khiển xa. Những vấn đề gì có thể ngăn cản kết nối mạng của bạn?

Đầu tiên, nó có thể là vấn đề tên, nếu kịch bản của bạn không thể giải quyết được hostname của máy tính hoặc FQDN vào địa chỉ IP của nó thì kịch bản có thể bị lỗi.

Thứ hai, nó có thể là vấn đề tường lửa. Chúng ta đã nhìn thấy trong bài viết trước, để có được kịch bản WMI của chúng ta có thể chạy cho một máy tính điều khiển xa thì chúng ta phải mở ngoại lệ quản trị từ xa Remote Administration trong tường lửa Windows trên máy tính điều khiển xa. Bây giờ nếu bạn mở Windows Firewall applet từ Control Panel và chọn tab Exceptions thì sẽ không thấy hộp kiểm Remote Administration được gán nhãn mà bạn có thể chọn để mở ngoại lệ này. Lý do của điều này là Control Panel applet này có ý nghĩa chính dành cho người dùng gia đình sử dụng để cấu hình tường lửa của họ. Trong môi trường doanh nghiệp, nơi Active Directory được sử dụng, cách quản lý Windows Firewall được ưa thích là sử dụng Group Policy. Chúng ta đã thấy trong bài viết trước rằng thiết lập Group Policy mà chúng ta cần cấu hình như dưới đây:

Computer Configuration\Administrative Templates\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 đi vào Server Message Block (SMB), nếu cổng này bị khóa trên tường lửa của máy tính điều khiển xa thì bạn không chỉ không thể kết nối tới nó bằng WMI mà cũng không thể kết nối đến nó bằng các công cụ quản trị MMC chuẩn như Computer Management. Khi cổng bị khóa và bạn đang thử chạy các kịch bản đối với máy tính từ xa thì có thể gặp một số lỗi khó hiểu như “System error 53 has occurred. The network path was not found” – Lỗi hệ thống 53 xuất hiện. Đường dẫn mạng không được tìm thấy…

• Cổng TCP 135 là cổng dành cho lưu lượng vào Distributed COM (DCOM). Đặc biệt hơn, cổng 135 là cổng lắng nghe cho DCOM Service Control Manager (SCM), cung cấp các dịch vụ RPC cho việc thuyết minh các đối tượng COM.

Độ dài hay ngắn của nó là cả hai cổng TCP 135 và 445 cần phải mở trên tường lửa của máy tính từ xa nếu các truy vấn WMI chạy từ máy tính cục bộ đến sử dụng thành công RCP để kết nối dịch vụ WMI trên máy tính điều khiển xa và đến thuyết minh thành công các đối tượng DCOM trên máy tính từ xa.

2. Nhận dạng người dùng

Khi bạn chạy kịch bản cho một máy tính điều khiển xa và có thể thiết lập kết nối mạng với máy tính từ xa, sau đó kịch bản có thể thực hiện các hành động trên máy tính từ xa đó. Nhưng các hành động mà nó có thể thực hiện lại phụ thuộc vào sự nhận dạng với kịch bản nào đang chạy trên máy tính điều khiển. Ví dụ tôi đăng nhập vào máy tính A bằng sử dụng một tài khoản người dùng tên miền thông thường. Sau đó tôi chạy kịch bản ChangeIPAddress.vbs và nhắm nó vào máy tính điều khiển xa B. Kịch bản sử dụng RPC để kết nối đến dịch vụ WMI trên máy tính B và nó thay đổi địa chỉ IP của máy tính B. Nhưng bất thành. Lý do tại sao? Ai đang cố gắng thực hiện hành động này trên máy tính điều khiển xa? Trên máy tính cục bộ (máy tính A) bạn là người dùng và khi chạy kịch bản bằng mặc định nó là hiện thân cho nhận dạng của bạn, nghĩa là kịch bản sẽ thực hiện các hành động của nó bằng sự nhận dạng của bạn (tài khoản người dùng của bạn). Vì vậy kịch bản sẽ thay đổi địa chỉ IP của máy tính điều khiển xa, nó có hiệu quả đối với bạn, một người dùng trong miền, người đang thực hiện điều này. Mặt khác nó sẽ hỏng khi việc thay đổi yêu cầu đến sự ủy nhiệm quản trị viên cục bộ.

Vì vậy, khi bạn đang ngồi tại máy tính A, đã đăng nhập vào người dùng của miền và bạn vẫn muốn sử dụng kịch bản của mình để thay đổi địa chỉ IP của máy tính B. Bạn có thể thực hiện chúng như 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)

Vấn đề ở đây là không an toàn – mật khẩu của tài khoản quản trị viên cho máy tính từ xa có trong văn bản của kịch bản và có thể bị quan sát.

Vậy làm thế nào để có thể loại bỏ được hai dòng đầu tiên này và giấu các giá trị strUser và strPassword cho kịch bản như các đối số khi kịch bản được chạy? Tốt hơn vẫn là việc mã hóa cứng các giá trị này trong kịch bản, nhưng nếu ai đó có chương trình đang chạy (như Network Monitor 3.0) thì họ có thể lấy được các thông tin quan trọng và khi đó bạn đã thỏa hiệp máy tính từ xa của mình.

Sẽ như thế nào nếu bạn sử dụng một lệnh nâng cao như runas /user:Administrator cmd.exe và sau đó chạy kịch bản từ cửa sổ lệnh nâng cao mà không cần chỉ định các thông tin quan trọng khác? Đó có thể là giải pháp tốt nhất cho kịch bản từ xa, nơi bạn muốn bảo đảm kịch bản có sự nhận dạng thích hợp (thường quản trị nội bộ trên máy tính mục tiêu) dù cho nó khá phức tạp. Rõ ràng, bạn có thể đơn giản việc đăng nhập vào máy trạm làm việc như tài khoản quản trị miền và đơn giản mở một lệnh và chạy kịch bản.

3. Cho phép thích hợp

Bạn đang chạy kịch bản trên máy tính A và kịch bản được giả định để thực hiện một số hành động trên máy tính B. Kịch bản đã thành lập kết nối mạng với dịch vụ WMI trên máy tính B và đang cố gắng thực hiện các hành động của nó bằng sử dụng đúng nhận dạng (thường là các thông tin quản trị viên cục bộ) trên máy tính B. Những gì có thể làm cho kịch bản này bị hỏng tại đây? Không đủ sự cho phép! Nếu kịch bản đang cố gắng thực hiện một số hành động được điều khiển bởi ACL (như việc thay đổi một đối tượng file hoặc tạo một đối tượng trong Active Directory hoặc kích hoạt một đối tượng DCOM) và bạn không có sự cho phép thích hợp để thực hiện hành động đó thì kịch bản sẽ bị lỗi. Không may thay đó thường là phần khó nhất của kịch bản điều khiển xa khi có các cho phép NTFS, DCOM và nhiều kiểu cho phép khác trên nền Windows. Bạn có thể có các cho phép đúng nhưng không có quyền đúng, nghĩa là các quyền người dùng để thực hiện một số hành động. Ví dụ, nói rằng bạn muốn sử dụng kịch bản để xóa sự kiện đăng nhập trên máy tính điều khiển xa nhưng sự nhận dạng của bạn thiếu quyền bảo mật SeSecurityPrivilege trên máy tính từ xa đó thì khi đó kịch bản của bạn sẽ bị lỗi

(Theo quantrimang.com)

Quản trị mạng Windows bằng Script - Phần 8: Xử lý lỗi kịch bản điều khiển từ xa bằng Network Monitor 3.0

Quản trị mạng Windows bằng Script - Phần 8: Xử lý lỗi kịch bản điều khiển từ xa bằng Network Monitor 3.0

Trong phần 7, chúng ta đã bắt đầu xử lý sự cố lỗi xuất hiện khi cố gắng thay đổi từ xa địa chỉ IP trên máy tính XP bằng kịch bản ChangeIPAddress.vbs được phát triển từ trước.

Lỗi đó là:

SWbemObjectEx: The remote procedure call failed

Trong phần trước chúng tôi đã đề cập rằng chúng tôi đã liên hệ với một số chuyên gia có uy tín trong việc xử lý lỗi này, và câu trả lời tốt nhất nhận được đó là hotfix có thể làm hỏng chức năng WMI và kết quả là kịch bản này đã làm việc nhưng kèm với nó có một lỗi.

Một độc giả đã liên hệ với tôi với lời nhận xét dưới đây:

Theo tôi đây không phải lỗi trong hotfix. Hãy chú ý rằng bạn đang thay đổi địa chỉ IP của XP2. Thủ tục gọi từ xa đã thất bại vì nó mất kết nối với XP2 trên địa chỉ gốc(172.16.11.43). Sau đó nó phụ thuộc vào thời gian (khoảng 1 phút) để tìm kiếm cho XP2 địa chỉ IP mới (172.16.11.65) trước khi bỏ địa chỉ cũ. Hãy hình dung bạn chỉ thâm nhập vào một máy chủ như quản trị viên và thay đổi địa chỉ IP của máy chủ. Bạn sẽ mất kết nối? Nó sẽ treo trong chốc lát. Nhưng việc thay đổi cổng mặc định trên máy chủ sẽ không ngắt kết nối đang tồn tại (thừa nhận bạn thực hiện điều này từ cùng một subnet). Nếu cố gắng thay đổi thiết lập cổng mặc định từ một vị trí ở xa thì bạn phải chịu bị giữ chậm.

Vậy làm thế nào để chúng ta có thể kiểm tra lời giải thích này?

Sử dụng Network Monitor 3.0

Microsoft gần đây đã phát hành một phiên bản Network Monitor mới, công cụ này là một phần của Microsoft Systems Management Server. Network Monitor 3.0 có vài cải tiến so với phiên bản trước, cụ thể là:

  • 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 để bắt dấu vết từ máy tính trên đó đang chạy kịch bản ChangeIPAddress.vbs. Dưới đây là phần thiết lập để 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)

Máy đích
Tên: test125.test.com
Địa chỉ IP: 172.16.11.125 (tĩnh)

Bộ điều khiển miền
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

Hãy kiểm tra NM3 một cách đơn giản. Kích chuột vào nút Play để bắt đầu một capture, sau đó từ máy tính test124 mở một cửa sổ lệnh và nhập vào ping 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: Vết tích của ping 172.16.11.125

Đây là những gì chúng ta mong đợi: hai gói ARP (một yêu cầu ARP và theo sau là một đáp ứng ARP) và một loạt các gói ICMP (các thông điệp Echo Request được cho sau bởi các thông điệp Echo Reply). Nếu bạn biết kết nối mạng TCP/IP cơ bản thì điều này hoàn toàn dễ dàng có thể hiểu được.

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.

Lần vết

Chúng tôi bắt đầu bằng việc khởi động lại cả hai máy trạm và xóa bộ nhớ cache (ARP, NDS,…), sau đó mở cửa sổ lệnh trên máy tính test124, đá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 là 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 là tổng quan những gì đã xảy ra. Giữ lại 90 giây muộn nhất và đã có 274 khung được giữ. Thông báo lỗi xuất hiện ở xung quanh khung 241 và cửa sổ lệnh trả về tại khung 274. Có rất nhiều lưu lượng để chúng ta có thể phân tích! Hãy nhìn vào hình 6 ở trên, chúng ta có thể bắt đầu phân tích nó:

  • 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).

Quan sát sẽ không thể thấy được tất cả 274 khung trong hình vẽ, vì vậy chúng tôi đã copy thông tin về tất cả khung vào một file văn bản. Bạn có thể kích chuột vào đây để xem trang thông tin về tất cả các khung khi chạy ChangeIPAddress.vbs.

Khi xử lý sự cố thông thường bạn phải bắt đầu với những gì bạn biết chứ không phải là những gì không hiểu. Với lưu ý đó chúng tôi hiểu rằng kịch bản khác (ChangeGateway.vbs) mà chúng tôi đã phát triển trong bài viết trước đã làm việc mà không tạo ra bất kỳ một thông báo lỗi nào. Vì vậy trước khi xem xét kỹ trong file ChangeIPAddress.txt, hãy khởi động lại các máy trạm của bạn và thực hiện một capture khác, khi đó nó sẽ thể hiện kết quả chạy 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

Bây giờ chúng ta hãy thử và phân tích lần capture thứ hai này (làm việc mà không phát sinh lỗi) bằng cách chia file tóm tắt các khung thành từng đoạn, đây là một trong số các đoạn đó:

1 0.000000 NetmonFilter NetmonFilter: Updated Capture Filter: None
2 0.000000 NetworkInfo NetworkInfo: Network info for TEST124, Network Adapter Count = 1

Chỉ là NM3 header – bỏ qua

3 0.000000 {DNS:3, UDP:2, IPv4:1} 172.16.11.124 dc181.test.local DNS DNS: QueryId = 0x4275, QUERY (Standard query), Query for 124.11.16.172.in-addr.arpa of type SOA on class Internet
4 1.281250 {ARP:4} 172.16.11.181 172.16.11.1 ARP ARP: Request, 172.16.11.181 asks for 172.16.11.1
5 1.890625 {DNS:6, UDP:5, IPv4:1} 172.16.11.124 dc181.test.local DNS DNS: QueryId = 0xEB6E, QUERY (Standard query), Query for test125.test.local of type Host Addr on class Internet
6 1.890625 {DNS:6, UDP:5, IPv4:1} dc181.test.local 172.16.11.124 DNS DNS: QueryId = 0xEB6E, QUERY (Standard query), Response - Success
7 1.906250 {ARP:7} 172.16.11.124 172.16.11.125 ARP ARP: Request, 172.16.11.124 asks for 172.16.11.125
8 1.906250 {ARP:7} 172.16.11.125 172.16.11.124 ARP ARP: Response, 172.16.11.125 at 00-11-D8-E3-EC-84

Tên và địa chỉ (DNS và ARP)

9 1.906250 {TCP:9, IPv4:8} 172.16.11.124 test125.test.local TCP TCP: Flags=.S......, SrcPort=1069, DstPort=DCE endpoint resolution(135), Len=0, Seq=1441244938, Ack=0, Win=65535 (scale factor 0) = 65535
10 1.906250 {TCP:9, IPv4:8} test125.test.local 172.16.11.124 TCP TCP: Flags=.S..A..., SrcPort=DCE endpoint resolution(135), DstPort=1069, Len=0, Seq=871910569, Ack=1441244939, Win=65535 (scale factor 0) = 65535
11 1.906250 {TCP:9, IPv4:8} 172.16.11.124 test125.test.local TCP TCP: Flags=....A..., SrcPort=1069, DstPort=DCE endpoint resolution(135), Len=0, Seq=1441244939, Ack=871910570, Win=65535 (scale factor 0) = 65535

Test124 đã thành lập một kết nối TVP với test125.

12 1.906250 {MSRPC:10, TCP:9, IPv4:8} 172.16.11.124 test125.test.local MSRPC MSRPC: c/o Bind: UUID{99FCFEC4-5260-101B-BBCB-00AA0021347A} DCOM-IObjectExporter Call=0x1 Assoc Grp=0x0 Xmit=0x16D0 Recv=0x16D0
13 1.906250 {MSRPC:10, TCP:9, IPv4:8} test125.test.local 172.16.11.124 MSRPC MSRPC: c/o Bind Ack: Call=0x1 Assoc Grp=0x32E9 Xmit=0x16D0 Recv=0x16D0
14 1.906250 {MSRPC:10, TCP:9, IPv4:8} 172.16.11.124 test125.test.local DCOM DCOM
15 1.906250 {MSRPC:10, TCP:9, IPv4:8} test125.test.local 172.16.11.124 DCOM DCOM

Test124 thành lập một ràng buộc RCP với test125 và gọi DCOM.

16 1.921875 {TCP:11, IPv4:8} 172.16.11.124 test125.test.local TCP TCP: Flags=.S......, SrcPort=1070, DstPort=DCE endpoint resolution(135), Len=0, Seq=3003512395, Ack=0, Win=65535 (scale factor 0) = 65535
17 1.921875 {TCP:11, IPv4:8} test125.test.local 172.16.11.124 TCP TCP: Flags=.S..A..., SrcPort=DCE endpoint resolution(135), DstPort=1070, Len=0, Seq=4088700167, Ack=3003512396, Win=65535 (scale factor 0) = 65535
18 1.921875 {TCP:11, IPv4:8} 172.16.11.124 test125.test.local TCP TCP: Flags=....A..., SrcPort=1070, DstPort=DCE endpoint resolution(135), Len=0, Seq=3003512396, Ack=4088700168, Win=65535 (scale factor 0) = 65535

Bắt tay 3-đường TCP giữa hai máy tính.

19 1.921875 {UDP:12, IPv4:1} 172.16.11.124 dc181.test.local KerberosV5 KerberosV5: TGS Request Realm: TEST.LOCAL Sname: RPCSS/test125.test.local
20 1.921875 {UDP:12, IPv4:1} dc181.test.local 172.16.11.124 KerberosV5 KerberosV5: TGS Response Cname: Administrator

Thẩm định Kerberos

21 1.921875 {MSRPC:13, TCP:11, IPv4:8} 172.16.11.124 test125.test.local MSRPC MSRPC: c/o Bind: UUID{000001A0-0000-0000-C000-000000000046} DCOM-IRemoteSCMActivator Call=0x2 Assoc Grp=0x32E9 Xmit=0x16D0 Recv=0x16D0
22 1.921875 {ARP:14} 172.16.11.181 172.16.11.125 ARP ARP: Request, 172.16.11.181 asks for 172.16.11.125
23 1.921875 {MSRPC:13, TCP:11, IPv4:8} test125.test.local 172.16.11.124 MSRPC MSRPC: c/o Bind Ack: Call=0x2 Assoc Grp=0x32E9 Xmit=0x16D0 Recv=0x16D0
24 1.921875 {MSRPC:13, TCP:11, IPv4:8} 172.16.11.124 test125.test.local MSRPC MSRPC: c/o Alter Cont: UUID{000001A0-0000-0000-C000-000000000046} DCOM-IRemoteSCMActivator Call=0x2
25 1.921875 {MSRPC:13, TCP:11, IPv4:8} test125.test.local 172.16.11.124 MSRPC MSRPC: c/o Alter Cont Resp: Call=0x2 Assoc Grp=0x32E9 Xmit=0x16D0 Recv=0x16D0
26 1.921875 {MSRPC:13, TCP:11, IPv4:8} 172.16.11.124 test125.test.local DCOM DCOM
27 1.937500 {MSRPC:13, TCP:11, IPv4:8} test125.test.local 172.16.11.124 DCOM DCOM

Nhiều RPC và DCOM. Chúng tôi nghĩ rằng “Alter Cont” chỉ thị nội dung xen kẽ đang được sử dụng, nhưng thực tế lại không bảo đảm như vậy. Lẽ ra mọi thứ phải là OK khi kịch bản đã làm việc mà không phát sinh ra bất kỳ một lỗi nào.

28 1.937500 {TCP:15, IPv4:8} 172.16.11.124 test125.test.local TCP TCP: Flags=.S......, SrcPort=1072, DstPort=1117, Len=0, Seq=3011418470, Ack=0, Win=65535 (scale factor 0) = 65535
29 1.937500 {TCP:15, IPv4:8} test125.test.local 172.16.11.124 TCP TCP: Flags=.S..A..., SrcPort=1117, DstPort=1072, Len=0, Seq=554832695, Ack=3011418471, Win=65535 (scale factor 0) = 65535
30 1.937500 {TCP:15, IPv4:8} 172.16.11.124 test125.test.local TCP TCP: Flags=....A..., SrcPort=1072, DstPort=1117, Len=0, Seq=3011418471, Ack=554832696, Win=65535 (scale factor 0) = 65535

Một bắt tay TCP khác

31 1.937500 {UDP:16, IPv4:1} 172.16.11.124 dc181.test.local KerberosV5 KerberosV5: TGS Request Realm: TEST.LOCAL Sname: TEST125$
32 1.937500 {UDP:16, IPv4:1} dc181.test.local 172.16.11.124 KerberosV5 KerberosV5: TGS Response Cname: Administrator

Tiếp tục với Kerberos

33 1.937500 {MSRPC:17, TCP:15, IPv4:8} 172.16.11.124 test125.test.local MSRPC MSRPC: c/o Bind: UUID{00000143-0000-0000-C000-000000000046} DCOM-IRemUnknown2 Call=0x1 Assoc Grp=0x0 Xmit=0x16D0 Recv=0x16D0
34 1.937500 {MSRPC:17, TCP:15, IPv4:8} test125.test.local 172.16.11.124 MSRPC MSRPC: c/o Bind Ack: Call=0x1 Assoc Grp=0x333D Xmit=0x16D0 Recv=0x16D0
35 1.937500 {MSRPC:17, TCP:15, IPv4:8} 172.16.11.124 test125.test.local MSRPC MSRPC: c/o Alter Cont: UUID{00000143-0000-0000-C000-000000000046} DCOM-IRemUnknown2 Call=0x1
36 1.937500 {MSRPC:17, TCP:15, IPv4:8} test125.test.local 172.16.11.124 MSRPC MSRPC: c/o Alter Cont Resp: Call=0x1 Assoc Grp=0x333D Xmit=0x16D0 Recv=0x16D0
37 1.937500 {MSRPC:17, TCP:15, IPv4:8} 172.16.11.124 test125.test.local DCOM DCOM
38 1.937500 {MSRPC:17, TCP:15, IPv4:8} test125.test.local 172.16.11.124 DCOM DCOM
39 1.937500 {MSRPC:17, TCP:15, IPv4:8} 172.16.11.124 test125.test.local MSRPC MSRPC: c/o Alter Cont: UUID{D4781CD6-E5D3-44DF-AD94-930EFE48A887} WMI-IWbemLoginClientID Call=0x2
40 1.937500 {MSRPC:17, TCP:15, IPv4:8} test125.test.local 172.16.11.124 MSRPC MSRPC: c/o Alter Cont Resp: Call=0x2 Assoc Grp=0x333D Xmit=0x16D0 Recv=0x16D0
41 1.937500 {MSRPC:17, TCP:15, IPv4:8} 172.16.11.124 test125.test.local DCOM DCOM
42 1.937500 {MSRPC:17, TCP:15, IPv4:8} test125.test.local 172.16.11.124 DCOM DCOM
43 1.937500 {MSRPC:17, TCP:15, IPv4:8} 172.16.11.124 test125.test.local MSRPC MSRPC: c/o Alter Cont: UUID{F309AD18-D86A-11D0-A075-00C04FB68820} WMI-IWbemLevel1Login Call=0x3
44 1.937500 {MSRPC:17, TCP:15, IPv4:8} test125.test.local 172.16.11.124 MSRPC MSRPC: c/o Alter Cont Resp: Call=0x3 Assoc Grp=0x333D Xmit=0x16D0 Recv=0x16D0
45 1.937500 {MSRPC:17, TCP:15, IPv4:8} 172.16.11.124 test125.test.local DCOM DCOM
46 1.937500 {MSRPC:17, TCP:15, IPv4:8} test125.test.local 172.16.11.124 DCOM DCOM
47 1.937500 {MSRPC:17, TCP:15, IPv4:8} 172.16.11.124 test125.test.local DCOM DCOM
48 1.937500 {MSRPC:17, TCP:15, IPv4:8} test125.test.local 172.16.11.124 DCOM DCOM
49 1.953125 {MSRPC:17, TCP:15, IPv4:8} 172.16.11.124 test125.test.local MSRPC MSRPC: c/o Alter Cont: UUID{9556DC99-828C-11CF-A37E-00AA003240C7} WMI-IWbemServices Call=0x5
50 1.953125 {MSRPC:17, TCP:15, IPv4:8} test125.test.local 172.16.11.124 MSRPC MSRPC: c/o Alter Cont Resp: Call=0x5 Assoc Grp=0x333D Xmit=0x16D0 Recv=0x16D0
51 1.953125 {MSRPC:17, TCP:15, IPv4:8} 172.16.11.124 test125.test.local DCOM DCOM
52 1.953125 {MSRPC:17, TCP:15, IPv4:8} test125.test.local 172.16.11.124 DCOM DCOM
53 1.953125 {MSRPC:17, TCP:15, IPv4:8} 172.16.11.124 test125.test.local DCOM DCOM
54 1.953125 {MSRPC:17, TCP:15, IPv4:8} test125.test.local 172.16.11.124 DCOM DCOM
55 1.953125 {MSRPC:17, TCP:15, IPv4:8} 172.16.11.124 test125.test.local MSRPC MSRPC: c/o Alter Cont: UUID{1C1C45EE-4395-11D2-B60B-00104B703EFD} WMI-IWbemFetchSmartEnum Call=0x7
56 1.953125 {MSRPC:17, TCP:15, IPv4:8} test125.test.local 172.16.11.124 MSRPC MSRPC: c/o Alter Cont Resp: Call=0x7 Assoc Grp=0x333D Xmit=0x16D0 Recv=0x16D0
57 1.953125 {MSRPC:17, TCP:15, IPv4:8} 172.16.11.124 test125.test.local DCOM DCOM
58 1.953125 {MSRPC:17, TCP:15, IPv4:8} test125.test.local 172.16.11.124 DCOM DCOM
59 1.953125 {MSRPC:17, TCP:15, IPv4:8} 172.16.11.124 test125.test.local MSRPC MSRPC: c/o Alter Cont: UUID{423EC01E-2E35-11D2-B604-00104B703EFD} WMI-IWbemWCOSmartEnum Call=0x8
60 1.953125 {MSRPC:17, TCP:15, IPv4:8} test125.test.local 172.16.11.124 MSRPC MSRPC: c/o Alter Cont Resp: Call=0x8 Assoc Grp=0x333D Xmit=0x16D0 Recv=0x16D0
61 1.953125 {MSRPC:17, TCP:15, IPv4:8} 172.16.11.124 test125.test.local DCOM DCOM
62 2.015625 {MSRPC:17, TCP:15, IPv4:8} test125.test.local 172.16.11.124 DCOM DCOM

Có rất nhiều RPC/DCOM ở đây. Nó có vẻ bí ẩn nhưng nếu nhìn kỹ chúng bạn sẽ thấy một số WMI đang có như là WMI-IWbemLoginClientID, WMI-IWbemLevel1Login, WMI-IWbemServices, WMI-IWbemFetchSmartEnum,…. Tìm kiếm trên MSDN cho chúng ta thấy nhiều thông tin hơn về những gì xảy ra. Ví dụ, trang này cho chúng ta biết rằng “ Giao diện IwbemServices được sử dụng cho các máy khách và các nhà cung cấp để có thể truy cập vào các dịch vụ WMI” vì vậy nó giống như các giao diện WMI đang tồn tại được gọi trên máy tính điều khiển xa (sử dụng DCOM) bởi máy trạm chủ đang chạy kịch bản từ nó. Một số giao diện không thực sự gây khó hiểu đối với 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” dường như chỉ thị các kết nối được thực hiện trước đó đang được sử dụng vào nhiều mục đích khác. Chúng tôi sẽ bỏ qua một số khung trong phần tiếp theo này.

63 2.015625 {TCP:15, IPv4:8} test125.test.local 172.16.11.124 TCP TCP: [Continuation to #62]Flags=....A..., SrcPort=1117, DstPort=1072, Len=1460, Seq=554835972 - 554837432, Ack=3011421991, Win=65061 (scale factor 0) = 65061
64 2.015625 {TCP:15, IPv4:8} 172.16.11.124 test125.test.local TCP TCP: Flags=....A..., SrcPort=1072, DstPort=1117, Len=0, Seq=3011421991, Ack=554837432, Win=65535 (scale factor 0) = 65535
65 2.015625 {TCP:15, IPv4:8} test125.test.local 172.16.11.124 TCP TCP: [Continuation to #62]Flags=....A..., SrcPort=1117, DstPort=1072, Len=1460, Seq=554837432 - 554838892, Ack=3011421991, Win=65061 (scale factor 0) = 65061
66 2.015625 {TCP:15, IPv4:8} 172.16.11.124 test125.test.local TCP TCP: Flags=....A..., SrcPort=1072, DstPort=1117, Len=0, Seq=3011421991, Ack=554838892, Win=65535 (scale factor 0) = 65535
67 2.015625 {TCP:15, IPv4:8} test125.test.local 172.16.11.124 TCP TCP: [Continuation to #62]Flags=...PA..., SrcPort=1117, DstPort=1072, Len=1449, Seq=554838892 - 554840341, Ack=3011421991, Win=65061 (scale factor 0) = 65061
68 2.015625 {MSRPC:17, TCP:15, IPv4:8} test125.test.local 172.16.11.124 MSRPC MSRPC: c/o Continued Response: WMI-IWbemWCOSmartEnum Call=0x8 Context=0x5 Hint=0x198C Cancels=0x0
.
.
.
155 2.031250 {MSRPC:17, TCP:15, IPv4:8} test125.test.local 172.16.11.124 MSRPC MSRPC: c/o Continued Response: WMI-IWbemServices Call=0x9 Context=0x3 Hint=0x904 Cancels=0x0
156 2.031250 {TCP:15, IPv4:8} test125.test.local 172.16.11.124 TCP TCP: [Continuation to #155]Flags=...PA..., SrcPort=1117, DstPort=1072, Len=929, Seq=554924260 - 554925189, Ack=3011422236, Win=64816 (scale factor 0) = 64816
157 2.031250 {TCP:15, IPv4:8} 172.16.11.124 test125.test.local TCP TCP: Flags=....A..., SrcPort=1072, DstPort=1117, Len=0, Seq=3011422236, Ack=554925189, Win=65535 (scale factor 0) = 65535
158 2.031250 {MSRPC:17, TCP:15, IPv4:8} 172.16.11.124 test125.test.local DCOM DCOM
159 2.031250 {TCP:15, IPv4:8} 172.16.11.124 test125.test.local TCP TCP: [Continuation to #158]Flags=...PA..., SrcPort=1072, DstPort=1117, Len=1, Seq=3011423696 - 3011423697, Ack=554925189, Win=65535 (scale factor 0) = 65535
160 2.031250 {TCP:15, IPv4:8} test125.test.local 172.16.11.124 TCP TCP: Flags=....A..., SrcPort=1117, DstPort=1072, Len=0, Seq=554925189, Ack=3011423697, Win=65535 (scale factor 0) = 65535

Chúng ta có một cụm DCOM theo sau là các kết thúc kết nối TCP bằng FIN/ACK, vì vậy theo dự đoán kịch bản có thể đã thực hiện được công việc của nó và đang quét dọn làm sạch.

161 2.062500 {MSRPC:17, TCP:15, IPv4:8} test125.test.local 172.16.11.124 DCOM DCOM
162 2.062500 {MSRPC:17, TCP:15, IPv4:8} 172.16.11.124 test125.test.local DCOM DCOM
163 2.062500 {MSRPC:17, TCP:15, IPv4:8} test125.test.local 172.16.11.124 DCOM DCOM
164 2.062500 {MSRPC:17, TCP:15, IPv4:8} 172.16.11.124 test125.test.local DCOM DCOM
165 2.062500 {MSRPC:17, TCP:15, IPv4:8} test125.test.local 172.16.11.124 DCOM DCOM
166 2.062500 {MSRPC:17, TCP:15, IPv4:8} 172.16.11.124 test125.test.local DCOM DCOM
167 2.062500 {MSRPC:17, TCP:15, IPv4:8} test125.test.local 172.16.11.124 DCOM DCOM
168 2.062500 {MSRPC:17, TCP:15, IPv4:8} 172.16.11.124 test125.test.local DCOM DCOM
169 2.062500 {MSRPC:17, TCP:15, IPv4:8} test125.test.local 172.16.11.124 DCOM DCOM
170 2.078125 {TCP:15, IPv4:8} 172.16.11.124 test125.test.local TCP TCP: Flags=F...A..., SrcPort=1072, DstPort=1117, Len=0, Seq=3011424421, Ack=554926046, Win=64678 (scale factor 0) = 64678
171 2.078125 {TCP:15, IPv4:8} test125.test.local 172.16.11.124 TCP TCP: Flags=....A..., SrcPort=1117, DstPort=1072, Len=0, Seq=554926046, Ack=3011424422, Win=64811 (scale factor 0) = 64811
172 2.078125 {TCP:15, IPv4:8} test125.test.local 172.16.11.124 TCP TCP: Flags=F...A..., SrcPort=1117, DstPort=1072, Len=0, Seq=554926046, Ack=3011424422, Win=64811 (scale factor 0) = 64811
173 2.078125 {TCP:15, IPv4:8} 172.16.11.124 test125.test.local TCP TCP: Flags=....A..., SrcPort=1072, DstPort=1117, Len=0, Seq=3011424422, Ack=554926047, Win=64678 (scale factor 0) = 64678
174 2.093750 {TCP:9, IPv4:8} 172.16.11.124 test125.test.local TCP TCP: Flags=....A..., SrcPort=1069, DstPort=DCE endpoint resolution(135), Len=0, Seq=1441245035, Ack=871910766, Win=65339 (scale factor 0) = 65339
175 2.093750 {TCP:11, IPv4:8} 172.16.11.124 test125.test.local TCP TCP: Flags=....A..., SrcPort=1070, DstPort=DCE endpoint resolution(135), Len=0, Seq=3003514721, Ack=4088701653, Win=65535 (scale factor 0) = 65535
176 2.546875 {TCP:18, IPv4:1} 172.16.11.124 dc181.test.local TCP TCP: Flags=.S......, SrcPort=1074, DstPort=DCE endpoint resolution(135), Len=0, Seq=4283854964, Ack=0, Win=65535 (scale factor 0) = 65535
177 2.546875 {TCP:18, IPv4:1} dc181.test.local 172.16.11.124 TCP TCP: Flags=.S..A..., SrcPort=DCE endpoint resolution(135), DstPort=1074, Len=0, Seq=2447011944, Ack=4283854965, Win=16384 (scale factor 0) = 16384
178 2.546875 {TCP:18, IPv4:1} 172.16.11.124 dc181.test.local TCP TCP: Flags=....A..., SrcPort=1074, DstPort=DCE endpoint resolution(135), Len=0, Seq=4283854965, Ack=2447011945, Win=65535 (scale factor 0) = 65535


Ở đây có một số DNS và LDAP xuất hiện giữa test124 và bộ điều khiển miền. Không rõ tại sao nó lại xảy ra, nhưng chúng tôi sẽ bỏ qua một số khung đó khi chúng xuất hiện quá nhiều:

179 2.546875 {MSRPC:19, TCP:18, IPv4:1} 172.16.11.124 dc181.test.local MSRPC MSRPC: c/o Bind: UUID{E1AF8308-5D1F-11C9-91A4-08002B14A0FA} Endpoint Mapper Call=0x1 Assoc Grp=0x0 Xmit=0x16D0 Recv=0x16D0
180 2.546875 {MSRPC:19, TCP:18, IPv4:1} dc181.test.local 172.16.11.124 MSRPC MSRPC: c/o Bind Ack: Call=0x1 Assoc Grp=0x7DAD Xmit=0x16D0 Recv=0x16D0
181 2.546875 {MSRPC:19, TCP:18, IPv4:1} 172.16.11.124 dc181.test.local EPM EPM: Request: ept_map: NDR, Tracking Server Service v1.0, RPC v5, 0.0.0.0:135 (0x87) [DCE endpoint resolution(135)]
182 2.546875 {MSRPC:19, TCP:18, IPv4:1} dc181.test.local 172.16.11.124 EPM EPM: Response: ept_map: 0x16C9A0D6 - EP_S_NOT_REGISTERED
183 2.546875 {DNS:21, UDP:20, IPv4:1} 172.16.11.124 dc181.test.local DNS DNS: QueryId = 0x896A, QUERY (Standard query), Query for _ldap._tcp.Default-First-Site._sites.dc._msdcs.test.local of type SRV on class Internet
184 2.546875 {DNS:21, UDP:20, IPv4:1} dc181.test.local 172.16.11.124 DNS DNS: QueryId = 0x896A, QUERY (Standard query), Response - Success
185 2.546875 {LDAP:23, UDP:22, IPv4:1} 172.16.11.124 dc181.test.local LDAP LDAP: Search Request, MessageID:4, BaseObject: NULL, SearchScope: base Object, SearchAlias: neverDerefAliases
186 2.546875 {LDAP:23, UDP:22, IPv4:1} dc181.test.local 172.16.11.124 LDAP LDAP: Search Result Entry, MessageID:4, Status: Success
.
.
.
212 6.546875 {DNS:32, UDP:5, IPv4:1} 172.16.11.124 dc181.test.local DNS DNS: QueryId = 0x266D, QUERY (Standard query), Query for download.windowsupdate.com of type Host Addr on class Internet
213 6.546875 {ARP:4} 172.16.11.181 172.16.11.1 ARP ARP: Request, 172.16.11.181 asks for 172.16.11.1
214 7.546875 {DNS:32, UDP:5, IPv4:1} 172.16.11.124 dc181.test.local DNS DNS: QueryId = 0x266D, QUERY (Standard query), Query for download.windowsupdate.com of type Host Addr on class Internet
215 8.546875 {DNS:32, UDP:5, IPv4:1} 172.16.11.124 dc181.test.local DNS DNS: QueryId = 0x266D, QUERY (Standard query), Query for download.windowsupdate.com of type Host Addr on class Internet
216 9.281250 {ARP:4} 172.16.11.181 172.16.11.1 ARP ARP: Request, 172.16.11.181 asks for 172.16.11.1

Tại điểm này, kịch bản đã sẵn sàng kết thúc vì vậy chúng tôi đã kết thúc capture.

Phân tích của Capture cho ChangeIPAddress.vbs

Bây giờ chúng ta đã có một chút ý tưởng về những gì một capture của kịch bản điều khiển từ xa thành công trông như thế nào:

  • Một số DNS và ARP
  • Sự thiết lập của các TCP session bằng bắt tay 3 cách.
  • Ràng buộc RPC và DCOM
  • Nhiều bắt tay TCP
  • Kerberos (các máy tính trong một miền)
  • Nhiều RPC/DCOM
  • Nhiều bắt tay TCP, nhiều Kerberos, RPC/DCOM được kết hợp với truyền thông TCP.
  • Nhiều DCOM được theo sau là các TCP session được thành lập trước đó.

Toàn bộ những thứ đó mất khoảng trên 2s.

Bây giờ chúng ta hãy nhìn vào capture cho ChangeIPAddress.vbs (kịch bản đã phát sinh lỗi RPC khi chạy nó từ xa) và xem nó khác như thế nào với các kịch bản trên.

1 0.000000 NetmonFilter NetmonFilter: Updated Capture Filter: None
2 0.000000 NetworkInfo NetworkInfo: Network info for TEST124, Network Adapter Count = 1

Đó là Netmon

3 0.000000 {DNS:3, UDP:2, IPv4:1} test124.test.local dc181.test.local DNS DNS: QueryId = 0x7869, QUERY (Standard query), Query for test125.test.local of type Host Addr on class Internet
4 0.000000 {DNS:3, UDP:2, IPv4:1} dc181.test.local test124.test.local DNS DNS: QueryId = 0x7869, QUERY (Standard query), Response - Success
5 0.015625 {ARP:4} 172.16.11.124 172.16.11.125 ARP ARP: Request, 172.16.11.124 asks for 172.16.11.125
6 0.015625 {ARP:4} 172.16.11.125 172.16.11.124 ARP ARP: Response, 172.16.11.125 at 00-11-D8-E3-EC-84
7 0.015625 {TCP:6, IPv4:5} test124.test.local test125.test.local TCP TCP: Flags=.S......, SrcPort=1063, DstPort=DCE endpoint resolution(135), Len=0, Seq=539163285, Ack=0, Win=65535 (scale factor 0) = 65535
8 0.015625 {TCP:6, IPv4:5} test125.test.local test124.test.local TCP TCP: Flags=.S..A..., SrcPort=DCE endpoint resolution(135), DstPort=1063, Len=0, Seq=981335265, Ack=539163286, Win=65535 (scale factor 0) = 65535
9 0.015625 {TCP:6, IPv4:5} test124.test.local test125.test.local TCP TCP: Flags=....A..., SrcPort=1063, DstPort=DCE endpoint resolution(135), Len=0, Seq=539163286, Ack=981335266, Win=65535 (scale factor 0) = 65535

ARP, sau đó NDS, bắt tay TCP – như phần trước.

10 0.015625 {MSRPC:7, TCP:6, IPv4:5} test124.test.local test125.test.local MSRPC MSRPC: c/o Bind: UUID{99FCFEC4-5260-101B-BBCB-00AA0021347A} DCOM-IObjectExporter Call=0x1 Assoc Grp=0x0 Xmit=0x16D0 Recv=0x16D0
11 0.015625 {MSRPC:7, TCP:6, IPv4:5} test125.test.local test124.test.local MSRPC MSRPC: c/o Bind Ack: Call=0x1 Assoc Grp=0x32EA Xmit=0x16D0 Recv=0x16D0
12 0.031250 {MSRPC:7, TCP:6, IPv4:5} test124.test.local test125.test.local DCOM DCOM
13 0.031250 {MSRPC:7, TCP:6, IPv4:5} test125.test.local test124.test.local DCOM DCOM
14 0.078125 {TCP:8, IPv4:5} test124.test.local test125.test.local TCP TCP: Flags=.S......, SrcPort=1064, DstPort=DCE endpoint resolution(135), Len=0, Seq=1367843928, Ack=0, Win=65535 (scale factor 0) = 65535
15 0.078125 {TCP:8, IPv4:5} test125.test.local test124.test.local TCP TCP: Flags=.S..A..., SrcPort=DCE endpoint resolution(135), DstPort=1064, Len=0, Seq=3625279350, Ack=1367843929, Win=65535 (scale factor 0) = 65535
16 0.078125 {TCP:8, IPv4:5} test124.test.local test125.test.local TCP TCP: Flags=....A..., SrcPort=1064, DstPort=DCE endpoint resolution(135), Len=0, Seq=1367843929, Ack=3625279351, Win=65535 (scale factor 0) = 65535
17 0.078125 {UDP:9, IPv4:1} test124.test.local dc181.test.local KerberosV5 KerberosV5: TGS Request Realm: TEST.LOCAL Sname: RPCSS/test125.test.local
18 0.078125 {UDP:9, IPv4:1} dc181.test.local test124.test.local KerberosV5 KerberosV5: TGS Response Cname: Administrator

RPC, sau đó là DCOM, bắt tay TCP khác, Kerberos. Trông cũng tương tự như trước.

19 0.078125 {MSRPC:10, TCP:8, IPv4:5} test124.test.local test125.test.local MSRPC MSRPC: c/o Bind: UUID{000001A0-0000-0000-C000-000000000046} DCOM-IRemoteSCMActivator Call=0x2 Assoc Grp=0x32EA Xmit=0x16D0 Recv=0x16D0
20 0.093750 {ARP:11} 172.16.11.125 172.16.11.181 ARP ARP: Request, 172.16.11.125 asks for 172.16.11.181
21 0.093750 {MSRPC:10, TCP:8, IPv4:5} test125.test.local test124.test.local MSRPC MSRPC: c/o Bind Ack: Call=0x2 Assoc Grp=0x32EA Xmit=0x16D0 Recv=0x16D0
22 0.093750 {MSRPC:10, TCP:8, IPv4:5} test124.test.local test125.test.local MSRPC MSRPC: c/o Alter Cont: UUID{000001A0-0000-0000-C000-000000000046} DCOM-IRemoteSCMActivator Call=0x2
23 0.093750 {MSRPC:10, TCP:8, IPv4:5} test125.test.local test124.test.local MSRPC MSRPC: c/o Alter Cont Resp: Call=0x2 Assoc Grp=0x32EA Xmit=0x16D0 Recv=0x16D0
24 0.093750 {MSRPC:10, TCP:8, IPv4:5} test124.test.local test125.test.local DCOM DCOM
25 0.093750 {MSRPC:10, TCP:8, IPv4:5} test125.test.local test124.test.local DCOM DCOM
26 0.093750 {TCP:12, IPv4:5} test124.test.local test125.test.local TCP TCP: Flags=.S......, SrcPort=1066, DstPort=1117, Len=0, Seq=1180773456, Ack=0, Win=65535 (scale factor 0) = 65535
27 0.093750 {TCP:12, IPv4:5} test125.test.local test124.test.local TCP TCP: Flags=.S..A..., SrcPort=1117, DstPort=1066, Len=0, Seq=539972629, Ack=1180773457, Win=65535 (scale factor 0) = 65535
28 0.093750 {TCP:12, IPv4:5} test124.test.local test125.test.local TCP TCP: Flags=....A..., SrcPort=1066, DstPort=1117, Len=0, Seq=1180773457, Ack=539972630, Win=65535 (scale factor 0) = 65535
29 0.093750 {UDP:13, IPv4:1} test124.test.local dc181.test.local KerberosV5 KerberosV5: TGS Request Realm: TEST.LOCAL Sname: TEST125$
30 0.109375 {UDP:13, IPv4:1} dc181.test.local test124.test.local KerberosV5 KerberosV5: TGS Response Cname: Administrator

Cùng mẫu

31 0.109375 {MSRPC:14, TCP:12, IPv4:5} test124.test.local test125.test.local MSRPC MSRPC: c/o Bind: UUID{00000143-0000-0000-C000-000000000046} DCOM-IRemUnknown2 Call=0x1 Assoc Grp=0x0 Xmit=0x16D0 Recv=0x16D0
32 0.109375 {MSRPC:14, TCP:12, IPv4:5} test125.test.local test124.test.local MSRPC MSRPC: c/o Bind Ack: Call=0x1 Assoc Grp=0x333E Xmit=0x16D0 Recv=0x16D0
33 0.109375 {MSRPC:14, TCP:12, IPv4:5} test124.test.local test125.test.local MSRPC MSRPC: c/o Alter Cont: UUID{00000143-0000-0000-C000-000000000046} DCOM-IRemUnknown2 Call=0x1
34 0.109375 {MSRPC:14, TCP:12, IPv4:5} test125.test.local test124.test.local MSRPC MSRPC: c/o Alter Cont Resp: Call=0x1 Assoc Grp=0x333E Xmit=0x16D0 Recv=0x16D0
35 0.109375 {MSRPC:14, TCP:12, IPv4:5} test124.test.local test125.test.local DCOM DCOM
36 0.109375 {MSRPC:14, TCP:12, IPv4:5} test125.test.local test124.test.local DCOM DCOM
37 0.109375 {MSRPC:14, TCP:12, IPv4:5} test124.test.local test125.test.local MSRPC MSRPC: c/o Alter Cont: UUID{D4781CD6-E5D3-44DF-AD94-930EFE48A887} WMI-IWbemLoginClientID Call=0x2
38 0.109375 {MSRPC:14, TCP:12, IPv4:5} test125.test.local test124.test.local MSRPC MSRPC: c/o Alter Cont Resp: Call=0x2 Assoc Grp=0x333E Xmit=0x16D0 Recv=0x16D0
39 0.109375 {MSRPC:14, TCP:12, IPv4:5} test124.test.local test125.test.local DCOM DCOM
40 0.109375 {MSRPC:14, TCP:12, IPv4:5} test125.test.local test124.test.local DCOM DCOM
41 0.109375 {MSRPC:14, TCP:12, IPv4:5} test124.test.local test125.test.local MSRPC MSRPC: c/o Alter Cont: UUID{F309AD18-D86A-11D0-A075-00C04FB68820} WMI-IWbemLevel1Login Call=0x3
42 0.109375 {MSRPC:14, TCP:12, IPv4:5} test125.test.local test124.test.local MSRPC MSRPC: c/o Alter Cont Resp: Call=0x3 Assoc Grp=0x333E Xmit=0x16D0 Recv=0x16D0
43 0.109375 {MSRPC:14, TCP:12, IPv4:5} test124.test.local test125.test.local DCOM DCOM
44 0.109375 {MSRPC:14, TCP:12, IPv4:5} test125.test.local test124.test.local DCOM DCOM
45 0.109375 {MSRPC:14, TCP:12, IPv4:5} test124.test.local test125.test.local DCOM
COM
46 0.109375 {MSRPC:14, TCP:12, IPv4:5} test125.test.local test124.test.local DCOM DCOM
47 0.109375 {MSRPC:14, TCP:12, IPv4:5} test124.test.local test125.test.local MSRPC MSRPC: c/o Alter Cont: UUID{9556DC99-828C-11CF-A37E-00AA003240C7} WMI-IWbemServices Call=0x5
48 0.109375 {MSRPC:14, TCP:12, IPv4:5} test125.test.local test124.test.local MSRPC MSRPC: c/o Alter Cont Resp: Call=0x5 Assoc Grp=0x333E Xmit=0x16D0 Recv=0x16D0
49 0.109375 {MSRPC:14, TCP:12, IPv4:5} test124.test.local test125.test.local DCOM DCOM
50 0.109375 {MSRPC:14, TCP:12, IPv4:5} test125.test.local test124.test.local DCOM DCOM
51 0.109375 {MSRPC:14, TCP:12, IPv4:5} test124.test.local test125.test.local DCOM DCOM
52 0.109375 {MSRPC:14, TCP:12, IPv4:5} test125.test.local test124.test.local DCOM DCOM
53 0.109375 {MSRPC:14, TCP:12, IPv4:5} test124.test.local test125.test.local MSRPC MSRPC: c/o Alter Cont: UUID{1C1C45EE-4395-11D2-B60B-00104B703EFD} WMI-IWbemFetchSmartEnum Call=0x7 54 0.109375 {MSRPC:14, TCP:12, IPv4:5} test125.test.local test124.test.local MSRPC MSRPC: c/o Alter Cont Resp: Call=0x7 Assoc Grp=0x333E Xmit=0x16D0 Recv=0x16D0
55 0.109375 {MSRPC:14, TCP:12, IPv4:5} test124.test.local test125.test.local DCOM DCOM
56 0.109375 {MSRPC:14, TCP:12, IPv4:5} test125.test.local test124.test.local DCOM DCOM
57 0.109375 {MSRPC:14, TCP:12, IPv4:5} test124.test.local test125.test.local MSRPC MSRPC: c/o Alter Cont: UUID{423EC01E-2E35-11D2-B604-00104B703EFD} WMI-IWbemWCOSmartEnum Call=0x8
58 0.109375 {MSRPC:14, TCP:12, IPv4:5} test125.test.local test124.test.local MSRPC MSRPC: c/o Alter Cont Resp: Call=0x8 Assoc Grp=0x333E Xmit=0x16D0 Recv=0x16D0
59 0.109375 {MSRPC:14, TCP:12, IPv4:5} test124.test.local test125.test.local DCOM DCOM

Toàn bộ cụm RPC/DCOM, giống các dấu hiệu khác.

60 0.187500 {TCP:6, IPv4:5} test124.test.local test125.test.local TCP TCP: Flags=....A..., SrcPort=1063, DstPort=DCE endpoint resolution(135), Len=0, Seq=539163382, Ack=981335462, Win=65339 (scale factor 0) = 65339
61 0.187500 {MSRPC:14, TCP:12, IPv4:5} test125.test.local test124.test.local DCOM DCOM
62 0.187500 {TCP:12, IPv4:5} test125.test.local test124.test.local TCP TCP: [Continuation to #61]Flags=....A..., SrcPort=1117, DstPort=1066, Len=1460, Seq=539975906 - 539977366, Ack=1180776977, Win=65061 (scale factor 0) = 65061
63 0.187500 {TCP:12, IPv4:5} test124.test.local test125.test.local TCP TCP: Flags=....A..., SrcPort=1066, DstPort=1117, Len=0, Seq=1180776977, Ack=539977366, Win=65535 (scale factor 0) = 65535
64 0.187500 {TCP:12, IPv4:5} test125.test.local test124.test.local TCP TCP: [Continuation to #61]Flags=....A..., SrcPort=1117, DstPort=1066, Len=1460, Seq=539977366 - 539978826, Ack=1180776977, Win=65061 (scale factor 0) = 65061
65 0.187500 {TCP:12, IPv4:5} test124.test.local test125.test.local TCP TCP: Flags=....A..., SrcPort=1066, DstPort=1117, Len=0, Seq=1180776977, Ack=539978826, Win=65535 (scale factor 0) = 65535
66 0.187500 {TCP:12, IPv4:5} test125.test.local test124.test.local TCP TCP: [Continuation to #61]Flags=...PA..., SrcPort=1117, DstPort=1066, Len=1449, Seq=539978826 - 539980275, Ack=1180776977, Win=65061 (scale factor 0) = 65061
67 0.187500 {MSRPC:14, TCP:12, IPv4:5} test125.test.local test124.test.local MSRPC MSRPC: c/o Continued Response: WMI-IWbemWCOSmartEnum Call=0x8 Context=0x5 Hint=0x198C Cancels=0x0
.
.
.
148 0.187500 {MSRPC:14, TCP:12, IPv4:5} test125.test.local test124.test.local MSRPC MSRPC: c/o Continued Response: WMI-IWbemServices Call=0x9 Context=0x3 Hint=0x1F84 Cancels=0x0
149 0.187500 {TCP:12, IPv4:5} test125.test.local test124.test.local TCP TCP: [Continuation to #148]Flags=....A..., SrcPort=1117, DstPort=1066, Len=1460, Seq=540058365 - 540059825, Ack=1180777222, Win=64816 (scale factor 0) = 64816
150 0.187500 {TCP:12, IPv4:5} test124.test.local test125.test.local TCP TCP: Flags=....A..., SrcPort=1066, DstPort=1117, Len=0, Seq=1180777222, Ack=540059825, Win=65535 (scale factor 0) = 65535
151 0.187500 {TCP:12, IPv4:5} test125.test.local test124.test.local TCP TCP: [Continuation to #148]Flags=....A..., SrcPort=1117, DstPort=1066, Len=1460, Seq=540059825 - 540061285, Ack=1180777222, Win=64816 (scale factor 0) = 64816
152 0.187500 {TCP:12, IPv4:5} test125.test.local test124.test.local TCP TCP: [Continuation to #148]Flags=...PA..., SrcPort=1117, DstPort=1066, Len=1449, Seq=540061285 - 540062734, Ack=1180777222, Win=64816 (scale factor 0) = 64816
153 0.187500 {TCP:12, IPv4:5} test124.test.local test125.test.local TCP TCP: Flags=....A..., SrcPort=1066, DstPort=1117, Len=0, Seq=1180777222, Ack=540062734, Win=65535 (scale factor 0) = 65535
154 0.187500 {MSRPC:14, TCP:12, IPv4:5} test125.test.local test124.test.local MSRPC MSRPC: c/o Continued Response: WMI-IWbemServices Call=0x9 Context=0x3 Hint=0x904 Cancels=0x0
155 0.187500 {TCP:12, IPv4:5} test125.test.local test124.test.local TCP TCP: [Continuation to #154]Flags=...PA..., SrcPort=1117, DstPort=1066, Len=929, Seq=540064194 - 540065123, Ack=1180777222, Win=64816 (scale factor 0) = 64816
156 0.187500 {TCP:12, IPv4:5} test124.test.local test125.test.local TCP TCP: Flags=....A..., SrcPort=1066, DstPort=1117, Len=0, Seq=1180777222, Ack=540065123, Win=65535 (scale factor 0) = 65535
157 0.187500 {MSRPC:14, TCP:12, IPv4:5} test124.test.local test125.test.local DCOM DCOM
RPC together with TCP. You can see the WMI interface calls happening.
RPC cùng với TCP. Bạn có thể nhìn thấy các cuộc gọi giao diện WMI đang diễn ra.
158 0.218750 {ARP:15} 172.16.11.144 172.16.11.144 ARP ARP: Request, 172.16.11.144 asks for 172.16.11.144

Kịch bản trên đã thay đổi thành công địa chỉ IP của máy tính mục tiêu (test125) từ 172.16.11.125 thành 172.16.11.144, vậy tại sao máy tính mục tiêu sử dụng ARP để thử và chuyển địa chỉ IP của nó vào thành địa chỉ MAC? Điều này là một ví dụ ARP không có lý do, điều đã xảy ra khi một nút nào đó khởi tạo yêu cầu ARP cho địa chỉ IP của nó. Vậy tại sao máy tính mục tiêu thực hiện điều này? Để bảo đảm địa chỉ IP mới không bị sử dụng bởi bất kỳ nút mạng khác nào trong mạng. Máy tính mục tiêu đưa ra một vài yêu cầu ARP và nếu không có đáp ứng ARP nào được nhận thì nó sẽ đưa ra quyết định rằng địa chỉ mới của nó là duy nhất đối với mạng và địa chỉ đó có thể được giữ lại. Tuy nhiên nếu một nút khác đưa ra một đáp ứng ARP cho yêu cầu này thì đây sẽ là nút đầu tiên thừa nhận có một địa chỉ xung đột trên mạng và nó vô hiệu hóa địa chỉ IP của nó (gán thành 0.0.0.0).

Ở đây, mọi thứ dường như được giải quyết – bạn có thể thấy điều này bởi sự thật rằng thời gian bên trong các gói đang tăng đáng kể. Những gì đó xảy ra tiếp theo là nút mã nguồn (test124) cố gắng phúc đáp TCP với máy tính mục tiêu nhưng không gặp ở vị trí nào:

159 0.296875 {TCP:8, IPv4:5} test124.test.local test125.test.local TCP TCP: Flags=....A..., SrcPort=1064, DstPort=DCE endpoint resolution(135), Len=0, Seq=1367846254, Ack=3625280836, Win=65535 (scale factor 0) = 65535
160 0.437500 {ARP:15} 172.16.11.144 172.16.11.144 ARP ARP: Request, 172.16.11.144 asks for 172.16.11.144
161 0.515625 {MSRPC:14, TCP:12, IPv4:5} test124.test.local test125.test.local DCOM DCOM
162 1.062500 {MSRPC:14, TCP:12, IPv4:5} test124.test.local test125.test.local DCOM DCOM
163 1.437500 {ARP:15} 172.16.11.144 172.16.11.144 ARP ARP: Request, 172.16.11.144 asks for 172.16.11.144
164 2.265625 {MSRPC:14, TCP:12, IPv4:5} test124.test.local test125.test.local DCOM DCOM
165 2.453125 {ARP:15} 172.16.11.144 172.16.11.144 ARP ARP: Request, 172.16.11.144 asks for 172.16.11.144
166 3.437500 {ARP:15} 172.16.11.144 172.16.11.144 ARP ARP: Request, 172.16.11.144 asks for 172.16.11.144
167 4.437500 {ARP:15} 172.16.11.144 172.16.11.144 ARP ARP: Request, 172.16.11.144 asks for 172.16.11.144
168 4.671875 {MSRPC:14, TCP:12, IPv4:5} test124.test.local test125.test.local DCOM DCOM

Hãy xem xét gói 159 ở trên (Hình 8):


Hình 8: Các vấn đề kết nối TCP

Lưu ý từ hình này rằng máy tính nguồn (test124) vẫn cho rằng máy đích có địa chỉ IP là 172.16.11.125, và nó vẫn cố gắng gửi tín hiệu ACK đến test125 để duy trì kết nối TCP được thành lập trước đó.

Hãy xem khung 161 (Hình 9):


Hình 9: Các vấn đề RPC/DCOM

Lưu ý rằng việc kết nối RPC được thành lập trước đó bằng máy tính nguồn (test124) với máy tính đích (test125), đang cố gắng triệu gọi DCOM để gọi EnableStatic Method của lớp Win32_NetworkAdapterConfiguration. (Để có thể xem được vấn đề này, bạn hãy nhìn vào phần cửa sổ Hex Details, nơi có thể xem tải trọng hex của gói RPC được hiển thị dưới dạng văn bản Unicode). Tuy nhiên trong việc cố gắng triệu gọi DCOM, máy tính nguồn vẫn nghĩ địa chỉ đích của máy tính mục tiêu là 172.16.11.125 (xem phần Frame Details trong hình vẽ).

Phần còn lại của ChangeIPAddress.vbs cũng rất thú vị để phân tích tuy nhiên chúng ta đã nhận ra được lý do tại sao kịch bản điều khiển xa không chạy đúng cách. Rõ ràng nó làm việc nếu chúng ta sử dụng cách giải quyết On Error Resume Next mà chúng ta đã đề cập đến trong bài viết trước

(Theo quantrimang.com)