# sanjaybx1/screcon architecture

> Architecture diagram of the GitHub repository sanjaybx1/screcon, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-29). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/sanjaybx1/screcon
- Repository: https://github.com/sanjaybx1/screcon

## Overview

Screcon is a command-line reconnaissance framework: an operator supplies an authorized target and selected modules, Screcon runs external security and OSINT tools, collects their results, and saves HTML and/or JSON reports. The README documents eight modules; the excerpt shows the Nmap command execution and report-generation logic, but omits parts of the dispatcher and most runners. Module-to-tool links reflect the README’s documented integrations.

Main entry points: [`screcon.py`](https://github.com/sanjaybx1/screcon/blob/main/screcon.py) (CLI and dispatcher)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["CLI orchestration"]
  node_cli["CLI and dispatcher<br/>[screcon.py]"]
  node_consent["Authorization prompt<br/>[screcon.py]"]
end

subgraph group_scans["Recon modules"]
  node_nmap_runner["Nmap runner<br/>[screcon.py]"]
  node_wpscan_runner["WPScan runner<br/>[screcon.py]"]
  node_sublist3r_runner["Sublist3r runner<br/>[screcon.py]"]
  node_dnsenum_runner["DNSenum runner<br/>[screcon.py]"]
  node_dnsrecon_runner["DNSrecon runner<br/>[screcon.py]"]
  node_whois_runner["Whois runner<br/>[screcon.py]"]
  node_reconng_runner["Recon-ng runner<br/>[screcon.py]"]
  node_harvester_runner["Harvester runner<br/>[screcon.py]"]
  node_nmap["Nmap"]
  node_wpscan["WPScan"]
  node_sublist3r["Sublist3r"]
  node_dnsenum["DNSenum"]
  node_dnsrecon["DNSrecon"]
  node_whois["Whois"]
  node_reconng["Recon-ng"]
  node_harvester["theHarvester"]
end

subgraph group_reporting["Results and reports"]
  node_results["Collected results<br/>[screcon.py]"]
  node_html_writer["HTML report writer<br/>[screcon.py]"]
  node_json_writer["JSON report writer<br/>[screcon.py]"]
  node_html_report["HTML report"]
  node_json_report["JSON report"]
end

node_operator(("Operator"))
node_wpscan_api(("WPScan API"))

node_operator -->|"provides options"| node_cli
node_cli -->|"requests authorization"| node_consent
node_cli -->|"dispatches scan"| node_nmap_runner
node_cli -->|"dispatches scan"| node_wpscan_runner
node_cli -->|"dispatches scan"| node_sublist3r_runner
node_cli -->|"dispatches scan"| node_dnsenum_runner
node_cli -->|"dispatches scan"| node_dnsrecon_runner
node_cli -->|"dispatches scan"| node_whois_runner
node_cli -->|"dispatches scan"| node_reconng_runner
node_cli -->|"dispatches scan"| node_harvester_runner
node_cli -->|"initializes results"| node_results
node_nmap_runner -->|"executes"| node_nmap
node_wpscan_runner -->|"executes"| node_wpscan
node_wpscan_runner -.->|"uses API key"| node_wpscan_api
node_sublist3r_runner -->|"executes"| node_sublist3r
node_dnsenum_runner -->|"executes"| node_dnsenum
node_dnsrecon_runner -->|"executes"| node_dnsrecon
node_whois_runner -->|"executes"| node_whois
node_reconng_runner -->|"executes"| node_reconng
node_harvester_runner -->|"executes"| node_harvester
node_nmap_runner -->|"records findings"| node_results
node_wpscan_runner -->|"records findings"| node_results
node_sublist3r_runner -->|"records findings"| node_results
node_dnsenum_runner -->|"records findings"| node_results
node_dnsrecon_runner -->|"records findings"| node_results
node_whois_runner -->|"records findings"| node_results
node_reconng_runner -->|"records findings"| node_results
node_harvester_runner -->|"records findings"| node_results
node_cli -->|"writes report"| node_html_writer
node_cli -->|"writes report"| node_json_writer
node_results -->|"supplies results"| node_html_writer
node_results -->|"supplies results"| node_json_writer
node_html_writer -->|"generates"| node_html_report
node_json_writer -->|"generates"| node_json_report

click node_cli "https://github.com/sanjaybx1/screcon/blob/main/screcon.py"
click node_consent "https://github.com/sanjaybx1/screcon/blob/main/screcon.py"
click node_nmap_runner "https://github.com/sanjaybx1/screcon/blob/main/screcon.py"
click node_wpscan_runner "https://github.com/sanjaybx1/screcon/blob/main/screcon.py"
click node_sublist3r_runner "https://github.com/sanjaybx1/screcon/blob/main/screcon.py"
click node_dnsenum_runner "https://github.com/sanjaybx1/screcon/blob/main/screcon.py"
click node_dnsrecon_runner "https://github.com/sanjaybx1/screcon/blob/main/screcon.py"
click node_whois_runner "https://github.com/sanjaybx1/screcon/blob/main/screcon.py"
click node_reconng_runner "https://github.com/sanjaybx1/screcon/blob/main/screcon.py"
click node_harvester_runner "https://github.com/sanjaybx1/screcon/blob/main/screcon.py"
click node_results "https://github.com/sanjaybx1/screcon/blob/main/screcon.py"
click node_html_writer "https://github.com/sanjaybx1/screcon/blob/main/screcon.py"
click node_json_writer "https://github.com/sanjaybx1/screcon/blob/main/screcon.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_cli,node_consent toneBlue
class node_nmap_runner,node_wpscan_runner,node_sublist3r_runner,node_dnsenum_runner,node_dnsrecon_runner,node_whois_runner,node_reconng_runner,node_harvester_runner,node_nmap,node_wpscan,node_sublist3r,node_dnsenum,node_dnsrecon,node_whois,node_reconng,node_harvester toneAmber
class node_results,node_html_writer,node_json_writer,node_html_report,node_json_report,node_wpscan_api toneMint
class node_operator toneIndigo
```

## Components

### CLI orchestration

- [CLI and dispatcher](https://github.com/sanjaybx1/screcon/blob/main/screcon.py): `screcon.py`
- [Authorization prompt](https://github.com/sanjaybx1/screcon/blob/main/screcon.py): `screcon.py`

### Recon modules

- [Nmap runner](https://github.com/sanjaybx1/screcon/blob/main/screcon.py): `screcon.py`
- [WPScan runner](https://github.com/sanjaybx1/screcon/blob/main/screcon.py): `screcon.py`
- [Sublist3r runner](https://github.com/sanjaybx1/screcon/blob/main/screcon.py): `screcon.py`
- [DNSenum runner](https://github.com/sanjaybx1/screcon/blob/main/screcon.py): `screcon.py`
- [DNSrecon runner](https://github.com/sanjaybx1/screcon/blob/main/screcon.py): `screcon.py`
- [Whois runner](https://github.com/sanjaybx1/screcon/blob/main/screcon.py): `screcon.py`
- [Recon-ng runner](https://github.com/sanjaybx1/screcon/blob/main/screcon.py): `screcon.py`
- [Harvester runner](https://github.com/sanjaybx1/screcon/blob/main/screcon.py): `screcon.py`
- **Nmap**
- **WPScan**
- **Sublist3r**
- **DNSenum**
- **DNSrecon**
- **Whois**
- **Recon-ng**
- **theHarvester**

### Results and reports

- [Collected results](https://github.com/sanjaybx1/screcon/blob/main/screcon.py): `screcon.py`
- [HTML report writer](https://github.com/sanjaybx1/screcon/blob/main/screcon.py): `screcon.py`
- [JSON report writer](https://github.com/sanjaybx1/screcon/blob/main/screcon.py): `screcon.py`
- **HTML report**
- **JSON report**

### Other components

- **Operator**
- **WPScan API**

## Connections

- Operator → CLI and dispatcher: provides options
- CLI and dispatcher → Authorization prompt: requests authorization
- CLI and dispatcher → Nmap runner: dispatches scan
- CLI and dispatcher → WPScan runner: dispatches scan
- CLI and dispatcher → Sublist3r runner: dispatches scan
- CLI and dispatcher → DNSenum runner: dispatches scan
- CLI and dispatcher → DNSrecon runner: dispatches scan
- CLI and dispatcher → Whois runner: dispatches scan
- CLI and dispatcher → Recon-ng runner: dispatches scan
- CLI and dispatcher → Harvester runner: dispatches scan
- CLI and dispatcher → Collected results: initializes results
- Nmap runner → Nmap: executes
- WPScan runner → WPScan: executes
- WPScan runner → WPScan API: uses API key
- Sublist3r runner → Sublist3r: executes
- DNSenum runner → DNSenum: executes
- DNSrecon runner → DNSrecon: executes
- Whois runner → Whois: executes
- Recon-ng runner → Recon-ng: executes
- Harvester runner → theHarvester: executes
- Nmap runner → Collected results: records findings
- WPScan runner → Collected results: records findings
- Sublist3r runner → Collected results: records findings
- DNSenum runner → Collected results: records findings
- DNSrecon runner → Collected results: records findings
- Whois runner → Collected results: records findings
- Recon-ng runner → Collected results: records findings
- Harvester runner → Collected results: records findings
- CLI and dispatcher → HTML report writer: writes report
- CLI and dispatcher → JSON report writer: writes report
- Collected results → HTML report writer: supplies results
- Collected results → JSON report writer: supplies results
- HTML report writer → HTML report: generates
- JSON report writer → JSON report: generates
