Skip to content

Commit 109306e

Browse files
committed
First commit
0 parents  commit 109306e

File tree

103 files changed

+8811
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

103 files changed

+8811
-0
lines changed

BappDescription.html

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
<h2>5# Scan Controller</h2>
2+
Author: Tobias "floyd" Ospelt, @floyd_ch, http://www.floyd.ch<br>
3+
Pentagrid AG, 5#, https://www.pentagrid.ch
4+
<h3>Improve Automated and Semi-Automated Active Scanning</h3>
5+
Active Scanning might often do things that don't make any sense, such as scanning GET requests to .js files or scanning non-repeatable request.
6+
This extension allows to filter and preprocess according to your needs. It tries to check if a request is repeatable or not. If a request is not repeatable, it tries to make them repeatable by injecting Hackvertor tags. The extension doesn't try to be perfect, but useful. It cuts corners and in some cases simply doesn't scan certain requests. However, the extension individually displays and explains all decisions, allowing you to change the settings if you don't like the behavior. It's a better "Actively scan all in-scope traffic through Proxy".
7+
<h3>Features</h3>
8+
<ul>
9+
<li>Everything configurable (interesting/uninteresting, blacklisting requests, etc.)</li>
10+
<li>Check repeatability of requests and try to make them repeatable</li>
11+
</ul>
12+
<h3>Howto use this extension</h3>
13+
Usage is very simple:
14+
<ul>
15+
<li>Add the website you test to the scope</li>
16+
<li>Enable "Proxy requests" in the tab/section "Scan - Options - Requests to process"</li>
17+
<li>Browse the web application (proxy) by using the Burp builtin browser.</li>
18+
<li>Check back on the $tabName tab and see which request have been active scanned. Check those<br>
19+
that have a high "Interesting" rating but haven't been scanned ("Scanned" column set to false)</li>
20+
<li>See the Dashboard for Active Scan findings</li>
21+
<li>It's always good to sort by the reason column in the UI and check the different reasons.</li>
22+
</ul>
23+
<h3>Performance discussion</h3>
24+
Improves performance by not sending everything to active scan.
25+
<h3>Ideas for future improvements</h3>
26+
<ul>
27+
<li>Let me know if you think of any improvements: tobias at pentagrid dot ch.</li>
28+
</ul>

BappManifest.bmf

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
Uuid:
2+
ExtensionType: 1
3+
Name: 5# Scan Controller
4+
RepoName: PentagridScanController
5+
ScreenVersion: 0.1
6+
SerialVersion: 1
7+
MinPlatformVersion: 0
8+
ProOnly: True
9+
Author: Tobias "floyd" Ospelt, Pentagrid AG
10+
ShortDescription: Improve automated and semi-automated active scanning
11+
EntryPoint: build/libs/PentagridScanController-0.1.jar
12+
BuildCommand: ./gradlew jar
13+
SupportedProducts: Pro

META-INF/MANIFEST.MF

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
Manifest-Version: 1.0
2+
Main-Class: burp.BurpExtender

README.md

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
# PentagridScanController
2+
Improve automated and semi-automated active scanning for BurpSuite<br>
3+
4+
Author: Tobias "floyd" Ospelt, @floyd_ch, http://www.floyd.ch<br>
5+
6+
Pentagrid AG, 5#, https://www.pentagrid.ch
7+
8+
# Compiling
9+
10+
`gradle clean build jar`
11+
12+
# Improve Automated and Semi-Automated Active Scanning
13+
Active Scanning might often do things that don't make any sense, such as scanning GET requests to .js files or scanning non-repeatable request. This extension allows to filter and preprocess according to your needs. It tries to check if a request is repeatable or not. If a request is not repeatable, it tries to make them repeatable by injecting Hackvertor tags. The extension doesn't try to be perfect, but useful. It cuts corners and in some cases simply doesn't scan certain requests. However, the extension individually displays and explains all decisions, allowing you to change the settings if you don't like the behavior. It's a better "Actively scan all in-scope traffic through Proxy".
14+
15+
# Howto use this extension
16+
Usage is very simple:
17+
* Add the website you test to the scope
18+
* Enable "Proxy requests" in the tab/section "Scan - Options - Requests to process"
19+
* Browse the web application (proxy) by using the Burp builtin browser.
20+
* Check back on the $tabName tab and see which request have been active scanned. Check those that have a high "Interesting" rating but haven't been scanned ("Scanned" column set to false)
21+
* See the Dashboard for Active Scan findings
22+
* It's always good to sort by the reason column in the UI and check the different reasons.
23+
24+
# Performance discussion
25+
Improves performance by not sending everything to active scan.
26+
27+
# Ideas for future improvements
28+
29+
* Let me know if you think of any other improvements on the issues tab
30+

build.gradle.kts

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
2+
3+
plugins {
4+
java
5+
kotlin("jvm") version "1.5.31"
6+
kotlin("plugin.serialization") version "1.5.31"
7+
}
8+
9+
group = "me.user"
10+
version = "0.1"
11+
12+
//Klaxon needs at least version 11
13+
java.sourceCompatibility = JavaVersion.VERSION_11
14+
java.targetCompatibility = JavaVersion.VERSION_11
15+
16+
repositories {
17+
mavenCentral()
18+
}
19+
20+
21+
dependencies {
22+
// https://mvnrepository.com/artifact/net.portswigger.burp.extender/burp-extender-api
23+
//implementation("net.portswigger.burp.extender:burp-extender-api:2.3")
24+
implementation(kotlin("stdlib", org.jetbrains.kotlin.config.KotlinCompilerVersion.VERSION))
25+
implementation("org.jetbrains.kotlinx:kotlinx-serialization-runtime:0.20.0")
26+
implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.3.2")
27+
implementation("com.beust:klaxon:5.6")
28+
}
29+
30+
tasks.withType<KotlinCompile> {
31+
//Klaxon needs at least version 11
32+
kotlinOptions.jvmTarget = "11"
33+
}
34+
35+
tasks.withType<Jar> {
36+
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
37+
manifest {
38+
attributes["Main-Class"] = "ch.pentagrid.burpexts.pentagridscancontroller.BurpExtender"
39+
}
40+
from(sourceSets.main.get().output)
41+
dependsOn(configurations.runtimeClasspath)
42+
from({
43+
configurations.runtimeClasspath.get().filter { it.name.endsWith("jar") }.map { zipTree(it) }
44+
})
45+
}

gradle.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
kotlin.code.style=official
5.81 MB
Binary file not shown.

settings.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
rootProject.name = "PentagridScanController"

0 commit comments

Comments
 (0)