Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Ist mein Linux Server mit dem Windigo Botnet infiziert?

Anleitung Sicherheit Erkennung und -Abwehr

Mitglied: Frank

Frank (Level 5) - Jetzt verbinden

20.03.2014, aktualisiert 24.03.2014, 8026 Aufrufe, 14 Kommentare, 15 Danke

Da das Windigo Botnet sein Unwesen treibt, wird es mal wieder Zeit seinen eigenen Linux-Server genauer zu überprüfen. Hier die einzelnen Schritte zum Testen des Servers:

1) Läuft auf meinem Linux-System überhaupt Ist ein SSH-Daemon?

Überprüfe als erstes, ob überhaupt ein SSH-Server installiert ist. Hat Dein Linux System keinen SSH-Daemon und auch keinen "ssh"-Befehl funktioniert das Testscript natürlich nicht. Dann starte die Überprüfung mit Punkt 4.

2) Ich habe eine SSH Version mit dem X.509-Patch von Roumen Petrov

Der Test Nummer 3 sollte nicht auf einem System ausgeführt werden, der OpenSSH mit dem X.509-Patch von Roumen Petrov einsetzt. Dieser Patch fügt dem SSH-Daemon die Unterstützung für X.509-PKI-Zertifikate hinzu und enthält seit September 2013 eine -G Option. Normalerweise gibt es sonst die Option -G nicht (nur bei den infizierten Systemen meldet -G durch einen Fehler in der Programmierung einen Status). Daher direkt zum Punkt 4 gehen.

3) SSH-Server vorhanden und kein X.509-Patch - jetzt folgt der eigentliche Test:

Gebe im angemeldeten Zustand folgenden Befehl ein:
ssh -G 2>&1 | grep -e illegal -e unknown > /dev/null && echo "System clean" || echo "System infected" 
laut Sicherheitsforschern bei Eset testen, ob der Server schon Teil des Windigo-Botnets ist.

4) libkeyutils.so überprüfen

Wenn "System infected" erscheint, sollte der Admin das Ergebnis natürlich validieren. Prüfe wie groß die Datei libkeyutils.so auf deinem System ist. Diese liegt normalerweise unter /usr/lib/ oder nur /lib/ und sollte unter 20 KB groß sein.

Man kann die Datei mit Hilfe des "locate"-Befehls im Linux-System finden:
locate libkeyutils.so
Alternativ, wenn "locate" nicht installiert ist, funktioniert es auch mit dem "find" Befehl:
find / -name libkeyutils.so* -ls
Bei mir erscheinen dann zwei Dateien (Ubuntu 12.04 LTS):
/lib/x86_64-linux-gnu/libkeyutils.so.1 
/lib/x86_64-linux-gnu/libkeyutils.so.1.4
Die erste Datei "/lib/x86_64-linux-gnu/libkeyutils.so.1.4" ist nur ein Link auf "libkeyutils.so.1.4".
Mit dem dir Befehl kann man sich die Größe anzeigen lassen:
dir /lib/x86_64-linux-gnu/libkeyutils.so.1.4 
-rw-r--r-- 1 root root 14360 Okt 17  2011 /lib/x86_64-linux-gnu/libkeyutils.so.1.4
Die Datei ist bei mir 17 KB groß. Normalerweise ist die lib ca 10 bis 20 KB groß.
Ist die Datei aber um die 30 KB groß, seid ihr wahrscheinlich mit dem Windigo Bot infiziert.

5) Shared Memory Inspection - eine Test für Linux/Ebury

Dabei wird im Shared Memory die Größe und das Vorhandensein des SSH-Daemon geprüft.

