Отображение порта на PID для временных подключений Windows TCP - PullRequest
1 голос
/ 26 июля 2011

Я пытаюсь реконструировать стороннее TCP-клиент / серверное приложение Windows XP, SP 3, для которого у меня нет доступного источника. Моя основная линия атаки - использовать WireShark для захвата трафика TCP.

Когда я запускаю определенную команду GUI на стороне клиента, клиент создает TCP-соединение с сервером, отправляет некоторые данные и разрывает соединение. Порт сервера - 1234, а клиентский порт назначается операционной системой и поэтому изменяется.

WireShark показывает, что сообщение, соответствующее введенной мной команде GUI, отправляется дважды . Эти два сообщения имеют разные исходные порты, но имеют один и тот же порт назначения (1234, как упоминалось ранее).

Клиентская сторона на самом деле состоит из нескольких процессов, и я хотел бы определить, какие процессы отправляют эти сообщения. Эти процессы являются долгоживущими, поэтому их PID стабильны и известны. Тем не менее, TCP-соединения являются временными, продолжительностью всего несколько миллисекунд или около того. Хотя я зафиксировал номера портов на стороне клиента в WireShark, и хотя я знаю все задействованные PID, сам факт наличия временных соединений затрудняет определение того, какой PID открыл порт. (Если бы подключения были долгоживущими, я мог бы использовать netstat для сопоставления номеров портов с PID.) У кого-нибудь есть какие-либо предложения о том, как я могу определить, какие процессы создают эти временные подключения?

Ответы [ 2 ]

1 голос
/ 26 июля 2011

Я могу думать о двух вещах:

  1. Попробуйте программу tcpview от sysinternals.Он дает подробный список всех TCP-соединений, открытых всеми процессами в системе.Если процесс создает соединения, вы сможете увидеть, как они мигают (как подключаются, так и отключаются, мигает) в tcpview, и вы будете знать, какие процессы нужно начинать изучать.бинарный под отладчиком.Windbg поддерживает многопроцессорную отладку (думаю, визуальная студия тоже).Вы можете использовать только символы экспорта для работы, но это все равно должно работать для вызовов, выполняемых системными библиотеками.Попробуйте взломать любые подозрительные интерфейсы Windows, которые, как вы знаете, будут вызываться процессом для создания соединений.В MSDN должны быть документированы соответствующие библиотеки для большинства системных API.

Начните здесь ... опубликуйте продолжение, если вы застряли снова.

0 голосов
/ 26 июля 2011

Я закончил тем, что создал пакетный файл, который запускает netstat в тесном цикле и добавляет его вывод в текстовый файл. Я запустил этот пакетный файл во время работы системы, и, просматривая все дампы netstat, я смог найти дамп, содержащий PID, связанные с портами.

...