Improving Application Security
through Penetration Testing
Dominick Baier (dbaier@ernw.de)
Security Consultant / BS 7799 Lead Auditor
ERNW GmbH
Outline
• What is Penetration Testing and Auditing
• Standards and Ethics
• The Process of Testing
• Pen-Testing Web Applications
• The Tools
2
"Improving the Security of Your Site by
Breaking Into it"
(Dan Farmer/Wietse Venema, 1993)
http://www.fish.com/security/admin-guide-to-cracking.html
3
Penetration Testing vs. Auditing
• Penetration Testing
- Simulating a motivated attacker for a specific amount of time
- Black Box / White Box Approach
- Is more like a snapshot of the current security of a system or a
business process
• Auditing
- Analyzing
• Configuration Files
• Architecture
• Source Code
- Policy conformance
• Operational Plans and Procedures
4
Why Penetration Testing
• To measure the security of a system, network or a business
process
- By a third party
• To assess possible Risks
• To make the upper management "security aware"
5
Possible Goals of a Penetration Test
• How much information about our network is publicly
available ?
• Is it possible to compromise this and that system ?
• Is it possible to disturb business process X ?
• How effective work our security controls ?
- Firewall
- AntiVirus / Spam / Content Filter
- Intrusion Detection Systems
• Is our Information Security Policy correctly enforced ?
• Can employees compromise workstation security?
• "Are we safe ?"
6
What can be tested
• Servers and Workstations
- Web Server
- Database Server
- Domain Controller
- Workstations
• Infrastructure
- Network Devices
- Wireless Networks
- Dial-In Access
- VPNs
• Applications
• Employees (Social Engineering)
7
Attackers to simulate
• Outside Attackers
- Script Kiddies
- Competitors
- Terrorists
- Journalists
• Insiders
- Employees
- Disgruntled Employees
- Contractors
- Consultants
8
Standards
• Pete Herzogs's OSSTM
"Open Source Security Testing Methodology Manual"
- Very practical approach
- Checklists of what and in which order to test
- List of tools
• ISO 17799 / BS 7799 Standard for Information Security
- Focuses more on the policy and paper work side of security
- Extensive catalog of security controls
- Defines a standard for audits
• NIST Guidelines for Network Security Testing
9
Ethics
• Findings are under strict NDAs
• No information gathered during the test
- is sent in clear text over the internet
- is used for personal profit
• ISACA Code of Professional Ethics
• ISC 2 Code of Ethics
• Full Disclosure
10
The STRIDE Threat Model
• STRIDE
- Spoofing Identity
- Tampering with data
- Repudiation
- Information Disclosure
- Denial of Service
- Elevation of Privilege
11
The Pen-Tester's Mantra
• Segregation of Duties
• Minimal Machine
• Least Privilege
• Patch-Level
• Defense in Depth
• Secure the Weakest Link
• Strong Authentication
12
Course of Actions
• Opening Meeting
- Goals of the Pen-Test
- Scope
- Responsible Admins
• The Audit / Test itself
• The Report
- Found issues
- Countermeasures
- Prioritization
• Closing Meeting
13
Stages of a Pen-Test
• Gathering Information
• Analyzing the Infra-Structure
• Analyzing the Machines
- Fingerprinting
- Port / Vulnerability-Scanning
- Attacking the System / Proof of Concept
• Analyzing Applications
- Functional / Structural Analysis
- Attacking Authentication and Authorization
- Attacking Data and Back-End Communication
- Attacking Clients
14
Information Gathering
• In this phase you try to compile as much publicly available
information as possible
- Internic
- IANA / RIPE
- Whois
- Google / Usenet
- Private homepages of employees
- Email Addresses
- Telephone numbers
15
16
17
Information Gathering
• Google Search-Syntax
- allintitle:"Index of /etc"
- site:gov site:mil site:ztarget.com
- filetype:doc filetype:pdf filetype:xls
- intitle:, inurl:, allinurl:
- allinurl:mssql, allinurl:gw …
- inurl:".aspx?ReturnUrl="
- "+www.ernw.+de"
- related:www.ernw.de
- login site:www.microsoft.com
- [cached]
18
19
20
21
22
23
24
Information Gathering
• Mailing-Lists / Forums / Usenet
- Some vendors even post internal support questions to public
newsgroups
25
Information Gathering
• Mailing-Lists / Forum / Usenet
Invitation?
26
Analyzing the Infra-Structure and Machines
• A layered modell
Data Data
Application Application
Service Service
OS OS
Network
27
Analyzing the Infra-Structure and Machines
• The Reality
Auth
Data
Database
LDAP
HTTP DCOM SOCKETS
CORBA
Web Application Database
Browser Server Server Server
Web Audit
Content Logs
28
Analyzing the Infra-Structure and Machines
• Querying System and DNS Information
• Portscanning
• Fingerprinting
• Vulnerability Scanning
• Exploiting a Vulnerability
29
Querying System and DNS Information
• TraceRoute
- Tracing the network route give you information about
• The provider
• Type of connection
- Simple / Redundant / Load Balanced
- At which hop gets ICMP blocked?
30
Querying System and DNS Information
• DNS Zone transfer
- DNS Server should be configured to allow Zone Transfers only
to specific peers
- DNS Zones are very interesting
• Which machines are listed in the Zone
• Get information about IP network-structure
31
Portscanning & Fingerprinting
• Port Scanning gives you information about which ports a
machine listens on
• Every open port is potentially vulnerable
• More advanced scanners try to figure out what kind of
software (+ vendor and version) is installed
• Most popular Port Scanners
- SuperScan (www.foundstone.com)
- NMAP (www.insecure.org/nmap)
32
Banner Grabbing
• Connect with Netcat or Telnet to a service
• You will often get detailed information
33
Vulnerability Scanner
• Automated scanners that check for known vulnerabilities
- They often give you more information for vulnerability
investigation
• There are vulnerability and exploit databases on the internet
- SecurityFocus (www.securityfocus.com)
- Packet Storm (www.packetstormsecurity.com)
34
Vulnerability Scanner
• System / Host Scanner
- Nessus (www.nessus.org)
- Retina (www.eeye.com)
- ISS Security Scanner (www.iss.net)
- Microsoft MBSA (www.microsoft.com)
• Database Scanner
- MetaCoreTex (www.metacoretex.com)
- AppSecInc AppDetective (www.appsecinc.com)
- ISS Database Scanner (www.iss.net)
• Web Server Scanner
- Nikto (www.cirt.net)
35
Vulnerability Investigation
• www.securityfocus.com/bid
36
Vulnerability Investigation
• www.packetstormsecurity.org
37
Pen-Testing Web Applications
• Visualize the HTTP Traffic
- Sniffer (e.g. Ethereal)
- Web Proxies
• Achilles (http://packetstormsecurity.nl/web/achilles-0-27.zip)
• Fiddler (www.fiddlertool.com)
• WebProxy (www.atstake.com)
- Hand craft HTTP Requests
• Wfetch & Tinyget (IIS6 Resource Kit)
Page Path Auth? SSL? GET/POST Comment
Index.aspx / N N
login.aspx /login/ N Y POST Login Page
about.aspx /about/ N N Email
Addresses
38
Structural Analysis
• ...or graphical
39
Pen-Testing Web Applications
• Try some URLs
- Common Directories
• /html, /images, /jsp, /cgi
- "Hidden" Directories
• /admin, /secure, /adm, /management
- Backup and Log Files
• /.bak, /backup, /back, /log, /logs, /archive, /old
- Include Files
• /include, /inc, /js, /global, /local
- Lokalized Versions
• /de, /en, /1033
- trace.axd
• Look at the HTTP Status Codes
- Everything besides 404 ist interesting
40
Pen-Testing Web Applications
• Look for
- Cascading Style Sheets (.css)
- XML Dateien / XML Stylesheets (.xml / .xsl)
- JavaScript Dateien (.js)
- Include Files (.inc)
- Text Dateien (.txt)
- Comments
- Client-Side Validation
- Forms
• Hidden Fields
• Password Fields
• MaxLength Attributes
41
Pen-Testing Web Applications
• "Odd" Query Strings
www.site.com/show.aspx?content=marketing.xml
www.site.com/UserArea/default.php?UserID=5
www.site.com/dbsubmit.php?Title=Mr&Phone=123
www.site.com/menu.asp?sid=73299
• Cookie values
42
Canonicalization Errors
• Popular Examples
- Apache WebServer
• /scripts und /SCRIPTS
- Microsoft IIS 5
• ../ and .%2e%2f
- ISS Firewall
• action=delete and action=%64elete
- Microsoft IE4
• Dotless IP Bug
- ASP.NET Authorization Canonicalization Bug
• http://localhost/formsec/secure%5csecret.aspx
43
Resource Names
• Example
http://server/cms/show.aspx?file=content.xml
• Can I use this page to show other files?
http://server/cms/show.aspx?file=../web.config
• Try some variations
http://server/cms/show.aspx?file=../web.config.
http://server/cms/show.aspx?file=../web.config::$DATA
http://server/cms/show.aspx?file=..%5cweb.config
http://server/cms/show.aspx?file=..%255cweb.config
http://server/cms/show.aspx?file=..%%35%63web.config
44
Testing for SQL Injection
• Try if you can inject SQL code in forms
• If the programmer simply concatenates user input with SQL
statements a database compromise is most likely possible
• Try to generate errors
- Insert a ' character
- Does the application behave different ?
- Is maybe even a database error returned ?
• You can execute nasty statements through SQL Injection
- Union
- Drop...
- XP_CMDSHELL
45
Testing for Cross Site Scripting
• Cross Site Scripting let's an attacker inject script code in Web
Pages
• This happens when the Application directly outputs client
input whithout proper HTML encoding
• Can be hard to find - look in
- Query Strings
- Form Fields
- HTTP Headers
• Enables Cookie Stealing / Harvesting Attacks
• Many Developers rely on ASPX's ValidateRequest
- Try <%00...> encoding
46
Tools
• Automatic Mirroring of Web Sites
- wget (www.gnu.org/directory/wget.html)
- Black Widow (www.softbytelabs.com)
- Teleport Pro (www.tenmax.com)
• Web Scanner
- WebInspect (www.spidynamics.com)
- NStealth (www.nstalker.com)
• ASP.NET Specific Scanners
- ASP.NET Security Analyzer (www.owasp.org)
- ASP.NET Shared Hosting Analyzer (www.owasp.org)
47
Conclusion
• Pen-Testing is no Black Magic
• Very systematic procedure
• If you follow the 7 golden rules, you can eliminate most of the
vulnerabilities
• Do regular Pen-Tests or Audits - you can only benefit
- Internal and third party
48
• Questions ?
you can download the slides from www.leastprivilege.com
49
Links
• OSSTM
- www.isecom.org
• NIST Draft Guidelines to Network Security Testing
- http://csrc.nist.gov/publications/drafts/security-testing.pdf
• ISC 2 Code of Ethics:
- https://www.isc2.org/cgi/content.cgi?category=12
• ISACA Code of Professional Ethics
- http://www.isaca.org/Template.cfm?Section=Code_of_Ethics1
50
Links
• Wfetch
- (http://download.microsoft.com/download/d/e/5/de5351d6-
4463-4cc3-a27c-3e2274263c43/wfetch.exe)
• NetCat
- http://www.atstake.com/research/
tools/network_utilities/nc11nt.zip)
51