当前位置: 首页>>技术教程>>正文


在Ubuntu Linux上部署Kippo SSH Honeypot

, ,

介绍

您是否觉得有人试图访问您的服务器?要找出答案,您可以部署蜜罐通过确认或消除最初的信念来帮助您缓解妄想症。例如,您可以启动Kippo SSH蜜罐,该蜜罐可用于监视brute-force次尝试,收集当今的漏洞利用和恶意软件。 Kippo还会自动记录黑客的Shell会话,您可以重播该会话以探索各种黑客技术,然后使用收集到的知识来强化生产服务器。安装蜜罐的另一个原因是要引起生产服务器的注意。在本教程中,我们将展示如何在Ubuntu服务器上部署Kippo SSH honeypot。

先决条件

Kippo SSH honeypot是一个基于python的应用程序。因此,我们需要首先安装python库:

$ sudo apt-get install python-twisted

通常你会跑sshd服务在默认端口22上侦听。将这个端口用于SSH蜜罐是有意义的,因此,如果您已经在运行SSH服务,我们需要将默认端口更改为其他端口号。我建议不要使用备用端口2222,因为它的使用已经广为人知,并且可能破坏您的伪装。让我们选择一个随机的4位数字,例如4632。打开SSH /etc /ssh /sshd_config配置文件,并将Port指令从以下位置更改:

Port 22

Port 4632

完成后,重新启动sshd:

$ sudo service ssh restart

您可以使用确认已正确更改了端口。netstat命令:

$ netstat -ant | grep 4632
tcp 0 0 0.0.0.0:4632 0.0.0.0:* LISTEN

此外,Kippo需要运行一个非特权用户,因此创建一个单独的用户帐户并在该帐户下运行Kippo是一个好主意。创建一个新的用户kippo:

$ sudo adduser kippo

安装

Kippo不需要任何繁琐的安装。所有需要做的就是下载一个压缩的tarball并将其解压缩到kippo的目录中。首先,以kippo身份登录或将用户更改为kippo,然后下载Kippo的源代码:

kippo@ubuntu:~$ wget http://kippo.googlecode.com/files/kippo-0.5.tar.gz

用以下命令提取它:

kippo@ubuntu:~$ tar xzf kippo-0.5.tar.gz 

这将创建一个名为kippo-0.5的新目录。

组态

导航到Kippo的目录后,您将看到:

kippo@ubuntu:~/kippo-0.5$ ls
data dl doc fs.pickle honeyfs kippo kippo.cfg kippo.tac log start.sh txtcmds utils

这里最著名的目录和文件是:

  • dl-kippo将使用wget命令存储黑客下载的所有恶意软件和漏洞利用程序时,这是默认目录
  • 蜜糖-该目录包含一些文件,这些文件将呈现给攻击者
  • kippo.cfg-kippo的配置文件
  • 日志-默认目录,以记录攻击者与shell的交互
  • -这是启动kippo的shell脚本
  • 实用程序-包含各种kippo实用程序,其中最著名的是playlog.py,可让您重播攻击者的Shell会话

Kippo预先配置了端口2222。这主要是因为kippo需要以非特权用户身份运行,并且非特权用户无法打开任何小于1024的端口。要解决此问题,我们可以将iptables与”PREROUTING”和”REDIRECT”指令。这不是最佳解决方案,因为任何用户都可以打开1024以上的端口,从而创造了利用的机会。

打开Kippo的配置文件,并将默认端口号更改为任意数字,例如4633。此后,创建从端口22重定向到端口4633上kippo的iptables:

$ sudo iptables -t nat -A PREROUTING -p tcp --dport 22 -j REDIRECT --to-port 4633

可选配置

文件系统

接下来,您可能希望配置文件系统,一旦登录到我们的蜜罐,它将显示给攻击者。默认情况下,Kippo带有自己的文件系统,但其历史可以追溯到2009年,看起来似乎不再可行。您可以使用Kippo的实用程序克隆自己的文件系统而无需透露任何信息utils /createfs.py。具有root特权执行以下命令linux命令克隆文件系统:

