controllers

package
v0.0.0-...-ed9a708 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 22, 2024 License: MIT Imports: 27 Imported by: 0

Documentation

Overview

Package controllers is responsible for setting up the routing and controllers (http.Handlers) for gophish.

Index

Constants

View Source
const TransparencySuffix = "+"

TransparencySuffix (when appended to a valid result ID), will cause Gophish to return a transparency response.

Variables

View Source
var ErrCampaignComplete = errors.New("Event received on completed campaign")

ErrCampaignComplete is thrown when an event is received for a campaign that has already been marked as complete.

View Source
var ErrInvalidRequest = errors.New("Invalid request")

ErrInvalidRequest is thrown when a request with an invalid structure is received

Functions

func Flash

func Flash(_ http.ResponseWriter, r *http.Request, t string, m string)

Flash handles the rendering flash messages

Types

type AdminServer

type AdminServer struct {
	// contains filtered or unexported fields
}

AdminServer is an HTTP server that implements the administrative Gophish handlers, including the dashboard and REST API.

func NewAdminServer

func NewAdminServer(config config.AdminServer, options ...AdminServerOption) *AdminServer

NewAdminServer returns a new instance of the AdminServer with the provided config and options applied.

func (*AdminServer) Base

func (as *AdminServer) Base(w http.ResponseWriter, r *http.Request)

Base handles the default path and template execution

func (*AdminServer) CampaignID

func (as *AdminServer) CampaignID(w http.ResponseWriter, r *http.Request)

CampaignID handles the default path and template execution

func (*AdminServer) Campaigns

func (as *AdminServer) Campaigns(w http.ResponseWriter, r *http.Request)

Campaigns handles the default path and template execution

func (*AdminServer) Groups

func (as *AdminServer) Groups(w http.ResponseWriter, r *http.Request)

Groups handles the default path and template execution

func (*AdminServer) Impersonate

func (as *AdminServer) Impersonate(w http.ResponseWriter, r *http.Request)

Impersonate allows an admin to log in to a user account without needing the password

func (*AdminServer) LandingPages

func (as *AdminServer) LandingPages(w http.ResponseWriter, r *http.Request)

LandingPages handles the default path and template execution

func (*AdminServer) Login

func (as *AdminServer) Login(w http.ResponseWriter, r *http.Request)

Login handles the authentication flow for a user. If credentials are valid, a session is created

func (*AdminServer) Logout

func (as *AdminServer) Logout(w http.ResponseWriter, r *http.Request)

Logout destroys the current user session

func (*AdminServer) ResetPassword

func (as *AdminServer) ResetPassword(w http.ResponseWriter, r *http.Request)

ResetPassword handles the password reset flow when a password change is required either by the Gophish system or an administrator.

This handler is meant to be used when a user is required to reset their password, not just when they want to.

This is an important distinction since in this handler we don't require the user to re-enter their current password, as opposed to the flow through the settings handler.

To that end, if the user doesn't require a password change, we will redirect them to the settings page.

func (*AdminServer) SendingProfiles

func (as *AdminServer) SendingProfiles(w http.ResponseWriter, r *http.Request)

SendingProfiles handles the default path and template execution

func (*AdminServer) Settings

func (as *AdminServer) Settings(w http.ResponseWriter, r *http.Request)

Settings handles the changing of settings

func (*AdminServer) Shutdown

func (as *AdminServer) Shutdown() error

Shutdown attempts to gracefully shut down the server.

func (*AdminServer) Start

func (as *AdminServer) Start()

Start launches the admin server, listening on the configured address.

func (*AdminServer) Templates

func (as *AdminServer) Templates(w http.ResponseWriter, r *http.Request)

Templates handles the default path and template execution

func (*AdminServer) UserManagement

func (as *AdminServer) UserManagement(w http.ResponseWriter, r *http.Request)

UserManagement is an admin-only handler that allows for the registration and management of user accounts within Gophish.

func (*AdminServer) Webhooks

func (as *AdminServer) Webhooks(w http.ResponseWriter, r *http.Request)

Webhooks is an admin-only handler that handles webhooks

type AdminServerOption

type AdminServerOption func(*AdminServer)

AdminServerOption is a functional option that is used to configure the admin server

func WithWorker

func WithWorker(w worker.Worker) AdminServerOption

WithWorker is an option that sets the background worker.

type PhishingServer

type PhishingServer struct {
	// contains filtered or unexported fields
}

PhishingServer is an HTTP server that implements the campaign event handlers, such as email open tracking, click tracking, and more.

func NewPhishingServer

func NewPhishingServer(config config.PhishServer, options ...PhishingServerOption) *PhishingServer

NewPhishingServer returns a new instance of the phishing server with provided options applied.

func (*PhishingServer) PhishHandler

func (ps *PhishingServer) PhishHandler(w http.ResponseWriter, r *http.Request)

PhishHandler handles incoming client connections and registers the associated actions performed (such as clicked link, etc.)

func (*PhishingServer) ReportHandler

func (ps *PhishingServer) ReportHandler(w http.ResponseWriter, r *http.Request)

ReportHandler tracks emails as they are reported, updating the status for the given Result

func (*PhishingServer) RobotsHandler

func (ps *PhishingServer) RobotsHandler(w http.ResponseWriter, _ *http.Request)

RobotsHandler prevents search engines, etc. from indexing phishing materials

func (*PhishingServer) Shutdown

func (ps *PhishingServer) Shutdown() error

Shutdown attempts to gracefully shut down the server.

func (*PhishingServer) Start

func (ps *PhishingServer) Start()

Start launches the phishing server, listening on the configured address.

func (*PhishingServer) TrackHandler

func (ps *PhishingServer) TrackHandler(w http.ResponseWriter, r *http.Request)

TrackHandler tracks emails as they are opened, updating the status for the given Result

func (*PhishingServer) TransparencyHandler

func (ps *PhishingServer) TransparencyHandler(w http.ResponseWriter, r *http.Request)

TransparencyHandler returns a TransparencyResponse for the provided result and campaign.

type PhishingServerOption

type PhishingServerOption func(*PhishingServer)

PhishingServerOption is a functional option that is used to configure the phishing server

type TransparencyResponse

type TransparencyResponse struct {
	Server         string    `json:"server"`
	ContactAddress string    `json:"contact_address"`
	SendDate       time.Time `json:"send_date"`
}

TransparencyResponse is the JSON response provided when a third-party makes a request to the transparency handler.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL