mirror of https://github.com/OWASP/Nettacker.git
144 lines
4.9 KiB
Python
144 lines
4.9 KiB
Python
#!/usr/bin/env python3
|
|
# -*- coding: utf-8 -*-
|
|
|
|
import os
|
|
import sys
|
|
from core.time import now
|
|
from core.utility import generate_random_token
|
|
|
|
|
|
def nettacker_paths():
|
|
"""
|
|
home path for the framework (could be modify by user)
|
|
|
|
Returns:
|
|
a JSON contain the working, tmp and results path
|
|
"""
|
|
return {
|
|
"requirements_path": os.path.join(sys.path[0], 'requirements.txt'),
|
|
"requirements_dev_path": os.path.join(sys.path[0], 'requirements-dev.txt'),
|
|
"home_path": os.path.join(sys.path[0]),
|
|
"data_path": os.path.join(sys.path[0], '.data'),
|
|
"tmp_path": os.path.join(sys.path[0], '.data/tmp'),
|
|
"results_path": os.path.join(sys.path[0], '.data/results'),
|
|
"database_path": os.path.join(sys.path[0], '.data/nettacker.db'),
|
|
"version_file": os.path.join(sys.path[0], 'version.txt'),
|
|
"logo_file": os.path.join(sys.path[0], 'logo.txt'),
|
|
"messages_path": os.path.join(sys.path[0], 'lib/messages'),
|
|
"modules_path": os.path.join(sys.path[0], 'modules'),
|
|
"web_browser_user_agents": os.path.join(sys.path[0], 'lib/payloads/User-Agents/web_browsers_user_agents.txt'),
|
|
"web_static_files_path": os.path.join(sys.path[0], 'web/static'),
|
|
"payloads_path": os.path.join(sys.path[0], 'lib/payloads'),
|
|
"module_protocols_path": os.path.join(sys.path[0], 'core/module_protocols'),
|
|
}
|
|
|
|
|
|
def nettacker_api_config():
|
|
"""
|
|
API Config (could be modify by user)
|
|
|
|
Returns:
|
|
a JSON with API configuration
|
|
"""
|
|
return { # OWASP Nettacker API Default Configuration
|
|
"start_api_server": False,
|
|
"api_hostname": "0.0.0.0" if os.environ.get("docker_env") == "true" else "nettacker-api.z3r0d4y.com",
|
|
"api_port": 5000,
|
|
"api_debug_mode": False,
|
|
"api_access_key": generate_random_token(32),
|
|
"api_client_whitelisted_ips": [], # disabled - to enable please put an array with list of ips/cidr/ranges
|
|
# [
|
|
# "127.0.0.1",
|
|
# "10.0.0.0/24",
|
|
# "192.168.1.1-192.168.1.255"
|
|
# ],
|
|
"api_access_log": os.path.join(sys.path[0], '.data/nettacker.log'),
|
|
}
|
|
|
|
|
|
def nettacker_database_config():
|
|
"""
|
|
Database Config (could be modified by user)
|
|
For sqlite database:
|
|
fill the name of the DB as sqlite,
|
|
DATABASE as the name of the db user wants
|
|
other details can be left empty
|
|
For mysql users:
|
|
fill the name of the DB as mysql
|
|
DATABASE as the name of the database you want to create
|
|
USERNAME, PASSWORD, HOST and the PORT of the MySQL server
|
|
need to be filled respectively
|
|
|
|
Returns:
|
|
a JSON with Database configuration
|
|
"""
|
|
return {
|
|
"DB": "sqlite",
|
|
# "DB":"mysql", "DB": "postgres"
|
|
"DATABASE": nettacker_paths()["database_path"],
|
|
# Name of the database
|
|
"USERNAME": "",
|
|
"PASSWORD": "",
|
|
"HOST": "",
|
|
"PORT": ""
|
|
}
|
|
|
|
|
|
def nettacker_user_application_config():
|
|
"""
|
|
core framework default config (could be modify by user)
|
|
|
|
Returns:
|
|
a JSON with all user default configurations
|
|
"""
|
|
from core.compatible import version_info
|
|
return { # OWASP Nettacker Default Configuration
|
|
"language": "en",
|
|
"verbose_mode": False,
|
|
"verbose_event": False,
|
|
"show_version": False,
|
|
"report_path_filename": "{results_path}/results_{date_time}_{random_chars}.html".format(
|
|
results_path=nettacker_paths()["results_path"],
|
|
date_time=now(model="%Y_%m_%d_%H_%M_%S"),
|
|
random_chars=generate_random_token(10)
|
|
),
|
|
"graph_name": "d3_tree_v2_graph",
|
|
"show_help_menu": False,
|
|
"targets": None,
|
|
"targets_list": None,
|
|
"selected_modules": None,
|
|
"excluded_modules": None,
|
|
"usernames": None,
|
|
"usernames_list": None,
|
|
"passwords": None,
|
|
"passwords_list": None,
|
|
"ports": None,
|
|
"timeout": 3.0,
|
|
"time_sleep_between_requests": 0.0,
|
|
"scan_ip_range": False,
|
|
"scan_subdomains": False,
|
|
"skip_service_discovery": False,
|
|
"thread_per_host": 100,
|
|
"parallel_module_scan": 1,
|
|
"socks_proxy": None,
|
|
"retries": 1,
|
|
"ping_before_scan": False,
|
|
"profiles": None,
|
|
"set_hardware_usage": "maximum", # low, normal, high, maximum
|
|
"user_agent": "Nettacker {version_number} {version_code}".format(
|
|
version_number=version_info()[0], version_code=version_info()[1]
|
|
),
|
|
"show_all_modules": False,
|
|
"show_all_profiles": False,
|
|
"modules_extra_args": None
|
|
}
|
|
|
|
|
|
def nettacker_global_config():
|
|
return {
|
|
"nettacker_paths": nettacker_paths(),
|
|
"nettacker_api_config": nettacker_api_config(),
|
|
"nettacker_database_config": nettacker_database_config(),
|
|
"nettacker_user_application_config": nettacker_user_application_config()
|
|
}
|