loca1h0st's Blog
loca1h0st's Blog

HFish自定义蜜罐开发流程

HFish自定义蜜罐开发流程

前期建议准备工作:

  1. 一台电脑
  2. Visual Studio Code
  3. 浏览器使用现代浏览器,Chrome或者Firefox
  4. 电脑上完成Python 3的安装

以上完成准备即可开始编写自定义Web蜜罐,相关软件根据个人喜好或者习惯可以进行替换,顺手就行。


由于目前HFish仅开放了自定义Web蜜罐的功能,接下来以编写一个《蓝鲸智云社区版》蜜罐为例,讲解详细的操作:

创建开发环境

我这里选择的是~/Documents/SecDev/pot(Windows环境你可以创建一个D:\pot文件夹)

https://blog.mrtblogs.net/wp-content/uploads/2022/08/image-13.png

下载自定义蜜罐的模板(https://hfish.net/#/5-1-diy

将文件拷贝到开发环境并解压,模板包含了2个基础文件

https://blog.mrtblogs.net/wp-content/uploads/2022/08/image-14.png

其中index.html是一个基础的示例,portrait.js是一些利用jsonp溯源的脚本,这个文件我们不用进行编辑,HFish的蜜罐程序会自动调用。

创建本次开发环境

在开发环境的根目录创建你本次要开发的蜜罐文件夹,以server-xxx命名,例如这个案例中我们应该创建一个server-lanjing。同时复制一份index.html和portrait.js进入文件夹。

在Visual Studio Code中选择文件,打开文件夹功能打开service-lanjing文件夹进入编辑状态:

https://blog.mrtblogs.net/wp-content/uploads/2022/08/image-15.png

找到需要进行仿真的原环境:

这里有三种办法:

一种是该软件在官网有演示示例,那么我们可以直接通过仿真该环境的在线环境进行:

https://blog.mrtblogs.net/wp-content/uploads/2022/08/image-16.png

第二种是通过fofa/zoomeye/shodan等搜索引擎查询相关资产,找到资产的入口页进行仿真

https://blog.mrtblogs.net/wp-content/uploads/2022/08/image-17.png

最后一种就是找到软件的安装包,在本地进行安装访问后进行仿真了。

https://blog.mrtblogs.net/wp-content/uploads/2022/08/image-18.png

编写核心代码

自定义Web蜜罐其目的主要为了欺骗攻击者视线,让其以为这是个真实的环境从而输入用户名和密码。所以我们自定义的蜜罐须处理的两个点就是界面展示和用户名密码输入框。

我们访问原始环境,在页面上点击右键,选择查看网页源代码:

https://blog.mrtblogs.net/wp-content/uploads/2022/08/image-19.png

在新弹出来的界面里面,按ctrl+a全选并复制:

https://blog.mrtblogs.net/wp-content/uploads/2022/08/image-20.png

然后打开我们的index.html文件,ctrl+a后ctrl+v全复制进去并点击保存:

https://blog.mrtblogs.net/wp-content/uploads/2022/08/image-21.png

此时,可以在文件浏览器窗口中双击打开该html文件,查看基本元素是否都存在:

https://blog.mrtblogs.net/wp-content/uploads/2022/08/image-22.png

修复显示问题

基本的文字和按钮都显示后,接下来就是修复显示的问题了,在inde.html文件中,找到所有的第三方文件,可选择删除所有的js文件(也可以选择不删除,和接下来的css文件一样下载,确保仿真度较高),对所有的css文件、图片文件按原目录层级下载。

https://blog.mrtblogs.net/wp-content/uploads/2022/08/image-23.png

如上图,这些css和png文件应该按同目录层级进行下载。

https://blog.mrtblogs.net/wp-content/uploads/2022/08/image-24.png

如上图,这些js文件可以直接选择删除。

Tips: 如果使用Linux系统可以有如下的快捷方式下载资源:

https://blog.mrtblogs.net/wp-content/uploads/2022/08/image-25.png

访问仿真环境

完成步骤6后,你的开发环境目录和文件内容应该如下图所示:

https://blog.mrtblogs.net/wp-content/uploads/2022/08/image-26.png

接下来你就可以尝试在Web服务器中访问这个蜜罐查看显示是否正常了,这一个步骤需要你在当前开发文件夹内启动一个HTTP服务器

启动的方法有很多,以本文中前提准备的Python 3软件为例,在命令窗口进入到当前的文件夹,输入python3 -m http.server

https://blog.mrtblogs.net/wp-content/uploads/2022/08/image-27.png

这样你便可以通过访问http://127.0.0.1:8000访问你的仿真环境了:

https://blog.mrtblogs.net/wp-content/uploads/2022/08/image-28.png

补全缺失的资源

从步骤7的结果可以看到,我们目前的蜜罐展示界面离真实的环境还有一些差距,那么接下来的操作就是我们需要对缺失的资源进行补齐:

在页面的空白处点击右键,选择检查,在弹出的DevTools内选择Network选项卡,对于Network中红色的资源,参考步骤6进行补齐。

https://blog.mrtblogs.net/wp-content/uploads/2022/08/image-29.png

最终调整

补充完成后,查看对页面进行最终查看,尽量调整至仿真环境与源环境一致:

https://blog.mrtblogs.net/wp-content/uploads/2022/08/image-30.png

页面调整完,接下来就是基于蜜罐的接口完成登录框的改造了,在index.html文件中,找到这个登录的表单(可以通过搜索<form定位):

https://blog.mrtblogs.net/wp-content/uploads/2022/08/image-31.png

在这个位置,根据HFish自定义蜜罐的需求,需要将form表单调整为提交给/login接口,包含username和password两个参数:

https://blog.mrtblogs.net/wp-content/uploads/2022/08/image-32.png

找到<body>,将溯源的js脚本放入进去:

https://blog.mrtblogs.net/wp-content/uploads/2022/08/image-33.png

源代码:

<script type="text/javascript">
    var ndScript = document.createElement('script');
        ndScript.src="./portrait.js";
        document.body.appendChild(ndScript);
</script>

压缩自定义Web蜜罐,上传HFish测试

在开发文件夹的根目录压缩所有文件,并命名为service-lanjing.zip。这里需要确保压缩文件内直接是文件,不能包含一层文件夹。

https://blog.mrtblogs.net/wp-content/uploads/2022/08/image-34.png

在HFish的环境管理-服务管理上传蜜罐:

https://blog.mrtblogs.net/wp-content/uploads/2022/08/image-35-609x1024.png

在HFish的环境管理-节点管理-添加蜜罐内找个节点部署测试:

https://blog.mrtblogs.net/wp-content/uploads/2022/08/image-36.png
https://blog.mrtblogs.net/wp-content/uploads/2022/08/image-37.png

此时访问节点的8080端口查看页面显示是否正常,提交测试的用户名密码HFish是否能接收:

https://blog.mrtblogs.net/wp-content/uploads/2022/08/image-38.png
https://blog.mrtblogs.net/wp-content/uploads/2022/08/image-39.png

发表回复

textsms
account_circle
email

loca1h0st's Blog

HFish自定义蜜罐开发流程
前期建议准备工作: 一台电脑Visual Studio Code浏览器使用现代浏览器,Chrome或者Firefox电脑上完成Python 3的安装 以上完成准备即可开始编写自定义Web蜜罐,相关软件根据个人喜好…
扫描二维码继续阅读
2022-08-22