Usage ===== `Burp-UI`_ has been written with modularity in mind. The aim is to support `Burp`_ from the stable to the latest versions. `Burp`_ exists in two major versions: 1.x.x and 2.x.x. .. note:: The version 2.x.x of `Burp`_ is currently in heavy development and should bring a lot of improvements, but also a lot of rework especially regarding the ``status port`` which is the main communication system between `Burp`_ and `Burp-UI`_. Both `Versions`_ are supported by `Burp-UI`_ thanks to its modular design. The consequence is you have various options in the configuration file to suite everybody needs. There are also different modules to support `Authentication`_ and `ACL`_ within the web-interface. .. warning:: `Burp-UI`_ tries to be as less intrusive as possible, nevertheless it ships with the ability to manage `Burp`_'s configuration files. This feature **requires** `Burp-UI`_ to be launched on the **same** server that hosts your `Burp`_ instance. You also have to make sure the user that runs `Burp-UI`_ has **enough** privileges to edit those files. Configuration ------------- The `burpui.cfg`_ configuration file contains a ``[Global]`` section as follow: :: [Global] # On which port is the application listening port: 5000 # On which address is the application listening # '::' is the default for all IPv6 # set it to '0.0.0.0' if you want to listen on all IPv4 addresses bind: :: # enable SSL ssl: false # ssl cert sslcert: /etc/burp/ssl_cert-server.pem # ssl key sslkey: /etc/burp/ssl_cert-server.key # burp server version 1 or 2 version: 1 # Handle multiple bui-servers or not # If set to 'false', you will need to declare at least one 'Agent' section (see # bellow) standalone: true # authentication plugin (mandatory) # list the misc/auth directory to see the available backends # to disable authentication you can set "auth: none" # you can also chain multiple backends. Example: "auth: ldap,basic" # the order will be respected unless you manually set a higher backend priority auth: basic # acl plugin # list misc/acl directory to see the available backends # default is no ACL acl: basic Each option is commented, but here is a more detailed documentation: - *port*: On which port is `Burp-UI`_ listening. This option is ignored when using `Gunicorn`_. - *bind*: On which address is `Burp-UI`_ listening. This option is ignored when using `Gunicorn`_. - *ssl*: Whether to enable SSL or not. This option is ignored when using `Gunicorn`_. - *sslcert*: SSL certificate to use when SSL support is enabled. - *sslkey*: SSL key to use when SSL support is enabled. - *version*: What version of `Burp`_ this `Burp-UI`_ instance manages. Can either be *1* or *2*. This parameter determines which backend is loaded at runtime. (see `Versions`_ for more details) - *standalone*: `Burp-UI`_ can run in two different modes. If it runs in standalone mode (meaning you set this parameter to *true*), you can only address **one** `Burp`_ server of the version specified by the previous parameter. If this option is set to *false*, `Burp-UI`_ will run as a *proxy* allowing you to address multiple `Burp`_ servers. In this mode, you need to configure **at least one** *Agent* section in your configuration file. You also need to run one ``bui-agent`` per server. (see `Modes`_ for more details) - *auth*: What `Authentication`_ backend to use. - *acl*: What `ACL`_ module to use. There is also a ``[UI]`` section in which you can configure some *UI* parameters: :: [UI] # refresh interval of the pages in seconds refresh: 180 # refresh interval of the live-monitoring page in seconds liverefresh: 5 Each option is commented, but here is a more detailed documentation: - *refresh*: Time in seconds between two refresh of the interface. - *liverefresh*: Time in seconds between two refresh of the *live-monitor* page. Production ---------- The `burpui.cfg`_ configuration file contains a ``[Production]`` section as follow: :: [Production] # storage backend (only used with gunicorn) for session and cache # may be either 'default' or 'redis' storage: default # redis server to connect to redis: localhost:6379 These settings are only used when Gunicorn is enabled and used. Modes ----- `Burp-UI`_ provides two modes: - `Standalone`_ - `Multi-Agent`_ These modes allow you to either access a single `Burp`_ server or multiple `Burp`_ servers hosted on separated hosts. Standalone ^^^^^^^^^^ This mode is the **default** and the easiest one. It can be activated by setting the *standalone* parameter in the ``[Global]`` section of your `burpui.cfg`_ file to *true*: :: [Global] standalone: true That's all you need to do for this mode to work. Multi-Agent ^^^^^^^^^^^ This mode allows you access multiple `Burp`_ servers through the `bui-agent`_. The architecture is available on the bui-agent `page `__. To enable this mode, you need to set the *standalone* parameter of the ``[Global]`` section of your `burpui.cfg`_ file to *false*: :: [Global] standalone: false Once this mode is enabled, you have to create **one** ``[Agent]`` section **per** agent you want to connect to in your `burpui.cfg`_ file: :: # If you set standalone to 'false', add at least one section like this per # bui-agent [Agent:agent1] # bui-agent address host: 192.168.1.1 # bui-agent port port: 10000 # bui-agent password password: azerty # enable SSL ssl: true [Agent:agent2] # bui-agent address host: 192.168.2.1 # bui-agent port port: 10000 # bui-agent password password: ytreza # enable SSL ssl: true .. note:: The sections must be called ``[Agent: