Giter Site home page Giter Site logo

pesd-exporter-extension's Introduction

pesd

PESD Exporter - Burp Suite Extension

Generate security-oriented sequence diagrams and fine-grained parsed traffic from Burp Suite Proxy history.

This extension is based on the Proxy Enriched Sequence Diagrams (PESD) format. Discover the format here and read the launch post on our doyensec blog.

extension

The exporter handles Burp Suite Proxy's traffic conversion to PESD format and offers the possibility to execute templates that will enrich the resulting exports.

Extension UI

extension

  • Select and send specific traffic entries from Burp Suite Tabs to the Exporter tab

  • Specify a mode of operation for the export. Supported modes :

    • Domains as Actors - Each domain involved in the traffic is represented as an actor in the diagram. Suitable for multi-domain flows analysis
    • Endpoints as Actors - Each endpoint (path) involved in the traffic is represented as an actor in the diagram. Suitable for single-domain flows analysis
  • Configure the flags set that will be matched in the generation of the sequence diagram. Read about flags in the format definition page, section "Base Diagram Syntaxes"

  • Select the templates that will be executed on the resulting export. Read more about templates in the following section

  • Auto-Export. Checked by default, sending items to the extension will directly result in a export. User is redirected to the Browser view and the items are cleaned after the export within the extension

Export Capabilities

extension

  • Expandable Metadata. Underlined flags can be clicked to show the underlying metadata from the traffic in a scrollable popover

  • Masked Randoms in URL Paths. UUIDs and pseudorandom strings recognized inside path segments are mapped to variable names <UUID_N> / <VAR_N>. The re-renderization will reshape the diagram to improve flow readability. Every occurrency with the same value maintains the same name

  • Notes. Comments from Burp Suite are converted to notes in the resulting diagram. Use <br> in Burp Suite comments to obtain multi-line notes in PESD exports

  • Save as :

    • Sequence Diagram in SVG format
    • Markdown file (MermaidJS syntax),
    • Traffic metadata in JSON format. Read about the metadata structure in the format definition page, "exports section"

Extending the diagram, syntax and metadata with Templates

By default, a generic diagram follows the basic PESD syntax . PESD Exporter supports syntax and metadata extension via templates execution.

What is a Template?

Templates are iterations that occur on the basic PESD object in order to enrich its content by:

  • Adding new Flags or modifying existing ones
  • Framing sections of the resulting diagram. Read about MermaidJS Alt Syntax.
  • Enriching the metadata with new findings

Approach Idea : Users can leverage this extensibility to parse metadata and markdown in order to add new value in both of them by adding new logic.

Currently Implemented Templates

The Extension currently supports the following templates :

  • OAuth2 / OpenID Connect. The template matches standard OAuth2/OpenID Connect flows and adds related flags + flow frame. Oauth2 supported flows : Implicit Grant and Code Grant. OpenID supported flows : Code Grant, Implicit Grant and Hybrid flow. Respectively based on rfc6749 and openid-connect-core-1_0

  • SAML SSO. The template matches Single-Sign-On flows with SAML V2.0 and adds related flags + flow frame. Based on SAML V2.0 , supported flows:

    • SP-initiated SSO using a Redirect Binding for the SP-to-IdP message and a POST Binding for the IdP-to-SP message
    • SP-initiated SSO using a POST Binding for the message and an Artifact Binding for the message
    • IDP-initiated SSO using a POST Binding for the IdP-to-SP message; no SP-to-IdP message is involved.

Template matching example for SAML SP-initiated SSO with redirect POST:

samlex

Development

  • Clone the repository
  • Import it in Netbeans / your preferred IDE
  • Run gradle build fatjar to compile the extension
  • Import the compiled JAR in build/libs/pesd-exporter-all.jar

How to write new templates

Find the template implementation guide.

Credits

Author and Maintainer: Francesco Lacerenza (@lacerenza_fra)

This project was made with love in the Doyensec Research island during the internship with 50% research time.

Doyensec Research

pesd-exporter-extension's People

Contributors

anaximand3r avatar ikkisoft avatar kdolgun avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

pesd-exporter-extension's Issues

Order of request is based on order of elements in proxy view rather than time

I and most of my colleagues invert the timeline of the burp proxy, so that the newest items appear on the top instead of the bottom. When I now select a few request and send them to PESD, it creates the graph backwards and starts with the latest request as the first request and then goes backwards through the graph.

Reverse order in Burp's proxy tab (newest on top):

grafik

Order in PESD graph (wrong request order):

grafik

I suggest sorting the requests by request number before processing them.

EDIT: Fixed the screenshot.

Add direct markdown edit in export

Simple edit to export.html. It should include a UI element to open an edit box with the markdown and a "re-render" button.
By doing so, users can add custom edits on the fly to represent complex situation involving even flow steps not passing through Burp Suite etc.

Add diagram themes

Since the orange does not suit everyone, add a simple UI element allowing the user to modify the primary color in the exported diagram

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.