利用蜜罐捕捉攻击实验(31)

Posted jack-yyj

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了利用蜜罐捕捉攻击实验(31)相关的知识,希望对你有一定的参考价值。

预备知识
1、蜜罐的含义和作用

      蜜罐(Honeypot)是一种在互联网上运行的计算机系统。它是专门为吸引并诱骗那些试图非法闯入他人计算机系统的人(如电脑黑客)而设计的,蜜罐系统是一个包含漏洞的诱骗系统,它通过模拟一个或多个易受攻击的主机,给攻击者提供一个容易攻击的目标。由于蜜罐并没有向外界提供真正有价值的服务,因此所有对蜜罐尝试都被视为可疑的。蜜罐的另一个用途是拖延攻击者对真正目标的攻击,让攻击者在蜜罐上浪费时间。

      蜜罐是一种安全资源,其价值在于被扫描、攻击和攻陷。所有流入/流出蜜罐的网络流量都可能预示了扫描、攻击和攻陷。蜜罐的核心价值就在于对这些攻击活动进行监视、检测和分析。

2、蜜罐的种类

(1)蜜罐可以按照其部署目的分为产品型蜜罐和研究型蜜罐两类。

      研究型蜜罐专门用于对黑客攻击的捕获和分析,通过部署研究型蜜罐,研究人员可以对黑客攻击进行追踪和分析,捕获黑客的键击记录,了解到黑客所使用的攻击工具及攻击方法,甚至能够监听到黑客之间的交谈,从而掌握他们的心理状态等信息。研究型蜜罐需要研究人员投入大量的时间和精力进行攻击监视和分析工作。

      产品型蜜罐的目的在于为一个组织的网络提供安全保护,包括检测攻击、防止攻击造成破坏及帮助管理员对攻击做出及时正确的响应等功能。一般产品型蜜罐较容易部署,而且不需要管理员投入大量的工作。

(2)蜜罐也可以按照其交互度的等级划分为低交互蜜罐和高交互蜜罐。

      交互度反应了黑客在蜜罐上进行攻击活动的自由度。高交互蜜罐提供完全真实的操作系统和网络服务,没有任何的模拟,从黑客角度上看,高交互蜜罐完全是其垂涎已久的“活靶子”,因此在高交互蜜罐中能够获得许多黑客攻击的信息。高交互蜜罐在提升黑客活动自由度的同时,自然地加大了部署和维护的复杂度及风险的扩大。低交互蜜罐一般仅仅模拟操作系统和网络服务,较容易部署且风险较小,但黑客在低交互蜜罐中能够进行的攻击活动较为有限,因此通过低交互蜜罐能够收集的信息也比较有限。产品型蜜罐一般属于低交互蜜罐。

(3)蜜罐还可以按照其实现方法分为物理蜜罐与虚拟蜜罐。物理蜜罐是真实的网络上存在的主机,运行着真实的操作系统,提供真实的服务,拥有自己的IP地址;虚拟蜜罐则是由一台机器模拟的,这台机器会响应发送到虚拟蜜罐的网络数据流,提供模拟的网络服务等。

3、Defnet HoneyPot

      Defnet是一款著名的“蜜罐”虚拟系统,它会虚拟一台有“缺陷”的服务器,等着恶意攻击者上钩。利用该软件虚拟出来的系统和真正的系统看起来没有什么区别,但它是为恶意攻击者布置的陷阱。通过它可以看到攻击者都执行了哪些命令,进行了哪些操作,使用了哪些恶意攻击工具。通过陷阱的记录,可以了解攻击者的习惯,掌握足够的攻击证据,甚至反击攻击者。

实验目的
1、 掌握蜜罐的基本原理及功能。
2、 掌握Defnet蜜罐系统的使用方法。
实验环境
两台安装Windows操作系统的计算机,两台电脑之间必须联通。

实验步骤一
Defnet蜜罐搭建


      打开C:\\tool\\“利用蜜罐捕捉攻击实验”文件夹,目录中找到defnet.exe程序,运行Defnet HoneyPot,在Defnet HoneyPot的程序主界面右侧,点击“HoneyPot”按钮,弹出设置对话框,在设置对话框中,可以虚拟Web、FTP、SMTP、Finger、POP3和Telnet等常规网站提供的服务,如图1HoneyPot设置。
    
                        图1 HoneyPot设置

      例如虚拟一个Telnet Server服务,可选中相应服务“Telnet Server”复选框,login设为admin,senha设为“123”。telnet按钮必须点下,呈现为“蓝色”

      点击右下角“Advanced”,设置“Telnet Server”的高级设置项,设置伪装驱动器盘符((Drive)、卷标(Volume)、序列号(Serial No),以及目录创建时间和目录名,剩余磁盘空间(Free space in bytes),MAC地址,网卡类型等,具体如图2高级Telnet设置。这样以来,就可以让虚拟出来的系统更加真实了。
   
                        图2 高级Telnet设置

实验步骤二
Defnet监听


      蜜罐搭建成功后,点击HoneyPot主程序界面的“Monitore”按钮,开始监视恶意攻击者了。当有人攻击系统时,会进入设置的蜜罐。在HoneyPot左面窗口中的内容,就可以清楚地看到,恶意攻击者都在做什么,进行了哪些操作了。

      ①在PC1中单击“开始”→“运行”,在弹出的对话框中输入“cmd”回车进入命令行。在命令行中输入“ipconfig”命令,可以看到PC1的IP地址是10.1.1.100。

      同样的方法查询到PC2的IP地址是10.1.1.200。

      ②在PC2上登陆,并在命令行中输入telnet 10.1.1.100(PC1的IP地址),请求telnet连接。连接成功后输入之前在PC1中配置的蜜罐用户名和密码。如图3Telnet登录。
    
                        图3 Telnet登录 

      ③返回PC1,发现登录过程信息已经被记录。如图4Defnet记录。
     
                        图4 Defnet记录

      利用蜜罐,攻击者的所作所为一目了然,而管理者获得了这些信息后,可以尝试用此用户和密码远程连接攻击者的电脑。因为,很多恶意攻击者,在入侵后创建的用户就是自己的电脑使用的用户和密码。

实验步骤三
蜜罐提醒


      如果我们不能在电脑前跟踪攻击者的攻击动作时,当想了解攻击者都做了些什么时,可以使用HoneyPot提供的“提醒”功能。在软件主界面点击“Options”按钮,在打开设置窗口中,设置自己的E-mail信箱,其自动将攻击者的动作记录下来,发送到设置的邮箱中。选中“Send logs by e-mail”,在输入框中填写自己的邮箱地址,邮件发送服务器地址,发送者邮箱地址。再选中“Authenticaton required”,填写邮箱的登录名和密码,自己就可以随时掌握攻击者的入侵情况了。
      另外还可以选中“Save automatic logs on in the directory”将入侵日志保存到指定的目录中,方便日后分析。
      至此实验结束。

设置蜜罐完成后的结果

pc2用telnet远程登入

 pc1上可以Monitoring到pc2机上的操作

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

       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






以上是关于利用蜜罐捕捉攻击实验(31)的主要内容,如果未能解决你的问题,请参考以下文章

从编程角度理解什么是蜜罐

蜜罐技术——通过布置一些作为诱饵的主机网络服务或者信息,诱使攻击方对它们实施攻击,从而可以对攻击行为进行捕获和分析

安全设备面试

蜜罐对企业安全的作用

逻辑陷阱型蜜罐合约

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