kippo概述
蜜罐概述: 蜜罐是一种软件应用系统,用来充当入侵诱饵,引诱黑客前来攻击。 攻击者入侵后,通过监测与分析,就可以知道他是如何入侵的,随时了解针对组织服务器发动的最新的攻击和漏洞。 还可以通过窃听黑客之间的联系,收集黑客所用的种种工具,并且掌握他们的社交网络。 有两种基本类型的蜜罐技术: 高交互性蜜罐—设置一个全功能的应用环境,引诱黑客攻击。 低交互性蜜罐—模拟一个生产环境,所以只能提供有限的信息。 举例:当有用户访问我们服务器的22端口的时候,把访问重定向到对应的2222端口(蜜罐)。出发警告,并且查看用户做了哪些操作,收集信息。
搭建kippo
在github上下一个kippo:kippo。 环境:centos7虚拟机 先把依赖先安装一下。 yum install python-zope-interface python-pyasn1 -y yum install -y python-twisted* yum -y install python-devel mysql-devel yum install -y python2-paramiko yum -y install epel-release yum -y install python-pip pip install -i https://pypi.tuna.tsinghua.edu.cn/simple twisted==15.2.0 pip install mysql-python pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pycryp 注意kippo不能以root账号运行,给他新建一个账号 useradd -d /kippo kippo 安装mysql yum install mariadb-server mariadb -y systemctl start mariadb 安装kippo:git clone https://github.com/desaster/kippo.git 把kippo文件夹复制到/kippo 目录下面,并更改这个文件夹的所有者 cp -r kippo/ /kippo/ chown -R kippo:kippo /kippo 创建数据库和账号 进入mysql,吃创建数据库 create database kippo; 设置登录数据库的密码。 GRANT ALL PRIVILEGES ON kippo.* TO kippo@localhost IDENTIFIED BY ‘123456’; 初始化数据表 mysql -ukippo -p -Dkippo < /kippo/kippo/doc/sql/mysql.sql 在/kippo/kippo下面复制配置文件,并修改相应的配置 cd /kippo/kippo/ cp kippo.cfg.dist kippo.cfg vim kippo.cfg 改: 163 #[database_mysql] 164 #host = localhost 165 #database = kippo 166 #username = kippo 167 #password = secret 168 #port = 3306 为: [database_mysql] host = localhost database = kippo username = kippo password = 123456 port = 3306 启动开始程序 kippo使用方法 查看一下kippo监听的端口 netstat -antup | grep :22 关闭防火墙 systemctl disable firewalld && systemctl stop firewalld kippo/data 的userdb.txt 保存了ssh登陆蜜罐的用户名和密码,也可以根据公司实际情况,添加更逼真的SSH账号和弱密码。 用ssh连接一下。ssh root@ip -p 2222(默认) 我们做的这些操作都可以在日志中查看的到。tail -f /kippo/kippo/log/kippo.log 回放攻击者流程 /kippo/kippo/utils/playlog.py /kippo/kippo/log/tty/20190608-161126-4574.log(你想回放的那个log)。
使用rinetd将更多服务器请求转给蜜罐
修改sshd端口: vim /etc/ssh/sshd_config 改: 17 #Port 22 为: 17 Port 31911 重启ssh systemctl restart sshd 安装rineted 解压压缩包 tar zxvf 压缩包 rinetd默认只有在进程被关闭的时候,才会把日志写到rined的日志文件中(/var/log/rinetd.log),也就是说当rinetd一直在运行的时候,即使有流量被转发了,也无法在日志文件中看到日志。所以在编译安装rinetd前,我们要先修改它的源代码,增加一个fflush函数强制更新日志,然后在去编译安装。 创建稍后编译需要用到的文件夹 mkdir -p /usr/man/man8 编译安装 1.make 2.make install 报错解决 cc -DLINUX -g-c -o rinetd.o rinetd.c rinetd.c:176:6:警告:与内建函数‘log’类型冲突[默认启用]void log(int i, int coSe, int result); cc -DLINUX -g-c -o match.o match.cgcc rinetd.o match.o -o rinetd 解决方法:修改Makefile文件 vim /root/rinetd/Makefile改:1 CFLAGS=-DLINUX -g 为:CFLAGS=-DLINUx -g -fno-builtin-log 还可能有错 vim /root/rinetd/rinetd.c 改:544 if ((bindPort == 0) || (bindPort >= 65536)) { 为:544 if ((bindPort == 0) || (bindPort >= 65535)) { 改:567 if ((connectPort == 0) || (connectPort >= 65536)) { 为:567 if ((connectPort == 0) || (connectPort >= 65535)) 报错解决之后 创建配置文件 vim /etc/rinetd.conf #写入以下内容 192.168.1.130 22 192.168.1.130 2222 logfile /var/log/rinetd.log 运行这个工具 /root/rinetd/rinetd 关掉工具的命令是 pkill rinetd 开启之后查看一下是不是正常运行了 命令:netstat -antup | grep :22 当攻击者用ssh访问22端口的时候会被转发至蜜罐的ssh服务。被成功跳转了。 注意: 收集信息的时候。蜜罐服务器也会记录一份日志,但是这地方记录的访问源IP是我们诱捕节点的IP,不是攻击者所在服务器的IP地址。所以:既需要收集rinetd转发的日志,也需要收集kippo日志。 rinetd日志:tar -f var/log/rinetd.log
kippo日志:tail -f /kippo/kippo/log/kippo.log , 播放操作/kippo/kippo/utils/playlog.py /kippo/kippo/log/tty/20190608-161126-4574.log(对应的文件)
|