sviluppo-web-qa.it

Come dire quale processo ha una porta specifica aperta su Linux?

Ho eseguito nmap sul mio server e ho trovato una strana porta aperta. Sto cercando di capire se esiste un modo per mappare quella porta su un processo specifico ma non ho idea se esiste un tale strumento.

Eventuali suggerimenti?

32
jnman

Oltre a Netstat, menzionato in altri post, il comando lsof dovrebbe essere in grado di farlo bene. Usa questo:

lsof -i :<port number>

e tutti i processi dovrebbero emergere. Lo uso su OS X abbastanza frequentemente.

Articolo di amministrazione Debian per lsof

57
bjtitus

Avvertenza: il sistema è compromesso.

Lo strumento necessario è lsof, che elencherà i file (e socket e porte). Molto probabilmente è installato ed è molto probabilmente la versione dell'attaccante, il che significa che sarà mentire per te.

Questo è davvero un rootkit. Ho già visto questo comportamento ed è sempre un rootkit. Il sistema è compromesso e tutti gli strumenti che si utilizzano che provengono dalla stessa macchina non sono affidabili. Avvia un Live CD (che ha binari attendibili di sola lettura) e usalo per estrarre i tuoi dati, impostazioni, ecc. Tutti i programmi che avevi, tutti gli script che avevi, abbandonali. Non portarli. Trattali e il sistema, come se avessero la lebbra, perché do.

Una volta terminato, eliminalo dall'orbita .

Game over man, game over.

Fallo il prima possibile. Oh, e scollega la connessione di rete - nega l'accesso all'attaccante.

23
Avery Payne
Sudo netstat -lnp  

Elenca le porte in attesa di connessioni in entrata e il processo associato con la porta aperta.

14
Joe

netstat -anp

"-P" indica di elencare l'ID processo con la porta aperta. -An dice di elencare le porte di ascolto e di non risolvere i nomi. Su sistemi occupati che possono accelerare notevolmente la velocità con cui ritorna.

netstat -anp | grep "ELENCO"

Questo ti darà solo le porte aperte.

4
sysadmin1138

Se non riesci a vedere la porta aperta con gli strumenti del sistema operativo e sospetti un'intrusione, è possibile che sia stato installato un rootkit.

Il rootkit avrebbe potuto cambiare gli strumenti di sistema per evitare determinati processi e porte o modificare i moduli del kernel.

Puoi verificare il rootkit con diversi strumenti automatici. 'apt-cache search rootkit' mostra quanto segue in Ubuntu:

chkrootkit - rootkit detector
rkhunter - rootkit, backdoor, sniffer and exploit scanner
unhide - Forensic tool to find hidden processes and ports

Se ti capita di avere un rootkit puoi ripristinare il 'modificato' sul tuo sistema, ma ti consiglio di scoprire come è stata fatta l'intrusione e indurire il sistema affinché non si ripeta.


Non sono esclusivi di Ubuntu, puoi usarli anche in CentOS. Cerca il pacchetto o scaricalo dalla loro pagina.


Dall'output di quella porta sembra che tu stia eseguendo pcanywhere: "� <� <Invio>" è molto simile a "Prego premi <Invio>" che è il messaggio di benvenuto di pcanywhere. Non so perché il processo non venga visualizzato nell'elenco dei processi. Sei root?

Puoi provare a riavviare per vedere se è in esecuzione anche una volta.

4
chmeee

Per spiegare la risposta di @bjtitus puoi ottenere alcune informazioni molto dettagliate, ad esempio:

$ 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

Vedo proprio lì che il calamaro è il processo, ma in realtà è il mio squid-deb-proxy che sta occupando la porta.

Un altro buon esempio di un'app Java app:

$ 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

Puoi vedere in lsof (LiSt Open Files) che è Java, il che è poco utile. Eseguendo il comando ps con il PID possiamo vedere subito che si tratta di CrashPlan.

0
ErebusBat