Introducción
En este artículo partimos de que conocemos nuestro sistema, es decir, conocemos los servicios que están ejecutándose, pero en nuestro ejemplo, veremos que tras escanear los puertos abiertos en nuestra máquina, vemos un puerto desconocido. Con el ejemplo siguiente descubriremos que aplicación está utilizando ese puerto.
Para el escaneo de puertos podemos utilizar herramientas como nmap, Angry IP Scanner u otros. En este caso utilizaremos el comando nmap para ver que puertos tenemos abiertos.
Escaneando puertos abiertos con nmap
En el siguiente ejemplo, nmap nos muestra que puertos UDP tenemos en ejecución. El proceso es válido para cualquier tipo de puerto, ya sea TCP, UDP o ICMP, solo hay que indicarle a nmap que tipo de puerto queremos escanear.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | $ sudo nmap -sU -p1-65535 localhost Starting Nmap 6.47 ( http://nmap.org ) at 2016-05-07 20:37 CEST Nmap scan report for localhost (127.0.0.1) Host is up (0.000014s latency). Other addresses for localhost (not scanned): 127.0.0.1 Not shown: 996 closed ports PORT STATE SERVICE 68/udp open|filtered dhcpc 111/udp open rpcbind 631/udp open|filtered ipp 5353/udp open|filtered zeroconf 10000/udp open|filtered unknownNmap done: 1 IP address (1 host up) scanned in 3.63 seconds |
Encontramos el puerto 10000 abierto por un servicio desconocido y queremos saber que programa ha abierto dicho puerto.
Para identificar el programa que lo ha abierto hacemos lo siguiente:
En primer lugar ejecutamos el comando netstat con las siguientes opciones:
- -l, –listening: Muestra los server sockets que están es modo escucha.
- -p, –programs: Muestra PID o nombre del programa por cada socket.
- -n, –numeric: No resuelve nombres en general.
Listar aplicaciones activas con el comando netstat
A continuación, listamos las aplicaciones activas con netstat. Utilizaremos una tubería para que el resultado de netstat lo procese grep y nos muestre, en este caso, aquellas líneas en la que aparezca el valor 10000 que es el puerto que queremos controlar.
$ sudo netstat -lpn | grep 10000 tcp 0 0 0.0.0.0:10000 0.0.0.0:* LISTEN 10768/perl udp 0 0 0.0.0.0:10000 0.0.0.0:* 10768/perl |
Visualizar el estado de los procesos activos con el comando ps
A continuación, ejecutamos el comando ps con las siguientes opciones:
- ax: Estas dos opciones conjuntamente, muestran todos los procesos incluyendo los de otros usuarios.
- f: Muestra los procesos de forma jerárquica (bosque).
- u: Muestra en formato orientado al usuario.
Utilizaremos una tubería para que el resultado de ps lo procese grep y nos muestre, en este caso, aquellas líneas en la que aparezca el valor 10768 que es el PID (última columna del comando anterior).
1 2 3 | $ sudo ps axfu | grep 10768 root 11204 1.0 0.0 5564 744 pts/3 S+ 10:42 0:00 \_ grep --color=auto 10768 root 10768 0.0 0.4 16188 9760 ? Ss 10:18 0:00 /usr/bin/perl /usr/libexec/webmin miniserv.pl /etc/webmin/miniserv.conf |
Ahora ya sabemos que el puerto 10000 está abierto por el programa webmin. Ahora, ya hemos identificado el programa que está utilizando dicho puerto.
Configuración de privacidad y de cookies.
Deja una respuesta