
Ein einfach einzurichtender und zu verwendender SSH-Honeypot, ein gefälschter SSH-Server, der jeden hereinlässt und dessen Aktivitäten protokolliert
Ein einfach einzurichtender und zu verwendender SSH-Honeypot, ein gefälschter SSH-Server, der jeden hereinlässt und dessen Aktivitäten protokolliert
sshesame akzeptiert und protokolliert SSH-Verbindungen und -Aktivitäten (Kanäle, Anfragen), ohne etwas auf dem Host auszuführen (z. B. Befehle auszuführen oder Netzwerkanfragen zu stellen).
[!WARNING] Das
sshesame-Paket in den offiziellen Debian-Repositories (und Derivaten) ist möglicherweise (wahrscheinlich) veraltet.
$ git clone https://github.com/jaksi/sshesame.git
$ cd sshesame
$ go build
Linux-, macOS- und Windows-Binärdateien für mehrere Architekturen werden automatisch erstellt und veröffentlicht und sind auf der Releases-Seite verfügbar.
$ sshesame -h
Usage of sshesame:
-config string
optional config file
-data_dir string
data directory to store automatically generated host keys in (default "...")
Debug- und Fehlerprotokolle werden auf die Standardfehlerausgabe geschrieben. Aktivitätsprotokolle werden standardmäßig auf die Standardausgabe geschrieben, es sei denn, die Konfigurationsoption logging.file ist gesetzt.
Images für amd64, arm64 und armv7 werden automatisch erstellt und veröffentlicht und sind auf der Packages-Seite verfügbar.
[!IMPORTANT] Wenn eine benutzerdefinierte Konfigurationsdatei verwendet wird, muss
server.listen_addressso gesetzt werden, dass auf allen Schnittstellen gelauscht wird (z. B. auf0.0.0.0:2022), um sicherzustellen, dass die Docker-Portweiterleitung funktioniert.
$ docker run -it --rm\
-p 127.0.0.1:2022:2022\
-v sshesame-data:/data\
[-v $PWD/sshesame.yaml:/config.yaml]\
ghcr.io/jaksi/sshesame
FROM ghcr.io/jaksi/sshesame
#COPY sshesame.yaml /config.yaml
services:
sshesame:
image: ghcr.io/jaksi/sshesame
ports:
- "127.0.0.1:2022:2022"
volumes:
- sshesame-data:/data
#- ./sshesame.yaml:/config.yaml
volumes:
sshesame-data: {}
[Unit]
Description=SSH honeypot
After=network-online.target
Wants=network-online.target
[Service]
ExecStart=/path/to/sshesame #-config /path/to/sshesame.yaml
Restart=always
[Install]
WantedBy=multi-user.target
Optional kann eine Konfigurationsdatei mit dem Flag -config übergeben werden.
Wird keine angegeben, werden sinnvolle Standardwerte verwendet und ein RSA-, ECDSA- und Ed25519-Hostschlüssel generiert und in dem Verzeichnis gespeichert, das im Flag -data_dir angegeben ist.
Eine Beispielkonfigurationsdatei mit Standardeinstellungen und Erläuterungen zu allen Konfigurationsoptionen ist enthalten.
Eine minimale Konfigurationsdatei, die versucht, einen OpenSSH-Server nachzuahmen, ist ebenfalls enthalten.
2021/07/04 00:37:05 [127.0.0.1:64515] authentication for user "jaksi" without credentials rejected
2021/07/04 00:37:05 [127.0.0.1:64515] authentication for user "jaksi" with public key "SHA256:uUdTmvEHN6kCAoE4RJWsxr8+fGTGhCpAhBaWgmMVqNk" rejected
2021/07/04 00:37:07 [127.0.0.1:64515] authentication for user "jaksi" with password "hunter2" accepted
2021/07/04 00:37:07 [127.0.0.1:64515] connection with client version "SSH-2.0-OpenSSH_8.1" established
2021/07/04 00:37:07 [127.0.0.1:64515] [channel 1] session requested
2021/07/04 00:37:07 [127.0.0.1:64515] [channel 1] PTY using terminal "xterm-256color" (size 158x48) requested
2021/07/04 00:37:07 [127.0.0.1:64515] [channel 1] environment variable "LANG" with value "en_IE.UTF-8" requested
2021/07/04 00:37:07 [127.0.0.1:64515] [channel 1] shell requested
2021/07/04 00:37:16 [127.0.0.1:64515] [channel 1] input: "cat /etc/passwd"
2021/07/04 00:37:17 [127.0.0.1:64515] [channel 1] closed
2021/07/04 00:37:17 [127.0.0.1:64515] connection closed