diff --git a/poc/examples/nmap.html b/poc/examples/nmap.html new file mode 100644 index 0000000..28d56ac --- /dev/null +++ b/poc/examples/nmap.html @@ -0,0 +1,41 @@ + + + + + Nmap + + + +
+
+ Nmap parameters +
+ + +

+ Can pass hostnames, IP addresses, networks, etc. e.g.: + scanme.nmap.org, microsoft.com/24, 192.168.0.1; + 10.0.0-255.1-254 +

+
+
+ + +

+ Only scan specified ports. e.g.: 22; 1-65535; + U:53,111,137,T:21-25,80,139,8080,S:9 +

+
+
+ + +
+
+
+ + diff --git a/poc/examples/nmap.pow b/poc/examples/nmap.pow new file mode 100644 index 0000000..168bb85 --- /dev/null +++ b/poc/examples/nmap.pow @@ -0,0 +1,55 @@ +#!/bin/bash + +# +# Copyright 2019 Banco Bilbao Vizcaya Argentaria, S.A. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +# +# Nmap produces an XML report, suitable for rendering in a web browser +# + +# Call examples: +# +# $ browser http://localhost:8080 +# +# $ curl -v http://localhost:8080/nmap.xml -d 'target_spec=127.0.0.1&port_ranges=9000' +# + +kapow route add -X GET / - <<-'EOF' + cat nmap.html | kapow set /response/body +EOF + +kapow route add -X GET /nmap.xsl - <<-'EOF' + curl --silent https://svn.nmap.org/nmap/docs/nmap.xsl \ + | kapow set /response/body +EOF + +kapow route add -X POST /nmap.xml - <<-'EOF' + + TARGET_SPEC=$(kapow get /request/form/target_spec) + : ${TARGET_SPEC:=127.0.0.1} + + PORT_RANGES=$(kapow get /request/form/port_ranges) + : ${PORT_RANGES:=8080} + + nmap \ + -Pn \ + -n \ + -p "$PORT_RANGES" \ + -oX - \ + --stylesheet /nmap.xsl \ + "$TARGET_SPEC" \ + | kapow set /response/body +EOF