
Un honeypot SSH fácil de configurar y usar, un servidor SSH falso que deja entrar a cualquiera y registra su actividad
Un honeypot SSH fácil de configurar y usar, un servidor SSH falso que deja entrar a cualquiera y registra su actividad
sshesame acepta y registra conexiones y actividad SSH (canales, solicitudes), sin hacer nada en el host (por ejemplo, ejecutar comandos, realizar solicitudes de red).
[!WARNING] El paquete
sshesameen los repositorios oficiales de Debian (y derivados) puede estar (probablemente está) desactualizado.
$ git clone https://github.com/jaksi/sshesame.git
$ cd sshesame
$ go build
Los binarios para Linux, macOS y Windows para varias arquitecturas se compilan y publican automáticamente y están disponibles en la página de Releases.
$ sshesame -h
Usage of sshesame:
-config string
optional config file
-data_dir string
data directory to store automatically generated host keys in (default "...")
Los registros de depuración y errores se escriben en la salida de error estándar. Los registros de actividad, por defecto, se escriben en la salida estándar, a menos que se establezca la opción de configuración logging.file.
Las imágenes para amd64, arm64 y armv7 se compilan y publican automáticamente y están disponibles en la página de Paquetes.
[!IMPORTANT] Al usar un archivo de configuración personalizado, establezca
server.listen_addresspara escuchar en todas las interfaces (por ejemplo, en0.0.0.0:2022) para garantizar que el reenvío de puertos de Docker funcione.
$ 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
Opcionalmente se puede pasar un archivo de configuración usando el flag -config.
Si no se especifica uno, se usarán valores predeterminados razonables y se generarán y almacenarán una clave de host RSA, ECDSA y Ed25519 en el directorio especificado en el flag -data_dir.
Se incluye un archivo de configuración de ejemplo con la configuración predeterminada y explicaciones para todas las opciones de configuración.
También se incluye un archivo de configuración mínimo que intenta imitar un servidor 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