aboutsummaryrefslogtreecommitdiffstats
path: root/config/strikeback/parse.tmp
diff options
context:
space:
mode:
authorChris Buechler <cmb@pfsense.org>2015-12-02 21:13:08 -0600
committerChris Buechler <cmb@pfsense.org>2015-12-02 21:13:08 -0600
commit5765aff51e33271c42eacf1771a2c59c21f07a3d (patch)
treea1bde3750a4ecab5462d2b391ade18d971e938ba /config/strikeback/parse.tmp
parent2df19b7daae7443d11e6d1ae239b0d1dd393fd25 (diff)
parent9fd3869a0a32b6532102648fcc6e1d7b15f3eae4 (diff)
downloadpfsense-packages-5765aff51e33271c42eacf1771a2c59c21f07a3d.tar.gz
pfsense-packages-5765aff51e33271c42eacf1771a2c59c21f07a3d.tar.bz2
pfsense-packages-5765aff51e33271c42eacf1771a2c59c21f07a3d.zip
Merge pull request #1199 from doktornotor/patch-4
Diffstat (limited to 'config/strikeback/parse.tmp')
-rw-r--r--config/strikeback/parse.tmp289
1 files changed, 0 insertions, 289 deletions
diff --git a/config/strikeback/parse.tmp b/config/strikeback/parse.tmp
deleted file mode 100644
index 085a73fb..00000000
--- a/config/strikeback/parse.tmp
+++ /dev/null
@@ -1,289 +0,0 @@
-#!/usr/local/bin/php
-<?php
-/**
- * Script to transform multiple nmap XML output files (presumably of the same host/port range with different scan options) into a HTML table
- *
- * The canonical source of the latest version of this script is:
- * <http://svn.jasonantman.com/misc-scripts/nmap-xml-to-table.php>
- *
- * Copyright 2011 Jason Antman <jason@jasonantman.com> <http://www.jasonantman.com> all rights reserved.
- * Distribution and use of this script is unlimited, provided that you leave this notice intact and send any corrections/additions back to me.
- *
- * This is assuming a relatively simple scan - only one protocol, one or more hosts, one or more ports, and that different scans will be differentiated only by type
- *
- * USAGE: nmap-xml-to-table.php [xml file] [xml file] [...]
- *
- * $LastChangedRevision$
- * $HeadURL$
- *
- */
-header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
-header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past
-
-exec("mkdir /usr/local/www/packages/strikeback/reports");
-
-$dir = 'reports/';
-$reports = scandir($dir);
-//print_r($reports);
-
-foreach($reports as $i => $value){
- $reports[$i] = "reports/".$reports[$i];
- $i++;
-}
-
-array_shift($reports);
-array_shift($reports);
-//print_r($reports);
-//array_shift($argv); // get rid of script name
-
-
-
-
-//print_r($reports);
-$files = array();
-//foreach($argv as $file)
-foreach($reports as $file)
-{
- if(file_exists($file) && is_readable($file))
- {
- $files[] = $file;
- }
- else
- {
- fwrite(STDERR, "File $file does not exist or is not readable, skipping.\n");
- }
-}
-
-$results = array();
-$scanInfo = array();
-$hostAndPort = array();
-
-$count = 0;
-foreach($files as $file)
-{
- $info = getScanResults($file);
- $results[$count] = $info['hosts'];
- $info['scan']['filename'] = $file;
- $scanInfo[$count] = $info['scan'];
- foreach($info['hosts'] as $host => $portArr)
- {
- if(! isset($hostAndPort[$host])){ $hostAndPort[$host] = array();}
- foreach($portArr as $port => $foo)
- {
- $hostAndPort[$host][$port] = $foo['service'];
- }
- }
- $count++;
-}
-
-?>
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
-<title>Condensed NMAP scan results</title>
-
-<style type="text/css">
-table.result {
- border-width: 1px 1px 1px 1px;
- border-spacing: 0px;
- border-style: solid solid solid solid;
- border-color: black black black black;
- border-collapse: separate;
- background-color: white;
- margin-left: auto;
- margin-right: auto;
-}
-table.result th {
- border-width: 1px 1px 1px 1px;
- padding: 2px 2px 2px 2px;
- border-style: solid solid solid solid;
- border-color: black black black black;
- background-color: white;
- -moz-border-radius: 0px 0px 0px 0px;
-}
-table.result td {
- border-width: 1px 1px 1px 1px;
- padding: 2px 2px 2px 2px;
- border-style: solid solid solid solid;
- border-color: black black black black;
- background-color: white;
- -moz-border-radius: 0px 0px 0px 0px;
-}
-h2 { text-align: center;}
-.lookhere { color: red;}
-</style>
-<script type="text/javascript" language="javascript">
-function show_hide(show) {
-<?php
-$tableint = 0;
-foreach($scanInfo as $num => $arr)
-{
- $tableint++;
-
- echo "if (tbl = document.getElementById(\"td".$tableint."\")) {\n";
- echo "if (null == show) show = tbl.style.display == 'none';\n";
- echo "tbl.style.display = (show ? '' : 'none');\n";
- echo "}\n";
-
- echo "if (tbl = document.getElementById(\"th".$tableint."\")) {\n";
- echo "if (null == show) show = tbl.style.display == 'none';\n";
- echo "tbl.style.display = (show ? '' : 'none');\n";
- echo "}\n";
-}
-?>
-}
-</script>
-</head>
-<body>
-<h2>Nmap scan results (condensed)</h2>
-<a href="javascript:void();" onclick="show_hide()">Show/Hide scanned services</a>
-<?php
-
-// output scan information
-echo '<table class="result">'."\n";
-echo '<tr><th colspan="7">Scans</th></tr>'."\n";
-//echo '<tr><th>Num</th><th>proto</th><th>type</th><th>Services</th><th>num hosts</th><th>command</th><th>filename</th></tr>'."\n";
-echo '<tr><th>Num</th><th>proto</th><th>type</th><th id="th'.$tableint.'" style="display:none;">Services</th><th>filename</th><th>Delete</th></tr>'."\n";
-
-if(isset($_GET[delete])) {
- echo($_GET[delete]);
-
-
- exec("rm ".$_GET[delete]);
- unlink($_GET[delete]);
-
-
- echo "<script type=\"text/javascript\">\n";
- echo "<!--\n";
- echo "window.location = \"parse.php\"\n";
- echo "//-->\n";
- echo "<\/script>\n";
-
-}
-
-$tableint = 0;
-foreach($scanInfo as $num => $arr)
-{
- $tableint++;
- //echo($tableint);
- //echo '<tr><td>'.$num.'</td><td>'.$arr['protocol'].'</td><td>'.$arr['type'].'</td><td>'.$arr['services'].'</td><td>'.$arr['numHosts'].'</td><td><pre>'.$arr['command'].'</pre></td><td>'.$arr['filename'].'</td></tr>'."\n";
- echo '<tr><td>'.$num.'</td><td>'.$arr['protocol'].'</td><td>'.$arr['type'].'</td><td id="td'.$tableint.'" style="display:none;">'.$arr['services'].'</td><td>'.$arr['filename'].'</td><td><a href=parse.php?delete='.$arr['filename'].'>Delete</a></td></tr>'."\n";
-}
-echo '</table>'."\n";
-
-echo '<br />'."\n";
-
-echo '<table class="result">'."\n";
-echo '<tr><th colspan="'.(count($scanInfo)+1).'">Results</th></tr>'."\n";
-echo '<tr><th>Port</th>';
-for($i = 0; $i < count($scanInfo); $i++){ echo '<th>'.$i.' ('.$scanInfo[$i]['type'].')</th>';}
-echo '</tr>'."\n";
-foreach($hostAndPort as $host => $portArr)
-{
- echo '<tr><th colspan="'.(count($scanInfo)+1).'">'.$host.'</th></tr>'."\n";
-
- foreach($portArr as $portName => $service)
- {
- echo '<tr><td>'.$portName.($service != "" ? " (".$service.")" : "").'</td>';
- foreach($scanInfo as $scanNum => $arr)
- {
- if(isset($results[$scanNum][$host][$portName]))
- {
- echo '<td>'.(($results[$scanNum][$host][$portName]['state'] == "open" || $results[$scanNum][$host][$portName]['state'] == "closed" || $results[$scanNum][$host][$portName]['state'] == "unfiltered") ? '<span class="lookhere">' : '').$results[$scanNum][$host][$portName]['state'].' ('.$results[$scanNum][$host][$portName]['state_reason'].(isset($results[$scanNum][$host][$portName]['state_reason_ip']) ? ' '.$results[$scanNum][$host][$portName]['state_reason_ip'] : '').')'.(($results[$scanNum][$host][$portName]['state'] == "open" || $results[$scanNum][$host][$portName]['state'] == "closed" || $results[$scanNum][$host][$portName]['state'] == "unfiltered") ? '</span>' : '').'</td>';
- }
- else
- {
- echo '<td><em>n/a</em></td>';
- }
- }
- echo '</tr>'."\n";
- }
-
-}
-echo '</table>'."\n";
-
-/**
- * Parse meaningful information from a nmap XML output file and return it as an array
- *
- * @return array
- */
-function handleError($errno, $errstr, $errfile, $errline, array $errcontext)
-{
- // error was suppressed with the @-operator
- if (0 === error_reporting()) {
- return false;
- }
-
- throw new ErrorException($errstr, 0, $errno, $errfile, $errline);
-}
-set_error_handler('handleError');
-
-function getScanResults($file)
-{
- try {
- $xml = simplexml_load_file($file);
-
- $result = array("scan" => array(), "hosts" => array());
-
- $command = $xml->attributes();
- $command = (string)$command['args'];
- $result['scan']['command'] = $command;
-
- $foo = $xml->scaninfo->attributes();
- $result['scan']['type'] = (string)$foo['type'];
- $result['scan']['protocol'] = (string)$foo['protocol'];
- $result['scan']['services'] = (string)$foo['services'];
-
- $count = 0;
- foreach($xml->host as $host)
- {
- $count++;
-
- $foo = $host->address->attributes();
- $addr = (string)$foo['addr'];
-
- $arr = array(); // array to hold ports and results
-
- // <port protocol="tcp" portid="445"><state state="filtered" reason="admin-prohibited" reason_ttl="241" reason_ip="67.83.255.41"/><service name="microsoft-ds" method="table" conf="3" /></port>
- foreach($host->ports->port as $port)
- {
- $foo = $port->attributes();
- $bar = array();
-
- $name = (string)($foo['protocol']." ".$foo['portid']);
- $bar['protocol'] = (string)$foo['protocol'];
- $bar['portid'] = (string)$foo['portid'];
- $bar['name'] = $name;
-
- $foo = $port->state->attributes();
- $bar['state'] = (string)$foo['state'];
- $bar['state_reason'] = (string)$foo['reason'];
- $bar['state_reason_ttl'] = (string)$foo['reason_ttl'];
- if(isset($foo['reason_ip'])){ $bar['state_reason_ip'] = (string)$foo['reason_ip'];}
-
- if($port->service)
- {
- $foo = $port->service->attributes();
- $bar['service'] = (string)$foo['name'];
- }
-
- $arr[$name] = $bar;
- }
- $result['hosts'][$addr] = $arr;
- }
-
- $result['scan']['numHosts'] = $count;
- return $result;
-
-} catch (ErrorException $e) {
- echo ("fail");
-}
-}
-
-?>
-</body>
-</html> \ No newline at end of file