HTTP REST API - Empire Module


This page contains detailed information about how to use the python/situational_awareness/network/http_rest_api Empire module. For list of all Empire modules, visit the Empire Module Library.

Module Overview


Name: HTTP REST API
Module: python/situational_awareness/network/http_rest_api
Source code: empire/server/modules/python/situational_awareness/network/http_rest_api.yaml
MITRE ATT&CK: T1006
Language: Python
Needs admin: No
OPSEC safe: Yes
Background: Yes

The http_rest_api module interacts with a HTTP REST API and returns the results back to the screen.

This module runs in a foreground and is OPSEC unsafe as it writes on the disk and therefore could be detected by AV/EDR running on the target system.

Note that the http_rest_api module does not need administrative privileges to work properly which means that a normal user can run this module.

Required Module Options


This is a list of options that are required by the http_rest_api module:

Agent
Agent to execute module on.

Path
The path.
Default value: /v1/version.

Port
The port to connect to.
Default value: 8123.

Protocol
Protocol or Scheme to use.
Default value: http.

RequMethod
The HTTP request method to use.
Default value: GET.

Target
FQDN, domain name, or hostname of the remote target.
Default value: master.mesos.

Http_rest_api Example Usage


Here's an example of how to use the http_rest_api module in the Empire client console:

[+] New agent Y4LHEV83 checked in
[*] Sending agent (stage 2) to Y4LHEV83 at 192.168.204.135
(empire usestager/windows/ducky) > usemodule python/situational_awareness/network/http_rest_api

 Author       @TweekFawkes                                                        
              @scottjpack                                                         
 Background   True                                                                
 Comments     Docs: https://mesos.github.io/chronos/docs/api.html                 
              urllib2 DELETE method credits to:                                   
              http://stackoverflow.com/questions/21243834/doing-put-using-python- 
              urllib2                                                             
 Description  Interacts with a HTTP REST API and returns the results back to the  
              screen.                                                             
 Language     python                                                              
 Name         python/situational_awareness/network/http_rest_api                  
 NeedsAdmin   False                                                               
 OpsecSafe    True                                                                
 Techniques   http://attack.mitre.org/techniques/T1006                            


,Record Options-------------,----------,-----------------------------------,
| Name       | Value        | Required | Description                       |
|------------|--------------|----------|-----------------------------------|
| Agent      |              | True     | Agent to execute module on.       |
|------------|--------------|----------|-----------------------------------|
| Path       | /v1/version  | True     | The path.                         |
|------------|--------------|----------|-----------------------------------|
| Port       | 8123         | True     | The port to connect to.           |
|------------|--------------|----------|-----------------------------------|
| Protocol   | http         | True     | Protocol or Scheme to use.        |
|------------|--------------|----------|-----------------------------------|
| RequMethod | GET          | True     | The HTTP request method to use.   |
|------------|--------------|----------|-----------------------------------|
| Target     | master.mesos | True     | FQDN, domain name, or hostname of |
|            |              |          | the remote target.                |
'------------'--------------'----------'-----------------------------------'

(Empire: usemodule/python/situational_awareness/network/http_rest_api) > set Agent Y4LHEV83
[*] Set Agent to Y4LHEV83
(Empire: usemodule/python/situational_awareness/network/http_rest_api) > set Path /v1/version
[*] Set Path to /v1/version
(Empire: usemodule/python/situational_awareness/network/http_rest_api) > set Port 8123
[*] Set Port to 8123
(Empire: usemodule/python/situational_awareness/network/http_rest_api) > set Protocol http
[*] Set Protocol to http
(Empire: usemodule/python/situational_awareness/network/http_rest_api) > set RequMethod GET
[*] Set RequMethod to GET
(Empire: usemodule/python/situational_awareness/network/http_rest_api) > set Target master.mesos
[*] Set Target to master.mesos
(Empire: usemodule/python/situational_awareness/network/http_rest_api) > execute
[*] Tasked Y4LHEV83 to run Task 1
...

Now wait for the results to come.

Authors


References


See Also


Check also the following modules related to this module:

Version


This page has been created based on Empire version 4.1.3 (BC Security Fork).
Visit Empire Module Library for more modules.