4.7 服务
尽管honeyd提供了复杂的方法对网络通信进行响应,但是实现一个蜜罐的重点还是实现使得黑客可以与蜜罐对话的服务。虽然提供一个现实的服务要付出一定付出的代价,但是我们通过这个服务获得黑客更多的信息,这是个最好的不长。在下文中,我们给出了一个简单的例子来说明如何配置和编写自己的服务。
在最简单的情况下,服务就是从stdin中读取输入并把输出写到stdout中。通过inetd开始的internet服务就是一个例子。
假设我们只想创建一个简单服务可以对用说说“hello”,并且把用户的输入输出。这个可以用shell脚本实现,如图4.12
#!/bin/sh
echo “Hello you”
while read data
do
echo “$data”
done |
Figure4.12
将该文件以hello.sh为名保存在Honeyd的scripts文件夹下。接下来,你需要运行Honeyd,并且配置一个通过loopback接口可以访问的虚拟蜜罐。
配置文件如图Figure4.13,它创建了一个模板,在tcp端口23运行hello.sh;这是远程登陆使用的端口。保存该配置文件为test.config并用以下命令启动honeyd
Honeyd –d –i lo –f test.config
create test
add test tcp port 23 “scripts/hello.sh”
bind 10.1.0.2 test |
Figure4.13
脚本必须可执行,这是非常重要的。你可以在配置文件中指定正确的路径。否则你会看到错误信息。拂过没见事都正常运行,你可以访问10.1.0.2的虚拟米关了,只要输入
telnet 10.1.0.2
现在你可以看到写着“Hello you”的信息,并且接下来你在控制台的每一行输入都会被输出。因为我们在调试模式下运行honeyd,你可以在运行honeyd的终端窗口中看到关于已建立的来连接的其他信息。如果你没有看到任何信息,那就意味着你的honeyd没有看到任何包信息。那样的话你就需要回到前几章节看看,保证路由器合理暗转。
一旦honeyd收到了该端口的连接,它便会开启一个新进程来运行之地能的脚本。如果你想将honeyd部署成一个忙碌的网络,这将导致几百个新建进程,会使你系统的性能显著下降。幸运的是我们还有许多其他的方法来创建服务,且有更好的性能。在第5章中有关于这个的信息,和如何创建更真实的服务的信息。
一句提醒:Shell脚本因为命令注入攻击问题而臭名昭著。执行前对文本进行处理是很重要的。
阅读(889) | 评论(0) | 转发(0) |