SlideShare a Scribd company logo
BlackHat Seattle, 2003 Identifying Web Servers:  A First-look Into the Future of Web Server Fingerprinting
Introductions Jeremiah Grossman Founder and CEO, WhiteHat Security Bill Pennington Senior Engineer, WhiteHat Security
Web Server Fingerprinting Cross Site Tracing - XST Web Application Forensics Agenda
Determine the specific version of the target web server. Determine the configuration settings. Develop countermeasures to fingerprinting. Make patch delivery easier. Why Fingerprint?
Send the same HTTP request and get different responses Perform a single or standard set of HTTP request towards a web server.  The varied differences in the responses will allow for accurate fingerprinting.
The Common Web Servers January 2003 Source: Netcraft
The Server Banner
Servers with no banner
Servers with no banner
OPTIONS *
IIS 4.0
IIS 5.0
Quick Check IIS 4.0 - Public: OPTIONS, TRACE, GET, HEAD, POST, PUT, DELETE IIS 5.0 - Public: OPTIONS, TRACE, GET, HEAD, DELETE, PUT, POST, COPY, MOVE, MKCOL, PROPFIND, PROPPATCH, LOCK, UNLOCK, SEARCH We can now differentiate between IIS 4.0 and IIS 5.0 and between Apache and IIS!
Apache 1.3.x
Apache 2.0.x
Quick Check Apache 2.0.x - Allow: GET, HEAD, POST, OPTIONS TRACE Apache 1.3.x - Allow: GET, HEAD, OPTIONS, TRACE We can now differentiate 1.3.x and 2.0.x because of the added POST OPTION.
Take a guess
Netscape 3.6
Netscape 4.1
Netscape 6.0
Adequate Entropy The results from the sampling of HTTP output using only “OPTIONS *” provided enough data to start fingerprinting.
Server Responses Server Response Microsoft-IIS/4.0 Public: OPTIONS, TRACE, GET, HEAD, POST, PUT, DELETE Microsoft-IIS/5.0 Public: OPTIONS, TRACE, GET, HEAD, DELETE, PUT, POST, COPY, MOVE, MKCOL, PROPFIND, PROPPATCH, LOCK, UNLOCK, SEARCH Allow: OPTIONS, TRACE, GET, HEAD, DELETE, PUT, POST, COPY, MOVE, MKCOL, PROPFIND, PROPPATCH, LOCK, UNLOCK, SEARCH Apache/1.3.26 (Unix) Allow: GET, HEAD, OPTIONS,TRACE Apache/2.0.41-dev (Unix) Allow: GET,HEAD,POST,OPTIONS,TRACE Oracle9iAS/9.0.2 Oracle HTTP Server Oracle9iAS-Web-Cache/9.0.2.0.0 (N) Allow: GET, HEAD, OPTIONS, TRACE Netscape-Enterprise/3.6 SP2 Public: HEAD, GET, PUT, POST Netscape-Enterprise/4.0 Allow: HEAD, GET, PUT, POST Netscape-Enterprise/4.1 Allow: HEAD, GET, PUT, POST, DELETE, TRACE, OPTIONS, MOVE, INDEX, MKDIR, RMDIR Netscape-Enterprise/6.0 Allow: HEAD, GET, PUT, POST, DELETE, TRACE, OPTIONS, MOVE, INDEX, MKDIR, RMDIR
OPTIONS * Conclusions If the server allows and supports the “OPTIONS” HTTP Request Method, then with a reasonable level of certainty, we can conclude what the major version number is for a popular web server. The “Server” response header is no longer necessary to determine what a web server is running.
Other Request Methods Server Specific Methods Track - IIS only method Various HTTP response codes ///<dir> will return 400 status code on some Apache versions Various HTTP Status messages Alternating capitalization
Research is not complete! Larger pool of HTTP Requests More requests allow closer and more detailed accuracy of web server fingerprinting.
Fingerprinting Countermeasures Microsoft IIS URL Scan Secure IIS Server Mask Apache mod_rewrite httpd.conf changes source code modifications
Microsoft IIS URLScan Add the following line to your URLScan.ini file: [options] UseAllowVerbs=0 [Deny Verbs] OPTIONS Caution! Can cause some applications to break. (Frontpage,OWA)
Apache mod_rewrite Add the following to your httpd.conf RewriteEngine on
RewriteCond %{REQUEST_METHOD}  ^OPTIONS
RewriteRule .*   -   [F]
Questions?
Web Server Fingerprinting Cross Site Tracing - XST Web Application Forensics Agenda
Cross-Site Tracing A variation of cross-site scripting that increases the threat exposure. What can XST do that XSS cannot? Bypass HTTPOnly Restrictions Access to Basic Authentication Credentials Access to NTLM Credentials A web application is no longer required to cross-site script a user if the web server supports the TRACE request method. Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Exploit Requirements Cross Site Scripting  A vulnerable web application A user that clicks on a link or views malicious content. Cross Site Tracing Web server that supports the trace request A place to host the XST code Cross domain bypass bug (if cross domain is required)
Steps of Cross-Site Scripting Attacker inserts code into a site or sends a malicsions HTML link to a user. User views the malicious content or clicks on the malicious link. Malicious code is executed with the hosting domain context, granting access to the cookie data., Cookie data is passed off domain to a third-party.
Steps of Cross-Site Tracing Attacker inserts code into a target site or hosts the code on a controlled web page. User views the web pages and malicious code executes within the browser. Code directs the browser to send a TRACE request to a target domain. Cookie, Basic Authentication, and NTLM credentials are sent back to the browser within the HTML Body. Authentication information is sent to a third-party. Server Attacker Victim Target Domain
XST Points to Remember This is a multi-platform multi-technology issue. Not restricted to ActiveX. Flash, Java, etc.
General Remedies Sufficiently patch all web browsers against known domain restriction bypass flaws.  This is more important part of security policy now more than ever. Disable or disallow the TRACE Request method on production and development (unless needed) web servers.  3.Web server vendors should update their web server packages to disable TRACE by default. 4.Web server vendors should inform their users on how to disable or disallow TRACE on existing web servers. 5.ActiveX controls supporting arbitrary HTTP request should be marked unsafe for scripting by default. Other such technology vendors (Flash, Java, Shockwave, VBScript, etc.) should attempt to implement greater security mechanisms regarding disallowing unauthorized HTTP requests. Users have the ability to disable all active scripting and increase the safety of their credentials. However, this may negatively impact the functionality of many web sites.
Server Specific Server Specific (Resolutions should be confirmed by appropriate vendor) IIS - URL Scan   Apache -          Source Code Modification -          Mod_Rewrite Module   RewriteEngine on
RewriteCond %{REQUEST_METHOD}  ^TRACE
RewriteRule .*   -   [F]   (Thank you to Rain Forest Puppy)   ** The Limit or LimitExcept directive in the httpd.conf file does not appear to be able to restrict TRACE. **
Microsoft IIS URLScan Add the following line to your URLScan.ini file: [options] UseAllowVerbs=0 [Deny Verbs] TRACE Caution! Can cause some applications to break. (Frontpage,OWA)
Apache mod_rewrite Add the following to your httpd.conf RewriteEngine on
RewriteCond %{REQUEST_METHOD}  ^TRACE
RewriteRule .*   -   [F]
XST Demo
Web Server Fingerprinting Cross Site Tracing - XST Web Application Forensics Agenda
Forensics fo·ren·sics   (f -r nsks, -z ks)  n. (used with a sing. verb)  1. The art or study of formal debate; argumentation.  2. The use of science and technology to investigate    and establish facts in criminal or civil courts of law.
Why? I could not find any good tools I only found one document and it was a marketing document. I was bored...
Typical Web Server Environment (Simplified) Web Server Application Server Database Server Internet Firewall
What are Web Attacks? SQL Injection Cross Site Scripting Parameter Tampering Directory Traversal Various Web Server Flaws Unicode Double Decode SSL Overflows
Avenues of Attack Port 80 - Clear text,  easy to watch with an IDS system Port 443 - SSL encrypted can be watched with an IDS but advanced configuration is required, often not done
HTTP Request Get Request Easy everything is logged POST Request Only the Path is logged bummer...
Traditional Network IDS do not work Yes they will generally detect Nimda/CodeRed (Unicode/double decode) attacks. You could write rules to detect some basic attacks http://www.cgisecurity.com/web-attacks.rules It is almost impossible to detect certain attacks with a NIDS
Log Files IIS Log Files Stored in %winnt%/system32/logs/<servicename> Typically - C:/winnt/system32/logs/w3svc/*.log
IIS Log File Formats IIS log file format UserIP,UserName,Date,Time,Service,Computer Name,ServerIP,Time Taken,Bytes Sent,Bytes Received,Status Code, Windows Status,Request Type,Target,Parameters IIS can log to IIS,W3C Extended and NCSA common file format
File name determines type of log IIS format log files begin with  in W3C extended log files begin with  ex   NCSA log files begin with  nc
Apache Log File Locations ? %apache_home% /log/access.log
Apache Log File Formats By default Apache logs to NCSA common format or the combined log file format clientip,ident,username,date/time,request,status,bytes sent
Performance Tip Separate log files on a separate physical disk from content
Problems with web server logs POST data is rarely logged They are generally very large Contain lots of non-security related entries Many attacks can occur via POST request Some attacks can simply not be determined by log files
Log File Sizes www.whitehatsec.com From Jan 22nd - Feb 19th 466,829 lines eCom/Online Gaming Feb 1 - Feb 7 1,198,140 lines
Analysis of log content 107
What defines a bad request? 401 Response codes - Authentication required 500 Response codes - Server error, SQL injection 200 Response code - could be the worst of all, success
Weird Characters Some things should generally not be in a URL ‘  < > * .. etc...
Odd Request Methods 99% of applications use only GET and/or POST Why is someone HEADing me and should I let them?
Odd Request Methods Head Just returns server header no data. Used to probe for the existence of files Options Used to determine the capabilities of a web server and finger printing Trace Used for diagnostics. A possible attack vector XST Any WebDAV method (PropFind...) Used for managed web content. (Frontpage) and in some more robust web applications (OWA)
Introducing the HillBilly Not really an analysis tool, more of a data reduction tool Searches for odd URLs 500 errors Strange request methods
HillBilly Syntax ./hillbilly.pl -t <common,iis4,iis5> -l <logfile> -f <outputfile> -g (Look for odd GET request) -p (Look for 500 errors) -o (Look for odd request methods)
Odd URL search ./hillbilly.pl -t common -l access_log -g Regex = /[^A-Za-z0-9\.\/\?(%20)=_&-]/ Looks for request that contain characters other than these Will find Unicode,Double Decode, Cross Site Scripting, SQL Injection, Command Execution, Directory Traversal in a GET request.
Weird Character Output
Weird Character Reduction
Ecom log file reduction Log file reduced from 1,198,140 to 285,314
500 Errors Looks for any request method that generates a 500 error Large numbers of 500 errors from a single user over a short period can indicate a attack Check application server and SQL server logs Your time is synced right? ./hillbilly.pl -l access_log -t common -p 500 errors can indicate a SQL injection attack
Ecom odd request types Log file reduced from 1,198,140 to 0
Odd Request types ./hillbilly.pl -l access_log -t common -o Looks for any request type other than GET or POST Can point out probing request or finger printing attempts
Ecom odd request types Log file reduced from 1,198,140 to 2269
Prepare for the worst Configuring web server log files Know where they are! Additional utilities URLScan (IIS) mod_protect (Apache) Code Seeker (Cross platform)
Other logs SQL server logs Make sure they are on and at least logging errors Listen to your DBA whine about performance! Application Server Logs Make sure they are on Make sure you understand them
Time If you can’t sync it at least try to get it close You should really try to sync it, really
Using HillBilly as an IDS Danger this is untested!!! Danger this is probably insecure!!! CustomLog &quot;|/usr/bin/hillbilly.pl -t common -l - -g >> /var/log/hillbilly.log&quot; common  Apache
Future Plans Recognize and automatically parse web server logs Use some sort of magic to profile the log file to look for truly deviant request Pretty output Add option to only look for successful request Write code others can read and use
Questions
Materials: www.whitehatsec.com

More Related Content

ODP
web server
PDF
Web server
PPTX
Web servers
PPT
Web Servers: Architecture and Security
PPSX
Web server
DOC
seminar on proxyserver
PPT
Proxy servers
PDF
web server
Web server
Web servers
Web Servers: Architecture and Security
Web server
seminar on proxyserver
Proxy servers

What's hot (20)

PPT
Web servers – features, installation and configuration
PPT
Web server administration
PPTX
Apache web server
PPTX
Web Server - Internet Applications
PPTX
Message queues
DOCX
How to set up a proxy server on windows
ODP
Apache ppt
PPT
Web Server(Apache),
PDF
Java Programming - 07 java networking
PPTX
Web server hardware and software
PPTX
Basic Server PPT (THDC)
PPTX
Web Hacking series part 2
PDF
APACHE WEB SERVER FOR LINUX
PPTX
Http Proxy Server
PPTX
Apache error
PDF
HTML5 Server Sent Events/JSF JAX 2011 Conference
PPT
Apache Web Server Architecture Chaitanya Kulkarni
PDF
Server-Side Programming Primer
ODP
Server Sent Events, Async Servlet, Web Sockets and JSON; born to work together!
Web servers – features, installation and configuration
Web server administration
Apache web server
Web Server - Internet Applications
Message queues
How to set up a proxy server on windows
Apache ppt
Web Server(Apache),
Java Programming - 07 java networking
Web server hardware and software
Basic Server PPT (THDC)
Web Hacking series part 2
APACHE WEB SERVER FOR LINUX
Http Proxy Server
Apache error
HTML5 Server Sent Events/JSF JAX 2011 Conference
Apache Web Server Architecture Chaitanya Kulkarni
Server-Side Programming Primer
Server Sent Events, Async Servlet, Web Sockets and JSON; born to work together!
Ad

Viewers also liked (20)

ODP
Knolx j query-form-validation-slides
PDF
Php Security Workshop
PPTX
PPT
OWASP App Sec US - 2010
PPT
Web Technology – Web Server Setup : Chris Uriarte
PDF
PPT
Apache Web Server Setup 2
PDF
ClueCon2009: The Security Saga of SysAdmin Steve
PDF
Remote security with Red Hat Enterprise Linux
PPTX
Accessible dynamic forms
PDF
Scalable Internet Servers and Load Balancing
PDF
Safety LAMP: data security & agile languages
PPT
Anatomy of Fraud (2010 & 2013)
PDF
Zero to Hero, a jQuery Primer
PPT
Php Security By Mugdha And Anish
PPTX
PHP Advanced
PPTX
Your Inner Sysadmin - Tutorial (SunshinePHP 2015)
PDF
jQuery: Events, Animation, Ajax
PDF
OWASP AppSec USA 2011 - Dismantling Web Malware
ODP
Effective communication
Knolx j query-form-validation-slides
Php Security Workshop
OWASP App Sec US - 2010
Web Technology – Web Server Setup : Chris Uriarte
Apache Web Server Setup 2
ClueCon2009: The Security Saga of SysAdmin Steve
Remote security with Red Hat Enterprise Linux
Accessible dynamic forms
Scalable Internet Servers and Load Balancing
Safety LAMP: data security & agile languages
Anatomy of Fraud (2010 & 2013)
Zero to Hero, a jQuery Primer
Php Security By Mugdha And Anish
PHP Advanced
Your Inner Sysadmin - Tutorial (SunshinePHP 2015)
jQuery: Events, Animation, Ajax
OWASP AppSec USA 2011 - Dismantling Web Malware
Effective communication
Ad

Similar to Identifying Web Servers: A First-look Into the Future of Web Server Fingerprinting (20)

PPT
gofortution
PPS
Hacking Client Side Insecurities
PDF
Romulus OWASP
ODP
Web Security
PDF
OWASP Portland - OWASP Top 10 For JavaScript Developers
PPT
gofortution
PPTX
Waf bypassing Techniques
PPT
Using Proxies To Secure Applications And More
PDF
Application Security Workshop
PPT
Web Fundamentals
PPT
PPTX
Web Exploitation Security
KEY
DVWA BruCON Workshop
PPT
Web Fundamentals
PDF
Introduction to Mod security session April 2016
PDF
CTU June 2011 - Things that Every ASP.NET Developer Should Know
PPT
Applciation footprinting, discovery and enumeration
PPT
Top Ten Web Hacking Techniques – 2008
PDF
Top 10 Security Vulnerabilities (2006)
PPS
Manindra kishore _incident_handling_n_log_analysis - ClubHack2009
gofortution
Hacking Client Side Insecurities
Romulus OWASP
Web Security
OWASP Portland - OWASP Top 10 For JavaScript Developers
gofortution
Waf bypassing Techniques
Using Proxies To Secure Applications And More
Application Security Workshop
Web Fundamentals
Web Exploitation Security
DVWA BruCON Workshop
Web Fundamentals
Introduction to Mod security session April 2016
CTU June 2011 - Things that Every ASP.NET Developer Should Know
Applciation footprinting, discovery and enumeration
Top Ten Web Hacking Techniques – 2008
Top 10 Security Vulnerabilities (2006)
Manindra kishore _incident_handling_n_log_analysis - ClubHack2009

More from Jeremiah Grossman (20)

PDF
All these vulnerabilities, rarely matter
PDF
How to Determine Your Attack Surface in the Healthcare Sector
PDF
The Attack Surface of the Healthcare Industry
PDF
Exploring the Psychological Mechanisms used in Ransomware Splash Screens
PDF
What the Kidnapping & Ransom Economy Teaches Us About Ransomware
PDF
What the Kidnapping & Ransom Economy Teaches Us About Ransomware
PDF
Next Generation Endpoint Prtection Buyers Guide
PDF
Can Ransomware Ever Be Defeated?
PDF
Ransomware is Here: Fundamentals Everyone Needs to Know
PDF
Web Application Security Statistics Report 2016
PPTX
15 Years of Web Security: The Rebellious Teenage Years
PPTX
15 Years of Web Security: The Rebellious Teenage Years
PPTX
Where Flow Charts Don’t Go -- Website Security Statistics Report (2015)
PDF
WhiteHat’s Website Security Statistics Report 2015
PPTX
No More Snake Oil: Why InfoSec Needs Security Guarantees
PPTX
WhiteHat Security 2014 Statistics Report Explained
PDF
WhiteHat 2014 Website Security Statistics Report
PDF
Million Browser Botnet
PDF
WhiteHat Security Website Statistics [Full Report] (2013)
PPTX
Top Ten Web Hacking Techniques of 2012
All these vulnerabilities, rarely matter
How to Determine Your Attack Surface in the Healthcare Sector
The Attack Surface of the Healthcare Industry
Exploring the Psychological Mechanisms used in Ransomware Splash Screens
What the Kidnapping & Ransom Economy Teaches Us About Ransomware
What the Kidnapping & Ransom Economy Teaches Us About Ransomware
Next Generation Endpoint Prtection Buyers Guide
Can Ransomware Ever Be Defeated?
Ransomware is Here: Fundamentals Everyone Needs to Know
Web Application Security Statistics Report 2016
15 Years of Web Security: The Rebellious Teenage Years
15 Years of Web Security: The Rebellious Teenage Years
Where Flow Charts Don’t Go -- Website Security Statistics Report (2015)
WhiteHat’s Website Security Statistics Report 2015
No More Snake Oil: Why InfoSec Needs Security Guarantees
WhiteHat Security 2014 Statistics Report Explained
WhiteHat 2014 Website Security Statistics Report
Million Browser Botnet
WhiteHat Security Website Statistics [Full Report] (2013)
Top Ten Web Hacking Techniques of 2012

Recently uploaded (20)

PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Network Security Unit 5.pdf for BCA BBA.
PPTX
A Presentation on Artificial Intelligence
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
NewMind AI Monthly Chronicles - July 2025
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
Modernizing your data center with Dell and AMD
PPTX
Cloud computing and distributed systems.
PPTX
Big Data Technologies - Introduction.pptx
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Electronic commerce courselecture one. Pdf
PDF
Encapsulation theory and applications.pdf
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PPT
Teaching material agriculture food technology
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Network Security Unit 5.pdf for BCA BBA.
A Presentation on Artificial Intelligence
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Diabetes mellitus diagnosis method based random forest with bat algorithm
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
NewMind AI Monthly Chronicles - July 2025
Dropbox Q2 2025 Financial Results & Investor Presentation
The AUB Centre for AI in Media Proposal.docx
Modernizing your data center with Dell and AMD
Cloud computing and distributed systems.
Big Data Technologies - Introduction.pptx
Reach Out and Touch Someone: Haptics and Empathic Computing
NewMind AI Weekly Chronicles - August'25 Week I
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Electronic commerce courselecture one. Pdf
Encapsulation theory and applications.pdf
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
20250228 LYD VKU AI Blended-Learning.pptx
Teaching material agriculture food technology

Identifying Web Servers: A First-look Into the Future of Web Server Fingerprinting

  • 1. BlackHat Seattle, 2003 Identifying Web Servers: A First-look Into the Future of Web Server Fingerprinting
  • 2. Introductions Jeremiah Grossman Founder and CEO, WhiteHat Security Bill Pennington Senior Engineer, WhiteHat Security
  • 3. Web Server Fingerprinting Cross Site Tracing - XST Web Application Forensics Agenda
  • 4. Determine the specific version of the target web server. Determine the configuration settings. Develop countermeasures to fingerprinting. Make patch delivery easier. Why Fingerprint?
  • 5. Send the same HTTP request and get different responses Perform a single or standard set of HTTP request towards a web server. The varied differences in the responses will allow for accurate fingerprinting.
  • 6. The Common Web Servers January 2003 Source: Netcraft
  • 13. Quick Check IIS 4.0 - Public: OPTIONS, TRACE, GET, HEAD, POST, PUT, DELETE IIS 5.0 - Public: OPTIONS, TRACE, GET, HEAD, DELETE, PUT, POST, COPY, MOVE, MKCOL, PROPFIND, PROPPATCH, LOCK, UNLOCK, SEARCH We can now differentiate between IIS 4.0 and IIS 5.0 and between Apache and IIS!
  • 16. Quick Check Apache 2.0.x - Allow: GET, HEAD, POST, OPTIONS TRACE Apache 1.3.x - Allow: GET, HEAD, OPTIONS, TRACE We can now differentiate 1.3.x and 2.0.x because of the added POST OPTION.
  • 21. Adequate Entropy The results from the sampling of HTTP output using only “OPTIONS *” provided enough data to start fingerprinting.
  • 22. Server Responses Server Response Microsoft-IIS/4.0 Public: OPTIONS, TRACE, GET, HEAD, POST, PUT, DELETE Microsoft-IIS/5.0 Public: OPTIONS, TRACE, GET, HEAD, DELETE, PUT, POST, COPY, MOVE, MKCOL, PROPFIND, PROPPATCH, LOCK, UNLOCK, SEARCH Allow: OPTIONS, TRACE, GET, HEAD, DELETE, PUT, POST, COPY, MOVE, MKCOL, PROPFIND, PROPPATCH, LOCK, UNLOCK, SEARCH Apache/1.3.26 (Unix) Allow: GET, HEAD, OPTIONS,TRACE Apache/2.0.41-dev (Unix) Allow: GET,HEAD,POST,OPTIONS,TRACE Oracle9iAS/9.0.2 Oracle HTTP Server Oracle9iAS-Web-Cache/9.0.2.0.0 (N) Allow: GET, HEAD, OPTIONS, TRACE Netscape-Enterprise/3.6 SP2 Public: HEAD, GET, PUT, POST Netscape-Enterprise/4.0 Allow: HEAD, GET, PUT, POST Netscape-Enterprise/4.1 Allow: HEAD, GET, PUT, POST, DELETE, TRACE, OPTIONS, MOVE, INDEX, MKDIR, RMDIR Netscape-Enterprise/6.0 Allow: HEAD, GET, PUT, POST, DELETE, TRACE, OPTIONS, MOVE, INDEX, MKDIR, RMDIR
  • 23. OPTIONS * Conclusions If the server allows and supports the “OPTIONS” HTTP Request Method, then with a reasonable level of certainty, we can conclude what the major version number is for a popular web server. The “Server” response header is no longer necessary to determine what a web server is running.
  • 24. Other Request Methods Server Specific Methods Track - IIS only method Various HTTP response codes ///<dir> will return 400 status code on some Apache versions Various HTTP Status messages Alternating capitalization
  • 25. Research is not complete! Larger pool of HTTP Requests More requests allow closer and more detailed accuracy of web server fingerprinting.
  • 26. Fingerprinting Countermeasures Microsoft IIS URL Scan Secure IIS Server Mask Apache mod_rewrite httpd.conf changes source code modifications
  • 27. Microsoft IIS URLScan Add the following line to your URLScan.ini file: [options] UseAllowVerbs=0 [Deny Verbs] OPTIONS Caution! Can cause some applications to break. (Frontpage,OWA)
  • 28. Apache mod_rewrite Add the following to your httpd.conf RewriteEngine on
RewriteCond %{REQUEST_METHOD}  ^OPTIONS
RewriteRule .*   -   [F]
  • 30. Web Server Fingerprinting Cross Site Tracing - XST Web Application Forensics Agenda
  • 31. Cross-Site Tracing A variation of cross-site scripting that increases the threat exposure. What can XST do that XSS cannot? Bypass HTTPOnly Restrictions Access to Basic Authentication Credentials Access to NTLM Credentials A web application is no longer required to cross-site script a user if the web server supports the TRACE request method. Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
  • 32. Exploit Requirements Cross Site Scripting A vulnerable web application A user that clicks on a link or views malicious content. Cross Site Tracing Web server that supports the trace request A place to host the XST code Cross domain bypass bug (if cross domain is required)
  • 33. Steps of Cross-Site Scripting Attacker inserts code into a site or sends a malicsions HTML link to a user. User views the malicious content or clicks on the malicious link. Malicious code is executed with the hosting domain context, granting access to the cookie data., Cookie data is passed off domain to a third-party.
  • 34. Steps of Cross-Site Tracing Attacker inserts code into a target site or hosts the code on a controlled web page. User views the web pages and malicious code executes within the browser. Code directs the browser to send a TRACE request to a target domain. Cookie, Basic Authentication, and NTLM credentials are sent back to the browser within the HTML Body. Authentication information is sent to a third-party. Server Attacker Victim Target Domain
  • 35. XST Points to Remember This is a multi-platform multi-technology issue. Not restricted to ActiveX. Flash, Java, etc.
  • 36. General Remedies Sufficiently patch all web browsers against known domain restriction bypass flaws. This is more important part of security policy now more than ever. Disable or disallow the TRACE Request method on production and development (unless needed) web servers. 3.Web server vendors should update their web server packages to disable TRACE by default. 4.Web server vendors should inform their users on how to disable or disallow TRACE on existing web servers. 5.ActiveX controls supporting arbitrary HTTP request should be marked unsafe for scripting by default. Other such technology vendors (Flash, Java, Shockwave, VBScript, etc.) should attempt to implement greater security mechanisms regarding disallowing unauthorized HTTP requests. Users have the ability to disable all active scripting and increase the safety of their credentials. However, this may negatively impact the functionality of many web sites.
  • 37. Server Specific Server Specific (Resolutions should be confirmed by appropriate vendor) IIS - URL Scan   Apache -          Source Code Modification -          Mod_Rewrite Module   RewriteEngine on
RewriteCond %{REQUEST_METHOD}  ^TRACE
RewriteRule .*   -   [F]   (Thank you to Rain Forest Puppy)   ** The Limit or LimitExcept directive in the httpd.conf file does not appear to be able to restrict TRACE. **
  • 38. Microsoft IIS URLScan Add the following line to your URLScan.ini file: [options] UseAllowVerbs=0 [Deny Verbs] TRACE Caution! Can cause some applications to break. (Frontpage,OWA)
  • 39. Apache mod_rewrite Add the following to your httpd.conf RewriteEngine on
RewriteCond %{REQUEST_METHOD}  ^TRACE
RewriteRule .*   -   [F]
  • 41. Web Server Fingerprinting Cross Site Tracing - XST Web Application Forensics Agenda
  • 42. Forensics fo·ren·sics   (f -r nsks, -z ks) n. (used with a sing. verb) 1. The art or study of formal debate; argumentation. 2. The use of science and technology to investigate and establish facts in criminal or civil courts of law.
  • 43. Why? I could not find any good tools I only found one document and it was a marketing document. I was bored...
  • 44. Typical Web Server Environment (Simplified) Web Server Application Server Database Server Internet Firewall
  • 45. What are Web Attacks? SQL Injection Cross Site Scripting Parameter Tampering Directory Traversal Various Web Server Flaws Unicode Double Decode SSL Overflows
  • 46. Avenues of Attack Port 80 - Clear text, easy to watch with an IDS system Port 443 - SSL encrypted can be watched with an IDS but advanced configuration is required, often not done
  • 47. HTTP Request Get Request Easy everything is logged POST Request Only the Path is logged bummer...
  • 48. Traditional Network IDS do not work Yes they will generally detect Nimda/CodeRed (Unicode/double decode) attacks. You could write rules to detect some basic attacks http://www.cgisecurity.com/web-attacks.rules It is almost impossible to detect certain attacks with a NIDS
  • 49. Log Files IIS Log Files Stored in %winnt%/system32/logs/<servicename> Typically - C:/winnt/system32/logs/w3svc/*.log
  • 50. IIS Log File Formats IIS log file format UserIP,UserName,Date,Time,Service,Computer Name,ServerIP,Time Taken,Bytes Sent,Bytes Received,Status Code, Windows Status,Request Type,Target,Parameters IIS can log to IIS,W3C Extended and NCSA common file format
  • 51. File name determines type of log IIS format log files begin with in W3C extended log files begin with ex NCSA log files begin with nc
  • 52. Apache Log File Locations ? %apache_home% /log/access.log
  • 53. Apache Log File Formats By default Apache logs to NCSA common format or the combined log file format clientip,ident,username,date/time,request,status,bytes sent
  • 54. Performance Tip Separate log files on a separate physical disk from content
  • 55. Problems with web server logs POST data is rarely logged They are generally very large Contain lots of non-security related entries Many attacks can occur via POST request Some attacks can simply not be determined by log files
  • 56. Log File Sizes www.whitehatsec.com From Jan 22nd - Feb 19th 466,829 lines eCom/Online Gaming Feb 1 - Feb 7 1,198,140 lines
  • 57. Analysis of log content 107
  • 58. What defines a bad request? 401 Response codes - Authentication required 500 Response codes - Server error, SQL injection 200 Response code - could be the worst of all, success
  • 59. Weird Characters Some things should generally not be in a URL ‘ < > * .. etc...
  • 60. Odd Request Methods 99% of applications use only GET and/or POST Why is someone HEADing me and should I let them?
  • 61. Odd Request Methods Head Just returns server header no data. Used to probe for the existence of files Options Used to determine the capabilities of a web server and finger printing Trace Used for diagnostics. A possible attack vector XST Any WebDAV method (PropFind...) Used for managed web content. (Frontpage) and in some more robust web applications (OWA)
  • 62. Introducing the HillBilly Not really an analysis tool, more of a data reduction tool Searches for odd URLs 500 errors Strange request methods
  • 63. HillBilly Syntax ./hillbilly.pl -t <common,iis4,iis5> -l <logfile> -f <outputfile> -g (Look for odd GET request) -p (Look for 500 errors) -o (Look for odd request methods)
  • 64. Odd URL search ./hillbilly.pl -t common -l access_log -g Regex = /[^A-Za-z0-9\.\/\?(%20)=_&-]/ Looks for request that contain characters other than these Will find Unicode,Double Decode, Cross Site Scripting, SQL Injection, Command Execution, Directory Traversal in a GET request.
  • 67. Ecom log file reduction Log file reduced from 1,198,140 to 285,314
  • 68. 500 Errors Looks for any request method that generates a 500 error Large numbers of 500 errors from a single user over a short period can indicate a attack Check application server and SQL server logs Your time is synced right? ./hillbilly.pl -l access_log -t common -p 500 errors can indicate a SQL injection attack
  • 69. Ecom odd request types Log file reduced from 1,198,140 to 0
  • 70. Odd Request types ./hillbilly.pl -l access_log -t common -o Looks for any request type other than GET or POST Can point out probing request or finger printing attempts
  • 71. Ecom odd request types Log file reduced from 1,198,140 to 2269
  • 72. Prepare for the worst Configuring web server log files Know where they are! Additional utilities URLScan (IIS) mod_protect (Apache) Code Seeker (Cross platform)
  • 73. Other logs SQL server logs Make sure they are on and at least logging errors Listen to your DBA whine about performance! Application Server Logs Make sure they are on Make sure you understand them
  • 74. Time If you can’t sync it at least try to get it close You should really try to sync it, really
  • 75. Using HillBilly as an IDS Danger this is untested!!! Danger this is probably insecure!!! CustomLog &quot;|/usr/bin/hillbilly.pl -t common -l - -g >> /var/log/hillbilly.log&quot; common Apache
  • 76. Future Plans Recognize and automatically parse web server logs Use some sort of magic to profile the log file to look for truly deviant request Pretty output Add option to only look for successful request Write code others can read and use