$name, 'created' => date('Y-m-d H:i:s', filectime($workspaceDir)), 'modified' => date('Y-m-d H:i:s', filemtime($workspaceDir)), 'hosts' => [], 'ports' => [], 'vulnerabilities' => [], 'screenshots' => [], 'files' => [] ]; // Get all files in workspace function scanWorkspace($dir, $prefix = '') { $files = []; if (is_dir($dir)) { $items = scandir($dir); foreach ($items as $item) { if ($item === '.' || $item === '..') continue; $path = $dir . '/' . $item; if (is_dir($path)) { $files = array_merge($files, scanWorkspace($path, $prefix . $item . '/')); } else { $files[] = [ 'name' => $item, 'path' => $prefix . $item, 'size' => filesize($path), 'modified' => filemtime($path) ]; } } } return $files; } $data['files'] = scanWorkspace($workspaceDir); // Parse hosts from nmap directory $nmapDir = $workspaceDir . '/nmap'; if (is_dir($nmapDir)) { $nmapFiles = glob($nmapDir . '/*.nmap'); foreach ($nmapFiles as $file) { $content = file_get_contents($file); // Extract host info if (preg_match('/Nmap scan report for (.+)/', $content, $matches)) { $host = trim($matches[1]); if (!in_array($host, $data['hosts'])) { $data['hosts'][] = $host; } } // Extract ports if (preg_match_all('/(\d+)\/(tcp|udp)\s+open\s+(\S+)/', $content, $matches, PREG_SET_ORDER)) { foreach ($matches as $match) { $data['ports'][] = [ 'port' => $match[1], 'protocol' => $match[2], 'service' => $match[3] ]; } } } } // Get screenshots $screenshotDir = $workspaceDir . '/screenshots'; if (is_dir($screenshotDir)) { $screenshots = glob($screenshotDir . '/*.{png,jpg,jpeg,gif}', GLOB_BRACE); foreach ($screenshots as $ss) { $data['screenshots'][] = basename($ss); } } // Parse vulnerabilities from output files $outputDir = $workspaceDir . '/output'; if (is_dir($outputDir)) { $vulnFiles = glob($outputDir . '/*nuclei*.txt'); foreach ($vulnFiles as $file) { $lines = file($file, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); foreach ($lines as $line) { if (strpos($line, '[') !== false && strpos($line, ']') !== false) { $data['vulnerabilities'][] = trim($line); } } } } // Unique ports $data['ports'] = array_unique($data['ports'], SORT_REGULAR); $data['vulnerabilities'] = array_unique($data['vulnerabilities']); ?> UltyScan Report - <?php echo htmlspecialchars($name); ?>

🔍

Created: | Modified:

Hosts Discovered
Open Ports
Findings
Files Generated

Discovered Hosts

Host

Open Ports

Port Protocol Service

Vulnerability Findings

Screenshots

<?php echo htmlspecialchars($ss); ?>

Generated Files

No files found in this workspace.
📄 KB