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.
Files changed (484) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +21 -0
  3. data/.gitignore +3 -0
  4. data/.ruby-version +1 -0
  5. data/Dockerfile +39 -0
  6. data/Gemfile +10 -3
  7. data/Gemfile.lock +35 -20
  8. data/LICENSE.md +12 -0
  9. data/README.md +79 -0
  10. data/checks/ftp/base.rb +15 -0
  11. data/checks/ftp/filezilla.rb +28 -0
  12. data/checks/ftp/microsoft.rb +27 -0
  13. data/checks/ftp/proftp.rb +28 -0
  14. data/checks/ftp/pureftpd.rb +27 -0
  15. data/checks/ftp/vsftp.rb +28 -0
  16. data/checks/http/123reg.rb +31 -0
  17. data/checks/http/acme.rb +28 -0
  18. data/checks/http/acquia.rb +28 -0
  19. data/checks/http/adeptia.rb +30 -0
  20. data/checks/http/adobe.rb +168 -0
  21. data/checks/http/advantshop.rb +33 -0
  22. data/checks/http/afrihost.rb +29 -0
  23. data/checks/http/aftermarketpl.rb +46 -0
  24. data/checks/http/agility.rb +34 -0
  25. data/checks/http/akamai.rb +88 -0
  26. data/checks/http/alkacon.rb +30 -0
  27. data/checks/http/allegro.rb +28 -0
  28. data/checks/http/almuba.rb +30 -0
  29. data/checks/http/amazon.rb +263 -0
  30. data/checks/http/amirocms.rb +30 -0
  31. data/checks/http/anelectron.rb +29 -0
  32. data/checks/http/anquanbao.rb +32 -0
  33. data/checks/http/aol.rb +29 -0
  34. data/checks/http/apache.rb +358 -0
  35. data/checks/http/appdynamics.rb +43 -0
  36. data/checks/http/arris.rb +30 -0
  37. data/checks/http/artifactory.rb +30 -0
  38. data/checks/http/aruba.rb +27 -0
  39. data/checks/http/atlassian.rb +152 -0
  40. data/checks/http/auth0.rb +44 -0
  41. data/checks/http/automattic.rb +292 -0
  42. data/checks/http/axinom.rb +30 -0
  43. data/checks/http/axios.rb +29 -0
  44. data/checks/http/axis.rb +27 -0
  45. data/checks/http/axway.rb +33 -0
  46. data/checks/http/backdrop.rb +30 -0
  47. data/checks/http/banu.rb +30 -0
  48. data/checks/http/barracuda.rb +99 -0
  49. data/checks/http/base.rb +139 -0
  50. data/checks/http/beehive.rb +30 -0
  51. data/checks/http/bigcartel.rb +33 -0
  52. data/checks/http/bigcommerce.rb +33 -0
  53. data/checks/http/binarysec.rb +47 -0
  54. data/checks/http/bitly.rb +40 -0
  55. data/checks/http/blackboard.rb +44 -0
  56. data/checks/http/blueimp.rb +27 -0
  57. data/checks/http/bomgar.rb +27 -0
  58. data/checks/http/bootstrap.rb +27 -0
  59. data/checks/http/bower.rb +28 -0
  60. data/checks/http/broadcom.rb +29 -0
  61. data/checks/http/brocade.rb +39 -0
  62. data/checks/http/browsermedia.rb +29 -0
  63. data/checks/http/bsm.rb +29 -0
  64. data/checks/http/bynder.rb +31 -0
  65. data/checks/http/calibre.rb +33 -0
  66. data/checks/http/centos.rb +28 -0
  67. data/checks/http/cerberus.rb +28 -0
  68. data/checks/http/charity_engine.rb +27 -0
  69. data/checks/http/checkpoint.rb +56 -0
  70. data/checks/http/cherokee.rb +29 -0
  71. data/checks/http/cisco.rb +134 -0
  72. data/checks/http/citrix.rb +137 -0
  73. data/checks/http/cloud_city.rb +30 -0
  74. data/checks/http/cloudflare.rb +219 -0
  75. data/checks/http/cmsimple.rb +30 -0
  76. data/checks/http/codeigniter.rb +26 -0
  77. data/checks/http/communigate.rb +32 -0
  78. data/checks/http/concrete5.rb +30 -0
  79. data/checks/http/contenido.rb +33 -0
  80. data/checks/http/content/analytics.rb +40 -0
  81. data/checks/http/content/authentication.rb +111 -0
  82. data/checks/http/content/content.rb +92 -0
  83. data/checks/http/content/security_headers.rb +70 -0
  84. data/checks/http/cpanel.rb +56 -0
  85. data/checks/http/cradlepoint.rb +30 -0
  86. data/checks/http/craft.rb +42 -0
  87. data/checks/http/crazydomains.rb +31 -0
  88. data/checks/http/crowdstrike.rb +27 -0
  89. data/checks/http/dan.rb +30 -0
  90. data/checks/http/danneo.rb +30 -0
  91. data/checks/http/day.rb +31 -0
  92. data/checks/http/debian.rb +27 -0
  93. data/checks/http/dell.rb +43 -0
  94. data/checks/http/dev_php.rb +30 -0
  95. data/checks/http/discourse.rb +30 -0
  96. data/checks/http/discuz!.rb +30 -0
  97. data/checks/http/distil.rb +27 -0
  98. data/checks/http/django.rb +27 -0
  99. data/checks/http/dmanager.rb +29 -0
  100. data/checks/http/dns_made_easy.rb +29 -0
  101. data/checks/http/docuwiki.rb +27 -0
  102. data/checks/http/docverify.rb +29 -0
  103. data/checks/http/domain_parking_ru.rb +31 -0
  104. data/checks/http/domainname_shop.rb +30 -0
  105. data/checks/http/dosarrest.rb +29 -0
  106. data/checks/http/dreamhost.rb +31 -0
  107. data/checks/http/drupal.rb +91 -0
  108. data/checks/http/duo.rb +45 -0
  109. data/checks/http/dyn.rb +41 -0
  110. data/checks/http/dynamicweb.rb +29 -0
  111. data/checks/http/dynatrace.rb +40 -0
  112. data/checks/http/easyname.rb +44 -0
  113. data/checks/http/eclipse.rb +64 -0
  114. data/checks/http/enservio.rb +29 -0
  115. data/checks/http/envoy.rb +26 -0
  116. data/checks/http/epiccom.rb +31 -0
  117. data/checks/http/ergon.rb +31 -0
  118. data/checks/http/expressjs.rb +27 -0
  119. data/checks/http/ezproxy.rb +28 -0
  120. data/checks/http/f5.rb +122 -0
  121. data/checks/http/facebook.rb +27 -0
  122. data/checks/http/fastly.rb +67 -0
  123. data/checks/http/first_domains.rb +31 -0
  124. data/checks/http/flywheel.rb +30 -0
  125. data/checks/http/forgerock.rb +43 -0
  126. data/checks/http/fortinet.rb +29 -0
  127. data/checks/http/fresh_service.rb +30 -0
  128. data/checks/http/frontify.rb +29 -0
  129. data/checks/http/generic.rb +272 -0
  130. data/checks/http/github.rb +40 -0
  131. data/checks/http/gitlab.rb +30 -0
  132. data/checks/http/glimpse.rb +32 -0
  133. data/checks/http/globalscape.rb +27 -0
  134. data/checks/http/goahead.rb +31 -0
  135. data/checks/http/godaddy.rb +31 -0
  136. data/checks/http/google.rb +164 -0
  137. data/checks/http/google_cloud.rb +27 -0
  138. data/checks/http/grafana.rb +27 -0
  139. data/checks/http/gunicorn.rb +30 -0
  140. data/checks/http/haskell.rb +31 -0
  141. data/checks/http/heroku.rb +77 -0
  142. data/checks/http/hikvision.rb +29 -0
  143. data/checks/http/hp.rb +27 -0
  144. data/checks/http/hubspot.rb +104 -0
  145. data/checks/http/ibm.rb +182 -0
  146. data/checks/http/icewarp.rb +29 -0
  147. data/checks/http/impresspages.rb +30 -0
  148. data/checks/http/imunify360.rb +28 -0
  149. data/checks/http/incapsula.rb +54 -0
  150. data/checks/http/ingram_micro.rb +28 -0
  151. data/checks/http/innovative_interfaces_inc.rb +27 -0
  152. data/checks/http/inside_sales.rb +27 -0
  153. data/checks/http/instra.rb +61 -0
  154. data/checks/http/intercom.rb +27 -0
  155. data/checks/http/ivanti.rb +28 -0
  156. data/checks/http/jamf.rb +31 -0
  157. data/checks/http/jekyll.rb +31 -0
  158. data/checks/http/jenkins.rb +59 -0
  159. data/checks/http/jetbrains.rb +27 -0
  160. data/checks/http/jetty.rb +27 -0
  161. data/checks/http/jforum.rb +27 -0
  162. data/checks/http/jitbit.rb +30 -0
  163. data/checks/http/jive.rb +27 -0
  164. data/checks/http/joomla.rb +43 -0
  165. data/checks/http/jquery.rb +58 -0
  166. data/checks/http/jupyter.rb +28 -0
  167. data/checks/http/kentico.rb +27 -0
  168. data/checks/http/kerio.rb +34 -0
  169. data/checks/http/kibana.rb +56 -0
  170. data/checks/http/kong.rb +32 -0
  171. data/checks/http/kubernetes.rb +66 -0
  172. data/checks/http/laravel.rb +27 -0
  173. data/checks/http/lastpass.rb +27 -0
  174. data/checks/http/lcn.rb +27 -0
  175. data/checks/http/leadpages.rb +29 -0
  176. data/checks/http/lighttpd.rb +31 -0
  177. data/checks/http/limelight_networks.rb +43 -0
  178. data/checks/http/limesuvey.rb +27 -0
  179. data/checks/http/link1.rb +31 -0
  180. data/checks/http/linksys.rb +38 -0
  181. data/checks/http/litespeed.rb +29 -0
  182. data/checks/http/lithium.rb +43 -0
  183. data/checks/http/lotus.rb +55 -0
  184. data/checks/http/magento.rb +96 -0
  185. data/checks/http/magnolia.rb +27 -0
  186. data/checks/http/mailchimp.rb +27 -0
  187. data/checks/http/manage_engine.rb +27 -0
  188. data/checks/http/markmonitor.rb +27 -0
  189. data/checks/http/mbf_bioscience.rb +29 -0
  190. data/checks/http/mcafee.rb +27 -0
  191. data/checks/http/media_temple.rb +27 -0
  192. data/checks/http/mediawiki.rb +54 -0
  193. data/checks/http/mhcsoftwareinc.rb +29 -0
  194. data/checks/http/microsoft.rb +1325 -0
  195. data/checks/http/mikrotik.rb +44 -0
  196. data/checks/http/modwsgi.rb +30 -0
  197. data/checks/http/mojolicious.rb +32 -0
  198. data/checks/http/moodle.rb +28 -0
  199. data/checks/http/mura.rb +30 -0
  200. data/checks/http/nagios.rb +27 -0
  201. data/checks/http/namesilo.rb +31 -0
  202. data/checks/http/nationbuilder.rb +30 -0
  203. data/checks/http/nec.rb +32 -0
  204. data/checks/http/netlify.rb +40 -0
  205. data/checks/http/netobjects_inc.rb +30 -0
  206. data/checks/http/netscape.rb +29 -0
  207. data/checks/http/neustar.rb +29 -0
  208. data/checks/http/new_relic.rb +27 -0
  209. data/checks/http/nexicom.rb +44 -0
  210. data/checks/http/nginx.rb +82 -0
  211. data/checks/http/nisource.rb +29 -0
  212. data/checks/http/nodejs.rb +79 -0
  213. data/checks/http/okta.rb +53 -0
  214. data/checks/http/ookla.rb +28 -0
  215. data/checks/http/openbsd.rb +30 -0
  216. data/checks/http/openresty.rb +41 -0
  217. data/checks/http/openscholar.rb +27 -0
  218. data/checks/http/opensolution.rb +46 -0
  219. data/checks/http/openssl.rb +43 -0
  220. data/checks/http/opentext.rb +46 -0
  221. data/checks/http/openvpn.rb +27 -0
  222. data/checks/http/opscode.rb +43 -0
  223. data/checks/http/oracle.rb +335 -0
  224. data/checks/http/orion_technology.rb +30 -0
  225. data/checks/http/ovh.rb +46 -0
  226. data/checks/http/palo_alto.rb +27 -0
  227. data/checks/http/pantheon.rb +54 -0
  228. data/checks/http/papercut.rb +29 -0
  229. data/checks/http/parallels.rb +44 -0
  230. data/checks/http/pardot.rb +44 -0
  231. data/checks/http/parkingcrew.rb +47 -0
  232. data/checks/http/pbworks.rb +27 -0
  233. data/checks/http/perfectsense.rb +28 -0
  234. data/checks/http/perl.rb +62 -0
  235. data/checks/http/pfsense.rb +27 -0
  236. data/checks/http/php.rb +72 -0
  237. data/checks/http/phpmyadmin.rb +40 -0
  238. data/checks/http/phpwind.rb +30 -0
  239. data/checks/http/phusion.rb +59 -0
  240. data/checks/http/ping_identity.rb +28 -0
  241. data/checks/http/pivotal_software.rb +97 -0
  242. data/checks/http/pjax.rb +40 -0
  243. data/checks/http/plesk.rb +58 -0
  244. data/checks/http/porkbun.rb +31 -0
  245. data/checks/http/progress.rb +30 -0
  246. data/checks/http/proofpoint.rb +30 -0
  247. data/checks/http/pulsesecure.rb +91 -0
  248. data/checks/http/python.rb +30 -0
  249. data/checks/http/qnap.rb +43 -0
  250. data/checks/http/qualys.rb +69 -0
  251. data/checks/http/rapid7.rb +27 -0
  252. data/checks/http/rbs.rb +30 -0
  253. data/checks/http/readmeio.rb +28 -0
  254. data/checks/http/red_hat.rb +95 -0
  255. data/checks/http/redmine.rb +38 -0
  256. data/checks/http/restlet.rb +30 -0
  257. data/checks/http/ritecms.rb +30 -0
  258. data/checks/http/roadiz.rb +30 -0
  259. data/checks/http/rock.rb +30 -0
  260. data/checks/http/rollbar.rb +27 -0
  261. data/checks/http/roundcube.rb +42 -0
  262. data/checks/http/ruby.rb +92 -0
  263. data/checks/http/ruckus_wireless.rb +26 -0
  264. data/checks/http/sailpoint.rb +30 -0
  265. data/checks/http/salesforce.rb +28 -0
  266. data/checks/http/sap.rb +149 -0
  267. data/checks/http/seamless_cms.rb +30 -0
  268. data/checks/http/securi.rb +54 -0
  269. data/checks/http/sedo.rb +63 -0
  270. data/checks/http/segment.rb +27 -0
  271. data/checks/http/sencha.rb +31 -0
  272. data/checks/http/sentry.rb +27 -0
  273. data/checks/http/serendipity.rb +30 -0
  274. data/checks/http/shopfactory.rb +30 -0
  275. data/checks/http/sip.rb +29 -0
  276. data/checks/http/sitecore.rb +39 -0
  277. data/checks/http/smartling.rb +27 -0
  278. data/checks/http/smf.rb +30 -0
  279. data/checks/http/snews.rb +30 -0
  280. data/checks/http/software_ag.rb +47 -0
  281. data/checks/http/soha.rb +66 -0
  282. data/checks/http/solarwinds.rb +41 -0
  283. data/checks/http/sonatype.rb +43 -0
  284. data/checks/http/sonicwall.rb +63 -0
  285. data/checks/http/sophos.rb +40 -0
  286. data/checks/http/southriver.rb +43 -0
  287. data/checks/http/splash.rb +29 -0
  288. data/checks/http/splunk.rb +27 -0
  289. data/checks/http/springfox.rb +43 -0
  290. data/checks/http/squarespace.rb +41 -0
  291. data/checks/http/stackpath.rb +29 -0
  292. data/checks/http/stibo_systems.rb +35 -0
  293. data/checks/http/subrion.rb +29 -0
  294. data/checks/http/symantec.rb +27 -0
  295. data/checks/http/synacor.rb +26 -0
  296. data/checks/http/tableau_software.rb +42 -0
  297. data/checks/http/telerik.rb +46 -0
  298. data/checks/http/tengine.rb +29 -0
  299. data/checks/http/tibco.rb +57 -0
  300. data/checks/http/townnews.rb +33 -0
  301. data/checks/http/tridium.rb +28 -0
  302. data/checks/http/twiki.rb +27 -0
  303. data/checks/http/typo3.rb +27 -0
  304. data/checks/http/uberflip.rb +28 -0
  305. data/checks/http/ucoz.rb +31 -0
  306. data/checks/http/umbraco.rb +29 -0
  307. data/checks/http/unbounce.rb +28 -0
  308. data/checks/http/united_domains.rb +27 -0
  309. data/checks/http/vanilla_forums.rb +27 -0
  310. data/checks/http/varnish.rb +79 -0
  311. data/checks/http/vbulletin.rb +66 -0
  312. data/checks/http/verizon.rb +27 -0
  313. data/checks/http/vmware.rb +53 -0
  314. data/checks/http/vue_js.rb +27 -0
  315. data/checks/http/webflow.rb +44 -0
  316. data/checks/http/webgui.rb +30 -0
  317. data/checks/http/webmin.rb +44 -0
  318. data/checks/http/webpagetest_project.rb +30 -0
  319. data/checks/http/wftpserver.rb +28 -0
  320. data/checks/http/wildfly.rb +29 -0
  321. data/checks/http/wix.rb +28 -0
  322. data/checks/http/woltlab_gmbh.rb +30 -0
  323. data/checks/http/wordpress/ithemes.rb +50 -0
  324. data/checks/http/wordpress/john_godley.rb +29 -0
  325. data/checks/http/wordpress/pixelcraft.rb +31 -0
  326. data/checks/http/wordpress/rocklobster.rb +29 -0
  327. data/checks/http/wordpress/team_heateor.rb +31 -0
  328. data/checks/http/wordpress/w3_total_cache.rb +30 -0
  329. data/checks/http/wordpress/wp_fastest_cache.rb +30 -0
  330. data/checks/http/wordpress/wp_super_cache.rb +46 -0
  331. data/checks/http/wordpress/wpbakery.rb +30 -0
  332. data/checks/http/world4you.rb +46 -0
  333. data/checks/http/wp_engine.rb +57 -0
  334. data/checks/http/xcms.rb +30 -0
  335. data/checks/http/xelion.rb +27 -0
  336. data/checks/http/xerox.rb +27 -0
  337. data/checks/http/xmb.rb +30 -0
  338. data/checks/http/xtec.rb +30 -0
  339. data/checks/http/yaf.rb +30 -0
  340. data/checks/http/yaws.rb +30 -0
  341. data/checks/http/yoast.rb +31 -0
  342. data/checks/http/zeit.rb +30 -0
  343. data/checks/http/zendesk.rb +41 -0
  344. data/checks/http/zengenti.rb +30 -0
  345. data/checks/http/zoho.rb +69 -0
  346. data/checks/http/zscaler.rb +30 -0
  347. data/checks/smtp/base.rb +16 -0
  348. data/checks/smtp/exim.rb +30 -0
  349. data/checks/snmp/base.rb +15 -0
  350. data/checks/snmp/cisco.rb +59 -0
  351. data/checks/ssh/array_networks.rb +28 -0
  352. data/checks/ssh/base.rb +16 -0
  353. data/checks/ssh/openssh.rb +26 -0
  354. data/checks/telnet/base.rb +16 -0
  355. data/checks/telnet/huawei.rb +26 -0
  356. data/data/logos/acquia.png +0 -0
  357. data/data/logos/amazon_cloudfront.png +0 -0
  358. data/data/logos/apache_coyote.png +0 -0
  359. data/data/logos/apache_tomcat.png +0 -0
  360. data/data/logos/atlassian_bamboo.png +0 -0
  361. data/data/logos/atlassian_bitbucket.png +0 -0
  362. data/data/logos/atlassian_confluence.png +0 -0
  363. data/data/logos/atlassian_crowd.png +0 -0
  364. data/data/logos/atlassian_crucible.png +0 -0
  365. data/data/logos/atlassian_fisheye.png +0 -0
  366. data/data/logos/atlassian_jira.png +0 -0
  367. data/data/logos/atlassian_sourcetree.png +0 -0
  368. data/data/logos/automattic_wordpress.png +0 -0
  369. data/data/logos/calibre.png +0 -0
  370. data/data/logos/cisco_ssl_vpn.png +0 -0
  371. data/data/logos/citrix_netscaler_gateway.png +0 -0
  372. data/data/logos/cloudflare_cdn.png +0 -0
  373. data/data/logos/drupal.png +0 -0
  374. data/data/logos/f5_big-ip.png +0 -0
  375. data/data/logos/f5_big-ip_apm.png +0 -0
  376. data/data/logos/fastly.png +0 -0
  377. data/data/logos/generic.png +0 -0
  378. data/data/logos/gitlab.png +0 -0
  379. data/data/logos/ibm_axway_securetransport.png +0 -0
  380. data/data/logos/lithium.png +0 -0
  381. data/data/logos/microsoft_asp.net.png +0 -0
  382. data/data/logos/microsoft_iis.png +0 -0
  383. data/data/logos/microsoft_outlook_web_access.png +0 -0
  384. data/data/logos/microsoft_sharepoint.png +0 -0
  385. data/data/logos/microtik_routeros.png +0 -0
  386. data/data/logos/mikrotik_routeros.png +0 -0
  387. data/data/logos/newrelic.png +0 -0
  388. data/data/logos/nginx.png +0 -0
  389. data/data/logos/okta.png +0 -0
  390. data/data/logos/oracle_glassfish.png +0 -0
  391. data/data/logos/oracle_java_application_server.png +0 -0
  392. data/data/logos/oracle_java_server_pages.png +0 -0
  393. data/data/logos/oracle_weblogic.png +0 -0
  394. data/data/logos/phpmyadmin.png +0 -0
  395. data/data/logos/tableau.png +0 -0
  396. data/data/logos/vmware_esxi.png +0 -0
  397. data/data/logos/vmware_horizon.png +0 -0
  398. data/data/logos/zendesk.png +0 -0
  399. data/data/logos/zimbra_server.png +0 -0
  400. data/data/microsoft_sharepoint_versions.csv +224 -0
  401. data/intrigue-ident.gemspec +8 -7
  402. data/lib/banner_helpers.rb +36 -0
  403. data/lib/ftp/check_factory.rb +24 -0
  404. data/lib/ftp/content.rb +13 -0
  405. data/lib/ftp/ftp.rb +52 -0
  406. data/lib/ftp/matchers.rb +26 -0
  407. data/lib/http/browser.rb +260 -0
  408. data/lib/http/check_factory.rb +47 -0
  409. data/lib/http/content.rb +45 -0
  410. data/lib/http/http.rb +463 -0
  411. data/lib/http/matchers.rb +132 -0
  412. data/lib/ident.rb +263 -0
  413. data/lib/recog_wrapper.rb +70 -0
  414. data/lib/simple_socket.rb +41 -0
  415. data/lib/smtp/check_factory.rb +24 -0
  416. data/lib/smtp/content.rb +13 -0
  417. data/lib/smtp/matchers.rb +28 -0
  418. data/lib/smtp/smtp.rb +53 -0
  419. data/lib/snmp/check_factory.rb +24 -0
  420. data/lib/snmp/content.rb +13 -0
  421. data/lib/snmp/matchers.rb +25 -0
  422. data/lib/snmp/snmp.rb +55 -0
  423. data/lib/ssh/check_factory.rb +24 -0
  424. data/lib/ssh/content.rb +13 -0
  425. data/lib/ssh/matchers.rb +26 -0
  426. data/lib/ssh/ssh.rb +52 -0
  427. data/lib/telnet/check_factory.rb +24 -0
  428. data/lib/telnet/content.rb +13 -0
  429. data/lib/telnet/matchers.rb +26 -0
  430. data/lib/telnet/telnet.rb +52 -0
  431. data/lib/utils.rb +19 -0
  432. data/lib/version.rb +3 -0
  433. data/lib/vulndb_client.rb +43 -0
  434. data/util/console.rb +9 -0
  435. data/util/docker.sh +2 -0
  436. data/util/ident.rb +375 -0
  437. data/util/list_paths.rb +12 -0
  438. data/util/tags.rb +36 -0
  439. data/utils.rb +19 -0
  440. metadata +487 -55
  441. data/ident.rb +0 -319
  442. data/lib/check_factory.rb +0 -22
  443. data/lib/checks/akamai.rb +0 -22
  444. data/lib/checks/amazon.rb +0 -26
  445. data/lib/checks/aruba.rb +0 -20
  446. data/lib/checks/asp_net.rb +0 -70
  447. data/lib/checks/atlassian.rb +0 -55
  448. data/lib/checks/base.rb +0 -13
  449. data/lib/checks/chef.rb +0 -31
  450. data/lib/checks/cisco.rb +0 -33
  451. data/lib/checks/citrix.rb +0 -24
  452. data/lib/checks/cloudflare.rb +0 -59
  453. data/lib/checks/cloudfront.rb +0 -41
  454. data/lib/checks/cpanel.rb +0 -23
  455. data/lib/checks/django.rb +0 -22
  456. data/lib/checks/drupal.rb +0 -26
  457. data/lib/checks/f5.rb +0 -24
  458. data/lib/checks/fastly.rb +0 -22
  459. data/lib/checks/generic.rb +0 -23
  460. data/lib/checks/gitlab.rb +0 -22
  461. data/lib/checks/google.rb +0 -23
  462. data/lib/checks/grafana.rb +0 -22
  463. data/lib/checks/jenkins.rb +0 -40
  464. data/lib/checks/joomla.rb +0 -23
  465. data/lib/checks/limesuvey.rb +0 -22
  466. data/lib/checks/lithium.rb +0 -30
  467. data/lib/checks/magento.rb +0 -22
  468. data/lib/checks/mcafee.rb +0 -22
  469. data/lib/checks/mediawiki.rb +0 -38
  470. data/lib/checks/microsoft.rb +0 -69
  471. data/lib/checks/nagios.rb +0 -22
  472. data/lib/checks/oracle.rb +0 -38
  473. data/lib/checks/palo_alto.rb +0 -23
  474. data/lib/checks/pardot.rb +0 -22
  475. data/lib/checks/pfsense.rb +0 -25
  476. data/lib/checks/phpmyadmin.rb +0 -22
  477. data/lib/checks/rabbitmq.rb +0 -29
  478. data/lib/checks/spring.rb +0 -31
  479. data/lib/checks/team_city.rb +0 -22
  480. data/lib/checks/telerik.rb +0 -25
  481. data/lib/checks/tomcat.rb +0 -22
  482. data/lib/checks/varnish.rb +0 -27
  483. data/lib/checks/wordpress.rb +0 -120
  484. data/lib/checks/wp_engine.rb +0 -22
