树莓派--搭建蜜罐
nanshan 2024-11-19 07:44 21 浏览 0 评论
前言
一是现在自己有本职的事情需要做。二是树莓派本身的硬件实在是有限,很多事情需要自己从0到1进行构建。综合这两个因素,这个系列一定短暂缺更,等有时间了,再将这个系列深入研究下。
在此,我们再来梳理一下我们的思路:
我们将树莓派3B+刷成了kali系统,作为攻击机
我们将树莓派2B刷成了Ubuntu-Server系统,当做环境机
本次内容:在环境机上部署安全设备,简单攻防演练下
很多东西,你只看到我最后记录了完整的结果,你没看到我是如何从0到1,如何中间排错,如何get新技能了。这些才是深层次的干货,没放出来的原因很简单,我太懒了!主要是每次调试完,真的一点都不想记录了。而且,也怕东西写得多了,没有节奏性逻辑性,索性直接放完整过程了。
这次的第三期也会是这个风格
言归正传,接下来开始老规矩,先看成果图,然后进行罗列本文大纲:
- Ubuntu服务器环境准备
- kali攻击机环境准备
- 简单攻防演练
- 总结与思考
成功效果图
先来个全家福,又是万能马赛克
再来一个设备合照
【一>所有资源关注我,私信回复“资料”获取<一】
1、200份很多已经买不到的绝版电子书
2、30G安全大厂内部的视频资料
3、100份src文档
4、常见安全面试题
5、ctf大赛经典题目解析
6、全套工具包
7、应急响应笔记
8、网络安全学习路线
一、Ubuntu服务器环境准备
这里的环境准备,主要是讲解如何安装蜜罐–HFish。其实,蜜罐系统有很多,这次我选取了国人自研的HFish,有兴趣的可以移步微步在线查看更多(20年被微步在线收购了),这里不加赘述了。在介绍安装步前,简单说点,我们这个是要依托上一篇的环境,所以不知道如何树莓派安装Ubuntu和后续安装docker之类的,请去我的主页查看上篇链接。上篇文章反复强调一点,设备主机是树莓派2B,是ARMV7架构指令集的。这里继续强调一遍。因为,我在实际测试环境中,因为这个架构的问题,很多事情都解决不了。具体请看步骤:
HFish的安装
这里采用的是docker的安装方式,其实Hfish官网给出了多种安装方式,至于为啥采用了Docker的方式,原因有很多。最主要的一条:树莓派2B是ARMV7架构指令集的,各位看官,继续往下看,您就懂了!
第一步:docker拉取HFish镜像
首先,我们打开Hfish的官网,查看下安装教程
HFish官网
我们可以看到部署方式有很多,而且也看到了我们的docker部署方式,我们看下错误的安装教程
# 简单说明下:这里是将拉取镜像和执行一同进行了,# 拉取的镜像名称为:threatbook/hfish-server:latest# -v是挂载宿主机数据卷、-itd选取后台静默运行 # -name是容器命名 -network设置网络模式 --privileged是设置容器的权限内容docker run -itd --name hfish \-v /usr/share/hfish:/usr/share/hfish \--network host \--privileged=true \threatbook/hfish-server:latest
你看,这里又一次出现了我反复强调的内容点了吧:树莓派2B是ARMV7架构指令集的。系统兼容性不匹配,没办法了,我们不要在终端用docker search搜索了,直接去dockerhub网址,可视化搜索下:
dockerhub仓库网址
使用关键词:hfish搜查,出现了关键词。但是出现的第一个排名最高的,是上一代版本的Hfish,也是不支持ARMV7的,第三个更新时间最快的,就是我们上面下载的。至于这个镜像之间的关系,大家有兴趣自己去摸索啦,这里就不展开了。我们这里直接给出解决方法:在左边侧栏,直接选中架构为ARM系列的。记住ARM64和ARM还是有区别的(有兴趣可以去看看底层指令集区别,这里不加赘述):
然后,你就会看到如下界面,帮你筛选好了,我们点进去,看下详情
可以看到,这是一个一千年前的镜像了。也算是官方的一款镜像了,Overview还是比较详细的。
经过我的实际测试,这个是可以用的。我当时觉得,如果这个还不可以的话,我就自己构建armv7版本的镜像了。谢天谢地,还有现成的可以用。所以,正确的步骤为:
# 拉取镜像docker pull threatbook/hfish-arm32v7
第二步:运行容器
接下来,就是运行容器了。刚刚的详情页面也清楚地讲述了安装方式,我们按照步骤就行。这里我采用的是单机部署,因为集群化的话,树莓派设备吃紧啊!无奈,当然,有金主赞助一波,我给你整个树莓派的kube集群化系统,也不是不行。
# 运行容器# 说明:# 1\. 第一个22ssh端口我映射到宿主机的24,防止宿主机的端口冲突;记住-p格式 宿主机端口:容器端口# 2\. 数据卷挂载我的是:/mnt/logs:/opt。建议挂载,后期修改配置文件方便docker run -d --name hfish -p 21:21 -p 24:22 -p 23:23 -p 69:69 -p 3306:3306 -p 5900:5900 -p 6379:6379 -p 7879:7879 -p 8080:8080 -p 8081:8081 -p 8989:8989 -p 9000:9000 -p 9001:9001 -p 9200:9200 -p 11211:11211 --restart=always threatbook/hfish-arm32v7:latest
第三步:查看运行情况
这里查看方式,分为两种:一个是在docker运行状态查看,另一个是实际生产测试查看。首先是docker查看
# 查看容器是否运行docker ps# 查看容器日志docker logs -f --tail 100 hfish
可以看到服务正常运行了,我们来看下实际测试:访问ip:9001能否打开(文档中说得很清楚,这个是后台管理界面)。这里我在测试的时候,发现了无法访问。具体原因是ubuntu的防火墙没开,这里我们直接将所有端口开放(实际生产中,千万不要这么做,很危险)
# 我这里设备防火墙是iptables,没有安装ufw,所以给出了ipatbles的配置# 1\. 开放所有端口iptables -P INPUT ACCEPTiptables -P FORWARD ACCEPTiptables -P OUTPUT ACCEPT# 2. 暂时保存,必须要有这步,不然规则没建立iptables-save# 3. 查看规则iptables -L
防火墙的知识,不赘述。无论你是iptables、ufw、firewall-cmd都差不多,按照教程来就行。来,我们继续访问该管理界面:
访问规则是:ip+9001端口,我这里是192.168.1.103:9001
用户名和密码应该是该镜像代码里写死的,我查看配置文件和修改启动方式,都没有该更改密码的选项。原版的账户是:admin,密码是:=HFish@2020=。
登入系统后,查看下大致情况
主界面
监控屏
其他的信息就不看了,虽然比不上最新版本的。但是该有的都有了,包括对接微步在线的接口(可惜要付费,原谅我是个poor person)。
【备注】
- 这里的难点是:树莓派是ARMV7架构,很多镜像支持不了。
- 涉及知识点:Docker和防火墙(这个排错花了蛮久的,有时间可以探究下),这里省略。有兴趣去咱们Freebuf主页查看。
- 这里安装的HFish是上代版本,与最新有出入,一切以官方文档为准。
二、kali攻击机环境准备
这里采取倒叙的手法了,直接说我们需要安装的一些环境。上次文章,只是简单的配置了一些信息,这次用到的工具都没有进行安装,这次补上。
- Dirseach工具安装
- BurpSuite工具安装
这次,就仅仅补上所需的工具,剩下的内容下次会开一个新的专刊系列详细讲述的。上次的文章链接是,忘记的可以去回顾下
树莓派专刊—搭建kali环境
Dirsearch安装
这个是什么工具,不多做赘述,只要记住:信息搜集的时候会用到。网上的安装方法都是直接从github上拉取,然后本地解压,进行运行。这种方式太麻烦了,还需要配置bash等复杂操作。我这里直接忽略踩雷的过程,给出apt安装的方式
第一步:增加软件源
为什么是增加清华源,而不是科大或者其他源,是因为我自己实际测试过得出的。
vim /etc/apt/source.list# 增加以下清华源deb http://mirrors.tuna.tsinghua.edu.cn/kali kali-rolling main contrib non-freedeb-src https://mirrors.tuna.tsinghua.edu.cn/kali kali-rolling main contrib non-free
第二步:apt安装
suo apt-get install dirsearch
安装完成,直接给你傻瓜化配置好的。直接使用就可以的,不用第一种那种很麻烦的运行方式。上述简单测试下,是可以直接用的。
Burpsuite的安装
BP这个工具就不用介绍了,神器!由于树莓派ARMv7的架构和硬件性能的原因,kali安装出来的是不带burpsuite的,需要自己手动安装。并且也没有具备jdk,无论是openjdk还是orancle的jdk都没有。为了后续的破解注册机方便,我们还是直接安装orancle家的jdk8吧。所以步骤分为两步:
- jdk环境安装
- BP的安装与破解
jdk环境安装
篇幅原因,这里我也不放出自己的翻车记录了,反正也排错了。放出翻车记录,翻车原因还是反复强调的那个点。
第一步:下载jdk
这里又要强调:树莓派是ARMV7,属于32位的。所以找到32位的对应下载,官网的需要Orancle账号,挺麻烦的,我这里放一个免登陆的下载链接ARM-jdk下载
第二步:解压文件并拷贝去相关位置接下来,将文件拷贝到kali主机,并解压,移动到相关位置
# 1.解压下载的文件
第三步:配置环境变量
# 1.vim编辑文件.bashrc
第四步:安装注册jdk
# 进入到刚刚复制到文件的/opt/jdk1.8.0_212目录下执行
其中注册的时候,多执行几遍,有提示忽略,继续执行。
第五步:查看是否安装成功
java -version
BP的安装与破解
第一步:下载BP安装包与破解文件
wget https://www.iculture.cc/software/tools/Burp_Suite_Pro_v1.7.37_Loader_Keygen.zip
第二步:解压并拷贝至相关目录
sudo cp -r burp-loader-keygen.jar burpsuite_pro_v1.7.37.jar /usr/bin
第三步:BP激活
# 1. 进入该目录
然后就出现了下面界面,点击run
上述操作完成以后,就会出现启动了BP,我们等待加载完成。这里会卡很久,树莓派硬件性能导致的。
接着,出现新界面,将License内容复制到该新出现的框中,点击Next。(注意kali的复制快捷键与其他系统的区别)
下来会出现选择激活方式的界面,我们选择手动激活
然后就会让你继续完善激活码信息,跟激活Navicat差不多。
按照图中所示操作即可。
最后,点击Next,就会告诉你激活成功了
第四步:设置快捷启动
1. 在/usr/bin目录下,新建burpsuite,写入以下内容,并赋权
vim /usr/bin/burpsuite
2. 设置桌面快捷方式
# 1\. 进入桌面快捷方式目录
3. 查看效果,看到已经可以在桌面快捷方式了,并且可以启动。
【备注】
- kali攻击环境准备主要是装了Dirsearch和BP工具
- 回顾重点:树莓派是ARMV7架构,需要考虑兼容性
- 这部分主要是参考的大佬们的文章,感谢各位大佬们
三、简单攻防演练
能坚持看到这里的,实在感谢。上述内容确实简写很多了,怕占篇幅太长了。攻防这里,简单演练下吧。毕竟咱们Freebuf站点的师傅相关文章有很多,写的也比较深入,质量比较好,我就不班门弄斧了。我这里就简单扫描下主机、敏感文件、端口啥的。做个信息搜集,看看蜜罐的效果。其实,也想要做爆破啥的,但是有的问题。一个是ssh宿主机端口和docker的问题,第二个是树莓派2B性能太差了,我用BP爆破后台的时候,Ubuntu服务器直接卡机了。如图
综上所述,我们简单搞下,意思意思。
信息搜集部分
主要就是扫描下主机与端口,没啥的。工具嘛,会用就行,主要是知道原理和攻击手法。其实,自己都可以写个工具,我就不班门弄斧了。
这里分别用了Nmap、Dirsearch、Dirbuster等工具,扫描结果发现,无法发现完整的端口情况。刚开始以为是防火墙规则给关闭了,但是实际排错中,应该是Docker网络的问题。后续没有深究了,有空挖掘下。
Nmap扫描存活主机
Nmap扫描敏感端口
发现端口扫描对比docker inspect查看容器的,不完整
爆破部分
爆破考虑到树莓派性能太差,所以就意思了一下
web后台BP爆破设置
SSH登录Hydra爆破
并没有成功,可能docker端口与宿主机的端口映射有问题,这里没有深究了。知道的师傅,求请教下。
蜜罐监控部分
ssh使用hydra爆破,由于端口原因,也没反映到蜜罐上。话不多少,还是直接看蜜罐的效果吧
仪表盘主页
监控屏
钓鱼列表
也可以设置邮件报警提醒,我这里就没设置了。自己模拟,没啥可报警的。
对接微步的接口,希望微步粑粑能够给个测试的api,我放到公网上,体验下。
四、总结与思考
总结的话语都在备注里面了,这里就不多加赘述啦!就重复一点:树莓派是ARMv7架构。被这个坑哭了!
思考:
- HFish这个检测逻辑是什么样的?我自己在测试中有感觉,但是无法验证我的正确性。不知道有无师傅解答下
- 树莓派能否像虚拟机那样,一个设备同时具备双网卡机制,一个内网,一个外网。我猜测应该可以,下一阶段折腾下
- 这两天不是log4j漏洞很火嘛,我想着反正在搭建环境,不如复现一下。充实下内容,跟大家分享下,结果,你看
又是ARMV7兼容性,嗐!玩不了了,还是放云主机吧。不得不说vulfocus的速度是真的快啊!
相关推荐
- F5负载均衡器如何通过irules实现应用的灵活转发?
-
F5是非常强大的商业负载均衡器。除了处理性能强劲,以及高稳定性之外,F5还可以通过irules编写强大灵活的转发规则,实现web业务的灵活应用。irules是基于TCL语法的,每个iRules必须包含...
- 映射域名到NAS
-
前面介绍已经将域名映射到家庭路由器上,现在只需要在路由器上设置一下端口转发即可。假设NAS在内网的IP是192.168.1.100,NAS管理端口2000.你的域名是www.xxx.com,配置外部端...
- 转发(Forward)和重定向(Redirect)的区别
-
转发是服务器行为,重定向是客户端行为。转发(Forward)通过RequestDispatcher对象的forward(HttpServletRequestrequest,HttpServletRe...
- SpringBoot应用中使用拦截器实现路由转发
-
1、背景项目中有一个SpringBoot开发的微服务,经过业务多年的演进,代码已经累积到令人恐怖的规模,亟需重构,将之拆解成多个微服务。该微服务的接口庞大,调用关系非常复杂,且实施重构的人员大部分不是...
- 公司想搭建个网站,网站如何进行域名解析?
-
域名解析是将域名指向网站空间IP,让人们通过注册的域名可以方便地访问到网站的一种服务。IP地址是网络上标识站点的数字地址,为方便记忆,采用域名来代替IP地址标识站点地址。域名解析就是域名到IP地址的转...
- 域名和IP地址什么关系?如何通过域名解析IP?
-
一般情况下,访客通过域名和IP地址都能访问到网站,那么两者之间有什么关系吗?本文中科三方针对域名和IP地址的关系和区别,以及如何实现域名与IP的绑定做下介绍。域名与IP地址之间的关系IP地址是计算机的...
- 分享网站域名301重定向的知识
-
网站域名做301重定向操作时,一般需要由专业的技术来协助完成,如果用户自己在维护,可以按照相应的说明进行操作。好了,下面说说重点,域名301重定向的操作步骤。首先,根据HTTP协议,在客户端向服务器发...
- NAS外网到底安全吗?一文看懂HTTP/HTTPS和SSL证书
-
本内容来源于@什么值得买APP,观点仅代表作者本人|作者:可爱的小cherry搭好了NAS,但是不懂做好网络加密,那么隐私泄露也会随时发生!大家好,这里是Cherry,喜爱折腾、玩数码,热衷于分享数...
- ForwardEmail免费、开源、加密的邮件转发服务
-
ForwardEmail是一款免费、加密和开源的邮件转发服务,设置简单只需4步即可正常使用,通过测试来看也要比ImprovMX好得多,转发近乎秒到且未进入垃圾箱(仅以Mailbox.org发送、Out...
- 使用CloudFlare进行域名重定向
-
当网站变更域名的时候,经常会使用域名重定向的方式,将老域名指向到新域名,这通常叫做:URL转发(URLFORWARDING),善于使用URL转发,对SEO来说非常有用,因为用这种方式能明确告知搜索引...
- 要将端口5002和5003通过Nginx代理到一个域名上的操作笔记
-
要将端口5002和5003通过Nginx代理到域名www.4rvi.cn的不同路径下,请按照以下步骤配置Nginx:步骤说明创建或编辑Nginx配置文件通常配置文件位于/etc/nginx/sites...
- SEO浅谈:网站域名重定向的三种方式
-
在大多数情况下,我们输入网站访问网站的时候,很难发现www.***.com和***.com的区别,因为一般的网站主,都会把这两个域名指向到同一网站。但是对于网站运营和优化来说,www.***.com和...
- 花生壳出现诊断域名与转发服务器ip不一致的解决办法
-
出现诊断域名与转发服务器ip不一致您可以:1、更改客户端所处主机的drs为223.5.5.5备用dns为119.29.29.29;2、在windows上进入命令提示符输入ipconfig/flush...
- 涨知识了!带你认识什么是域名
-
1、什么是域名从技术角度来看,域名是在Internet上解决IP地址对应的一种方法。一个完整的域名由两个或两个以上部分组成,各部分之间用英文的句号“.”来分隔。如“abc.com”。其中“com”称...
- 域名被跳转到其他网站是怎么回事
-
当你输入域名时被跳转到另一个网站,这可能是由几种原因造成的:一、域名可能配置了域名转发服务。无论何时有人访问域名,比如.com、.top等,都会自动重定向到另一个指定的URL,这通常是在域名注册商设...
你 发表评论:
欢迎- 一周热门
-
-
爱折腾的特斯拉车主必看!手把手教你TESLAMATE的备份和恢复
-
如何在安装前及安装后修改黑群晖的Mac地址和Sn系列号
-
[常用工具] OpenCV_contrib库在windows下编译使用指南
-
WindowsServer2022|配置NTP服务器的命令
-
Ubuntu系统Daphne + Nginx + supervisor部署Django项目
-
WIN11 安装配置 linux 子系统 Ubuntu 图形界面 桌面系统
-
解决Linux终端中“-bash: nano: command not found”问题
-
NBA 2K25虚拟内存不足/爆内存/内存占用100% 一文速解
-
Linux 中的文件描述符是什么?(linux 打开文件表 文件描述符)
-
K3s禁用Service Load Balancer,解决获取浏览器IP不正确问题
-
- 最近发表
- 标签列表
-
- linux 查询端口号 (58)
- docker映射容器目录到宿主机 (66)
- 杀端口 (60)
- yum更换阿里源 (62)
- internet explorer 增强的安全配置已启用 (65)
- linux自动挂载 (56)
- 禁用selinux (55)
- sysv-rc-conf (69)
- ubuntu防火墙状态查看 (64)
- windows server 2022激活密钥 (56)
- 无法与服务器建立安全连接是什么意思 (74)
- 443/80端口被占用怎么解决 (56)
- ping无法访问目标主机怎么解决 (58)
- fdatasync (59)
- 405 not allowed (56)
- 免备案虚拟主机zxhost (55)
- linux根据pid查看进程 (60)
- dhcp工具 (62)
- mysql 1045 (57)
- 宝塔远程工具 (56)
- ssh服务器拒绝了密码 请再试一次 (56)
- ubuntu卸载docker (56)
- linux查看nginx状态 (63)
- tomcat 乱码 (76)
- 2008r2激活序列号 (65)