Als root anmelden und folgenden Befehl eingeben (versuche den größten Prozess mit dem User root zu finden):
ipcs -m 
------ Shared Memory Segments -------- 
key shmid owner perms bytes nattch 
0x00000000 0 root 644 80 2 
0x00000000 32769 root 644 16384 2 
0x00000000 65538 root 644 280 2 
0x000010e0 465272836 root 666 3282312 0
Dann schaue für diesen Prozess nach, welcher Dienst den Shared Memory erzeugt hat.
# ipcs -m -p 
------ Shared Memory Creator/Last-op PIDs -------- 
shmid owner cpid lpid 
0 root 4162 4183 
32769 root 4162 4183 
65538 root 4162 4183 
465272836 root 15029 17377
Stimmt der Dienst mit dem sshd überein?
# ps aux | grep <pid> 
root 11531 0.0 0.0 103284 828 pts/0 S+ 16:40 0:00 grep 15029 
root 15029 0.0 0.0 66300 1204 ? Ss Jan26 0:00 /usr/sbin/sshd
Verwendet der sshd-Dienst Shared Memory, ist größer als 3 MB und hat die Zugriffsrechten 666 dann ist der Server höchstwahrscheinlich mit dem Windigo Bot infiziert (Genauer: mit Linux/Ebury).
Weitere Infos zum Ebury-Rootkit findet ihr hier: BSI-Warnung: Zahlreiche deutsche Server mit Ebury-Rootkit infiziert.

6) Der Linux/Cdorked Test

Als Root in der Bash folgende Befehle eingeben:
$ curl -i http://myserver/favicon.iso | grep "Location:" 
oder nur 
$ curl -i http://myserver/favicon.iso
Bei beiden Befehlen sollte ein: curl: (6) Couldn't resolve host 'myserver' erscheinen. Erfolgt aber statt dessen:
Location: http://google.com/
Dann könnt ihr davon ausgehen, das Euer System mit dem Linux/Cdorked infiziert ist.

7) Der Perl/Calfbot Test (der Spambot)

Als Root in der Bash folgende Befehle eingeben:
flock --nb /tmp/... echo "System clean" || echo "System infected"
Erscheint "System infected" kann man sich das mit lsof genauer anschauen:
lsof /tmp/...
Dann sollte man das System weiter prüfen:
pgrep -x "crond" | xargs -I ‘{}’ ls -la "/proc/{}/exe"
Wenn kein "pgrep" installiert ist funktioniert auch folgendes:
ps -ef | grep crond |  grep -v grep | awk '{print $2}'
Erscheint nichts, sieht es gut aus. Erscheint aber ein "/tmp/ " (mit Leerzeichen) dann ist Euer System höchstwahrscheinlich mit dem Perl/Calfbot infiziert.

8) Mein System ist infiziert - Was nun?

Die Autoren der Windigo Studie kommen nur zu einem Ergebnis: "We advise for a full reinstall of the compromised server from verified sources" - auf gut deutsch: Setzt den Server komplett neu auf. Es gibt keinen anderen Weg.

9) Wie hat sich mein Server infiziert?

Das Windigo Netzwerk besteht aus mehreren Infektionen und Bots: Linux/Ebury, Linux/Cdorked, Linux/Onimiki und Perl/Calfbot (der Mail Spambot). Die Angriffsstellen sind der SSH-Daemon, die Webserver Apache, Lighttpd, Nginx und der Linux Kernel. Es gab sogar infizierte Install-Images von einem Offiziellen CentOS Mirror. Bekannt wurde das Netzwerk zum ersten Mal im Jahre 2011 mit der erfolgreichen Infizierung der Linux-Kernel Seite kernel.org.

10) Weitere Informationen über das Windigo Netzwerk und seine Funktionsweise

Hier findet ihr eine 68-seitige Studie (englisch, im PDF-Format), die den Windigo Bot und das Netzwerk dahinter im Detail beschreibt.

Viel Spaß beim Testen!

P.S. wir sind clean

Gruß
Frank
Mitglied: Lochkartenstanzer
20.03.2014 um 17:09 Uhr
Zitat von Frank:

P.S. wir sind clean

/me2

lks
Bitte warten ..
Mitglied: wiesi200
20.03.2014, aktualisiert um 18:32 Uhr
Meiner nach einem 30sec Schock da der erste Test positiv war auch.

Ich gebe noch ein Plus da hier der Informationsgehalt der Meldung besser als bei den anderen Meldungen zum Thema ist.
Bitte warten ..
Mitglied: certifiedit.net
20.03.2014 um 18:50 Uhr
Zitat von wiesi200:

