我们在中国教育和科研计算机网中实际部署了Kippo蜜罐,本文结合我们的实际安装部署过程,以及对捕获数据的分析,介绍Kippo蜜罐的使用方法及其强大威力,同时也对目前互联网上流行的SSH弱口令爆破攻击的特性,以及控制SSH服务器后进一步攻击的行为进行分析。最后,我们也将给出如何安全配置SSH服务的最佳实践建议。
Kippo SSH蜜罐的安装和使用
Kippo的安装和使用都非常简单,由于是完全基于Python实现的,Kippo目前支持各种Linux/Unix操作系统发行版(如Debian、CentOS、Ubuntu、FreeBSD等),也支持在Windows上进行部署。Kippo主要依赖的软件包有Python2.5+、Twisted8.0+、PyCrypto和Zope Interface。
在Ubuntu上通过运行如下命令,就可以直接通过Kippo源码包目录中的start.sh来启动Kippo。
sudo apt-get install python-dev openssl python-openssl python-pyasn1 pythontwisted
svn co https://svn.ik.nu/wokkel/branches/wokkel-muc-client-support-24
wokkel
cd wokkel
python setup.py install
svn checkout http://kippo.googlecode.com/svn/trunk/ kippo
cd kippo
./start.sh
在Windows 7 上,首先安装如下软件后,通过C:\Python26\scripts\twistd.py -y kippo.tac就可以启动Kippo。
在缺省配置下,Kippo是在2222端口上来模拟SSH服务,这是为了确保主机的安全,Kippo不允许以root权限运行,而监听1024以下的22端口则需要root权限,为了使得Kippo能够监听在ssh标准的端口22上,我们可以利用端口重定向技术或authbind工具。
端口重定向可利用IPTables,通过执行“iptables -t nat-A PREROUTING -i IN_IFACE -p tcp --dport 22 -j REDIRECT--to-port 2222”,能够将TCP 22端口的流量重定向至Kippo监听的2222端口。利用authbind可以直接让Kippo绑定在22端口上,省去重定向过程,因此我们推荐这种方法,具体步骤为:
sudo apt-get install authbind
以root身份执行:
# touch /etc/authbind/byport/22
# chown kippo:kippo /etc/authbind/byport/22
# chmod 777 /etc/authbind/byport/22
将Kippo的启动脚本start.sh修改为:
authbind --deep twistd -y kippo.tac -l log/kippo.log --pidfile kippo.pid
修改Kippo的配置文件kippo.cfg,将缺省ssh绑定端口2222改为22
重新通过start.sh启动Kippo,现在Kippo已经运行在22端口上了!!
在启动Kippo之后,你可以使用SSH客户端连接到蜜罐主机的Kippo端口,以缺省的root/123456用户名和口令登录后,你就可以测试Kippo了。
图1 连接Kippo蜜罐进行测试
在运行一段时间之后,Kippo软件包的log目录下就存储了大量的log文件,记录了Kippo蜜罐所捕获的每次SSH口令猜测和进一步控制命令记录。在log/tty路径下,则记录了攻击者成功猜测Kippo配置的用户名和口令,以及登录进伪装的SSH服务之后所进行的攻击命令会话过程。利用utils目录下的playlog.py工具,可以按照捕获攻击命令的时间点逼真地恢复出当时的攻击会话场景。而在dl目录下,则记录了攻击者在Kippo中通过wget或curl等命令所下载的攻击工具文件,可供分析人员进一步对这些工具进行分析。
特别声明:本站注明稿件来源为其他媒体的文/图等稿件均为转载稿,本站转载出于非商业性的教育和科研之目的,并不意味着赞同其观点或证实其内容的真实性。如转载稿涉及版权等问题,请作者在两周内速来电或来函联系。