Управление сетями Windows с помощью сценариев (Часть 8)

Published on Февраль 19, 2009 by   ·   Комментариев нет

В предыдущей статье из этой серии, начали устранять загадочную ошибку, которая появлялась, когда мы попытались удаленно изменить IP адрес на компьютере с операционной системой XP с помощью сценария ChangeIPAddress.vbs, который мы разработали ранее. Загадочная ошибка, которая у нас возникала, выглядела следующим образом:

SWbemObjectEx: The remote procedure call failed

В предыдущей статье я упоминал, что я общался с некоторыми специалистами в области написания сценариев относительно этой ошибки, и самый лучший ответ, который я получил, был такой, что обновление, вероятно, нарушило функциональность WMI и результатом этого стало то, что сценарий отрабатывал как надо, но при этом возникала ошибка.

Но после этого со мной связался один сообразительный читатель, который сказал мне вот, что:

На мой взгляд, это вовсе не ошибка в каком-либо обновлении. Помните, что вы меняете IP адрес на компьютере xp2. Удаленный вызов процедуры окончился неудачей потому, что разорвалось соединение с компьютером xp2 по его начальному адресу IP address (172.16.11.43). После этого проходит некоторое время (около минуты) для того, чтобы компьютер xp2 был найден по своему новому IP адресу (172.16.11.65).

Представьте, что вы по телнету (telnet) заходите на сервер от имени администратора и изменяете IP адрес сервера. Разрывается ли при этом соединение? Он зависнет ненадолго, в нашем случае происходит то же самое. А изменение шлюза по умолчанию (default gateway) на сервере не разрывает существующее подключение (предполагается, что вы делаете это из той же самой подсети). Если вы попытаетесь изменить настройки шлюза по умолчанию (default gateway) с удаленного сайта, то возникнет та же самая задержка.

Отличная работа! Как мы можем проверить такое предположение?

Использование Network Monitor 3.0

Компания Microsoft недавно выпустила новую версию сетевого монитора (Network Monitor), инструмент для разбора и анализа пакетов, который входит в состав Microsoft Systems Management Server. Network Monitor 3.0 имеет несколько усовершенствований по сравнению с предыдущими версиями этого инструмента, а конкретно:

  • Новый улучшенный интерфейс пользователя, который позволяет увидеть фреймы, захваченные в режиме реального времени.
  • Несколько одновременных сессий и одновременный захват пакетов с нескольких сетевых адаптеров.
  • Возможность просмотра сетевых «разговоров», т.е. особых сессий протоколов (protocol session).
  • Поддержка операционных систем Vista, Windows XP и Windows Server 2003, включая как 32-битные, так и 64-битные платформы.
  • Новая панель фильтров, которая позволяет вам вручную задавать фильтры.

За более подробной информацией о Network Monitor 3.0 вы можете обратиться к блогу Paul Long на TechNet.

Мой план таков. Я собираюсь использовать сетевой монитор NM3 для захвата сетевого трафика от машины, на которой я собираюсь запустить сценарий ChangeIPAddress.vbs. Мои тестовые настройки для этого следующие:

Administrator workstation (рабочая станция администратора)
Name: test124.test.com
IP address: 172.16.11.124 (static)

Target machine (клиентская машина)
Name: test125.test.com
IP address: 172.16.11.125 (static)

Domain controller (контроллер домена)
Name: dc181.test.com
IP address: 172.16.11.181

Но перед тем, как я запущу сценарий ChangeIPAddress.vbs на компьютере test124, для того чтобы изменить IP адрес на компьютере test125, давайте кратко рассмотрим сетевой монитор NM3.

Когда вы запустите сетевой монитор NM3, он будет выглядеть так (Рисунок 1):

Testquery4

Рисунок 1: Начальный экран сетевого монитора Network Monitor 3.0

Перед тем, как продолжим, давайте поставим галочку в поле Enable Conversations, чтобы мы могли просмотреть все сессии типа протокола, которые у нас возникнут.

Теперь выберите закладку Create A New Capture (создать новый захват). В результате этого откроется новая закладка под названием Capture1 (захват1), которую мы можем использовать для анализа сетевого трафика (Рисунок 2):

Testquery4

Рисунок 2: Появление новой закладки для захвата

Теперь давайте проверим сетевой монитор NM3 с помощью чего-нибудь простого. Мы нажмем на кнопку Play, чтобы начать захват, а затем на компьютере test124 откроем командную строку и выполним команду ping 172.16.11.125 т.е. пропингуем компьютер test125 с компьютера test124. Результат будет таким (Рисунок 3):

Testquery4

Рисунок 3: Результат пинга 172.16.11.125