Meiner nach einem 30sec Schock da der erste Test positiv war auch.

Ich gebe noch ein Plus da hier der Informationsgehalt der Meldung besser als bei den anderen Meldungen zum Thema ist.

Den Patch übersehen?

Abgesehen davon: Schocks (und aus den Latschen kippende Admins) helfen bei einem Befall am wenigsten
Bitte warten ..
Mitglied: wiesi200
20.03.2014 um 19:12 Uhr
Zitat von certifiedit.net:

> Zitat von wiesi200:
>
> Meiner nach einem 30sec Schock da der erste Test positiv war auch.
>
> Ich gebe noch ein Plus da hier der Informationsgehalt der Meldung besser als bei den anderen Meldungen zum Thema ist.

Den Patch übersehen?

Abgesehen davon: Schocks (und aus den Latschen kippende Admins) helfen bei einem Befall am wenigsten

Nur einfach den Befehl blind in's Shell kopiert, ohne mir Gedanken zu machen das es bei mir den Befehl ssh nicht gibt.
Der SSH Server reagiert bei Centos auf sshd

Da ich von keinen SSH Zugriff auf unseren Router bzw. durch unseren Router lasse war ich schon etwas geschockt wo das herkommen mag.
Ich hab unseren Webserver direkt im Haus stehen, da reicht mir der zugriff vom internen Netz.
Bitte warten ..
Mitglied: Frank
21.03.2014, aktualisiert um 01:47 Uhr
Hallo @wiesi200,

das Windigo Botnet ist recht komplex und sehr vielseitig. Ich habe mir gerade die 64-seitige Studie dazu angeschaut (siehe oben Punkt 8) und musste feststellen, dass man sich nicht nur über den SSH-Server damit infizieren kann. Die Kette der Möglichkeiten ist sehr lang (SSH-Daemon, die Webserver Apache, Lighttpd, Nginx und der Linux Kernel, CentOS Install Image von einem infizierten Mirror). Ich habe daher drei weitere Tests hinzugefügt (Punkt 5,6,7).

Ich empfehle jedem Linux Admin die oben genannten 5 Tests durchzuführen. Erst dann kann man wieder beruhigt schlafen. Nur weil man keinen SSH-Daemon auf dem Server installiert hat, heißt das leider noch nicht, dass man nicht infiziert ist.

P.S. Es ist übrigens das erste Mal das Linux Server in diesem Ausmaß (aktuell über 11.000 Server) infiziert wurden. Die Techniken dazu kommen teilweise aus der Windows-Welt (z.B. das modifizierte libkeyutils.so Modul). Wie auch immer, tilgen wir ihn aus der Linux-Welt!



Gruß
Frank
Bitte warten ..
Mitglied: wiesi200
21.03.2014 um 07:49 Uhr
Kann jetzt gut schlafen

Danke
Bitte warten ..
Mitglied: SlainteMhath
21.03.2014 um 10:24 Uhr
Moin,

Klasse Artikel

Bei Punkt 4) würde sich m.E. ein
01.
find / -name libkeyutils.so* -ls
besser machen, da das auch dann geht wenn locate nicht installiert ist. find ist wohl standard bei allen Distris.

lg,
Slainte

PS: auch hier alles sauber
Bitte warten ..
Mitglied: mrtux
21.03.2014, aktualisiert um 14:04 Uhr
Hi!

Guter Artikel auch ein +1 von mir....Hier auch clean...Kunden werden turnusmässig mitgetestet...

Zitat von SlainteMhath:
besser machen, da das auch dann geht wenn locate nicht installiert ist. find ist wohl standard bei allen Distris.

Yes z.B. bei Arch ist das Paket per Default nicht installiert....

mrtux
Bitte warten ..
Mitglied: Frank
21.03.2014, aktualisiert um 14:35 Uhr
Hallo @SlainteMhath,

find / -name libkeyutils.so* -ls

Ja, gute Idee. Ich bin halt von Ubuntu etwas verwöhnt
Ich habe es oben im Beitrag ergänzt.

