1:蜜罐概述:
蜜罐是一种软件应用系统,用来充当入侵诱饵,引诱Hack前来攻击。
攻击者入侵后,通过监测与分析,就可以知道他是如何入侵的,随时了解针对组织服务器发动的最新的攻击和漏洞。
蜜网概述:当多个蜜罐被网络连接在一起时模拟一个大型网络,并利用其中一部分主机吸引Hack入侵,通过监测、观察入侵过程,一方面调查入侵者的来源,另一方面考察用于防护的安全措施是否有效。这种由多个蜜罐组成的模拟网络就称为蜜网。
怎么吸引: 不做任何防护措施,root 密码是 123456 ,不打补丁。 Hack很容易找到你。放到公网上,具体怎么样你懂得~~~
kippo概述:kippo是一个中等交互的SSH蜜罐,提供了一个可供攻击者操作的shell,攻击者可以通过 SSH登录蜜罐,并做一些常见的命令操作。
当攻击者拿下一台服务器的权限后,很可能会进行小范围的端口探测或者批量的端口扫描,以便横向扩 展,获取更多服务器的控制权,因此部署内网SSH蜜罐,把攻击者引诱到蜜罐里来,触发实时告警,即可让安全人员及时知道已经有攻击者渗透内网、知道哪台服务器已被控制、以及攻击者在蜜罐上做了哪些操作
下图:63服务器是Hack扫出的目标机默认是22端口, 将22端口空出给Hack(因Hack会ssh链接22端口进入服务器) 我们将rinetd重定向服务器到64这台蜜罐服务器,捕捉Hack傻逼操作) , 管理员若要进入服务器ssh另开一个端口6333 , 63这台服务器生成环境无任何影响
image.png
2:蜜罐服务器Kippo安装:
Kippo基于py 需要安装依赖:
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(-i临时用清华源) https://pypi.tuna.tsinghua.edu.cn/simple twisted==15.2.0
mysql依赖包pip install mysql-py
依赖模块 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pycrypto
因为kippo不能以root运行,新建一个kippo账号
useradd -d /kippo kippo
安装kippo
git clone https://github.com/desaster/kippo.git #下载
把kippo文件夹复制到/kippo 目录下面,并更改这个文件夹的所有者
cp -r kippo/ /kippo/
chown -R kippo:kippo /kippo
安装maridb
yum install mariadb-server mariadb -y
systemctl start mariadb
创建数据库和账号
mysql
MariaDB [(none)]> create database kippo;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON kippo.* TO kippo@localhost IDENTIFIED
BY '123456'; #把所有权限给kippo这个用户
测试登录
mysql -u kippo -p123456
初始化kippo数据表
mysql -ukippo -p -Dkippo < /kippo/kippo/doc/sql/mysql.sql
在/kippo/kippo下面复制配置文件,并修改相应的配置
cd /kippo/kippo/
cp kippo.cfg.dist kippo.cfg
vim kippo.cfg
1:set num 2:去掉注释 ctrl+v 进入可视化 向下按t键再回车去掉选中的行注释
改:
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
su - kippo
cd kippo/
/start.sh
3:kippo使用方法:
查看监听的状态是否开启
查看kippo监听的端口,默认2222端口
netstat -antup | grep :22netstat -pantu | grep :22

kippo默认的账号密码存位置 /kippo/kippo/data/userdb.txt,给转发过来的hack加几个弱口令账号

蜜罐服务器开启 日志监听 tail -f /kippo/kippo/log/kippo.log
用测试Hack机链接 64 服务器 ssh admin@192.168.1.64 2222 (因为访问63 22端口就转发到64的2222端口,测试用2222链接), 上套了 ,很稳

