
enumeration is where engagements are actually won
nmap --script vulnthe boring part is the part that matters
every flashy hacking story you've seen skips the part where the attacker spent three hours just looking. no exploit, no zero day, just quietly mapping out what's exposed. that's enumeration, and it's genuinely where most real world compromises start. not because attackers are geniuses, but because most networks hand out more information than they realize. good news: you can run the exact same recon against your own stuff and shut the door before anyone else even knocks.
nmap --script vuln, know what you're running before someone else tells you
this nmap flag runs a bundle of scripts that check open ports and services against a database of known vulnerabilities. it's not exploiting anything, it's just asking "hey, is this version of ftp or smb or http known to have problems."
nmap --script vuln 192.168.1.10
if you run this against your own server and it flags an old samba version or an outdated web server module, that's not a scary result, that's a gift. it's telling you exactly what to patch or retire before it becomes a headline. run it on a schedule, not just once, because "patched last year" isn't the same as "patched this month."
enum4linux, the smb chatter nobody's watching
smb shares and windows domains love to overshare. usernames, share names, password policies, sometimes entire file listings, all handed out to anyone who asks nicely. enum4linux automates asking nicely.
enum4linux -a 192.168.1.10
run this against your own domain controller or file server and look at what comes back. if you see a list of every employee username or a share called "backups" that's open to anonymous access, that's your foothold sitting right there in plain sight. lock down null sessions, restrict anonymous enumeration in your smb config, and make sure shares require actual authentication, not "guest can read."
gobuster, the directories you forgot existed
web servers accumulate junk. old admin panels, staging folders, backup files someone left there in 2019, a /test directory that was never supposed to go live. gobuster brute forces common directory and file names to see what's actually reachable.
gobuster dir -u https://yourdomain.com -w /usr/share/wordlists/dirb/common.txt
point this at your own site occasionally. anything it finds that shouldn't be public, an old login page, a config file, a phpinfo dump, needs to come down or get properly access controlled. the fix here is almost never "add a password," it's "why does this still exist."
nikto, the misconfig checklist you keep skipping
nikto scans web servers for the stuff that gets missed in the rush to ship: missing security headers, outdated software banners, default files, dangerous http methods left enabled.
nikto -h https://yourdomain.com
it's noisy and it'll flag some things that don't matter, but the signal is worth the noise. things like x-frame-options missing, server version banners leaking exact software builds, or trace method being enabled are all small cracks that add up to a foothold when combined with something else.
the takeaway
attackers don't usually need a clever exploit if enumeration already handed them a username, an open share, a forgotten directory, and a known vulnerable service. the fix isn't one tool or one patch, it's making a habit of scanning yourself the way an attacker would, on a schedule, and closing what you find before it sits there long enough to matter. slow down, enumerate your own stuff, and you take the "easy foothold" off the table entirely.