Как найти протокол TCP/UDP-порт, используемый конкретным процессом на данном удаленном компьютере
У меня есть проблема, которую я не могу решить.
Что я знаю:
- некоторая информация о процессе, который я ищу : это процесс java, но если у меня есть доступ к информации, подобной тому, что находится в
ps -ef | grep java
, то я могу найти его PID. - IP-адрес удаленной машины под управлением Linux версии 3.16.7-35-desktop (SUSE Linux)
Я хотел бы найти порт, используемый этим процессом на этой машине, с некоторыми ограничениями:
- должно быть сделано программно, в java
- должен работать с Windows и Linux (при необходимости java-код может обрабатывать оба случая отдельно)
- не требует установки какого-либо другого приложения (ни на вызывающем компьютере, ни на удаленном)
Я также знаю, что порт должен быть между 10000 и 20000. У меня есть сетевой доступ к удаленной машине (обе машины находятся в одной подсети).
Как бы вы это сделали ?
Примечание: я нашел Этот , но он старый и не отдаленный.
1 ответ:
Это стандартное хакерское требование. Вы можете делать то, что делает
nmap
.Подключайтесь к каждому порту в диапазоне по очереди и попытайтесь определить, какая служба слушает или отвечает на этот порт, основываясь на данных, которые вы получаете от службы при подключении. Это очень медленно и будет выглядеть как взлом, если у вас есть какие-либо инструменты, чтобы обнаружить это, но это техника, которая используется в течение длительного времени, поскольку это единственный способ сделать это без службы, чтобы сказать вам, что работает на эта машина.
Гораздо лучший подход-это иметь где-то процесс обнаружения службы, в котором есть все службы, с которыми вы можете связаться, в идеале с их статусом, чтобы вы могли легко найти ту, которая доступна вашему клиенту.