conpot.protocols.http package¶
Submodules¶
conpot.protocols.http.command_responder module¶
-
class
conpot.protocols.http.command_responder.CommandResponder(host, port, template, docpath)¶ Bases:
object-
serve_forever()¶
-
stop()¶
-
-
class
conpot.protocols.http.command_responder.HTTPServer(request, client_address, server)¶ Bases:
http.server.BaseHTTPRequestHandler-
do_GET()¶ Handle GET requests
-
do_HEAD()¶ Handle HEAD requests.
-
do_OPTIONS()¶ Handle OPTIONS requests.
-
do_POST()¶ Handle POST requests
-
do_TRACE()¶ Handle TRACE requests.
-
get_entity_headers(rqfilename, headers, configuration)¶
-
get_entity_trailers(rqfilename, configuration)¶
-
get_status_headers(status, headers, configuration)¶
-
get_status_trailers(status, configuration)¶
-
get_trigger_appendix(rqfilename, rqparams, configuration)¶
-
load_entity(requeststring, headers, configuration, docpath)¶ Retrieves status, headers and payload for a given entity, that can be stored either local or on a remote system
-
load_status(status, requeststring, requestheaders, headers, configuration, docpath, method='GET', body=None)¶ Retrieves headers and payload for a given status code. Certain status codes can be configured to forward the request to a remote system. If not available, generate a minimal response
-
log(version, request_type, addr, request, response=None)¶
-
send_chunked(chunks, payload, trailers)¶ Send payload via chunked transfer encoding to the client, followed by eventual trailers.
-
send_error(code, message=None)¶ Send and log an error reply. This method is overloaded to make use of load_status() to allow handling of “Unsupported Method” errors.
-
send_response(code, message=None)¶ Send the response header and log the response code. This function is overloaded to change the behaviour when loggers and sending default headers.
-
substitute_template_fields(payload)¶
-
-
class
conpot.protocols.http.command_responder.SubHTTPServer(server_address, RequestHandlerClass, template, docpath)¶ Bases:
conpot.protocols.http.command_responder.ThreadedHTTPServerthis class is necessary to allow passing custom request handler into the RequestHandlerClass
-
config_sanitize_tarpit(value)¶
-
daemon_threads= True¶
-
do_tarpit(delay)¶
-
-
class
conpot.protocols.http.command_responder.TemplateParser(data)¶ Bases:
html.parser.HTMLParser-
handle_startendtag(tag, attrs)¶ handles template tags provided in XHTML notation.
Expected format: <condata source=”(engine)” key=”(descriptor)” /> Example: <condata source=”databus” key=”SystemDescription” />
at the moment, the parser is space- and case-sensitive(!), this could be improved by using REGEX for replacing the template tags with actual values.
-
-
class
conpot.protocols.http.command_responder.ThreadedHTTPServer(server_address, RequestHandlerClass, bind_and_activate=True)¶ Bases:
socketserver.ThreadingMixIn,http.server.HTTPServerHandle requests in a separate thread.