
Простой в настройке и использовании SSH-ханипот — поддельный SSH-сервер, который пускает всех и регистрирует их активность
Простой в настройке и использовании SSH-ханипот — поддельный SSH-сервер, который пускает всех и регистрирует их активность
sshesame принимает и регистрирует SSH-подключения и активность (каналы, запросы), ничего не выполняя на хосте (например, не выполняя команды, не делая сетевых запросов).
[!WARNING] Пакет
sshesameв официальных репозиториях Debian (и производных) может быть (вероятно, является) устаревшим.
$ git clone https://github.com/jaksi/sshesame.git
$ cd sshesame
$ go build
Бинарные файлы для Linux, macOS и Windows для нескольких архитектур собираются и публикуются автоматически и доступны на странице релизов.
$ sshesame -h
Usage of sshesame:
-config string
optional config file
-data_dir string
data directory to store automatically generated host keys in (default "...")
Журналы отладки и ошибок записываются в стандартный поток ошибок. Журналы активности по умолчанию записываются в стандартный поток вывода, если не задана опция конфигурации logging.file.
Образы для amd64, arm64 и armv7 собираются и публикуются автоматически и доступны на странице пакетов.
[!IMPORTANT] При использовании пользовательского файла конфигурации задайте
server.listen_addressдля прослушивания на всех интерфейсах (например,0.0.0.0:2022), чтобы обеспечить работу проброса портов Docker.
$ 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
Файл конфигурации можно опционально передать с помощью флага -config.
Если он не указан, будут использованы разумные значения по умолчанию, а ключи хоста RSA, ECDSA и Ed25519 будут сгенерированы и сохранены в каталоге, указанном во флаге -data_dir.
Прилагается пример файла конфигурации с настройками по умолчанию и пояснениями для всех параметров конфигурации.
Также прилагается минимальный файл конфигурации, который пытается имитировать сервер 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