Es kann Ihnen irgendwann mal passieren, dass Sie bei dem regelmäßigen Portscann Ihres Servers feststellen, dass ein neuer unbekannter Port offen ist. Es gibt viele gründe wieso ein Port plötzlich geöffnet ist und einer von diesen Gründen ist der, dass jemand auf Ihrem Server eingebrochen ist und ein Backdoor (Hintertürchen) installiert hat. Auf jeden fall müssen Sie jetzt so schnell wie möglich feststellen welches Programm diesen verdächtigen Port offen hält. Zuerst sehen wir uns das Ergebnis eines Portscanners an. Ich benutze gerne den NMAP Portscanner besonders gern unter Linux. Ein Portscann sollte immer mit dem Port 65535 enden um auch Nichts auszulassen.
linux:/ # nmap -p1-65535 1.1.1.1
Starting nmap V. 3.00 ( www.insecure.org/nmap/ ) Interesting ports on server.de (1.1.1.1): (The 65522 ports scanned but not shown below are in state: closed) Port State Service 22/tcp open ssh 80/tcp open http 110/tcp open pop-3 65535/tcp open unknown
Nmap run completed -- 1 IP address (1 host up) scanned in 95 seconds
Dieses Ergebnis ist mehr als verdächtig, schon allein weil der unbekannte Port in den oberen Bereich der Portsnummern liegt.
Es ist natürlich möglich die Portbelegung direkt auf dem Ziel Computer abzufragen. Diese Methode hat allerdings den Nachteil dass der Hacker das Hintertürchen durch die Manipulation von Kommandos versteckt hat.
Das Kommando netstat –ln zeigt uns alle Ports an die auf eine eingehende Verbindung warten.
linux:/ # netstat -ln Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:110 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN tcp 0 0 :::22 :::* LISTEN tcp 0 0 :::65535 :::* LISTEN
Auch in dieser Ausgabe kann man sehen dass irgendein Dienst auf eine Verbindung wartet. Im Moment ist uns nur bekannt das ein verdächtiger Port geöffnet wurde, also müssen wir die Portnummer einer bestimmten Anwendung zuordnen. Dies geschieht mit einer zusätzlichen Option. -p, --programs display PID/Program name for sockets Die Option –p beim netstat zeigt uns die Anwendung die hinter dem Port steckt. linux:/ # netstat -lnp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:110 0.0.0.0:* LISTEN 891/inetd tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 967/httpd tcp 0 0 :::22 :::* LISTEN 563/sshd tcp 0 0 :::65535 :::* LISTEN 995/ctrld
Es ist ein Prozess Namens ctrld mit der Prozess ID 995. Jetzt sammeln wir weitere Informationen zur dem Programm mit der PID 995. Das Kommando ps auxew | grep 995 zeigt uns sämtliche Informationen über diese Anwendung.
Was uns jetzt noch bleibt ist den Prozess anzuhalten, zulöschen und festzustellen wie dieses Programm dahin gekommen ist.
Mit dem Kommando kill können wir den Prozess anhalten kill 995.
Wenn man sich die Arbeit macht, um herauszufinden wie diese Anwendung in den Server gelangt ist muss man die Logdateien analysieren. Die Voraussetzung ist natürlich, dass man bestimmte Ereignisse protokolliert hat. Wenn man ein IDS System wie Snort einsetzt so sollte man diese Logdateien als erstes überprüfen. Meiner Erfahrung nach sollte man immer als erstes seine Mitadministratoren befragen, denn in den meisten Fällen wurde das betreffende Programm von Ihnen installiert. Sollte das Hintertürchen schon seit längerem auf dem Computer aktive sein so ist es meiner Erfahrung nach leider nicht mehr möglich denjenigen zu finden der es installiert hat, weil in den meisten Fällen wird er die Logdateien gesäubert haben.
|