mirror of
https://github.com/BC-SECURITY/Empire
synced 2026-06-08 10:26:49 +00:00
Updated agent taskings to remove unused/redundant functionality (#890)
* removed unused tasks 111 and 113 * moved task 44 to 116 * reorganized tasks into 3 supported languages * added invoke-script for loading script in memory replacement * fixed option validation to take into account files being a dependent option * updated option validation and added tests * added python invoke script and updated validation * revised validate options again and added docs * added DependsOn as validation default to fix validation tests * Fixed directory for doc gifs in modules * fixed python invoke-script gif * fixed changelog and reduced gif sizes * removed unused proxy classes * removed agent.functions * removed default values for python invoke_script * fixed unused normalization for is_option_required * Update empire/server/utils/option_util.py Co-authored-by: Vincent Rose <vrose04@gmail.com> --------- Co-authored-by: Vincent Rose <vrose04@gmail.com>
This commit is contained in:
@@ -0,0 +1,24 @@
|
||||
# Python Modules
|
||||
|
||||
Python modules are not much different from PowerShell modules in terms of the yaml schema. The differences for Python come in with the `script`, `script_path`, `script_end`, and option formatters.
|
||||
|
||||
A python script doesn't have an `option_format_string`. Instead, options are injected into the script directly using mustache templating. An example of this is the python module [say](https://github.com/BC-SECURITY/Empire/blob/master/empire/server/modules/python/trollsploit/osx/say.yaml).
|
||||
|
||||
```yaml
|
||||
options:
|
||||
- name: Agent
|
||||
description: Agent to run module on.
|
||||
required: true
|
||||
value: ''
|
||||
- name: Text
|
||||
description:
|
||||
required: true
|
||||
value: 'The text to speak.'
|
||||
- name: Voice
|
||||
description: The voice to use.
|
||||
required: true
|
||||
value: 'alex'
|
||||
script: run_command('say -v {{ Voice }} {{ Text }}')
|
||||
```
|
||||
|
||||
Python modules also support the `advanced.custom_generate` method of generating the script. Python modules can be used with `script` OR `script_path` and will ignore `script_end`, `option_format_string`, and `option_format_string_boolean`.
|
||||
Reference in New Issue
Block a user