eva-exploit 2.5__tar.gz → 3.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. {eva_exploit-2.5 → eva_exploit-3.1}/PKG-INFO +82 -31
  2. {eva_exploit-2.5 → eva_exploit-3.1}/README.md +81 -30
  3. eva_exploit-3.1/config.py +42 -0
  4. eva_exploit-3.1/eva.py +793 -0
  5. {eva_exploit-2.5 → eva_exploit-3.1}/eva_exploit.egg-info/PKG-INFO +82 -31
  6. {eva_exploit-2.5 → eva_exploit-3.1}/eva_exploit.egg-info/SOURCES.txt +4 -0
  7. eva_exploit-3.1/modules/__init__.py +30 -0
  8. {eva_exploit-2.5 → eva_exploit-3.1}/modules/attack_map.py +208 -23
  9. eva_exploit-3.1/modules/exploit_search.py +852 -0
  10. {eva_exploit-2.5 → eva_exploit-3.1}/modules/llm.py +129 -14
  11. {eva_exploit-2.5 → eva_exploit-3.1}/modules/prompt_builder.py +21 -3
  12. {eva_exploit-2.5 → eva_exploit-3.1}/modules/reporting.py +86 -26
  13. eva_exploit-3.1/modules/tooling.py +438 -0
  14. eva_exploit-3.1/modules/vuln_intel.py +239 -0
  15. eva_exploit-3.1/modules/workflow.py +145 -0
  16. {eva_exploit-2.5 → eva_exploit-3.1}/pyproject.toml +1 -1
  17. eva_exploit-3.1/sessions/__init__.py +10 -0
  18. {eva_exploit-2.5 → eva_exploit-3.1}/sessions/eva_session.py +90 -11
  19. eva_exploit-3.1/utils/__init__.py +47 -0
  20. {eva_exploit-2.5 → eva_exploit-3.1}/utils/system.py +130 -64
  21. {eva_exploit-2.5 → eva_exploit-3.1}/utils/ui.py +7 -0
  22. eva_exploit-2.5/config.py +0 -29
  23. eva_exploit-2.5/eva.py +0 -166
  24. eva_exploit-2.5/modules/__init__.py +0 -0
  25. eva_exploit-2.5/sessions/__init__.py +0 -0
  26. eva_exploit-2.5/utils/__init__.py +0 -0
  27. {eva_exploit-2.5 → eva_exploit-3.1}/eva_exploit.egg-info/dependency_links.txt +0 -0
  28. {eva_exploit-2.5 → eva_exploit-3.1}/eva_exploit.egg-info/entry_points.txt +0 -0
  29. {eva_exploit-2.5 → eva_exploit-3.1}/eva_exploit.egg-info/requires.txt +0 -0
  30. {eva_exploit-2.5 → eva_exploit-3.1}/eva_exploit.egg-info/top_level.txt +0 -0
  31. {eva_exploit-2.5 → eva_exploit-3.1}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: eva-exploit
3
- Version: 2.5
3
+ Version: 3.1
4
4
  Summary: Exploit Vector Agent
5
5
  Author: ARCANGEL0
6
6
  License: MIT
@@ -27,7 +27,7 @@ Requires-Dist: requests>=2.31.0
27
27
 