Это именно то, что мы и ожидали: два пакета ARP (ARP запрос, за которым следует ARP ответ), а затем серия пакетов ICMP (сообщения эхо запроса Echo Request, за которыми следуют сообщения эхо ответа Echo Reply). Если вы знакомы с основами работы протокола TCP/IP, то вы достаточно легко это поймете.

Давайте посмотрим на то, что мы получили. Раскройте узел My Traffic (мой трафик), чтобы увидеть следующее (Рисунок 4):

Testquery4

Рисунок 4: Просмотр трафика

Обратите внимание, что появилось две записи: ARP и IPv4 (ICMP). И снова все должно быть достаточно очевидно, если вы знаете основы работы протокола TCP/IP.

Давайте выберем пакет запроса ARP Request и взглянем внутрь его (Рисунок 5):

Testquery4

Рисунок 5: Разбор пакета

Теперь, когда мы кратко рассмотрели NM3 (в нем есть гораздо больше!) давайте попробуем использовать его для устранения нашей загадочной ошибки.

Захват пакетов

Я начну с перезагрузки обоих компьютеров, чтобы очистить все кэши (ARP, DNS и т.п.), а затем я запущу командную строку на компьютере test124 и наберу следующую команду ChangeIPAddress.vbs 172.16.11.144 для того, чтобы изменить IP адрес на компьютере test125 с 172.16.11.125 на 172.16.11.144. (Я жестко прописал в коде сценария название второго компьютера, как “test125”.) Ниже вы можете увидеть результат (Рисунок 6):

Testquery4

Рисунок 6: Результат работы сценария ChangeIPAddress.vbs с параметром 172.16.11.144

Ниже приводится обзор того, что случилось. Захват длился почти 90 секунд, и в результате него было перехвачено 274 фреймов. Сообщение об ошибке появилось во фрейме 241, а командная строка вновь возникла на фрейме 274. (Я знаю это потому, что следил за результатом выполнения в командной строке, во время захвата.) Как много надо проанализировать! Посмотрев на Рисунок 6 выше, мы наконец можем приступить к анализу:

  • Фреймы 3-4 показывают, что название компьютера TEST125 было сопоставлено с IP 172.16.11.125 с помощью DNS.
  • Фреймы 5-6 показывают, что IP адрес 172.16.11.125 был преобразован в MAC адрес с помощью ARP.
  • Фреймы 7-9 показывают трехстороннее рукопожатие TCP handshake (SYN, SYN/ACK, ACK), которое возникло между компьютерами test124 и test125.
  • Фреймы 10-11 показывают, что была установлена RPC связка между двумя компьютерами.
  • Кадры 12-13 показывают, что был использован DCOM по RCP (WMI использует DCOM для обработки удаленных вызовов).

И так далее.

Очевидно, что мы не можем отобразить все 274 фрейма на рисунке, поэтому я скопировал общую информацию о фреймах (Frame Summary information) в текстовый файл. (Я также сохранил весь захват в файл с расширением .cap). Нажмите сюда, если хотите увидеть общую информацию, которую мы получили после запуска сценария ChangeIPAddress.vbs.

Это достаточно удивительно, не так ли? Как можно понять, о чем говорит вся эта информация, и с чего начать анализ?

Хорошо, если вы занимаетесь устранением ошибки, то неплохо бы начать с того, что вы знаете, а не с того, чего вы не знаете. А мы знаем, что другой сценарий (ChangeGateway.vbs), который мы разработали в нашей предыдущей статье отработал без ошибок. Поэтому перед тем, как мы продолжим рассмотрение файла ChangeIPAddress.txt, давайте перезагрузим наш компьютер и сделаем еще один захват, который на этот раз позволит нам увидеть результат запуска команды ChangeGateway.vbs с параметром 172.16.11.2 1 на компьютере под названием test124 для того, чтобы изменить шлюз по умолчанию (default gateway) компьютера под названием test125 с 172.16.11.1 на 172.16.11.2 (и задав при этом значение метрики равной 1). Ниже мы можем увидеть, как выглядит второй захват (Рисунок 7):

Testquery4

Рисунок 7: Результат работы сценария ChangeGateway.vbs с параметром 172.16.11.2 1

На этот раз мы получили лишь 217 фреймов для анализа (!) и вы можете нажать сюда, чтобы увидеть все информацию о фреймах.

Анализ захвата для сценария ChangeGateway.vbs

Давайте попробуем проанализировать второй захват (тот, которой отработал без ошибок) путем последовательного разбиения на части полученной информации. Получаем следующее:


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

Просто заголовок NM3—игнорируем.


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

