Мне нужно полностью заблокировать, перехватить и изменить все пакеты, проходящие между двумя устройствами. возможно, мне нужно изолировать одно устройство и заблокировать / перехватить / отредактировать ВСЕ трафик идет к нему и от него, если я не могу найти причину в пакетах между устройствами. редактировать- не могу вспомнить термин. Мне нужно быть человеком посередине между проблемным устройством и сервером.
Как это сделать? просто базовый план был бы хорош. несколько указателей того, с чего начать.
Мне нужно иметь возможность точно контролировать, что видит одна из машин, чтобы точно диагностировать проблему с подключением. два устройства представляют собой типичный сервер Windows, на котором работает наша программа PACS, и ультразвуковой аппарат. УЗИ-аппарат не может подключиться для загрузки изображений на сервер, потому что он продолжает отправлять серверу запросы на закрытие соединения. У меня есть еще один ультразвуковой аппарат той же марки, но другой модели, который подключается без проблем, и ни у одного другого радиологического аппарата нет такой проблемы.
У меня есть wirehark, запущенный на сервере, и я могу получить к нему доступ администратора, именно так я диагностировал, что это ультразвуковой аппарат, внезапно отправляющий запрос на закрытие соединения. Ультразвуковой аппарат, который у меня почти не контролируется и функционально является черным ящиком, заблокированным GE в своего рода режиме киоска, и у нас нет с ними контракта на поддержку. Я могу изменить, куда ультразвуковой аппарат отправляет изображения, настройки IP и количество других полей, но я ограничен графическим интерфейсом пользователя Kiosked.
Из того, что я могу сказать, соединение между ними работает нормально, пока ультразвуковой аппарат внезапно не отправит запрос на закрытие DICOM-соединения сразу после получения dicom ACK от сервера. наш поставщик PACS предположил, что, возможно, это что-то в их пакете подтверждения DICOM вызывает ошибку ультразвукового аппарата, поэтому я хотел бы перехватить и отредактировать сообщения.
Если бы я мог сделать все это через wirehark, это было бы здорово. Если это не сработает, мне просто нужно будет научиться обнюхивать пакеты на ультразвуковом аппарате и каким-то образом перехватывать весь его трафик.
доступные ресурсы
для получения дополнительной информации для тех из вас, у кого нет опыта работы с «медицинскими приборами». Ультразвуковые аппараты чрезвычайно заблокированы. У меня есть права администратора в графическом интерфейсе Kiosked, но нет доступа к ОС.
отредактировал, сделал очень простую модель сети
проблемное устройство <------> сетевая розетка <-------> радиологическая подсеть <---> настенная розетка <----> радиологический сервер
сервер радиологии работает под управлением WireShark
в личной заметке это 4-й метастак, в который я отправил этот вопрос. все остальные заявили, что это выходит за рамки, не по теме, нарушает правила публикации или нарушает ограничения на рекомендации по программному / аппаратному обеспечению. стек рекомендаций по программному обеспечению затем сказал, что стек был «для рекомендации программного обеспечения, а не активов или ресурсов, таких как инструкции, руководства / учебные пособия, фрагменты кода и т. д.», я даже разместил его в сетевой инженерии после того, как меня направили туда путем переполнения стека, думая: «да, они определенно знал бы, как это сделать ". нет, не могу рекомендовать вещи. если мне нужно изменить этот вопрос, я просто скажу мне, что мне нужно изменить, чтобы он работал
раздел, который я хочу изменить, находится в DICOM, A-ASSOCIATE принимает элемент VIVIDS70-200360 <- DICOMSTORAGESCP, особенно разделы контекста презентации
Frame 7: 372 bytes on wire (2976 bits), 372 bytes captured (2976 bits) on interface \Device\NPF_{95DCA5B3-EB26-4EA8-A80B-38B3AC886B9E}, id 0
Interface id: 0 (\Device\NPF_{95DCA5B3-EB26-4EA8-A80B-38B3AC886B9E})
Interface name: \Device\NPF_{95DCA5B3-EB26-4EA8-A80B-38B3AC886B9E}
Encapsulation type: Ethernet (1)
Arrival Time: Dec 16, 2019 12:42:47.470112000 Mountain Standard Time
[Time shift for this packet: 0.000000000 seconds]
Epoch Time: 1576525367.470112000 seconds
[Time delta from previous captured frame: 0.007570000 seconds]
[Time delta from previous displayed frame: 0.007570000 seconds]
[Time since reference or first frame: 0.309372000 seconds]
Frame Number: 7
Frame Length: 372 bytes (2976 bits)
Capture Length: 372 bytes (2976 bits)
[Frame is marked: False]
[Frame is ignored: False]
[Protocols in frame: eth:ethertype:ip:tcp:dicom]
[Coloring Rule Name: TCP]
[Coloring Rule String: tcp]
Ethernet II, Src: Dell_dc:33:54 (b8:2a:72:dc:33:54), Dst: All-HSRP-routers_50 (00:00:0c:07:ac:50)
Destination: All-HSRP-routers_50 (00:00:0c:07:ac:50)
Address: All-HSRP-routers_50 (00:00:0c:07:ac:50)
.... ..0. .... .... .... .... = LG bit: Globally unique address (factory default)
.... ...0 .... .... .... .... = IG bit: Individual address (unicast)
Source: Dell_dc:33:54 (b8:2a:72:dc:33:54)
Address: Dell_dc:33:54 (b8:2a:72:dc:33:54)
.... ..0. .... .... .... .... = LG bit: Globally unique address (factory default)
.... ...0 .... .... .... .... = IG bit: Individual address (unicast)
Type: IPv4 (0x0800)
Internet Protocol Version 4, Src: 10.101.50.7, Dst: 10.250.120.61
0100 .... = Version: 4
.... 0101 = Header Length: 20 bytes (5)
Differentiated Services Field: 0x00 (DSCP: CS0, ECN: Not-ECT)
0000 00.. = Differentiated Services Codepoint: Default (0)
.... ..00 = Explicit Congestion Notification: Not ECN-Capable Transport (0)
Total Length: 358
Identification: 0x4a86 (19078)
Flags: 0x4000, Don't fragment
0... .... .... .... = Reserved bit: Not set
.1.. .... .... .... = Don't fragment: Set
..0. .... .... .... = More fragments: Not set
...0 0000 0000 0000 = Fragment offset: 0
Time to live: 128
Protocol: TCP (6)
Header checksum: 0x0000 [validation disabled]
[Header checksum status: Unverified]
Source: 10.101.50.7
Destination: 10.250.120.61
Transmission Control Protocol, Src Port: 104, Dst Port: 49268, Seq: 1, Ack: 471, Len: 318
Source Port: 104
Destination Port: 49268
[Stream index: 0]
[TCP Segment Len: 318]
Sequence number: 1 (relative sequence number)
Sequence number (raw): 3548356980
[Next sequence number: 319 (relative sequence number)]
Acknowledgment number: 471 (relative ack number)
Acknowledgment number (raw): 2364032816
0101 .... = Header Length: 20 bytes (5)
Flags: 0x018 (PSH, ACK)
000. .... .... = Reserved: Not set
...0 .... .... = Nonce: Not set
.... 0... .... = Congestion Window Reduced (CWR): Not set
.... .0.. .... = ECN-Echo: Not set
.... ..0. .... = Urgent: Not set
.... ...1 .... = Acknowledgment: Set
.... .... 1... = Push: Set
.... .... .0.. = Reset: Not set
.... .... ..0. = Syn: Not set
.... .... ...0 = Fin: Not set
[TCP Flags: ·······AP···]
Window size value: 512
[Calculated window size: 131072]
[Window size scaling factor: 256]
Checksum: 0xc0fb [unverified]
[Checksum Status: Unverified]
Urgent pointer: 0
[SEQ/ACK analysis]
[iRTT: 0.000194000 seconds]
[Bytes in flight: 318]
[Bytes sent since last PSH flag: 318]
[Timestamps]
[Time since first frame in this TCP stream: 0.309372000 seconds]
[Time since previous frame in this TCP stream: 0.007570000 seconds]
TCP payload (318 bytes)
DICOM, A-ASSOCIATE accept VIVIDS70-200360 <-- DICOMSTORAGESCP
PDU Type: ASSOC Accept (0x02)
PDU Length: 312
A-ASSOCIATE accept VIVIDS70-200360 <-- DICOMSTORAGESCP
Protocol Version: 1
Called AE Title: DICOMSTORAGESCP
Calling AE Title: VIVIDS70-200360
Application Context: DICOM Application Context Name (1.2.840.10008.3.1.1.1)
Item Type: Application Context (0x10)
Item Length: 21
Application Context: DICOM Application Context Name (1.2.840.10008.3.1.1.1)
Presentation Context: ID 0x01, Accept, JPEG Baseline (Process 1): Default Transfer Syntax for Lossy JPEG 8 Bit Image Compression, Secondary Capture Image Storage
Item Type: Presentation Context Reply (0x21)
Item Length: 30
Context ID: 0x01
Result: Accept (0x0)
Transfer Syntax: JPEG Baseline (Process 1): Default Transfer Syntax for Lossy JPEG 8 Bit Image Compression (1.2.840.10008.1.2.4.50)
Item Type: Transfer Syntax (0x40)
Item Length: 22
Transfer Syntax: JPEG Baseline (Process 1): Default Transfer Syntax for Lossy JPEG 8 Bit Image Compression (1.2.840.10008.1.2.4.50)
Presentation Context: ID 0x03, Accept, JPEG Baseline (Process 1): Default Transfer Syntax for Lossy JPEG 8 Bit Image Compression, Ultrasound Image Storage
Item Type: Presentation Context Reply (0x21)
Item Length: 30
Context ID: 0x03
Result: Accept (0x0)
Transfer Syntax: JPEG Baseline (Process 1): Default Transfer Syntax for Lossy JPEG 8 Bit Image Compression (1.2.840.10008.1.2.4.50)
Item Type: Transfer Syntax (0x40)
Item Length: 22
Transfer Syntax: JPEG Baseline (Process 1): Default Transfer Syntax for Lossy JPEG 8 Bit Image Compression (1.2.840.10008.1.2.4.50)
Presentation Context: ID 0x05, Accept, JPEG Baseline (Process 1): Default Transfer Syntax for Lossy JPEG 8 Bit Image Compression, Ultrasound Multi-frame Image Storage
Item Type: Presentation Context Reply (0x21)
Item Length: 30
Context ID: 0x05
Result: Accept (0x0)
Transfer Syntax: JPEG Baseline (Process 1): Default Transfer Syntax for Lossy JPEG 8 Bit Image Compression (1.2.840.10008.1.2.4.50)
Item Type: Transfer Syntax (0x40)
Item Length: 22
Transfer Syntax: JPEG Baseline (Process 1): Default Transfer Syntax for Lossy JPEG 8 Bit Image Compression (1.2.840.10008.1.2.4.50)
Presentation Context: ID 0x07, Accept, JPEG Baseline (Process 1): Default Transfer Syntax for Lossy JPEG 8 Bit Image Compression, Ultrasound Image Storage (Retired)
Item Type: Presentation Context Reply (0x21)
Item Length: 30
Context ID: 0x07
Result: Accept (0x0)
Transfer Syntax: JPEG Baseline (Process 1): Default Transfer Syntax for Lossy JPEG 8 Bit Image Compression (1.2.840.10008.1.2.4.50)
Item Type: Transfer Syntax (0x40)
Item Length: 22
Transfer Syntax: JPEG Baseline (Process 1): Default Transfer Syntax for Lossy JPEG 8 Bit Image Compression (1.2.840.10008.1.2.4.50)
Presentation Context: ID 0x09, Accept, JPEG Baseline (Process 1): Default Transfer Syntax for Lossy JPEG 8 Bit Image Compression, Ultrasound Multi-frame Image Storage (Retired)
Item Type: Presentation Context Reply (0x21)
Item Length: 30
Context ID: 0x09
Result: Accept (0x0)
Transfer Syntax: JPEG Baseline (Process 1): Default Transfer Syntax for Lossy JPEG 8 Bit Image Compression (1.2.840.10008.1.2.4.50)
Item Type: Transfer Syntax (0x40)
Item Length: 22
Transfer Syntax: JPEG Baseline (Process 1): Default Transfer Syntax for Lossy JPEG 8 Bit Image Compression (1.2.840.10008.1.2.4.50)
User Info: Max PDU Length 131072, Implementation UID 1.2.840.114051.6.0, Version NovaRad 6.0
Item Type: User Info (0x50)
Item Length: 45
Max PDU Length: 131072
Item Type: Max Length (0x51)
Item Length: 4
Max PDU Length: 131072
Implementation UID: 1.2.840.114051.6.0
Item Type: Implementation Class UID (0x52)
Item Length: 18
Implementation Class UID: 1.2.840.114051.6.0
Implementation Version: NovaRad 6.0
Item Type: Implementation Version (0x55)
Item Length: 11
Implementation Version: NovaRad 6.0
Вы можете подделать arp и заставить машину отправлять данные на ваше устройство вместо предполагаемого места назначения и записывать все данные в pcap.
Затем вы можете переписать pcap так, как хотите, и повторно передать его с помощью tcpreplay.
Я не уверен, как работают ультразвуковые аппараты и почему они даже объединены в сеть, но таким образом вы сможете пропустить плохой пакет.
Чтобы получить более быстрое решение, рассмотрите возможность использования proxyshark или netsed. Трудно сказать, не увидев pcap, что именно нужно изменить.