intrigue-ident 0.2 → 0.9.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.circleci/config.yml +21 -0
- data/.gitignore +3 -0
- data/.ruby-version +1 -0
- data/Dockerfile +39 -0
- data/Gemfile +10 -3
- data/Gemfile.lock +35 -20
- data/LICENSE.md +12 -0
- data/README.md +79 -0
- data/checks/ftp/base.rb +15 -0
- data/checks/ftp/filezilla.rb +28 -0
- data/checks/ftp/microsoft.rb +27 -0
- data/checks/ftp/proftp.rb +28 -0
- data/checks/ftp/pureftpd.rb +27 -0
- data/checks/ftp/vsftp.rb +28 -0
- data/checks/http/123reg.rb +31 -0
- data/checks/http/acme.rb +28 -0
- data/checks/http/acquia.rb +28 -0
- data/checks/http/adeptia.rb +30 -0
- data/checks/http/adobe.rb +168 -0
- data/checks/http/advantshop.rb +33 -0
- data/checks/http/afrihost.rb +29 -0
- data/checks/http/aftermarketpl.rb +46 -0
- data/checks/http/agility.rb +34 -0
- data/checks/http/akamai.rb +88 -0
- data/checks/http/alkacon.rb +30 -0
- data/checks/http/allegro.rb +28 -0
- data/checks/http/almuba.rb +30 -0
- data/checks/http/amazon.rb +263 -0
- data/checks/http/amirocms.rb +30 -0
- data/checks/http/anelectron.rb +29 -0
- data/checks/http/anquanbao.rb +32 -0
- data/checks/http/aol.rb +29 -0
- data/checks/http/apache.rb +358 -0
- data/checks/http/appdynamics.rb +43 -0
- data/checks/http/arris.rb +30 -0
- data/checks/http/artifactory.rb +30 -0
- data/checks/http/aruba.rb +27 -0
- data/checks/http/atlassian.rb +152 -0
- data/checks/http/auth0.rb +44 -0
- data/checks/http/automattic.rb +292 -0
- data/checks/http/axinom.rb +30 -0
- data/checks/http/axios.rb +29 -0
- data/checks/http/axis.rb +27 -0
- data/checks/http/axway.rb +33 -0
- data/checks/http/backdrop.rb +30 -0
- data/checks/http/banu.rb +30 -0
- data/checks/http/barracuda.rb +99 -0
- data/checks/http/base.rb +139 -0
- data/checks/http/beehive.rb +30 -0
- data/checks/http/bigcartel.rb +33 -0
- data/checks/http/bigcommerce.rb +33 -0
- data/checks/http/binarysec.rb +47 -0
- data/checks/http/bitly.rb +40 -0
- data/checks/http/blackboard.rb +44 -0
- data/checks/http/blueimp.rb +27 -0
- data/checks/http/bomgar.rb +27 -0
- data/checks/http/bootstrap.rb +27 -0
- data/checks/http/bower.rb +28 -0
- data/checks/http/broadcom.rb +29 -0
- data/checks/http/brocade.rb +39 -0
- data/checks/http/browsermedia.rb +29 -0
- data/checks/http/bsm.rb +29 -0
- data/checks/http/bynder.rb +31 -0
- data/checks/http/calibre.rb +33 -0
- data/checks/http/centos.rb +28 -0
- data/checks/http/cerberus.rb +28 -0
- data/checks/http/charity_engine.rb +27 -0
- data/checks/http/checkpoint.rb +56 -0
- data/checks/http/cherokee.rb +29 -0
- data/checks/http/cisco.rb +134 -0
- data/checks/http/citrix.rb +137 -0
- data/checks/http/cloud_city.rb +30 -0
- data/checks/http/cloudflare.rb +219 -0
- data/checks/http/cmsimple.rb +30 -0
- data/checks/http/codeigniter.rb +26 -0
- data/checks/http/communigate.rb +32 -0
- data/checks/http/concrete5.rb +30 -0
- data/checks/http/contenido.rb +33 -0
- data/checks/http/content/analytics.rb +40 -0
- data/checks/http/content/authentication.rb +111 -0
- data/checks/http/content/content.rb +92 -0
- data/checks/http/content/security_headers.rb +70 -0
- data/checks/http/cpanel.rb +56 -0
- data/checks/http/cradlepoint.rb +30 -0
- data/checks/http/craft.rb +42 -0
- data/checks/http/crazydomains.rb +31 -0
- data/checks/http/crowdstrike.rb +27 -0
- data/checks/http/dan.rb +30 -0
- data/checks/http/danneo.rb +30 -0
- data/checks/http/day.rb +31 -0
- data/checks/http/debian.rb +27 -0
- data/checks/http/dell.rb +43 -0
- data/checks/http/dev_php.rb +30 -0
- data/checks/http/discourse.rb +30 -0
- data/checks/http/discuz!.rb +30 -0
- data/checks/http/distil.rb +27 -0
- data/checks/http/django.rb +27 -0
- data/checks/http/dmanager.rb +29 -0
- data/checks/http/dns_made_easy.rb +29 -0
- data/checks/http/docuwiki.rb +27 -0
- data/checks/http/docverify.rb +29 -0
- data/checks/http/domain_parking_ru.rb +31 -0
- data/checks/http/domainname_shop.rb +30 -0
- data/checks/http/dosarrest.rb +29 -0
- data/checks/http/dreamhost.rb +31 -0
- data/checks/http/drupal.rb +91 -0
- data/checks/http/duo.rb +45 -0
- data/checks/http/dyn.rb +41 -0
- data/checks/http/dynamicweb.rb +29 -0
- data/checks/http/dynatrace.rb +40 -0
- data/checks/http/easyname.rb +44 -0
- data/checks/http/eclipse.rb +64 -0
- data/checks/http/enservio.rb +29 -0
- data/checks/http/envoy.rb +26 -0
- data/checks/http/epiccom.rb +31 -0
- data/checks/http/ergon.rb +31 -0
- data/checks/http/expressjs.rb +27 -0
- data/checks/http/ezproxy.rb +28 -0
- data/checks/http/f5.rb +122 -0
- data/checks/http/facebook.rb +27 -0
- data/checks/http/fastly.rb +67 -0
- data/checks/http/first_domains.rb +31 -0
- data/checks/http/flywheel.rb +30 -0
- data/checks/http/forgerock.rb +43 -0
- data/checks/http/fortinet.rb +29 -0
- data/checks/http/fresh_service.rb +30 -0
- data/checks/http/frontify.rb +29 -0
- data/checks/http/generic.rb +272 -0
- data/checks/http/github.rb +40 -0
- data/checks/http/gitlab.rb +30 -0
- data/checks/http/glimpse.rb +32 -0
- data/checks/http/globalscape.rb +27 -0
- data/checks/http/goahead.rb +31 -0
- data/checks/http/godaddy.rb +31 -0
- data/checks/http/google.rb +164 -0
- data/checks/http/google_cloud.rb +27 -0
- data/checks/http/grafana.rb +27 -0
- data/checks/http/gunicorn.rb +30 -0
- data/checks/http/haskell.rb +31 -0
- data/checks/http/heroku.rb +77 -0
- data/checks/http/hikvision.rb +29 -0
- data/checks/http/hp.rb +27 -0
- data/checks/http/hubspot.rb +104 -0
- data/checks/http/ibm.rb +182 -0
- data/checks/http/icewarp.rb +29 -0
- data/checks/http/impresspages.rb +30 -0
- data/checks/http/imunify360.rb +28 -0
- data/checks/http/incapsula.rb +54 -0
- data/checks/http/ingram_micro.rb +28 -0
- data/checks/http/innovative_interfaces_inc.rb +27 -0
- data/checks/http/inside_sales.rb +27 -0
- data/checks/http/instra.rb +61 -0
- data/checks/http/intercom.rb +27 -0
- data/checks/http/ivanti.rb +28 -0
- data/checks/http/jamf.rb +31 -0
- data/checks/http/jekyll.rb +31 -0
- data/checks/http/jenkins.rb +59 -0
- data/checks/http/jetbrains.rb +27 -0
- data/checks/http/jetty.rb +27 -0
- data/checks/http/jforum.rb +27 -0
- data/checks/http/jitbit.rb +30 -0
- data/checks/http/jive.rb +27 -0
- data/checks/http/joomla.rb +43 -0
- data/checks/http/jquery.rb +58 -0
- data/checks/http/jupyter.rb +28 -0
- data/checks/http/kentico.rb +27 -0
- data/checks/http/kerio.rb +34 -0
- data/checks/http/kibana.rb +56 -0
- data/checks/http/kong.rb +32 -0
- data/checks/http/kubernetes.rb +66 -0
- data/checks/http/laravel.rb +27 -0
- data/checks/http/lastpass.rb +27 -0
- data/checks/http/lcn.rb +27 -0
- data/checks/http/leadpages.rb +29 -0
- data/checks/http/lighttpd.rb +31 -0
- data/checks/http/limelight_networks.rb +43 -0
- data/checks/http/limesuvey.rb +27 -0
- data/checks/http/link1.rb +31 -0
- data/checks/http/linksys.rb +38 -0
- data/checks/http/litespeed.rb +29 -0
- data/checks/http/lithium.rb +43 -0
- data/checks/http/lotus.rb +55 -0
- data/checks/http/magento.rb +96 -0
- data/checks/http/magnolia.rb +27 -0
- data/checks/http/mailchimp.rb +27 -0
- data/checks/http/manage_engine.rb +27 -0
- data/checks/http/markmonitor.rb +27 -0
- data/checks/http/mbf_bioscience.rb +29 -0
- data/checks/http/mcafee.rb +27 -0
- data/checks/http/media_temple.rb +27 -0
- data/checks/http/mediawiki.rb +54 -0
- data/checks/http/mhcsoftwareinc.rb +29 -0
- data/checks/http/microsoft.rb +1325 -0
- data/checks/http/mikrotik.rb +44 -0
- data/checks/http/modwsgi.rb +30 -0
- data/checks/http/mojolicious.rb +32 -0
- data/checks/http/moodle.rb +28 -0
- data/checks/http/mura.rb +30 -0
- data/checks/http/nagios.rb +27 -0
- data/checks/http/namesilo.rb +31 -0
- data/checks/http/nationbuilder.rb +30 -0
- data/checks/http/nec.rb +32 -0
- data/checks/http/netlify.rb +40 -0
- data/checks/http/netobjects_inc.rb +30 -0
- data/checks/http/netscape.rb +29 -0
- data/checks/http/neustar.rb +29 -0
- data/checks/http/new_relic.rb +27 -0
- data/checks/http/nexicom.rb +44 -0
- data/checks/http/nginx.rb +82 -0
- data/checks/http/nisource.rb +29 -0
- data/checks/http/nodejs.rb +79 -0
- data/checks/http/okta.rb +53 -0
- data/checks/http/ookla.rb +28 -0
- data/checks/http/openbsd.rb +30 -0
- data/checks/http/openresty.rb +41 -0
- data/checks/http/openscholar.rb +27 -0
- data/checks/http/opensolution.rb +46 -0
- data/checks/http/openssl.rb +43 -0
- data/checks/http/opentext.rb +46 -0
- data/checks/http/openvpn.rb +27 -0
- data/checks/http/opscode.rb +43 -0
- data/checks/http/oracle.rb +335 -0
- data/checks/http/orion_technology.rb +30 -0
- data/checks/http/ovh.rb +46 -0
- data/checks/http/palo_alto.rb +27 -0
- data/checks/http/pantheon.rb +54 -0
- data/checks/http/papercut.rb +29 -0
- data/checks/http/parallels.rb +44 -0
- data/checks/http/pardot.rb +44 -0
- data/checks/http/parkingcrew.rb +47 -0
- data/checks/http/pbworks.rb +27 -0
- data/checks/http/perfectsense.rb +28 -0
- data/checks/http/perl.rb +62 -0
- data/checks/http/pfsense.rb +27 -0
- data/checks/http/php.rb +72 -0
- data/checks/http/phpmyadmin.rb +40 -0
- data/checks/http/phpwind.rb +30 -0
- data/checks/http/phusion.rb +59 -0
- data/checks/http/ping_identity.rb +28 -0
- data/checks/http/pivotal_software.rb +97 -0
- data/checks/http/pjax.rb +40 -0
- data/checks/http/plesk.rb +58 -0
- data/checks/http/porkbun.rb +31 -0
- data/checks/http/progress.rb +30 -0
- data/checks/http/proofpoint.rb +30 -0
- data/checks/http/pulsesecure.rb +91 -0
- data/checks/http/python.rb +30 -0
- data/checks/http/qnap.rb +43 -0
- data/checks/http/qualys.rb +69 -0
- data/checks/http/rapid7.rb +27 -0
- data/checks/http/rbs.rb +30 -0
- data/checks/http/readmeio.rb +28 -0
- data/checks/http/red_hat.rb +95 -0
- data/checks/http/redmine.rb +38 -0
- data/checks/http/restlet.rb +30 -0
- data/checks/http/ritecms.rb +30 -0
- data/checks/http/roadiz.rb +30 -0
- data/checks/http/rock.rb +30 -0
- data/checks/http/rollbar.rb +27 -0
- data/checks/http/roundcube.rb +42 -0
- data/checks/http/ruby.rb +92 -0
- data/checks/http/ruckus_wireless.rb +26 -0
- data/checks/http/sailpoint.rb +30 -0
- data/checks/http/salesforce.rb +28 -0
- data/checks/http/sap.rb +149 -0
- data/checks/http/seamless_cms.rb +30 -0
- data/checks/http/securi.rb +54 -0
- data/checks/http/sedo.rb +63 -0
- data/checks/http/segment.rb +27 -0
- data/checks/http/sencha.rb +31 -0
- data/checks/http/sentry.rb +27 -0
- data/checks/http/serendipity.rb +30 -0
- data/checks/http/shopfactory.rb +30 -0
- data/checks/http/sip.rb +29 -0
- data/checks/http/sitecore.rb +39 -0
- data/checks/http/smartling.rb +27 -0
- data/checks/http/smf.rb +30 -0
- data/checks/http/snews.rb +30 -0
- data/checks/http/software_ag.rb +47 -0
- data/checks/http/soha.rb +66 -0
- data/checks/http/solarwinds.rb +41 -0
- data/checks/http/sonatype.rb +43 -0
- data/checks/http/sonicwall.rb +63 -0
- data/checks/http/sophos.rb +40 -0
- data/checks/http/southriver.rb +43 -0
- data/checks/http/splash.rb +29 -0
- data/checks/http/splunk.rb +27 -0
- data/checks/http/springfox.rb +43 -0
- data/checks/http/squarespace.rb +41 -0
- data/checks/http/stackpath.rb +29 -0
- data/checks/http/stibo_systems.rb +35 -0
- data/checks/http/subrion.rb +29 -0
- data/checks/http/symantec.rb +27 -0
- data/checks/http/synacor.rb +26 -0
- data/checks/http/tableau_software.rb +42 -0
- data/checks/http/telerik.rb +46 -0
- data/checks/http/tengine.rb +29 -0
- data/checks/http/tibco.rb +57 -0
- data/checks/http/townnews.rb +33 -0
- data/checks/http/tridium.rb +28 -0
- data/checks/http/twiki.rb +27 -0
- data/checks/http/typo3.rb +27 -0
- data/checks/http/uberflip.rb +28 -0
- data/checks/http/ucoz.rb +31 -0
- data/checks/http/umbraco.rb +29 -0
- data/checks/http/unbounce.rb +28 -0
- data/checks/http/united_domains.rb +27 -0
- data/checks/http/vanilla_forums.rb +27 -0
- data/checks/http/varnish.rb +79 -0
- data/checks/http/vbulletin.rb +66 -0
- data/checks/http/verizon.rb +27 -0
- data/checks/http/vmware.rb +53 -0
- data/checks/http/vue_js.rb +27 -0
- data/checks/http/webflow.rb +44 -0
- data/checks/http/webgui.rb +30 -0
- data/checks/http/webmin.rb +44 -0
- data/checks/http/webpagetest_project.rb +30 -0
- data/checks/http/wftpserver.rb +28 -0
- data/checks/http/wildfly.rb +29 -0
- data/checks/http/wix.rb +28 -0
- data/checks/http/woltlab_gmbh.rb +30 -0
- data/checks/http/wordpress/ithemes.rb +50 -0
- data/checks/http/wordpress/john_godley.rb +29 -0
- data/checks/http/wordpress/pixelcraft.rb +31 -0
- data/checks/http/wordpress/rocklobster.rb +29 -0
- data/checks/http/wordpress/team_heateor.rb +31 -0
- data/checks/http/wordpress/w3_total_cache.rb +30 -0
- data/checks/http/wordpress/wp_fastest_cache.rb +30 -0
- data/checks/http/wordpress/wp_super_cache.rb +46 -0
- data/checks/http/wordpress/wpbakery.rb +30 -0
- data/checks/http/world4you.rb +46 -0
- data/checks/http/wp_engine.rb +57 -0
- data/checks/http/xcms.rb +30 -0
- data/checks/http/xelion.rb +27 -0
- data/checks/http/xerox.rb +27 -0
- data/checks/http/xmb.rb +30 -0
- data/checks/http/xtec.rb +30 -0
- data/checks/http/yaf.rb +30 -0
- data/checks/http/yaws.rb +30 -0
- data/checks/http/yoast.rb +31 -0
- data/checks/http/zeit.rb +30 -0
- data/checks/http/zendesk.rb +41 -0
- data/checks/http/zengenti.rb +30 -0
- data/checks/http/zoho.rb +69 -0
- data/checks/http/zscaler.rb +30 -0
- data/checks/smtp/base.rb +16 -0
- data/checks/smtp/exim.rb +30 -0
- data/checks/snmp/base.rb +15 -0
- data/checks/snmp/cisco.rb +59 -0
- data/checks/ssh/array_networks.rb +28 -0
- data/checks/ssh/base.rb +16 -0
- data/checks/ssh/openssh.rb +26 -0
- data/checks/telnet/base.rb +16 -0
- data/checks/telnet/huawei.rb +26 -0
- data/data/logos/acquia.png +0 -0
- data/data/logos/amazon_cloudfront.png +0 -0
- data/data/logos/apache_coyote.png +0 -0
- data/data/logos/apache_tomcat.png +0 -0
- data/data/logos/atlassian_bamboo.png +0 -0
- data/data/logos/atlassian_bitbucket.png +0 -0
- data/data/logos/atlassian_confluence.png +0 -0
- data/data/logos/atlassian_crowd.png +0 -0
- data/data/logos/atlassian_crucible.png +0 -0
- data/data/logos/atlassian_fisheye.png +0 -0
- data/data/logos/atlassian_jira.png +0 -0
- data/data/logos/atlassian_sourcetree.png +0 -0
- data/data/logos/automattic_wordpress.png +0 -0
- data/data/logos/calibre.png +0 -0
- data/data/logos/cisco_ssl_vpn.png +0 -0
- data/data/logos/citrix_netscaler_gateway.png +0 -0
- data/data/logos/cloudflare_cdn.png +0 -0
- data/data/logos/drupal.png +0 -0
- data/data/logos/f5_big-ip.png +0 -0
- data/data/logos/f5_big-ip_apm.png +0 -0
- data/data/logos/fastly.png +0 -0
- data/data/logos/generic.png +0 -0
- data/data/logos/gitlab.png +0 -0
- data/data/logos/ibm_axway_securetransport.png +0 -0
- data/data/logos/lithium.png +0 -0
- data/data/logos/microsoft_asp.net.png +0 -0
- data/data/logos/microsoft_iis.png +0 -0
- data/data/logos/microsoft_outlook_web_access.png +0 -0
- data/data/logos/microsoft_sharepoint.png +0 -0
- data/data/logos/microtik_routeros.png +0 -0
- data/data/logos/mikrotik_routeros.png +0 -0
- data/data/logos/newrelic.png +0 -0
- data/data/logos/nginx.png +0 -0
- data/data/logos/okta.png +0 -0
- data/data/logos/oracle_glassfish.png +0 -0
- data/data/logos/oracle_java_application_server.png +0 -0
- data/data/logos/oracle_java_server_pages.png +0 -0
- data/data/logos/oracle_weblogic.png +0 -0
- data/data/logos/phpmyadmin.png +0 -0
- data/data/logos/tableau.png +0 -0
- data/data/logos/vmware_esxi.png +0 -0
- data/data/logos/vmware_horizon.png +0 -0
- data/data/logos/zendesk.png +0 -0
- data/data/logos/zimbra_server.png +0 -0
- data/data/microsoft_sharepoint_versions.csv +224 -0
- data/intrigue-ident.gemspec +8 -7
- data/lib/banner_helpers.rb +36 -0
- data/lib/ftp/check_factory.rb +24 -0
- data/lib/ftp/content.rb +13 -0
- data/lib/ftp/ftp.rb +52 -0
- data/lib/ftp/matchers.rb +26 -0
- data/lib/http/browser.rb +260 -0
- data/lib/http/check_factory.rb +47 -0
- data/lib/http/content.rb +45 -0
- data/lib/http/http.rb +463 -0
- data/lib/http/matchers.rb +132 -0
- data/lib/ident.rb +263 -0
- data/lib/recog_wrapper.rb +70 -0
- data/lib/simple_socket.rb +41 -0
- data/lib/smtp/check_factory.rb +24 -0
- data/lib/smtp/content.rb +13 -0
- data/lib/smtp/matchers.rb +28 -0
- data/lib/smtp/smtp.rb +53 -0
- data/lib/snmp/check_factory.rb +24 -0
- data/lib/snmp/content.rb +13 -0
- data/lib/snmp/matchers.rb +25 -0
- data/lib/snmp/snmp.rb +55 -0
- data/lib/ssh/check_factory.rb +24 -0
- data/lib/ssh/content.rb +13 -0
- data/lib/ssh/matchers.rb +26 -0
- data/lib/ssh/ssh.rb +52 -0
- data/lib/telnet/check_factory.rb +24 -0
- data/lib/telnet/content.rb +13 -0
- data/lib/telnet/matchers.rb +26 -0
- data/lib/telnet/telnet.rb +52 -0
- data/lib/utils.rb +19 -0
- data/lib/version.rb +3 -0
- data/lib/vulndb_client.rb +43 -0
- data/util/console.rb +9 -0
- data/util/docker.sh +2 -0
- data/util/ident.rb +375 -0
- data/util/list_paths.rb +12 -0
- data/util/tags.rb +36 -0
- data/utils.rb +19 -0
- metadata +487 -55
- data/ident.rb +0 -319
- data/lib/check_factory.rb +0 -22
- data/lib/checks/akamai.rb +0 -22
- data/lib/checks/amazon.rb +0 -26
- data/lib/checks/aruba.rb +0 -20
- data/lib/checks/asp_net.rb +0 -70
- data/lib/checks/atlassian.rb +0 -55
- data/lib/checks/base.rb +0 -13
- data/lib/checks/chef.rb +0 -31
- data/lib/checks/cisco.rb +0 -33
- data/lib/checks/citrix.rb +0 -24
- data/lib/checks/cloudflare.rb +0 -59
- data/lib/checks/cloudfront.rb +0 -41
- data/lib/checks/cpanel.rb +0 -23
- data/lib/checks/django.rb +0 -22
- data/lib/checks/drupal.rb +0 -26
- data/lib/checks/f5.rb +0 -24
- data/lib/checks/fastly.rb +0 -22
- data/lib/checks/generic.rb +0 -23
- data/lib/checks/gitlab.rb +0 -22
- data/lib/checks/google.rb +0 -23
- data/lib/checks/grafana.rb +0 -22
- data/lib/checks/jenkins.rb +0 -40
- data/lib/checks/joomla.rb +0 -23
- data/lib/checks/limesuvey.rb +0 -22
- data/lib/checks/lithium.rb +0 -30
- data/lib/checks/magento.rb +0 -22
- data/lib/checks/mcafee.rb +0 -22
- data/lib/checks/mediawiki.rb +0 -38
- data/lib/checks/microsoft.rb +0 -69
- data/lib/checks/nagios.rb +0 -22
- data/lib/checks/oracle.rb +0 -38
- data/lib/checks/palo_alto.rb +0 -23
- data/lib/checks/pardot.rb +0 -22
- data/lib/checks/pfsense.rb +0 -25
- data/lib/checks/phpmyadmin.rb +0 -22
- data/lib/checks/rabbitmq.rb +0 -29
- data/lib/checks/spring.rb +0 -31
- data/lib/checks/team_city.rb +0 -22
- data/lib/checks/telerik.rb +0 -25
- data/lib/checks/tomcat.rb +0 -22
- data/lib/checks/varnish.rb +0 -27
- data/lib/checks/wordpress.rb +0 -120
- data/lib/checks/wp_engine.rb +0 -22
@@ -0,0 +1,27 @@
|
|
1
|
+
module Intrigue
|
2
|
+
module Ident
|
3
|
+
module Check
|
4
|
+
class Mailchimp < Intrigue::Ident::Check::Base
|
5
|
+
|
6
|
+
def generate_checks(url)
|
7
|
+
[
|
8
|
+
{
|
9
|
+
:type => "fingerprint",
|
10
|
+
:category => "service",
|
11
|
+
:tags => ["Marketing", "SaaS"],
|
12
|
+
:vendor => "Mailchimp",
|
13
|
+
:product =>"Mandrill",
|
14
|
+
:match_details =>"login page",
|
15
|
+
:match_type => :content_title,
|
16
|
+
:version => nil,
|
17
|
+
:match_content => /Log in to Mandrill/i,
|
18
|
+
:paths => ["#{url}"],
|
19
|
+
:inference => false
|
20
|
+
}
|
21
|
+
]
|
22
|
+
end
|
23
|
+
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
module Intrigue
|
2
|
+
module Ident
|
3
|
+
module Check
|
4
|
+
class ManageEngine < Intrigue::Ident::Check::Base
|
5
|
+
|
6
|
+
def generate_checks(url)
|
7
|
+
[
|
8
|
+
{
|
9
|
+
:type => "fingerprint",
|
10
|
+
:category => "application",
|
11
|
+
:tags => [""],
|
12
|
+
:vendor =>"ManageEngine",
|
13
|
+
:product =>"ServiceDesk Plus",
|
14
|
+
:match_details =>"cookie",
|
15
|
+
:version => nil,
|
16
|
+
:match_type => :content_cookies,
|
17
|
+
:match_content => /SDPSESSIONID=/i,
|
18
|
+
:paths => ["#{url}"],
|
19
|
+
:inference => false
|
20
|
+
}
|
21
|
+
]
|
22
|
+
end
|
23
|
+
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
module Intrigue
|
2
|
+
module Ident
|
3
|
+
module Check
|
4
|
+
class Markmonitor < Intrigue::Ident::Check::Base
|
5
|
+
|
6
|
+
def generate_checks(url)
|
7
|
+
[
|
8
|
+
{
|
9
|
+
:type => "fingerprint",
|
10
|
+
:category => "service",
|
11
|
+
:tags => ["Parked"],
|
12
|
+
:vendor => "MarkMonitor",
|
13
|
+
:product => "MarkMonitor",
|
14
|
+
:website => "https://markmonitor.com/",
|
15
|
+
:version => nil,
|
16
|
+
:match_type => :content_title,
|
17
|
+
:match_content => /^Registered & Protected by MarkMonitor$/i,
|
18
|
+
:paths => ["#{url}"],
|
19
|
+
:inference => false
|
20
|
+
}
|
21
|
+
]
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
@@ -0,0 +1,29 @@
|
|
1
|
+
module Intrigue
|
2
|
+
module Ident
|
3
|
+
module Check
|
4
|
+
class MbfBioscience < Intrigue::Ident::Check::Base
|
5
|
+
|
6
|
+
def generate_checks(url)
|
7
|
+
[
|
8
|
+
{
|
9
|
+
:type => "fingerprint",
|
10
|
+
:category => "operating_system",
|
11
|
+
:tags => ["COTS"],
|
12
|
+
:vendor => "MBF Bioscience",
|
13
|
+
:product => "Biolucidia",
|
14
|
+
:match_details =>"header",
|
15
|
+
:version => nil,
|
16
|
+
:references => ["https://www.mbfbioscience.com/biolucida"],
|
17
|
+
:match_type => :content_headers,
|
18
|
+
:match_content => /^x-biolucida-webapp: true$/,
|
19
|
+
:paths => ["#{url}"],
|
20
|
+
:examples => ["x-biolucida-webapp: true"],
|
21
|
+
:inference => false
|
22
|
+
}
|
23
|
+
]
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
module Intrigue
|
2
|
+
module Ident
|
3
|
+
module Check
|
4
|
+
class Mcafee < Intrigue::Ident::Check::Base
|
5
|
+
|
6
|
+
def generate_checks(url)
|
7
|
+
[
|
8
|
+
{
|
9
|
+
:type => "fingerprint",
|
10
|
+
:category => "application",
|
11
|
+
:tags => ["Administrative","COTS"],
|
12
|
+
:vendor => "McAfee",
|
13
|
+
:product =>"EPolicy Orchestrator",
|
14
|
+
:match_details =>"McAfee EPolicy Orchestrator",
|
15
|
+
:match_type => :content_body,
|
16
|
+
:version => nil,
|
17
|
+
:match_content => /McAfee Agent Activity Log/i,
|
18
|
+
:paths => ["#{url}"],
|
19
|
+
:inference => false
|
20
|
+
}
|
21
|
+
]
|
22
|
+
end
|
23
|
+
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
module Intrigue
|
2
|
+
module Ident
|
3
|
+
module Check
|
4
|
+
class MediaTemple < Intrigue::Ident::Check::Base
|
5
|
+
|
6
|
+
def generate_checks(url)
|
7
|
+
[
|
8
|
+
{
|
9
|
+
:type => "fingerprint",
|
10
|
+
:category => "service",
|
11
|
+
:tags => ["SaaS"],
|
12
|
+
:vendor =>"MediaTemple",
|
13
|
+
:product =>"MediaTemple",
|
14
|
+
:match_details =>"default string in title",
|
15
|
+
:match_type => :content_title,
|
16
|
+
:version => nil,
|
17
|
+
:match_content => /Business-Class Web Hosting by \(mt\) Media Temple/,
|
18
|
+
:paths => ["#{url}"],
|
19
|
+
:inference => false
|
20
|
+
}
|
21
|
+
]
|
22
|
+
end
|
23
|
+
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,54 @@
|
|
1
|
+
module Intrigue
|
2
|
+
module Ident
|
3
|
+
module Check
|
4
|
+
class MediaWiki < Intrigue::Ident::Check::Base
|
5
|
+
|
6
|
+
def generate_checks(url)
|
7
|
+
[
|
8
|
+
{
|
9
|
+
:type => "fingerprint",
|
10
|
+
:category => "application",
|
11
|
+
:tags => ["COTS", "CMS"],
|
12
|
+
:vendor =>"MediaWiki",
|
13
|
+
:product =>"MediaWiki",
|
14
|
+
:match_details =>"powered by tag",
|
15
|
+
:match_type => :content_body,
|
16
|
+
:version => nil,
|
17
|
+
:match_content => /<a href="\/\/www.mediawiki.org\/">Powered by MediaWiki<\/a>/,
|
18
|
+
:paths => ["#{url}"],
|
19
|
+
:inference => false
|
20
|
+
},
|
21
|
+
{
|
22
|
+
:type => "fingerprint",
|
23
|
+
:category => "application",
|
24
|
+
:tags => ["COTS", "CMS"],
|
25
|
+
:vendor =>"MediaWiki",
|
26
|
+
:product =>"MediaWiki",
|
27
|
+
:match_details =>"powered by tag",
|
28
|
+
:match_type => :content_body,
|
29
|
+
:version => nil,
|
30
|
+
:match_content => /poweredby_mediawiki/,
|
31
|
+
:paths => ["#{url}"],
|
32
|
+
:inference => false
|
33
|
+
},
|
34
|
+
{
|
35
|
+
:type => "fingerprint",
|
36
|
+
:category => "application",
|
37
|
+
:tags => ["COTS", "CMS"],
|
38
|
+
:vendor =>"MediaWiki",
|
39
|
+
:product =>"MediaWiki",
|
40
|
+
:match_details =>"generator tag",
|
41
|
+
:match_type => :content_body,
|
42
|
+
:match_content => /<meta name=\"generator\" content=\"MediaWiki/,
|
43
|
+
:version => nil,
|
44
|
+
:dynamic_version => lambda { |x| _first_body_capture(x,/<meta name=\"generator\" content=\"MediaWiki\ (.*?)\"\/>/) },
|
45
|
+
:paths => ["#{url}"],
|
46
|
+
:inference => true
|
47
|
+
}
|
48
|
+
]
|
49
|
+
end
|
50
|
+
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
module Intrigue
|
2
|
+
module Ident
|
3
|
+
module Check
|
4
|
+
class MHCSoftwareInc < Intrigue::Ident::Check::Base
|
5
|
+
|
6
|
+
def generate_checks(url)
|
7
|
+
[
|
8
|
+
{
|
9
|
+
:type => "fingerprint",
|
10
|
+
:category => "application",
|
11
|
+
:tags => ["COTS", "Web Server"],
|
12
|
+
:vendor => "MHCSoftwareInc",
|
13
|
+
:product => "Document Self-Service",
|
14
|
+
:references => ["https://www.mhcsoftwareinc.com/platform/application-suites/document-self-service/"],
|
15
|
+
:version => nil,
|
16
|
+
:match_type => :content_headers,
|
17
|
+
:match_content => /^server:\ DSS WebServer\/(\d\.\d)$/i,
|
18
|
+
:dynamic_version => lambda { |x|
|
19
|
+
_first_header_capture(x,/^server:\ DSS WebServer\/(\d\.\d)$/i) },
|
20
|
+
:hide => false,
|
21
|
+
:paths => ["#{url}"],
|
22
|
+
:inference => true
|
23
|
+
}
|
24
|
+
]
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,1325 @@
|
|
1
|
+
module Intrigue
|
2
|
+
module Ident
|
3
|
+
module Check
|
4
|
+
class Microsoft < Intrigue::Ident::Check::Base
|
5
|
+
|
6
|
+
def generate_checks(url)
|
7
|
+
[
|
8
|
+
{
|
9
|
+
:type => "fingerprint",
|
10
|
+
:category => "application",
|
11
|
+
:tags => ["Web Framework"],
|
12
|
+
:vendor => "Microsoft",
|
13
|
+
:product =>"ASP.NET Default Application",
|
14
|
+
:match_details =>"unique string",
|
15
|
+
:version => nil,
|
16
|
+
:match_type => :content_title,
|
17
|
+
:match_content => /Home Page - My ASP.NET Application/i,
|
18
|
+
:paths => ["#{url}"],
|
19
|
+
:inference => false
|
20
|
+
},
|
21
|
+
{
|
22
|
+
:type => "fingerprint",
|
23
|
+
:category => "application",
|
24
|
+
:tags => ["Web Framework"],
|
25
|
+
:vendor => "Microsoft",
|
26
|
+
:product =>"ASP.NET",
|
27
|
+
:version => nil,
|
28
|
+
:match_type => :content_cookies,
|
29
|
+
:match_content => /AspNetCore.Antiforgery/i,
|
30
|
+
:match_details =>"ASP.Net Antiforgery cookie",
|
31
|
+
:paths => ["#{url}"],
|
32
|
+
:inference => false
|
33
|
+
},
|
34
|
+
{
|
35
|
+
:type => "fingerprint",
|
36
|
+
:category => "application",
|
37
|
+
:tags => ["Web Framework"],
|
38
|
+
:vendor => "Microsoft",
|
39
|
+
:product =>"ASP.NET",
|
40
|
+
:version => nil,
|
41
|
+
:dynamic_version => lambda{|x|
|
42
|
+
_first_body_capture(x,/ASP.NET Version:\ ([\d\.]*)/i)},
|
43
|
+
:match_type => :content_body,
|
44
|
+
:match_content => /^.*ASP.NET is configured*$/i,
|
45
|
+
:match_details =>"ASP.Net Error Message",
|
46
|
+
:paths => ["#{url}", "#{url}/doesntexist-123" ],
|
47
|
+
:inference => false
|
48
|
+
},
|
49
|
+
{
|
50
|
+
:type => "fingerprint",
|
51
|
+
:category => "application",
|
52
|
+
:tags => ["Web Framework"],
|
53
|
+
:vendor => "Microsoft",
|
54
|
+
:product =>"ASP.NET",
|
55
|
+
:version => nil,
|
56
|
+
:dynamic_version => lambda{ |x|
|
57
|
+
_first_header_capture(x,/^x-aspnet-version:\ ([\d\.]*)/i) },
|
58
|
+
:match_type => :content_headers,
|
59
|
+
:match_content => /^x-aspnet-version:.*$/i,
|
60
|
+
:match_details =>"X-AspNet Header",
|
61
|
+
:paths => ["#{url}"],
|
62
|
+
:inference => false
|
63
|
+
},
|
64
|
+
{
|
65
|
+
:type => "fingerprint",
|
66
|
+
:category => "application",
|
67
|
+
:tags => ["Web Framework"],
|
68
|
+
:vendor => "Microsoft",
|
69
|
+
:product =>"ASP.NET",
|
70
|
+
:match_details =>"Asp.Net Cookie",
|
71
|
+
:version => nil,
|
72
|
+
:match_type => :content_cookies,
|
73
|
+
:match_content => /ASPSESSIONID.*$/i,
|
74
|
+
:paths => ["#{url}"],
|
75
|
+
:inference => false
|
76
|
+
},
|
77
|
+
{
|
78
|
+
:type => "fingerprint",
|
79
|
+
:category => "application",
|
80
|
+
:tags => ["Web Framework"],
|
81
|
+
:vendor => "Microsoft",
|
82
|
+
:product =>"ASP.NET",
|
83
|
+
:match_details =>"Asp.Net Default Cookie",
|
84
|
+
:version => nil,
|
85
|
+
:match_type => :content_cookies,
|
86
|
+
:match_content => /ASP.NET_SessionId.*$/i,
|
87
|
+
:paths => ["#{url}"],
|
88
|
+
:inference => false
|
89
|
+
},
|
90
|
+
{
|
91
|
+
:type => "fingerprint",
|
92
|
+
:category => "application",
|
93
|
+
:tags => ["Web Framework"],
|
94
|
+
:vendor => "Microsoft",
|
95
|
+
:product =>"ASP.NET",
|
96
|
+
:match_details =>"ASPXAUTH cookie",
|
97
|
+
:version => nil,
|
98
|
+
:references => [
|
99
|
+
"https://www.sitefinity.com/developer-network/forums/developing-with-sitefinity-/claims-auth---aspxauth-cookie-remains"
|
100
|
+
],
|
101
|
+
:match_type => :content_cookies,
|
102
|
+
:match_content => /ASPXAUTH=/i,
|
103
|
+
:paths => ["#{url}"],
|
104
|
+
:inference => false
|
105
|
+
},
|
106
|
+
{
|
107
|
+
:type => "fingerprint",
|
108
|
+
:category => "application",
|
109
|
+
:tags => ["Web Framework"],
|
110
|
+
:vendor => "Microsoft",
|
111
|
+
:product =>"ASP.NET MVC",
|
112
|
+
:match_details =>"ASP.Net MVC Header",
|
113
|
+
:version => nil,
|
114
|
+
:dynamic_version => lambda{ |x|
|
115
|
+
_first_header_capture(x,/^x-aspnetmvc-version:\s([\d\.]+)/i) },
|
116
|
+
:match_type => :content_headers,
|
117
|
+
:match_content => /x-aspnetmvc-version/i,
|
118
|
+
:paths => ["#{url}"],
|
119
|
+
:inference => true
|
120
|
+
},
|
121
|
+
#{
|
122
|
+
# TODO. Not the same as MVC version
|
123
|
+
# :type => "fingerprint",
|
124
|
+
# :category => "application",
|
125
|
+
# :tags => ["Web Framework"],
|
126
|
+
# :vendor => "Microsoft",
|
127
|
+
# :product =>"ASP.NET Core",
|
128
|
+
# :match_details =>"Asp.Net MVC Header",
|
129
|
+
# :version => nil,
|
130
|
+
# :dynamic_version => lambda{ |x|
|
131
|
+
# _first_header_capture(x,/^x-aspnetmvc-version:\s([\d\.]+)/i) },
|
132
|
+
# :match_type => :content_headers,
|
133
|
+
# :match_content => /x-aspnetmvc-version/i,
|
134
|
+
# :paths => ["#{url}"],
|
135
|
+
# :inference => true
|
136
|
+
#},
|
137
|
+
{
|
138
|
+
:type => "fingerprint",
|
139
|
+
:category => "application",
|
140
|
+
:tags => ["Web Framework"],
|
141
|
+
:vendor => "Microsoft",
|
142
|
+
:product =>"ASP.NET",
|
143
|
+
:match_details => "WebResource.axd link in the page",
|
144
|
+
:version => nil,
|
145
|
+
:match_type => :content_body,
|
146
|
+
:match_content => /WebResource.axd?d=/i,
|
147
|
+
:paths => ["#{url}"],
|
148
|
+
:inference => false
|
149
|
+
},
|
150
|
+
{
|
151
|
+
:type => "fingerprint",
|
152
|
+
:category => "application",
|
153
|
+
:tags => ["Web Framework"],
|
154
|
+
:vendor => "Microsoft",
|
155
|
+
:product =>"ASP.NET",
|
156
|
+
:match_details =>"unique viewstate string",
|
157
|
+
:version => nil,
|
158
|
+
:match_type => :content_body,
|
159
|
+
:match_content => /__VIEWSTATEGENERATOR/i,
|
160
|
+
:paths => ["#{url}"],
|
161
|
+
:inference => false
|
162
|
+
},
|
163
|
+
{
|
164
|
+
:depends => [{:product => "ASP.NET"}],
|
165
|
+
:type => "fingerprint",
|
166
|
+
:category => "application",
|
167
|
+
:tags => ["Web Framework"],
|
168
|
+
:vendor => "Microsoft",
|
169
|
+
:product =>".NET Framework",
|
170
|
+
:match_details => "trace.axd version",
|
171
|
+
:version => nil,
|
172
|
+
:dynamic_version => lambda { |x|
|
173
|
+
_first_body_capture(x,/ASP.NET Version:([\d\.]*)/)
|
174
|
+
},
|
175
|
+
:match_type => :content_body,
|
176
|
+
:match_content => /Microsoft \.NET Framework Version/i,
|
177
|
+
:paths => ["#{url}/Trace.axd"],
|
178
|
+
:require_product => "ASP.NET",
|
179
|
+
:inference => true
|
180
|
+
},
|
181
|
+
{
|
182
|
+
:type => "fingerprint",
|
183
|
+
:category => "service",
|
184
|
+
:tags => ["Hosting", "IaaS"],
|
185
|
+
:vendor => "Microsoft",
|
186
|
+
:product =>"Azure",
|
187
|
+
:match_details => "standard 404",
|
188
|
+
:version => nil,
|
189
|
+
:match_type => :content_title,
|
190
|
+
:match_content => /^Microsoft Azure Web App - Error 404$/i,
|
191
|
+
:paths => ["#{url}"],
|
192
|
+
:hide => true,
|
193
|
+
:inference => false
|
194
|
+
},
|
195
|
+
{
|
196
|
+
:type => "fingerprint",
|
197
|
+
:category => "service",
|
198
|
+
:tags => ["Hosting", "Load Balancer", "IaaS"],
|
199
|
+
:vendor => "Microsoft",
|
200
|
+
:product => "Azure",
|
201
|
+
:match_details => "Proxy service header (x-msedge-ref)",
|
202
|
+
:version => nil,
|
203
|
+
:match_type => :content_headers,
|
204
|
+
:match_content => /^x-msedge-ref:.*/i,
|
205
|
+
:paths => ["#{url}"],
|
206
|
+
:inference => false
|
207
|
+
},
|
208
|
+
{
|
209
|
+
:type => "fingerprint",
|
210
|
+
:category => "service",
|
211
|
+
:tags => ["Hosting", "IaaS"],
|
212
|
+
:vendor => "Microsoft",
|
213
|
+
:product => "Azure",
|
214
|
+
:match_details => "proxy default error",
|
215
|
+
:match_type => :content_body,
|
216
|
+
:match_content => /<h2>Our services aren\'t available right now<\/h2><p>We\'re working to restore all services as soon as possible. Please check back soon/i,
|
217
|
+
:paths => ["#{url}"],
|
218
|
+
:hide => true,
|
219
|
+
:inference => false
|
220
|
+
},
|
221
|
+
{
|
222
|
+
:type => "fingerprint",
|
223
|
+
:category => "service",
|
224
|
+
:tags => ["Hosting", "Load Balancer", "IaaS"],
|
225
|
+
:vendor => "Microsoft",
|
226
|
+
:product =>"Azure",
|
227
|
+
:match_details =>"Proxy header (x-ms-ref)",
|
228
|
+
:version => nil,
|
229
|
+
:match_type => :content_headers,
|
230
|
+
:match_content => /^x-ms-ref:.*/i,
|
231
|
+
:paths => ["#{url}"],
|
232
|
+
:inference => false
|
233
|
+
},
|
234
|
+
{
|
235
|
+
:type => "fingerprint",
|
236
|
+
:category => "service",
|
237
|
+
:tags => ["Hosting", "Load Balancer", "IaaS"],
|
238
|
+
:vendor => "Microsoft",
|
239
|
+
:product =>"Azure",
|
240
|
+
:match_details =>"Storage service header",
|
241
|
+
:version => nil,
|
242
|
+
:match_type => :content_headers,
|
243
|
+
:match_content => /^x-ms-request-id:.*/i,
|
244
|
+
:paths => ["#{url}"],
|
245
|
+
:inference => false
|
246
|
+
},
|
247
|
+
{
|
248
|
+
:type => "fingerprint",
|
249
|
+
:category => "service",
|
250
|
+
:tags => ["Hosting", "Load Balancer", "IaaS"],
|
251
|
+
:vendor => "Microsoft",
|
252
|
+
:product =>"Azure",
|
253
|
+
:match_details =>"cookie: ApplicationGatewayAffinity",
|
254
|
+
:version => nil,
|
255
|
+
:match_type => :content_cookies,
|
256
|
+
:match_content => /ApplicationGatewayAffinity=/i,
|
257
|
+
:paths => ["#{url}"],
|
258
|
+
:inference => false
|
259
|
+
},
|
260
|
+
{
|
261
|
+
:type => "fingerprint",
|
262
|
+
:category => "service",
|
263
|
+
:tags => ["Hosting", "Load Balancer", "IaaS"],
|
264
|
+
:vendor => "Microsoft",
|
265
|
+
:product =>"Azure",
|
266
|
+
:match_details =>"cookie: ApplicationGatewayAffinityCORS",
|
267
|
+
:version => nil,
|
268
|
+
:match_type => :content_cookies,
|
269
|
+
:match_content => /ApplicationGatewayAffinityCORS=/i,
|
270
|
+
:paths => ["#{url}"],
|
271
|
+
:inference => false
|
272
|
+
},
|
273
|
+
{
|
274
|
+
:type => "fingerprint",
|
275
|
+
:category => "service",
|
276
|
+
:tags => ["CDN", "IaaS"],
|
277
|
+
:vendor => "Microsoft",
|
278
|
+
:product => "Verizon Azure CDN",
|
279
|
+
:references => [
|
280
|
+
"https://docs.microsoft.com/en-us/azure/cdn/cdn-verizon-http-headers",
|
281
|
+
"https://docs.vdms.com/cdn/Content/HTTP_and_HTTPS_Data_Delivery/Response.htm"
|
282
|
+
],
|
283
|
+
:version => nil,
|
284
|
+
:match_type => :content_headers,
|
285
|
+
:match_content => /^server:\ (ECAcc|ECD|EOS|ECS)\ \([a-zA-Z]{3}\/[a-zA-Z0-9]{4}\)$/i,
|
286
|
+
:dynamic_version => lambda { |x|
|
287
|
+
_first_header_capture(x,/^server:\ (ECAcc|ECD|EOS|ECS)\ \([a-zA-Z]{3}\/[a-zA-Z0-9]{4}\)$/i) },
|
288
|
+
:hide => false,
|
289
|
+
:paths => ["#{url}"],
|
290
|
+
:inference => false
|
291
|
+
},
|
292
|
+
{
|
293
|
+
:type => "fingerprint",
|
294
|
+
:category => "application",
|
295
|
+
:tags => ["Web Framework"],
|
296
|
+
:vendor => "Microsoft",
|
297
|
+
:product =>"ASP.NET",
|
298
|
+
:match_details =>"powered by header",
|
299
|
+
:version => nil,
|
300
|
+
:match_type => :content_headers,
|
301
|
+
:match_content => /x-powered-by: ASP.NET/,
|
302
|
+
:paths => ["#{url}"],
|
303
|
+
:inference => false
|
304
|
+
},
|
305
|
+
{
|
306
|
+
:type => "fingerprint",
|
307
|
+
:category => "application",
|
308
|
+
:tags => ["COTS"],
|
309
|
+
:vendor => "Microsoft",
|
310
|
+
:product =>"Commerce Server",
|
311
|
+
:match_details =>"server header",
|
312
|
+
:version => nil,
|
313
|
+
:match_type => :content_headers,
|
314
|
+
:match_content => /commerce-server-software: Microsoft Commerce Server.*/,
|
315
|
+
:paths => ["#{url}"],
|
316
|
+
:inference => false
|
317
|
+
},
|
318
|
+
{
|
319
|
+
:type => "fingerprint",
|
320
|
+
:category => "application",
|
321
|
+
:tags => ["Productivity","COTS","Mail Server", "Email"],
|
322
|
+
:vendor => "Microsoft",
|
323
|
+
:product =>"Exchange Server",
|
324
|
+
:references => ["https://support.microsoft.com/en-us/help/4036163/you-can-t-access-owa-or-ecp-after-you-install-exchange-server-2016-cu6"],
|
325
|
+
:match_details =>"x-feserver header",
|
326
|
+
:version => nil,
|
327
|
+
:match_type => :content_headers,
|
328
|
+
:match_content => /^x-feserver:.*$/i,
|
329
|
+
:paths => ["#{url}"],
|
330
|
+
:inference => false
|
331
|
+
},
|
332
|
+
{
|
333
|
+
:type => "fingerprint",
|
334
|
+
:category => "application",
|
335
|
+
:tags => ["Productivity","COTS", "Mail Server", "Email"],
|
336
|
+
:vendor => "Microsoft",
|
337
|
+
:product =>"Exchange Server",
|
338
|
+
:references => [],
|
339
|
+
:match_details =>"/owa/ redirect",
|
340
|
+
:version => nil,
|
341
|
+
:match_type => :content_headers,
|
342
|
+
:match_content => /^location:.*\/owa\/$/i,
|
343
|
+
:paths => ["#{url}"],
|
344
|
+
:inference => false
|
345
|
+
},
|
346
|
+
{
|
347
|
+
:type => "fingerprint",
|
348
|
+
:category => "application",
|
349
|
+
:tags => ["Productivity", "Mail Server", "COTS"],
|
350
|
+
:vendor => "Microsoft",
|
351
|
+
:product =>"Exchange Server",
|
352
|
+
:match_details =>"OWA Header -> Exchange server inference",
|
353
|
+
:version => nil,
|
354
|
+
:match_type => :content_headers,
|
355
|
+
:match_content => /^x-owa-version:/i,
|
356
|
+
:dynamic_version => lambda { |x|
|
357
|
+
version_string = _first_header_capture(x, /^x-owa-version:(.*)$/i)
|
358
|
+
owa_to_exchange_version(version_string)[:version]
|
359
|
+
},
|
360
|
+
:dynamic_update => lambda { |x|
|
361
|
+
update_string = _first_header_capture(x, /^x-owa-version:(.*)$/i)
|
362
|
+
owa_to_exchange_version(update_string)[:update]
|
363
|
+
},
|
364
|
+
:paths => ["#{url}"],
|
365
|
+
:inference => true
|
366
|
+
},
|
367
|
+
{
|
368
|
+
:type => "fingerprint",
|
369
|
+
:category => "application",
|
370
|
+
:tags => ["Productivity","COTS", "Mail Server", "Email"],
|
371
|
+
:vendor => "Microsoft",
|
372
|
+
:product =>"Exchange Server",
|
373
|
+
:references => ["https://bit.ly/2k4Yoot"],
|
374
|
+
:match_details =>"OWA version -> Exchange server inference (body)",
|
375
|
+
:version => nil,
|
376
|
+
:match_type => :content_body,
|
377
|
+
:match_content => /OwaPage\ =\ ASP.auth_logon_aspx/i,
|
378
|
+
:dynamic_version => lambda { |x|
|
379
|
+
|
380
|
+
version_string = _first_body_capture(x, /href=\"\/owa\/auth\/([\d\.]+)\/themes\/resources\/favicon.ico/)
|
381
|
+
version_string = _first_body_capture(x, /href=\"\/owa\/([\d\.]+)\/themes\/resources\/favicon.ico/) unless version_string
|
382
|
+
|
383
|
+
owa_to_exchange_version(version_string)[:version]
|
384
|
+
},
|
385
|
+
:dynamic_update => lambda { |x|
|
386
|
+
|
387
|
+
update_string = _first_body_capture(x, /href=\"\/owa\/auth\/([\d\.]+)\/themes\/resources\/favicon.ico/)
|
388
|
+
update_string = _first_body_capture(x, /href=\"\/owa\/([\d\.]+)\/themes\/resources\/favicon.ico/) unless update_string
|
389
|
+
|
390
|
+
owa_to_exchange_version(update_string)[:update]
|
391
|
+
},
|
392
|
+
:paths => ["#{url}"],
|
393
|
+
:inference => true # TODO - not specific enough yet
|
394
|
+
},
|
395
|
+
{
|
396
|
+
:type => "fingerprint",
|
397
|
+
:category => "application",
|
398
|
+
:tags => ["Productivity","COTS", "Mail Server", "Email"],
|
399
|
+
:vendor => "Microsoft",
|
400
|
+
:product =>"Exchange Server",
|
401
|
+
:references => ["https://bit.ly/2k4Yoot"],
|
402
|
+
:match_details =>"OWA version -> Exchange server inference (headers)",
|
403
|
+
:version => nil,
|
404
|
+
:match_type => :content_headers,
|
405
|
+
:match_content => /x-owa-version/i,
|
406
|
+
:dynamic_version => lambda { |x|
|
407
|
+
|
408
|
+
version_string = _first_body_capture(x, /href=\"\/owa\/auth\/([\d\.]+)\/themes\/resources\/favicon.ico/)
|
409
|
+
version_string = _first_body_capture(x, /href=\"\/owa\/([\d\.]+)\/themes\/resources\/favicon.ico/) unless version_string
|
410
|
+
|
411
|
+
owa_to_exchange_version(version_string)[:version]
|
412
|
+
},
|
413
|
+
:dynamic_update => lambda { |x|
|
414
|
+
|
415
|
+
update_string = _first_body_capture(x, /href=\"\/owa\/auth\/([\d\.]+)\/themes\/resources\/favicon.ico/)
|
416
|
+
update_string = _first_body_capture(x, /href=\"\/owa\/([\d\.]+)\/themes\/resources\/favicon.ico/) unless update_string
|
417
|
+
|
418
|
+
owa_to_exchange_version(update_string)[:update]
|
419
|
+
},
|
420
|
+
:paths => ["#{url}"],
|
421
|
+
:inference => true # TODO - not specific enough yet
|
422
|
+
},
|
423
|
+
{
|
424
|
+
:type => "fingerprint",
|
425
|
+
:category => "application",
|
426
|
+
:tags => ["Firewall"],
|
427
|
+
:vendor => "Microsoft",
|
428
|
+
:product =>"Forefront TMG",
|
429
|
+
:match_details =>"Microsoft Forefront Threat Management Gateway",
|
430
|
+
:version => nil,
|
431
|
+
:match_type => :content_cookies,
|
432
|
+
:match_content => /<title>Microsoft Forefront TMG/,
|
433
|
+
:paths => ["#{url}"],
|
434
|
+
:inference => false
|
435
|
+
},
|
436
|
+
{
|
437
|
+
:type => "fingerprint",
|
438
|
+
:category => "application",
|
439
|
+
:tags => ["Firewall"],
|
440
|
+
:vendor => "Microsoft",
|
441
|
+
:product =>"Forefront TMG",
|
442
|
+
:match_details =>"Microsoft Forefront Threat Management Gateway",
|
443
|
+
:version => nil,
|
444
|
+
:match_type => :content_headers,
|
445
|
+
:match_content => /via:\ 1.1\ TMGSRVR/,
|
446
|
+
:paths => ["#{url}"],
|
447
|
+
:inference => false
|
448
|
+
},
|
449
|
+
{
|
450
|
+
:type => "fingerprint",
|
451
|
+
:category => "application",
|
452
|
+
:tags => ["Firewall"],
|
453
|
+
:vendor => "Microsoft",
|
454
|
+
:product =>"ISA Server",
|
455
|
+
:version => "2006",
|
456
|
+
:match_type => :content_title,
|
457
|
+
:match_content => /^Microsoft ISA Server 2006$/i,
|
458
|
+
:match_details =>"standard title",
|
459
|
+
:paths => ["#{url}"],
|
460
|
+
:inference => false
|
461
|
+
},
|
462
|
+
{
|
463
|
+
:type => "fingerprint",
|
464
|
+
:category => "application",
|
465
|
+
:tags => ["Library", "Application Server"],
|
466
|
+
:vendor =>"Microsoft",
|
467
|
+
:product =>"Frontpage",
|
468
|
+
:match_details =>"server header",
|
469
|
+
:version => nil,
|
470
|
+
:match_type => :content_headers,
|
471
|
+
:match_content => /^.*FrontPage\/.*$/i,
|
472
|
+
:dynamic_version => lambda { |x|
|
473
|
+
_first_header_capture(x,/^.*FrontPage\/([\d\.]*).*$/i)
|
474
|
+
},
|
475
|
+
:paths => ["#{url}"],
|
476
|
+
:inference => true
|
477
|
+
},
|
478
|
+
{
|
479
|
+
:type => "fingerprint",
|
480
|
+
:category => "application",
|
481
|
+
:tags => ["Web Server"],
|
482
|
+
:vendor => "Microsoft",
|
483
|
+
:product => "Internet Information Services",
|
484
|
+
:match_details =>"server header",
|
485
|
+
:match_type => :content_headers,
|
486
|
+
:match_content => /server: Microsoft-IIS/,
|
487
|
+
:paths => ["#{url}"],
|
488
|
+
:inference => false # not specific enough
|
489
|
+
},
|
490
|
+
{
|
491
|
+
:type => "fingerprint",
|
492
|
+
:category => "application",
|
493
|
+
:tags => ["Web Server"],
|
494
|
+
:vendor => "Microsoft",
|
495
|
+
:product => "Internet Information Services",
|
496
|
+
:match_details =>"server header",
|
497
|
+
:version => nil,
|
498
|
+
:dynamic_version => lambda { |x|
|
499
|
+
_first_header_capture x, /server: Microsoft-IIS\/(.*)/
|
500
|
+
},
|
501
|
+
:match_type => :content_headers,
|
502
|
+
:match_content => /server: Microsoft-IIS\//,
|
503
|
+
:paths => ["#{url}"],
|
504
|
+
:inference => false # not specific enough
|
505
|
+
},
|
506
|
+
{
|
507
|
+
:type => "fingerprint",
|
508
|
+
:category => "application",
|
509
|
+
:tags => ["Web Server"],
|
510
|
+
:vendor => "Microsoft",
|
511
|
+
:product => "Internet Information Services",
|
512
|
+
:match_details =>"body error messages",
|
513
|
+
:version => nil,
|
514
|
+
:match_type => :content_body,
|
515
|
+
:match_content => /401.2 - Unauthorized: Access is denied due to server configuration.<br>Internet Information Services \(IIS\)/,
|
516
|
+
:paths => ["#{url}"],
|
517
|
+
:inference => false # not specific enough
|
518
|
+
},
|
519
|
+
{
|
520
|
+
:type => "fingerprint",
|
521
|
+
:category => "application",
|
522
|
+
:tags => ["Web Server"],
|
523
|
+
:vendor => "Microsoft",
|
524
|
+
:product =>"Internet Information Services",
|
525
|
+
:match_details =>"Internet Information Services",
|
526
|
+
:version => "8.0",
|
527
|
+
:match_type => :content_body,
|
528
|
+
:match_content => /<img src=\"iis-8.png\"/,
|
529
|
+
:paths => ["#{url}"],
|
530
|
+
:inference => false # not specific enough
|
531
|
+
},
|
532
|
+
{
|
533
|
+
:type => "fingerprint",
|
534
|
+
:category => "application",
|
535
|
+
:tags => ["Web Server"],
|
536
|
+
:vendor => "Microsoft",
|
537
|
+
:product =>"Internet Information Services",
|
538
|
+
:match_details =>"Microsoft IIS 8.5",
|
539
|
+
:version => "8.5",
|
540
|
+
:match_type => :content_body,
|
541
|
+
:match_content => /<img src=\"iis-85.png\"/,
|
542
|
+
:paths => ["#{url}"],
|
543
|
+
:inference => false # not specific enough
|
544
|
+
},
|
545
|
+
{
|
546
|
+
:type => "fingerprint",
|
547
|
+
:category => "application",
|
548
|
+
:tags => ["Web Server"],
|
549
|
+
:vendor => "Microsoft",
|
550
|
+
:product =>"Internet Information Services",
|
551
|
+
:match_details =>"Microsoft-HTTPAPI/2.0 (IIS not configured)",
|
552
|
+
:version => nil,
|
553
|
+
:match_type => :content_headers,
|
554
|
+
:match_content => /server: Microsoft-HTTPAPI\/2.0/i,
|
555
|
+
:paths => ["#{url}"],
|
556
|
+
:inference => false
|
557
|
+
},
|
558
|
+
{
|
559
|
+
:type => "fingerprint",
|
560
|
+
:category => "application",
|
561
|
+
:vendor => "Microsoft",
|
562
|
+
:product =>"Internet Information Services",
|
563
|
+
:match_details =>"Microsoft IIS Unauthorized (403)",
|
564
|
+
:tags => ["error_page"],
|
565
|
+
:version => nil,
|
566
|
+
:match_type => :content_body,
|
567
|
+
:hide => true,
|
568
|
+
:match_content => /Error Code: 403 Forbidden. The server denied the specified Uniform Resource Locator \(URL\)/,
|
569
|
+
:paths => ["#{url}"],
|
570
|
+
:inference => false
|
571
|
+
},
|
572
|
+
{
|
573
|
+
:type => "fingerprint",
|
574
|
+
:category => "application",
|
575
|
+
:tags => ["Web Server"],
|
576
|
+
:vendor => "Microsoft",
|
577
|
+
:product =>"Internet Information Services",
|
578
|
+
:match_details =>"Microsoft IIS Missing Resource (404)",
|
579
|
+
:version => nil,
|
580
|
+
:match_type => :content_body,
|
581
|
+
:hide => true,
|
582
|
+
:match_content => /HTTP Error 404. The requested resource is not found./,
|
583
|
+
:paths => ["#{url}"],
|
584
|
+
:inference => false
|
585
|
+
},
|
586
|
+
{
|
587
|
+
:type => "fingerprint",
|
588
|
+
:category => "application",
|
589
|
+
:tags => ["Web Server"],
|
590
|
+
:vendor => "Microsoft",
|
591
|
+
:product =>"Internet Information Services",
|
592
|
+
:match_details =>"Microsoft IIS Generic Error - 403",
|
593
|
+
:version => nil,
|
594
|
+
:match_type => :content_body,
|
595
|
+
:hide => true,
|
596
|
+
:match_content => /403 Forbidden. The server denied the specified Uniform Resource Locator (URL)/,
|
597
|
+
:paths => ["#{url}"],
|
598
|
+
:inference => false
|
599
|
+
},
|
600
|
+
{
|
601
|
+
:type => "fingerprint",
|
602
|
+
:category => "application",
|
603
|
+
:tags => ["Web Server"],
|
604
|
+
:vendor => "Microsoft",
|
605
|
+
:product =>"Internet Information Services",
|
606
|
+
:match_details =>"Microsoft Generic Error - 503",
|
607
|
+
:version => nil,
|
608
|
+
:match_type => :content_body,
|
609
|
+
:hide => true,
|
610
|
+
:match_content => /HTTP Error 503. The service is unavailable./,
|
611
|
+
:paths => ["#{url}"],
|
612
|
+
:inference => false
|
613
|
+
},
|
614
|
+
{
|
615
|
+
:type => "fingerprint",
|
616
|
+
:category => "application",
|
617
|
+
:tags => ["Web Server"],
|
618
|
+
:vendor =>"Microsoft",
|
619
|
+
:product =>"Kestrel",
|
620
|
+
:references => ["https://stackify.com/what-is-kestrel-web-server/"],
|
621
|
+
:match_details =>"kestrel in server header",
|
622
|
+
:version => nil,
|
623
|
+
:match_type => :content_headers,
|
624
|
+
:match_content => /server: Kestrel/i,
|
625
|
+
:paths => ["#{url}"],
|
626
|
+
:inference => false
|
627
|
+
},
|
628
|
+
{
|
629
|
+
:type => "fingerprint",
|
630
|
+
:category => "service",
|
631
|
+
:tags => ["Productivity","SaaS"],
|
632
|
+
:vendor =>"Microsoft",
|
633
|
+
:product =>"Office 365",
|
634
|
+
:match_details =>"office 365 api unique header",
|
635
|
+
:version => nil,
|
636
|
+
:match_type => :content_headers,
|
637
|
+
:match_content => /x-ms-server-fqdn/i,
|
638
|
+
:paths => ["#{url}"],
|
639
|
+
:inference => false
|
640
|
+
},
|
641
|
+
{
|
642
|
+
:type => "fingerprint",
|
643
|
+
:category => "service",
|
644
|
+
:tags => ["Productivity","SaaS"],
|
645
|
+
:vendor =>"Microsoft",
|
646
|
+
:product =>"Office 365 API",
|
647
|
+
:match_details =>"office 365 api auth cookie",
|
648
|
+
:version => nil,
|
649
|
+
:match_type => :content_cookies,
|
650
|
+
:match_content => /x-ms-gateway-slice/i,
|
651
|
+
:paths => ["#{url}"],
|
652
|
+
:inference => false
|
653
|
+
},
|
654
|
+
{
|
655
|
+
:type => "fingerprint",
|
656
|
+
:category => "service",
|
657
|
+
:tags => ["Productivity","SaaS"],
|
658
|
+
:vendor =>"Microsoft",
|
659
|
+
:product =>"Office 365",
|
660
|
+
:match_details =>"office 365 fronted by okta",
|
661
|
+
:version => nil,
|
662
|
+
:match_type => :content_body,
|
663
|
+
:match_content => /ok3static.oktacdn.com\/assets\/img\/logos\/office365/i,
|
664
|
+
:paths => ["#{url}"],
|
665
|
+
:inference => false
|
666
|
+
},
|
667
|
+
|
668
|
+
{
|
669
|
+
:type => "fingerprint",
|
670
|
+
:category => "service",
|
671
|
+
:tags => ["Productivity","SaaS"],
|
672
|
+
:vendor =>"Microsoft",
|
673
|
+
:product =>"Microsoft Outlook (Office 365)",
|
674
|
+
:match_details =>"office 365 outlook signin",
|
675
|
+
:version => nil,
|
676
|
+
:match_type => :content_title,
|
677
|
+
:match_content => /Sign in to Outlook/i,
|
678
|
+
:paths => ["#{url}"],
|
679
|
+
:inference => false
|
680
|
+
},
|
681
|
+
{
|
682
|
+
:type => "fingerprint",
|
683
|
+
:category => "application",
|
684
|
+
:tags => ["Productivity", "Mail Server", "COTS"],
|
685
|
+
:vendor => "Microsoft",
|
686
|
+
:product =>"Outlook Web Access",
|
687
|
+
:match_details =>"Microsoft Outlook Web Access",
|
688
|
+
:version => nil,
|
689
|
+
:match_type => :content_headers,
|
690
|
+
:match_content => /location: \/owa/,
|
691
|
+
:paths => ["#{url}"],
|
692
|
+
:inference => false
|
693
|
+
},
|
694
|
+
{
|
695
|
+
:type => "fingerprint",
|
696
|
+
:category => "application",
|
697
|
+
:tags => ["Productivity", "Mail Server", "COTS"],
|
698
|
+
:vendor => "Microsoft",
|
699
|
+
:product =>"Outlook Web Access",
|
700
|
+
:match_details =>"Microsoft Outlook Web Access (header)",
|
701
|
+
:version => nil,
|
702
|
+
:match_type => :content_headers,
|
703
|
+
:match_content => /x-owa-version/,
|
704
|
+
:dynamic_version => lambda { |x|
|
705
|
+
_first_header_capture(x, /x-owa-version:(.*)/) },
|
706
|
+
:paths => ["#{url}"],
|
707
|
+
:inference => true
|
708
|
+
},
|
709
|
+
{
|
710
|
+
:type => "fingerprint",
|
711
|
+
:category => "application",
|
712
|
+
:tags => ["Productivity", "Mail Server", "COTS"],
|
713
|
+
:vendor => "Microsoft",
|
714
|
+
:product =>"Outlook Web Access",
|
715
|
+
:match_details =>"Microsoft Outlook Web Access (body)",
|
716
|
+
:version => nil,
|
717
|
+
:match_type => :content_body,
|
718
|
+
:match_content => /OwaPage\ =\ ASP.auth_logon_aspx/,
|
719
|
+
:dynamic_version => lambda { |x|
|
720
|
+
_first_body_capture x, /href=\"\/owa\/auth\/(.*)\/themes\/resources\/favicon.ico/ },
|
721
|
+
:paths => ["#{url}"],
|
722
|
+
:inference => true
|
723
|
+
},
|
724
|
+
{
|
725
|
+
:type => "fingerprint",
|
726
|
+
:category => "application",
|
727
|
+
:tags => ["Productivity", "Mail Server", "COTS"],
|
728
|
+
:vendor => "Microsoft",
|
729
|
+
:product =>"Outlook Web Access",
|
730
|
+
:match_details =>"title",
|
731
|
+
:version => nil,
|
732
|
+
:match_type => :content_title ,
|
733
|
+
:match_content => /^Outlook Web App$/,
|
734
|
+
:paths => ["#{url}"],
|
735
|
+
:inference => false
|
736
|
+
},
|
737
|
+
{
|
738
|
+
:type => "fingerprint",
|
739
|
+
:category => "application",
|
740
|
+
:tags => ["Productivity", "CMS"],
|
741
|
+
:vendor => "Microsoft",
|
742
|
+
:product =>"Sharepoint Server",
|
743
|
+
:match_details =>"Inferred from services version",
|
744
|
+
:version => nil,
|
745
|
+
:match_type => :content_headers,
|
746
|
+
:match_content => /microsoftsharepointteamservices/,
|
747
|
+
:dynamic_version => lambda { |x|
|
748
|
+
sharepoint_server_version_from_team_services(_first_header_capture(x,/^microsoftsharepointteamservices:(.*)/i))[:version] },
|
749
|
+
:dynamic_update => lambda { |x|
|
750
|
+
sharepoint_server_version_from_team_services(_first_header_capture(x,/^microsoftsharepointteamservices:(.*)/i))[:update] },
|
751
|
+
:paths => ["#{url}"],
|
752
|
+
:inference => false
|
753
|
+
},
|
754
|
+
{
|
755
|
+
:type => "fingerprint",
|
756
|
+
:category => "application",
|
757
|
+
:tags => ["Productivity", "CMS"],
|
758
|
+
:vendor => "Microsoft",
|
759
|
+
:product =>"Sharepoint Foundation",
|
760
|
+
:match_details =>"error page",
|
761
|
+
:version => nil,
|
762
|
+
:match_type => :content_body,
|
763
|
+
:requires_product => "Sharepoint Server",
|
764
|
+
:match_content => /Troubleshoot issues with Microsoft SharePoint Foundation. - Opens in new window/,
|
765
|
+
:paths => ["#{url}/WebResource.asmx"],
|
766
|
+
:require_product => "ASP.NET",
|
767
|
+
:inference => false
|
768
|
+
},
|
769
|
+
{
|
770
|
+
:type => "fingerprint",
|
771
|
+
:category => "application",
|
772
|
+
:tags => ["Productivity", "CMS"],
|
773
|
+
:vendor => "Microsoft",
|
774
|
+
:product =>"Sharepoint Team Services",
|
775
|
+
:match_details =>"Sharepoint cookie",
|
776
|
+
:version => nil,
|
777
|
+
:match_type => :content_headers,
|
778
|
+
:match_content => /sprequestguid/,
|
779
|
+
:dynamic_version => lambda { |x|
|
780
|
+
_first_header_capture(x,/^microsoftsharepointteamservices:(.*)/i) },
|
781
|
+
:paths => ["#{url}"],
|
782
|
+
:inference => true
|
783
|
+
},
|
784
|
+
{
|
785
|
+
:type => "fingerprint",
|
786
|
+
:category => "application",
|
787
|
+
:tags => ["Productivity", "CMS"],
|
788
|
+
:vendor => "Microsoft",
|
789
|
+
:product =>"Sharepoint Team Services",
|
790
|
+
:match_details =>"Sharepoint cookie",
|
791
|
+
:version => nil,
|
792
|
+
:match_type => :content_headers,
|
793
|
+
:match_content => /^microsoftsharepointteamservices:.*$/,
|
794
|
+
:dynamic_version => lambda { |x|
|
795
|
+
_first_header_capture(x,/^microsoftsharepointteamservices:(.*)/i) },
|
796
|
+
:paths => ["#{url}"],
|
797
|
+
:inference => true
|
798
|
+
},
|
799
|
+
{
|
800
|
+
:type => "fingerprint",
|
801
|
+
:category => "application",
|
802
|
+
:tags => ["Productivity", "CMS"],
|
803
|
+
:vendor => "Microsoft",
|
804
|
+
:product =>"Sharepoint Server",
|
805
|
+
:match_details =>"Sharepoint cookie",
|
806
|
+
:version => nil,
|
807
|
+
:match_type => :content_generator,
|
808
|
+
:match_content => /^Microsoft SharePoint$/,
|
809
|
+
:paths => ["#{url}"],
|
810
|
+
:inference => false
|
811
|
+
},
|
812
|
+
{
|
813
|
+
:type => "fingerprint",
|
814
|
+
:category => "application",
|
815
|
+
:tags => ["Productivity", "CMS"],
|
816
|
+
:vendor => "Microsoft",
|
817
|
+
:product =>"Sharepoint Services",
|
818
|
+
:match_details =>"header",
|
819
|
+
:version => nil,
|
820
|
+
:match_type => :content_headers,
|
821
|
+
:match_content => /microsoftofficewebserver:.*/,
|
822
|
+
:dynamic_version => lambda { |x| _first_header_capture(x,/^microsoftofficewebserver:(.*)/i) },
|
823
|
+
:paths => ["#{url}"],
|
824
|
+
:inference => true
|
825
|
+
},
|
826
|
+
{
|
827
|
+
:type => "fingerprint",
|
828
|
+
:category => "application",
|
829
|
+
:tags => ["Productivity", "CMS"],
|
830
|
+
:vendor => "Microsoft",
|
831
|
+
:product =>"Sharepoint Services",
|
832
|
+
:match_details =>"header",
|
833
|
+
:version => "3.0",
|
834
|
+
:match_type => :content_headers,
|
835
|
+
:match_content => /microsoftofficewebserver: 5.0_Pub/,
|
836
|
+
:paths => ["#{url}"]
|
837
|
+
}
|
838
|
+
]
|
839
|
+
end
|
840
|
+
|
841
|
+
# https://buildnumbers.wordpress.com/sharepoint/
|
842
|
+
# https://www.eukhost.com/blog/webhosting/difference-between-windows-sharepoint-services-and-sharepoint-servers/
|
843
|
+
# https://sathiya.io/sharepoint-2016-build-numbers
|
844
|
+
def sharepoint_server_version_from_team_services(sp_teamsvc_version)
|
845
|
+
|
846
|
+
# adjust the version to fit our naming scheme
|
847
|
+
# simpluy remove one of the .0's
|
848
|
+
sp_version = sp_teamsvc_version.gsub("0.0.","0.")
|
849
|
+
|
850
|
+
reference_versions = File.open("#{$ident_dir}/data/microsoft_sharepoint_versions.csv").read.split("\n")
|
851
|
+
|
852
|
+
# do the comparison and simply return if we ahve it
|
853
|
+
reference_versions.each do |line|
|
854
|
+
# it's a csv
|
855
|
+
ref = line.split(",")
|
856
|
+
|
857
|
+
# grab the relevant fields
|
858
|
+
sp_release = ref[0]
|
859
|
+
build_version = ref[1]
|
860
|
+
update_version = ref[2]
|
861
|
+
|
862
|
+
# modify to fit our schema
|
863
|
+
compare_version = build_version.gsub(/\.\d+$/,"")
|
864
|
+
if compare_version == sp_version # # Got it
|
865
|
+
# recturn since we matched
|
866
|
+
return { version: sp_release, update: update_version }
|
867
|
+
end
|
868
|
+
end
|
869
|
+
|
870
|
+
# okay we made it this far, so no exact match
|
871
|
+
# handle cases where we don't have an exact match here
|
872
|
+
case
|
873
|
+
when sp_teamsvc_version =~ /^10\.0\.0\.\d+/
|
874
|
+
out = { version: "2003", update: nil }
|
875
|
+
when sp_teamsvc_version =~ /^11\.0\.0\.\d+/
|
876
|
+
out = { version: "2003", update: nil }
|
877
|
+
when sp_teamsvc_version =~ /^12\.0\.0\.\d+/
|
878
|
+
out = { version: "2007", update: nil }
|
879
|
+
when sp_teamsvc_version =~ /^14\.0\.0\.\d+/
|
880
|
+
out = { version: "2010", update: nil }
|
881
|
+
when sp_teamsvc_version =~ /^15\.0\.0\.\d+/
|
882
|
+
out = { version: "2013", update: nil }
|
883
|
+
when sp_teamsvc_version =~ /^16\.0\.4\d+\.\d+/
|
884
|
+
out = { version: "2016", update: nil }
|
885
|
+
when sp_teamsvc_version =~ /^16\.0\.10\d+\.\d+/
|
886
|
+
out = { version: "2019", update: nil }
|
887
|
+
else
|
888
|
+
out = { version: nil, update: nil }
|
889
|
+
end
|
890
|
+
|
891
|
+
|
892
|
+
out
|
893
|
+
end
|
894
|
+
|
895
|
+
|
896
|
+
# https://en.wikipedia.org/wiki/Internet_Information_Services
|
897
|
+
def iis_to_os_version(iis_version)
|
898
|
+
|
899
|
+
case
|
900
|
+
when iis_version == "10.0.17763"
|
901
|
+
out = { version: " Windows Server 2019 or Windows 10 October Update" }
|
902
|
+
when iis_version == "10.0"
|
903
|
+
out = { version: " Windows Server, version 1709 (Semi-Annual Channel) or Windows 10 Fall Creators Update" }
|
904
|
+
when iis_version == "10.0.14393" # IIS 10.0 version 1607
|
905
|
+
out = { version: "Windows Server 2016 or Windows 10 Anniversary Update" }
|
906
|
+
when iis_version == "8.5"
|
907
|
+
out = { version: "Windows Server 2012 R2 or Windows 8.1" }
|
908
|
+
when iis_version == "8.0"
|
909
|
+
out = { version: "Windows Server 2012 or Windows 8" }
|
910
|
+
when iis_version == "7.5"
|
911
|
+
out = { version: "Windows Server 2008 R2 or Windows 7" }
|
912
|
+
when iis_version == "7.0"
|
913
|
+
out = { version: "Windows Server 2008 or Windows Vista" }
|
914
|
+
when iis_version == "6.0"
|
915
|
+
out = { version: "Windows Server 2003 or Windows XP Professional x64 Edition" }
|
916
|
+
when iis_version == "5.1"
|
917
|
+
out = { version: "Windows XP Professional" }
|
918
|
+
when iis_version == "5.0"
|
919
|
+
out = { version: "Windows Server 2000" }
|
920
|
+
when iis_version == "4.0"
|
921
|
+
out = { version: "Windows NT 4.0 Option Pack" }
|
922
|
+
when iis_version == "3.0"
|
923
|
+
out = { version: "Windows NT 4.0 SP2" }
|
924
|
+
when iis_version == "2.0"
|
925
|
+
out = { version: "Windows NT 4.0" }
|
926
|
+
when iis_version == "1.0"
|
927
|
+
out = { version: "Windows NT 3.51" }
|
928
|
+
end
|
929
|
+
|
930
|
+
out
|
931
|
+
end
|
932
|
+
|
933
|
+
def owa_to_exchange_version(owa_version)
|
934
|
+
|
935
|
+
# 2007 SP1
|
936
|
+
if owa_version == "8.1.240.6" #.32"
|
937
|
+
out = { version: "2007 SP1", update: "RTM" }
|
938
|
+
elsif owa_version == "8.1.263.1" #.32"
|
939
|
+
out = { version: "2007 SP1", update: "Update Rollup 1" }
|
940
|
+
elsif owa_version == "8.1.278.2" #.32"
|
941
|
+
out = { version: "2007 SP1", update: "Update Rollup 2" }
|
942
|
+
elsif owa_version == "8.1.291.2" #.32"
|
943
|
+
out = { version: "2007 SP1", update: "Update Rollup 3" }
|
944
|
+
elsif owa_version == "8.1.311.3" #.32"
|
945
|
+
out = { version: "2007 SP1", update: "Update Rollup 4" }
|
946
|
+
elsif owa_version == "8.1.336.1" #.32"
|
947
|
+
out = { version: "2007 SP1", update: "Update Rollup 5" }
|
948
|
+
elsif owa_version == "8.1.340.1" #.32"
|
949
|
+
out = { version: "2007 SP1", update: "Update Rollup 6" }
|
950
|
+
elsif owa_version == "8.1.359.2" #.32"
|
951
|
+
out = { version: "2007 SP1", update: "Update Rollup 7" }
|
952
|
+
elsif owa_version == "8.1.375.2" #.32"
|
953
|
+
out = { version: "2007 SP1", update: "Update Rollup 8" }
|
954
|
+
elsif owa_version == "8.1.393.1" #.32"
|
955
|
+
out = { version: "2007 SP1", update: "Update Rollup 9" }
|
956
|
+
elsif owa_version == "8.1.436.0" #.32"
|
957
|
+
out = { version: "2007 SP1", update: "Update Rollup 10" }
|
958
|
+
|
959
|
+
# 2007 SP2
|
960
|
+
elsif owa_version == "8.2.176.2" #.32"
|
961
|
+
out = { version: "2007 SP2", update: "RTM" }
|
962
|
+
elsif owa_version == "8.2.217.3" #.32"
|
963
|
+
out = { version: "2007 SP2", update: "Update Rollup 1" }
|
964
|
+
elsif owa_version == "8.2.234.1" #.32"
|
965
|
+
out = { version: "2007 SP2", update: "Update Rollup 2" }
|
966
|
+
elsif owa_version == "8.2.247.2" #.32"
|
967
|
+
out = { version: "2007 SP2", update: "Update Rollup 3" }
|
968
|
+
elsif owa_version == "8.2.254.0" #.32"
|
969
|
+
out = { version: "2007 SP2", update: "Update Rollup 4" }
|
970
|
+
elsif owa_version == "8.2.305.3" #.32"
|
971
|
+
out = { version: "2007 SP2", update: "Update Rollup 5" }
|
972
|
+
|
973
|
+
# 2007 SP3
|
974
|
+
elsif owa_version == "8.3.083.6" #.32"
|
975
|
+
out = { version: "2007 SP3", update: "RTM" }
|
976
|
+
elsif owa_version == "8.3.106.2" #.32"
|
977
|
+
out = { version: "2007 SP3", update: "Update Rollup 1" }
|
978
|
+
elsif owa_version == "8.3.137.3" #.32"
|
979
|
+
out = { version: "2007 SP3", update: "Update Rollup 2" }
|
980
|
+
elsif owa_version == "8.3.159.0" #.32"
|
981
|
+
out = { version: "2007 SP3", update: "Update Rollup 3" }
|
982
|
+
elsif owa_version == "8.3.159.2" #.32"
|
983
|
+
out = { version: "2007 SP3", update: "Update Rollup 3-v2" }
|
984
|
+
elsif owa_version == "8.3.192.1" #.32"
|
985
|
+
out = { version: "2007 SP3", update: "Update Rollup 4" }
|
986
|
+
elsif owa_version == "8.3.213.1" #.32"
|
987
|
+
out = { version: "2007 SP3", update: "Update Rollup 5" }
|
988
|
+
elsif owa_version == "8.3.245.2" #.32"
|
989
|
+
out = { version: "2007 SP3", update: "Update Rollup 6" }
|
990
|
+
elsif owa_version == "8.3.264.0" #.32"
|
991
|
+
out = { version: "2007 SP3", update: "Update Rollup 7" }
|
992
|
+
elsif owa_version == "8.3.279.3" #.32"
|
993
|
+
out = { version: "2007 SP3", update: "Update Rollup 8" }
|
994
|
+
elsif owa_version == "8.3.279.5" #.32"
|
995
|
+
out = { version: "2007 SP3", update: "Update Rollup 8-v2" }
|
996
|
+
elsif owa_version == "8.3.279.6" #.32"
|
997
|
+
out = { version: "2007 SP3", update: "Update Rollup 8-v3" }
|
998
|
+
elsif owa_version == "8.3.297.2" #.32
|
999
|
+
out = { version: "2007 SP3", update: "Update Rollup 9" }
|
1000
|
+
elsif owa_version == "8.3.298.3" #.32"
|
1001
|
+
out = { version: "2007 SP3", update: "Update Rollup 10" }
|
1002
|
+
elsif owa_version == "8.3.327.1" #.32"
|
1003
|
+
out = { version: "2007 SP3", update: "Update Rollup 11" }
|
1004
|
+
elsif owa_version == "8.3.342.4" #.32"
|
1005
|
+
out = { version: "2007 SP3", update: "Update Rollup 12" }
|
1006
|
+
elsif owa_version == "8.3.348.1" #.32"
|
1007
|
+
out = { version: "2007 SP3", update: "Update Rollup 13" }
|
1008
|
+
elsif owa_version == "8.3.379.2" #.32"
|
1009
|
+
out = { version: "2007 SP3", update: "Update Rollup 14" }
|
1010
|
+
elsif owa_version == "8.3.389.2" #.32"
|
1011
|
+
out = { version: "2007 SP3", update: "Update Rollup 15" }
|
1012
|
+
elsif owa_version == "8.3.406.0" #.32"
|
1013
|
+
out = { version: "2007 SP3", update: "Update Rollup 16" }
|
1014
|
+
elsif owa_version == "8.3.417.1" #.32"
|
1015
|
+
out = { version: "2007 SP3", update: "Update Rollup 17" }
|
1016
|
+
elsif owa_version == "8.3.445.0" #.32"
|
1017
|
+
out = { version: "2007 SP3", update: "Update Rollup 18" }
|
1018
|
+
elsif owa_version == "8.3.459.0" #.32"
|
1019
|
+
out = { version: "2007 SP3", update: "Update Rollup 19" }
|
1020
|
+
elsif owa_version == "8.3.468.0" #.32"
|
1021
|
+
out = { version: "2007 SP3", update: "Update Rollup 20" }
|
1022
|
+
elsif owa_version == "8.4.485.1" #.32"
|
1023
|
+
out = { version: "2007 SP3", update: "Update Rollup 21" }
|
1024
|
+
elsif owa_version == "8.3.502.0" #.32"
|
1025
|
+
out = { version: "2007 SP3", update: "Update Rollup 22" }
|
1026
|
+
elsif owa_version == "8.3.517.0" #.32"
|
1027
|
+
out = { version: "2007 SP3", update: "Update Rollup 23" }
|
1028
|
+
|
1029
|
+
# 2010
|
1030
|
+
elsif owa_version == "14.0.639.21"
|
1031
|
+
out = { version: "2010", update: "RTM" }
|
1032
|
+
elsif owa_version == "14.0.682.1"
|
1033
|
+
out = { version: "2010", update: "Update Rollup 1" }
|
1034
|
+
elsif owa_version == "14.0.689.0"
|
1035
|
+
out = { version: "2010", update: "Update Rollup 2" }
|
1036
|
+
elsif owa_version == "14.0.694.0"
|
1037
|
+
out = { version: "2010", update: "Update Rollup 3" }
|
1038
|
+
elsif owa_version == "14.0.702.1"
|
1039
|
+
out = { version: "2010", update: "Update Rollup 4" }
|
1040
|
+
elsif owa_version == "14.0.722.0" # unknown release, found in the wild
|
1041
|
+
out = { version: "2010", update: "Update Rollup 4",
|
1042
|
+
note: "additional updates applied: #{owa_version}" }
|
1043
|
+
elsif owa_version == "14.0.726.0"
|
1044
|
+
out = { version: "2010", update: "Update Rollup 5" }
|
1045
|
+
|
1046
|
+
# 2010 SP1
|
1047
|
+
elsif owa_version == "14.1.218.13" || owa_version == "14.1.218.15"
|
1048
|
+
out = { version: "2010 SP1", update: "RTM" }
|
1049
|
+
elsif owa_version == "14.1.255.2"
|
1050
|
+
out = { version: "2010 SP1", update: "Update Rollup 1" }
|
1051
|
+
elsif owa_version == "14.1.270.1"
|
1052
|
+
out = { version: "2010 SP1", update: "Update Rollup 2" }
|
1053
|
+
elsif owa_version == "14.1.287.0"
|
1054
|
+
out = { version: "2010 SP1", update: "Update Rollup 2",
|
1055
|
+
note: "additional updates applied: #{owa_version}" }
|
1056
|
+
elsif owa_version == "14.1.289.3"
|
1057
|
+
out = { version: "2010 SP1", update: "Update Rollup 3" }
|
1058
|
+
elsif owa_version == "14.1.289.7"
|
1059
|
+
out = { version: "2010 SP1", update: "Update Rollup 3-v3" }
|
1060
|
+
elsif owa_version == "14.1.323.1"
|
1061
|
+
out = { version: "2010 SP1", update: "Update Rollup 4" }
|
1062
|
+
elsif owa_version == "14.1.323.6"
|
1063
|
+
out = { version: "2010 SP1", update: "Update Rollup 4-v2" }
|
1064
|
+
elsif owa_version == "14.1.339.1"
|
1065
|
+
out = { version: "2010 SP1", update: "Update Rollup 5" }
|
1066
|
+
elsif owa_version == "14.1.355.2"
|
1067
|
+
out = { version: "2010 SP1", update: "Update Rollup 6" }
|
1068
|
+
elsif owa_version == "14.1.420.0"
|
1069
|
+
out = { version: "2010 SP1", update: "Update Rollup 6",
|
1070
|
+
note: "additional updates applied: #{owa_version}" }
|
1071
|
+
elsif owa_version == "14.1.421.0"
|
1072
|
+
out = { version: "2010 SP1", update: "Update Rollup 7" }
|
1073
|
+
elsif owa_version == "14.1.421.2"
|
1074
|
+
out = { version: "2010 SP1", update: "Update Rollup 7-v2" }
|
1075
|
+
elsif owa_version == "14.1.421.3"
|
1076
|
+
out = { version: "2010 SP1", update: "Update Rollup 7-v3" }
|
1077
|
+
elsif owa_version == "14.1.438.0"
|
1078
|
+
out = { version: "2010 SP1", update: "Update Rollup 8" }
|
1079
|
+
|
1080
|
+
# 2010 SP2
|
1081
|
+
elsif owa_version == "14.2.247.5"
|
1082
|
+
out = { version: "2010 SP2", update: "RTM" }
|
1083
|
+
elsif owa_version == "14.2.283.3"
|
1084
|
+
out = { version: "2010 SP2", update: "Update Rollup 1" }
|
1085
|
+
elsif owa_version == "14.2.298.4"
|
1086
|
+
out = { version: "2010 SP2", update: "Update Rollup 2" }
|
1087
|
+
elsif owa_version == "14.2.309.2"
|
1088
|
+
out = { version: "2010 SP2", update: "Update Rollup 3" }
|
1089
|
+
elsif owa_version == "14.2.318.2"
|
1090
|
+
out = { version: "2010 SP2", update: "Update Rollup 4" }
|
1091
|
+
elsif owa_version == "14.2.318.4"
|
1092
|
+
out = { version: "2010 SP2", update: "Update Rollup 4-v2" }
|
1093
|
+
elsif owa_version == "14.2.328.5"
|
1094
|
+
out = { version: "2010 SP2", update: "Update Rollup 5" }
|
1095
|
+
elsif owa_version == "14.2.328.9" || owa_version == "14.2.328.10"
|
1096
|
+
out = { version: "2010 SP2", update: "Update Rollup 5-v2" }
|
1097
|
+
elsif owa_version == "14.2.342.3"
|
1098
|
+
out = { version: "2010 SP2", update: "Update Rollup 6" }
|
1099
|
+
elsif owa_version == "14.2.347.0"
|
1100
|
+
out = { version: "2010 SP2", update: "Update Rollup 6",
|
1101
|
+
note: "additional updates applied: #{owa_version}" }
|
1102
|
+
elsif owa_version == "14.2.375.0"
|
1103
|
+
out = { version: "2010 SP2", update: "Update Rollup 7" }
|
1104
|
+
elsif owa_version == "14.2.390.1" # unknown release, found in the wild
|
1105
|
+
out = { version: "2010 SP2", update: "Update Rollup 8",
|
1106
|
+
note: "prerelease version: #{owa_version}" }
|
1107
|
+
elsif owa_version == "14.2.390.3"
|
1108
|
+
out = { version: "2010 SP2", update: "Update Rollup 8" }
|
1109
|
+
|
1110
|
+
# 2010 SP3
|
1111
|
+
elsif owa_version == "14.3.123.3" || owa_version == "14.3.123.3"
|
1112
|
+
out = { version: "2010 SP3", update: "RTM" }
|
1113
|
+
elsif owa_version == "14.3.146.0"
|
1114
|
+
out = { version: "2010 SP3", update: "Update Rollup 1" }
|
1115
|
+
elsif owa_version == "14.3.158.1"
|
1116
|
+
out = { version: "2010 SP3", update: "Update Rollup 2" }
|
1117
|
+
elsif owa_version == "14.3.169.1"
|
1118
|
+
out = { version: "2010 SP3", update: "Update Rollup 3" }
|
1119
|
+
elsif owa_version == "14.3.174.1"
|
1120
|
+
out = { version: "2010 SP3", update: "Update Rollup 4" }
|
1121
|
+
elsif owa_version == "14.3.181.6"
|
1122
|
+
out = { version: "2010 SP3", update: "Update Rollup 5" }
|
1123
|
+
elsif owa_version == "14.3.195.1"
|
1124
|
+
out = { version: "2010 SP3", update: "Update Rollup 6" }
|
1125
|
+
elsif owa_version == "14.3.210.2"
|
1126
|
+
out = { version: "2010 SP3", update: "Update Rollup 7" }
|
1127
|
+
elsif owa_version == "14.3.224.2"
|
1128
|
+
out = { version: "2010 SP3", update: "Update Rollup 8-v2" }
|
1129
|
+
elsif owa_version == "14.3.235.1"
|
1130
|
+
out = { version: "2010 SP3", update: "Update Rollup 9" }
|
1131
|
+
elsif owa_version == "14.3.248.2"
|
1132
|
+
out = { version: "2010 SP3", update: "Update Rollup 10" }
|
1133
|
+
elsif owa_version == "14.3.266.1"
|
1134
|
+
out = { version: "2010 SP3", update: "Update Rollup 11" }
|
1135
|
+
elsif owa_version == "14.3.279.2"
|
1136
|
+
out = { version: "2010 SP3", update: "Update Rollup 12" }
|
1137
|
+
elsif owa_version == "14.3.294.0"
|
1138
|
+
out = { version: "2010 SP3", update: "Update Rollup 13" }
|
1139
|
+
elsif owa_version == "14.3.301.0"
|
1140
|
+
out = { version: "2010 SP3", update: "Update Rollup 14" }
|
1141
|
+
elsif owa_version == "14.3.319.2"
|
1142
|
+
out = { version: "2010 SP3", update: "Update Rollup 15" }
|
1143
|
+
elsif owa_version == "14.3.339.0"
|
1144
|
+
out = { version: "2010 SP3", update: "Update Rollup 16" }
|
1145
|
+
elsif owa_version == "14.3.351.0"
|
1146
|
+
out = { version: "2010 SP3", update: "Update Rollup 16",
|
1147
|
+
note: "additional updates applied: #{owa_version}" }
|
1148
|
+
elsif owa_version == "14.3.352.0"
|
1149
|
+
out = { version: "2010 SP3", update: "Update Rollup 17" }
|
1150
|
+
elsif owa_version == "14.3.361.1"
|
1151
|
+
out = { version: "2010 SP3", update: "Update Rollup 18" }
|
1152
|
+
elsif owa_version == "14.3.382.0"
|
1153
|
+
out = { version: "2010 SP3", update: "Update Rollup 19" }
|
1154
|
+
elsif owa_version == "14.3.388.0" # found in the wild
|
1155
|
+
out = { version: "2010 SP3", update: "Update Rollup 19",
|
1156
|
+
note: "additional updates applied: #{owa_version}" }
|
1157
|
+
elsif owa_version == "14.3.389.1"
|
1158
|
+
out = { version: "2010 SP3", update: "Update Rollup 20" }
|
1159
|
+
elsif owa_version == "14.3.399.0"
|
1160
|
+
out = { version: "2010 SP3", update: "Update Rollup 21",
|
1161
|
+
note: "additional updates applied: #{owa_version}" }
|
1162
|
+
elsif owa_version == "14.3.399.2"
|
1163
|
+
out = { version: "2010 SP3", update: "Update Rollup 21" }
|
1164
|
+
elsif owa_version == "14.3.409.0"
|
1165
|
+
out = { version: "2010 SP3", update: "Update Rollup 21",
|
1166
|
+
note: "additional updates applied: #{owa_version}" }
|
1167
|
+
elsif owa_version == "14.3.411.0"
|
1168
|
+
out = { version: "2010 SP3", update: "Update Rollup 22" }
|
1169
|
+
elsif owa_version == "14.3.415.0"
|
1170
|
+
out = { version: "2010 SP3", update: "Update Rollup 22",
|
1171
|
+
note: "additional updates applied: #{owa_version}" }
|
1172
|
+
elsif owa_version == "14.3.417.0"
|
1173
|
+
out = { version: "2010 SP3", update: "Update Rollup 23" }
|
1174
|
+
elsif owa_version == "14.3.419.0"
|
1175
|
+
out = { version: "2010 SP3", update: "Update Rollup 24" }
|
1176
|
+
elsif owa_version == "14.3.435.0"
|
1177
|
+
out = { version: "2010 SP3", update: "Update Rollup 25" }
|
1178
|
+
elsif owa_version == "14.3.439.0" # unknown release, found in the wild
|
1179
|
+
out = { version: "2010 SP3", update: "Update Rollup 25",
|
1180
|
+
note: "additional updates applied: #{owa_version}" }
|
1181
|
+
elsif owa_version == "14.3.442.0"
|
1182
|
+
out = { version: "2010 SP3", update: "Update Rollup 26" }
|
1183
|
+
elsif owa_version == "14.3.452.0"
|
1184
|
+
out = { version: "2010 SP3", update: "Update Rollup 27" }
|
1185
|
+
elsif owa_version == "14.3.461.1"
|
1186
|
+
out = { version: "2010 SP3", update: "Update Rollup 28" }
|
1187
|
+
elsif owa_version == "14.3.468.0"
|
1188
|
+
out = { version: "2010 SP3", update: "Update Rollup 29" }
|
1189
|
+
elsif owa_version == "14.3.487.0" # unknown release, found in the wild
|
1190
|
+
out = { version: "2010 SP3", update: "Update Rollup 29",
|
1191
|
+
note: "additional updates applied: #{owa_version}" }
|
1192
|
+
elsif owa_version == "14.3.496.0"
|
1193
|
+
out = { version: "2010 SP3", update: "Update Rollup 30" }
|
1194
|
+
|
1195
|
+
# 2013
|
1196
|
+
elsif owa_version == "15.0.516" #.32"
|
1197
|
+
out = { version: "2013", update: "RTM" }
|
1198
|
+
elsif owa_version == "15.0.620" #.29"
|
1199
|
+
out = { version: "2013", update: "Cumulative Update 1" }
|
1200
|
+
elsif owa_version == "15.0.712" #.24"
|
1201
|
+
out = { version: "2013", update: "Cumulative Update 2" }
|
1202
|
+
elsif owa_version == "15.0.775" #.38"
|
1203
|
+
out = { version: "2013", update: "Cumulative Update 3" }
|
1204
|
+
elsif owa_version == "15.0.847" #.32"
|
1205
|
+
out = { version: "2013", update: "Cumulative Update 4" }
|
1206
|
+
elsif owa_version == "15.0.913" #.22"
|
1207
|
+
out = { version: "2013", update: "Cumulative Update 5" }
|
1208
|
+
elsif owa_version == "15.0.995" #.29"
|
1209
|
+
out = { version: "2013", update: "Cumulative Update 6" }
|
1210
|
+
elsif owa_version == "15.0.1044" #.25"
|
1211
|
+
out = { version: "2013", update: "Cumulative Update 7" }
|
1212
|
+
elsif owa_version == "15.0.1076" #.9"
|
1213
|
+
out = { version: "2013", update: "Cumulative Update 8" }
|
1214
|
+
elsif owa_version == "15.0.1104" #.5"
|
1215
|
+
out = { version: "2013", update: "Cumulative Update 9" }
|
1216
|
+
elsif owa_version == "15.0.1130" #.7"
|
1217
|
+
out = { version: "2013", update: "Cumulative Update 10" }
|
1218
|
+
elsif owa_version == "15.0.1156" #.6"
|
1219
|
+
out = { version: "2013", update: "Cumulative Update 11" }
|
1220
|
+
elsif owa_version == "15.0.1178" #.4"
|
1221
|
+
out = { version: "2013", update: "Cumulative Update 12" }
|
1222
|
+
elsif owa_version == "15.0.1210" #.3"
|
1223
|
+
out = { version: "2013", update: "Cumulative Update 13" }
|
1224
|
+
elsif owa_version == "15.0.1236" #.3"
|
1225
|
+
out = { version: "2013", update: "Cumulative Update 14" }
|
1226
|
+
elsif owa_version == "15.0.1263" #.5"
|
1227
|
+
out = { version: "2013", update: "Cumulative Update 15" }
|
1228
|
+
elsif owa_version == "15.0.1293" #.2"
|
1229
|
+
out = { version: "2013", update: "Cumulative Update 16" }
|
1230
|
+
elsif owa_version == "15.0.1320" #.4"
|
1231
|
+
out = { version: "2013", update: "Cumulative Update 17" }
|
1232
|
+
elsif owa_version == "15.0.1347" #.2"
|
1233
|
+
out = { version: "2013", update: "Cumulative Update 18" }
|
1234
|
+
elsif owa_version == "15.0.1365" #.1"
|
1235
|
+
out = { version: "2013", update: "Cumulative Update 19" }
|
1236
|
+
elsif owa_version == "15.0.1367" #.3"
|
1237
|
+
out = { version: "2013", update: "Cumulative Update 20" }
|
1238
|
+
elsif owa_version == "15.0.1395" #.4"
|
1239
|
+
out = { version: "2013", update: "Cumulative Update 21" }
|
1240
|
+
elsif owa_version == "15.0.1473.3" || owa_version == "15.0.1473"
|
1241
|
+
out = { version: "2013", update: "Cumulative Update 22" }
|
1242
|
+
elsif owa_version == "15.0.1497"
|
1243
|
+
out = { version: "2013", update: "Cumulative Update 23" }
|
1244
|
+
elsif owa_version == "15.0.1497.2"
|
1245
|
+
out = { version: "2013", update: "Cumulative Update 23" }
|
1246
|
+
|
1247
|
+
# 2016
|
1248
|
+
elsif owa_version == "15.1.225" #.16"
|
1249
|
+
out = { version: "2016", update: "Preview" }
|
1250
|
+
elsif owa_version == "15.1.225" #.42"
|
1251
|
+
out = { version: "2016", update: "RTM" }
|
1252
|
+
elsif owa_version == "15.1.396" #.30"
|
1253
|
+
out = { version: "2016", update: "Cumulative Update 1" }
|
1254
|
+
elsif owa_version == "15.1.466" #.34"
|
1255
|
+
out = { version: "2016", update: "Cumulative Update 2" }
|
1256
|
+
elsif owa_version == "15.1.466" || owa_version == "15.1.544"
|
1257
|
+
out = { version: "2016", update: "Cumulative Update 3" }
|
1258
|
+
elsif owa_version == "15.1.669" #.32"
|
1259
|
+
out = { version: "2016", update: "Cumulative Update 4" }
|
1260
|
+
elsif owa_version == "15.1.845" #.34"
|
1261
|
+
out = { version: "2016", update: "Cumulative Update 5" }
|
1262
|
+
elsif owa_version == "15.1.1034" #.26"
|
1263
|
+
out = { version: "2016", update: "Cumulative Update 6" }
|
1264
|
+
elsif owa_version == "15.1.1261" #.35"
|
1265
|
+
out = { version: "2016", update: "Cumulative Update 7" }
|
1266
|
+
elsif owa_version == "15.1.1415" #.2"
|
1267
|
+
out = { version: "2016", update: "Cumulative Update 8" }
|
1268
|
+
elsif owa_version == "15.1.1466" #.3"
|
1269
|
+
out = { version: "2016", update: "Cumulative Update 9" }
|
1270
|
+
elsif owa_version == "15.1.1531" #.3"
|
1271
|
+
out = { version: "2016", update: "Cumulative Update 10" }
|
1272
|
+
elsif owa_version == "15.1.1591" #.01"
|
1273
|
+
out = { version: "2016", update: "Cumulative Update 11" }
|
1274
|
+
elsif owa_version == "15.1.1713" || owa_version == "15.1.1713.5" #.01"
|
1275
|
+
out = { version: "2016", update: "Cumulative Update 12" }
|
1276
|
+
elsif owa_version == "15.1.1779" || owa_version == "15.1.1779.2" #.01"
|
1277
|
+
out = { version: "2016", update: "Cumulative Update 13" }
|
1278
|
+
elsif owa_version == "15.1.1847" || owa_version == "15.1.1847.3" #.01"
|
1279
|
+
out = { version: "2016", update: "Cumulative Update 14" }
|
1280
|
+
elsif owa_version == "15.1.1913" #.01"
|
1281
|
+
out = { version: "2016", update: "Cumulative Update 15" }
|
1282
|
+
elsif owa_version == "15.1.1986" #.01"
|
1283
|
+
out = { version: "2016", update: "Cumulative Update 15",
|
1284
|
+
note: "additional updates applied: #{owa_version}" }
|
1285
|
+
|
1286
|
+
|
1287
|
+
# 2019
|
1288
|
+
elsif owa_version == "15.2.196.0" #
|
1289
|
+
out = { version: "2019", update: "Preview" }
|
1290
|
+
elsif owa_version == "15.2.221" || owa_version == "15.2.221.12" #
|
1291
|
+
out = { version: "2019", update: "RTM" }
|
1292
|
+
elsif owa_version == "15.2.330" || owa_version == "15.2.330.6" #
|
1293
|
+
out = { version: "2019", update: "Cumulative Update 1" }
|
1294
|
+
elsif owa_version == "15.2.397" || owa_version == "15.2.397.3" #
|
1295
|
+
out = { version: "2019", update: "Cumulative Update 2" }
|
1296
|
+
elsif owa_version == "15.2.464" || owa_version == "15.2.529" #
|
1297
|
+
out = { version: "2019", update: "Cumulative Update 3",
|
1298
|
+
note: "additional updates applied: #{owa_version}" }
|
1299
|
+
|
1300
|
+
=begin
|
1301
|
+
1694 Microsoft Exchange Server [Unknown 15.2.221] [Unknown 15.2.221], Exchange Server 2019 RTM
|
1302
|
+
2287 Microsoft Exchange Server [Unknown 15.2.397] [Unknown 15.2.397], Exchange Server 2019 CU2
|
1303
|
+
2464 Microsoft Exchange Server [Unknown 15.2.330] [Unknown 15.2.330], Exchange Server 2019 CU1
|
1304
|
+
2670 Microsoft Exchange Server [Unknown 15.1.544] [Unknown 15.1.544], Exchange Server 2016 CU3
|
1305
|
+
3609 Microsoft Exchange Server [Unknown 15.2.464] [Unknown 15.2.464], Exchange Server 2019 CU3
|
1306
|
+
14034 Microsoft Exchange Server [Unknown 15.1.1713] [Unknown 15.1.1713], Exchange Server 2016 CU12
|
1307
|
+
|
1308
|
+
=end
|
1309
|
+
|
1310
|
+
else
|
1311
|
+
out = { version: "[Unknown #{owa_version}]", update: "[Unknown #{owa_version}]" }
|
1312
|
+
end
|
1313
|
+
|
1314
|
+
|
1315
|
+
|
1316
|
+
end
|
1317
|
+
|
1318
|
+
|
1319
|
+
|
1320
|
+
|
1321
|
+
end
|
1322
|
+
end
|
1323
|
+
end
|
1324
|
+
end
|
1325
|
+
|