├── .gitattributes ├── .gitignore ├── LICENSE ├── README.md ├── admin ├── dashboard.html ├── fish.html ├── footer.html ├── header.html ├── login.html ├── mail.html └── setting.html ├── config.ini ├── core ├── dbUtil │ └── dbUtil.go ├── exec │ └── exec.go ├── protocol │ ├── mysql │ │ └── mysql.go │ ├── redis │ │ └── redis.go │ └── ssh │ │ └── ssh.go └── report │ └── report.go ├── db └── hfish.db ├── error └── error.go ├── go.mod ├── go.sum ├── images ├── 1.png ├── 2.png ├── 3.png ├── help.png ├── mysql.png ├── redis.png ├── run.png ├── web.png └── wechat.jpg ├── logs └── hfish.log ├── main.go ├── static ├── admin │ └── libs │ │ └── moment │ │ └── moment.js ├── css │ ├── bootstrap-flex.css │ ├── bootstrap-flex.css.map │ ├── bootstrap-grid.css │ ├── bootstrap-grid.css.map │ ├── bootstrap-reboot.css │ ├── bootstrap-reboot.css.map │ ├── chartist.css │ ├── chartist.css.map │ ├── style.css │ ├── style.css.map │ ├── tables.stack-mixin.css │ ├── tables.stack-mixin.css.map │ ├── tablesaw.stackonly.css │ ├── tablesaw.stackonly.css.map │ ├── weather-icons-wind.css │ ├── weather-icons-wind.css.map │ ├── weather-icons-wind.min.css │ ├── weather-icons-wind.min.css.map │ ├── weather-icons.css │ └── weather-icons.css.map ├── favicon.ico ├── fonts │ ├── FontAwesome.otf │ ├── Material-Design-Iconic-Font.eot │ ├── Material-Design-Iconic-Font.svg │ ├── Material-Design-Iconic-Font.ttf │ ├── Material-Design-Iconic-Font.woff │ ├── Material-Design-Iconic-Font.woff2 │ ├── Pe-icon-7-stroke.eot │ ├── Pe-icon-7-stroke.svg │ ├── Pe-icon-7-stroke.ttf │ ├── Pe-icon-7-stroke.woff │ ├── Simple-Line-Icons.eot │ ├── Simple-Line-Icons.svg │ ├── Simple-Line-Icons.ttf │ ├── Simple-Line-Icons.woff │ ├── Simple-Line-Icons.woff2 │ ├── fontawesome-webfont.eot │ ├── fontawesome-webfont.svg │ ├── fontawesome-webfont.ttf │ ├── fontawesome-webfont.woff │ ├── fontawesome-webfont.woff2 │ ├── glyphicons-halflings-regular.eot │ ├── glyphicons-halflings-regular.svg │ ├── glyphicons-halflings-regular.ttf │ ├── glyphicons-halflings-regular.woff │ ├── glyphicons-halflings-regular.woff2 │ ├── ionicons.eot │ ├── ionicons.svg │ ├── ionicons.ttf │ ├── ionicons.woff │ ├── themify.eot │ ├── themify.svg │ ├── themify.ttf │ ├── themify.woff │ ├── typicons.eot │ ├── typicons.svg │ ├── typicons.ttf │ ├── typicons.woff │ ├── weathericons-regular-webfont.eot │ ├── weathericons-regular-webfont.svg │ ├── weathericons-regular-webfont.ttf │ ├── weathericons-regular-webfont.woff │ └── weathericons-regular-webfont.woff2 ├── images │ ├── avatar.png │ ├── logo.png │ └── xy.png ├── js │ ├── bootstrap.js │ ├── bootstrap.min.js │ ├── detect.js │ ├── jquery.app.js │ ├── jquery.core.js │ ├── jquery.min.js │ ├── jquery.nicescroll.js │ ├── loginbg.js │ ├── modernizr.min.js │ ├── tether.min.js │ └── waves.js └── libs │ ├── bootstrap-sweetalert │ ├── sweet-alert.css │ ├── sweet-alert.js │ ├── sweet-alert.min.js │ └── thumbs-up.jpg │ ├── echarts │ ├── echarts.js │ ├── echarts4.min.js │ └── map │ │ ├── baise.js │ │ ├── baise.json │ │ ├── china.js │ │ ├── china.json │ │ ├── guangxi.js │ │ ├── guangxi.json │ │ ├── world.js │ │ └── world.json │ └── switchery │ ├── switchery.min.css │ └── switchery.min.js ├── utils ├── color │ └── color.go ├── conf │ └── conf.go ├── file │ └── file.go ├── md5 │ └── md5.go ├── send │ └── gomail.go ├── setting │ └── setting.go └── try │ └── try.go ├── view ├── api │ └── view.go ├── dashboard │ └── view.go ├── fish │ └── view.go ├── login │ └── view.go ├── mail │ └── view.go ├── setting │ └── view.go └── url.go └── web └── github ├── html └── index.html └── static └── github.js /.gitattributes: -------------------------------------------------------------------------------- 1 | *.js linguist-language=Go 2 | *.css linguist-language=Go 3 | *.html linguist-language=Go -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Binaries for programs and plugins 2 | *.exe 3 | *.exe~ 4 | *.dll 5 | *.so 6 | *.dylib 7 | 8 | # Test binary, build with `go test -c` 9 | *.test 10 | 11 | # Output of the go coverage tool, specifically when used with LiteIDE 12 | *.out 13 | 14 | .idea 15 | vendor 16 | .DS_Store 17 | */.DS_Store 18 | */.idea/% 19 | */vendor/% -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 HackLC 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |  2 | 3 | # 介绍 4 | 5 | > *本 Team 研发此平台,仅为企业安全测试使用,禁止其他人员使用非法用途!一切行为与本 Team 无关。* 6 | 7 | **HFish** 是一款基于 Golang 开发的跨平台多功能主动攻击型蜜罐钓鱼平台框架系统,为了企业安全防护测试做出了精心的打造 8 | 9 | - 多功能 不仅仅支持 HTTP(S) 钓鱼,还支持 SSH、SFTP、Redis、Mysql 等 10 | - 扩展性 提供 API 接口,使用者可以随意扩展钓鱼模块 ( WEB、PC、APP ) 11 | - 便捷性 使用 Golang 开发,使用者可以在 Win + Mac + Linux 上快速部署一套钓鱼平台 12 | 13 | # 地址 14 | 15 | - Github: https://github.com/hacklcs/HFish 16 | - Download: https://github.com/hacklcs/HFish/releases 17 | 18 | # 快速部署 19 | 20 | ### 部署说明 21 | 22 | - 下载当前系统二进制包 23 | - cd 到程序根目录,修改 config.ini 配置文件 24 | - 执行 ./HFish run 启动服务 25 | - 浏览器输入 http://localhost:9001 打开 26 | 27 | ### 帮助页面 28 | 29 |  30 | 31 | ### 启动服务 32 | 33 |  34 | 35 | # 部分界面展示 36 | 37 |  38 | 39 |  40 | 41 | # 部分功能使用演示 42 | 43 | ### WEB 钓鱼 44 | 45 |  46 | 47 | ### Redis 钓鱼 48 | 49 |  50 | 51 | ### Mysql 钓鱼 52 | 53 |  54 | 55 | # 注意事项 56 | 57 | - 邮箱 SMTP 配置后需要开启方可使用 58 | - API 接口 info 字段,&& 为换行符 59 | - 启动 WEB 钓鱼,请先启动 API 模块 60 | - WEB 插件 需在 WEB 目录下 编写 61 | - WEB 插件 下面必须存在两个目录 62 | 63 | # API 接口 64 | 65 | ``` 66 | URL: http://localhost:9001/api/v1/post/report 67 | 68 | POST: 69 | 70 | name : Github 钓鱼 # 项目名 71 | info : admin&&12345 # 上报信息,&& 为换行符号 72 | sec_key : 9cbf8a4dcb8e30682b927f352d6559a0 # API 安全密钥 73 | 74 | 特殊说明: 75 | 76 | URL api/v1/post/report 可在 config.ini 配置里修改 77 | sec_key 可在 config.ini 配置里修改,修改后 WEB 模板也需要同时修改 78 | ``` 79 | 80 | # TODO 81 | 82 | - [x] 登录模块 83 | - [x] 仪表盘模块 84 | - [x] 上钩列表 85 | - [x] 邮件群发 86 | - [x] 命令行优化 87 | - [x] 支持自定义 WEB 模板 88 | - [x] 支持 Mysql 服务端获取连接客户端电脑任意文件 89 | - [x] 支持 HTTP(S)、SSH、SFTP、Redis、Mysql 协议 90 | - [ ] 支持 FTP、Telnet、SMTP、POP3、TFTP、Oracle、VPN 等 91 | - [ ] 暗网钓鱼支持 92 | - [ ] WIFI 钓鱼支持 93 | - [ ] 自动化钓鱼支持 94 | - [ ] 钓鱼报告生成 95 | - [ ] 支持更多的 WEB 模块 96 | - [ ] 日记完善优化 97 | - [ ] 邮件发送支持编辑器 98 | - [ ] 支持邮件模板选择 99 | - [ ] 蜜罐高交互完善 100 | - [ ] 支持 Ngrok 一键映射 101 | - [ ] 支持分布式架构 102 | - [ ] 支持分页 103 | - [ ] 支持 ip 地理信息 和 地图数据展示 104 | - [ ] 支持更多的图表统计 105 | - [ ] 规划更多的功能... 106 | 107 | # 关于 108 | 109 | - Team: HackLC 110 | - URL: https://hack.lc 111 | 112 | # 反馈群 113 | 114 | 加微信拉人,请备注 **HackLC** 115 | 116 |  -------------------------------------------------------------------------------- /admin/dashboard.html: -------------------------------------------------------------------------------- 1 | {{template "header"}} 2 | 27 |
服务状态
71 |ADMIN
72 | 73 | {{if eq .apiStatus "1"}} 74 |API
75 | {{else}} 76 |API
77 | {{end}} 78 | 79 | {{if eq .webStatus "1"}} 80 |WEB
81 | {{else}} 82 |WEB
83 | {{end}} 84 | 85 | {{if eq .sshStatus "1"}} 86 |SSH
87 | {{else}} 88 |SSH
89 | {{end}} 90 | 91 | {{if eq .redisStatus "1"}} 92 |REDIS
93 | {{else}} 94 |REDIS
95 | {{end}} 96 | 97 | {{if eq .mysqlStatus "1"}} 98 |MYSQL
99 | {{else}} 100 |MYSQL
101 | {{end}} 102 |项目 | 97 |来源 IP | 98 |信息 | 99 |上钩时间 | 100 |操作 | 101 |
---|