gophish: github.com/gophish/gophish/controllers Index | Files | Directories

package controllers

import "github.com/gophish/gophish/controllers"

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

Index

Package Files

doc.go phish.go route.go

Constants

const TransparencySuffix = "+"

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

Variables

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.

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

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

func Flash Uses

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

Flash handles the rendering flash messages

type AdminServer Uses

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 Uses

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 Uses

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

Base handles the default path and template execution

func (*AdminServer) CampaignID Uses

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

CampaignID handles the default path and template execution

func (*AdminServer) Campaigns Uses

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

Campaigns handles the default path and template execution

func (*AdminServer) Groups Uses

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

Groups handles the default path and template execution

func (*AdminServer) Impersonate Uses

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

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

func (*AdminServer) LandingPages Uses

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

LandingPages handles the default path and template execution

func (*AdminServer) Login Uses

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 Uses

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

Logout destroys the current user session

func (*AdminServer) ResetPassword Uses

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 Uses

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

SendingProfiles handles the default path and template execution

func (*AdminServer) Settings Uses

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

Settings handles the changing of settings

func (*AdminServer) Shutdown Uses

func (as *AdminServer) Shutdown() error

Shutdown attempts to gracefully shutdown the server.

func (*AdminServer) Start Uses

func (as *AdminServer) Start()

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

func (*AdminServer) Templates Uses

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

Templates handles the default path and template execution

func (*AdminServer) UserManagement Uses

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 Uses

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

Webhooks is an admin-only handler that handles webhooks

type AdminServerOption Uses

type AdminServerOption func(*AdminServer)

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

func WithWorker Uses

func WithWorker(w worker.Worker) AdminServerOption

WithWorker is an option that sets the background worker.

type PhishingServer Uses

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 Uses

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

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

func (*PhishingServer) PhishHandler Uses

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 Uses

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 Uses

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

RobotsHandler prevents search engines, etc. from indexing phishing materials

func (*PhishingServer) Shutdown Uses

func (ps *PhishingServer) Shutdown() error

Shutdown attempts to gracefully shutdown the server.

func (*PhishingServer) Start Uses

func (ps *PhishingServer) Start()

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

func (*PhishingServer) TrackHandler Uses

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 Uses

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

TransparencyHandler returns a TransparencyResponse for the provided result and campaign.

type PhishingServerOption Uses

type PhishingServerOption func(*PhishingServer)

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

func WithContactAddress Uses

func WithContactAddress(addr string) PhishingServerOption

WithContactAddress sets the contact address used by the transparency handlers

type TransparencyResponse Uses

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

PathSynopsis
api

Package controllers imports 27 packages (graph) and is imported by 16 packages. Updated 2020-12-15. Refresh now. Tools for package owners.