This commit is contained in:
overcuriousity
2025-09-22 22:45:46 +02:00
parent 5d1d249910
commit 571912218e
25 changed files with 84 additions and 84 deletions

View File

@@ -1,5 +1,5 @@
"""
Core modules for DNSRecon passive reconnaissance tool.
Core modules for DNScope passive reconnaissance tool.
Contains graph management, scanning orchestration, and forensic logging.
"""

View File

@@ -1,7 +1,7 @@
# dnsrecon-reduced/core/graph_manager.py
# DNScope-reduced/core/graph_manager.py
"""
Graph data model for DNSRecon using NetworkX.
Graph data model for DNScope using NetworkX.
Manages in-memory graph storage with confidence scoring and forensic metadata.
Now fully compatible with the unified ProviderResult data model.
UPDATED: Fixed correlation exclusion keys to match actual attribute names.
@@ -30,7 +30,7 @@ class NodeType(Enum):
class GraphManager:
"""
Thread-safe graph manager for DNSRecon infrastructure mapping.
Thread-safe graph manager for DNScope infrastructure mapping.
Uses NetworkX for in-memory graph storage with confidence scoring.
Compatible with unified ProviderResult data model.
"""

View File

@@ -1,4 +1,4 @@
# dnsrecon/core/logger.py
# DNScope/core/logger.py
import logging
import threading
@@ -38,7 +38,7 @@ class RelationshipDiscovery:
class ForensicLogger:
"""
Thread-safe forensic logging system for DNSRecon.
Thread-safe forensic logging system for DNScope.
Maintains detailed audit trail of all reconnaissance activities.
"""
@@ -66,7 +66,7 @@ class ForensicLogger:
}
# Configure standard logger
self.logger = logging.getLogger(f'dnsrecon.{self.session_id}')
self.logger = logging.getLogger(f'DNScope.{self.session_id}')
self.logger.setLevel(logging.INFO)
# Create formatter for structured logging
@@ -94,7 +94,7 @@ class ForensicLogger:
"""Restore ForensicLogger after unpickling by reconstructing logger."""
self.__dict__.update(state)
# Re-initialize the 'logger' attribute
self.logger = logging.getLogger(f'dnsrecon.{self.session_id}')
self.logger = logging.getLogger(f'DNScope.{self.session_id}')
self.logger.setLevel(logging.INFO)
formatter = logging.Formatter(
'%(asctime)s - %(name)s - %(levelname)s - %(message)s'
@@ -107,7 +107,7 @@ class ForensicLogger:
def _generate_session_id(self) -> str:
"""Generate unique session identifier."""
return f"dnsrecon_{datetime.now(timezone.utc).strftime('%Y%m%d_%H%M%S')}"
return f"DNScope_{datetime.now(timezone.utc).strftime('%Y%m%d_%H%M%S')}"
def log_api_request(self, provider: str, url: str, method: str = "GET",
status_code: Optional[int] = None,

View File

@@ -1,7 +1,7 @@
# dnsrecon-reduced/core/provider_result.py
# DNScope-reduced/core/provider_result.py
"""
Unified data model for DNSRecon passive reconnaissance.
Unified data model for DNScope passive reconnaissance.
Standardizes the data structure across all providers to ensure consistent processing.
"""

View File

@@ -1,4 +1,4 @@
# dnsrecon-reduced/core/rate_limiter.py
# DNScope-reduced/core/rate_limiter.py
import time
import logging
@@ -11,7 +11,7 @@ class GlobalRateLimiter:
def __init__(self, redis_client):
self.redis = redis_client
self.logger = logging.getLogger('dnsrecon.rate_limiter')
self.logger = logging.getLogger('DNScope.rate_limiter')
# Track last cleanup times to avoid excessive Redis operations
self._last_cleanup = {}

View File

@@ -1,4 +1,4 @@
# dnsrecon-reduced/core/scanner.py
# DNScope-reduced/core/scanner.py
import threading
import traceback
@@ -35,7 +35,7 @@ class ScanStatus:
class Scanner:
"""
Main scanning orchestrator for DNSRecon passive reconnaissance.
Main scanning orchestrator for DNScope passive reconnaissance.
UNIFIED: Combines comprehensive features with improved display formatting.
"""

View File

@@ -1,5 +1,5 @@
"""
Per-session configuration management for DNSRecon.
Per-session configuration management for DNScope.
Provides isolated configuration instances for each user session.
"""

View File

@@ -1,4 +1,4 @@
# dnsrecon/core/session_manager.py
# DNScope/core/session_manager.py
import threading
import time
@@ -58,11 +58,11 @@ class SessionManager:
def _get_session_key(self, session_id: str) -> str:
"""Generates the Redis key for a session."""
return f"dnsrecon:session:{session_id}"
return f"DNScope:session:{session_id}"
def _get_stop_signal_key(self, session_id: str) -> str:
"""Generates the Redis key for a session's stop signal."""
return f"dnsrecon:stop:{session_id}"
return f"DNScope:stop:{session_id}"
def create_session(self) -> str:
"""
@@ -353,7 +353,7 @@ class SessionManager:
while True:
try:
# Clean up orphaned stop signals
stop_keys = self.redis_client.keys("dnsrecon:stop:*")
stop_keys = self.redis_client.keys("DNScope:stop:*")
for stop_key in stop_keys:
# Extract session ID from stop key
session_id = stop_key.decode('utf-8').split(':')[-1]
@@ -372,8 +372,8 @@ class SessionManager:
def get_statistics(self) -> Dict[str, Any]:
"""Get session manager statistics."""
try:
session_keys = self.redis_client.keys("dnsrecon:session:*")
stop_keys = self.redis_client.keys("dnsrecon:stop:*")
session_keys = self.redis_client.keys("DNScope:session:*")
stop_keys = self.redis_client.keys("DNScope:stop:*")
active_sessions = len(session_keys)
running_scans = 0