OPEN SOURCE · NETWORK INTELLIGENCE · v1.1.0

BUILT FOR INTELLIGENCE

A scripting language for network reconnaissance and OSINT. Write expressive scripts, compile them into standalone executables, and extend with community libraries.

Download Fortress
Detecting your platform...
Detecting OS...
fortress — recon.frt
fortress run recon.frt
 
┌──────────────────────────────────────────┐
DOMAIN PROFILE — github.com
└──────────────────────────────────────────┘
 
IP Address : 140.82.114.4
Country : United States
ISP : GitHub, Inc.
TLS Days Left : 287 — valid
Risk Score : 0/100 · MINIMAL
 
[+] SPF · DMARC · HSTS all present
[+] Certificate chain valid (3 certs)
 
21
OSINT Builtins
5
Official Libraries
5
Platforms
0
Dependencies
MIT
License
// 01 — CAPABILITIES

Everything you need
for intelligence work

Every builtin, every keyword — purpose-built for network reconnaissance and threat analysis. No boilerplate.

DNS Intelligence
Full resolution across A, AAAA, MX, NS, TXT, and CNAME records. Brute-force subdomain discovery built in.
Port Scanning
TCP scanning with service fingerprinting, banner grabbing, and configurable port lists and timeouts.
TLS Inspection
Certificate details, expiry monitoring, full chain validation, SAN enumeration, and SSL grading.
Geolocation & ASN
IP geolocation with city, ISP, and coordinates. ASN lookup with BGP prefix and abuse reputation scoring.
Build to Executable
Compile any .frt script into a self-contained binary. Ship it — no runtime needed on the target machine.
Email & Phone OSINT
Validate emails, detect disposable providers, lookup phone carriers and line types, search paste leaks.
// 02 — LANGUAGE

Reads like intent,
not boilerplate

Security-focused keywords. Every construct maps to something you'd actually do in a recon workflow.

domain-recon.frt .FRT
// Ask for target, run full recon
capture("Target domain: ") -> target

let dns  = resolve(target)
let cert = certinfo(target)
let geo  = geolocate(dns.ips[0])

compute("IP      : " -> dns.ips[0])
compute("Country : " -> geo.country)
compute("TLS     : " -> str(cert.days_left) -> " days")

each mx in dns.mx {
    compute("MX: " -> mx)
}
build & ship SHELL
# Run directly
$ fortress run recon.frt

# Compile to standalone exe
$ fortress build scanner.exe recon.frt

# Ship it — no install needed
$ ./scanner.exe
cert-monitor.frt .FRT
let domains = [
    "example.com",
    "api.example.com",
    "admin.example.com"
]
let critDays = 14

each domain in domains {
    let cert = certinfo(domain)
    if cert.days_left < critDays {
        compute("[!] EXPIRING: " -> domain)
    } else {
        compute("[+] OK — " -> domain)
    }
}

report "certs" as "json" {
    checked_at: now(),
    total: len(domains)
}
port-watcher.frt .FRT
let risky = {
    "3306": "MySQL",  "6379": "Redis",
    "27017": "MongoDB", "9200": "ES"
}
capture("Target: ") -> host
let scan = portscan(host)

each p in scan.ports {
    if p.state != "open" { continue }
    if haskey(risky, str(p.port)) {
        compute("[!] " -> p.port -> " exposed")
    }
}
// 03 — ECOSYSTEM

A growing
library ecosystem

Fortress has a built-in package manager. Install libraries others have built, or publish your own — anyone can create and share a .frtpkg library.

Browse Libraries
Install a library
Download any .frtpkg file and install it with one command.
$ fortress get file=coffee-1.0.0.frtpkg
Use it in any script
One import line. Access all probes immediately.
import coffee
coffee.fullReport("target.com")
Publish your own
Package your probes as a .frtpkg and share it with anyone.
$ fortress mylib.frt create lib site=mylib
// 04 — GET FORTRESS

Download now

Zero dependencies. No Go required. Pick your platform and run.

Linux / macOS curl -fsSL https://raw.githubusercontent.com/CzaxStudio/Fortress/main/install.sh | bash
Windows
x64
fortress.exe
Download
macOS
Apple Silicon
M1 · M2 · M3 · M4
Download
macOS
Intel
x86-64
Download
Linux
amd64 · ARM64
Ubuntu · Debian · Arch
Download
Source
Go 1.21+
Build from source
GitHub