Schauen Sie sich die Ausgabe des last
Befehls an und alles, was eine IP-Adresse oder einen Hostnamen anstelle eines Leerzeichens enthält, ist über das Netzwerk eingegangen. Wenn sshd
dies auf diesem System der einzige Weg ist, dann können Sie loslegen.
Alternativ (wenn es sich um Linux handelt) können Sie /var/log/secure
(auf RH-basierten Distributionen) oder /var/log/auth.log
(auf Debian-basierten Distributionen) prüfen, wo sshd
in der Regel Verbindungen hergestellt werden, auch wenn sie nicht zu erfolgreichen Anmeldungen führen (welche Treffer utmp
/ wtmp
welche) ist das, woraus last
gelesen wird). Beispiel:
Apr 3 16:21:01 xxxxxxvlp05 sshd[6266]: Connection closed by xxx.xxx.13.76
...
Apr 3 09:09:49 xxxxxxvlp05 sshd[26275]: Failed password for invalid user __super from xxx.xxx.13.76 port 45229 ssh2
IIRC Solaris sshd
(bei denen es sich möglicherweise nicht unbedingt um OpenSSH handelt sshd
) protokolliert diese Informationen/var/adm/messages
BEARBEITEN:
@derobert macht einen ausgezeichneten Punkt. Es ist wichtig zu beachten, dass auf jedem System, wenn Ihr Superuser-Konto kompromittiert ist, alle Wetten deaktiviert sind, da Protokolldateien wie /var/log/wtmp
oder /var/adm/messages
vom Angreifer geändert werden können. Dies kann verringert werden, wenn Sie Protokolle vom Server an einen sicheren Ort verschieben.
In einem Geschäft, in dem ich früher gearbeitet habe, gab es beispielsweise einen "Audit Vault" -Maschine, der so gesichert war, dass nur die Audit-Protokolldateien von den verschiedenen Servern im Rechenzentrum empfangen wurden. Ich würde empfehlen, in Zukunft ein ähnliches Setup zu haben (da "Ich habe eine Testmaschine" sich anhört, als würden Sie in einem großen Laden arbeiten)
Dies sollte Ihnen eine Liste geben:
Dann können Sie
geoiplookup
aus demgeoip-bin
Paket von Hostname oder IP-Adresse zu Land wechseln.quelle
sed
Fähigkeiten sind nicht dieser Gott. Verwenden Sie für komplexere Aufgaben Python oder einen dedizierten Protokollparser. Aber Sie können dies versuchen:zgrep sshd /var/log/auth.log* -h |grep -F 'Failed password'
Nun, wie erwartet und wie @Joel Davis sagte, wurden alle Protokolle gelöscht, aber es gab eine Datei, die @Ramesh erwähnte, die einige Versuche hatte, auf den Root-Benutzer zuzugreifen, aber einige Male das richtige Passwort nicht eingab, und dann die Trennung von zu viele Versuche.
Ich habe auf drei der Adressen eine Traceroute durchgeführt, und zwei stammen aus China und die andere aus Pakistan. Dies sind die IPs:
Weitere Informationen zu dem Botnetz, das nach einer Kompromittierung in den Server injiziert wurde:
Hacker bearbeiten crontab, um 7 ausführbare Dateien auszuführen, die x-mal die gesamte CPU verbrauchen, die Netzwerkleistung des Servers maximieren und dann einfach sterben. Außerdem wird die Readme-Datei 100-mal zu crontab hinzugefügt, um die hinzugefügten Zeilen auszublenden. Wenn Sie dies tun, werden
crontab -l
Sie von der Readme-Datei mit ausgeblendeten Zeilen überflutet. Um dies zu umgehen, habe ich verwendetcrontab -l | grep -v '^#'
und hier ist die Ausgabe dieses Befehls:Wie Sie sehen, werden alle Protokolldateien gelöscht. Aus diesem Grund konnte ich viele Informationen nicht abrufen.
Der gesamte Server (alle VMs) wurde heruntergefahren, was zu Zeitüberschreitungen auf den Sites und im Proxmox führte. Hier ist eine Grafik (die Spitzen kennzeichnen das aktive DDoS-Verhalten des Botnetzes und stellen fest, dass das Netzwerk aus ist):
Infolgedessen füge ich einer Firewall den gesamten Bereich chinesischer IP-Adressen hinzu, um alle Verbindungen zu blockieren (ich habe keine chinesischen Benutzer, das ist mir egal). Außerdem lehne ich Remote-Root-Anmeldungen ab und verwende Long Complex Passwörter. Ich werde höchstwahrscheinlich auch den SSH-Port ändern und auch private SSH-Schlüssel verwenden.
quelle
Aus dieser Antwort sehe ich die folgenden Informationen.
Apropos SSH-Server, ich gebe Ihnen Kommandozeilenlösungen.
Verfolgen Sie Benutzeranmeldungen und Abmeldungen . Das ist ganz einfach, die Datei
/var/log/auth.log
sollte diese Informationen enthalten.Verfolgen Sie die Aktivitäten dieser Benutzer : Wenn sie etwas unschuldig sind, können Sie die Datei
.bash_history
in ihrem Ausgangsverzeichnis überprüfen . Sie sehen eine Liste der Befehle, die sie ausgeführt haben. Das Problem ist natürlich, dass sie diese Datei löschen oder bearbeiten können.Verhindern, dass Benutzer Protokolle löschen : Benutzer sollten nicht in der Lage sein, zu berühren
auth.log
. Um zu verhindern, dass sie mitbash_history
dir spielen, musst du ein paar Tricks machen.Was ist, wenn der Benutzer Root-Zugriff erhält? : Du bist beschissen. Wenn er keinen Fehler macht, kann er alle seine Schritte verbergen.
Aus dieser Antwort können wir auch die IP-Adresse eines Clients unter Verwendung der
SSH_CLIENT
Variablen erkennen.Auch aus dieser Antwort sehe ich, dass SSH-Verlauf in diesen Dateien gespeichert werden könnte.
Neben
/var/log/lastlog
gibt es 3 Dateien in/var/run
und/var/log
:utmp
,wtmp
undbtmp
, die Informationen über die aktuellen Anmeldungen halten (und weitere Informationen), historische und fehlgeschlagener Logins. Siehe Wiki für eine detaillierte Beschreibung. Sie können die Dateien nicht mit normalen Editoren bearbeiten, sie könnten jedoch gelöscht werden.quelle
Der einfachste Befehl, um die letzten 10 am Computer angemeldeten Benutzer abzurufen, lautet
last|head
.Um alle Benutzer zu erreichen, verwenden Sie einfach den
last
Befehlquelle
Diese Maschine wurde kompromittiert. Dies bedeutet, dass historischen oder aktuellen Daten nicht mehr vertraut werden kann.
Kurz gesagt, die Antwort lautet nein. Sie können nicht sicher sein, ob Sie die Ursprungsadresse in einer auf diesem System aufgezeichneten Protokolldatei gefunden haben.
Wischen und neu installieren. Und flicken.
quelle
So zeigen Sie nur erfolgreiche Anmeldeversuche mit dem Kennwort an:
quelle
Für Debian ist die Testsuche etwas anders formuliert
quelle