πŸ›°οΈ open source Β· MIT

Map what's there.
Prove what you claim. Change nothing.

lan-recon is a read-only network reconnaissance tool that refuses to run unauthorized and never presents a guess as a fact β€” evidence-graded LAN discovery & asset inventory, plus the assessment methodology behind it.

πŸ”’ Read-only by construction πŸ›‘ Authorization-gated 🟒 Evidence-graded πŸ’» macOS + Linux

Why it exists

Most networks have never been inventoried β€” nobody has the full list of what's connected, let alone what it exposes. lan-recon produces that list, completely and honestly, without ever logging in, writing, or disrupting a thing. The "honestly" is the point: anyone can paste a scanner's raw output; the value is telling you which lines are proven, which are inferred, and which are unknown β€” and being right about it.

πŸ›‘ Authorization first

Security tooling is dual-use β€” the same probe is a service when the owner asked and a crime when they didn't. The tool's authorization gate makes affirming scope a step you can't skip. It's negative-control-tested in CI: a run without an authorizer fails.

🟒 Honesty-banding

Every observation is graded VERIFIED (a byproduct proved it), INFERRED (indirect signal), or UNKNOWN β€” and the report says so, out loud, next to the claim. A finding built on a guess is worse than no finding.

See it in action

Read-only by construction β€” it climbs a technique ladder (cheapest signal first) and grades each host by the strongest evidence it obtains.

$ ./lan-recon.sh --subnet 192.168.1.0/24 --jump user@onsite-box

  ╔══════════════════════════════════════════════════════════╗
  β•‘  AUTHORIZATION REQUIRED β€” read AUTHORIZATION.md           β•‘
  β•‘  Proceed ONLY with the owner's written, scoped consent.   β•‘
  β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•
  To confirm you are authorized, re-type the subnet: 192.168.1.0/24

β†’ [1/4] host sweep + ARP …           found 14 live host(s).
β†’ [2/4] per-host fingerprint …       probed 14
β†’ [3/4] mDNS/Bonjour enumeration …   service types captured.
β†’ [4/4] assembling report …          β†’ inventory.md

…and the inventory it produces β€” every host evidence-graded:

IPDeviceVendorOpen portsConfidence
192.0.2.1Router / gateway(router vendor)53VERIFIED
192.0.2.20Windows workstationDell135, 139, 445VERIFIED
192.0.2.31Network printerHP80, 443, 9100VERIFIED
192.0.2.60IoT / smart-homeSamsungβ€” (cloud-tethered)INFERRED
192.0.2.77Unidentifiable device(withheld OUI)β€” (all closed)UNKNOWN

Synthetic example (RFC 5737 documentation IPs). The UNKNOWN host is exactly the device an assessor recommends physically identifying β€” flagged, not guessed.

What it does

🧹 Discover

Bounded host sweep + ARP, then per-host read-only fingerprinting: TCP connect-probes, HTTP/SSH banners, anonymous NetBIOS, MAC-vendor, TTL β€” and mDNS/Bonjour enumeration (the richest identity signal on Apple/IoT networks).

🎯 Grade

Never a guess dressed as a fact. An open port is only ever reported as open β€” never promoted to a confirmed service until a banner proves it.

🌐 External surface

A companion tool checks what's exposed to the internet β€” internet-facing RDP, SMB, databases, telnet β€” the #1 SMB breach vector, each open port risk-classified.

πŸ“‹ Report

Turn the inventory + findings into a scaffolded client report β€” the mechanical assembly done, the human-judgment sections flagged, never faked.

The methodology behind it

The tool is Phase 2 of a four-phase assessment β€” framework-aligned (NIST SP 800-115 / PTES) but right-sized for a five-person office, not a compliance binder.

01

Scope & authorize

Written scope, rules of engagement, verified ownership.

02

Discover & inventory

Enumerate every host, identify it, map the topology.

03

Assess vulnerability

Exposed / misconfigured / unpatched surface, ranked by business impact.

04

Report & remediate

Prioritized plan, then re-test to prove each fix is closed.

⚠️ For authorized use only. Only assess networks you own or have explicit written permission to test. Read-only β‰  invisible: probe traffic appears in logs/IDS and must be covered by authorization.

Get started

Zero-risk preview β€” see exactly what it would do, no target needed:

$ git clone https://github.com/convenientlymike/lan-recon.git && cd lan-recon
$ ./toolkit/lan-recon.sh --subnet 192.168.1.0/24 --dry-run