> For the complete documentation index, see [llms.txt](https://exploit-pack.gitbook.io/exploit-pack-manual-pages/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://exploit-pack.gitbook.io/exploit-pack-manual-pages/control-pack/java-universal-agent.md).

# Java Universal Agent

The Java Universal Agent is a flexible post-exploitation component within Control Pack designed to operate directly inside Java environments. It can run as a standalone agent or be dynamically injected into an already running Java application, allowing it to function within a live JVM without requiring a restart or any modification to the target application. This makes it particularly useful in environments where stability and stealth are important.

Once active, the agent is capable of discovering other Java processes running on the same system and interacting with them at runtime. Through JVM enumeration and runtime attach techniques, the agent can pivot between Java processes in memory, effectively migrating its execution context without writing additional artifacts to disk. This enables advanced lateral movement inside Java-heavy environments such as application servers, middleware platforms, and enterprise services.

In addition to its injection and migration capabilities, the Java Universal Agent provides standard C2 functionality, enabling interaction with the compromised environment. This includes maintaining communication with the operator, executing tasks within the JVM context, and supporting complex post-exploitation workflows where persistence inside Java processes is required.

{% embed url="<https://youtu.be/c67INW-sCIo?si=GEZW5DZhm0apkjIu>" %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://exploit-pack.gitbook.io/exploit-pack-manual-pages/control-pack/java-universal-agent.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