28
28
  [![License](https://img.shields.io/badge/License-MIT-223355.svg?style=for-the-badge)](LICENSE)
29
29
  [![Security](https://img.shields.io/badge/For-Offensive%20Security-8B0000.svg?style=for-the-badge)](#)
30
- [![AI](https://img.shields.io/badge/AI-Powered-cyan.svg?style=for-the-badge)](#)
30
+ [![AI](https://img.shields.io/badge/AI-Powered-darkblue.svg?style=for-the-badge)](#)
31
31
 
32
32
  ![GitHub issues](https://img.shields.io/github/issues/ARCANGEL0/EVA?style=for-the-badge&color=3f3972)
33
33
  ![GitHub pull requests](https://img.shields.io/github/issues-pr/ARCANGEL0/EVA?style=for-the-badge&color=3f3972)
@@ -36,6 +36,14 @@ Requires-Dist: requests>=2.31.0
36
36
 
37
37
  </div>
38
38
 
39
+ <br> <br>
40
+
41
+ <div align="center">
42
+
43
+ [![Checkout my other project :> NekoCLI!](https://img.shields.io/badge/Check%20out%20my%20other%20project:%20%20Neko%20AI%20Assistant%20For%20CLI!%20%F0%9F%90%88-cyan.svg?style=for-the-badge)](https://github.com/ARCANGEL0/NekoCLI)
44
+
45
+ </div>
46
+
39
47
  ---
40
48
 
41
49
  ## 𝝺 Overview
@@ -92,8 +100,7 @@ graph TD
92
100
  R --> L
93
101
 
94
102
  Q --> S[⚡ Exploitation Phase]
95
- Q --> T[Export graphs and mapped networks
96
- - IN DEVELOPMENT -]
103
+ Q --> T[Export graphs and mapped networks]
97
104
 
98
105
  S --> U[➤_ Execute Exploit]
99
106
  U --> V{🞜 Access Gained?}
@@ -105,8 +112,7 @@ graph TD
105
112
  W --> Y[𐦝 Post-Exploitation]
106
113
  Y --> Z{🞜 Objectives Met?}
107
114
 
108
- Z -->|Generate Report| AA[📋 Generate Report
109
- - IN DEVELOPMENT -]
115
+ Z -->|Generate Report| AA[📋 Generate Report]
110
116
  Z -->|Exit and Save| AB[💾 Save & Exit]
111
117
  Z -->|No| AC[🔍 Continue Pentest]
112
118
  AC --> L
@@ -117,8 +123,7 @@ graph TD
117
123
  AD[⯐ Attack Strategy AI]
118
124
  AE[𝚵 Session Memory]
119
125
  AF[ᐮ Vulnerability Analysis]
120
- AG[CVE DATABASE SEARCH
121
- - IN DEVELOPMENT -]
126
+ AG[CVE DATABASE SEARCH]
122
127
  AH[𐰬 Output Processing]
123
128
  end
124
129
 
@@ -138,7 +143,7 @@ graph TD
138
143
  ### 🍎 Installation
139
144
 
140
145
  ```bash
141
- # Ollama for local endpoint (optional)
146
+ # Ollama for local endpoint (required for local models and eva exploit database)
142
147
  curl -fsSL https://ollama.ai/install.sh | shr
143
148
 
144
149
  # pip installation
@@ -158,39 +163,73 @@ sudo mv eva.py /usr/local/bin/eva
158
163
  ### ⬢ Configuring EVA.
159
164
 
160
165
  When starting EVA, it will automatically handle:
161
- - ✅ OpenAI API key setup (if using GPT backend)
162
- - ✅ Ollama model download (WhiteRabbit-Neo, feel free to change to any other desired model)
166
+ - ✅ API key setup (According to Model)
167
+ - ✅ Ollama model download (Default set as whiterabitv2, feel free to change to any other desired model)
163
168
  - ✅ Session directory creation
164
169
  - ✅ Dependencies installation
165
170
 
166
- <strong> If you wish to modify endpoints, ollama models or other: you can find these options in `config.py` </strong>
171
+ <strong> If you wish to modify endpoints, ollama models, API Keys or configure EVA, please run: </strong>
167
172
 
168
- > EVA is now modular, with a root launcher and separate folders for logic/components.
173
+ ```bash
174
+ eva --config
175
+ ```
169
176
 
170
177
  ### 📁 Directory Structure of EVA
171
178
 
172
179
  ```
173
- ~/.config/eva/
180
+ ~/EVA_data/
174
181
  ├── sessions/ # Session storage
175
182
  │ ├── session1.json
176
183
  │ ├── session2.json
177
184
  │ └── ...
178
- └── .env # API keys (auto-generated)
185
+ ├── reports/ # Vulnerability reports
186
+ │ ├── report1.html
187
+ │ ├── report1.pdf
188
+ │ └── ...
189
+ ├── attack_maps/ # Attack vector maps in HTML/JS
190
+ │ ├── attack_surface1.html
191
+ │ ├── attack_surface2.html
192
+ │ └── ...
193
+ ├── utils/
194
+ ├── modules/
195
+ ├── eva
196
+ └── config.py # API keys (auto-generated/persisted)
179
197
  ```
180
198
 
181
199
  ### ꀬ Where to change EVA options
182
200
 
201
+ ```bash
202
+ eva --config
203
+ ```
204
+
205
+ <strong> Will display the following configuration: </strong>
206
+
183
207
  ```python
184
- # Key Configuration Options
185
- API_ENDPOINT = "" # This is the custom API URL.
186
- G4F_MODEL = "gpt-5-1-instant"
187
- OLLAMA_MODEL = "jimscard/whiterabbit-neo:latest" # change ollama model as you wish, most recommended one is whiterabbit
208
+ API_ENDPOINT = "NOT_SET"
209
+ G4F_MODEL="gpt-oss-120b"
210
+ G4F_URL="https://api.gpt4free.workers.dev/api/novaai/chat/completions"
211
+ OLLAMA_MODEL = "ALIENTELLIGENCE/whiterabbitv2"
212
+ SEARCHVULN_MODEL = "gpt-oss:120b-cloud"
213
+ SEARCVULN_URL = "https://ollama.com/api/chat"
214
+ OLLAMA_API_KEY = "NOT_SET"
215
+ OPENAI_API_KEY = "NOT_SET"
216
+ ANTHROPIC_API_KEY = "NOT_SET"
217
+ GEMINI_API_KEY = "NOT_SET"
188
218
  ANTHROPIC_MODEL = "claude-3-5-sonnet-latest"
189
219
  GEMINI_MODEL = "gemini-2.0-flash"
190
- CONFIG_DIR = Path.home() / ".config" / "eva" # config folder for EVA
191
- SESSIONS_DIR = CONFIG_DIR / "sessions" # where to store EVA sessions
192
- REPORTS_DIR = CONFIG_DIR / "reports" # generated reports
193
- MAPS_DIR = CONFIG_DIR / "attack_maps" # generated visual attack maps
220
+ OLLAMA_CLOUD_TIMEOUT = 45
221
+ CONFIG_DIR = Path.home() / "EVA_data" #
222
+ SESSIONS_DIR = CONFIG_DIR / "sessions"
223
+ REPORTS_DIR = CONFIG_DIR / "reports"
224
+ MAPS_DIR = CONFIG_DIR / "attack_maps"
225
+ TERMS_ACCEPTEDTHING = CONFIG_DIR / ".confirm"
226
+ CONFIG_DIR.mkdir(parents=True, exist_ok=True)
227
+ SESSIONS_DIR.mkdir(parents=True, exist_ok=True)
228
+ REPORTS_DIR.mkdir(parents=True, exist_ok=True)
229
+ MAPS_DIR.mkdir(parents=True, exist_ok=True)
230
+ username = os.getlogin()
231
+ MAX_RETRIES = 10 ### maximum retries for fetching requests
232
+ RETRY_DELAY = 10 ### delay between requests to avoid rate limit error
194
233
  ```
195
234
 
196
235
  </details>
@@ -204,13 +243,25 @@ MAPS_DIR = CONFIG_DIR / "attack_maps" # generated visual attack maps
204
243
  python3 eva.py
205
244
  # or if installed via pip:
206
245
  eva
246
+
247
+ # open config.py in your default editor
248
+ eva --config
249
+
250
+ # deletes all sessions and files
251
+ eva --delete
252
+
253
+ # vulnerability / exploit intel search
254
+ eva --search i have a wingftp server running on version 4.7.3, find me exploits for it
255
+
256
+ # run eva default launcher
257
+ eva
207
258
  ```
208
259
 
209
260
  1. **Select Session**: Choose existing session or create new one
210
261
  2. **Choose AI Backend**:
211
262
  - **Ollama** (Recommended): Local AI with WhiteRabbit-Neo model
212
263
  - **GPT-5**: OpenAI's latest model (requires API key)
213
- - **G4F**: Uses g4f.dev endpoints with model GPT 5-1, feel free to change model used.
264
+ - **G4F**: Uses g4f.dev endpoints with models running GPT5.2, feel free to change model used.
214
265
  - **Anthropic**: Claude API backend (requires API key)
215
266
  - **Gemini**: Google Gemini API backend (requires API key)
216
267
  - **Custom API**: Your own API endpoint if desired
@@ -225,6 +276,8 @@ eva
225
276
  | `/exit` / `/quit` | Exit EVA and save session |
226
277
  | `/model` | Change AI backend |
227
278
  | `/rename` | Rename the current session |
279
+ | `/report` | Generates a PDF/HTML report with latest findings on session |
280
+ | `/map` | Generates a html file with attack surface map of session |
228
281
  | `/menu` | Return to session menu |
229
282
  | `R` | Run suggested command |
230
283
  | `S` | Skip command |
@@ -294,20 +347,18 @@ Let me start with basic system reconnaissance to understand the target better...
294
347
  - ✅ Custom model integration
295
348
  - ✅ Modifiable as you wish
296
349
 
297
- #### More backends compability will be provided soon!
298
-
299
350
  ### ✶ Anthropic
300
351
  - **Model**: Configurable via `ANTHROPIC_MODEL`
301
352
  - **About**:
302
353
  - ✅ Strong reasoning quality
303
- - ✅ Stable commercial API
354
+ - ✅ Stable API
304
355
  - ❌ Requires `ANTHROPIC_API_KEY`
305
356
 
306
357
  ### ✦ Gemini
307
358
  - **Model**: Configurable via `GEMINI_MODEL`
308
359
  - **About**:
309
360
  - ✅ Fast response latency
310
- - ✅ Native JSON output mode
361
+ - ✅ Native JSON output mode and better parsing, usually provides best results
311
362
  - ❌ Requires `GEMINI_API_KEY`
312
363
 
313
364
  </details>
@@ -318,11 +369,11 @@ Let me start with basic system reconnaissance to understand the target better...
318
369
  - [x] **⬢ OpenAI integration**: Integrated OpenAI into EVA
319
370
  - [x] **⬢ G4F.DEV**: Added G4F endpoints to free GPT5 usage.
320
371
  - [x] **⬢ Custom API**: Add custom endpoint besides ollama and OpenAI
321
- - [x] **⬡ Automated Reporting**: Concise HTML report generation (+ optional PDF via wkhtmltopdf)
372
+ - [x] **⬢ Automated Reporting**: Concise HTML report generation (+ optional PDF via wkhtmltopdf)
373
+ - [x] **⬢ CVE Database Integration**: Real-time vulnerability data
374
+ - [x] **⬢ Visual Attack Maps**: Interactive network diagrams such as connections or such, like Kerberos domains and AD devices.
322
375
  - [ ] **⬡ Cloud Integration**: AWS/GCP deployment ready
323
- - [ ] **⬡ CVE Database Integration**: Real-time vulnerability data
324
376
  - [ ] **⬡ Web Interface**: Browser-based EVA dashboard
325
- - [ ] **⬡ Visual Attack Maps**: Interactive network diagrams such as connections or such, like Kerberos domains and AD devices.
326
377
 
327
378
  </details>
328
379
 
@@ -15,7 +15,7 @@
15
15
 
16
16
  [![License](https://img.shields.io/badge/License-MIT-223355.svg?style=for-the-badge)](LICENSE)
17
17
  [![Security](https://img.shields.io/badge/For-Offensive%20Security-8B0000.svg?style=for-the-badge)](#)
18
- [![AI](https://img.shields.io/badge/AI-Powered-cyan.svg?style=for-the-badge)](#)
18
+ [![AI](https://img.shields.io/badge/AI-Powered-darkblue.svg?style=for-the-badge)](#)
19
19
 
20
20
  ![GitHub issues](https://img.shields.io/github/issues/ARCANGEL0/EVA?style=for-the-badge&color=3f3972)
21
21
  ![GitHub pull requests](https://img.shields.io/github/issues-pr/ARCANGEL0/EVA?style=for-the-badge&color=3f3972)
@@ -24,6 +24,14 @@
24
24
 
25
25
  </div>
26
26
 
27
+ <br> <br>
28
+
29
+ <div align="center">
30
+
31
+ [![Checkout my other project :> NekoCLI!](https://img.shields.io/badge/Check%20out%20my%20other%20project:%20%20Neko%20AI%20Assistant%20For%20CLI!%20%F0%9F%90%88-cyan.svg?style=for-the-badge)](https://github.com/ARCANGEL0/NekoCLI)
32
+
33
+ </div>
34
+
27
35
  ---
28
36
 
29
37
  ## 𝝺 Overview
@@ -80,8 +88,7 @@ graph TD
80
88
  R --> L
81
89
 
82
90
  Q --> S[⚡ Exploitation Phase]
83
- Q --> T[Export graphs and mapped networks
84
- - IN DEVELOPMENT -]
91
+ Q --> T[Export graphs and mapped networks]
85
92
 
86
93
  S --> U[➤_ Execute Exploit]
87
94
  U --> V{🞜 Access Gained?}
@@ -93,8 +100,7 @@ graph TD
93
100
  W --> Y[𐦝 Post-Exploitation]
94
101
  Y --> Z{🞜 Objectives Met?}
95
102
 
96
- Z -->|Generate Report| AA[📋 Generate Report
97
- - IN DEVELOPMENT -]
103
+ Z -->|Generate Report| AA[📋 Generate Report]
98
104
  Z -->|Exit and Save| AB[💾 Save & Exit]
99
105
  Z -->|No| AC[🔍 Continue Pentest]
100
106
  AC --> L
@@ -105,8 +111,7 @@ graph TD
105
111
  AD[⯐ Attack Strategy AI]
106
112
  AE[𝚵 Session Memory]
107
113
  AF[ᐮ Vulnerability Analysis]
108
- AG[CVE DATABASE SEARCH
109
- - IN DEVELOPMENT -]
114
+ AG[CVE DATABASE SEARCH]
110
115
  AH[𐰬 Output Processing]
111
116
  end
112
117
 
@@ -126,7 +131,7 @@ graph TD
126
131
  ### 🍎 Installation
127
132
 
128
133
  ```bash
129
- # Ollama for local endpoint (optional)
134
+ # Ollama for local endpoint (required for local models and eva exploit database)
130
135
  curl -fsSL https://ollama.ai/install.sh | shr
131
136
 
132
137
  # pip installation
@@ -146,39 +151,73 @@ sudo mv eva.py /usr/local/bin/eva
146
151
  ### ⬢ Configuring EVA.
147
152
 
148
153
  When starting EVA, it will automatically handle:
149
- - ✅ OpenAI API key setup (if using GPT backend)
150
- - ✅ Ollama model download (WhiteRabbit-Neo, feel free to change to any other desired model)
154
+ - ✅ API key setup (According to Model)
155
+ - ✅ Ollama model download (Default set as whiterabitv2, feel free to change to any other desired model)
151
156
  - ✅ Session directory creation
152
157
  - ✅ Dependencies installation
153
158
 
154
- <strong> If you wish to modify endpoints, ollama models or other: you can find these options in `config.py` </strong>
159
+ <strong> If you wish to modify endpoints, ollama models, API Keys or configure EVA, please run: </strong>
155
160
 
156
- > EVA is now modular, with a root launcher and separate folders for logic/components.
161
+ ```bash
162
+ eva --config
163
+ ```
157
164
 
158
165
  ### 📁 Directory Structure of EVA
159
166
 
160
167
  ```
161
- ~/.config/eva/
168
+ ~/EVA_data/
162
169
  ├── sessions/ # Session storage
163
170
  │ ├── session1.json
164
171
  │ ├── session2.json
165
172
  │ └── ...
166
- └── .env # API keys (auto-generated)
173
+ ├── reports/ # Vulnerability reports
174
+ │ ├── report1.html
175
+ │ ├── report1.pdf
176
+ │ └── ...
177
+ ├── attack_maps/ # Attack vector maps in HTML/JS
178
+ │ ├── attack_surface1.html
179
+ │ ├── attack_surface2.html
180
+ │ └── ...
181
+ ├── utils/
182
+ ├── modules/
183
+ ├── eva
184
+ └── config.py # API keys (auto-generated/persisted)
167
185
  ```
168
186
 
169
187
  ### ꀬ Where to change EVA options
170
188
 
189
+ ```bash
190
+ eva --config
191
+ ```
192
+
193
+ <strong> Will display the following configuration: </strong>
194
+
171
195
  ```python
172
- # Key Configuration Options
173
- API_ENDPOINT = "" # This is the custom API URL.
174
- G4F_MODEL = "gpt-5-1-instant"
175
- OLLAMA_MODEL = "jimscard/whiterabbit-neo:latest" # change ollama model as you wish, most recommended one is whiterabbit
196
+ API_ENDPOINT = "NOT_SET"
197
+ G4F_MODEL="gpt-oss-120b"
198
+ G4F_URL="https://api.gpt4free.workers.dev/api/novaai/chat/completions"
199
+ OLLAMA_MODEL = "ALIENTELLIGENCE/whiterabbitv2"
200
+ SEARCHVULN_MODEL = "gpt-oss:120b-cloud"
201
+ SEARCVULN_URL = "https://ollama.com/api/chat"
202
+ OLLAMA_API_KEY = "NOT_SET"
203
+ OPENAI_API_KEY = "NOT_SET"
204
+ ANTHROPIC_API_KEY = "NOT_SET"
205
+ GEMINI_API_KEY = "NOT_SET"
176
206
  ANTHROPIC_MODEL = "claude-3-5-sonnet-latest"
177
207
  GEMINI_MODEL = "gemini-2.0-flash"
178
- CONFIG_DIR = Path.home() / ".config" / "eva" # config folder for EVA
179
- SESSIONS_DIR = CONFIG_DIR / "sessions" # where to store EVA sessions
180
- REPORTS_DIR = CONFIG_DIR / "reports" # generated reports
181
- MAPS_DIR = CONFIG_DIR / "attack_maps" # generated visual attack maps
208
+ OLLAMA_CLOUD_TIMEOUT = 45
209
+ CONFIG_DIR = Path.home() / "EVA_data" #
210
+ SESSIONS_DIR = CONFIG_DIR / "sessions"
211
+ REPORTS_DIR = CONFIG_DIR / "reports"
212
+ MAPS_DIR = CONFIG_DIR / "attack_maps"
213
+ TERMS_ACCEPTEDTHING = CONFIG_DIR / ".confirm"
214
+ CONFIG_DIR.mkdir(parents=True, exist_ok=True)
215
+ SESSIONS_DIR.mkdir(parents=True, exist_ok=True)
216
+ REPORTS_DIR.mkdir(parents=True, exist_ok=True)
217
+ MAPS_DIR.mkdir(parents=True, exist_ok=True)
218
+ username = os.getlogin()
219
+ MAX_RETRIES = 10 ### maximum retries for fetching requests
220
+ RETRY_DELAY = 10 ### delay between requests to avoid rate limit error
182
221
  ```
183
222
 
184
223
  </details>
@@ -192,13 +231,25 @@ MAPS_DIR = CONFIG_DIR / "attack_maps" # generated visual attack maps
192
231
  python3 eva.py
193
232
  # or if installed via pip:
194
233
  eva
234
+
235
+ # open config.py in your default editor
236
+ eva --config
237
+
238
+ # deletes all sessions and files
239
+ eva --delete
240
+
241
+ # vulnerability / exploit intel search
242
+ eva --search i have a wingftp server running on version 4.7.3, find me exploits for it
243
+
244
+ # run eva default launcher
245
+ eva
195
246
  ```
196
247
 
197
248
  1. **Select Session**: Choose existing session or create new one
198
249
  2. **Choose AI Backend**:
199
250
  - **Ollama** (Recommended): Local AI with WhiteRabbit-Neo model
200
251
  - **GPT-5**: OpenAI's latest model (requires API key)
201
- - **G4F**: Uses g4f.dev endpoints with model GPT 5-1, feel free to change model used.
252
+ - **G4F**: Uses g4f.dev endpoints with models running GPT5.2, feel free to change model used.
202
253
  - **Anthropic**: Claude API backend (requires API key)
203
254
  - **Gemini**: Google Gemini API backend (requires API key)
204
255
  - **Custom API**: Your own API endpoint if desired
@@ -213,6 +264,8 @@ eva
213
264
  | `/exit` / `/quit` | Exit EVA and save session |
214
265
  | `/model` | Change AI backend |
215
266
  | `/rename` | Rename the current session |
267
+ | `/report` | Generates a PDF/HTML report with latest findings on session |
268
+ | `/map` | Generates a html file with attack surface map of session |
216
269
  | `/menu` | Return to session menu |
217
270
  | `R` | Run suggested command |
218
271
  | `S` | Skip command |
@@ -282,20 +335,18 @@ Let me start with basic system reconnaissance to understand the target better...
282
335
  - ✅ Custom model integration
283
336
  - ✅ Modifiable as you wish
284
337
 
285
- #### More backends compability will be provided soon!
286
-
287
338
  ### ✶ Anthropic
288
339
  - **Model**: Configurable via `ANTHROPIC_MODEL`
289
340
  - **About**:
290
341
  - ✅ Strong reasoning quality
291
- - ✅ Stable commercial API
342
+ - ✅ Stable API
292
343
  - ❌ Requires `ANTHROPIC_API_KEY`
293
344
 
294
345
  ### ✦ Gemini
295
346
  - **Model**: Configurable via `GEMINI_MODEL`
296
347
  - **About**:
297
348
  - ✅ Fast response latency
298
- - ✅ Native JSON output mode
349
+ - ✅ Native JSON output mode and better parsing, usually provides best results
299
350
  - ❌ Requires `GEMINI_API_KEY`
300
351
 
301
352
  </details>
@@ -306,11 +357,11 @@ Let me start with basic system reconnaissance to understand the target better...
306
357
  - [x] **⬢ OpenAI integration**: Integrated OpenAI into EVA
307
358
  - [x] **⬢ G4F.DEV**: Added G4F endpoints to free GPT5 usage.
308
359
  - [x] **⬢ Custom API**: Add custom endpoint besides ollama and OpenAI
309
- - [x] **⬡ Automated Reporting**: Concise HTML report generation (+ optional PDF via wkhtmltopdf)
360
+ - [x] **⬢ Automated Reporting**: Concise HTML report generation (+ optional PDF via wkhtmltopdf)
361
+ - [x] **⬢ CVE Database Integration**: Real-time vulnerability data
362
+ - [x] **⬢ Visual Attack Maps**: Interactive network diagrams such as connections or such, like Kerberos domains and AD devices.
310
363
  - [ ] **⬡ Cloud Integration**: AWS/GCP deployment ready
311
- - [ ] **⬡ CVE Database Integration**: Real-time vulnerability data
312
364
  - [ ] **⬡ Web Interface**: Browser-based EVA dashboard
313
- - [ ] **⬡ Visual Attack Maps**: Interactive network diagrams such as connections or such, like Kerberos domains and AD devices.
314
365
 
315
366
  </details>
316
367
 
@@ -0,0 +1,42 @@
1
+ #!/usr/bin/env python3
2
+ # made by: _ ____ ____ _ _ _ ____ _____ _ ___
3
+ #▄████▄ █████▄ ▄█████ ▄████▄ ███ ██ ▄████ ██████ ██ ▄████▄
4
+ #██▄▄██ ██▄▄██▄ ██ ██▄▄██ ██ ▀▄██ ██ ▄▄▄ ██▄▄ ██ ██ ██
5
+ #██ ██ ██ ██ ▀█████ ██ ██ ██ ██ ▀███▀ ██▄▄▄▄ ██████ ▀████▀
6
+ # ---------------------------------------------------------------------
7
+
8
+ import os
9
+ from pathlib import Path
10
+
11
+ # ================= CONFIG =================
12
+ APP_NAME = "EVA"
13
+ APP_VERSION = "3.1"
14
+ GITHUB_REPO = "arcangel0/EVA"
15
+ PYPI_PACKAGE = "eva-exploit"
16
+ API_ENDPOINT = "NOT_SET" # <--- change to your desired endpoint if needed
17
+ G4F_MODEL="gpt-oss-120b"
18
+ G4F_URL="https://api.gpt4free.workers.dev/api/novaai/chat/completions"
19
+ OLLAMA_MODEL = "ALIENTELLIGENCE/whiterabbitv2" # recommended ollama model
20
+ SEARCHVULN_MODEL = "gpt-oss:120b-cloud"
21
+ SEARCVULN_URL = "https://ollama.com/api/chat"
22
+ OLLAMA_API_KEY = "NOT_SET" # your ollama api key
23
+ OPENAI_API_KEY = "NOT_SET" # openai key
24
+ ANTHROPIC_API_KEY = "NOT_SET" #anthropic api key
25
+ GEMINI_API_KEY = "NOT_SET" # your gemini key
26
+ ANTHROPIC_MODEL = "claude-3-5-sonnet-latest"
27
+ GEMINI_MODEL = "gemini-2.0-flash"
28
+ OLLAMA_CLOUD_TIMEOUT = 45
29
+ CONFIG_DIR = Path.home() / "EVA_data" # Path to save EVA files
30
+ SESSIONS_DIR = CONFIG_DIR / "sessions"
31
+ REPORTS_DIR = CONFIG_DIR / "reports"
32
+ MAPS_DIR = CONFIG_DIR / "attack_maps"
33
+ TERMS_ACCEPTEDTHING = CONFIG_DIR / ".confirm"
34
+ CONFIG_DIR.mkdir(parents=True, exist_ok=True)
35
+ SESSIONS_DIR.mkdir(parents=True, exist_ok=True)
36
+ REPORTS_DIR.mkdir(parents=True, exist_ok=True)
37
+ MAPS_DIR.mkdir(parents=True, exist_ok=True)
38
+ username = os.getlogin()
39
+ MAX_RETRIES = 10 ### maximum retries for fetching requests
40
+ RETRY_DELAY = 10 ### delay between requests to avoid rate limit error
41
+
42
+ # All sessions will be stored on $HOME/.config/eva/sessions/*.json