Goblin 红蓝对抗钓鱼攻击演练系统

项目地址

GitHub:

https://github.com/xiecat/goblin

Goblin简介

Goblin 是一款适用于红蓝对抗的钓鱼演练工具。通过反向代理,可以在不影响用户操作的情况下无感知的获取用户的信息,或者诱导用户操作。也可以通过使用代理方式达到隐藏服务端的目的。内置插件,通过简单的配置,快速调整网页内容以达到更好的演练效果

特点:

  • 支持缓存静态文件,加速访问
  • 支持 dump 所有请求,dump 匹配规则的请求
  • 支持访问日志输出到 es、syslog、文件等
  • 支持通过插件快速配置,调整不合适的跳转或者内容
  • 支持植入特定的 js
  • 支持修改响应内容或者 goblin 请求的内容
  • 支持通过代理方式隐藏真实 IP

Goblin下载地址:

①GitHub:

  • goblin_0.4.4_darwin_amd64.tar.gz5.44 MB
  • goblin_0.4.4_darwin_arm64.tar.gz5.47 MB
  • goblin_0.4.4_linux_386.tar.gz4.8 MB
  • goblin_0.4.4_linux_amd64.tar.gz5.17 MB
  • goblin_0.4.4_linux_arm64.tar.gz4.74 MB
  • goblin_0.4.4_linux_armv6.tar.gz4.81 MB
  • goblin_0.4.4_windows_386.zip5.03 MB
  • goblin_0.4.4_windows_amd64.zip5.25 MB
  • goblin_0.4.4_windows_arm64.zip4.81 MB
  • goblin_0.4.4_windows_armv6.zip4.96 MB

②云中转网盘:

解压密码:www.ddosi.org

https://yzzpan.com/#sharefile=I9gN46sH_37228

Goblin安装方法

从 Docker 中下载

docker pull becivells/goblin

Dockerfile 如下:

FROM scratch
COPY goblin /usr/bin/goblin
ENTRYPOINT ["/usr/bin/goblin"]
WORKDIR /goblin

工作目录在 goblin ,首先创建goblin目录,切换到目录下,执行

docker run -it --rm -v $(pwd):/goblin/ -p 8084:8084 becivells/goblin

注意事项

$(pwd) 是路径代表当前路径(goblin) 也可以使用

docker run -it --rm -v goblin:/goblin/ -p 8084:8084 becivells/goblin

即可自动生成配置文件、插件目录、静态文件目录并且下载地理位置数据库

命令参数

────────╔╗──╔╗
────────║║──║║
╔══╗╔══╗║╚═╗║║─╔╗╔══╗
║╔╗║║╔╗║║╔╗║║║─╠╣║╔╗╗
║╚╝║║╚╝║║╚╝║║╚╗║║║║║║
╚═╗║╚══╝╚══╝╚═╝╚╝╚╝╚╝
╔═╝║  v0.3.9-next - 2021-09-12T08:12:09Z
╚══╝
        From: https://github.com/xiecat/goblin

请在license许可范围内使用此工具。
goblin 不对因使用此工具而产生的任何风险负责。
使用说明同意此声明
 
goblin用法:
  -config string
        网络服务器端口 (默认 "goblin.yaml")
  -gen-plugin string
        生成规则文件
  -log string
        服务器日志 (默认 "goblin.log")
  -log-level int
        日志模式[1-51.dump所有日志包括GET日志、POST日志、2.记录POST日志,3.记录转储登录规则;4.记录错误日志;5.记录异常退出日志(默认1)
  -print-config
        输出配置文件
  -test-notice
        测试消息通知
  -v    显示goblin版本
  -w    将配置写入配置文件

代理配置

前置配置

前面可以使用 cf 做 cdn 访问者溯源困难

后置配置

配置文件中 proxyserveraddr 配置即可

Proxy:
  MaxIdleConns: 512 # 代理一些配置默认即可
  IdleConnTimeout: 2m0s
  TLSHandshakeTimeout: 1m0s
  ExpectContinueTimeout: 1s
  maxcontentlength: 20971520 # 处理响应数据最大值默认 20M,超过这个值,插件中需要读取 body 的操作会被取消
  ProxyServerAddr: "socks5://127.0.0.1:1080"   # 设置代理,设置后通过代理进行网页请求
  ProxyCheckURL: https://myip.ipip.net/ # 访问此地址检查代理设置是否正确
  PluginDir: plugins

注意事项

如果是在服务器端部署则需要修改 ip 地址如有疑问可以参考 site 讲解

  Site:
    server_ip:8084:  ## 修改为域名或者 server ip
      Listen: 0.0.0.0
      StaticPrefix: x9ut17jbqa
      SSL: false
      CAKey: ""
      CACert: ""
      ProxyPass: https://www.baidu.com
      Plugin: demo

插件系统

插件系统介绍详细使用方法见文档插件系统

高阶用法

goblin 使用反向代理,前端使用 cf 等代理 Goblin, 即可隐藏 Goblin 主机 具体文档可以参考 goblin 代理配置

JS 注入

js 注入有两种方式一种是跟着页面走(Replace 需要自己追加 <script> 标签),一种是跟着全局 js 文件走各有好处。

这两种其实都是使用 Replace 功能

使用 InjectJs 注入

具体文档可以参考 goblin InjectJs 模块

- url: /base.js # 待替换的js 尽量选择全局 js
  Match: word   # 匹配方式
  InjectJs:
    File: aaa.js # 要替换的 js。 可以为文件或者 url

使用replace 注入

具体文档可以参考 goblin Replace 模块

- url: /art_103.html # 待替换的网页
  Match: Word
  Replace: # 替换模块
    - Request:
        Method: # 匹配到如下请求方式方可替换
          - GET
          - POST
        Header:
          goblin: 1.0.1  # 替换的 header 头内容。为空则是删除。
      Response: # 替换的响应内容
        Body:
          Append: "<script type='text/javascript' src='{{ .Static }}a.js'></sc


本文转载自网络

作者:雨苁

原文链接:https://www.ddosi.org/goblin/




本文作者:Ms08067安全实验室

本文为安全脉搏专栏作者发布,转载请注明:https://www.secpulse.com/archives/185637.html

Tags:
评论  (0)
快来写下你的想法吧!

Ms08067安全实验室

文章数:51 积分: 154

已出版《Web安全攻防》《内网安全攻防》《Python安全攻防》《JAVA代码安全审计(入门篇)》等书

安全问答社区

安全问答社区

脉搏官方公众号

脉搏公众号