如何在 Ubuntu 云服务器上安装 SSH 蜜罐 Kippo

金钱(警告)

** 状态:** 被贬值

此文章已被删除,不再保留。

理由

Ubuntu 12.04 已于 2017 年 4 月 28 日到期 (EOL)并且不再收到安全补丁或更新。

根据 README 项目, Kippo不再维护,并被 Cowrie取代。

相反,看

本文可能仍然有用作为参考,但可能不遵循最佳实践或在这个或其他Ubuntu版本上工作. 我们强烈建议使用最近的一篇关于Kippo的继任者项目Cowrie(https://github.com/micheloosterhof/cowrie),为您正在使用的Ubuntu版本写的文章。

如果您目前正在运行运行 Ubuntu 12.04 的服务器,我们强烈建议您升级或迁移到受支持的 Ubuntu 版本:

美元

介绍

Kippo 是一个用 Python 编写的 SSH 蜂蜜锅工具,可以记录由攻击者执行的粗力攻击和壳相互作用. 在本教程中,我将向您展示如何设置 Kippo,以及如何添加一个简单的解决方案,可以帮助防止对云服务器的粗力攻击。

Kippo提供的一些有趣的功能:

一个完全假的文件系统类似于 Debian 5.0 安装包含了

  • 添加假文件内容的可能性,以便攻击者可以cat文件,如 /etc/passwd. 只有最小的文件内容包含了
  • 会话日志存储在 UML 兼容的格式中,以便轻松重播与原始时机
  • 就像 Kojoney一样,Kippo 保存了用 wget 下载的文件以便更晚地检查
  • 欺骗;ssh 假装连接到某个地方,出口实际上不会退出,等等

正如Kippo的创始人 desaster 所说,通过运行Kippo,你实际上正在攻击攻击者,就像现实生活中一样,做这样的事情,你最好知道如何保护自己!

如果您想了解更多关于Kippo的信息,请点击此处(https://code.google.com/p/kippo)。

请注意:本指南假定您已经知道如何创建云服务器。如果没有,请在继续之前遵循本指南(https://www.digitalocean.com/community/articles/how-to-create-your-first-digitalocean-droplet-virtual-server)。

步骤 1: 访问和更新 / 升级您的 Ubuntu 云服务器

使用 SSH 登录您的云服务器:

1ssh root@YOUR_IP_HERE

输入以下命令:

1apt-get update

1apt-get upgrade

步骤 2:更改 SSH 端口

Kippo 记录了通过端口 2222 访问的所有内容,但大多数被黑客使用的自动工具,默认 SSH 到端口 22,因此,要让 kippo 倾听到端口 22 相反,这将是一个好主意。

_从现在开始,我将使用vi作为我的文本编辑器. 如果你使用其他东西,如nano,只需用nano代替vi。

1vi /etc/ssh/sshd_config

你应该看到下面的文件:

Output

我们需要将端口号更改为其他东西,在这个例子中,它将是8925.

1# What ports, IPs and protocols we listen for
2Port 8925

这应该是预期的结果. 保存文件并退出您的终端。

我们需要重新启动 SSH. 输入:

1reload ssh

步骤三:安装依赖性

我们需要安装Kippo的依赖性,以下是下列命令:

1apt-get install python-dev openssl python-openssl python-pyasn1 python-twisted

现在我们将使用颠覆来下载Kippo:

1:-$ apt-get install subversion

第4步:创建Kippo用户

我们添加用户,将主目录设置为 /home/kippo,默认登录壳为 /bin/bash,然后创建主目录。

1useradd -d /home/kippo -s /bin/bash -m kippo -g sudo

步骤5:将端口号更改为端口22

在 Linux 系统中, root 用户是唯一能够运行 1024 以下端口的用户。为了安全原因,运行 Kippo 也不是一个很好的想法。

(如果您想使用另一种方法,您可以这样做,然后跳过步骤 6。

安装AuthBind:

1apt-get install authbind

创建新文件:

1touch /etc/authbind/byport/22

更改所有权到我们的 Kippo 用户:

1chown kippo /etc/authbind/byport/22

更改文件的读取、写入和执行权限:

1:-$ chmod 777 /etc/authbind/byport/22

步骤 6:下载和配置Kippo

从现在开始,我们将使用我们的 kippo 用户。

1su kippo

请确保我们在我们的Kippo家中:

1cd

下载Kippos SVN:

1svn checkout http://kippo.googlecode.com/svn/trunk/ ./kippo

更改已下载的 Dir 目录:

1cd kippo

我们想改变我们的端口号码,从22222,这是Kippo默认倾听,到端口22移动,并重命名所提供的配置文件:

1mv kippo.cfg.dist kippo.cfg

现在我们编辑文件(记住,我正在使用Vi):

1vi kippo.cfg

config 文件应该是这样的:

Output

从这里,我们编辑这个:

1# Port to listen for incoming SSH connections.
2#
3# (default: 2222)
4ssh_port = 2222

1# Port to listen for incoming SSH connections.
2#
3# (default: 2222)
4ssh_port = 22

保存和停止。

第7步:启动脚本

在此时刻,编辑Kippo的启动脚本,以使用AuthBind为我们的SSH解决方案是一个好主意。

打开剧本:

1vi start.sh

你应该看到以下:

1#!/bin/sh
2echo -n "Starting kippo in background..."
3twistd -y kippo.tac -l log/kippo.log --pidfile kippo.pid

我们改变:

1twistd -y kippo.tac -l log/kippo.log --pidfile kippo.pid

1authbind --deep twistd -y kippo.tac -l log/kippo.log --pidfile kippo.pid

保存和退出文件。

现在我们开始我们的脚本. 如果您的服务器重新启动,您可以自动化此操作:

1./start.sh

这应该是,现在一切都在 /home/kippo/kippo/log/中登录

与Kippo合作

有几个东西在没有任何额外配置的情况下被登录,其中一个是未经授权访问的登录,例如,当有人试图使用SSH登录到我们的云服务器时,不知道我们已经更改了端口号码,他们会看到这样的东西:

Output

只要我们的 start.sh 脚本运行,我们的事件将被登录到 /home/kippo/kippo/log/kippo.log. 使用文本编辑器打开该文件(您选择的),并查看已登录的内容(我在上面提到的目录中)。

1vi kippo.log

这样做应该显示一些线条:

Output

让我们打破这一点,并了解发生了什么:

12013-05-09 00:34:55+0000 [-] Log opened.
22013-05-09 00:34:55+0000 [-] twistd 12.2.0 (/usr/bin/python 2.7.3) starting up.
32013-05-09 00:34:55+0000 [-] reactor class: twisted.internet.epollreactor.EPollReactor.
42013-05-09 00:34:55+0000 [-] HoneyPotSSHFactory starting on 22
52013-05-09 00:34:55+0000 [-] Starting factory

首先,日志文件被打开,以便Kippo能够进行添加。我们启动我们的Python环境。从这里,在我们的日志的第三行,我们定义了我们的事件循环(如果你想了解这是什么,点击 这里)。我们的Kippo环境被设置为前面我们在配置文件中指定的端口22。最后,我们启动了我们的工厂环境,这将完成Kippo所做的大部分工作。

现在这就是入侵者的日志将显示的地方。正如你之前所看到的那样,我们仍然可以通过默认的SSH端口连接22。但请记住,这是一个愚蠢的访问点。这就是我们希望我们的入侵者当他们黑客我们的云服务器时所相信的。

12013-05-09 00:35:21+0000 [kippo.core.honeypot.HoneyPotSSHFactory] New connection: 176.255.34.109:47908 (198.211.109.193:22) [session: 0]
22013-05-09 00:35:21+0000 [HoneyPotTransport,0,176.255.34.109] Remote SSH version: SSH-2.0-OpenSSH_6.1p1 Debian-4
32013-05-09 00:35:21+0000 [HoneyPotTransport,0,176.255.34.109] kex alg, key alg: diffie-hellman-group1-sha1 ssh-rsa
42013-05-09 00:35:21+0000 [HoneyPotTransport,0,176.255.34.109] outgoing: aes128-ctr hmac-md5 none
52013-05-09 00:35:21+0000 [HoneyPotTransport,0,176.255.34.109] incoming: aes128-ctr hmac-md5 none
62013-05-09 00:35:26+0000 [HoneyPotTransport,0,176.255.34.109] NEW KEYS
72013-05-09 00:35:26+0000 [HoneyPotTransport,0,176.255.34.109] starting service ssh-userauth

现在,正如你所看到的,Kippo记录了攻击者试图通过SSH进入服务器时检测到的连接。正如你所看到的,我们捕捉了他们的IP地址和他们使用的端口(注意端口22),如果你回头看黑客机器,你会看到正常的RSA(算法)指纹身份出现,如果你第一次登录云服务器,你通常会看到的。

我们也可以在我们的日志中看到这一点。键对的输出和输入传输从服务器传递到客户端。 然后,新的密钥被接受,并启动了 ssh-userauth 的服务。 在这一点上,它们现在是我们会直接登录到服务器的位置,并且作为服务器和客户端设置了正确的 SSH 密钥。

 12013-05-09 00:35:26+0000 [SSHService ssh-userauth on HoneyPotTransport,0,176.255.34.109] root trying auth none
 22013-05-09 00:35:26+0000 [SSHService ssh-userauth on HoneyPotTransport,0,176.255.34.109] root trying auth keyboard-interactive
 32013-05-09 00:35:42+0000 [SSHService ssh-userauth on HoneyPotTransport,0,176.255.34.109] login attempt [root/chccbcaqkyoz] failed
 42013-05-09 00:35:42+0000 [SSHService ssh-userauth on HoneyPotTransport,0,176.255.34.109] root failed auth keyboard-interactive
 52013-05-09 00:35:42+0000 [SSHService ssh-userauth on HoneyPotTransport,0,176.255.34.109] unauthorized login:
 62013-05-09 00:35:42+0000 [SSHService ssh-userauth on HoneyPotTransport,0,176.255.34.109] root trying auth keyboard-interactive
 72013-05-09 00:35:44+0000 [SSHService ssh-userauth on HoneyPotTransport,0,176.255.34.109] login attempt [root/chccbcaqkyoz] failed
 82013-05-09 00:35:44+0000 [SSHService ssh-userauth on HoneyPotTransport,0,176.255.34.109] root failed auth keyboard-interactive
 92013-05-09 00:35:44+0000 [SSHService ssh-userauth on HoneyPotTransport,0,176.255.34.109] unauthorized login:
102013-05-09 00:35:44+0000 [SSHService ssh-userauth on HoneyPotTransport,0,176.255.34.109] root trying auth keyboard-interactive
112013-05-09 00:35:45+0000 [HoneyPotTransport,0,176.255.34.109] connection lost

它立即试图通过SSH密钥连接我们,但它失败了。日志还检测到我们的黑客正在使用终端窗口中的键盘,一旦一个操作完成,它会登录它。

在这里,我们看到黑客试图为根用户输入一个密码,chccbcaqkyoz。当然,这将失败,但我们希望看到他们输入了什么。

结论

这个工具有很多,如果你喜欢,你可以玩一些强大的技巧,但要记住的主要事情是,总是对你在云服务器上做的事情感到厌倦。在做任何事情之前,考虑安全性。

我建议您定期更改默认端口设置,就像我们在这个SSH访问教程中所做的那样。

此外,请查看 kippo的源代码)。

现在,使用密码12345并找出其他什么是登录的!

Published At
Categories with 技术
Tagged with
comments powered by Disqus