Finden Sie den Prozess, der mit launchd verbunden ist

Der TCP-Port 5901 ist auf meinem Rechner geöffnet und verursacht Unheil, und ich möchte wissen, welcher Prozess ihn öffnet. Beim Ausführen lsof -i -Psehe ich, dass launchd der Prozess ist, der den Port geöffnet hat.

Gibt es eine schnelle Möglichkeit, festzustellen, welche launchd-PLIST-Datei zum Öffnen dieses Ports verwendet wird? Ich möchte lieber nicht jede plist durchgehen, die von erwähnt wird launchctl list.

Antworten (2)

Erstens, wird dies vom System launchd (Prozess-ID 1, ausgeführt als root) oder einem Benutzer launchd (der als Benutzer ausgeführt wird) geöffnet? Wenn es das System launchd ist, suchen Sie nach einem LaunchDaemon; Wenn es sich um einen Benutzer launchd handelt, suchen Sie nach einem LaunchAgent.

Angenommen, es handelt sich um den System-Launchd, können Sie wie folgt nach dem relevanten LaunchDaemon suchen:

grep 5901 {,/System}/Library/LaunchDaemons/*

(Hinweis: Wenn Port 5901 in /etc/services aufgeführt wäre, müssten Sie ihn auch nach Name und Nummer suchen. Ist es aber nicht, also brauchen Sie sich darüber keine Gedanken zu machen.)

Es ist auch möglich, dass es sich um einen LaunchDaemon handelt, der von einer anderen Stelle geladen wurde; Das aufzuspüren wäre unordentlich, also beginnen Sie zuerst mit der einfachen Prüfung.

Toll grepdort. Schöne Verallgemeinerung auch auf /etc/services .

Port 5901 wird für VNC ( Remotedesktop-Bildschirmfreigabe unter OS X ) verwendet, und Launchd liest standardmäßig alle Konfigurationsdateien, die auf Ihrem Mac geladen sind, und lauscht dann auf Ports, anstatt das Programm zu starten, das schließlich die Kommunikation über diesen Port empfängt .

Da Sie in diesem Fall nur launchd und keinen screensharingd- oder ScreensharingAgent- Prozess sehen, können Sie vielleicht einfach schlussfolgern, dass launchd als Proxy für einen anderen Prozess lauscht, der derzeit nicht läuft (oder vielleicht noch laufen wird).

Sie können dies testen, indem Sie die Bildschirmfreigabeeinstellungen in den Systemeinstellungen deaktivieren oder jede andere Remote-VNC-Serversoftware deinstallieren, die Sie haben, und dann erneut untersuchen lsof.

Wir haben also keine VNC-Software, von der ich weiß, dass sie auf dem Computer installiert ist. Darüber hinaus wurden die Bildschirmfreigabe und alle Fernverwaltungsdienste deaktiviert, der Port ist jedoch noch offen. Ich weiß, dass ein Prozess mit diesem Port verbunden ist, denn wenn ich mich über netcat mit ihm verbinde, stürzt mein Computer ab.
Hmm - mir fällt keine andere Abkürzung ein als die, die Sie vermeiden möchten - herauszufinden, welche plist launchd dazu bringt, auf 5901 zu lauschen. Ich habe keine Systeme, die diesen Port abhören - also ist es hoffentlich etwas Unschuldiges und keine Malware.