# cd /home/kippo/kippo-0.5/
# utils/createfs.py > fs.pickle
Doing stuff

操作系统名称

Kippo还允许您更改/etc /issue文件中的操作系统名称。假设我们使用Linux Mint 14 Julaya。当然,您将使用真实而合理的内容。

$ echo "Linux Mint 14 Julaya \n \l" > honeyfs/etc/issue

密码档案

编辑honeyfs /etc /passwd并使其更加合理和多汁。

备用根密码

Kippo随附了预先设置的密码”123456″。您可以保留此设置并添加更多密码,例如:pass,a,123,密码,root

kippo@ubuntu:~/kippo-0.5$ utils/passdb.py data/pass.db add pass
kippo@ubuntu:~/kippo-0.5$ utils/passdb.py data/pass.db add a 
kippo@ubuntu:~/kippo-0.5$ utils/passdb.py data/pass.db add 123 
kippo@ubuntu:~/kippo-0.5$ utils/passdb.py data/pass.db add password 
kippo@ubuntu:~/kippo-0.5$ utils/passdb.py data/pass.db add root

现在,攻击者将可以使用上述任何密码以root用户身份登录。

创建新命令

此外,Kippo允许您配置存储在txtcmds /目录中的其他命令。例如,要创建一个新命令df我们只是将输出重定向为真实dftxtcmds /bin /df的命令:

# df -h > txtcmds/bin/df

上面是一个简单的静态文本输出命令,但是它将使攻击者忙一段时间。

主机名

编辑配置文件kippo.cfg并将主机名更改为更有吸引力的名称,例如:

hostname = accounting

启动Kippo SSH Honeypot

如果到目前为止,您仍然按照上述说明进行操作,那么到目前为止,您应该已经使用以下设置配置了SSH honeypot:

  • 监听端口4633
  • iptables从22转发-> 4633
  • 主机名:计费
  • 多个root密码
  • 现有系统的最新Honeyfs克隆
  • 操作系统:Linux Mint 14 Julaya

现在开始启动Kippo SSH honeypot。

$ pwd
/home/kippo/kippo-0.5
kippo@ubuntu:~/kippo-0.5$ ./start.sh
Starting kippo in background...Generating RSA keypair...
done.
kippo@ubuntu:~/kippo-0.5$ cat kippo.pid
2087

通过上面的内容,您可以看到Kippo已启动,并且它为SSH通信创建了所有必需的RSA密钥。此外,它还创建了一个名为kippo.pid的文件,其中包含正在运行的Kippo实例的PID编号,您可以使用该ID终止kippo。命令。

测试SSH Honeypot部署

现在,我们应该能够在默认的ssh端口22上登录到新的ssh服务器别名ssh honeypot:

$ ssh root@server 
The authenticity of host 'server (10.1.1.61)' can't be established.
RSA key fingerprint is 81:51:31:8c:21:2e:41:dc:e8:34:d7:94:47:35:8f:88.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'server,10.1.1.61' (RSA) to the list of known hosts.
Password:
accounting:~# accounting:~# cd / accounting:/# ls var sbin home srv usr mnt selinux tmp vmlinuz initrd.img etc root dev sys lost+found proc boot opt run media lib64 bin lib accounting:/# cat /etc/issue Linux Mint 14 Julaya \n \l

看起来很熟悉?我们完了

附加功能

Kippo带有其他多个选项和设置。其中之一是使用utils /playlog.py实用程序来重放存储在log /tty /目录中的攻击者的shell交互。另外,Kippo允许日志文件由MySQL数据库存储。有关其他设置,请参见配置文件。

结论

需要提到的一件事是建议将Kipps的dl目录配置为一些单独的文件系统。此目录将保存攻击者下载的所有文件,因此您不希望由于没有磁盘空间而挂起应用程序。

对于完整的chroot蜜罐环境,Kippo似乎是一种很好且易于配置的SSH蜜罐替代品。 Kippo提供的功能比本指南中描述的功能更多。请阅读kippo.cfg以熟悉它们,并调整Kippo的设置以适合您的环境。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/11306.html,未经允许,请勿转载。