yawast-ng is an application meant to simplify initial analysis and information gathering for penetration testers and security auditors.
yawast-ng supports a flexible plugin system that allows users to extend its scanning capabilities by writing and installing their own plugins. This enables custom checks, integrations, and automation tailored to your needs.
Plugins are Python packages that implement a specific interface and are discovered automatically by yawast-ng at runtime. Plugins must:
ScannerPluginBase
)entry_points
mechanism under the yawast.plugins
groupWhen yawast-ng starts, it loads all installed plugins and makes them available for use during scans.
To create your own plugin:
Use the sample-plugin directory as a starting point. It contains a minimal, working example.
Your plugin should inherit from ScannerPluginBase
(or another appropriate base class) and implement the required methods, such as check(self, url: str)
.
Example:
from yawast.scanner.plugins.scanner_plugin_base import ScannerPluginBase
class MyPlugin(ScannerPluginBase):
def __init__(self):
super().__init__()
self.name = "MyPlugin"
self.description = "A custom plugin."
self.version = "0.1.0"
def check(self, url: str) -> None:
# Your scanning logic here
pass
In your setup.py
, add an entry point under yawast.plugins
:
entry_points={
"yawast.plugins": [
"my_plugin = my_plugin:MyPlugin",
],
},
Build and install your plugin package:
pip install .
yawast-ng will automatically discover and load your plugin the next time it runs.
See the sample-plugin directory for a complete, minimal example. This can be copied and modified to create your own plugins.
yawast/scanner/plugins/
for more plugin types and hooks.print_loaded_plugins()
function or equivalent command to verify your plugin is detected.