Получение имени и адреса (DNS и 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 только что установил TCP соединение с компьютером 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 устанавливает связку RCP с компьютером test125 и вызывает 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

Другое трехстороннее рукопожатие TCP handshake между компьютерами.


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

Аутентификация Kerberos authentication (обе машины подключены к домену).


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

Больше RPC и DCOM. Мне кажется, что “Alter Cont” показывает, что используется альтернативный контекст, но в действительности я не уверен. Но все должно быть нормально, т.к. сценарий отработал без ошибок.


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

Еще одно рукопожатие TCP handshake.


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

Еще по 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

Куча данных, относительно RPC/DCOM. Выглядит, как шифровка, не так ли? Но если вы вглядитесь внимательней, то увидите работу WMI, т.е. WMI-IWbemLoginClientID, WMI-IWbemLevel1Login, WMI-IWbemServices, WMI-IWbemFetchSmartEnum, и т.д. С помощью поиска по MSDN, мы можем узнать подробнее о том, что здесь происходит. Например, на этой странице мы можем узнать, что “Интерфейс IWbemServices используется клиентами и поставщиками для доступа к службам WMI”, поэтому становится ясно, что все эти интерфейсы WMI (API) вызываются на удаленной машине (с помощью DCOM) рабочей станцией, с которой мы запускаем наш сценарий. И некоторые из этих интерфейсов кажутся недокументированными, поэтому мы не будем слишком беспокоиться о том, что они нам не понятны.

С этого места все становится немного более плотнее. Во-первых, появляется больше пакетов TCP с RPC “Continued Response”, которое используют некоторые соединения, сделанные ранее. Я пропущу несколько фреймов, и продолжу с этого места нашего захвата:


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

Прошло только две секунды. Теперь мы видим начинку DCOM, за которой следует закрытие TCP соединений с помощью FIN/ACK, поэтому я предполагаю, что сценарий уже выполнил свою работу:


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

Далее идет информация относительно взаимодействия DNS и LDAP, происходящего между компьютером test124 и контроллером домена (domain controller). Я не уверен, почему это происходит, поэтому я пропущу эти фреймы и перейду сюда:


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

С этого места сценарий уже завершился, поэтому я прекратил свой захват.

Анализ захвата для сценария ChangeIPAddress.vbs

Теперь у нас есть некоторое представление о том, как выглядит захват для успешно выполнившегося удаленного сценария:

  • Некоторая начинка для DNS и ARP
  • Установление TCP сессий с помощью 3-х стороннего рукопожатия (3-way handshake)
  • RPC связка и DCOM
  • Еще TCP рукопожатие
  • Аутентификация Kerberos (оба компьютера в домене)
  • Еще начинка RPC/DCOM
  • Еще TCP рукопожатие, еще Kerberos, много RPC/DCOM объединенных с соединениями TCP
  • Еще DCOM, за которым следует закрытие TCP сессий, установленных ранее

И весь процесс занял чуть более двух секунд.

Теперь давайте посмотрим на наш захват для сценария ChangeIPAddress.vbs (сценарий, который возвращает ошибку с RPC, когда его запускают удаленно) и посмотрим, чем он отличается от предыдущего захвата.


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

Немного начинки сетевого монитора 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, затем DNS, затем рукопожатие TCP handshake—все, как и ранее.


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, затем DCOM, затем еще TCP рукопожатие, затем начинка Kerberos. Все выглядит, как и ранее.


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

Некоторые шаблоны.


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
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

Вся начинка RPC/DCOM точно также, как и в предыдущем захвате.


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 совместно с TCP. Вы можете увидеть, что произошел вызов интерфейса WMI.


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

Ого, а это что? Сценарий успешно изменил IP адрес клиентской машины (test125) с 172.16.11.125 на 172.16.11.144, тогда почему клиентская машина запускает ARP и пытается преобразовать свой собственный IP адрес в MAC адрес? Это пример неуместного ARP, который возникает, когда узел совершает запрос ARP для получения своего собственного адреса IP address. Для чего клиентская машина делает это? Для того, чтобы убедиться, что этот новый IP адрес 172.16.11.144 не используется другими машинами или узлами в сети. Если она выполняет несколько запросов ARP и не получает ARP ответа, то она убеждается, что ее новый адрес уникален в сети и этот адрес можно использовать. Но если другой узел возвращает ARP ответ на этот запрос, то первый узел предполагает, что возник конфликт адресов в сети и он не использует этот адрес IP address (присваивается 0.0.0.0).

ПОДСКАЗКА: Вы можете посмотреть эту главу из книги Томаса Ли (Thomas Lee) и Джозефа Дэвиса (Joseph Davies), если хотите узнать больше о неуместных запросах ARP.

С этого момента все пошло по-другому—вы можете увидеть это согласно тому факту, что значительно увеличились временные интервалы между пакетами. Далее происходит то, что начальный узел (test124) продолжает пытаться установить TCP с клиентской машиной, но нигде ее не находит:


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

Давайте посмотрим на пакет 159 выше более подробно с помощью NM3 (Рисунок 8):

Testquery4

Рисунок 8: Проблемы с TCP соединением

Обратите внимание на этом рисунке видно, что машина, на которой мы запускаем сценарий (test124), по-прежнему думает, что IP адрес клиентской машины 172.16.11.125, продолжает пытаться ACK с test125 для поддержки TCP соединения, установленного ранее.

Теперь давайте посмотрим на фрейм 161 (Рисунок 9):

Testquery4

Рисунок 9: Проблемы RPC/DCOM

Обратите внимание, что связка RPC, установленная ранее компьютером, на котором запускается сценарий (test124), с клиентским компьютером (test125), пытается вызвать DCOM для вызова метода EnableStatic Method класса Win32_NetworkAdapterConfiguration class. (Для того, чтобы это увидеть, посмотрите на правую сторону, в окно, где располагается шестнадцатиричная информация (Hex Details), в котором вы можете увидеть пакет RPC в шестнадцатиричном коде в тексте UNICODE). Но пытаясь вызвать DCOM, наш компьютер по-прежнему думает, что адрес клиентской машины 172.16.11.125 (смотри окно Frame Details на рисунке).

Итак, все выглядит так, что наш читатель был прав!

Остальную часть захвата работы сценария ChangeIPAddress.vbs очень интересно попытаться проанализировать, но мы уже выяснили причину, по которой наш сценарий неправильно выполнялся удаленно. Конечно, он сработает, если мы воспользуемся строкой On Error Resume Next, о которой мы упоминали в предыдущих статьях.

www.windowsnetworking.com








Смотрите также:

Tags: , , , , , , , , , ,

Readers Comments (Комментариев нет)




Да человек я, человек! =)




