Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Config ¶
type Config struct { TargetURL *url.URL Reverse *ReverseConfig SourceInsecure bool Logger *log.Logger JavascriptURL string Transport http.RoundTripper }
Config holds all program configuration required to spin up a functioning instance of Judas.
type HTTPExchange ¶
HTTPExchange contains the request sent by the user to us and the response received from the target server. Listeners can use this struct to pull information out of requests and responses.
type InitializerFunc ¶
InitializerFunc is a go function that should be exported by a function package. It should be named "New". Your InitializerFunc should return an instance of your Listener with a reference to judas's logger for consistent logging.
type InterceptingTransport ¶
type InterceptingTransport struct { http.RoundTripper Plugins *PluginBroker TargetURL *url.URL }
InterceptingTransport sends the HTTP exchange to the loaded plugins.
type Listener ¶
type Listener interface {
Listen(<-chan *HTTPExchange)
}
Listener implementations will be given a stream of HTTPExchanges to let plugins capture valuable information out of request-response transactions.
type PluginBroker ¶
type PluginBroker struct {
// contains filtered or unexported fields
}
PluginBroker handles sending messages to plugins.
func LoadPlugins ¶
func LoadPlugins(logger *log.Logger, paths []string) (*PluginBroker, error)
LoadPlugins loads judas plugins from a list of file paths.
func (*PluginBroker) SendResult ¶
func (p *PluginBroker) SendResult(exchange *HTTPExchange) error
SendResult sends a *Result to all loaded plugins for further processing.
func (*PluginBroker) SignalDone ¶
func (p *PluginBroker) SignalDone()
SignalDone closes all plugin chans that are waiting on results. Call only after all results have been sent.
func (*PluginBroker) TransformRequest ¶
func (p *PluginBroker) TransformRequest(request *http.Request) error
TransformRequest runs all loaded RequestTransformers against requests from victims.
func (*PluginBroker) TransformResponse ¶
func (p *PluginBroker) TransformResponse(response *http.Response) error
TransformResponse runs all loaded ResponseTransformers against responses before they're returned to victims.
type ProxyServer ¶
type ProxyServer struct {
// contains filtered or unexported fields
}
ProxyServer exposes the reverse proxy over HTTP.
func New ¶
func New(config *Config) *ProxyServer
New returns a HTTP handler configured for phishing.
func (*ProxyServer) HandleRequests ¶
func (p *ProxyServer) HandleRequests(w http.ResponseWriter, r *http.Request)
HandleRequests reverse proxies all traffic to the target server.
type RequestTransformer ¶
RequestTransformer modifies a request before it is sent to the target website. This can be used to hijack victim actions, like replacing an account number with ours. Delays in this function will slow down the phishing site for the victim. Your RequestTransformer should be a function called "RequestTransformer"
type ResponseTransformer ¶
ResponseTransformer modifies a response before it is returned to the victim. You can use ResponseTransformers to hide any visible results of a RequestTransformer. Delays in this function will slow down the phishing site for the victim. Your ResponseTransformer should be a function called "ResponseTransformer"