Warum sind alle so besorgt über etc / passwd?

36

Hier ist der Inhalt meiner vagabundierenden Maschine dieser speziellen Datei:

root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
proxy:x:13:13:proxy:/bin:/usr/sbin/nologin
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
backup:x:34:34:backup:/var/backups:/usr/sbin/nologin
list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin
irc:x:39:39:ircd:/var/run/ircd:/usr/sbin/nologin
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/us$
nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
syslog:x:100:103::/home/syslog:/bin/false

Kann mir jemand erklären, warum es so schlimm ist, wenn ein böser Kerl diese Datei von meinem Produktionsserver bekommt?

lustiger Typ
quelle
19
Früher enthielt es die verschlüsselten Passwörter für jeden Benutzer - wo jetzt das: x: ist. Wenn Sie es haben (das war einfach, da es für alle lesbar ist und Sie nur einen Login benötigen), können Sie die Passwörter brutal knacken. Jetzt sind sie in / etc / shadow gespeichert, was von allen nicht lesbar ist, so dass es weniger wahrscheinlich ist, dass sie "rauskommen", aber das gleiche Problem hätte, wenn dies der Fall wäre.
Mark Smith
8
Zum einen kann ich sagen, dass Sie einen Webserver auf dieser Maschine haben. In Kombination mit Ihrer IP-Adresse ist es möglicherweise hackbar>: - D
Rinzwind
3
@ MarkSmith Es enthielt verschlüsselte Passwörter wann? AFAIK begann es Leben als gehashte Passwörter. Natürlich seit ich Unix 1982 zum ersten Mal benutzt habe.
user207421 31.07.15
3
@funguy: Der WWW-Daten-Benutzer wird normalerweise von Webservern verwendet. Ubuntu und wahrscheinlich Debian haben diesen Benutzer als Apache-Standardbenutzer verwendet.
Lie Ryan
3
@funguy www-data ist der Standard-Apache-Benutzer. Es gibt noch mehr: uucp ist Unix zu Unix-Kopie; Das heißt, Sie kopieren Dateien zwischen Systemen. Und "irc" und "gnats" sind auch leicht zu erkennen.
Rinzwind

Antworten:

47

Entscheidend ist, dass Pentester / White-Hats / Ethical Hacker sowie Black-Hats /etc/passwd als Ziel proof of concept, als Test die Möglichkeit des Zugangs zu einem System erproben.

