Slide 1

Slide 1 text

OWASP OWTF - Bharadwaj `tunnelshade` Machiraju

Slide 2

Slide 2 text

I am a security tool developer (recent tool - Flashbang). a restless 20 year old from India. a senior at IIT (BHU), Varanasi (doing B.Tech). an employee @ _____ (Your company name can be here).

Slide 3

Slide 3 text

Content of upcoming slides OWTF! - Why? What? How? User Interface Plugins & Control Inbound Proxy Transaction & URL log Notes & Ranking Advanced Filter Demo

Slide 4

Slide 4 text

Why another Web Testing Framework?

Slide 5

Slide 5 text

Pentester Requirements (Atleast OWTF dev team’s requirements) Automate the uncreative part of pentests like trying to remember how to launch tool ‘X’ or how to parse and feed the output of tool ‘X’ to tool ‘Y’. Organize the findings according to a testing guide like OWASP, NIST etc.. so as to use them as a checklist. Classify tests based on aggression levels to prepare ahead of time. Provide the ability to rank the findings to enable targeted fuzzing on seemingly risky areas. Analyse each and every HTTP transaction and make them searchable. Spider the site effectively to not miss anything. Act as a storage consisting of all useful online tools, dorks, POCs & resources. Free & Open Source (Indians love free stuff) Allow us to think and not get in our way <— XD

Slide 6

Slide 6 text

No content

Slide 7

Slide 7 text

What is OWTF? Offensive Web Testing Framework = Test/Exploit ASAP Started by Abraham Aranguren First demonstrated at BerlinSides 2011 Formally, a framework which presents all the information from different tools and custom tests, in an organised and categorised way to help user concentrate on the analysis part

Slide 8

Slide 8 text

How? Run Tools • theHarvester • Nikto • Arachni • w3af etc.. Run Tests directly • Crafted requests • Header searches • html body searches etc.. Knowledge Repo • POC Links • Resource Links • Test guide mappings Help User Analysis • Automated ranking • User notes • User rankings

Slide 9

Slide 9 text

No content

Slide 10

Slide 10 text

Features

Slide 11

Slide 11 text

Web Interface

Slide 12

Slide 12 text

Plugin classification Plugins are separated into multiple groups and types for better test classification WEB - (Web related stuff) Active - Active vulnerability probing Semi Passive - Normal traffic to target Passive - No traffic to target Grep - Searches on transaction database External - Other tool inputs, POCs, resource links etc.. NET - (Somewhat like mmap scripts) AUX - (Somewhat like msfcli in metasploit)

Slide 13

Slide 13 text

No content

Slide 14

Slide 14 text

Plugin Execution Control Plugins are executed by processes called workers which can be paused/resumed/ aborted/added/removed. This lets you handle deadly unwanted disturbances like internet outage, downed target etc..

Slide 15

Slide 15 text

Inbound Proxy OWTF has its own proxy, which was benchmarked in the last year as fastest MiTM python proxy. This proxy enables user to use it in a browser or with any other tool. Most of the tools launched by OWTF are proxified (eg. Arachni, w3af, custom requests etc..). So all the transactions made by the scanners are logged and analysed

Slide 16

Slide 16 text

Transaction Log The place from where you can search each and every transaction that happened through OWTF proxy.

Slide 17

Slide 17 text

No content

Slide 18

Slide 18 text

URL Log OWTF scrubs the output of all tools/plugins run to gather as many URLs as possible. This is somewhat "cheating" but tremendously effective since it combines the results of different tools, including several tools that perform brute forcing of files and directories.

Slide 19

Slide 19 text

Plugin Reports Plugin reports are categorised according to their test codes along with pentester explanations

Slide 20

Slide 20 text

Notes & Ranking Plugin report provides you the facility to write down some notes and add your own analysis ranking to it. Some tool outputs are automatically ranked using an automated ranking library PTP developed for OWTF during GSoC 2014. This helps you find risky areas quickly.

Slide 21

Slide 21 text

Advanced Filter Filtering the plugin outputs on various criteria along with the facility to change the mapping of test codes. Currently OWASP v3, OWASP v4, NIST are present by default. It is easy to add one yourself

Slide 22

Slide 22 text

http://youtu.be/Z3D1r755Wik

Slide 23

Slide 23 text

OWTF WAF-bypasser & Botnet Mode - Marios Kourtesis

Slide 24

Slide 24 text

whoami name.surname[at]gmail[dot]com OWASP OWTF Contributor Author of Botnet Mode WAF-bypasser

Slide 25

Slide 25 text

Botnet Mode Allows user to simulate a botnet attack. Generates traffic to the target by other hosts located all over the world.

Slide 26

Slide 26 text

How does it work? Proxy-Switching Each HTTP request pass through a different proxy. Proxies are fetched automatically by a feature called ProxyMiner. TOR-Mode Each HTTP request will pass through tor network. After a user defined time interval, the IP address will get renewed.

Slide 27

Slide 27 text

Botnet Mode Demo

Slide 28

Slide 28 text

No content

Slide 29

Slide 29 text

WAF-Bypasser WAF-bypasser is a standalone project which is included into OWTF as a module. Analyses & tests the quality of web application firewalls. Can potentially detect WAFs security holes. During the development, a zero day was found to OWASP-CRS for Apache ModSecurity WAF module

Slide 30

Slide 30 text

WAF-bypasser DEMO 1 WAF-bypasser DEMO 2

Slide 31

Slide 31 text

OWTF Re-architecture - Alessandro Fanio González

Slide 32

Slide 32 text

Who am I? 23-year-old software engineer. I work at Eleven Paths, a company dedicated to development of security products. OWTF Contributor since GSoC 2013.

Slide 33

Slide 33 text

What is this presentation about? The importance of good practices in software development. The difficulties of building and maintaining a software project. Best practices and patterns in software development.

Slide 34

Slide 34 text

Why software engg. presentation at a security conference? New features are great, but maintainability is important. We all want our tools to be used and maintained, but will you assume the cost? Sometimes it is necessary to stop and think… Can I improve my code?

Slide 35

Slide 35 text

Important concepts Interface Component coupling SOLID principles Single Responsibility Principle Interface Segregation Principle Dependency Inversion Principle

Slide 36

Slide 36 text

Previous OWTF Architecture Many responsibilities in one single object. Core-dependent architecture. Tightly coupled components.

Slide 37

Slide 37 text

Implemented Architecture How do we define a component? Initialization process. Service Locator pattern. Split “fat” interfaces and re- assign responsibilities. Use of python’s abstract base class.

Slide 38

Slide 38 text

Achieved Goals! Reduced coupling among modules and core of OWTF. Less complexity = Easier to find bugs. Reduced the impact of changes (SOLID principles). Made it easier to change implementation of a component.

Slide 39

Slide 39 text

Contact Us Alessandro Fanio González @AlessandroFG27 [email protected] Bharadwaj Machiraju @tunnelshade_ [email protected] Marios Kourtesis [email protected] http://owtf.org @owtfp http://github.com/owtf #owtf on freenode