# 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: 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://exploit-pack.gitbook.io/exploit-pack-manual-pages/control-pack/java-universal-agent.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.
