
ai speeds up recon, you still do the thinking
ai didn't get smarter, it just got faster at the boring stuff
every few months someone posts a reel where an llm chews through a subdomain list and spits out "here's your attack surface, ranked" and it looks like magic. it's not magic. it's a language model doing pattern matching on text way faster than a human can read it. the actual thinking, deciding what matters, chaining the right tool, knowing when the output is garbage, that part is still on you. this post is about understanding that workflow so you can use it to find your own exposure before someone else does.
what "ranking subdomains" actually means
say a recon tool spits out 400 subdomains for a domain you own. most of them are boring: marketing landing pages, old blog subdomains, cdn junk. a few are interesting: staging., vpn., admin., api-internal., anything that smells like it wasn't meant to be public facing.
feeding that list to an llm and asking it to rank by "likely attack value" just means the model is pattern matching on naming conventions and known keywords, things like dev, test, internal, old, backup. it's the same triage a experienced analyst does in their head, just automated so you're not manually eyeballing 400 lines at 11pm.
as a defender, this is useful in reverse: run your own domain through a subdomain enumeration tool, then ask an llm to flag anything that looks like it shouldn't be internet facing. you're doing your own recon on yourself before someone else does it for free.
subfinder -d yourdomain.com -silent > subs.txt
then paste that list into a model and ask it plainly: "which of these subdomains look like they might be internal, staging, or admin panels that shouldn't be publicly exposed." you're not asking it to hack anything, you're asking it to help you read your own inventory faster.
letting an llm translate scanner output
run something like nmap against your own infrastructure and you get a wall of ports, service banners, and version numbers that mean nothing unless you already know what they mean.
nmap -sV -Pn yourserver.com
the -sV flag grabs service and version info, -Pn skips the host discovery ping so the scan still runs against hosts that block icmp. the output might say something like open 8080/tcp http Apache httpd 2.4.29. that version number matters, it's tied to specific known vulnerabilities, but most people don't have a cve database memorized.
this is where an llm earns its keep. paste that output in and ask "what does this open port and version tell me, and is this version known to have issues." the model isn't discovering anything new, it's translating jargon into plain english faster than you'd dig through changelogs and advisories yourself. the actual judgment call, whether to patch now, whether that port even needs to be open, that's still you.
chaining into other tools without losing the thread
the workflow people show in these clips usually goes: enumerate subdomains, rank them, scan the interesting ones, explain the scan, then decide what to look at next. an llm can help stitch that chain together conversationally, "based on this nmap output, what should i check next," and it'll suggest something like checking for default credentials or looking at an exposed admin panel.
the risk here is trusting the chain blindly. models hallucinate command flags, suggest tools that don't apply to your situation, or miss context that a human would catch immediately, like the fact that a port is open on purpose because it's behind a vpn you forgot to mention. treat every suggestion as a draft, not an instruction. you still verify before you act.
the takeaway
ai in recon is a force multiplier for the boring parts: reading long lists, translating jargon, suggesting next steps. it does not replace the judgment of knowing your own network, knowing what's supposed to be exposed, and knowing when a suggestion is nonsense. use it against your own domains and servers to triage your attack surface faster than you could manually, but don't let the speed fool you into skipping the thinking. run your own enumeration, feed it to a model for a plain-english summary, then go verify and fix what you find. always with permission, always on things you own.