Index of .*(Apache.*) Server at',
output = 'Sample scripts w/ listing on \'\\1\''
},
{
match = 'Index of',
output = 'Sample scripts w/ directory listing'
},
{
match = '',
output = 'Sample scripts'
}
}
});
table.insert(fingerprints, {
category = 'general',
probes = {
{
path = '/login/',
method = 'HEAD'
},
{
path = '/login.htm',
method = 'HEAD'
},
{
path = '/login.jsp',
method = 'HEAD'
}
},
matches = {
{
match = '',
output = 'Login page'
}
}
});
table.insert(fingerprints, {
category = 'general',
probes = {
{
path = '/test.asp',
method = 'HEAD'
},
{
path = '/test.class',
method = 'HEAD'
},
{
path = '/test/',
method = 'HEAD'
},
{
path = '/test.htm',
method = 'HEAD'
},
{
path = '/test.html',
method = 'HEAD'
},
{
path = '/test.php',
method = 'HEAD'
},
{
path = '/test.txt',
method = 'HEAD'
}
},
matches = {
{
match = '',
output = 'Test page'
}
}
});
table.insert(fingerprints, {
category = 'general',
probes = {
{
path = '/webmail/',
method = 'HEAD'
},
{
path = '/mail/',
method = 'HEAD'
}
},
matches = {
{
match = '',
output = 'Mail folder'
}
}
});
table.insert(fingerprints, {
category = 'general',
probes = {
{
path = '/log/',
method = 'HEAD'
},
{
path = '/log.htm',
method = 'HEAD'
},
{
path = '/log.php',
method = 'HEAD'
},
{
path = '/log.asp',
method = 'HEAD'
},
{
path = '/log.aspx',
method = 'HEAD'
},
{
path = '/log.jsp',
method = 'HEAD'
},
{
path = '/logs/',
method = 'HEAD'
},
{
path = '/logs.htm',
method = 'HEAD'
},
{
path = '/logs.php',
method = 'HEAD'
},
{
path = '/logs.asp',
method = 'HEAD'
},
{
path = '/logs.aspx',
method = 'HEAD'
},
{
path = '/logs.jsp',
method = 'HEAD'
},
{
path = '/wwwlog/',
method = 'HEAD'
},
{
path = '/wwwlogs/',
method = 'HEAD'
},
{
path = '/mail_log_files/',
method = 'HEAD'
}
},
matches = {
{
match = '',
output = 'Logs'
}
}
});
table.insert(fingerprints, {
category = 'general',
probes = {
{
path = '/images/rails.png',
method = 'HEAD'
},
},
matches = {
{
match = '',
output = 'Ruby on Rails'
}
}
});
table.insert(fingerprints, {
category = 'general',
probes = {
{
path = '/mono/',
method = 'HEAD'
},
},
matches = {
{
match = '',
output = 'Mono'
}
}
});
table.insert(fingerprints, {
category = 'general',
probes = {
{
path = '/robots.txt',
method = 'HEAD'
},
},
matches = {
{
match = '',
output = 'Robots file'
}
}
});
table.insert(fingerprints, {
category = 'general',
probes = {
{
path = '/crossdomain.xml',
method = 'HEAD'
},
},
matches = {
{
output = 'Adobe Flash crossdomain policy'
}
}
});
table.insert(fingerprints, {
category = 'general',
probes = {
{
path = '/css/cake.generic.css',
method = 'HEAD'
},
{
path = '/img/cake.icon.gif',
method = 'HEAD'
},
{
path = '/img/cake.icon.png',
method = 'HEAD'
},
{
path = '/js/vendors.php',
method = 'HEAD'
}
},
matches = {
{
match = '',
output = 'CakePHP application'
}
}
});
table.insert(fingerprints, {
category = 'general',
probes = {
{
path = '/cgi-bin/ffileman.cgi?',
method = 'HEAD'
}
},
matches = {
{
match = '',
output = 'Ffileman Web File Manager'
}
}
});
table.insert(fingerprints, {
category = 'general',
probes = {
{
path = '/fshow.php',
method = 'HEAD'
}
},
matches = {
{
match = '',
output = 'Horizon Web App'
}
}
});
table.insert(fingerprints, {
category = 'general',
probes = {
{
path = '/admin/upload.php',
method = 'HEAD'
}
},
matches = {
{
match = '',
output = 'Admin File Upload'
}
}
});
table.insert(fingerprints, {
category = 'general',
probes = {
{
path = '/upload_multiple_js.php',
method = 'HEAD'
}
},
matches = {
{
match = '',
output = 'NAS Uploader'
}
}
});
table.insert(fingerprints, {
category = 'general',
probes = {
{
path = '/uploadtester.asp',
method = 'HEAD'
}
},
matches = {
{
match = '',
output = 'Free ASP Upload Shell'
}
}
});
table.insert(fingerprints, {
category = 'general',
probes = {
{
path = '/info.php',
method = 'HEAD'
},
{
path = '/phpinfo.php',
method = 'HEAD'
}
},
matches = {
{
match = '',
output = 'Possible information file'
}
}
});
table.insert(fingerprints, {
category = 'general',
probes = {
{
path = '/kusabax/manage_page.php',
method = 'HEAD'
}
},
matches = {
{
match = '',
output = 'Kusabax Image Board'
}
}
});
table.insert(fingerprints, {
category = 'general',
probes = {
{
path = '/plus/lurking.php',
method = 'HEAD'
}
},
matches = {
{
match = '',
output = 'phpMyChat Plus'
}
}
});
table.insert(fingerprints, {
category = 'general',
probes = {
{
path = '/adm/barra/assetmanager/assetmanager.php',
method = 'HEAD'
}
},
matches = {
{
match = '',
output = '360 Web Manager'
}
}
});
table.insert(fingerprints, {
category = 'general',
probes = {
{
path = '/eyeos/',
method = 'HEAD'
}
},
matches = {
{
match = '',
output = 'Possible eyeOS installation'
}
}
});
table.insert(fingerprints, {
category = 'general',
probes = {
{
path = '/NETWARE.HTM',
method = 'HEAD'
}
},
matches = {
{
match = '',
output = 'Planet FPS-1101'
}
}
});
table.insert(fingerprints, {
category = 'general',
probes = {
{
path = '/setup.cgi',
method = 'HEAD'
}
},
matches = {
{
match = '',
output = 'Linksys Cisco Wag120n or similar'
}
}
});
table.insert(fingerprints, {
category = 'general',
probes = {
{
path = '/debug.cgi',
method = 'HEAD'
}
},
matches = {
{
match = '',
output = 'Linksys WRT54G'
}
}
});
table.insert(fingerprints, {
category = 'general',
probes = {
{
path = '/ehcp/?op=applyforftpaccount',
method = 'HEAD'
},
{
path = '/ehcp/?op=applyforaccount',
method = 'HEAD'
},
{
path = '/ehcp/?op=applyfordomainaccount',
method = 'HEAD'
},
{
path = '/vhosts/ehcp/?op=applyforftpaccount',
method = 'HEAD'
},
{
path = '/vhosts/ehcp/?op=applyforaccount',
method = 'HEAD'
},
{
path = '/vhosts/ehcp/?op=applyfordomainaccount',
method = 'HEAD'
},
},
matches = {
{
match = '',
output = 'Easy Hosting Control Panel'
}
}
});
table.insert(fingerprints, {
category = 'general',
probes = {
{
path = '/tools_admin.cgi?',
method = 'HEAD'
}
},
matches = {
{
match = '',
output = 'D-Link WBR-1310'
}
}
});
table.insert(fingerprints, {
category = 'general',
probes = {
{
path = '/level/15',
method = 'HEAD'
},
{
path = '/exec/show/log/CR',
method = 'HEAD'
},
{
path = '/level/15/exec/-/configure/http',
method = 'HEAD'
},
{
path = '/level/15/exec/-',
method = 'HEAD'
}
},
matches = {
{
match = 'cisco-IOS',
output = 'Cisco 2811'
}
}
});
table.insert(fingerprints, {
category = 'general',
probes = {
{
path = '/appServer/jvmReport.jsf?instanceName=server&pageTitle=JVM%20Report',
method = 'HEAD'
},
{
path = '/common/appServer/jvmReport.jsf?pageTitle=JVM%20Report',
method = 'HEAD'
},
{
path = '/common/appServer/jvmReport.jsf?reportType=summary&instanceName=server',
method = 'HEAD'
}
},
matches = {
{
match = '',
output = 'Oracle GlashFish Server Information'
}
}
});
table.insert(fingerprints, {
category = 'general',
probes = {
{
path = '/console/login/loginForm.jsp',
method = 'HEAD'
}
},
matches = {
{
match = '',
output = 'Oracle WebLogic Server Administration Console'
}
}
});
table.insert(fingerprints, {
category = 'general',
probes = {
{
path = '/login_img.jpg',
method = 'HEAD'
}
},
matches = {
{
match = 'RapidLogic',
output = 'AIRAYA WirelessGRID'
}
}
});
table.insert(fingerprints, {
category = 'general',
probes = {
{
path = '/cirronetlogo.gif',
method = 'HEAD'
}
},
matches = {
{
match = 'Cirronet Wavebolt-AP',
output = 'Cirronet Wavebolt'
}
}
});
table.insert(fingerprints, {
category = 'general',
probes = {
{
path = '/browserId/wizardForm.jhtml',
method = 'HEAD'
},
{
path = '/webline/html/forms/callback.jhtml',
method = 'HEAD'
},
{
path = '/webline/html/forms/callbackICM.jhtml',
method = 'HEAD'
},
{
path = '/webline/html/agent/AgentFrame.jhtml',
method = 'HEAD'
},
{
path = '/webline/html/agent/default/badlogin.jhtml',
method = 'HEAD'
},
{
path = '/callme/callForm.jhtml',
method = 'HEAD'
},
{
path = '/webline/html/multichatui/nowDefunctWindow.jhtml',
method = 'HEAD'
},
{
path = '/browserId/wizard.jhtml',
method = 'HEAD'
},
{
path = '/admin/CiscoAdmin.jhtml',
method = 'HEAD'
},
{
path = '/msccallme/mscCallForm.jhtml',
method = 'HEAD'
},
{
path = '/webline/html/admin/wcs/LoginPage.jhtml',
method = 'HEAD'
}
},
matches = {
{
match = '',
output = 'Cisco Collaboration Server'
}
}
});
table.insert(fingerprints, {
category = 'general',
probes = {
{
path = '/restoreinfo.cgi',
method = 'HEAD'
}
},
matches = {
{
match = '',
output = 'Sagem router'
}
}
});
table.insert(fingerprints, {
category = 'general',
probes = {
{
path = '/confirminvite.php',
method = 'HEAD'
}
},
matches = {
{
match = '',
output = 'phpMyBitTorrent'
}
}
});
table.insert(fingerprints, {
category = 'general',
probes = {
{
path = '/sourcebans/',
method = 'HEAD'
}
},
matches = {
{
match = '',
output = 'SourceBans - Steam server application'
}
}
});
table.insert(fingerprints, {
category = 'general',
probes = {
{
path = '/swfupload/index.php',
method = 'HEAD'
}
},
matches = {
{
match = '',
output = 'SWFUpload'
}
}
});
table.insert(fingerprints, {
category = 'general',
probes = {
{
path = '/mymarket/shopping/index.php',
method = 'HEAD'
}
},
matches = {
{
match = '',
output = 'MyMarket'
}
}
});
table.insert(fingerprints, {
category = 'general',
probes = {
{
path = '/myshop_start.php',
method = 'HEAD'
}
},
matches = {
{
match = '',
output = 'FozzCom shopping'
}
}
});
table.insert(fingerprints, {
category = 'general',
probes = {
{
path = '/piranha/secure/passwd.php3',
method = 'HEAD'
}
},
matches = {
{
match = '',
output = 'RedHat Piranha Virtual Server'
}
}
});
table.insert(fingerprints, {
category = 'general',
probes = {
{
path = '/cgi-bin/ck/mimencode',
method = 'HEAD'
}
},
matches = {
{
match = '',
output = 'ContentKeeper Web Appliance'
}
}
});
table.insert(fingerprints, {
category = 'general',
probes = {
{
path = '/cgi-bin/masterCGI?',
method = 'HEAD'
}
},
matches = {
{
match = '',
output = 'Alcatel-Lucent OmniPCX Enterprise'
}
}
});
table.insert(fingerprints, {
category = 'general',
probes = {
{
path = '/tiny_mce/plugins/filemanager/',
method = 'HEAD'
}
},
matches = {
{
match = '',
output = 'Tiny MCE File Upload'
}
}
});
table.insert(fingerprints, {
category = 'general',
probes = {
{
path = '/upload/scp/ajax.php',
method = 'HEAD'
}
},
matches = {
{
match = '',
output = 'osTicket / AJAX File Upload'
}
}
});
table.insert(fingerprints, {
category = 'general',
probes = {
{
path = '/cgi-mod/view_help.cgi',
method = 'HEAD'
}
},
matches = {
{
match = '',
output = 'Barracuda Networks Spam & Virus Firewall'
}
}
});
table.insert(fingerprints, {
category = 'general',
probes = {
{
path = '/cgi-mod/index.cgi',
method = 'HEAD'
}
},
matches = {
{
match = '',
output = 'Barracuda Web Application Firewall'
}
}
});
table.insert(fingerprints, {
category = 'general',
probes = {
{
path = '/cgi-mod/smtp_test.cgi',
method = 'HEAD'
}
},
matches = {
{
match = '',
output = 'Barracuda IM Firewall'
}
}
});
table.insert(fingerprints, {
category = 'general',
probes = {
{
path = '/TopToolArea.html',
method = 'HEAD'
},
{
path = '/switchSystem.html',
method = 'HEAD'
}
},
matches = {
{
match = '',
output = 'Alteon OS BBI (Nortell)'
}
}
});
table.insert(fingerprints, {
category = 'general',
probes = {
{
path = '/intruvert/jsp/module/Login.jsp',
method = 'HEAD'
}
},
matches = {
{
match = '',
output = 'McAfee Network Security Manager'
}
}
});
table.insert(fingerprints, {
category = 'general',
probes = {
{
path = '/ajaxfilemanager/',
method = 'HEAD'
}
},
matches = {
{
match = '',
output = 'AJAX File Manager'
}
}
});
table.insert(fingerprints, {
category = 'general',
probes = {
{
path = '/upload/data/settings.cdb',
method = 'HEAD'
}
},
matches = {
{
match = '',
output = 'CF Image Hosting DB'
}
}
});
table.insert(fingerprints, {
category = 'general',
probes = {
{
path = '/fm.php',
method = 'HEAD'
}
},
matches = {
{
match = '',
output = 'Simple File Manager'
}
}
});
table.insert(fingerprints, {
category = 'general',
probes = {
{
path = '/nagios3/cgi-bin/statuswml.cgi',
method = 'HEAD'
},
{
path = '/nagios3/',
method = 'HEAD'
}
},
matches = {
{
match = '',
output = 'Nagios3'
}
}
});
table.insert(fingerprints, {
category = 'general',
probes = {
{
path = '/test/logon.html',
method = 'HEAD'
}
},
matches = {
{
match = '',
output = 'Jetty'
}
}
});
table.insert(fingerprints, {
category = 'general',
probes = {
{
path = '/cal_cat.php',
method = 'HEAD'
},
{
path = '/calendar/cal_cat.php',
method = 'HEAD'
},
{
path = '/cal/cal_cat.php',
method = 'HEAD'
}
},
matches = {
{
match = '',
output = 'Calendarix'
}
}
});
table.insert(fingerprints, {
category = 'general',
probes = {
{
path = '/private/sdc.tgz',
method = 'HEAD'
}
},
matches = {
{
match = '',
output = 'IBM Bladecenter Management Logs'
}
}
});
table.insert(fingerprints, {
category = 'general',
probes = {
{
path = '/cacti/',
method = 'HEAD'
}
},
matches = {
{
match = '',
output = 'Cacti Web Monitoring'
}
}
});
table.insert(fingerprints, {
category = 'general',
probes = {
{
path = '/cgi-bin/awstats.pl',
method = 'HEAD'
}
},
matches = {
{
match = '',
output = 'AWStats'
}
}
});
table.insert(fingerprints, {
category = 'general',
probes = {
{
path = '/wiki/rankings.php',
method = 'HEAD'
}
},
matches = {
{
match = '',
output = 'Bit Weaver'
}
}
});
table.insert(fingerprints, {
category = 'general',
probes = {
{
path = '/reqdetails.php',
method = 'HEAD'
}
},
matches = {
{
match = '',
output = 'BtiTracker'
}
}
});
table.insert(fingerprints, {
category = 'general',
probes = {
{
path = '/shared/help.php',
method = 'HEAD'
}
},
matches = {
{
match = '',
output = 'OpenBiblio/WebBiblio Subject Gateway System'
}
}
});
table.insert(fingerprints, {
category = 'general',
probes = {
{
path = '/seti.php',
method = 'HEAD'
}
},
matches = {
{
match = '',
output = 'PHP SETI@home'
}
}
});
table.insert(fingerprints, {
category = 'general',
probes = {
{
path = '/imc/',
method = 'HEAD'
},
{
path = '/imcws/',
method = 'HEAD'
}
},
matches = {
{
match = '',
output = '3Com Intelligent Management Center'
}
}
});
table.insert(fingerprints, {
category = 'general',
probes = {
{
path = '/partymgr/',
method = 'HEAD'
}
},
matches = {
{
match = '',
output = 'Apache OFBiz'
}
}
});
table.insert(fingerprints, {
category = 'general',
probes = {
{
path = '/Base/upload.php',
method = 'HEAD'
},
{
path = '/Base/example_1.php',
method = 'HEAD'
}
},
matches = {
{
match = '',
output = 'MassMirror Uploader'
}
}
});
table.insert(fingerprints, {
category = 'general',
probes = {
{
path = '/YUI-upload/html',
method = 'HEAD'
}
},
matches = {
{
match = '',
output = 'YUI Images / File Upload'
}
}
});
table.insert(fingerprints, {
category = 'general',
probes = {
{
path = '/tools/filemanager/skins/mobile/admin1.template.php',
method = 'HEAD'
}
},
matches = {
{
match = '',
output = 'ispCP Omega'
}
}
});
table.insert(fingerprints, {
category = 'general',
probes = {
{
path = '/Uploadify/',
method = 'HEAD'
}
},
matches = {
{
match = '',
output = 'Uploadify'
}
}
});
table.insert(fingerprints, {
category = 'general',
probes = {
{
path = '/syssite/',
method = 'HEAD'
}
},
matches = {
{
match = '',
output = 'ShopEx'
}
}
});
table.insert(fingerprints, {
category = 'general',
probes = {
{
path = '/updown.php',
method = 'HEAD'
}
},
matches = {
{
match = '',
output = 'PHP Uploader Downloader'
}
}
});
table.insert(fingerprints, {
category = 'general',
probes = {
{
path = '/modules/docmanager/doctypetemplates/myuploadedfile',
method = 'HEAD'
}
},
matches = {
{
match = '',
output = 'Achievo'
}
}
});
table.insert(fingerprints, {
category = 'general',
probes = {
{
path = '/ReqWebHelp/advanced/workingSet.jsp',
method = 'HEAD'
}
},
matches = {
{
match = '',
output = 'IBM Rational RequisitePro/ReqWebHelp'
}
}
});
table.insert(fingerprints, {
category = 'general',
probes = {
{
path = '/dhost/',
method = 'HEAD'
}
},
matches = {
{
match = '',
output = 'Novell eDirectory'
}
}
});
table.insert(fingerprints, {
category = 'general',
probes = {
{
path = '/engine/api/api.class.php',
method = 'HEAD'
}
},
matches = {
{
match = '',
output = 'DatalifeEngine'
}
}
});
table.insert(fingerprints, {
category = 'general',
probes = {
{
path = '/jsft_resource.jsf',
method = 'HEAD'
},
{
path = '/scales_static_resource.jsf',
method = 'HEAD'
}
},
matches = {
{
match = '',
output = 'JSFTemplating/Mojarra Scales/GlassFish Application Server'
}
}
});
table.insert(fingerprints, {
category = 'general',
probes = {
{
path = '/setup/password_required.html',
method = 'HEAD'
}
},
matches = {
{
match = '',
output = '2WIRE GATEWAY'
}
}
});
table.insert(fingerprints, {
category = 'general',
probes = {
{
path = '/zp-core/',
method = 'HEAD'
}
},
matches = {
{
match = '',
output = 'Zen Photo'
}
}
});
table.insert(fingerprints, {
category = 'general',
probes = {
{
path = '/amember/',
method = 'HEAD'
}
},
matches = {
{
match = '',
output = 'aMember'
}
}
});
table.insert(fingerprints, {
category = 'general',
probes = {
{
path = '/.hgignore',
method = 'HEAD'
},
{
path = '/.gitignore',
method = 'HEAD'
},
{
path = '/.bzrignore',
method = 'HEAD'
}
},
matches = {
{
match = '',
output = 'Revision control ignore file'
}
}
});
table.insert(fingerprints, {
category = 'general',
probes = {
{
path = '/debug.seam',
method = 'GET'
}
},
matches = {
{
match = 'JBoss Seam Debug Page',
output = 'JBoss Seam Debug Page'
}
}
});
------------------------------------------------
---- SECURITY SOFTWARE ----
------------------------------------------------
-- These checks will find specific installed software. If possible, it will also
-- find versions, etc.
table.insert(fingerprints, {
category = 'security',
probes = {
{
path = '/CSS/Miniweb.css',
method = 'GET'
}
},
matches = {
{
match = 'ad_header_form_sprachauswahl',
output = 'SCADA Siemens SIMATIC S7'
}
}
});
table.insert(fingerprints, {
category = 'security',
probes = {
{
path = '/S7Web.css',
method = 'GET'
},
{
path = '/Portal0000.htm',
method = 'GET'
}
},
matches = {
{
match = '(.-) | ',
output = 'SCADA Siemens PCS7: \\1'
},
{
match = '',
output = 'SCADA Siemens PCS7'
}
}
});
table.insert(fingerprints, {
category = 'security',
probes = {
{
path = '/arcsight/',
method = 'HEAD'
},
{
path = '/arcsight/images/logo-login-arcsight.gif',
method = 'HEAD'
},
{
path = '/arcsight/images/navbar-icon-logout-on.gif',
method = 'HEAD'
},
{
path = '/images/logo-arcsight.gif',
method = 'HEAD'
},
{
path = '/logger/monitor.ftl',
method = 'HEAD'
},
},
matches = {
{
output = 'Arcsight'
}
}
});
table.insert(fingerprints, {
category = 'security',
probes = {
{
path = '/beef/',
method = 'HEAD'
},
{
path = '/BEEF/',
method = 'HEAD'
},
{
path = '/beef/images/beef.gif',
method = 'HEAD'
}
},
matches = {
{
output = 'BeEF Browser Exploitation Framework'
}
}
});
table.insert(fingerprints, {
category = 'security',
probes = {
{
path = '/gfx/form_top_left_corner.gif',
method = 'HEAD'
},
{
path = '/gfx/logout_24.png',
method = 'HEAD'
},
{
path = '/gfx/new_logo.gif',
method = 'HEAD'
},
{
path = '/javascript/sorttable.js',
method = 'HEAD'
}
},
matches = {
{
match = '',
output = 'Secunia NSI'
}
}
});
table.insert(fingerprints, {
category = 'security',
probes = {
{
path = '/images/btn_help_nml.gif',
method = 'HEAD'
},
{
path = '/images/hdr_icon_homeG.gif',
method = 'HEAD'
},
{
path = '/spControl.php',
method = 'HEAD'
},
{
path = '/images/isslogo.gif',
method = 'HEAD'
},
{
path = '/deploymentmanager/',
method = 'HEAD'
},
},
matches = {
{
match = '',
output = 'IBM Proventia'
}
}
});
table.insert(fingerprints, {
category = 'security',
probes = {
{
path = '/i18n/EN/css/foundstone.css',
method = 'HEAD'
},
{
path = '/i18n/EN/images/external_nav_square.gif',
method = 'HEAD'
},
},
matches = {
{
match = '',
output = 'Foundstone'
}
}
});
table.insert(fingerprints, {
category = 'security',
probes = {
{
path = '/officescan/console/html/cgi/cgiChkMasterPwd.exe',
method = 'HEAD'
},
{
path = '/officescan/console/html/ClientInstall/officescannt.htm',
method = 'HEAD'
},
{
path = '/officescan/console/html/images/icon_refresh.gif',
method = 'HEAD'
},
},
matches = {
{
match = '',
output = 'Trend Micro OfficeScan Server'
}
}
});
table.insert(fingerprints, {
category = 'security',
probes = {
{
path = '/picts/BC_bwlogorev.gif',
method = 'HEAD'
},
{
path = '/picts/menu_leaf.gif',
method = 'HEAD'
},
},
matches = {
{
match = '',
output = 'BlueCoat Reporter'
}
}
});
table.insert(fingerprints, {
category = 'security',
probes = {
{
path = '/theme/images/en/login1.gif',
method = 'HEAD'
},
},
matches = {
{
match = '',
output = 'Fortinet VPN/Firewall'
}
}
});
table.insert(fingerprints, {
category = 'security',
probes = {
{
path = '/',
method = 'GET'
},
},
matches = {
{
match = 'id="NessusClient"',
output = 'Nessus'
},
{
match = 'NessusClient.swf',
output = 'Nessus'
}
}
});
table.insert(fingerprints, {
category = 'security',
probes = {
{
path = '/NessusClient.swf',
method = 'HEAD'
},
},
matches = {
{
match = '',
output = 'Nessus'
}
}
});
table.insert(fingerprints, {
category = 'security',
probes = {
{
path = '/dotDefender/',
method = 'HEAD'
},
},
matches = {
{
match = '',
output = 'dotDefender Web Application Firewall'
}
}
});
-- http://www.rapid7.com/db/modules/payload/windows/meterpreter/reverse_hop_http
-- "GET /hop.php?/control" will grab all pending messages, but is unreliable if
-- there are no pending messages.
table.insert(fingerprints, {
category = 'security',
probes = {
{
path = '/hop.php?/12345',
method = 'GET'
},
},
matches = {
{
-- TODO: this only works for Meterpreter payloads. Find a more generic means?
match = 'METERPRETER_TRANSPORT_HTTP',
output = 'Metasploit reverse_hop_http hop point'
},
}
});
-- http://carnal0wnage.attackresearch.com/2015/02/cisco-asa-version-grabber-cve-2014-3398.html
table.insert(fingerprints, {
category = 'security',
probes = {
{
path = '/CSCOSSLC/config-auth',
method = 'GET'
},
},
matches = {
{
match = '([^<]+)',
output = 'Cisco ASA, firmware \\1'
},
}
});
------------------------------------------------
---- MANAGEMENT SOFTWARE ----
------------------------------------------------
table.insert(fingerprints, {
category = 'management',
probes = {
{
path = '/actuator/',
method = 'GET'
},
{
path = '/auditevents/',
method = 'GET'
},
{
path = '/autoconfig/',
method = 'GET'
},
{
path = '/beans/',
method = 'GET'
},
{
path = '/configprops/',
method = 'GET'
},
{
path = '/env/',
method = 'GET'
},
{
path = '/flyway/',
method = 'GET'
},
{
path = '/health/',
method = 'GET'
},
{
path = '/healthcheck/',
method = 'GET'
},
{
path = '/healthchecks/',
method = 'GET'
},
{
path = '/loggers/',
method = 'GET'
},
{
path = '/liquibase/',
method = 'GET'
},
{
path = '/metrics/',
method = 'GET'
},
{
path = '/mappings/',
method = 'GET'
},
{
path = '/trace/',
method = 'GET'
}
},
matches = {
{
output = 'Spring Boot Actuator endpoint'
}
}
});
table.insert(fingerprints, {
category = 'management',
probes = {
{
path = '/heapdump/',
method = 'GET'
},
{
path = '/jolokia/',
method = 'GET'
}
},
matches = {
{
output = 'Spring MVC Endpoint'
}
}
});
table.insert(fingerprints, {
category = 'management',
probes = {
{
path = '/vmware/',
method = 'HEAD'
},
{
path = '/vmware/imx/vmware_boxes-16x16.png',
method = 'HEAD'
},
{
path = '/ui/',
method = 'HEAD'
},
{
path = '/ui/imx/vmwareLogo-16x16.png',
method = 'HEAD'
},
{
path = '/ui/imx/vmwarePaperBagLogo-16x16.png',
method = 'HEAD'
},
{
path = '/ui/vManage.do',
method = 'HEAD'
},
{
path = '/client/VMware-viclient.exe',
method = 'HEAD'
},
{
path = '/en/welcomeRes.js',
method = 'HEAD'
}
},
matches = {
{
output = 'VMWare'
}
}
});
table.insert(fingerprints, {
category = 'management',
probes = {
{
path = '/citrix/',
method = 'HEAD'
},
{
path = '/Citrix/',
method = 'HEAD'
},
{
path = '/Citrix/MetaFrame/auth/login.aspx',
method = 'HEAD'
},
{
path = '/images/ctxHeader01.jpg',
method = 'HEAD'
},
{
path = '/images/Safeword_Token.jpg',
method = 'HEAD'
},
{
path = '/sw/auth/login.aspx',
method = 'HEAD'
},
{
path = '/vpn/images/AccessGateway.ico',
method = 'HEAD'
},
{
path = '/citrix/AccessPlatform/auth/clientscripts/',
method = 'HEAD'
},
{
path = '/AccessPlatform/auth/clientscripts/',
method = 'HEAD'
},
{
path = '/Citrix//AccessPlatform/auth/clientscripts/cookies.js',
method = 'HEAD'
},
{
path = '/Citrix/AccessPlatform/auth/clientscripts/login.js',
method = 'HEAD'
},
{
path = '/Citrix/PNAgent/config.xml',
method = 'HEAD'
},
},
matches = {
{
output = 'Citrix'
}
}
});
table.insert(fingerprints, {
category = 'management',
probes = {
{
path = '/cgi-bin/image/shikaku2.png',
method = 'HEAD'
},
},
matches = {
{
match = '',
output = 'TeraStation PRO RAID 0/1/5 Network Attached Storage'
}
}
});
table.insert(fingerprints, {
category = 'management',
probes = {
{
path = '/config/public/usergrp.gif',
method = 'HEAD'
},
{
path = '/pictures/buttons/file_view_mark.gif',
method = 'HEAD'
},
},
matches = {
{
match = '',
output = 'AXIS StorPoint'
}
}
});
table.insert(fingerprints, {
category = 'management',
probes = {
{
path = '/cpqlogin.htm?RedirectUrl=/&RedirectQueryString=',
method = 'HEAD'
},
{
path = '/hplogo.gif',
method = 'HEAD'
},
},
matches = {
{
match = '',
output = 'HP System Management Homepage'
}
}
});
table.insert(fingerprints, {
category = 'management',
probes = {
{
path = '/ie_index.htm',
method = 'HEAD'
},
{
path = '/ilo.gif',
method = 'HEAD'
},
},
matches = {
{
match = '',
output = 'HP Integrated Lights Out'
}
}
});
table.insert(fingerprints, {
category = 'management',
probes = {
{
path = '/images/icon_server_connected.gif',
method = 'HEAD'
},
},
matches = {
{
match = '',
output = 'HP Blade Enclosure'
}
}
});
table.insert(fingerprints, {
category = 'management',
probes = {
{
path = '/mxhtml/images/signin_logo.gif',
method = 'HEAD'
},
{
path = '/mxhtml/images/status_critical_15.gif',
method = 'HEAD'
},
{
path = '/mxportal/home/en_US/servicetools.gif',
method = 'HEAD'
},
{
path = '/mxportal/home/MxPortalFrames.jsp',
method = 'HEAD'
},
},
matches = {
{
match = '',
output = 'HP Insight Manager'
}
}
});
table.insert(fingerprints, {
category = 'management',
probes = {
{
path = '/xymon/menu/menu.css',
method = 'HEAD'
},
},
matches = {
{
match = '',
output = 'Xymon'
}
}
});
table.insert(fingerprints, {
category = 'management',
probes = {
{
path = '/rrc.htm',
method = 'HEAD'
},
},
matches = {
{
match = '',
output = 'Raritan Remote Client'
}
}
});
table.insert(fingerprints, {
category = 'management',
probes = {
{
path = '/manager/html/upload',
method = 'HEAD'
},
{
path = '/manager/html',
method = 'HEAD'
}
},
matches = {
{
match = '',
output = 'Apache Tomcat'
}
}
});
table.insert(fingerprints, {
category = 'general',
probes = {
{
path = '/axis2/axis2-web/HappyAxis.jsp',
method = 'HEAD'
},
{
path = '/axis2/',
method = 'HEAD'
},
{
path = '/happyaxis.jsp',
method = 'HEAD'
}
},
matches = {
{
match = '',
output = 'Apache Axis2'
}
}
});
table.insert(fingerprints, {
category = 'management',
probes = {
{
path = '/web-console/ServerInfo.jsp',
method = 'HEAD'
},
{
path = '/web-console/Invoker',
method = 'HEAD'
},
{
path = '/invoker/JMXInvokerServlet',
method = 'HEAD'
},
{
path = '/invoker/',
method = 'HEAD'
},
{
path = '/jmx-console/',
method = 'HEAD'
},
{
path = '/admin-console/',
method = 'HEAD'
}
},
matches = {
{
match = '',
output = 'JBoss Console'
}
}
});
table.insert(fingerprints, {
category = 'management',
probes = {
{
path = '/CFIDE/administrator/enter.cfm',
method = 'HEAD'
},
{
path = '/CFIDE/administrator/entman/index.cfm',
method = 'HEAD'
},
{
path = '/cfide/install.cfm',
method = 'HEAD'
},
{
path = '/CFIDE/administrator/archives/index.cfm',
method = 'HEAD'
},
{
path = '/CFIDE/wizards/common/_logintowizard.cfm',
method = 'HEAD'
},
{
path = '/CFIDE/componentutils/login.cfm',
method = 'HEAD'
},
{
path = '/CFIDE/Administrator/startstop.html',
method = 'HEAD'
},
},
matches = {
{
match = '',
output = 'ColdFusion Admin Console'
}
}
});
table.insert(fingerprints, {
category = 'management',
probes = {
{
path = '/common/help/en/go/login_ts.html',
method = 'HEAD'
},
{
path = '/system/login/',
method = 'HEAD'
},
{
path = '/system/login/reset?next=%2Fsystem%2Flogin&set-lang=en',
method = 'HEAD'
},
{
path = '/common/images/logos/img_logoMain.jpg',
method = 'HEAD'
},
},
matches = {
{
match = 'URL=http://www.macromedia.com/go/breeze_login_help_en',
output = 'Adobe Acrobat Connect Pro'
},
{
match = 'Connect Pro Central Login',
output = 'Adobe Acrobat Connect Pro'
},
{
match = 'Forgot your password?',
output = 'Adobe Acrobat Connect Pro'
},
{
match = 'Server: JRun Web Server',
output = 'Adobe Acrobat Connect Pro'
},
}
});
table.insert(fingerprints, {
category = 'management',
probes = {
{
path = '/Dashboard/Dashboard.html',
method = 'GET'
}
},
matches = {
{
match = 'Server: Kodak-RulesBasedAutomation',
output = 'Prinergy Dashboard Client Login'
},
{
match = 'Dashboard',
output = 'Prinergy Dashboard Client Login'
}
}
});
table.insert(fingerprints, {
category = 'management',
probes = {
{
path = '/flexfm/',
method = 'HEAD'
}
},
matches = {
{
match = '',
output = 'Flex File Manager'
}
}
});
table.insert(fingerprints, {
category = 'management',
probes = {
{
path = '/lib/usermanagement/userInfo.php',
method = 'HEAD'
}
},
matches = {
{
match = '',
output = 'Testlink TestManagement'
}
}
});
table.insert(fingerprints, {
category = 'management',
probes = {
{
path = '/security/xamppsecurity.php',
method = 'HEAD'
}
},
matches = {
{
match = '',
output = 'XAMPP'
}
}
});
table.insert(fingerprints, {
category = 'management',
probes = {
{
path = '/system/console',
method = 'HEAD'
},
},
matches = {
{
match = 'OSGi Management Console',
output = 'OSGi Management Console'
}
}
});
table.insert(fingerprints, {
category = 'management',
probes = {
{
path = '/dm-albums/dm-albums.php',
method = 'HEAD'
}
},
matches = {
{
match = '',
output = 'DM FileManager'
}
}
});
table.insert(fingerprints, {
category = 'management',
probes = {
"/ibm/console/logon.jsp?action=OK",
"/console/",
"/console/portal/0/Welcome"
},
matches = {
{
match = "[Ww][Ee][Bb][Ss][Pp][Hh][Ee][Rr][Ee]",
output = "WebSphere"
},
{
match = "WSC Console Federation",
output = "WebSphere Commerce"
},
}
});
table.insert(fingerprints, {
category = 'management',
probes = {
{
path = '/rest/applinks/1.0/manifest',
method = 'GET'
},
{
path = '/jira/rest/applinks/1.0/manifest',
method = 'GET'
},
{
path = '/secure/rest/applinks/1.0/manifest',
method = 'GET'
},
},
matches = {
{
match = 'jira.*([^<]+)',
output = 'Atlassian Jira \\1'
}
}
});
table.insert(fingerprints, {
category = 'management',
probes = {
{
path = '/rest/servicedeskapi/info',
method = 'GET'
},
{
path = '/jira/rest/servicedeskapi/info',
method = 'GET'
},
{
path = '/secure/rest/servicedeskapi/info',
method = 'GET'
},
},
matches = {
{
match = '"version":%s*"([^-"]+)',
output = 'Atlassian Jira Service Desk \\1'
}
}
});
table.insert(fingerprints, {
category = 'management',
probes = {
{
path = '/rest/applinks/1.0/manifest',
method = 'GET'
},
{
path = '/confluence/rest/applinks/1.0/manifest',
method = 'GET'
},
{
path = '/wiki/rest/applinks/1.0/manifest',
method = 'GET'
},
},
matches = {
{
match = 'confluence.*([^<]+)',
output = 'Atlassian Confluence \\1'
}
}
});
table.insert(fingerprints, {
category = 'management',
probes = {
{
path = '/rest/applinks/1.0/manifest',
method = 'GET'
},
{
path = '/bitbucket/rest/applinks/1.0/manifest',
method = 'GET'
},
},
matches = {
{
match = 'stash.*([^<]+)',
output = 'Atlassian Bitbucket Server \\1'
},
{
match = 'bitbucket.*([^<]+)',
output = 'Atlassian Bitbucket Server \\1'
}
}
});
table.insert(fingerprints, {
category = 'management',
probes = {
{
path = '/rest/applinks/1.0/manifest',
method = 'GET'
},
{
path = '/bamboo/rest/applinks/1.0/manifest',
method = 'GET'
},
},
matches = {
{
match = 'bamboo.*([^<]+)',
output = 'Atlassian Bamboo \\1'
}
}
});
table.insert(fingerprints, {
category = 'management',
probes = {
{
path = '/rest/applinks/1.0/manifest',
method = 'GET'
},
{
path = '/crowd/rest/applinks/1.0/manifest',
method = 'GET'
},
},
matches = {
{
match = 'crowd.*([^<]+)',
output = 'Atlassian Crowd \\1'
}
}
});
------------------------------------------------
---- PRINTERS, WEBCAMS, PROJECTORS ----
------------------------------------------------
table.insert(fingerprints, {
category = 'printer',
probes = {
{
path = '/x_logo.gif',
method = 'HEAD'
}
},
matches = {
{
match = '',
output = 'Xerox printer'
}
}
});
table.insert(fingerprints, {
category = 'printer',
probes = {
{
path = '/gif/hp.gif',
method = 'HEAD'
},
{
path = '/gif/hp_invent_logo.gif',
method = 'HEAD'
},
{
path = '/gif/printer.gif',
method = 'HEAD'
},
{
path = '/hp/device/this.LCDispatcher',
method = 'HEAD'
},
{
path = '/hp/device/webAccess/index.htm',
method = 'HEAD'
},
{
path = '/PageSelector.class',
method = 'HEAD'
}
},
matches = {
{
match = '',
output = 'HP Printer'
}
}
});
table.insert(fingerprints, {
category = 'printer',
probes = {
{
path = '/images/lexbold.gif',
method = 'HEAD'
},
{
path = '/images/lexlogo.gif',
method = 'HEAD'
},
{
path = '/images/printer.gif',
method = 'HEAD'
},
{
path = '/printer/image',
method = 'HEAD'
}
},
matches = {
{
match = '',
output = 'Lexmark Printer'
}
}
});
table.insert(fingerprints, {
category = 'printer',
probes = {
{
path = '/images/mute_alloff.gif',
method = 'HEAD'
},
{
path = '/images/pic_bri.gif',
method = 'HEAD'
},
},
matches = {
{
match = '',
output = 'NEC Projector'
}
}
});
table.insert(fingerprints, {
category = 'printer',
probes = {
{
path = '/scanweb/images/scanwebtm.gif',
method = 'HEAD'
},
},
matches = {
{
match = '',
output = 'SCAN Web (Webcam)'
}
}
});
table.insert(fingerprints, {
category = 'printer',
probes = {
{
path = '/view/index.shtml',
method = 'HEAD'
},
},
matches = {
{
match = '',
output = 'Axis 212 PTZ Network Camera'
}
}
});
------------------------------------------------
---- DATABASES ----
------------------------------------------------
--phpmyadmin db taken from http://milw0rm.com/exploits/8921
table.insert(fingerprints, {
category = 'database',
probes = {
{
path = '/phpmyadmin/',
method = 'HEAD'
},
{
path = '/phpMyAdmin/',
method = 'HEAD'
},
{
path = '/PHPMyAdmin/',
method = 'HEAD'
},
{
path = '/PMA/',
method = 'HEAD'
},
{
path = '/pma/',
method = 'HEAD'
},
{
path = '/dbadmin/',
method = 'HEAD'
},
{
path = '/myadmin/',
method = 'HEAD'
},
{
path = '/php-my-admin/',
method = 'HEAD'
},
{
path = '/phpMyAdmin2/',
method = 'HEAD'
},
{
path = '/phpMyAdmin-2/',
method = 'HEAD'
},
{
path = '/phpMyAdmin-2.2.3/',
method = 'HEAD'
},
{
path = '/phpMyAdmin-2.2.6/',
method = 'HEAD'
},
{
path = '/phpMyAdmin-2.5.1/',
method = 'HEAD'
},
{
path = '/phpMyAdmin-2.5.4/',
method = 'HEAD'
},
{
path = '/phpMyAdmin-2.5.5-rc1/',
method = 'HEAD'
},
{
path = '/phpMyAdmin-2.5.5-rc2/',
method = 'HEAD'
},
{
path = '/phpMyAdmin-2.5.5/',
method = 'HEAD'
},
{
path = '/phpMyAdmin-2.5.5-pl1/',
method = 'HEAD'
},
{
path = '/phpMyAdmin-2.5.6-rc1/',
method = 'HEAD'
},
{
path = '/phpMyAdmin-2.5.6-rc2/',
method = 'HEAD'
},
{
path = '/phpMyAdmin-2.5.6/',
method = 'HEAD'
},
{
path = '/phpMyAdmin-2.5.7/',
method = 'HEAD'
},
{
path = '/phpMyAdmin-2.5.7-pl1/',
method = 'HEAD'
},
{
path = '/phpMyAdmin-2.6.0-alpha/',
method = 'HEAD'
},
{
path = '/phpMyAdmin-2.6.0-alpha2/',
method = 'HEAD'
},
{
path = '/phpMyAdmin-2.6.0-beta1/',
method = 'HEAD'
},
{
path = '/phpMyAdmin-2.6.0-beta2/',
method = 'HEAD'
},
{
path = '/phpMyAdmin-2.6.0-rc1/',
method = 'HEAD'
},
{
path = '/phpMyAdmin-2.6.0-rc2/',
method = 'HEAD'
},
{
path = '/phpMyAdmin-2.6.0-rc3/',
method = 'HEAD'
},
{
path = '/phpMyAdmin-2.6.0/',
method = 'HEAD'
},
{
path = '/phpMyAdmin-2.6.0-pl1/',
method = 'HEAD'
},
{
path = '/phpMyAdmin-2.6.0-pl2/',
method = 'HEAD'
},
{
path = '/phpMyAdmin-2.6.0-pl3/',
method = 'HEAD'
},
{
path = '/phpMyAdmin-2.6.1-rc1/',
method = 'HEAD'
},
{
path = '/phpMyAdmin-2.6.1-rc2/',
method = 'HEAD'
},
{
path = '/phpMyAdmin-2.6.1/',
method = 'HEAD'
},
{
path = '/phpMyAdmin-2.6.1-pl1/',
method = 'HEAD'
},
{
path = '/phpMyAdmin-2.6.1-pl2/',
method = 'HEAD'
},
{
path = '/phpMyAdmin-2.6.1-pl3/',
method = 'HEAD'
},
{
path = '/phpMyAdmin-2.6.2-rc1/',
method = 'HEAD'
},
{
path = '/phpMyAdmin-2.6.2-beta1/',
method = 'HEAD'
},
{
path = '/phpMyAdmin-2.6.2/',
method = 'HEAD'
},
{
path = '/phpMyAdmin-2.6.2-pl1/',
method = 'HEAD'
},
{
path = '/phpMyAdmin-2.6.3/',
method = 'HEAD'
},
{
path = '/phpMyAdmin-2.6.3-rc1/',
method = 'HEAD'
},
{
path = '/phpMyAdmin-2.6.3-pl1/',
method = 'HEAD'
},
{
path = '/phpMyAdmin-2.6.4-rc1/',
method = 'HEAD'
},
{
path = '/phpMyAdmin-2.6.4-pl1/',
method = 'HEAD'
},
{
path = '/phpMyAdmin-2.6.4-pl2/',
method = 'HEAD'
},
{
path = '/phpMyAdmin-2.6.4-pl3/',
method = 'HEAD'
},
{
path = '/phpMyAdmin-2.6.4-pl4/',
method = 'HEAD'
},
{
path = '/phpMyAdmin-2.6.4/',
method = 'HEAD'
},
{
path = '/phpMyAdmin-2.7.0-beta1/',
method = 'HEAD'
},
{
path = '/phpMyAdmin-2.7.0-rc1/',
method = 'HEAD'
},
{
path = '/phpMyAdmin-2.7.0-pl1/',
method = 'HEAD'
},
{
path = '/phpMyAdmin-2.7.0-pl2/',
method = 'HEAD'
},
{
path = '/phpMyAdmin-2.7.0/',
method = 'HEAD'
},
{
path = '/phpMyAdmin-2.8.0-beta1/',
method = 'HEAD'
},
{
path = '/phpMyAdmin-2.8.0-rc1/',
method = 'HEAD'
},
{
path = '/phpMyAdmin-2.8.0-rc2/',
method = 'HEAD'
},
{
path = '/phpMyAdmin-2.8.0/',
method = 'HEAD'
},
{
path = '/phpMyAdmin-2.8.0.1/',
method = 'HEAD'
},
{
path = '/phpMyAdmin-2.8.0.2/',
method = 'HEAD'
},
{
path = '/phpMyAdmin-2.8.0.3/',
method = 'HEAD'
},
{
path = '/phpMyAdmin-2.8.0.4/',
method = 'HEAD'
},
{
path = '/phpMyAdmin-2.8.1-rc1/',
method = 'HEAD'
},
{
path = '/phpMyAdmin-2.8.1/',
method = 'HEAD'
},
{
path = '/phpMyAdmin-2.8.2/',
method = 'HEAD'
},
{
path = '/sqlmanager/',
method = 'HEAD'
},
{
path = '/php-myadmin/',
method = 'HEAD'
},
{
path = '/phpmy-admin/',
method = 'HEAD'
},
{
path = '/mysqladmin/',
method = 'HEAD'
},
{
path = '/mysql-admin/',
method = 'HEAD'
},
{
path = '/websql/',
method = 'HEAD'
},
{
path = '/_phpmyadmin/',
method = 'HEAD'
}
},
matches = {
{
output = 'phpMyAdmin'
}
}
});
table.insert(fingerprints, {
category = 'database',
probes = {
{
path = '/footer1.gif',
method = 'HEAD'
},
},
matches = {
{
match = '',
output = '(possible) Oracle Web server'
}
}
});
table.insert(fingerprints, {
category = 'database',
probes = {
{
path = '/homepage.nsf/homePage.gif?OpenImageResource',
method = 'HEAD'
},
{
path = '/icons/ecblank.gif',
method = 'HEAD'
},
{
path = '/852566C90012664F',
method = 'HEAD'
},
{
path = '/admin4.nsf',
method = 'HEAD'
},
{
path = '/admin5.nsf',
method = 'HEAD'
},
{
path = '/admin.nsf',
method = 'HEAD'
},
{
path = '/agentrunner.nsf',
method = 'HEAD'
},
{
path = '/alog.nsf',
method = 'HEAD'
},
{
path = '/a_domlog.nsf',
method = 'HEAD'
},
{
path = '/bookmark.nsf',
method = 'HEAD'
},
{
path = '/busytime.nsf',
method = 'HEAD'
},
{
path = '/catalog.nsf',
method = 'HEAD'
},
{
path = '/certa.nsf',
method = 'HEAD'
},
{
path = '/certlog.nsf',
method = 'HEAD'
},
{
path = '/certsrv.nsf',
method = 'HEAD'
},
{
path = '/chatlog.nsf',
method = 'HEAD'
},
{
path = '/clbusy.nsf',
method = 'HEAD'
},
{
path = '/cldbdir.nsf',
method = 'HEAD'
},
{
path = '/clusta4.nsf',
method = 'HEAD'
},
{
path = '/collect4.nsf',
method = 'HEAD'
},
{
path = '/da.nsf',
method = 'HEAD'
},
{
path = '/dba4.nsf',
method = 'HEAD'
},
{
path = '/dclf.nsf',
method = 'HEAD'
},
{
path = '/DEASAppDesign.nsf',
method = 'HEAD'
},
{
path = '/DEASLog01.nsf',
method = 'HEAD'
},
{
path = '/DEASLog02.nsf',
method = 'HEAD'
},
{
path = '/DEASLog03.nsf',
method = 'HEAD'
},
{
path = '/DEASLog04.nsf',
method = 'HEAD'
},
{
path = '/DEASLog05.nsf',
method = 'HEAD'
},
{
path = '/DEASLog.nsf',
method = 'HEAD'
},
{
path = '/decsadm.nsf',
method = 'HEAD'
},
{
path = '/decslog.nsf',
method = 'HEAD'
},
{
path = '/DEESAdmin.nsf',
method = 'HEAD'
},
{
path = '/dirassist.nsf',
method = 'HEAD'
},
{
path = '/doladmin.nsf',
method = 'HEAD'
},
{
path = '/domadmin.nsf',
method = 'HEAD'
},
{
path = '/domcfg.nsf',
method = 'HEAD'
},
{
path = '/domguide.nsf',
method = 'HEAD'
},
{
path = '/domlog.nsf',
method = 'HEAD'
},
{
path = '/dspug.nsf',
method = 'HEAD'
},
{
path = '/events4.nsf',
method = 'HEAD'
},
{
path = '/events5.nsf',
method = 'HEAD'
},
{
path = '/events.nsf',
method = 'HEAD'
},
{
path = '/event.nsf',
method = 'HEAD'
},
{
path = '/homepage.nsf',
method = 'HEAD'
},
{
path = '/iNotes/Forms5.nsf/$DefaultNav',
method = 'HEAD'
},
{
path = '/jotter.nsf',
method = 'HEAD'
},
{
path = '/leiadm.nsf',
method = 'HEAD'
},
{
path = '/leilog.nsf',
method = 'HEAD'
},
{
path = '/leivlt.nsf',
method = 'HEAD'
},
{
path = '/log4a.nsf',
method = 'HEAD'
},
{
path = '/log.nsf',
method = 'HEAD'
},
{
path = '/l_domlog.nsf',
method = 'HEAD'
},
{
path = '/mab.nsf',
method = 'HEAD'
},
{
path = '/mail10.box',
method = 'HEAD'
},
{
path = '/mail1.box',
method = 'HEAD'
},
{
path = '/mail2.box',
method = 'HEAD'
},
{
path = '/mail3.box',
method = 'HEAD'
},
{
path = '/mail4.box',
method = 'HEAD'
},
{
path = '/mail5.box',
method = 'HEAD'
},
{
path = '/mail6.box',
method = 'HEAD'
},
{
path = '/mail7.box',
method = 'HEAD'
},
{
path = '/mail8.box',
method = 'HEAD'
},
{
path = '/mail9.box',
method = 'HEAD'
},
{
path = '/mail.box',
method = 'HEAD'
},
{
path = '/msdwda.nsf',
method = 'HEAD'
},
{
path = '/mtatbls.nsf',
method = 'HEAD'
},
{
path = '/mtstore.nsf',
method = 'HEAD'
},
{
path = '/names.nsf',
method = 'HEAD'
},
{
path = '/nntppost.nsf',
method = 'HEAD'
},
{
path = '/nntp/nd000001.nsf',
method = 'HEAD'
},
{
path = '/nntp/nd000002.nsf',
method = 'HEAD'
},
{
path = '/nntp/nd000003.nsf',
method = 'HEAD'
},
{
path = '/ntsync45.nsf',
method = 'HEAD'
},
{
path = '/perweb.nsf',
method = 'HEAD'
},
{
path = '/qpadmin.nsf',
method = 'HEAD'
},
{
path = '/quickplace/quickplace/main.nsf',
method = 'HEAD'
},
{
path = '/reports.nsf',
method = 'HEAD'
},
{
path = '/sample/siregw46.nsf',
method = 'HEAD'
},
{
path = '/schema50.nsf',
method = 'HEAD'
},
{
path = '/setupweb.nsf',
method = 'HEAD'
},
{
path = '/setup.nsf',
method = 'HEAD'
},
{
path = '/smbcfg.nsf',
method = 'HEAD'
},
{
path = '/smconf.nsf',
method = 'HEAD'
},
{
path = '/smency.nsf',
method = 'HEAD'
},
{
path = '/smhelp.nsf',
method = 'HEAD'
},
{
path = '/smmsg.nsf',
method = 'HEAD'
},
{
path = '/smquar.nsf',
method = 'HEAD'
},
{
path = '/smsolar.nsf',
method = 'HEAD'
},
{
path = '/smtime.nsf',
method = 'HEAD'
},
{
path = '/smtpibwq.nsf',
method = 'HEAD'
},
{
path = '/smtpobwq.nsf',
method = 'HEAD'
},
{
path = '/smtp.box',
method = 'HEAD'
},
{
path = '/smtp.nsf',
method = 'HEAD'
},
{
path = '/smvlog.nsf',
method = 'HEAD'
},
{
path = '/srvnam.htm',
method = 'HEAD'
},
{
path = '/statmail.nsf',
method = 'HEAD'
},
{
path = '/statrep.nsf',
method = 'HEAD'
},
{
path = '/stauths.nsf',
method = 'HEAD'
},
{
path = '/stautht.nsf',
method = 'HEAD'
},
{
path = '/stconfig.nsf',
method = 'HEAD'
},
{
path = '/stconf.nsf',
method = 'HEAD'
},
{
path = '/stdnaset.nsf',
method = 'HEAD'
},
{
path = '/stdomino.nsf',
method = 'HEAD'
},
{
path = '/stlog.nsf',
method = 'HEAD'
},
{
path = '/streg.nsf',
method = 'HEAD'
},
{
path = '/stsrc.nsf',
method = 'HEAD'
},
{
path = '/userreg.nsf',
method = 'HEAD'
},
{
path = '/vpuserinfo.nsf',
method = 'HEAD'
},
{
path = '/webadmin.nsf',
method = 'HEAD'
},
{
path = '/web.nsf',
method = 'HEAD'
},
{
path = '/.nsf/../winnt/win.ini',
method = 'HEAD'
},
{
path = '/icons/ecblank.gif',
method = 'HEAD'
}
},
matches = {
{
match = '',
output = 'Lotus Domino'
}
}
});
table.insert(fingerprints, {
category = 'database',
probes = {
{
path = '/_api/version',
method = 'GET'
}
},
matches = {
{
match = '"server":"arango",.-"version":"([^"])"',
output = 'ArangoDB \\1'
}
}
});
------------------------------------------------
---- MICROSOFT ----
------------------------------------------------
table.insert(fingerprints, {
category = 'microsoft',
probes = {
{
path = '/_layouts/images/helpicon.gif',
method = 'HEAD'
},
{
path = '/Pages/Default.aspx',
method = 'HEAD'
},
{
path = '/PublishingImages/NewsArticleImage.jpg',
method = 'HEAD'
},
{
path = '/_admin/operations.aspx',
method = 'HEAD'
},
{
path = '/_app_bin',
method = 'HEAD'
},
{
path = '/_controltemplates',
method = 'HEAD'
},
{
path = '/_layouts',
method = 'HEAD'
},
{
path = '/_layouts/viewlsts.aspx',
method = 'HEAD'
},
{
path = '/forms/allitems.aspx',
method = 'HEAD'
},
{
path = '/forms/webfldr.aspx',
method = 'HEAD'
},
{
path = '/forms/mod-view.aspx',
method = 'HEAD'
},
{
path = '/forms/my-sub.aspx',
method = 'HEAD'
},
{
path = '/pages/categoryresults.aspx',
method = 'HEAD'
},
{
path = '/categories/viewcategory.aspx',
method = 'HEAD'
},
{
path = '/sitedirectory',
method = 'HEAD'
},
{
path = '/editdocs.aspx',
method = 'HEAD'
},
{
path = '/workflowtasks/allitems.aspx',
method = 'HEAD'
},
{
path = '/lists/tasks/',
method = 'HEAD'
},
{
path = '/categories/allcategories.aspx',
method = 'HEAD'
},
{
path = '/categories/SOMEOTHERDIR/allcategories.aspx',
method = 'HEAD'
},
{
path = '/mycategories.aspx',
method = 'HEAD'
},
{
path = '/lists/',
method = 'HEAD'
},
{
path = '/lists/allitems.aspx',
method = 'HEAD'
},
{
path = '/lists/default.aspx',
method = 'HEAD'
},
{
path = '/lists/allposts.aspx',
method = 'HEAD'
},
{
path = '/lists/archive.aspx',
method = 'HEAD'
},
{
path = '/lists/byauthor.aspx',
method = 'HEAD'
},
{
path = '/lists/calendar.aspx',
method = 'HEAD'
},
{
path = '/lists/mod-view.aspx',
method = 'HEAD'
},
{
path = '/lists/myposts.aspx',
method = 'HEAD'
},
{
path = '/lists/my-sub.aspx',
method = 'HEAD'
},
{
path = '/lists/allcomments.aspx',
method = 'HEAD'
},
{
path = '/lists/mycomments.aspx',
method = 'HEAD'
},
{
path = '/_layouts/userdisp.aspx',
method = 'HEAD'
},
{
path = '/_layouts/help.aspx',
method = 'HEAD'
},
{
path = '/_layouts/download.aspx',
method = 'HEAD'
}
},
matches = {
{
match = '',
output = 'MS Sharepoint'
}
}
});
table.insert(fingerprints, {
category = 'microsoft',
probes = {
{
path = '/projectserver/Home/HomePage.asp',
method = 'HEAD'
},
{
path = '/projectserver/images/branding.gif',
method = 'HEAD'
},
{
path = '/projectserver/images/pgHome.gif',
method = 'HEAD'
},
{
path = '/projectserver/images/pgTask.gif',
method = 'HEAD'
},
{
path = '/projectserver/Tasks/Taskspage.asp',
method = 'HEAD'
},
},
matches = {
{
match = '',
output = 'MS Project Server'
}
}
});
table.insert(fingerprints, {
category = 'microsoft',
probes = {
{
path = '/exchweb/bin/auth/owalogon.asp',
method = 'HEAD'
},
{
path = '/images/outlook.jpg',
method = 'HEAD'
},
{
path = '/owa/8.1.375.2/themes/base/lgntopl.gif',
method = 'HEAD'
},
{
path = '/owa/',
method = 'HEAD'
},
},
matches = {
{
match = '',
output = 'Outlook Web Access'
}
}
});
table.insert(fingerprints, {
category = 'microsoft',
probes = {
{
path = '/tsweb/',
method = 'HEAD'
},
},
matches = {
{
match = '',
output = 'Remote Desktop Web Connection'
}
}
});
table.insert(fingerprints, {
category = 'microsoft',
probes = {
{
path = '/reportserver/',
method = 'HEAD'
}
},
matches = {
{
match = '',
output = 'Microsoft SQL Report Service'
}
}
});
------------------------------------------------
---- NETWORK EQUIPMENT ----
------------------------------------------------
-- Routers, switches, etc
table.insert(fingerprints, {
category = 'network',
probes = {
{
path = '/',
method = 'GET'
},
},
matches = {
{
match = 'realm="WRT54G"',
output = 'Linksys WRT54g Wireless Router'
}
}
});
table.insert(fingerprints, {
category = 'network',
probes = {
{
path = '/HW_logo.html',
method = 'HEAD'
},
},
matches = {
{
match = '',
output = 'Huawei HG 530'
}
}
});
table.insert(fingerprints, {
category = 'network',
probes = {
{
path = '/icons/icon_set_up_2701XX_01.gif',
method = 'HEAD'
},
{
path = '/icons/icon_homeportal_2701XX.gif',
method = 'HEAD'
},
{
path = '/es/images/nav_sl_home_network_01.gif',
method = 'HEAD'
},
{
path = '/en/images/nav_sl_home_network_01.gif',
method = 'HEAD'
}
},
matches = {
{
match = '',
output = '2WIRE 2701HG'
}
}
});
table.insert(fingerprints, {
category = 'network',
probes = {
{
path = '/images/stxx__xl.gif',
method = 'HEAD'
},
{
path = '/images/bbc__xl.gif',
method = 'HEAD'
}
},
matches = {
{
match = '',
output = 'Thomson TG585'
}
}
});
-- HNAP Devices
table.insert(fingerprints, {
category = 'general',
probes = {
{
path = '/HNAP1/',
method = 'GET'
}
},
matches = {
{
match = '(.-)',
output = '\\1'
}
}
});
------------------------------------------------
---- ATTACKS ----
------------------------------------------------
-- These will search for and possibly exploit vulnerabilities.
table.insert(fingerprints, {
category = 'attacks',
probes = {
{
path = '/sdk/../../../../../../../etc/vmware/hostd/vmInventory.xml',
method = 'GET',
nopipeline = true
},
{
path = '/sdk/%2E%2E/%2E%2E/%2E%2E/%2E%2E/%2E%2E/%2E%2E/%2E%2E/etc/vmware/hostd/vmInventory.xml',
method = 'GET',
nopipeline = true
}
},
matches = {
{
match = '',
output = 'Path traversal in VMWare (CVE-2009-3733)'
},
{
match = '',
output = 'Possible path traversal in VMWare (CVE-2009-3733)'
}
}
});
table.insert(fingerprints, {
category = 'attacks',
probes = {
{
path = '/../../../../../../../../../../etc/passwd',
method = 'GET',
nopipeline = true
},
{
path = '/../../../../../../../../../../boot.ini',
method = 'GET',
nopipeline = true
}
},
matches = {
{
match = 'root:',
output = 'Simple path traversal in URI (Linux)'
},
{
match = 'boot loader',
output = 'Simple path traversal in URI (Windows)'
},
{
match = '',
output = 'Possible path traversal in URI'
}
}
});
table.insert(fingerprints, {
category = 'attacks',
probes = {
{
path = '/.htaccess',
method = 'GET'
},
{
path = '/.htpasswd',
method = 'GET'
}
},
matches = {
-- We look for a '200 OK' message on this one, because most Apache servers return an access denied
{
match = '200 OK',
output = 'Incorrect permissions on .htaccess or .htpasswd files'
}
}
});
table.insert(fingerprints, {
category = 'attacks',
probes = {
{
path = '/_vti_bin/',
method = 'GET'
},
{
path = '/_vti_cnf/',
method = 'GET'
},
{
path = '/_vti_log/',
method = 'GET'
},
{
path = '/_vti_pvt/',
method = 'GET'
},
{
path = '/_vti_txt/',
method = 'GET'
},
{
path = '/postinfo.html'
},
{
path = '/_vti_bin/_vti_aut/author.dll'
},
{
path = '/_vti_bin/_vti_aut/author.exe'
},
{
path = '/_vti_bin/_vti_aut/dvwssr.dll'
},
{
path = '/_vti_bin/_vti_adm/admin.dll'
},
{
path = '/_vti_bin/_vti_adm/admin.exe'
},
{
path = '/_vti_bin/fpcount.exe?Page=default.asp|Image=3'
},
{
path = '/_vti_bin/shtml.dll'
},
{
path = '/_vti_bin/shtml.exe'
},
{
path = '/_vti_pvt/_x_todo.htm'
},
{
path = '/_vti_pvt/_x_todoh.htm'
},
{
path = '/_vti_pvt/access.cnf'
},
{
path = '/_vti_pvt/administrator.pwd'
},
{
path = '/_vti_pvt/administrators.pwd'
},
{
path = '/_vti_pvt/authors.pwd'
},
{
path = '/_vti_pvt/bots.cnf'
},
{
path = '/_vti_pvt/botinfs.cnf'
},
{
path = '/_vti_pvt/deptodoc.btr'
},
{
path = '/_vti_pvt/doctodep.btr'
},
{
path = '/_vti_pvt/frontpg.lck'
},
{
path = '/_vti_pvt/linkinfo.cnf'
},
{
path = '/_vti_pvt/service.cnf'
},
{
path = '/_vti_pvt/service.grp'
},
{
path = '/_vti_pvt/service.lck'
},
{
path = '/_vti_pvt/service.pwd'
},
{
path = '/_vti_pvt/Service.stp'
},
{
path = '/_vti_pvt/services.cnf'
},
{
path = '/_vti_pvt/services.org'
},
{
path = '/_vti_pvt/structure.cnf'
},
{
path = '/_vti_pvt/svcacl.cnf'
},
{
path = '/_vti_pvt/users.pwd'
},
{
path = '/_vti_pvt/uniqueperm.cnf'
},
{
path = '/_vti_pvt/writeto.cnf'
},
},
matches = {
{
match = '200',
output = 'Frontpage file or folder'
}
}
});
table.insert(fingerprints, {
category = 'attacks',
probes = {
{
path = '/.svn/',
method = 'GET'
},
{
path = '/.svn/text-base/.htaccess.svn-base',
method = 'GET'
},
{
path = '/.svn/text-base/.htpasswd.svn-base',
method = 'GET'
},
{
path = '/.svn/text-base/Web.config.svn-base',
method = 'GET'
}
},
matches = {
{
match = '200',
output = 'Subversion folder'
}
}
});
table.insert(fingerprints, {
category = 'attacks',
probes = {
{
path = '/.git/HEAD',
method = 'GET'
},
},
matches = {
{
match = 'ref: refs',
output = 'Git folder'
}
}
});
table.insert(fingerprints, {
category = 'attacks',
probes = {
{
path = '/.hg/requires',
method = 'GET'
},
},
matches = {
{
match = 'revlogv1',
output = 'Mercurial folder'
}
}
});
table.insert(fingerprints, {
category = 'attacks',
probes = {
{
path = '/.bzr/README',
method = 'GET'
},
},
matches = {
{
match = 'This is a Bazaar',
output = 'Bazaar folder'
}
}
});
table.insert(fingerprints, {
category = 'attacks',
probes = {
{
path = '/downloadFile.php',
method = 'GET'
},
{
path = '/BackupConfig.php',
method = 'GET'
}
},
matches = {
{
output = 'NETGEAR WNDAP350 2.0.1 to 2.0.9 potential file download and SSH root password disclosure'
}
}
});
table.insert(fingerprints, {
category = 'attacks',
probes = {
{
path = '/cwhp/auditLog.do?file=..\\..\\..\\..\\..\\..\\..\\boot.ini',
method = 'GET'
},
{
path = '/cwhp/auditLog.do?file=..\\..\\..\\..\\..\\..\\..\\Program%20Files\\CSCOpx\\MDC\\Tomcat\\webapps\\triveni\\WEB-INF\\classes\\schedule.properties',
method = 'GET'
},
{
path = '/cwhp/auditLog.do?file=..\\..\\..\\..\\..\\..\\..\\Program%20Files\\CSCOpx\\lib\\classpath\\com\\cisco\\nm\\cmf\\dbservice2\\DBServer.properties',
method = 'GET'
},
{
path = '/cwhp/auditLog.do?file=..\\..\\..\\..\\..\\..\\..\\Program%20Files\\CSCOpx\\log\\dbpwdChange.log',
method = 'GET'
}
},
matches = {
{
match = 'boot loader',
output = 'CiscoWorks (CuOM 8.0 and 8.5) Directory traversal (CVE-2011-0966) (Windows)'
},
{
match = '',
output = 'Possible CiscoWorks (CuOM 8.0 and 8.5) Directory traversal (CVE-2011-0966) (Windows)'
}
}
});
table.insert(fingerprints, {
category = 'attacks',
probes = {
{
path = '..%2f..%2f..%2f..%2f..%2f..%2f..%2f..%2f/var/mobile/Library/AddressBook/AddressBook.sqlitedb',
method = 'HEAD'
}
},
matches = {
{
match = '',
output = 'Possible iPhone/iPod/iPad generic file sharing app Directory Traversal (iOS)'
}
}
});
table.insert(fingerprints, {
category = 'attacks',
probes = {
{
path = '/Info.live.htm',
method = 'GET'
}
},
matches = {
{
match = '200',
output = 'Possible DD-WRT router Information Disclosure (BID 45598)'
}
}
});
table.insert(fingerprints, {
category = 'attacks',
probes = {
{
path = '/CuteSoft_Client/CuteEditor/Load.ashx?type=image&file=../../../web.config',
method = 'GET'
}
},
matches = {
{
match = '200',
output = 'Cute Editor ASP.NET Remote File Disclosure ( CVE 2009-4665 )'
}
}
});
table.insert(fingerprints, {
category = 'attacks',
probes = {
{
path = '/plugins/PluginController.php?path=..%2f..%2f..%2f..%2f..%2f..%2f..%2f..%2fwindows%2fwin.ini%00',
method = 'GET'
}
},
matches = {
{
match = '200',
output = 'OrangeHRM 2.6.3 Local File Inclusion '
}
}
});
table.insert(fingerprints, {
category = 'attacks',
probes = {
{
path = '/tiki-listmovies.php?movie=../../../../../../etc/passwd%001234',
method = 'GET'
}
},
matches = {
{
match = '200',
output = 'TikiWiki < 1.9.9 Directory Traversal Vulnerability'
}
}
});
table.insert(fingerprints, {
category = 'attacks',
probes = {
{
path = '/index.php?option=com_jce&task=plugin&plugin=imgmanager&file=imgmanager&version=1576&cid=20',
method = 'GET'
}
},
matches = {
{
match = '2.0.11',
output = 'WordPress version: \\1'
},
{
match = '/wp-includes/js/wp-emoji-release.min.js?ver=([0-9 .]*)',
output = 'WordPress version: \\1'
}
}
});
-- Wordpress versions (Scraping rss feed)
table.insert(fingerprints, {
category = 'cms',
probes = {
{
path = '?feed=rss',
method = 'GET'
},
{
path = '?feed=rss2',
method = 'GET'
},
{
path = '?feed=atom',
method = 'GET'
},
{
path = '/feed',
method = 'GET'
},
{
path = '/feed/',
method = 'GET'
},
{
path = '/feed/rss',
method = 'GET'
},
{
path = '/feed/rss2',
method = 'GET'
},
{
path = '/feed/atom',
method = 'GET'
}
},
matches = {
{
match = '[v|V]=([0-9 .]*)',
output = 'Wordpress version: \\1'
}
}
});
-- Wordpress detection indentified by Version-specific files.
-- These are the 6 new web-accessible files that was added in each release.
table.insert(fingerprints, {
category = 'cms',
probes = {
{
path = "/wp-includes/images/rss.png"
}
},
matches = {
{
output = "Wordpress version 2.2 found."
}
}
});
table.insert(fingerprints, {
category = 'cms',
probes = {
{
path = "/wp-includes/js/scriptaculous/sound.js"
}
},
matches = {
{
output = "Wordpress version 2.3 found."
}
}
});
table.insert(fingerprints, {
category = 'cms',
probes = {
{
path = "/wp-includes/js/jquery/suggest.js"
}
},
matches = {
{
output = "Wordpress version 2.5 found."
}
}
});
table.insert(fingerprints, {
category = 'cms',
probes = {
{
path = "/wp-includes/images/blank.gif"
}
},
matches = {
{
output = "Wordpress version 2.6 found."
}
}
});
table.insert(fingerprints, {
category = 'cms',
probes = {
{
path = "/wp-includes/js/comment-reply.js"
}
},
matches = {
{
output = "Wordpress version 2.7 found."
}
}
});
table.insert(fingerprints, {
category = 'cms',
probes = {
{
path = "/wp-includes/js/codepress/codepress.js"
}
},
matches = {
{
output = "Wordpress version 2.8 found."
}
}
});
-- Broad wordpress version identification (Gives major only versions)
table.insert(fingerprints, {
category = 'cms',
probes = {
{
path = '/wp-login.php'
},
{
path = '/wordpress/wp-login.php'
},
{
path = '/blog/wp-login.php'
},
{
path = '/administrator/wp-login.php'
},
{
path = '/weblog/wp-login.php'
},
{
path = '/wp-admin/upgrade.php'
}
},
matches = {
{
match = '[ver|version]=20080708',
output = 'WordPress 2.6.x found'
},
{
match = '[ver|version]=20081210',
output = 'WordPress 2.7.x found'
},
{
match = '[ver|version]=20090514',
output = 'WordPress 2.8.x found'
},
{
match = '[ver|version]=20091217',
output = 'WordPress 2.9.x found'
},
{
match = '[ver|version]=20100601',
output = 'WordPress 3.0.x found'
},
{
match = '[ver|version]=20110121',
output = 'WordPress 3.1.x found'
},
{
match = '[ver|version]=20121105',
output = 'WordPress 3.7.x found'
},
{
output = 'Wordpress login page.'
}
}
});
-- ZenCart version detection
table.insert(fingerprints, {
category = 'cms',
probes = {
{
path = '/docs/'
},
{
path = '/store/docs/'
},
{
path = '/zencart/docs/'
},
{
path = '/cart/docs/'
}
},
matches = {
{
match = '.*">Changelog for v(%d-%..-) %(changed files%)',
output = 'ZenCart, version \\1'
}
}
});
-- Broad phpBB versions
table.insert(fingerprints, {
category = 'cms',
probes = {
{
path = '/docs/CHANGELOG.html'
},
{
path = '/forum/docs/CHANGELOG.html'
},
{
path = '/forums/docs/CHANGELOG.html'
},
{
path = '/board/docs/CHANGELOG.html'
},
{
path = '/boards/docs/CHANGELOG.html'
}
},
matches = {
{
match = 'Changes since (%d-%..-)',
output = 'phpBB version slightly newer than \\1'
},
{
match = '%s*([^%s<]*)'
.. '.-Hadoop version:.-%s*([^%s<]*)',
output = 'Hadoop YARN Resource Manager version \\2, state "\\1", Hadoop version \\3'
},
}
});
-- Hadoop Node Resource Manager
table.insert(fingerprints, {
category = 'info',
probes = {
{
path = '/node',
method = 'GET'
},
},
matches = {
{
match = 'Node Manager Version:.- | %s*([^%s<]*)'
.. '.-Hadoop Version:.- | %s*([^%s<]*)',
output = 'Hadoop YARN Node Manager version \\1, Hadoop version \\2'
},
}
});
table.insert(fingerprints, {
category = 'cms',
probes = {
{
path = '/databases/acidcat_3.mdb',
method = 'HEAD'
}
},
matches = {
{
match = '',
output = 'Acidcat CMS Database'
}
}
});
table.insert(fingerprints, {
category = 'cms',
probes = {
{
path = '/mdb-database/dblog.mdb',
method = 'HEAD'
}
},
matches = {
{
match = '',
output = 'dBlog Database'
}
}
});
table.insert(fingerprints, {
category = 'cms',
probes = {
{
path = '/db/users.mdb',
method = 'HEAD'
},
{
path = '/db/'
}
},
matches = {
{
match = '',
output = 'BlogWorx Database'
}
}
});
table.insert(fingerprints, {
category = 'cms',
probes = {
{
path = '/infusions/avatar_studio/avatar_studio.php',
method = 'HEAD'
}
},
matches = {
{
match = '',
output = 'PHP-Fusion Mod avatar_studio'
}
}
});
table.insert(fingerprints, {
category = 'cms',
probes = {
{
path = '/bnnr.php',
method = 'HEAD'
},
{
path = '/vb/bnnr.php',
method = 'HEAD'
},
{
path = '/forum/bnnr.php',
method = 'HEAD'
}
},
matches = {
{
match = '',
output = 'vBulletin ads_saed'
}
}
});
table.insert(fingerprints, {
category = 'cms',
probes = {
{
path = '/weblink_cat_list.php',
method = 'HEAD'
}
},
matches = {
{
match = '',
output = 'WHMCompleteSolution CMS'
}
}
});
-- Drupal signatures
table.insert(fingerprints, {
category = 'cms',
probes = {
{
path = '/',
method = 'GET'
}
},
matches = {
{
match = ' src="/sites/all/themes/',
output = 'Drupal signature'
},
{
match = ' src="/sites/all/modules/',
output = 'Drupal signature'
},
{
match = ' href="/sites/all/themes/',
output = 'Drupal signature'
},
{
match = 'jQuery.extend(Drupal.settings,',
output = 'Drupal signature'
}
}
});
-- Drupal files
table.insert(fingerprints, {
category = 'cms',
probes = {
{
path = '/UPGRADE.txt'
},
{
path = '/INSTALL.txt'
},
{
path = '/MAINTENERS.txt'
},
{
path = '/INSTALL.mysql.txt'
},
{
path = '/INSTALL.pgsql.txt'
},
{
path = '/update.php'
}
},
matches = {
{
match = 'Drupal ',
output = 'Drupal file'
}
}
});
-- Joomla versions
table.insert(fingerprints, {
category = 'cms',
probes = {
{
-- Detects versions >= 1.60
path = '/administrator/manifests/files/joomla.xml',
method = 'GET'
},
{
-- Detects version >= 1.50 and <= 1.5.26
path = '/language/en-GB/en-GB.xml',
method = 'GET'
},
{
-- Detects version < 1.50
path = '/modules/custom.xml',
method = 'GET'
}
},
matches = {
{
match = '(.-)',
output = 'Joomla version \\1'
}
}
});
-- Joomla!
table.insert(fingerprints, {
category = 'cms',
probes = {
{
path = '/htaccess.txt'
},
{
path = '/templates/system/css/toolbar.css'
},
{
path = '/templates/beez/css/template_rtl.css'
}
},
matches = {
{
match = 'Joomla!',
output = 'Joomla!'
}
}
});
-- Drupal changelog
table.insert(fingerprints, {
category = 'cms',
probes = {
{
path = '/CHANGELOG.txt'
}
},
matches = {
{
match = 'Drupal (%d..-),',
output = 'Drupal v1'
}
}
});
-- Drupal version
table.insert(fingerprints, {
category = 'cms',
probes = {
{
-- Must be executed on both ports 80, 443 for accurate results
path = '/',
method = 'GET'
}
},
matches = {
{
match = ' |