pbk 2.0.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- pbk-2.0.0/LICENSE +10 -0
- pbk-2.0.0/PKG-INFO +66 -0
- pbk-2.0.0/README.md +43 -0
- pbk-2.0.0/pbk.egg-info/PKG-INFO +66 -0
- pbk-2.0.0/pbk.egg-info/SOURCES.txt +10 -0
- pbk-2.0.0/pbk.egg-info/dependency_links.txt +1 -0
- pbk-2.0.0/pbk.egg-info/entry_points.txt +2 -0
- pbk-2.0.0/pbk.egg-info/requires.txt +1 -0
- pbk-2.0.0/pbk.egg-info/top_level.txt +1 -0
- pbk-2.0.0/preston.py +123 -0
- pbk-2.0.0/setup.cfg +4 -0
- pbk-2.0.0/setup.py +34 -0
pbk-2.0.0/LICENSE
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
PRESTON SECURITY FRAMEWORK - PROPRIETARY LICENSE
|
|
2
|
+
Copyright (c) 2026 Preston. All Rights Reserved.
|
|
3
|
+
|
|
4
|
+
1. This software and its source code are the sole property of Preston.
|
|
5
|
+
2. Unauthorized copying, modification, or distribution of this file,
|
|
6
|
+
via any medium, is strictly prohibited.
|
|
7
|
+
3. This software is provided for personal, educational use only.
|
|
8
|
+
Commercial use or redistribution is strictly forbidden without
|
|
9
|
+
express written permission from the owner.
|
|
10
|
+
4. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND.
|
pbk-2.0.0/PKG-INFO
ADDED
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: pbk
|
|
3
|
+
Version: 2.0.0
|
|
4
|
+
Summary: Advanced Admin Panel Finder for Kali Linux
|
|
5
|
+
Home-page: https://github.com/prest0nn/pbk
|
|
6
|
+
Author: prest0nn
|
|
7
|
+
Classifier: Programming Language :: Python :: 3
|
|
8
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
9
|
+
Classifier: Operating System :: OS Independent
|
|
10
|
+
Requires-Python: >=3.6
|
|
11
|
+
Description-Content-Type: text/markdown
|
|
12
|
+
License-File: LICENSE
|
|
13
|
+
Requires-Dist: requests
|
|
14
|
+
Dynamic: author
|
|
15
|
+
Dynamic: classifier
|
|
16
|
+
Dynamic: description
|
|
17
|
+
Dynamic: description-content-type
|
|
18
|
+
Dynamic: home-page
|
|
19
|
+
Dynamic: license-file
|
|
20
|
+
Dynamic: requires-dist
|
|
21
|
+
Dynamic: requires-python
|
|
22
|
+
Dynamic: summary
|
|
23
|
+
|
|
24
|
+
⚡ PRESTON BREACHER v2.0
|
|
25
|
+
Path Discovery & Reconnaissance Framework
|
|
26
|
+
Preston Breacher is a high-speed reconnaissance tool designed to identify administrative interfaces and Exposure of Sensitive Information (EAR) vulnerabilities. Optimized for speed and stealth with a modernized terminal interface.
|
|
27
|
+
|
|
28
|
+
🛠 CORE CAPABILITIES
|
|
29
|
+
Parallel Execution: Multi-threaded path discovery for rapid analysis.
|
|
30
|
+
|
|
31
|
+
Deep Dictionary: Ship-ready with a curated list of 400+ high-value paths.
|
|
32
|
+
|
|
33
|
+
Extension Filtering: Target specific environments (PHP, ASP, HTML).
|
|
34
|
+
|
|
35
|
+
Vulnerability Detection: Automated checks for EAR (Execute After Redirect) flaws.
|
|
36
|
+
|
|
37
|
+
Metadata Analysis: Integrated robots.txt and Urmum.txt intelligence gathering.
|
|
38
|
+
|
|
39
|
+
Custom Scoping: Inject custom path prefixes for localized directory testing.
|
|
40
|
+
|
|
41
|
+
🚀 OPERATIONAL USAGE
|
|
42
|
+
1. Targeted Extension Discovery
|
|
43
|
+
Identify PHP-based entry points:
|
|
44
|
+
|
|
45
|
+
Bash
|
|
46
|
+
python preston.py -u example.com --type php
|
|
47
|
+
2. High-Speed Multi-Threaded Scan
|
|
48
|
+
Engage threading for faster results on robust targets:
|
|
49
|
+
|
|
50
|
+
Bash
|
|
51
|
+
python preston.py -u example.com --type php --fast
|
|
52
|
+
3. Standard Enumeration
|
|
53
|
+
Run a default scan across the full payload buffer:
|
|
54
|
+
|
|
55
|
+
Bash
|
|
56
|
+
python preston.py -u example.com
|
|
57
|
+
4. Custom Path Prefixing
|
|
58
|
+
Scope the discovery to a specific directory (e.g., example.com/assets/admin/):
|
|
59
|
+
|
|
60
|
+
Bash
|
|
61
|
+
python preston.py -u example.com --path /assets
|
|
62
|
+
PRO TIP: When using the --type flag, the framework intelligently includes extensionless paths (e.g., /dashboard) alongside your specified format to ensure no entry point is missed.
|
|
63
|
+
|
|
64
|
+
📺 DEMONSTRATION
|
|
65
|
+
⚠️ OPERATIONAL NOTICE
|
|
66
|
+
This framework is for authorized security auditing only. Ensure you have explicit permission before initiating path discovery against any target. Use it or lose it. Safe.
|
pbk-2.0.0/README.md
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
⚡ PRESTON BREACHER v2.0
|
|
2
|
+
Path Discovery & Reconnaissance Framework
|
|
3
|
+
Preston Breacher is a high-speed reconnaissance tool designed to identify administrative interfaces and Exposure of Sensitive Information (EAR) vulnerabilities. Optimized for speed and stealth with a modernized terminal interface.
|
|
4
|
+
|
|
5
|
+
🛠 CORE CAPABILITIES
|
|
6
|
+
Parallel Execution: Multi-threaded path discovery for rapid analysis.
|
|
7
|
+
|
|
8
|
+
Deep Dictionary: Ship-ready with a curated list of 400+ high-value paths.
|
|
9
|
+
|
|
10
|
+
Extension Filtering: Target specific environments (PHP, ASP, HTML).
|
|
11
|
+
|
|
12
|
+
Vulnerability Detection: Automated checks for EAR (Execute After Redirect) flaws.
|
|
13
|
+
|
|
14
|
+
Metadata Analysis: Integrated robots.txt and Urmum.txt intelligence gathering.
|
|
15
|
+
|
|
16
|
+
Custom Scoping: Inject custom path prefixes for localized directory testing.
|
|
17
|
+
|
|
18
|
+
🚀 OPERATIONAL USAGE
|
|
19
|
+
1. Targeted Extension Discovery
|
|
20
|
+
Identify PHP-based entry points:
|
|
21
|
+
|
|
22
|
+
Bash
|
|
23
|
+
python preston.py -u example.com --type php
|
|
24
|
+
2. High-Speed Multi-Threaded Scan
|
|
25
|
+
Engage threading for faster results on robust targets:
|
|
26
|
+
|
|
27
|
+
Bash
|
|
28
|
+
python preston.py -u example.com --type php --fast
|
|
29
|
+
3. Standard Enumeration
|
|
30
|
+
Run a default scan across the full payload buffer:
|
|
31
|
+
|
|
32
|
+
Bash
|
|
33
|
+
python preston.py -u example.com
|
|
34
|
+
4. Custom Path Prefixing
|
|
35
|
+
Scope the discovery to a specific directory (e.g., example.com/assets/admin/):
|
|
36
|
+
|
|
37
|
+
Bash
|
|
38
|
+
python preston.py -u example.com --path /assets
|
|
39
|
+
PRO TIP: When using the --type flag, the framework intelligently includes extensionless paths (e.g., /dashboard) alongside your specified format to ensure no entry point is missed.
|
|
40
|
+
|
|
41
|
+
📺 DEMONSTRATION
|
|
42
|
+
⚠️ OPERATIONAL NOTICE
|
|
43
|
+
This framework is for authorized security auditing only. Ensure you have explicit permission before initiating path discovery against any target. Use it or lose it. Safe.
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: pbk
|
|
3
|
+
Version: 2.0.0
|
|
4
|
+
Summary: Advanced Admin Panel Finder for Kali Linux
|
|
5
|
+
Home-page: https://github.com/prest0nn/pbk
|
|
6
|
+
Author: prest0nn
|
|
7
|
+
Classifier: Programming Language :: Python :: 3
|
|
8
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
9
|
+
Classifier: Operating System :: OS Independent
|
|
10
|
+
Requires-Python: >=3.6
|
|
11
|
+
Description-Content-Type: text/markdown
|
|
12
|
+
License-File: LICENSE
|
|
13
|
+
Requires-Dist: requests
|
|
14
|
+
Dynamic: author
|
|
15
|
+
Dynamic: classifier
|
|
16
|
+
Dynamic: description
|
|
17
|
+
Dynamic: description-content-type
|
|
18
|
+
Dynamic: home-page
|
|
19
|
+
Dynamic: license-file
|
|
20
|
+
Dynamic: requires-dist
|
|
21
|
+
Dynamic: requires-python
|
|
22
|
+
Dynamic: summary
|
|
23
|
+
|
|
24
|
+
⚡ PRESTON BREACHER v2.0
|
|
25
|
+
Path Discovery & Reconnaissance Framework
|
|
26
|
+
Preston Breacher is a high-speed reconnaissance tool designed to identify administrative interfaces and Exposure of Sensitive Information (EAR) vulnerabilities. Optimized for speed and stealth with a modernized terminal interface.
|
|
27
|
+
|
|
28
|
+
🛠 CORE CAPABILITIES
|
|
29
|
+
Parallel Execution: Multi-threaded path discovery for rapid analysis.
|
|
30
|
+
|
|
31
|
+
Deep Dictionary: Ship-ready with a curated list of 400+ high-value paths.
|
|
32
|
+
|
|
33
|
+
Extension Filtering: Target specific environments (PHP, ASP, HTML).
|
|
34
|
+
|
|
35
|
+
Vulnerability Detection: Automated checks for EAR (Execute After Redirect) flaws.
|
|
36
|
+
|
|
37
|
+
Metadata Analysis: Integrated robots.txt and Urmum.txt intelligence gathering.
|
|
38
|
+
|
|
39
|
+
Custom Scoping: Inject custom path prefixes for localized directory testing.
|
|
40
|
+
|
|
41
|
+
🚀 OPERATIONAL USAGE
|
|
42
|
+
1. Targeted Extension Discovery
|
|
43
|
+
Identify PHP-based entry points:
|
|
44
|
+
|
|
45
|
+
Bash
|
|
46
|
+
python preston.py -u example.com --type php
|
|
47
|
+
2. High-Speed Multi-Threaded Scan
|
|
48
|
+
Engage threading for faster results on robust targets:
|
|
49
|
+
|
|
50
|
+
Bash
|
|
51
|
+
python preston.py -u example.com --type php --fast
|
|
52
|
+
3. Standard Enumeration
|
|
53
|
+
Run a default scan across the full payload buffer:
|
|
54
|
+
|
|
55
|
+
Bash
|
|
56
|
+
python preston.py -u example.com
|
|
57
|
+
4. Custom Path Prefixing
|
|
58
|
+
Scope the discovery to a specific directory (e.g., example.com/assets/admin/):
|
|
59
|
+
|
|
60
|
+
Bash
|
|
61
|
+
python preston.py -u example.com --path /assets
|
|
62
|
+
PRO TIP: When using the --type flag, the framework intelligently includes extensionless paths (e.g., /dashboard) alongside your specified format to ensure no entry point is missed.
|
|
63
|
+
|
|
64
|
+
📺 DEMONSTRATION
|
|
65
|
+
⚠️ OPERATIONAL NOTICE
|
|
66
|
+
This framework is for authorized security auditing only. Ensure you have explicit permission before initiating path discovery against any target. Use it or lose it. Safe.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
requests
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
preston
|
pbk-2.0.0/preston.py
ADDED
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
import requests
|
|
3
|
+
import threading
|
|
4
|
+
import argparse
|
|
5
|
+
import time
|
|
6
|
+
import sys
|
|
7
|
+
import random
|
|
8
|
+
import os
|
|
9
|
+
from datetime import datetime
|
|
10
|
+
|
|
11
|
+
# MSF-style status messages
|
|
12
|
+
def msf_log(status, msg):
|
|
13
|
+
colors = {"*": "\033[1;34m", "+": "\033[1;32m", "-": "\033[1;31m", "!": "\033[1;33m"}
|
|
14
|
+
prefix = colors.get(status, "\033[37m")
|
|
15
|
+
print(f"[{prefix}{status}\033[m] {msg}")
|
|
16
|
+
|
|
17
|
+
def msf_boot():
|
|
18
|
+
print(f"\033[1;32m[*] \033[mStarting the Preston Breacher Framework v2.0...")
|
|
19
|
+
steps = [
|
|
20
|
+
"Initializing core modules...",
|
|
21
|
+
"Loading wordlist plugins...",
|
|
22
|
+
"Validating network interface...",
|
|
23
|
+
"Establishing listener on 0.0.0.0..."
|
|
24
|
+
]
|
|
25
|
+
for step in steps:
|
|
26
|
+
msf_log("*", step)
|
|
27
|
+
time.sleep(random.uniform(0.1, 0.2))
|
|
28
|
+
print("")
|
|
29
|
+
|
|
30
|
+
def scan(target, links): # Added target as an argument for the function
|
|
31
|
+
for link in links:
|
|
32
|
+
url = target + (link if link.startswith("/") else "/" + link)
|
|
33
|
+
try:
|
|
34
|
+
r = requests.get(url, timeout=5)
|
|
35
|
+
if r.status_code == 200:
|
|
36
|
+
if 'Page Not Found' in r.text or ('404' in r.text and len(r.text) > 1500):
|
|
37
|
+
sys.stdout.write(f"\033[K\033[1;30m[*] Analyzing: {link} (Filtered)\033[m\r")
|
|
38
|
+
sys.stdout.flush()
|
|
39
|
+
else:
|
|
40
|
+
print(f"\n\033[1;32m[+]\033[m Identified: {url}")
|
|
41
|
+
elif r.status_code in [301, 302]:
|
|
42
|
+
print(f"\n\033[1;33m[!]\033[m Redirect Found: {url}")
|
|
43
|
+
else:
|
|
44
|
+
sys.stdout.write(f"\033[K\033[1;30m[*] Testing path: {link}\033[m\r")
|
|
45
|
+
sys.stdout.flush()
|
|
46
|
+
except:
|
|
47
|
+
pass
|
|
48
|
+
|
|
49
|
+
def main():
|
|
50
|
+
parser = argparse.ArgumentParser()
|
|
51
|
+
parser.add_argument("-u", help="target url", dest='target')
|
|
52
|
+
parser.add_argument("--path", help="custom path prefix", dest='prefix')
|
|
53
|
+
parser.add_argument("--type", help="set the type i.e. html, asp, php", dest='type')
|
|
54
|
+
parser.add_argument("--fast", help="uses multithreading", dest='fast', action="store_true")
|
|
55
|
+
args = parser.parse_args()
|
|
56
|
+
|
|
57
|
+
target = args.target
|
|
58
|
+
if not target:
|
|
59
|
+
print('\033[1;31m[-]\033[1;m Error: -u <url> is required.')
|
|
60
|
+
quit()
|
|
61
|
+
|
|
62
|
+
msf_boot()
|
|
63
|
+
|
|
64
|
+
print ('''\033[1;32m
|
|
65
|
+
o__ __o o
|
|
66
|
+
<| v\\ <|>
|
|
67
|
+
/ \\ <\\ < >
|
|
68
|
+
\\o/ o/ \\o__ __o o__ __o __o__ | o__ __o \\o__ __o
|
|
69
|
+
|__ _<|/ | |> /v |> /> \\ o__/_ /v v\\ | |>
|
|
70
|
+
| / \\ < > /> // \\o | /> <\\ / \\ / \\
|
|
71
|
+
<o> \\o/ \\o o/ v\\ | \\ / \\o/ \\o/
|
|
72
|
+
| | v\\ /v __o <\\ o o o | |
|
|
73
|
+
/ \\ / \\ <\\/> __/> _\\o__</ <\\__ <\\__ __/> / \\ / \\
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
=[ preston-breacher v2.0-dev ]
|
|
78
|
+
+ -- --=[ Made with ur mum ]
|
|
79
|
+
+ -- --=[ Preston Security Framework ]''')
|
|
80
|
+
|
|
81
|
+
print ('''\n\033[1;33m[!] LEGAL WARNING: \033[37mOi, listen. I’m not responsible for your long day.
|
|
82
|
+
If this deads out or you’re catching errors, it’s because the
|
|
83
|
+
target’s moving peak or your own setup is clapped. Use it or lose it. Safe.\n''')
|
|
84
|
+
|
|
85
|
+
target = target.replace('https://', '').replace('http://', '')
|
|
86
|
+
if target.endswith('/'): target = target[:-1]
|
|
87
|
+
target = 'http://' + target
|
|
88
|
+
if args.prefix:
|
|
89
|
+
target = target + ("/" + args.prefix if not args.prefix.startswith("/") else args.prefix)
|
|
90
|
+
|
|
91
|
+
msf_log("*", f"Target configured: {target}")
|
|
92
|
+
|
|
93
|
+
paths = []
|
|
94
|
+
base_path = os.path.dirname(os.path.realpath(__file__))
|
|
95
|
+
wordlist_path = os.path.join(base_path, 'paths.txt')
|
|
96
|
+
|
|
97
|
+
try:
|
|
98
|
+
with open(wordlist_path,'r') as wordlist:
|
|
99
|
+
for path in wordlist:
|
|
100
|
+
path = path.strip()
|
|
101
|
+
if not args.type or args.type in path:
|
|
102
|
+
paths.append(path)
|
|
103
|
+
except IOError:
|
|
104
|
+
msf_log("-", f"Failed to load wordlist at {wordlist_path}")
|
|
105
|
+
quit()
|
|
106
|
+
|
|
107
|
+
msf_log("*", f"Payload buffer: {len(paths)} paths loaded.")
|
|
108
|
+
msf_log("*", "Initiating path discovery...")
|
|
109
|
+
|
|
110
|
+
if args.fast:
|
|
111
|
+
mid = len(paths) // 2
|
|
112
|
+
t1 = threading.Thread(target=scan, args=(target, paths[:mid],))
|
|
113
|
+
t2 = threading.Thread(target=scan, args=(target, paths[mid:],))
|
|
114
|
+
t1.start(); t2.start()
|
|
115
|
+
t1.join(); t2.join()
|
|
116
|
+
else:
|
|
117
|
+
scan(target, paths)
|
|
118
|
+
|
|
119
|
+
print("\n")
|
|
120
|
+
msf_log("+", "Scan completed successfully. Session closed.")
|
|
121
|
+
|
|
122
|
+
if __name__ == "__main__":
|
|
123
|
+
main()
|
pbk-2.0.0/setup.cfg
ADDED
pbk-2.0.0/setup.py
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
from setuptools import setup
|
|
2
|
+
|
|
3
|
+
# This pulls your README into PyPI so the page isn't blank
|
|
4
|
+
with open("README.md", "r", encoding="utf-8") as fh:
|
|
5
|
+
long_description = fh.read()
|
|
6
|
+
|
|
7
|
+
setup(
|
|
8
|
+
name='pbk', # Use 'preston-pbk' because 'pbk' is likely taken on PyPI
|
|
9
|
+
version='2.0.0',
|
|
10
|
+
author='prest0nn',
|
|
11
|
+
description='Advanced Admin Panel Finder for Kali Linux',
|
|
12
|
+
long_description=long_description,
|
|
13
|
+
long_description_content_type="text/markdown",
|
|
14
|
+
url='https://github.com/prest0nn/pbk',
|
|
15
|
+
py_modules=['preston'], # This looks for preston.py
|
|
16
|
+
install_requires=[
|
|
17
|
+
'requests', # Tells pip to install requests if the user doesn't have it
|
|
18
|
+
],
|
|
19
|
+
include_package_data=True,
|
|
20
|
+
package_data={
|
|
21
|
+
'': ['paths.txt'], # This forces paths.txt to be included in the download
|
|
22
|
+
},
|
|
23
|
+
entry_points={
|
|
24
|
+
'console_scripts': [
|
|
25
|
+
'pbk=preston:main', # This makes the 'pbk' command work
|
|
26
|
+
],
|
|
27
|
+
},
|
|
28
|
+
classifiers=[
|
|
29
|
+
"Programming Language :: Python :: 3",
|
|
30
|
+
"License :: OSI Approved :: MIT License",
|
|
31
|
+
"Operating System :: OS Independent",
|
|
32
|
+
],
|
|
33
|
+
python_requires='>=3.6',
|
|
34
|
+
)
|