mirror of
https://github.com/BC-SECURITY/Empire
synced 2026-06-08 10:26:49 +00:00
41c7abd01d
* 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>
25 lines
1.1 KiB
Markdown
25 lines
1.1 KiB
Markdown
# 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`.
|