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
- https://github.com/BC-SECURITY/Empire/tree/master/empire/server/modules/python/situational_awareness/network/http_rest_api.yaml
- https://mesos.github.io/chronos/docs/api.html
- http://stackoverflow.com/questions/21243834/doing-put-using-python-urllib2
- http://attack.mitre.org/techniques/T1006
See Also
Check also the following modules related to this module:
- python/situational_awareness/network/find_fruit
- python/situational_awareness/network/gethostbyname
- python/situational_awareness/network/port_scan
- python/situational_awareness/network/smb_mount
- python/situational_awareness/network/active_directory/dscl_get_groups
- python/situational_awareness/network/active_directory/get_groups
- python/situational_awareness/network/active_directory/get_computers
- python/situational_awareness/network/active_directory/get_userinformation
- python/situational_awareness/network/active_directory/get_fileservers
- python/situational_awareness/network/active_directory/get_users
- python/situational_awareness/network/active_directory/dscl_get_groupmembers
- python/situational_awareness/network/active_directory/get_groupmembers
- python/situational_awareness/network/active_directory/get_ous
- python/situational_awareness/network/active_directory/dscl_get_users
- python/situational_awareness/network/active_directory/get_groupmemberships
- python/situational_awareness/network/active_directory/get_domaincontrollers
- python/situational_awareness/network/dcos/marathon_api_delete_app
- python/situational_awareness/network/dcos/marathon_api_create_start_app
- python/situational_awareness/network/dcos/chronos_api_delete_job
- python/situational_awareness/network/dcos/etcd_crawler
- python/situational_awareness/network/dcos/chronos_api_add_job
- python/situational_awareness/network/dcos/chronos_api_start_job
- powershell/recon/http_login
- powershell/management/restart
- powershell/situational_awareness/network/powerview/get_forest
- powershell/situational_awareness/network/powerview/get_forest_domain
- powershell/privesc/powerup/service_exe_restore
- powershell/collection/find_interesting_file
Version
This page has been created based on Empire version 4.1.3 (BC Security Fork).
Visit Empire Module Library for more modules.