Как найти протокол TCP/UDP-порт, используемый конкретным процессом на данном удаленном компьютере


У меня есть проблема, которую я не могу решить.

Что я знаю:

  • некоторая информация о процессе, который я ищу : это процесс java, но если у меня есть доступ к информации, подобной тому, что находится в ps -ef | grep java, то я могу найти его PID.
  • IP-адрес удаленной машины под управлением Linux версии 3.16.7-35-desktop (SUSE Linux)

Я хотел бы найти порт, используемый этим процессом на этой машине, с некоторыми ограничениями:

  • должно быть сделано программно, в java
  • должен работать с Windows и Linux (при необходимости java-код может обрабатывать оба случая отдельно)
  • не требует установки какого-либо другого приложения (ни на вызывающем компьютере, ни на удаленном)

Я также знаю, что порт должен быть между 10000 и 20000. У меня есть сетевой доступ к удаленной машине (обе машины находятся в одной подсети).

Как бы вы это сделали ?

Примечание: я нашел Этот , но он старый и не отдаленный.

1 2

1 ответ:

Это стандартное хакерское требование. Вы можете делать то, что делает nmap.

Подключайтесь к каждому порту в диапазоне по очереди и попытайтесь определить, какая служба слушает или отвечает на этот порт, основываясь на данных, которые вы получаете от службы при подключении. Это очень медленно и будет выглядеть как взлом, если у вас есть какие-либо инструменты, чтобы обнаружить это, но это техника, которая используется в течение длительного времени, поскольку это единственный способ сделать это без службы, чтобы сказать вам, что работает на эта машина.

Гораздо лучший подход-это иметь где-то процесс обнаружения службы, в котором есть все службы, с которыми вы можете связаться, в идеале с их статусом, чтобы вы могли легко найти ту, которая доступна вашему клиенту.