Gruß
Frank
Bitte warten ..
Mitglied: SlainteMhath
21.03.2014 um 15:05 Uhr
. Ich bin halt von Ubuntu etwas verwöhnt
Ubuntu? Ich dachte das Tutorial war für Server gedacht?

*wegrenn*

Schönes WE
Slainte
Bitte warten ..
Mitglied: Lochkartenstanzer
21.03.2014 um 15:15 Uhr
Zitat von SlainteMhath:

> . Ich bin halt von Ubuntu etwas verwöhnt
Ubuntu? Ich dachte das Tutorial war für Server gedacht?

man kann auch mit Ubuntu Server bauen. Muß halrt den ganzen Klickibunti-Quatsch weglassen. .

Aber eine Liste von Utilities, die ich immer gleich in ein linux system dazuinstalliere und dazu gehört u.a. slocate. von daher ist es unerheblich, ob die Distribution das per default installiert oder nicht.

lks
Bitte warten ..
Mitglied: mrtux
21.03.2014, aktualisiert 02.04.2014
Hi!

Zitat von Lochkartenstanzer:
man kann auch mit Ubuntu Server bauen. Muß halrt den ganzen Klickibunti-Quatsch weglassen. .

Soweit ich mich noch erinnere ist bei der Ubuntu Server Variante gar kein - oder zumindest - nicht so viel Klickibunti dabei....

daher ist es unerheblich, ob die Distribution das per default installiert oder nicht.

Naja der Admin scheut ja erstmal von Haus aus...lästige (schwitz Kurve gerade noch geschafft...) Arbeit. Lästig in sofern, dass manche Systools oftmals von Distribution zu Distribution wild in den Paketen umher gewürfelt werden und sogar manchmal im Laufe der Zeit verlagert werden. Gerade bei Rolling-Releases kann das schon mal vorkommen, dass die Tools mehrmals mit den Jahren auf (Paket-) Wanderschaft gehen. Auch bei Distributionen, bei denen krasse Schritte eher unüblich sind, kann sowas vorkommen. So wie sich die Debianer lange Zeit nicht auf ein neues Init einigen konnten. Momentan ist bei Debian glaub systemd der Favorit und bei Ubuntu ist es immer noch upstart, soweit ich es gerade noch in Erinnerung habe...Das kann sich aber auch mal ändern und dann ist fast immer Handarbeit beim Update angesagt...

mrtux
Bitte warten ..
Mitglied: Frank
21.03.2014 um 17:18 Uhr
Hi,

wie @mrtux schon erwähnte, gibt es von Ubuntu eine Server-Version. Diese ist sehr gut, sehr einfach zu pflegen, sehr verbreitet und sie hat so rein gar nichts mit der Desktop Version zu tun -> daher kein Klickibunti-Quatsch! Alle Administrator.de Server laufen auf einer Ubuntu LTS Version.



Gruß
Frank
Bitte warten ..
Mitglied: Lochkartenstanzer
21.03.2014 um 17:24 Uhr
Zitat von Frank:

verbreitet und sie hat so rein gar nichts mit der Desktop Version zu tun -> daher kein Klickibunti-Quatsch! Alle
Administrator.de Server laufen auf einer Ubuntu LTS Version.


Ich habe schon "Server" mit dem Desktop gesehen. Deswegen mein Einwurf.

lks

PS. Ich selber habe auch diverse LTS im Servereinsatz. Demnächst werden wieder ein paar 10.04-er fällig zum Updaten, wenn die 14.04-er stabil genug sein sollten.
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Linux
Linux-Server (IGEL UMS5) auf Windows umziehen (2)

Frage von Holywarrior1 zum Thema Linux ...

Debian
gelöst Kein Zugriff auf Linux Server nach Neustart - Alle Ports zu (22)

Frage von itschloegl zum Thema Debian ...

Linux Netzwerk
VPN Server mit Drosselung Linux Debian basiert (4)

Frage von Niklas434 zum Thema Linux Netzwerk ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (20)

Frage von Xaero1982 zum Thema Microsoft ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Festplatten, SSD, Raid
M.2 SSD wird nicht erkannt (14)

Frage von uridium69 zum Thema Festplatten, SSD, Raid ...