Seltsamer Befehl grep / etc / shadow erscheint in meiner Logwatch

7

Ich sehe diesen Eintrag in meiner täglichen Logwatch-Ausgabe, Sudo-Abschnitt:

/bin/grep -E ^pi: /etc/shadow

Sollte ich besorgt sein? Ich habe diesen Befehl sicherlich nicht selbst ausgeführt.

Boozedog
quelle
Passiert es jeden Tag zur gleichen Zeit? Was passiert sonst noch zur gleichen Zeit? Mit der Option -C können Sie Ihre Protokolle durchsuchen und die umgebenden Protokolle zurückgeben (z. B. grep -C 3 / bin / grep -E ^ pi: / etc / shadow /var/log/auth.log - oder / var / log / syslog)
Steve Robillard

Antworten:

9

Dies ist eine Spur eines Standardskripts (eingeführt in der Raspbian-Version vom November 2016), das überprüft, ob Sie das Kennwort für den Benutzer geändert haben pi.

Das Skript wird in gespeichert /etc/profile.d/sshpasswd.shund zeigt eine Warnung an, wenn der SSH-Deamon aktiviert wurde, das Kennwort für den piBenutzer jedoch nicht vom Standardkennwort ( raspberry) geändert wurde . Es wird bei jedem Login aufgerufen.

Das Skript in seiner ursprünglichen Form:

check_hash ()
{
        local SHADOW="$(sudo -n grep -E '^pi:' /etc/shadow 2>/dev/null)"
        test -n "${SHADOW}" || return 0
        local SALT=$(echo "${SHADOW}" | sed -n 's/pi:\$6\$//;s/\$.*//p')
        local HASH=$(mkpasswd -msha-512 raspberry "$SALT")

        if systemctl is-active ssh -q && echo "${SHADOW}" | grep -q "${HASH}"; then
                echo
                echo "SSH is enabled and the default password for the 'pi' user has not been changed."
                echo "This is a security risk - please login as the 'pi' user and type 'passwd' to set a new password."
                echo
        fi
}

check_hash
unset check_hash

In Raspbian Stretch wurde das Skript in eine /run/sshwarnDatei geändert, die das Vorhandensein einer Datei überprüft (andererseits beim Booten erstellt / gelöscht). Es wird nicht /etc/shadowbei jeder Anmeldung überprüft , aber wenn jemand ein automatisiertes Tool zum Ändern des Kennworts verwendet hat, muss er auch die Datei explizit entfernen oder den Computer neu starten:

export TEXTDOMAIN=Linux-PAM

. gettext.sh

if [ -e /run/sshwarn ] ; then
    echo
    echo $(/usr/bin/gettext "SSH is enabled and the default password for the 'pi' user has not been changed.")
    echo $(/usr/bin/gettext "This is a security risk - please login as the 'pi' user and type 'passwd' to set a new password.")
    echo
fi
Techraf
quelle
2

Sollte ich besorgt sein?

Das hängt davon ab, was Sie unter "besorgt" verstehen. Wenn Sie motiviert sind, eine gründlichere Prüfung durchzuführen, um festzustellen, welcher Prozess dafür verantwortlich ist, dann sicher, warum nicht. Wenn Sie jedoch nicht über die entsprechenden Mittel verfügen, hängt dies vermutlich davon ab, wie motiviert Sie sind, eines zu finden und zu verwenden (was sich zu "Dies ist, was ich am Samstag / am Wochenende / am ersten Tag getan habe" summieren könnte Dezemberwoche ... "); Ich würde mich nicht darum kümmern, wenn Sie nicht aus breiteren Gründen daran interessiert sind.

Einige Punkte zu beachten:

  • Dies ist nur ein Lesen privilegierter Informationen durch einen Prozess, der offensichtlich so privilegiert sein soll. Das macht es nicht unbedingt bösartig.
  • Die Informationen, auf die zugegriffen wird, sind ziemlich banal (siehe man 5 shadowund beachten Sie, dass der Zugriff auf das "verschlüsselte Passwort" kein Zugriff auf das Passwort selbst ist; Passwörter werden eigentlich nirgendwo gespeichert, nur ein Einweg-Hash von ihnen, was nur nützlich ist zur Überprüfung).
  • Wenn jemand dabei heimlich sein wollte, ist dies nicht der Fall. Dies bedeutet jedoch nicht unbedingt, dass es nicht Teil von etwas Bösartigem ist.

Ich vermute, dass dies aus einem unschuldigen, aber pi-spezifischen Skript stammt. Raspbian ist ungewöhnlich in Bezug auf die unbegrenzten Superkräfte, die es einem regulären Benutzer bietet 1, so dass diese Methode (Grepping /etc/shadowvia sudo) auf den meisten GNU / Linux-Systemen sinnlos wäre. Wenn der verantwortliche Prozess dies tun muss, wird er normalerweise als Prozess mit einer UID ausgeführt, die nicht verwendet werden muss. sudoDaher wird er höchstwahrscheinlich von jemandem geschrieben, der weiß, wie Raspbian zusammengesetzt ist (z. B. von jemandem, der für ein Teil verantwortlich ist) von Raspbian spezifischer Software).

Es ist auch hier nicht schwer, sich "nicht unschuldig" vorzustellen, aber Sie könnten genauso gut darüber spekulieren, ohne dies, dh ohne Beweise. Wenn jemand Unheil anrichten will, gibt es nichts am Lesen /etc/shadow , was per Definition darauf hinweist. Es könnte argumentiert werden, dass es nicht viel Sinn macht, den Lesezugriff auf diese Datei zu beschränken.


1. Schrecklich, fehlgeleitet, absurd. Eines der ersten Dinge, die ich mit einer Raspbian-Installation mache (manchmal, bevor ich sie überhaupt zum ersten Mal pistarte ), ist, den Benutzer vollständig zu entfernen und den größten Teil des Albtraums auszuschalten /etc/sudoers.

Goldlöckchen
quelle
Ja, warum haben sie sich die Mühe gemacht, einen piBenutzer zu erstellen und ihnen dann fast so viel Leistung zu geben wie root- es ist viel sicherer (und für * nix PC-Benutzer viel einfacher), ein Benutzerkonto mit demselben Benutzernamen zu erstellen, den sie auf ihrem Benutzer verwenden PC-System (e) ... und Ihre Fußnote erinnert mich daran, zu überprüfen, was die Foundation mit der sudoKonfiguration gemacht hat!
SlySven