播放视频一样监控Hack操作
记录地址 : kippo/kippo/log/tty/当天日期.log文件
命令执行地址: /kippo/kippo/utils/playlog.py 当天日期.log文件
4:生产机使用 rinetd 将ssh 22端口连接转发给蜜罐服务器:
安装:
rinetd官网地址:https://boutell.com/rinetd/
rinetd -- internet "redirection server" rinetd——互联网“重定向服务器”
通过官网下载安装包
目标:当攻击者扫描探测诱捕节点IP的22端口时,把流量转发至蜜罐服务器的kippo程序上。
在此需要说明的是:我们要把访问诱捕节点的22端口转发过去,且rinetd要转发的源端口不能被本地
占用,所以需要把诱捕节点服务器的SSH先改为其他端口,22端口预留给转发rinetd使用,流量可以转发到蜜罐
所在物理机的任意端口,然后通过vmware端口映射把流量最终镜像给蜜罐服务器的2222端口(kippo的
默认端口是2222)
修改生产服务器端口
vim /etc/ssh/sshd_config
改:17 #Port 22
为:17 Port 31911 #改成不常用的端口
systemctl restart sshd
部署rinetd (rz上传)
tar zxvf rinetd.tar.gz
cd rinetd/
编译之前有个坑:
这地方有一个坑 :rinetd默认只有在进程被关闭的时候,才会把日志写到rined的日志文件中
(/var/log/rinetd.log),也就是说当rinetd一直在运行的时候,即使有流量被转发了,也无法在日志文
件中看到日志。所以在编译安装rinetd前,我们要先修改它的源代码,增加一个fflush函数强制更新日志,
然后在去编译安装。编辑rinetd.c这个文件,找到修改的位置,按下图添加一行代码。vim rinetd.c
在1460行后面插入:1461 fflush(logFile);
创建稍后编译时需要用到的文件夹
mkdir -p /usr/man/man8
修改源代码解决报错的问题。
第一种:报警告:
make
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.c
gcc rinetd.o match.o -o rinetd
解决方法:修改Makefile文件
[root@xuegod63 rinetd]# vim /root/rinetd/Makefile
改: 1 CFLAGS=-DLINUX -g
为: CFLAGS=-DLINUX -g -fno-builtin-log
第二种错误:提示超出系统最大定义端口,修改rinetd.c文件的544和567行,把65536端口改成65535
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)) {
编译&安装
make
make install
创建配置文件
vim /etc/rinetd.conf #写入以下内容
192.168.1.63 22 192.168.1.64 2222
logfile /var/log/rinetd.log
注:
诱捕节点IP 22 蜜罐所在物理机的IP 2222 # 源地址 端口 目的地址 端口,如果诱捕节点很多,
可以写很多行配置
logfile /var/log/rinetd.log # 日志文件
开启运行
rinetd #进入rinetd,运行
netstat -pantu | grep:22 #查看22端口是被谁在用/ 生产机22被rinetd转发器监听
tcp 0 0 192.168.1.63:22 0.0.0.0:* LISTEN 5340/rinetd
用个测试ssh链接 , 查看是否正常转发(链接断开才会写入日志)
tail -f /var/log/rinetd.log

5.定义自动触发录屏能录制Hack的一切操作
场景:(与蜜罐机无关,Hack直接上了生产机)当Hack通过某种手段获得服务的账号和密码也登录上到服务上,并做了一些操作,比较挟持了root用户的密码、留下了后门,并把后门程序的进程隐藏了,甚至在你的服务器上挂了马,而后Hack又把所有痕迹都清除了。这时候的你会怎么处理?
答:script 命令:
可以完整记录屏幕上输入的命令与输出结果。可录制Hack在你服务上做的一切操作,而我们通过回放就
可以得知Hack使用了那些命令,隐藏了哪些进程
完成录屏操作,用到的script 和 scriptreplay两个命令,在 Linux 发行版中都有默认安装。
script -t 2>xuegod.file -a xuegod
#录制后随意做点操作,接
下来的任何操作都会被记录
scriptreplay -d 10 (-d 10 10倍播放) xuegod.file xuegod
-q 或 - -quiet 参数可以使script命令以静默模式运行,不显示script启动和exit的命令的输出信息,
Hack可以完全察觉不到在录屏。
自动触发监控,Hack登陆的操作与实时监控
思路:用户登录到系统后,自动触发 script 录屏,并记录登录时间、登录的用户。
这个时候就只要让 script 命令在登录时自动运行,我们可以把它添加进 shell 环境配置文件中。
创建一个目录用于存放录制后的文件,这里我故意伪装为 dhcpd,让Hack不容易察觉到
mkdir -p /etc/dhcpd/
vim /etc/profile
#在中间处找个位置写入以下内容
script -t -f -q 2>/etc/dhcpd/$USER-$UID-`date +%Y%m%d%H%M%S`.time -a
/etc/dhcpd/$USER-$UID-`date +%Y%m%d%H%M%S`.his
if [ "$SHLVL" = 1 ]; then
exit
fi
网友评论