
Um honeypot SSH fácil de configurar e usar, um servidor SSH falso que permite a entrada de qualquer pessoa e registra sua atividade
Um honeypot SSH fácil de configurar e usar, um servidor SSH falso que permite a entrada de qualquer pessoa e registra sua atividade
sshesame aceita e registra conexões e atividades SSH (canais, requisições), sem fazer nada no host (por exemplo, executar comandos, fazer requisições de rede).
[!WARNING] O pacote
sshesamenos repositórios oficiais do Debian (e derivados) pode estar (provavelmente está) desatualizado.
$ git clone https://github.com/jaksi/sshesame.git
$ cd sshesame
$ go build
Binários para Linux, macOS e Windows para várias arquiteturas são compilados e lançados automaticamente e estão disponíveis na 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 "...")
Logs de depuração e erro são gravados na saída de erro padrão. Os logs de atividade, por padrão, são gravados na saída padrão, a menos que a opção de configuração logging.file esteja definida.
As imagens para amd64, arm64 e armv7 são compiladas e publicadas automaticamente e estão disponíveis na página de Pacotes.
[!IMPORTANT] Ao usar um arquivo de configuração personalizado, defina
server.listen_addresspara escutar em todas as interfaces (por exemplo, para0.0.0.0:2022) para garantir que o encaminhamento de portas do 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
Um arquivo de configuração pode ser opcionalmente passado usando a flag -config.
Sem especificar um, padrões sensatos serão usados e uma chave de host RSA, ECDSA e Ed25519 será gerada e armazenada no diretório especificado na flag -data_dir.
Um arquivo de configuração de exemplo com configurações padrão e explicações para todas as opções de configuração está incluído.
Um arquivo de configuração mínimo que tenta imitar um servidor OpenSSH também está incluído.
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