OSINT · RECON · INTELLIGENCE · SECURITY
A purpose-built scripting language for network reconnaissance and threat intelligence. Write expressive scripts, ship them as standalone executables.
Every keyword, every builtin, every output format designed specifically for network reconnaissance and threat analysis.
Keywords designed for security workflows. Reads like intent, not boilerplate.
// Prompt for target domain capture("Target domain: ") -> target let dns = resolve(target) let cert = certinfo(target) let geo = geolocate(dns.ips[0]) compute("Host : " -> dns.host) compute("IP : " -> dns.ips[0]) compute("Country : " -> geo.country) compute("TLS : " -> str(cert.days_left) -> " days") each mx in dns.mx { compute("MX: " -> mx) }
let danger = { "22": "SSH", "80": "HTTP", "3306": "MySQL", "6379": "Redis" } capture("Target: ") -> host let scan = portscan(host) each p in scan.ports { if p.state != "open" { continue } if haskey(danger, str(p.port)) { compute("[!] EXPOSED: " -> p.port) } }
let domains = [ "example.com", "api.example.com", "admin.example.com" ] each domain in domains { let cert = certinfo(domain) if cert.days_left < 14 { compute("[!] EXPIRING: " -> domain -> " (" -> str(cert.days_left) -> " days)") } else { compute("[+] OK: " -> domain) } } report "certs" as "json" { checked_at: now(), total: len(domains) }
# Run a script $ fortress run recon.frt # Build into a standalone exe $ fortress build scanner.exe recon.frt # Run the built exe anywhere — # no Fortress installation needed $ ./scanner.exe # Install a library $ fortress get file=coffee-1.0.0.frtpkg # Use in scripts import coffee coffee.fullReport("target.com")
Install with one command. Import with one line. Each library is a self-contained .frtpkg file.
mylib-frt and publish your .frtpkgZero dependencies. No Go required. Just download and run.
Source code available at github.com/CzaxStudio/Fortress