Exchange 2007

Проведение мониторинга Exchange 2007 с помощью диспетчера System Center Operations Manager 2007 (часть 3)

Если вы хотите прочитать предыдущие части этой серии статей, перейдите по ссылкам: Проведение мониторинга Exchange 2007 с помощью диспетчера System ... [+]

Практическое рассмотрение перехода с Exchange 2003 на Exchange 2007 (часть 1)

Введение В этой статье из нескольких частей я хочу показать вам процесс, который недавно использовал для перехода с существующей среды Exchange 2003 ... [+]

Использование инструмента Exchange Server Remote Connectivity Analyzer Tool (часть 2)

Если вы пропустили первую часть этой серии, пожалуйста, прочтите ее по ссылке Использование инструмента Exchange Server Remote Connectivity Analyzer Tool (Часть ... [+]

Мониторинг Exchange 2007 с помощью диспетчера System Center Operations Manager 2007 (часть 2)

Если вы пропустили предыдущую часть этой серии статей, перейдите по ссылке Мониторинг Exchange 2007 с помощью диспетчера System Center Operations ... [+]

Подробное рассмотрение подготовки Active Directory для Exchange 2007 (часть 5)

Если вы пропустили предыдущие части этой серии статей, перейдите по ссылкам: Подробное рассмотрение подготовки Active Directory для Exchange 2007 (часть 1) ... [+]

Установка и настройка Exchange 2007 из командной строки (Часть 3)

If you missed the previous parts in this article series please read: Exchange 2007 Install and Configuration from the command line (Part ... [+]

Использование инструмента Exchange Server Remote Connectivity Analyzer Tool (часть 1)

Инструмент ExRCA Текущий выпуск инструмента предоставляется только в целях тестирования и оснащен 5 опциями: Тест подключения Outlook 2007 Autodiscover Тест подключения Outlook 2003 RPC ... [+]

Развертывание сервера Exchange 2007 Edge Transport (часть 5)

Если вы хотите прочитать предыдущие части этой серии статей, перейдите по ссылкам: Развертывание сервера Exchange 2007 Edge Transport (часть 1) Развертывание ... [+]

Установка и настройка Exchange 2007 из командной строки (часть 2)

Если вы пропустили первую статью данного цикла, пожалуйста, перейдите по ссылке: Exchange 2007 Install and Configuration from the command line (Part ... [+]

Использование интегрированных сценариев Using Exchange Server 2007 – часть 2: генерирование отчетов агента Transport AntiSpam Agent

Если вы пропустили предыдущую часть этой серии статей, перейдите по ссылке Использование интегрированных сценариев Using Exchange Server 2007 – часть ... [+]