This commit is contained in:
overcuriousity
2025-09-13 11:52:22 +02:00
parent 84810cdbb0
commit 53baf2e291
7 changed files with 270 additions and 401 deletions

View File

@@ -335,6 +335,10 @@ class GraphManager {
processedNode.borderColor = '#666666'; // Darker grey border
}
}
if (node.type === 'correlation_object') {
processedNode.label = this.formatNodeLabel(node.metadata.value, node.type);
}
return processedNode;
}
@@ -406,7 +410,7 @@ class GraphManager {
'ip': '#ff9900', // Amber
'asn': '#00aaff', // Blue
'large_entity': '#ff6b6b', // Red for large entities
'dns_record': '#9620c0ff'
'correlation_object': '#9620c0ff'
};
return colors[nodeType] || '#ffffff';
}
@@ -422,7 +426,7 @@ class GraphManager {
'domain': '#00aa2e',
'ip': '#cc7700',
'asn': '#0088cc',
'dns_record': '#c235c9ff'
'correlation_object': '#c235c9ff'
};
return borderColors[nodeType] || '#666666';
}
@@ -437,7 +441,7 @@ class GraphManager {
'domain': 12,
'ip': 14,
'asn': 16,
'dns_record': 8
'correlation_object': 8
};
return sizes[nodeType] || 12;
}
@@ -452,7 +456,7 @@ class GraphManager {
'domain': 'dot',
'ip': 'square',
'asn': 'triangle',
'dns_record': 'hexagon'
'correlation_object': 'hexagon'
};
return shapes[nodeType] || 'dot';
}
@@ -850,20 +854,6 @@ class GraphManager {
};
}
/**
* Export graph as image (if needed for future implementation)
* @param {string} format - Image format ('png', 'jpeg')
* @returns {string} Data URL of the image
*/
exportAsImage(format = 'png') {
if (!this.network) return null;
// This would require additional vis.js functionality
// Placeholder for future implementation
console.log('Image export not yet implemented');
return null;
}
/**
* Apply filters to the graph
* @param {string} nodeType - The type of node to show ('all' for no filter)

View File

@@ -859,6 +859,18 @@ class DNSReconApp {
detailsHtml += createDetailRow('Shodan Data', metadata.shodan);
detailsHtml += createDetailRow('VirusTotal Data', metadata.virustotal);
break;
case 'correlation_object':
detailsHtml += createDetailRow('Correlated Value', metadata.value);
if (metadata.correlated_nodes) {
detailsHtml += createDetailRow('Correlated Nodes', metadata.correlated_nodes.join(', '));
}
if (metadata.sources) {
detailsHtml += `<div class="detail-section-header">Correlation Sources</div>`;
for (const source of metadata.sources) {
detailsHtml += createDetailRow(source.node_id, source.path);
}
}
break;
}
if (metadata.certificate_data && Object.keys(metadata.certificate_data).length > 0) {