Ejecuté nmap en mi servidor y encontré un puerto extraño abierto. Estoy tratando de averiguar si hay una manera de asignar ese puerto a un proceso específico, pero no tengo idea de si existe tal herramienta.
¿Alguna sugerencia?
Ejecuté nmap en mi servidor y encontré un puerto extraño abierto. Estoy tratando de averiguar si hay una manera de asignar ese puerto a un proceso específico, pero no tengo idea de si existe tal herramienta.
¿Alguna sugerencia?
Respuestas:
Además de Netstat, mencionado en otras publicaciones, el comando lsof debería poder hacerlo bien. Solo usa esto:
lsof -i :<port number>
y todos los procesos deberían aparecer. Lo uso en OS X con bastante frecuencia.
La herramienta que necesita es lsof
, que enumerará los archivos (y sockets y puertos). Es probable que esté instalado, y es muy probable que sea la versión del atacante, lo que significa que te mentirá .
Este es de hecho un rootkit. He visto este comportamiento antes, y siempre es un rootkit. Su sistema está comprometido y no se puede confiar en las herramientas que está utilizando que se originan en la misma máquina. Inicie en un Live CD (que tiene binarios confiables de solo lectura) y úselo para extraer sus datos, configuraciones, etc. Cualquier programa que tenga, cualquier script que tenga, abandónelos . No los traigas . Trátelos a ellos y al sistema como si tuvieran lepra, porque lo tienen .
Haz esto tan pronto como sea posible. Ah, y desconecte su conexión de red: niegue el acceso a su atacante.
netstat -anp
El "-p" le dice que enumere el ID de proceso que tiene el puerto abierto. El -an le dice que enumere los puertos de escucha y no resuelva los nombres. En sistemas ocupados que pueden acelerar enormemente la rapidez con la que regresa.
netstat -anp | grep "LISTA"
Eso solo te dará los puertos abiertos.
Si no puede ver el puerto abierto con las herramientas del sistema operativo y sospecha una intrusión, podría ser que se haya instalado un rootkit.
El rootkit podría haber cambiado las herramientas del sistema para evitar ciertos procesos y puertos o cambiar los módulos del núcleo.
Puede verificar el rootkit con varias herramientas automatizadas. 'apt-cache search rootkit' muestra lo siguiente en Ubuntu:
chkrootkit - rootkit detector
rkhunter - rootkit, backdoor, sniffer and exploit scanner
unhide - Forensic tool to find hidden processes and ports
Si tiene un rootkit, puede revertir el 'cambio' a su sistema, pero le recomiendo que descubra cómo se hizo la intrusión y endurezca el sistema para que no se repita.
No son exclusivos de Ubuntu, también puedes usarlos en CentOS. Simplemente busque el paquete o descárguelo de su página.
Según la salida de ese puerto, parece que está ejecutando pcanywhere de hecho: " Ы <Enter>" es muy similar a "Presione <Enter>", que es el mensaje de bienvenida de pcanywhere. No sé por qué el proceso no aparece en la lista de procesos. ¿Eres root?
También puede intentar reiniciar para ver si se está ejecutando un proceso único.
Para exponer la respuesta de @bjtitus, puede obtener información muy detallada, por ejemplo:
$ 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
Puedo ver que el calamar es el proceso, pero en realidad es mi el squid-deb-proxy
que está tomando el puerto.
Otro buen ejemplo de una aplicación de 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
Puedes ver en lsof
(LiSt Open Files) que es Java, lo que no es útil. Al ejecutar el ps
comando con el PID podemos ver de inmediato que se trata de CrashPlan.