Goblin 紅藍對抗釣魚攻擊演練系統

語言: CN / TW / HK

專案地址

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-5] 1.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/

—  實驗室旗下直播培訓課程  —

來和10000+位同學加入MS08067 一起 學習吧!