Bin: Adds nessus compliance filter
This commit is contained in:
parent
4406c8407c
commit
6c09cc5c39
1 changed files with 32 additions and 0 deletions
32
bin/.bin/nessusComplianceFilter
Executable file
32
bin/.bin/nessusComplianceFilter
Executable file
|
@ -0,0 +1,32 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
die(){
|
||||||
|
echo "$@" > /dev/stderr
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
printhelp(){
|
||||||
|
echo "Nessus Compliance Filter"
|
||||||
|
echo "This command should be given a nessus xml file on stdin"
|
||||||
|
echo "Stdout will contain a tsv file for each compliance issue (not pass)"
|
||||||
|
echo "Positional Arguments can be given and each will regex match the Check Name"
|
||||||
|
echo ""
|
||||||
|
echo "e.g."
|
||||||
|
echo "cat example.nessus | nessusComplianceFilter \"^18.\" \"Defender\""
|
||||||
|
echo "will output a tsv containing all failures (or warnings) that start with '18.' and contain the word 'Defender'"
|
||||||
|
exit 0
|
||||||
|
}
|
||||||
|
|
||||||
|
type -p xq >/dev/null || die -e "You need to install xq\nhttps://github.com/kislyuk/yq"
|
||||||
|
|
||||||
|
[ "$1" = "-h" ] && printhelp
|
||||||
|
|
||||||
|
filters=""
|
||||||
|
|
||||||
|
while [ "$#" -gt 0 ]; do
|
||||||
|
filters="$filters | select( .\"cm:compliance-check-name\" | test(\"$1\"))"
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
|
||||||
|
echo "Compliance Check Compliance Result Current Expected"
|
||||||
|
cat - | xq -r ".NessusClientData_v2.Report.ReportHost.ReportItem[] | select(.compliance == \"true\") | select(.\"cm:compliance-result\" != \"PASSED\") $filters | [.\"cm:compliance-check-name\", .\"cm:compliance-result\", .\"cm:compliance-actual-value\", .\"cm:compliance-policy-value\"] | @tsv" | sort -V
|
Loading…
Add table
Add a link
Reference in a new issue