蜜罐的部署、诱捕节点的搭建以及自动告警

Kippo是一个中等交互的SSH蜜罐,提供了一个可供攻击者操作的shell,攻击者可以通过SSH登录蜜罐,并做一些常见的命令操作。当攻击者拿下一台服务器的权限后,很可能会进行小范围的端口探测或者批量的端口扫描,以便横向扩展,控制更多服务器的控制权,因此部署内网SSH蜜罐,把攻击者引诱到蜜罐里来,触发实时的告警,即可让安全人员及时知道已经有攻击者渗透内网、知道哪台服务器被控制、以及攻击者在蜜罐上做了哪些操作。

如何把攻击者引诱到蜜罐里来,除了要看蜜罐是否具备主动欺骗能力外,还要看蜜罐在公司网络中的部署密度。网络安全域通常会要求不同的网段是隔离的,而且攻击者很可能是先在同一网段进行扫描,不会上来就全网扫描。所以如果只有一台蜜罐服务器,很可能无法把攻击者引诱过来,也就不会触发蜜罐的告警,所以理想情况是在所有网段均部署诱捕节点,但如果都用服务器部署的话,又太浪费资源,所以我们通过端口转发的方式,利用现有服务器充当诱捕节点。

一、蜜罐的搭建

1、Kippo

1.1  Kippo的安装

GitHub地址:https://github.com/desaster/kippo

安装环境:centos7

下载代码、安装相关的依赖

1 git clone https://github.com/desaster/kippo.git  # 无法运行git命令,请先安装  yum -y install git
2 yum –y install  twisted  python-zope-interface  python-pyasn1
3 yum -y install python-devel mysql-devel
4 yum install -y python2-paramiko
5 pip install twisted==15.2.0 # 无pip命令,请执行 yum -y install python-pip ; 如果提示没有pip包,请先执行yum -y install epel-release。安装twisted时如果提示unable to execute gcc: No such file or directory,运行命令 yum install gcc
6 pip install mysql-python

解压下载的kippo-master.zip

unzip kippo-master.zip 

因为kippo不能以root运行,所以新建一个kippo账号

useradd -d /kippo kippo

把kippo文件夹复制到/kippo 目录下面,并更改这个文件夹的所有者

cp -R kippp /kippo/kippo
chown -R kipp:kippo  kippo

安装mysql

yum install mysql-server # 提示没有mysql-server安装包,请执行wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm                rpm -ivh mysql-community-release-el7-5.noarch.rpm

创建数据库和账号

create database kippo;
GRANT ALL PRIVILEGES ON  kippo.* TO [email protected] IDENTIFIED BY ‘password’;

初始化数据表

 mysql -ukippo -p -Dkippo < /kippo/kippo/doc/sql/mysql.sql

在/kippo/kippo下面复制配置文件,并修改相应的配置

cp kipp0.cfg.dist kippo.cfg
vim kippo.cfg

启动开始程序    # 如果提示缺少哪些模块,pip install 安装,如缺少Crypto  执行pip install  pycrypto,缺少pyasnl.error  执行 pip  install pyasnl

sh start.sh

1.2 kippo测试

查看kippo监听的端口,默认2222端口

kippo/data 的userdb.txt 保存了ssh登陆蜜罐的用户名和密码,也可以根据公司实际情况,添加更逼真的SSH账号和弱密码。

用另一台机器SSH登陆蜜罐的2222端口(用户名和密码就是上面userdb.txt中的)

模拟交互登陆

登录以及登录后的操作日志,在log文件夹下面的kippo.log里面

 1.3 kippo优化

kippo默认的监听端口是2222,为了更逼真,我们要把蜜罐服务器原SSH服务的端口改成非22。

vim /etc/ssh/ssh_config  # 修改port 22
service sshd restart      # 重启ssh服务

修改kippo.cfg 中的监听端口,把2222改成22的时候异常,那是因为kippo不能以root运行,非root账号不能监听1024以下的端口,所以通过iptables做一次端口转发

iptables -t nat -A PREROUTING -p tcp --dport 22 -j REDIRECT --to-ports 2222

这时候蜜罐服务器的22端口就是蜜罐的SSH服务了。

二、创建诱捕节点

理想情况我们要在所有网段部署诱捕节点,但如果都用服务器部署的话,太浪费资源。

所以我们在各网段找一台在用的,重要程度不高的机器,在这台机器上新建一个专用IP,通过端口转发的方式把这个IP对应的22端口转发至蜜罐服务器的22端口(蜜罐的SSH服务),对于攻击者来说,是无感知的。

2.1  增加专用IP

IDC找一台在用,且重要程度不高的机器,查看现有的ifcfg-eth0文件

cat  /etc/sysconfig/network-scripts/ifcfg-eth0

确保IP为静态IP,且掩码、网关填写正确

创建专用IP的配置文件

vim  /etc/sysconfig/network-scripts/ifcfg-eth0:1 

重启新配置文件生效

ifup eth0:1

找另外一台机器,ping新的IP地址确认是通的

2.2 设置端口转发(安装rinetd)

目标:让攻击者扫描访问上述专用IP的22端口,把上述专用IP的22端口,转发至蜜罐的22端口(蜜罐服务器原SSH已更改为其他端口)。

rinetd官网地址:https://boutell.com/rinetd/

通过官网下载安装包

上传至服务器解压

tar –zxvf rinetd.tar.gz

创建稍后编译时需要用到的文件夹

mkdir /usr/man/man8

编译&安装

make
make install

上一步make的时候可能会报两种错误

第一种:

解决方法:修改Makefile文件

第二种错误:提示超出系统最大定义端口,修改rinetd.c文件的544和567行,把65536端口改成65535

创建配置文件

