Context: Recon (Nmap) and DAST (OWASP ZAP baseline + full scan) against a controlled OWASP Juice Shop target, correlated in the Suricata-based SOC lab (Suricata → Filebeat → Elasticsearch → Kibana). Built for a SOC/Pentest Jr portfolio.
docker compose up -d(or reuse the Juice Shop container from the SOC lab).bash scripts/nmap_scan.sh→reports/nmap_juice.txt(MITRE T1595/T1046).bash scripts/zap_baseline.sh→reports/zap_baseline.html(10 WARN Medium/Low).bash scripts/zap_full_scan.sh→reports/zap_fullscan.{html,md,json}(5 Medium, 5 Low, 5 Info).bash scripts/generate_evidence.sh→ PNGs annotated with thehighcontrast_text_panel_v1preset.- Kibana Discover (
filebeat-*) showsET SCAN Nmap TCP Scan (sid:2001219)(screenshots/kibana_suricata_portscan_20251109T083126Z.png). bash scripts/notify_suricata_alerts.sh→ text summary inreports/alert_notifications/(optional Slack webhook).
screenshots/00_zap_summary_20251109T083126Z.png— ZAP baseline summary (Medium/Low alerts).screenshots/03_zap_full_summary_20251109T083126Z.png— ZAP full scan summary (Backup files, CORS, 403 bypass).screenshots/04_zap_backup_files_20251109T083126Z.png— exposed backup artefacts under/ftp/*.screenshots/kibana_suricata_portscan_20251109T083126Z.png— Suricata alert correlated to Recon.
- Harden response headers (CSP, SRI, strict CORS) and remove legacy backup artefacts.
- Update
docker-compose.ymlwithsecurity_opt: no-new-privilegesandread_only: true(Semgrep finding). - Automate SOC response to Suricata alerts (Slack webhook / TheHive workflow).
- Extend to authenticated
zap-full-scan.pyand CI automation for Recon/DAST.