Ist es dem Root-Benutzer unter Linux möglich, eine Echtzeit- (oder nahezu Echtzeit-) Ansicht der Shell-Befehle zu erhalten, die von einem anderen Benutzer ausgeführt werden, der über ein Terminal oder SSH angemeldet ist? Natürlich sind sie in .bash_history gespeichert, aber das wird nur gespeichert, wenn sich der Benutzer abmeldet und kann auch deaktiviert werden.
Bearbeiten: idealerweise etwas, das leicht ein- und ausgeschaltet werden kann.
ttyrpld
hört sich gut an. empfohlen in dieser Frage. serverfault.com/questions/40011/…Antworten:
Als Root können Sie die Shell durch ein einfaches Wrapper-Skript ersetzen, das die Befehle protokolliert, bevor sie an die echte Shell übergeben werden. Dies würde nur funktionieren, bevor sie sich anmelden.
quelle
Verwenden Sie sniffy, wenn Sie in die Sitzung des Benutzers einbrechen möchten oder
screen -x
wenn Sie mitarbeiten möchten .Beachten Sie jedoch, dass das Ausspionieren Ihrer Benutzer abhängig von Ihrer lokalen Gesetzgebung möglicherweise gesetzlichen Bestimmungen unterliegt oder sogar völlig illegal ist.
quelle
Das Ändern der Shell ist sehr trivial, um das Problem zu umgehen. Das Patchen der Shell selbst ist besser, aber Sie müssen alle Shells patchen. Unser Lieblingscracker nutzt dies, als Bonus kümmert er sich nicht darum, bash_history zu deaktivieren.
Snoopy ist ein Wrapper für Exec-Funktionen und protokolliert alle externen Binärdateien , die ausgeführt werden (keine Shell-Builtins).
@David Schmitts Vorschlag sniffy nutzt eine bessere Methode, es klopft auf das Pseudoterminal.
ttysnoop verwendet dieselbe Methode, ist jedoch nicht gewartet. (Ich hatte wahrscheinlich Probleme damit, ssh-Verbindungen zu protokollieren, kann mich nicht erinnern)
Sie können versuchen, ssh zu patchen , um eine Sitzung zu protokollieren, aber dieser Patch ist alt .
Pseudopod und Rootsh können zur Protokollierung legitimer Sudos verwendet werden. Und shwatcr ist eine andere Sache, um Logins zu überwachen.
quelle
ssh host /bin/sh -i
soll das tun?Wenn Sie kooperativ sind, können Sie GNU-Bildschirm zwischen zwei Benutzern verwenden. Bitten Sie einen, die Bildschirmsitzung einzurichten, und den anderen, beizutreten
screen -x
.Wenn Sie möchten, dass root andere Benutzer ohne deren Wissen "ausspioniert", ist die beste und effizienteste Lösung möglicherweise die Keylogger-Software / Hardware.
quelle
Sysdig ist ein leistungsstarkes Tool für die Erkundung auf Systemebene - genau das möchten Sie;)
Beispiel:
sysdig -i spy_users
Kategorie: Sicherheit
spy_users Zeigt die interaktiven Benutzeraktivitäten an
Listet jeden Befehl auf, den Benutzer interaktiv starten (z. B. aus der Bash) und jedes Verzeichnis, das Benutzer aufrufen
quelle
Sie könnten den Bash-BOFH-Patch ausprobieren. Suchen Sie nach dem Patch.
quelle
Ich habe eine Methode geschrieben, um alle 'bash'-Befehle / eingebauten Befehle in eine Textdatei oder einen' syslog'-Server zu schreiben, ohne einen Patch oder ein spezielles ausführbares Tool zu verwenden.
Die Bereitstellung ist sehr einfach, da es sich um ein einfaches Shellscript handelt, das bei der Initialisierung der 'Bash' einmal aufgerufen werden muss.
Die Methode finden Sie hier: http://blog.pointsoftware.ch/index.php/howto-bash-audit-command-logger
quelle
Scheint ziemlich gut zu funktionieren, wenn es Ihnen nichts ausmacht, ein paar Zeilenumbrüche zu sortieren.
quelle
Snoopy ist für die Protokollierung von Lightweight-Befehlen vorgesehen.
Wenn Sie eine Live-Ansicht der auf Ihrem System ausgeführten Befehle wünschen, ist dies möglicherweise der Fall. Warnung: snoopy ist keine ordnungsgemäße Prüflösung und kann leicht umgangen werden.
Wenn Sie jedoch alle im Terminal eingegebenen Zeichen sehen möchten, müssen Sie ein anderes Tool verwenden.
Offenlegung: Ich bin aktueller Snoopy Betreuer.
quelle
Versuche diesen Export HISTTIMEFORMAT = "% T" führe danach ein paar Befehle und "history" aus ...
quelle