Я запустил nmap на моем сервере и обнаружил странный открытый порт. Я пытаюсь выяснить, есть ли способ сопоставить этот порт с конкретным процессом, но я не знаю, есть ли такой инструмент.
Какие-либо предложения?
Как и Netstat, упомянутый в других постах, команда lsof должна справиться с этой задачей. Просто используйте это:
lsof -i :<port number>
и все процессы должны пройти. Я использую его на OS X довольно часто.
Инструмент, который вам нужен, это lsof
, который будет перечислять файлы (а также сокеты и порты). Скорее всего, он установлен, и, скорее всего, это версия злоумышленника, что означает, что он лжет вам.
Это действительно руткит. Я видел такое поведение раньше, и это всегда руткит. Ваша система взломана, и никаким инструментам, которые вы используете, которые исходят с того же компьютера, нельзя доверять. Загрузитесь с Live CD (который имеет доверенные двоичные файлы только для чтения) и используйте его для извлечения ваших данных, настроек и т.д. Любые ваши программы, любые ваши скрипты, отказаться от них. Не приноси их. Относитесь к ним и к системе, как к проказе, потому что они делай.
Сделайте это как можно скорее. Да, и отключите сетевое соединение - запретите доступ злоумышленнику.
Sudo netstat -lnp
Перечисляет порты, которые прослушивают входящие соединения, и связанный процесс, у которого открыт порт.
netstat -anp
"-P" указывает ему перечислить идентификатор процесса, у которого открыт порт. Параметр -an указывает списку прослушиваемых портов и не разрешает имена. На загруженных системах это может значительно ускорить скорость возврата.
netstat -anp | Греп "СПИСОК"
Это просто даст вам открытые порты.
Если вы не видите, что порт открыт с помощью инструментов операционной системы, и вы подозреваете вторжение, возможно, установлен руткит.
Руткит мог изменить системные инструменты, чтобы избежать определенных процессов и портов или изменить модули ядра.
Вы можете проверить руткит с помощью нескольких автоматизированных инструментов. 'apt-cache search rootkit' в Ubuntu показывает следующее:
chkrootkit - rootkit detector
rkhunter - rootkit, backdoor, sniffer and exploit scanner
unhide - Forensic tool to find hidden processes and ports
Если у вас есть руткит, вы можете вернуть "измененные" в вашу систему, но я рекомендую вам узнать, как было сделано вторжение, и укрепить систему, чтобы она не повторялась.
Они не являются эксклюзивными для Ubuntu, их можно использовать и в CentOS. Просто найдите пакет или загрузите его со своей страницы.
По выводу из этого порта кажется, что вы действительно используете pcany где-то: "�Ы� <Enter>" очень похоже на "Пожалуйста, нажмите <Enter>", которое является приветственным сообщением pcanywhere. Я не знаю, почему процесс не отображается в списке процессов. Вы рут?
Вы также можете попробовать перезагрузить компьютер, чтобы увидеть, запущен ли он один раз.
Чтобы разъяснить ответ @bjtitus, вы можете получить очень подробную информацию, например:
$ lsof -i :8000
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
squid3 1289 proxy 15u IPv6 14810490 0t0 TCP *:8000 (LISTEN)
$ ps -fp 1289
UID PID PPID C STIME TTY TIME CMD
proxy 1289 1 0 09:48 ? 00:00:00 /usr/sbin/squid3 -N -f /etc/squid-deb-proxy/squid-deb-proxy.conf
Я сразу вижу, что squid - это процесс, но на самом деле это мой squid-deb-proxy
, который захватывает порт.
Еще один хороший пример приложения Java:
$ lsof -i :4242
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
Java 3075 root 86u IPv4 12019 0t0 TCP *:4242 (LISTEN)
$ ps -fp 3075
UID PID PPID C STIME TTY TIME CMD
root 3075 1 15 May24 ? 3-16:07:25 /usr/local/crashplan/jre/bin/Java -Dfile.encoding=UTF-8 -Dapp=CrashPlanService -DappBaseName=CrashPl
В lsof
(LiSt Open Files) вы можете видеть, что это Java, что менее чем полезно. Запустив команду ps
с PID, мы сразу увидим, что это CrashPlan.