Technisch /etc/passwdist das nicht beängstigend. In der Vergangenheit wurden hier private Daten gespeichert, natürlich Passwörter, aber heutzutage muss man sich mehr Sorgen machen /etc/shadow- die meisten Linux-Systeme verwenden heutzutage eine shadowReihe von Dienstprogrammen, um ein gehashtes und gesalzenes Passwort zu speichern /etc/shadow, was /etc/passwdnicht wie in der Welt ist -lesbar. (es sei denn, Sie verwenden einen pwunconvBefehl, der die gehashten Passwörter tatsächlich zurück in `/ etc / passwd verschiebt).

Die einzigen mehr oder weniger sensiblen Informationen sind die Benutzernamen. Wenn Sie sshdoder telnetauf dem Server haben und einen Benutzernamen mit einem schwachen Passwort haben, besteht die Möglichkeit eines Brute-Force-Angriffs.

By the way, Ihre gleiche Frage wurde vor gefragt . Hier habe ich nur einige der dort bereits erwähnten Begriffe umformuliert.

Kleiner Zusatz: das ist etwas weit hergeholt, aber mir ist aufgefallen, dass du bashals root shell hast . Angenommen, Sie haben einen Benutzer auf dem System, bashdessen Shell noch schlimmer ist - dieser Benutzer ist sudoer. Wenn Ihre Bash veraltet oder nicht gepatcht ist, kann ein Angreifer versuchen, die Shellshock-Sicherheitsanfälligkeit auszunutzen , um Daten zu stehlen oder eine Abwehrbombe auszuführen , die Ihr System vorübergehend herunterfährt. Also ja, technisch gesehen /etc/passwdist es keine große Sache, aber es gibt einem Angreifer eine Vorstellung von einigen Informationen darüber, was er versuchen soll

Zusätzliche Bearbeitung, 18.11.2016

Nachdem ich einen Ubuntu-Server für eine Weile auf Digital Ocean verwendet hatte, wurde ich darauf aufmerksam, dass die meisten Brute-Force-Angriffe auf meinen Server für rootBenutzer ausgeführt wurden - 99% der Einträge für fehlgeschlagene Passwörter in /var/log/auth.logwaren für root. /etc/passwordWie bereits erwähnt, gibt der Angreifer einen Überblick über die Liste der Benutzer und nicht nur der Systembenutzer, sondern auch der menschlichen Benutzer. Dies bedeutet, dass mehr Angriffsmöglichkeiten bestehen. Denken Sie daran, dass nicht alle Benutzer sicherheitsbewusst sind und nicht immer ein sicheres Kennwort erstellen. Daher ist die Wahrscheinlichkeit, dass ein Angreifer auf menschliches Versagen oder Überbewusstsein setzt, sehr hoch.

Sergiy Kolodyazhnyy
quelle
6
+1, tolle Antwort. Hinzu kommt, dass Informationen im Allgemeinen Macht sind. Abgesehen von dem berüchtigten Shellshock könnte man zum Beispiel Informationen über die laufenden Prozesse sammeln, die auch ausgenutzt werden könnten; Auf dem Computer von OP läuft beispielsweise Apache, und das ist eine weitere potenzielle Lücke, die noch offen ist
kos
1
Hmm ... Würden Sie also vorschlagen, die Standardbenutzernamen zu ändern, um einen Angreifer zu verwirren?
Freedo
@Freedom Das hilft nicht. Die Benutzer- und Gruppen-IDs bleiben unverändert, wenn Sie die Anmeldung ändern. Zum Beispiel, hier ist mein Testuser: testuser1:x:1001:1001:,,,:/home/testuser:/bin/bash. Nachdem ich laufen sudo usermod testuser1 -l testuser2 sudo usermod testuser1 -l testuser2 , hat der Eintrag anderen Benutzernamen aber gid und uid sind die gleichen: testuser2:x:1001:1001:,,,:/home/testuser:/bin/bash. Wenn das Passwort nicht geändert wird, kann der Angreifer das System erraten und trotzdem knacken. Das Erfordernis, dass das Kennwort abläuft und von Zeit zu Zeit geändert wird, ist ein besserer Ansatz, aber auch kein Kugelsicherheitsnachweis.
Sergiy Kolodyazhnyy
1
Das Ändern der Standardbenutzernamen ist hilfreich für Konten mit SSH-Anmeldungen (oder anderen Remoteanmeldungen). Das bedeutet natürlich auch, dass die Standardports für diese Anmeldungen geändert werden. Alles, was Sie in die Lage versetzt, Ihre Protokolle von Milliarden von zufälligen Drive-by-Scans durch Script-Kiddies freizuhalten, bedeutet, dass Sie sich auf die gezielteren Angriffe konzentrieren können. Wenn Ihre benutzerdefinierten Namen in Ihren Protokollen für fehlgeschlagene Anmeldungen auftauchen, ist dies eher ein schwerwiegender Versuch als ein vorbeifahrender Versuch.
Dewi Morgan
11

Um sich an einem Computer anzumelden, müssen Sie sowohl den Benutzernamen als auch das Kennwort kennen.

/etc/passwd Bietet Informationen zu Benutzern, mit denen Sie die Hälfte der Informationen erhalten, die Sie benötigen, und die verwendet werden, um einen Hash Ihres Kennworts einzuschließen.

Ein Hash ist etwas, das aus Ihrem Passwort berechnet wird. Es ist schwierig, ein Passwort aus einem Hash zu finden, aber nicht umgekehrt. Wenn Sie beide haben, können Sie Brute-Force-Versuche durchführen, um das Kennwort offline zu finden. Versuchen Sie dann erst, eine Verbindung zum Computer herzustellen, wenn Sie es gefunden haben.

Heute wird die Sicherheit verbessert, da die Hashes in einer anderen Datei gespeichert werden, /etc/shadowdie von den meisten Benutzern standardmäßig nicht gelesen werden kann.

Aber wenn ich Zugriff auf beide hatte /etc/passwdund /etc/shadowIhr Passwort wahrscheinlich mithilfe eines Brute-Force-Wörterbuch-Angriffs finden könnte. Da ich dies lokal auf meinem Computer ausführen kann, werden Sie nicht viele fehlgeschlagene Versuche bemerken, Ihr Kennwort zu finden, und ich muss mich erst wieder mit Ihrem Computer verbinden, wenn ich das Kennwort kenne. Ich kann dann tun, was ich will.

Weitere Informationen finden Sie hier auf Wikipedia

Warren Hill
quelle
Sie sollten hier wahrscheinlich "Rainbow Tables" erwähnen, um eine Vorstellung davon zu bekommen, wie dieser Brute-Force-Angriff funktioniert.
Rick Chatham