J'ai exécuté nmap sur mon serveur et j'ai trouvé un étrange port ouvert. J'essaie de comprendre s'il existe un moyen de mapper ce port à un processus spécifique, mais je n'ai aucune idée s'il existe un tel outil.
Aucune suggestion?
En plus de Netstat, mentionné dans d'autres articles, la commande lsof devrait être en mesure de le faire très bien. Utilisez simplement ceci:
lsof -i :<port number>
et tous les processus devraient arriver. Je l'utilise assez souvent sur OS X.
L'outil dont vous avez besoin est lsof
, qui répertorie les fichiers (et les sockets et les ports). Il est probablement installé, et il s'agit très probablement de la version de l'attaquant, ce qui signifie qu'il vous sera mentir.
Il s'agit en effet d'un rootkit. J'ai déjà vu ce comportement auparavant, et c'est toujours un rootkit. Votre système est compromis et les outils que vous utilisez qui proviennent de la même machine ne sont pas fiables. Démarrez dans un Live CD (qui a des binaires de confiance en lecture seule) et utilisez-le pour extraire vos données, paramètres, etc. Tous les programmes que vous aviez, tous les scripts que vous aviez, abandonnez-les. Ne les apportez pas. Traitez-les, ainsi que le système, comme s'ils avaient la lèpre, car ils faites.
Faites-le dès que possible. Oh, et débranchez votre connexion réseau - refusez à votre attaquant l'accès.
Sudo netstat -lnp
Répertorie les ports qui écoutent les connexions entrantes et le processus associé qui a le port ouvert.
netstat -anp
Le "-p" lui indique de lister l'ID de processus qui a le port ouvert. Le -an lui indique de lister les ports d'écoute et de ne pas résoudre les noms. Sur les systèmes occupés, la vitesse de retour peut être considérablement accélérée.
netstat -anp | grep "LISTE"
Cela vous donnera simplement les ports ouverts.
Si vous ne voyez pas le port ouvert avec les outils du système d'exploitation et que vous soupçonnez une intrusion, il se peut qu'un rootkit ait été installé.
Le rootkit aurait pu changer les outils système pour éviter certains processus et ports ou changer les modules du noyau.
Vous pouvez vérifier le rootkit avec plusieurs outils automatisés. 'apt-cache search rootkit' montre ce qui suit dans Ubuntu:
chkrootkit - rootkit detector
rkhunter - rootkit, backdoor, sniffer and exploit scanner
unhide - Forensic tool to find hidden processes and ports
S'il vous arrive d'avoir un rootkit, vous pouvez restaurer le "changé" sur votre système, mais je vous recommande de découvrir comment l'intrusion a été faite et de durcir le système pour qu'il ne se répète pas.
Ils ne sont pas exclusifs à Ubuntu, vous pouvez également les utiliser dans CentOS. Recherchez simplement le package ou téléchargez-le à partir de leur page.
D'après la sortie de ce port, il semble que vous exécutiez pcanywhere en effet: "�Ы� <Entrée>" est très similaire à "Veuillez appuyer sur <Entrée>" qui est le message de bienvenue de pcanywhere. Je ne sais pas pourquoi le processus n'apparaît pas dans la liste des processus. Êtes-vous root?
Vous pouvez également essayer de redémarrer pour voir s'il s'agit d'un processus unique en cours d'exécution.
Pour exposer la réponse de @bjtitus, vous pouvez obtenir des informations très détaillées, par exemple:
$ 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
Je peux voir ici que le calmar est le processus, mais c'est vraiment mon squid-deb-proxy
qui prend le port.
Un autre bon exemple d'application 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
Vous pouvez voir dans lsof
(LiSt Open Files) que c'est Java, ce qui est loin d'être utile. En exécutant la commande ps
avec le PID, nous pouvons voir immédiatement qu'il s'agit de CrashPlan.