-
Notifications
You must be signed in to change notification settings - Fork 58
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add Nikto boefje that scans for outdated software #3409
base: main
Are you sure you want to change the base?
Conversation
Co-authored-by: Jan Klopper <[email protected]>
Co-authored-by: Jan Klopper <[email protected]>
…ing_a_boefje.md Co-authored-by: Jan Klopper <[email protected]>
Co-authored-by: Jan Klopper <[email protected]>
"IPAddressV4", | ||
"IPAddressV6", | ||
"Hostname" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think it makes more sense to start Nikto on Ipports that we know are talking http/https.
This way we avoid nikto on services that are not webservers, or even better:
It looks like there's also a way to differentiate between different hostnames on the same IP, so scanning on websites could also make sense as that would provide the best data-set including any differences between ipv4 and ipv6 addresses or the same host. Use the cli argument -host+ for this combined with -nolookup to make sure we connect only to the ip and -port we provide with the hostname we want.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I have looked more into it and think using the OOI HostnameHTTPURL
would be perfect. It has a hostname, port, and scheme which has everything. I was not able to find information from IpPort
whether it was a webserver or not (unless you meant looking at the port's number).
-h+
is supposed to be an alias for -host+
although this is not specified in nikto's wiki. I will make sure to use -nolookup
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The boefje now makes use of HostnameHTTPURL
which tells the boefje whether its HTTP or HTTPS and contains a hostname as well.
In theory IPAddressHTTPURL
could also be used, I plan to add this once the boefje is satisfactory.
In the current example -nolookup
does not get used because I make use of the hostname.
Nikto boefje now consumes `HostnameHTTPURL` Fixed issue of perl not being able to handle https requests
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good in general. Just a suggestion about the variables
Changes
Added a Nikto boefje written in javascript and a normalizer that scans/reports webservers for outdated software.
This boefje also makes use of #3383 to create a finding without having to create a new normalizer. (which could be removed since a normalizer also gets added with this pr)
Demo
QA notes
After enabling the Nikto boefje and normalizer, create a
IPAddress
orHostname
HostnameHTTPURL
of a website and give it a clearance level of 3 or higher.After doing this a new task should be created which will scan for outdated software.
(When adding a hostname with the name
cynalytics.nl
you should get a finding of an outdated software.)Code Checklist
.env
changes files if required and changed the.env-dist
accordingly.Checklist for code reviewers:
Checklist for QA:
make reset
.feature
orhotfix
works as intended.What works:
What doesn't work:
Bug or feature?: