blob: 699955e6dcd537ee922b00a01425cfcba90c3322 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
#!/bin/bash
while getopts "g:n:h" ARG; do
case "${ARG}" in
g)
parse="gnmap"
file="${OPTARG}"
;;
n)
parse="nmap"
file="${OPTARG}"
;;
esac
done
if ! test "${parse}" || ! test "${file}"; then
printf "%s\n" "usage: $(basename $0) -g <gnmap file> | -n <nmap file>"
exit 1
fi
if ! test -f "${file}"; then
printf "%s\n" "${file} is not a file, exiting"
exit 1
fi
case "${parse}" in
gnmap)
cat $file | awk '/Host:/ {
ip = $2
}
/\/open\/tcp\// {
for (i = 1; i <= NF; i++) {
if ($i ~ /^[0-9]+\/open\/tcp\//) {
print ip "|" $i
}
}
}
' | sed 's/\/\+/\//g' | awk -F '/' '{print $1"|"$4}'
;;
nmap)
cat $file | grep -v ^\# | awk -F'[ /]+' '
/Nmap scan report for/ {
host = $5
}
/^[0-9]+\// {
version = ""
for (i = 5; i <= NF; i++) {
version = version $i " "
}
printf("%s|%s|%s|%s\n", host, $1, $4, version)
}
'
;;
esac
|