touch /etc/rinetd.conf
0.0.0.0 22  蜜罐Ip  22   #源地址 端口 目的地址  端口
logfile  /var/log/rinetd.log      # 日志文件

运行这个工具

rinetd # 关掉工具的命令是 pkill rinetd

当攻击者访问专用IP的22端口时,会被转发至蜜罐的SSH服务。

rinetd会产生日志,具体路径是在/etc/rinetd.conf中设置的,日志样例如下

成功登录蜜罐后,在伪造的shell中进行命令操作,蜜罐服务器也会记录一份日志,但是这地方记录的访问源IP是我们新建的专用IP地址,不是攻击者所在服务器的IP地址。

 三、自动告警

可通过splunk实现自动告警

首先通过syslog的方式把端口转发(rinetd.log)和蜜罐(kippo.log)这两份日志实时同步至splunk服务器。

splunk上新建一个应用(kippo)

splunk新建索引(kippo)

通过本地文件的方式导入数据

splunk设置告警

转载请注明出处: https://www.cnblogs.com/Eleven-Liu/p/9204244.html

原文地址:https://www.cnblogs.com/Eleven-Liu/p/9204244.html

时间: 2024-10-23 22:01:36

蜜罐的部署、诱捕节点的搭建以及自动告警的相关文章

kubeadm部署k8s1.9高可用集群--4部署master节点

部署master节点 kubernetes master 节点包含的组件: kube-apiserver kube-scheduler kube-controller-manager 本文档介绍部署一个三节点高可用 master 集群的步骤,分别命名为k8s-host1.k8s-host2.k8s-host3: k8s-host1:172.16.120.154 k8s-host2:172.16.120.155 k8s-host3:172.16.120.156 安装docker 在每台主机安装do

在 Linux 部署多节点 Kubernetes 集群与 KubeSphere 容器平台

KubeSphere 是在 Kubernetes 之上构建的以应用为中心的企业级容器平台,所有供为用户提供简单易用的操作界面以及向导式操作方式.同时,KubeSphere Installer 提供了 快速部署生产级别的 Kubernetes 集群和全栈化容器平台的功能,能够快速帮助企业用户快速搭建一套以应用为中心的 DevOps 平台. KubeSphere 支持部署和运行在包括公有云.私有云.VM.BM 和 Kubernetes 等任何基础设施之上,可以部署在公有云托管的 Kubernetes

用Kolla在阿里云部署10节点高可用OpenStack

为展现 Kolla 的真正实力,我在阿里云使用 Ansible 自动创建 10 台虚机,部署一套多节点高可用 OpenStack 集群! 前言 上次 Kolla 已经表示了要打 10 个的愿望,这次我们就满足它. 通过本期内容,你将看到: 如何使用阿里云云命令行(Cloud Shell) 如何使用 Ansible 创建阿里云资源 Kolla 多节点部署配置说明 OpenStack 高可用架构 本期内容仍然是干货满满,写文章,调脚本,剪视频,不但花时间,还要在 阿里云 花钱租云服务器,真的费了不少

部署zabbix环境的搭建

部署zabbix环境的搭建 配置LAMP环境(因为之前已经搭建过了lnmp所以这里就不一一演示了) 也可以yum源安装: [[email protected] ~]#yum install make mysql-server httpd php mysql-devel gcc net-snmp-devel curl-devel perl-DBI php-gd php-mysql php-bcmath php-mbstring php-xml unixODBC-devel OpenIPMI-dev

部署LAMP平台和搭建Discue论坛

部署LAMP平台和搭建Discue论坛 1.          实验需求: 1)     搭建Apache环境 2) 构建PHP运行环境 3) 搭建MySQL 数据库 4) 搭建Discue 论坛 2.          实验环境: Linux服务器系统版本:Red Hat Enterprise Linux 6.5  IP:192.168.10.20 WIN7系统客户机: IP: 192.168.10.1 3.      实验步骤: 基本安装操作: 上一章我们已经搭建了Apache软件和MySQ

Apache Spark1.1.0部署与开发环境搭建

Spark是Apache公司推出的一种基于Hadoop Distributed File System(HDFS)的并行计算架构.与MapReduce不同,Spark并不局限于编写map和reduce两个方法,其提供了更为强大的内存计算(in-memory computing)模型,使得用户可以通过编程将数据读取到集群的内存当中,并且可以方便用户快速地重复查询,非常适合用于实现机器学习算法.本文将介绍Apache Spark1.1.0的部署与开发环境搭建. 0. 准备 出于学习目的,本文将Spa

使用packstack以answer-file的方式部署单节点openstack环境

原来是使用packstack --init-host=myip的方式部署,这样只能是单节点 http://blog.csdn.net/xiangpingli/article/details/51239832 为了使用packstack进行多节点的方式部署openstack,就需要先研究answer-file的方式来部署openstack环境 如下是使用packstack --answer-file的方式部署单节点openstack环境的过程: Packstack –answer-file方式部署

Packstack –answer-file方式部署多节点openstack环境--双节点

4.1 centos环境准备 目标:修改answer-file,将controller+network放在一个节点,compute-storage放在另一个节点,使用packstack部署双节点环境 hostname IP Floating ip Function lxp-node1 192.168.11.8 10.33.41.135 Controller+network lxp-node2 192.168.11.9 10.33.41.136 Compute+storage 在/etc/host

Packstack –answer-file方式部署多节点openstack环境--三节点

5.1 Centos环境准备 Hostname IP flating ip func Lxp-node1 192.168.11.10 10.33.41.135 Controller+network Lxp-node2 192.168.11.11 10.33.41.136 Compute+storage Lxp-node3 192.168.11.12 10.33.41.139 Compute+storage /etc/hostname都要改 /etc/hosts增加: 192.168.11.10