# Modules

Empire provides a flexible framework for executing various types of scripts and binaries, including PowerShell, Python, .NET assemblies, and beacon object files (BOF). This section outlines how modules work, including YAML configuration, dynamic options, and new ways to run external scripts without the need for a dedicated module.

## What Are Modules?

Modules in Empire are reusable pieces of code that allow operators to perform tasks like data collection, lateral movement, or command execution. These modules can be customized and executed using YAML configuration files. Empire modules use various programming languages, including PowerShell, Python, and C#.

## Running External Scripts without a Dedicated Module

You can import and execute external scripts such as PowerShell or Python without the need to create a fully dedicated module. This is useful for quick operations where you want to load and execute a script on the fly.

### Examples

Importing and Executing PowerShell Scripts

![](/files/ASYwTRG3deOZIOYeDCxd)

Importing and Executing Python Scripts

![](/files/hvx1SX5UpRuzHBIxbvZM)

Example: Running a .NET Assembly

![](/files/0foyhbEvDL2vAJGrvKrI)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://bc-security.gitbook.io/empire-wiki/modules.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
