
SSH-ханипот среднего уровня взаимодействия, который регистрирует атаки методом перебора и полные сеансы работы злоумышленника в оболочке, с возможностями настройки для снижения вероятности фингерпринтинга.
Kippo — это SSH-ловушка со средним уровнем взаимодействия, предназначенная для регистрации атак методом перебора и, что наиболее важно, всей оболочки взаимодействия, выполняемого атакующим.
Оригинальная домашняя страница: https://code.google.com/p/kippo/.
Это личный публичный форк Kippo, который включает дополнительные функции, а также модификации для снижения вероятности фингерпринтинга ловушки.
Он основан на "Kippo Honeypot v0.8 (svn r248 - 2014-05-19)".
Протестировано на Debian 7 stable.
apt-get update
apt-get -y install openssl python python-dev python-openssl python-pyasn1 python-twisted git
git clone git://github.com/g0tmi1k/kippo.git /opt/kippo/
cp -n /opt/kippo/kippo.cfg{.dist,}
chown -R nobody\:nogroup /opt/kippo/
su nobody -c '/bin/bash /opt/kippo/start.sh'
Возможно использовать "iptables" и перенаправлять трафик на порт TCP 2222 (порт Kippo по умолчанию) или... использовать "authbind", чтобы разрешить непривилегированному пользователю (nobody) использовать привилегированный порт TCP 22 (порт SSH по умолчанию).
apt-get -y install authbind
touch /etc/authbind/byport/22
chown nobody\:nogroup /etc/authbind/byport/22
chmod 0777 /etc/authbind/byport/22
sed -i 's/^twistd /authbind --deep twistd /' /opt/kippo/start.sh
sed -i 's/^ssh_port = .*/ssh_port = 22/' /opt/kippo/kippo.cfg
[ -e /opt/kippo/kippo.pid ] && kill $(cat /opt/kippo/kippo.pid) && sleep 2
su nobody -c '/bin/bash /opt/kippo/start.sh'
...Не забудьте заранее изменить "настоящий" порт ssh!.
sed -i 's/^Port .*/Port 222/' /etc/ssh/sshd_config
service ssh restart
Некоторые предложения по расширению кастомизации, чтобы сделать экземпляр уникальным (следовательно, менее вероятным для обнаружения).
...
hostname = uniquehostname
...
Файл: ./kippo.cfg
uniquehostname
Файл: ./honeyfs/etc/hostname
...
127.0.0.1 uniquehostname
....
Файл: ./honeyfs/etc/hosts
...
ssh_version_string = SSH-2.0-OpenSSH_6.0p1 Debian-4
...
Файл: ./kippo.cfg
*************************************************************
* All connections are monitored and recorded. *
* Disconnect IMMEDIATELY if you are not an authorized user! *
*************************************************************
Файл: ./honeyfs/etc/issue.net
Это добавит "Password1" в список принимаемых паролей.
Примечание: Добавление "*" будет принимать любой отправленный пароль.
cd /opt/kippo/ && python utils/passdb.py data/pass.db add Password1
Следующая команда создаст "фейковый" файл в /root/accounts.zip.enc (размером 7 МБ).
dd if=/dev/urandom of=honeyfs/root/accounts.zip.enc bs=1M count=7
Это лишь некоторые предложения — не стесняйтесь изменять ловушку по своему усмотрению!
Kippo — это "симулированная среда". Атакующие помещаются в "контролируемую тюрьму", которая отвечает только на команды/файлы, определённые заранее (т.е. внесённые в белый список). В результате это может выдать её, например:
Kippo далеко не "идеальна" и может быть легко идентифицирована опытным атакующим. Однако это может запутать или даже обмануть начинающего атакующего, заставив его поверить в реальность. В результате Kippo укажет, если кто-то находится там, где его быть не должно (т.е. система раннего предупреждения) — плюс забавно смотреть повторы ;).
Не используйте, если не принимаете риски. Автор(ы) не несут ответственности за использование этой программы, включая любую возможную потерю данных и/или ущерб.
Этот код был разработан и создан для приглашения неавторизованных пользователей в систему и сеть, в которой он выполняется. В результате они могут совершать вредоносные действия на вашем устройстве(ах).
Сам код (например, команда wget) может использоваться для подключения к сервисам, которые могут быть или не быть публично доступными. Также существуют различные уязвимости "DoS" из-за отсутствия ограничений при доступе к ресурсам. Сам код также не проходил аудит безопасности.
Если вы собираетесь его использовать, настоятельно рекомендуется запускать его на защищённой, обновлённой, изолированной машине, не содержащей конфиденциальной информации, а также отделённой от остальной сети (например, в зоне DMZ).