@@ -0,0 +1,111 @@
1
+ module Intrigue
2
+ module Ident
3
+ module Check
4
+ class Authentication < Intrigue::Ident::Check::Base
5
+
6
+ def generate_checks(url)
7
+ [
8
+ {
9
+ :type => "content",
10
+ :name => "Authentication - HTTP",
11
+ :match_type => :content_headers,
12
+ :dynamic_result => lambda { |d|
13
+ return false unless d["details"]["headers"]
14
+ return true if _first_header_match(d, /^www-authenticate:.*$/)
15
+ false
16
+ },
17
+ :dynamic_hide => lambda { |d| false },
18
+ :dynamic_issue => lambda { |d| false },
19
+ :paths => ["#{url}"]
20
+ },
21
+ {
22
+ :type => "content",
23
+ :name => "Authentication - NTLM",
24
+ :match_type => :content_headers,
25
+ :dynamic_result => lambda { |d|
26
+ return false unless d["details"]["headers"]
27
+ return true if _first_header_match(d, /^www-authenticate: NTLM$/i)
28
+ false
29
+ },
30
+ :dynamic_hide => lambda { |d| false },
31
+ :dynamic_issue => lambda { |d| false },
32
+ :paths => ["#{url}"]
33
+ },
34
+ {
35
+ :type => "content",
36
+ :name =>"Authentication - Forms",
37
+ :references => [
38
+ "https://webstersprodigy.net/2010/04/07/nmap-script-to-try-and-detect-login-pages/",
39
+ "https://nmap.org/nsedoc/scripts/http-auth-finder.html"
40
+ ],
41
+ :match_type => :content_body,
42
+ :dynamic_result => lambda { |d|
43
+ return true if _body(d) =~ /<input type=\"password\"/im;
44
+ return true if _body(d) =~ /<script>[^>]*login/im;
45
+ return true if _body(d) =~ /<[^>]*login/im;
46
+ return true if _body(d) =~ /<script>[^>]*password/im;
47
+ return true if _body(d) =~ /<script>[^>]*user/im;
48
+ return true if _body(d) =~ /<input[^>)]*user/im;
49
+ return true if _body(d) =~ /<input[^>)]*pass/im;
50
+ return true if _body(d) =~ /<input[^>)]*pwd/im;
51
+ return true if _body(d) =~ /log_in/im;
52
+ return true if _body(d) =~ /log_out/im;
53
+ return true if _body(d) =~ /class=\"login-btn/im;
54
+ return true if _body(d) =~ /<[^>]*login/im;
55
+ return true if _body(d) =~ />Login<\/a>/im;
56
+ return true if _body(d) =~ />Logout<\/a>/im;
57
+ return true if _body(d) =~ />Log In<\/a>/im;
58
+ return true if _body(d) =~ />Log Out<\/a>/im;
59
+ return true if _body(d) =~ />Sign In<\/a>/im;
60
+ return true if _body(d) =~ /sign\ in/im;
61
+ return true if _body(d) =~ /sign_in/im;
62
+ return true if _body(d) =~ /create an account/im;
63
+ return true if _body(d) =~ /create_account/im;
64
+ false
65
+ },
66
+ :dynamic_hide => lambda { |d| false },
67
+ :dynamic_issue => lambda { |d| false },
68
+ :paths => ["#{url}"]
69
+ },
70
+ {
71
+ :type => "content",
72
+ :name => "Authentication - Session Identifier",
73
+ :references => [
74
+ "https://github.com/fuzzdb-project/fuzzdb/blob/ecb0850538bc9152949fa4579654d6b64e2fdb97/regex/sessionid.txt"
75
+ ],
76
+ :match_type => :content_cookies,
77
+ :dynamic_result => lambda { |d|
78
+ return false unless d["details"]["cookies"]
79
+ return true if _first_cookie_match d, /ASP.NET_SessionId/i
80
+ return true if _first_cookie_match d, /ASPSESSIONID/i
81
+ return true if _first_cookie_match d, /ASPXAUTH/i
82
+ return true if _first_cookie_match d, /barra_counter_session/i
83
+ return true if _first_cookie_match d, /cfid/i
84
+ return true if _first_cookie_match d, /cftoken/i
85
+ return true if _first_cookie_match d, /_enservio_session/i
86
+ return true if _first_cookie_match d, /grafana_sess/i
87
+ return true if _first_cookie_match d, /_gitlab_session/i
88
+ return true if _first_cookie_match d, /jive.login.ts/i
89
+ return true if _first_cookie_match d, /JSESSIONID/i
90
+ return true if _first_cookie_match d, /LiSESSIONID/i
91
+ return true if _first_cookie_match d, /MRHSession/i
92
+ return true if _first_cookie_match d, /sails.sid/i
93
+ return true if _first_cookie_match d, /sessid/i
94
+ return true if _first_cookie_match d, /session/i
95
+ return true if _first_cookie_match d, /sid/i
96
+ return true if _first_cookie_match d, /SITESERVER/i
97
+ return true if _first_cookie_match d, /TWIKISID/i
98
+ return true if _first_cookie_match d, /viewstate/i
99
+ return true if _first_cookie_match d, /zenid/i
100
+ false
101
+ },
102
+ :dynamic_hide => lambda { |d| false },
103
+ :dynamic_issue => lambda { |d| false },
104
+ :paths => ["#{url}"]
105
+ },
106
+ ]
107
+ end
108
+ end
109
+ end
110
+ end
111
+ end
@@ -0,0 +1,92 @@
1
+ module Intrigue
2
+ module Ident
3
+ module Check
4
+ class Content < Intrigue::Ident::Check::Base
5
+
6
+ def generate_checks(url)
7
+ [
8
+ {
9
+ :type => "content",
10
+ :name =>"Location Header",
11
+ :match_type => :content_header,
12
+ :dynamic_result => lambda { |d| _first_header_capture(d,/^location:(.*)$/i) },
13
+ :dynamic_hide => lambda { |d| false },
14
+ :dynamic_issue => lambda { |d| false },
15
+ :paths => ["#{url}"]
16
+ },
17
+ {
18
+ :type => "content",
19
+ :name =>"Directory Listing Detected",
20
+ :match_type => :content_title,
21
+ :dynamic_result => lambda { |d| (
22
+ _first_title_match(d,/Index of \//) ||
23
+ _first_body_match(d, /<h1>Index of \//) ||
24
+ _first_body_match(d, /\[To Parent Directory\]/) ) ? true : false },
25
+ :dynamic_hide => lambda { |d| false },
26
+ :issue => "directory_listing_detected",
27
+ :paths => ["#{url}"]
28
+ },
29
+ #{
30
+ # :type => "content",
31
+ # :name =>"Open Redirect Detected",
32
+ # :match_type => :content_body,
33
+ # :references => [
34
+ # "https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/Open%20Redirect"
35
+ # ],
36
+ # :dynamic_result => lambda { |d|
37
+ # regex_list = [
38
+ # /\?next=http/i,/\?url=http/i,/\?target=http/i,/\?rurl=http/i,
39
+ # /\?dest=http/i,/\?destination=http/i,/\?redir=http/i,
40
+ # /\?redirect_uri=http/i,/\?redirect_url=http/i,/\?redirect=http/i,
41
+ # /\/redirect\/http/i,/\/cgi-bin\/redirect.cgi\?http/i,/\/out\/http/i,
42
+ # /\/out\?http/i,/\?view=http/i,/\/login\?to=http/i,/\?image_url=http/i,
43
+ # /\?go=http/i,/\?return=http/i,/\?returnTo=http/i,/\?return_to=http/i,
44
+ # /\?checkout_url=http/i,/\?continue=http/i,/\?return_path=http/i
45
+ # ]
46
+ # out = false
47
+ # regex_list.each { |regex|
48
+ # _first_body_match(d,regex) ? out = true : nil
49
+ # }
50
+ # out
51
+ # },
52
+ # :dynamic_hide => lambda { |d| false },
53
+ # :dynamic_issue => lambda { |d| false },
54
+ # :paths => ["#{url}"]
55
+ #},
56
+ {
57
+ :type => "content",
58
+ :name =>"Form Detected",
59
+ :match_type => :content_body,
60
+ :dynamic_result => lambda { |d| _first_body_match(d,/\<form/) ? true : false },
61
+ :dynamic_hide => lambda { |d| false },
62
+ :dynamic_issue => lambda { |d| false },
63
+ :paths => ["#{url}"]
64
+ },
65
+ {
66
+ :type => "content",
67
+ :name =>"File Upload Form Detected",
68
+ :match_type => :content_body,
69
+ :dynamic_result => lambda { |d| _first_body_match(d,/enctype=\"multipart\/form-data/) ? true : false },
70
+ :paths => ["#{url}"],
71
+ :dynamic_hide => lambda { |d| false },
72
+ :dynamic_issue => lambda { |d| false },
73
+ },
74
+ {
75
+ :type => "content",
76
+ :name =>"Email Addresses Detected",
77
+ :match_type => :content_title,
78
+ :dynamic_result => lambda { |d|
79
+ email_address_regex = /\A([\w+\-].?)+@[a-z\d\-]+(\.[a-z]+)*\.[a-z]+\z/i
80
+ captures = _all_body_captures(d,email_address_regex) || []
81
+ captures.select{|e| !(e =~ /\.png$/) }.compact
82
+ },
83
+ :dynamic_hide => lambda { |d| false },
84
+ :dynamic_issue => lambda { |d| false },
85
+ :paths => ["#{url}"]
86
+ }
87
+ ]
88
+ end
89
+ end
90
+ end
91
+ end
92
+ end
@@ -0,0 +1,70 @@
1
+ module Intrigue
2
+ module Ident
3
+ module Check
4
+ class SecurityHeaders < Intrigue::Ident::Check::Base
5
+
6
+ def generate_checks(url)
7
+ [
8
+ {
9
+ :type => "content",
10
+ :name => "Access-Control-Allow-Origin Header",
11
+ :match_type => :content_headers,
12
+ :dynamic_result => lambda { |d|
13
+ return true if _first_header_match d, /^Access-Control-Allow-Origin:.*/i;
14
+ false
15
+ },
16
+ :dynamic_hide => lambda { |d| false },
17
+ :dynamic_issue => lambda { |d| false },
18
+ :paths => ["#{url}"]
19
+ },
20
+ {
21
+ :type => "content",
22
+ :name => "P3P Header",
23
+ :match_type => :content_headers,
24
+ :dynamic_result => lambda { |d|
25
+ return true if _first_header_match d, /^p3p:.*/i;
26
+ false
27
+ },
28
+ :dynamic_hide => lambda { |d| false },
29
+ :dynamic_issue => lambda { |d| false },
30
+ :paths => ["#{url}"]
31
+ },
32
+ #{
33
+ # :type => "content",
34
+ # :name => "X-PJAX Header",
35
+ # :match_type => :content_headers,
36
+ # :dynamic_result => lambda { |d| _first_header_capture d, /^x-pjax-url:(.*)/i },
37
+ # :dynamic_hide => lambda { |d| false },
38
+ # :dynamic_issue => lambda { |d| false },
39
+ # :paths => ["#{url}"]
40
+ #},
41
+ {
42
+ :type => "content",
43
+ :name => "X-Frame-Options Header",
44
+ :match_type => :content_headers,
45
+ :dynamic_result => lambda { |d|
46
+ return true if _first_header_match d, /^x-frame-options:.*/i;
47
+ false
48
+ },
49
+ :dynamic_hide => lambda { |d| false },
50
+ :dynamic_issue => lambda { |d| false },
51
+ :paths => ["#{url}"]
52
+ },
53
+ {
54
+ :type => "content",
55
+ :name => "X-XSS-Protection Header",
56
+ :match_type => :content_headers,
57
+ :dynamic_result => lambda { |d|
58
+ return true if _first_header_match d, /^x-xss-protection:.*/i;
59
+ false
60
+ },
61
+ :dynamic_hide => lambda { |d| false },
62
+ :dynamic_issue => lambda { |d| false },
63
+ :paths => ["#{url}"]
64
+ }
65
+ ]
66
+ end
67
+ end
68
+ end
69
+ end
70
+ end
@@ -0,0 +1,56 @@
1
+ module Intrigue
2
+ module Ident
3
+ module Check
4
+ class Cpanel < Intrigue::Ident::Check::Base
5
+
6
+ def generate_checks(url)
7
+ [
8
+ {
9
+ :type => "fingerprint",
10
+ :category => "application",
11
+ :tags => ["COTS","Hosting","Administrative"],
12
+ :vendor => "cPanel",
13
+ :product =>"cPanel",
14
+ :match_details =>"server header",
15
+ :version => nil,
16
+ :match_type => :content_headers,
17
+ :match_content => /server: cPanel/i,
18
+ :paths => ["#{url}"],
19
+ :inference => false
20
+ },
21
+ {
22
+ :type => "fingerprint",
23
+ :category => "application",
24
+ :tags => ["COTS","Hosting","Administrative"],
25
+ :vendor => "cPanel",
26
+ :product =>"cPanel Hosted - Missing Page",
27
+ :match_details =>"cPanel Hosted, but either misconfigured, or accessed via ip vs hostname?",
28
+ :version => nil,
29
+ :match_type => :content_body,
30
+ :match_content => /URL=\/cgi-sys\/defaultwebpage.cgi/,
31
+ :hide => true,
32
+ :paths => ["#{url}"],
33
+ :inference => false
34
+ },
35
+ {
36
+ :type => "fingerprint",
37
+ :category => "application",
38
+ :tags => ["COTS","Administrative"],
39
+ :vendor => "cPanel",
40
+ :product =>"cPanel - Not configured",
41
+ :match_details =>"cPanel - not yet configured",
42
+ :version => nil,
43
+ :match_type => :content_body,
44
+ :match_content => /href=\"\/cpanel\"\>log in<\/a> to launch this site/,
45
+ :hide => true,
46
+ :paths => ["#{url}"],
47
+ :examples => ['href="/cpanel">log in</a> to launch this site'],
48
+ :inference => false
49
+ }
50
+ ]
51
+ end
52
+
53
+ end
54
+ end
55
+ end
56
+ end
@@ -0,0 +1,30 @@
1
+ module Intrigue
2
+ module Ident
3
+ module Check
4
+ class Cerberus < Intrigue::Ident::Check::Base
5
+
6
+ def generate_checks(url)
7
+ [
8
+ {
9
+ :type => "fingerprint",
10
+ :category => "application",
11
+ :tags => ["Web Server"],
12
+ :vendor => "Cradlepoint",
13
+ :product =>"HTTP Service",
14
+ :match_details =>"server header",
15
+ :version => nil,
16
+ :match_type => :content_headers,
17
+ :match_content => /^server:.*Cerberus.*$/,
18
+ :dynamic_version => lambda{ |x|
19
+ _first_header_capture(x,/^server:.*Cerberus\/([\d\.]*)\s.*$/i)
20
+ },
21
+ :paths => ["#{url}"],
22
+ :inference => true
23
+ }
24
+ ]
25
+ end
26
+
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,42 @@
1
+ module Intrigue
2
+ module Ident
3
+ module Check
4
+ class Craft < Intrigue::Ident::Check::Base
5
+
6
+ def generate_checks(url)
7
+ [
8
+ {
9
+ :type => "fingerprint",
10
+ :category => "application",
11
+ :tags => ["CMS"],
12
+ :vendor => "Craft",
13
+ :product =>"CMS",
14
+ :match_details =>"csrf protection cookie",
15
+ :version => nil,
16
+ :match_type => :content_cookies,
17
+ :match_content => /CRAFT_CSRF_TOKEN/,
18
+ :hide => false,
19
+ :paths => ["#{url}"],
20
+ :inference => false
21
+ },
22
+ {
23
+ :type => "fingerprint",
24
+ :category => "application",
25
+ :tags => ["CMS"],
26
+ :vendor => "Craft",
27
+ :product =>"CMS",
28
+ :match_details =>"x-powered-by header",
29
+ :version => nil,
30
+ :match_type => :content_headers,
31
+ :match_content => /^x-powered-by: Craft CMS/,
32
+ :hide => false,
33
+ :paths => ["#{url}"],
34
+ :inference => false
35
+ }
36
+ ]
37
+ end
38
+
39
+ end
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,31 @@
1
+ module Intrigue
2
+ module Ident
3
+ module Check
4
+ class CrazyDomains < Intrigue::Ident::Check::Base
5
+
6
+ def generate_checks(url)
7
+ [
8
+ {
9
+ :type => "fingerprint",
10
+ :category => "service",
11
+ :tags => ["Parked"],
12
+ :vendor => "CrazyDomains",
13
+ :product => "CrazyDomains",
14
+ :website => "https://www.crazydomains.com.au/",
15
+ :references => [],
16
+ :version => nil,
17
+ :match_type => :content_body,
18
+ :match_content => /Domain name is registered and secured with CrazyDomains.com.au/i,
19
+ :match_details => "unique body string",
20
+ :hide => false,
21
+ :paths => ["#{url}"],
22
+ :inference => false
23
+ }
24
+ ]
25
+ end
26
+
27
+ end
28
+ end
29
+ end
30
+ end
31
+
@@ -0,0 +1,27 @@
1
+ module Intrigue
2
+ module Ident
3
+ module Check
4
+ class Crowdstrike < Intrigue::Ident::Check::Base
5
+
6
+ def generate_checks(url)
7
+ [
8
+ {
9
+ :type => "fingerprint",
10
+ :category => "service",
11
+ :tags => ["Security", "SaaS"],
12
+ :vendor => "Crowdstrike",
13
+ :product => "Falcon",
14
+ :references => [""],
15
+ :version => nil,
16
+ :match_type => :content_cookies,
17
+ :match_content => /domain\=\.falcon-sandbox\.com/i,
18
+ :match_details => "Falcon Sandbox cookie",
19
+ :paths => ["#{url}"],
20
+ :inference => false
21
+ }
22
+ ]
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end