how to find zero day vulnerabilities

53
Day How to Vulnerabilities

Upload: mohammed-a-imran

Post on 01-Nov-2014

1.490 views

Category:

Technology


0 download

DESCRIPTION

Me and Raghu gave this presentation in February at OWASP Hyderabad Meet.

TRANSCRIPT

Page 1: How to find Zero day vulnerabilities

Day

How to

Vulnerabilities

Page 2: How to find Zero day vulnerabilities

Meet ...

Imran Raghu&

Page 3: How to find Zero day vulnerabilities

They work as ...

Web application security engineers

Page 4: How to find Zero day vulnerabilities

They train people in ...

Page 5: How to find Zero day vulnerabilities

They also contribute to...

Null Open Security Community

Page 6: How to find Zero day vulnerabilities

And to ...

Open Web Application Security Project

Page 7: How to find Zero day vulnerabilities

OK, Lets start

Page 8: How to find Zero day vulnerabilities

Before we do that ..

Page 9: How to find Zero day vulnerabilities

The following presentation can cause severe exposure to high octane gyan

(knowledge) and could leave participants exhausted with wild ideas

Page 10: How to find Zero day vulnerabilities

Also You may end up in ...

Page 11: How to find Zero day vulnerabilities
Page 12: How to find Zero day vulnerabilities

With lots of ...

Page 13: How to find Zero day vulnerabilities
Page 14: How to find Zero day vulnerabilities

and

Page 15: How to find Zero day vulnerabilities
Page 16: How to find Zero day vulnerabilities

And of course, Knowledge ...

Page 17: How to find Zero day vulnerabilities

Ok, Lets begin

Page 18: How to find Zero day vulnerabilities

What is Zero day ? Zero-day attacks occur during the

vulnerability window that exists in the time between when a vulnerability is first exploited and when software developers start to develop a counter to that threat

Source : wikipedia

Page 19: How to find Zero day vulnerabilities

Vulnerabilities in famous applications

Page 20: How to find Zero day vulnerabilities

Vulns in Drupal

Page 21: How to find Zero day vulnerabilities

Vulns in Wordpress

Page 22: How to find Zero day vulnerabilities

Vulns in Joomla

Page 23: How to find Zero day vulnerabilities

How its generally done ?

Source code AuditingFuzzing

Target : 0 day vulnerability

Page 24: How to find Zero day vulnerabilities

Methodology

Page 25: How to find Zero day vulnerabilities

Know your enemy

Page 26: How to find Zero day vulnerabilities

Set up the Attacking environment

Page 27: How to find Zero day vulnerabilities

Study the architecture

Page 28: How to find Zero day vulnerabilities

Source Code Auditing

Page 29: How to find Zero day vulnerabilities

Requirements

Page 30: How to find Zero day vulnerabilities

Lots and lots of patience

Page 31: How to find Zero day vulnerabilities

Attitude of

Page 32: How to find Zero day vulnerabilities

Notebook and Pen ;)

Page 33: How to find Zero day vulnerabilities

Source code Auditing

Analyze the entry points Identify vulnerable Functions Analyze Input Validations. Cross check the findings

Page 34: How to find Zero day vulnerabilities

The entry points

Page 35: How to find Zero day vulnerabilities

More ...

Page 36: How to find Zero day vulnerabilities

Few more ...

Page 37: How to find Zero day vulnerabilities

Exec call

Page 38: How to find Zero day vulnerabilities

RIPS output

Page 39: How to find Zero day vulnerabilities
Page 40: How to find Zero day vulnerabilities

What is Fuzzing ?

Fuzzing is a software testing technique, often automated or semi-automated, that involves providing invalid, unexpected, or random data to the inputs of a computer program. The program is then monitored for exceptions such as crashes, or failing built-in code assertions or for finding potential memory leaks. Fuzzing is commonly used to test for security problems in software or computer systems.

Page 41: How to find Zero day vulnerabilities

What exactly it is ?

1. No Rules for fuzzing

2. No guarantee for fuzzing

Page 42: How to find Zero day vulnerabilities

Fuzzing Methods

1. Sending random data

2. Manual protocol mutation

3. Bruteforce testing

4. Automatic protocol generation testing

Page 43: How to find Zero day vulnerabilities

Fuzzing life cycle

1. To find bug

2. To find 0 day/write exploit

3. Fuzzer death

Page 44: How to find Zero day vulnerabilities

Fuzzing process

1. Identify target

2. Identify inputs

3. Generate fuzz data

4. Execute fuzz data

5. Monitor for exceptions

6. Determine exploitability

Page 45: How to find Zero day vulnerabilities

Fuzzing Payloads Find the entry points SQL Injection XSS CSRF Command Injection Click Jacking with Drag and drop

Page 46: How to find Zero day vulnerabilities

JBroFuzz

Page 47: How to find Zero day vulnerabilities

Tools for Source code auditing

The mighty grepRIPSRATS

Page 48: How to find Zero day vulnerabilities

Tools for Fuzzing

JBroFuzz

Burp Suite

WebScarab

Page 49: How to find Zero day vulnerabilities

Further Reading

[1]. OWASP Testing Guide

[2]. OWASP Development Guide

[3]. OWASP.org

Page 50: How to find Zero day vulnerabilities

So you know now* what is a zero day ?

* what is the methodology used ?

* Information gathering of the application or product

* Discovered or previous vulnerabilities of product

* Study the architecture of product

Page 51: How to find Zero day vulnerabilities

* Identify the input points

* Source code review

* Source code review (one demo) demo of RIPS and grep

* Fuzzing

* Fuzzing (one demo) demo of JBroFuzz

* Tools used for code review and Fuzzing

Page 52: How to find Zero day vulnerabilities

Questions ?

हकैर हकै्या ? हकैर