Frage Wie kann ich feststellen, unter welchem ​​Prozess ein bestimmter Port unter Linux geöffnet ist?


Ich lief nmap auf meinem Server und fand einen seltsamen Port offen. Ich versuche herauszufinden, ob es eine Möglichkeit gibt, diesen Port einem bestimmten Prozess zuzuordnen, habe aber keine Ahnung, ob es ein solches Tool gibt.

Irgendwelche Vorschläge?


33
2018-06-14 05:24


Ursprung


Upvote für # 1 Antwort in Gogle Juni 2018. - SDsolar


Antworten:


Sowie Netstat, in anderen Posts erwähnt, sollte der lsof-Befehl in der Lage sein, dies gut zu machen. Benutze das einfach:

lsof -i :<port number>

und alle Prozesse sollten auftauchen. Ich benutze es sehr häufig auf OS X.

Debian-Administrationsartikel für lsof


56
2018-06-14 05:30



interessant. Ich wusste nichts davon. Ich betrachte dies jedoch als Ergebnis eines Hack-Versuches. Maschine ist ein Freund. Sie können zu dem fehlerhaften Port telnet, ABER lsof UND netstat beide offenbaren den Port nicht als offen. - jnman
der Port ist 5631 was nach / etc / services ist pcanywheredata so sehr verdächtig. - jnman
Nun, das ist nett, das wusste ich nicht! Immer verwendet Netstat. Vielen Dank - buster
Wenn weder netstat noch lsof den Port als benutzt zeigen, aber der Rechner darauf reagiert, ist wahrscheinlich ein Root-Kit installiert. Ich empfehle, die Daten irgendwo anders von der Maschine zu entfernen und sie dann zu vernichten. - Kamil Kisiel
Dies ist in der Tat ein Rootkit. Ich habe dieses Verhalten schon einmal gesehen, und es ist so immer ein Rootkit. Ihr System ist kompromittiert und alle von Ihnen verwendeten Tools können nicht vertrauenswürdig sein. Starten Sie auf eine Live-CD (die schreibgeschützte vertrauenswürdige Binärdateien enthält) und verwenden Sie diese, um Ihre Daten, Einstellungen usw. zu extrahieren. Alle Programme, die Sie hatten, alle Skripts, die Sie hatten, geben sie auf. Bring sie nicht mit. Behandle das System so, als hätte es Lepra, weil es / tut /. Sobald du fertig bist, zerstöre es aus dem Orbit. Mach das so schnell wie möglich. Oh, und trennen Sie Ihre Netzwerkverbindung - verweigern Sie Ihrem Angreifer den Zugriff. - Avery Payne


Warnung: Ihr System ist kompromittiert.

Das Werkzeug, das Sie brauchen, ist lsof, die Dateien (und Sockets und Ports) auflistet. Es ist höchstwahrscheinlich installiert, und es ist wahrscheinlich die Version des Angreifers, was bedeutet, dass es wird Lüge für dich.

Dies ist in der Tat ein Rootkit. Ich habe dieses Verhalten schon einmal gesehen, und es ist so immer ein Rootkit. Ihr System ist kompromittiert und alle Tools, die Sie verwenden, die von demselben Computer stammen, können nicht vertraut werden. Starten Sie auf eine Live-CD (die schreibgeschützte vertrauenswürdige Binärdateien enthält) und verwenden Sie diese, um Ihre Daten, Einstellungen usw. zu extrahieren. Alle Programme, die Sie hatten, irgendwelche Skripte, die Sie hatten, verlasse sie. Bring sie nicht mit. Behandle sie, und das System, als ob sie Lepra haben, weil sie tun.

Sobald du fertig bist, nuke es aus dem Orbit.

Game over man, game over.

Mach das so schnell wie möglich. Oh, und trennen Sie Ihre Netzwerkverbindung - verweigern Sie Ihrem Angreifer den Zugriff.


22
2018-06-14 20:44



