91 Commits

Author SHA1 Message Date
harmj0y 3a770b3936 mod token warning for chatbot
-mod token warning for chatbot
2025-12-03 11:00:38 -08:00
Lee Chagolla-Christensen fe743d794d Minor fixes updates (#94)
* workflow purge errors with replicas, doc updates

* fix masterkeys page

* update readme

* path linking bug in UI

---------

Co-authored-by: Lee Chagolla-Christensen <lee@localhost>
2025-11-13 12:06:26 -08:00
Lee Chagolla-Christensen 62fe355d89 collapse metadata in FileViewer, remove P key handler (only tab now), update docs 2025-11-12 16:05:25 -08:00
Lee Chagolla-Christensen c8f50fbb72 doc/screenshot updates, dashboard tooltip updates 2025-11-12 15:07:51 -08:00
Lee Chagolla-Christensen 57ef9a905e CPU limits and doc updates
- Added CPU limits to noseyparker container
- Updated some of the docs (perf, troubleshooting, usage guide)
- Updated triage usage in frontend
2025-11-12 13:40:41 -08:00
harmj0y bf52bc62af Moved Agents to Settings page, combined Chrome+DPAPI
- Moved `Agents` to Settings page
- Combined Chromium + DPAPI pages
2025-11-09 14:17:54 -08:00
Will Schroeder 3628bf18d7 Merge branch 'main' into llm_chat_over_data 2025-11-07 13:22:16 -08:00
harmj0y cf8b72b955 Added additional tools for searching for host access
- Added additional tools for searching for host access
2025-11-07 13:01:37 -08:00
Lee Chagolla-Christensen b92f56a8a7 fix presidio on prod, debug logs 2025-11-07 10:55:12 -08:00
Lee Chagolla-Christensen caf9815890 Merge branch 'main' of github.com:SpecterOps/Nemesis 2025-11-07 10:54:45 -08:00
Lee Chagolla-Christensen 562a4e71ca Optimize observability stack and workflow throughput
Performance and configuration improvements:
- Tune OpenTelemetry Collector with batching, queuing, and memory limits
- Optimize Jaeger for write-heavy workloads with consistency disabled
- Add Prometheus scraping for OTel Collector internal metrics
- Increase document conversion prefetch count from 1 to 5
- Add CPU limit (2 cores) for document-conversion service
- Disable Tesseract OCR in default Tika config for faster processing

Workflow tracking enhancements:
- Add WorkflowTrackingService for centralized workflow state management
- Implement finalize_workflow activities for both services
- Track enrichment success/failure per workflow instance
- Support updating workflow status by object_id for subscriptions

Code improvements:
- Refactor PDF analyzer with modular extraction functions
- Add Unicode surrogate sanitization to prevent JSONB errors
- Update PII analyzer with improved error handling
- Add documentation links to Tika and Tesseract configuration

Frontend:
- Update StatsOverview component for workflow metrics display
2025-11-07 00:58:58 -08:00
harmj0y 5991024e94 token warning for chatbot
- token warning for `chatbot`
2025-11-06 20:05:11 -08:00
harmj0y d9dc7ffb6e Changed the chatbot verboseness
-Changed the chatbot verboseness
2025-11-06 19:48:18 -08:00
harmj0y 7c99097c3a Update ChatbotPage.jsx 2025-11-06 19:30:47 -08:00
harmj0y 68586c008b Update ChatbotPage.jsx 2025-11-06 19:22:30 -08:00
harmj0y 61b1199e4d Update ChatbotPage.jsx 2025-11-06 19:21:25 -08:00
harmj0y e23411de22 Tools/MCP working
- Tools/MCP working
- Changed layout of chat interface a bit
2025-11-06 19:16:28 -08:00
harmj0y 672fbb3550 Initial Chatbot commit
- Initial Chatbot commit
2025-11-06 18:30:11 -08:00
harmj0y deab3b0436 Temp disable yara re-running button
- Temp disable yara re-running button until we work out the proper internals for re-running a single enrichment with the new architecture
2025-11-05 13:38:58 -08:00
Lee Chagolla-Christensen 6ec0a3b61a Workflow performance improvements (#87)
* upgrade to dapr postgresv2 statestore

* actually make it v2

* dapr state table name, cleanup subscriptions/globals

* proper exceptions

* formatting/lint

* Refactor workflow tracking and improve activity input handling

- Extract workflow tracking logic into dedicated WorkflowTrackingService
- Simplify activity signatures to accept specific parameters instead of generic dicts
- Remove unused asyncio event loop references from enrichment modules
- Update YaraRuleManager initialization and method names

* re-added workflow tracking in the DB

* update uvicorn prod options

* enrichment work parallelism, convert queues from broadcast to task queues

* Refactor pubsub and improve workflow parallelism

- Split Dapr pubsub Dapr yaml components into topic-specific queues (alerting, dotnet, dpapi, files, noseyparker, workflow_monitor)
- Update all Dapr volume mounts to reference new topic-specific pubsub components
- Converted queues to task queues
- Use YAML anchors to reduce duplication for file-enrichment replicas
- Pass asyncpg pool to enrichment modules instead of creating connections
- Add asyncpg_pool parameter throughout chromium and enrichment module analyzers
- Update VSCode workspace (removed InspectAssembly, renamed dotnet_api to dotnet_service)
- Added curl commands for Jaeger API to performance docs to help with perf troubleshooting
- Created common.queues module to centralize pubsub/topic names (eases
  future refactoring)

* worker mods

* Workflow performance tuning, fix pubsub config, CLI arg changes

- Fix pubsub deleteWhenUnused typo (deletedWhenUnused)
- Add LOG_LEVEL environment variable support across services
- CLI: Rename --repeat to --times, add --max-files option
- Increase files pubsub prefetchCount from 25 to 50
- Add MAX_PARALLEL_WORKFLOWS configuration
- Fix DotNetAssemblyAnalysis null handling with field validators
- Update dashboard to show cumulative files/findings over time
- Add RUST_LOG environment variable support to noseyparker
- Update CHANGELOG for 2.1.4 release notes

* Dapr 1.16.2 and use db transactions

- Upgrade all Dapr containers from 1.16.1 to 1.16.2
- Reduce enrichment parallelism default from 25 to 5 workflows
- Reduce healthcheck intervals from 10s to 5s for alerting and document conversion
- Fixed DPAPI eventing to use new pubsubs
- Refactor file_linking database operations to use atomic upserts and avoid deadlocks
- Add WriteOnceViolationError handling in DPAPI masterkey analyzer
- Wrap database operations in transactions for enrichment storage and plaintext indexing
- Fix postgres notification handler closure variable capture

* remove unused start_time

* Scheduler persistence, workflow concurrency tuning, and config cleanup

- Add volume for Dapr scheduler and init service
- Add scheduler dependency to file enrichment service
- Add async workflow client libraries
- Format and cleanup compose.yaml (spacing, indentation, empty lines)

* Migrate file_enrichment to async Dapr client and optimize Dockerfile

- Use async DaprClient where possible in file_enrichment
- Improve Dockerfile caching
- Add asyncpg connection pool helper and fix typo in secret store name
- Include VS Code debug configuration for document_conversion
- Remove unused dapr_client from DpapiBlobAnalyzer
- Clean up activity return types and better handle exceptions

* Enrichment tracking for NoseyParker and logging cleanup

- Add workflow_id to NoseyParkerInput and NoseyParkerOutput models
- Remove workflow lookup query in noseyparker subscription handler
- Adjust jaeger_perf_stats.sh output formatting and precision
- Add type hints for async functions

* noseyparker scanner perf, tracing for update_enrichment_results

---------

Co-authored-by: Lee Chagolla-Christensen <lee@localhost>
2025-11-04 14:06:59 -08:00
harmj0y 129f7752c2 Added manual Chromium ABE key submission
- Added manual Chromium ABE key submission (w/ retroactive chromium data decryption)
2025-10-31 15:22:28 -07:00
harmj0y 4b36f9b198 Update DpapiMasterKeys.jsx 2025-10-30 10:06:00 -07:00
harmj0y 411a818776 Findings/alert triage mods
- Findings/alert filtering options when LLM functionality enabled
- Fixed race-condition for noseyparker/dotnet analysis findings + alerts when these containers insert findings _after_ the main file_enrichment workflow completes
- Changed layout of alerting settings display
2025-10-29 12:32:49 -07:00
harmj0y f9e6e7bff1 Alerting changes
- Move JWT from agents noseyparker subscription in file_enrichment
- Add new fields to published alert in publish_findings.py
- Store alerting settings in database, accessible from Settings.jsx page
- Have alerting apply alerting settings before publishing
- Move Arize Phoenix and Agents into `llm` docker compose profile
2025-10-28 18:55:03 -07:00
Lee Chagolla-Christensen 3b4f110686 Async/performance improvement (#83)
* make all enrichment (should)process methods async

* fix office2john resource leak

* check for none

* more resource errors, add ole hash tests, pytest configs

* update chromium to use async pool

* update registry module to use asyncpg pool

* more asyncpg

* use async get_file_enriched

* update sleep

* fix dapr configs, new ones for workflow services

* remove deprecate/redundant httprequestmax setting

* disable workflow tracking (for now)

---------

Co-authored-by: Lee Chagolla-Christensen <lee@localhost>
2025-10-28 15:12:24 -07:00
harmj0y 1a95440c1c File cache fix
-File cache fix
2025-10-28 11:28:30 -07:00
harmj0y dc26e4959f Fixed container extraction status updates
- Fixed container extraction status updates
2025-10-28 11:18:36 -07:00
Lee Chagolla-Christensen 790541fe8e disable bulk re-run for now 2025-10-27 12:58:31 -07:00
Lee Chagolla-Christensen eba3e6fdd9 fix spacing 2025-10-25 16:18:24 -07:00
Lee Chagolla-Christensen bab59497dd add count to Findings list page 2025-10-24 16:31:01 -07:00
harmj0y 815138ce32 Host reporting tweaks
- Changed reporting prompt
- changed up some of the displayed reporting stats
2025-10-23 14:00:41 -07:00
harmj0y 757d653a70 Changed findings layout table
-Changed findings layout table
2025-10-23 12:18:59 -07:00
harmj0y 056308ab99 Fixes for the reporting agent and report generation
-Fixes for the reporting agent and report generation
2025-10-22 16:59:58 -07:00
harmj0y 15fad59b70 Fix for some agent blocking
- Fix for agent API blocking until agent execution completes (except for finding triage)
2025-10-22 14:28:31 -07:00
harmj0y aa8a745ecd Initial pass on system/host reporting
-Initial pass on system/host reporting
-still need to fully test the agent implementation
2025-10-21 16:02:52 -07:00
harmj0y a6bc09752f Added retroactive chromekey decryption
- Added retroactive chromekey decryption when new plaintext masterkeys are submitted/decrypted
- Fix for SHA1 masterkeys submitted via the web_api (were previously treated like full masterkeys)
2025-10-17 11:40:59 -07:00
Lee Chagolla-Christensen c9358a9a2e make file links merge case insensitive, info --> debug logging 2025-10-16 23:03:42 -07:00
Lee Chagolla-Christensen e3a23b6f0a fix file browser, add reason 2025-10-15 18:25:46 -07:00
Lee Chagolla-Christensen fc3388251c make housekeeping DB calls async and parallelized, delete DPAPI data 2025-10-15 16:24:10 -07:00
Lee Chagolla-Christensen 7969d77480 remove redundant file normalization(file_enriched.path should be normalize), add initial linking tests 2025-10-15 00:10:53 -07:00
Lee Chagolla-Christensen 95f158225d update guids to be text so they're seachable 2025-10-14 12:54:17 -07:00
Lee Chagolla-Christensen 747c38771e normalize upload file paths, UI file caching, partial user masterkey file link, simplify hive report 2025-10-10 00:18:09 -07:00
harmj0y 5e7cb1b2b0 Added DPAPI masterkey and domain backupkey display pages
- Added DPAPI masterkey and domain backupkey display pages
2025-10-04 16:43:29 +09:00
harmj0y 4b012bb30f Merge branch 'nemesis-2.1.3' of https://github.com/SpecterOps/Nemesis into nemesis-2.1.3 2025-10-03 16:18:11 +09:00
harmj0y 0d5325f84d Added ability to delete linkings for non-present files
- Added ability to delete linkings for non-present files
2025-10-03 16:17:53 +09:00
Lee Chagolla-Christensen 2baa7d5d6a add CLI --folder option, linkings foreign key, linkage UI bug, plaintext checks in analyzers 2025-10-02 23:02:36 -07:00
harmj0y 0748f5abbc Added "Text Translator" agent
-Added "Text Translator" agent
2025-10-02 21:05:07 +09:00
harmj0y 4c828ffc09 Collapsed inbound/outbound labels for linked files in dashboard
- Collapsed inbound/outbound labels for linked files in dashboard
2025-09-26 11:39:44 -07:00
harmj0y d9739c70ea Changed linked files hypterlinking
- Changed linked files hypterlinking
2025-09-26 11:05:22 -07:00
Lee Chagolla-Christensen 168c009d3d Merge branch 'nemesis-2.1.3' of github.com:SpecterOps/Nemesis into nemesis-2.1.3 2025-09-25 21:11:42 -07:00