- Overview
- Features
- Directory Structure
- Using Enhanced Modules
- Creating Enhanced Modules
- Attack Logging System
- Vulnerability Tracking
- Examples
The NullSec Enhanced Framework provides:
- Interactive Parameter Collection - Rich prompts with validation
- Automatic Logging - Every attack is logged with timestamps
- Vulnerability Tracking - Auto-detect and catalog discovered vulnerabilities
- Organized Storage - Target-specific folders for all attack data
- Next Steps Suggestions - AI-generated recommendations after each attack
- Professional Output - Beautiful formatted displays and summaries
- β Multiple parameter types (IP, Port, File, Choice, Boolean, etc.)
- β Real-time input validation
- β Default value suggestions
- β Help text and descriptions
- β Numbered choice menus
- β Confirmation before execution
- π Timestamped execution logs
- π Vulnerability severity tracking
- π Organized target directories
- π Markdown summary reports
- π― Suggested next steps
- πΎ All output files preserved
- π Detects vulnerabilities from log output
- π― Categorizes by severity (Critical/High/Medium/Low)
- π Generates exploitation recommendations
- πΊοΈ Maps attack paths automatically
All attack results are organized under ~/nullsec/logs/:
~/nullsec/logs/
βββ targets/
β βββ 192.168.1.100/
β β βββ SUMMARY.md # Main summary with all attacks
β β βββ ad-attack_20260114_153045.log # Timestamped attack logs
β β βββ nmap-scan_20260114_154230.log
β β βββ scans/ # Scan results
β β β βββ nmap_full.xml
β β β βββ nikto_output.txt
β β β βββ enum4linux.txt
β β βββ exploits/ # Exploit attempts
β β β βββ exploit_log.txt
β β β βββ payload.bin
β β βββ credentials/ # Captured credentials
β β β βββ hashes.txt
β β β βββ passwords.txt
β β β βββ kerberos_tickets.kirbi
β β βββ screenshots/ # Evidence screenshots
β β βββ desktop_20260114.png
β β
β βββ dc01.corp.local/
β β βββ SUMMARY.md
β β βββ asrep_hashes.txt
β β βββ bloodhound_corp_20260114.zip
β β βββ ldap_enumeration.txt
β β
β βββ webserver.example.com/
β βββ SUMMARY.md
β βββ sql_injection_test.log
β βββ xss_vectors.txt
cd ~/nullsec
./nullsec-launcher.py
# Select any module with a .json config - it uses enhanced mode automatically- Launch NullSec Desktop GUI
- Browse modules by category
- Click any enhanced module
- Interactive prompts appear in terminal
python3 module-framework.py <script.sh> <config.json>
# Example:
python3 module-framework.py \
nullsecurity/ad-attack-enhanced.sh \
nullsecurity/ad-attack.jsoncd ~/nullsec/nullsecurity/
cp module-template.sh my-new-module.sh
cp module-template.json my-new-module.json{
"name": "My Custom Attack",
"description": "What this module does",
"category": "Exploitation",
"requires_root": false,
"pre_run_checks": ["nmap", "nikto"],
"parameters": [
{
"name": "target",
"prompt": "Target IP Address",
"param_type": "ip",
"required": true,
"description": "Primary attack target"
}
],
"examples": [
{"desc": "Example usage scenario"}
]
}#!/bin/bash
# Read parameters from environment
TARGET="${NULLSEC_TARGET}"
PORT="${NULLSEC_PORT}"
# Logging paths (auto-provided)
TARGET_DIR="${NULLSEC_TARGET_DIR}"
LOG_FILE="${NULLSEC_LOG_FILE}"
# Use helper functions
log_to_file "Attack started against $TARGET"
save_output "results.txt" "Attack data here"
log_vulnerability "high" "SQL Injection" "Found in login form"string- Free text inputip- IP address with validationport- Port number (1-65535)file- File path with existence checkchoice- Multiple choice menuboolean- Yes/No questiondomain- Domain nameurl- URL validation
log_to_file "Your message here"
# Adds timestamped entry to log filesave_output "filename.txt" "content to save"
# Saves to target directory and logs itlog_vulnerability "severity" "Vulnerability Type" "Description"
# Severities: critical, high, medium, low
# Examples:
log_vulnerability "critical" "RCE" "Remote code execution in upload function"
log_vulnerability "high" "SQLi" "SQL injection in search parameter"
log_vulnerability "medium" "XSS" "Reflected XSS in username field"- β Execution timestamps (start/end)
- β All parameters used (passwords redacted)
- β Module output and results
- β Discovered vulnerabilities
- β Exit codes and errors
- β Generated files and their paths
[2026-01-14 15:30:45] === NullSec Attack Log ===
[2026-01-14 15:30:45] Target: dc01.corp.local
[2026-01-14 15:30:45] Module: Active Directory Attack
[2026-01-14 15:30:45] Timestamp: 2026-01-14T15:30:45
[2026-01-14 15:30:45] Target Directory: /home/user/nullsec/logs/targets/dc01.corp.local
[2026-01-14 15:30:45] ==================================================
[2026-01-14 15:30:45] Execution started with parameters:
[2026-01-14 15:30:45] attack_type: AS-REP Roasting
[2026-01-14 15:30:45] domain_controller: dc01.corp.local
[2026-01-14 15:30:45] domain: corp.local
[2026-01-14 15:30:46] Connected to LDAP://dc01.corp.local:389
[2026-01-14 15:30:47] VULNERABILITY: Found 3 AS-REP roastable accounts
[2026-01-14 15:30:48] Saved output to .../asrep_hashes.txt
[2026-01-14 15:30:50] Execution completed in 5.23 seconds
[2026-01-14 15:30:50] Exit code: 0
Each target gets a markdown summary with:
- Attack history and timeline
- All parameters used
- Discovered vulnerabilities (color-coded by severity)
- Suggested next steps
- Links to all output files
The framework automatically detects these patterns in logs:
- Weak/default credentials
- SQL Injection
- Cross-Site Scripting (XSS)
- Remote Code Execution (RCE)
- File inclusion vulnerabilities
- Exposed services
- Outdated software
- Misconfigurations
log_vulnerability "critical" "Authentication Bypass" "Admin panel accessible without credentials"- π΄ Critical - Immediate exploitation possible (RCE, auth bypass)
- π High - Significant impact (SQLi, XSS, privilege escalation)
- π‘ Medium - Security weaknesses (weak passwords, misconfig)
- π’ Low - Information disclosure, minor issues
python3 module-framework.py \
nullsecurity/ad-attack-enhanced.sh \
nullsecurity/ad-attack.jsonInteractive prompts:
- Select attack vector (choice menu)
- Enter domain controller
- Enter domain name
- Optional credentials
- Stealth mode preference
- Output format
- Timeout value
Result:
- Log:
~/nullsec/logs/targets/dc01.corp.local/ad-attack_20260114_153045.log - Hashes:
~/nullsec/logs/targets/dc01.corp.local/asrep_hashes.txt - Summary:
~/nullsec/logs/targets/dc01.corp.local/SUMMARY.md
# Create nmap-scan.json:
{
"name": "Network Scanner",
"parameters": [
{"name": "target", "prompt": "Target IP/Network", "param_type": "ip", "required": true},
{"name": "scan_type", "prompt": "Scan Type", "param_type": "choice",
"choices": ["Quick", "Full", "Stealth"], "required": true}
]
}
# Create nmap-scan.sh:
#!/bin/bash
TARGET="${NULLSEC_TARGET}"
SCAN_TYPE="${NULLSEC_SCAN_TYPE}"
log_to_file "Starting $SCAN_TYPE scan of $TARGET"
# ... nmap commands ...
save_output "nmap_results.xml" "$nmap_output"-
Credential Handling
- Passwords are automatically redacted in logs
- Store captured credentials in
credentials/subdirectory - Never commit logs with real credentials to git
-
Target Authorization
- Only test targets you have written permission to test
- Keep authorization documentation in target folder
- Document scope and limitations
-
Data Protection
- Encrypt sensitive log data
- Secure delete when testing is complete
- Follow data retention policies
- Ensure
.jsonfile exists with same base name as.sh - Check JSON syntax with:
python3 -m json.tool config.json - Verify
module-framework.pyis in ~/nullsec/
- Check permissions on ~/nullsec/logs/
- Ensure
NULLSEC_TARGET_DIRenvironment variable is set - Verify disk space available
- Check parameter names match between JSON and bash script
- Remember to prefix with
NULLSEC_in environment variables - Use
printenv | grep NULLSECto debug
For issues or enhancements:
- Review this guide thoroughly
- Check existing modules for examples
- Test with
module-template.shfirst - Consult ENHANCED_FRAMEWORK_GUIDE.md
- Study
ad-attack-enhanced.shfor complete example - Review
module-framework.pyfor framework internals - Check
SUMMARY.mdfiles for output format examples - Explore existing
.jsonconfigs for parameter patterns