Das sagt alles wirklich. Finden Sie heraus, was schief gelaufen ist, reduzieren Sie den Server, stellen Sie das letzte bekannte Backup wieder her. Das Leben ist zu kurz, um Spiele zu spielen. - Rob Moir
Fügen Sie einfach Folgendes hinzu: Stellen Sie sicher, dass Sie das Datum des Einbruchs kennen, da Sie möglicherweise dasselbe Rootkit wiederherstellen, das Sie gerade entfernt haben. Ansonsten, ja, Wiederherstellung von / vor / diesem Datum. - Avery Payne
Das ist eine lustige Grafik. Ich weiß, dass das System kompromittiert ist (zum Glück gehört es mir nicht). Die Frage, die mich neugierig machte, war herauszufinden, wie er überhaupt hineingekommen ist. Ich vermute über php / joomla, wollte aber verstehen, wie / warum dieser Port offen blieb, wenn keines der Root-Kit-Erkennungstools diesen Port zeigte. - jnman
lol @ "Oh, und trennen Sie Ihre Netzwerkverbindung" - theman_on_osx
Bevor du Springe zu dieser SchlussfolgerungEs gibt andere mögliche Erklärungen dafür, dass unerwartete Ports offen sind. wie ein Paket, das Sie installiert haben, aber vergessen haben. - David J.


sudo netstat -lnp  

Listet Ports auf, die auf eingehende Verbindungen und den zugehörigen Prozess warten, bei dem der Port geöffnet ist.


13
2018-06-14 05:30





netstat -anp

Das "-p" sagt ihm, die Prozess-ID, die den Port geöffnet hat, aufzulisten. Der -an sagt ihm, dass er Listening-Ports auflisten und keine Namen auflösen soll. Auf stark ausgelasteten Systemen, die die Geschwindigkeit der Rückkehr stark beschleunigen können.

netstat -anp | grep "LISTE"

Das gibt dir nur die offenen Ports.


4
2018-06-14 05:30





Wenn Sie den geöffneten Port nicht mit den Betriebssystem-Tools sehen können und eine Intrusion vermuten, könnte ein Rootkit installiert sein.

Das Rootkit könnte System-Tools geändert haben, um bestimmte Prozesse und Ports oder geänderte Kernel-Module zu vermeiden.

Sie können mit mehreren automatisierten Tools nach Rootkits suchen. 'apt-cache search rootkit' zeigt in Ubuntu folgendes an:

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

Wenn Sie ein Rootkit haben, können Sie das "geändert" auf Ihr System zurücksetzen, aber ich empfehle, dass Sie herausfinden, wie die Intrusion gemacht wurde, und das System härten, damit es nicht wiederholt wird.


Sie sind nicht exklusiv für Ubuntu, Sie können sie auch in CentOS verwenden. Suchen Sie einfach nach dem Paket oder laden Sie es von seiner Seite herunter.


Durch die Ausgabe von diesem Port scheint es, dass Sie pcany betreiben, in der Tat: " Ы <Enter>" ist sehr ähnlich wie "Bitte drücken Sie <Enter>", was pcanywhere welcome Nachricht ist. Ich weiß nicht, warum der Prozess nicht in der Prozessliste erscheint. Bist du root?

Sie können versuchen, neu zu starten, um zu sehen, ob auch ein einmaliger Prozess ausgeführt wird.


4
2018-06-14 06:45



irgendwelche Vorschläge für Centos? - jnman
Seltsamerweise zeigt Unhide-TCP keine verdächtigen Ports. chkrootkit / rkhunter hat alles klar gemeldet (aber hauptsächlich, weil ich die verdächtigen Dirs gelöscht habe, bevor ich diese Frage gestellt habe) - jnman
FWIW, das Rootkit hatte sich als Apache in / var / tmp / ... und /var/tmp/.ICE-Unix/* installiert. Der zweite war hinterhältig, da ich es beim ersten Mal nicht bemerkt habe und ich mich gefragt habe, wie der Teufel, ein Bash-Prozess laicht sich immer wieder selbst auf, nachdem er getötet wurde. - jnman
Stellt sich heraus, der Cracker installiert einen Cron-Job. - jnman


Um die Antwort von @bjtitus zu erklären, können Sie sehr detaillierte Informationen erhalten, zum Beispiel:

$ 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

Ich kann genau sehen, dass Tintenfisch ist der Prozess, aber es ist wirklich mein squid-deb-proxy das nimmt den Hafen auf.

Ein weiteres gutes Beispiel für eine 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

Sie können sehen in lsof (LiSt Open Files) dass es Java ist, was weniger als hilfreich ist. Laufen der ps Befehl mit der PID können wir sofort sehen, dass es CrashPlan ist.


0
2018-06-17 15:57