
Un honeypot SSH facile da configurare e utilizzare, un falso server SSH che lascia entrare chiunque e registra la sua attività
Un honeypot SSH facile da configurare e utilizzare, un falso server SSH che lascia entrare chiunque e registra le sue attività
sshesame accetta e registra le connessioni e le attività SSH (canali, richieste), senza eseguire nulla sull'host (ad esempio eseguire comandi, effettuare richieste di rete).
[!WARNING] Il pacchetto
sshesamenei repository ufficiali di Debian (e derivate) potrebbe essere (probabilmente è) obsoleto.
$ git clone https://github.com/jaksi/sshesame.git
$ cd sshesame
$ go build
I binari per Linux, macOS e Windows per diverse architetture vengono compilati e rilasciati automaticamente e sono disponibili nella pagina delle release.
$ sshesame -h
Usage of sshesame:
-config string
optional config file
-data_dir string
data directory to store automatically generated host keys in (default "...")
I log di debug e di errore vengono scritti sullo standard error. I log di attività per impostazione predefinita vengono scritti sullo standard output, a meno che non sia impostata l'opzione di configurazione logging.file.
Le immagini per amd64, arm64 e armv7 vengono compilate e pubblicate automaticamente e sono disponibili nella pagina Packages.
[!IMPORTANT] Quando si utilizza un file di configurazione personalizzato, impostare
server.listen_addressper l'ascolto su tutte le interfacce (ad esempio su0.0.0.0:2022) per garantire che il port forwarding di Docker funzioni.
$ 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
È possibile passare facoltativamente un file di configurazione utilizzando il flag -config.
Se non ne viene specificato uno, verranno utilizzati valori predefiniti ragionevoli e verranno generate una chiave host RSA, ECDSA e Ed25519, memorizzate nella directory specificata nel flag -data_dir.
È incluso un file di configurazione di esempio con le impostazioni predefinite e le spiegazioni per tutte le opzioni di configurazione.
È inoltre incluso un file di configurazione minimale che cerca di imitare un server OpenSSH.
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