I've written my own programs to do this very thing. I have 3 that I use that do the following:
- Ping sweep for hosts on the local network to which you're attached
- Enumerate accounts/shares/locate sid 500 for admin account (for NT hosts) of NetBIOS supported hosts
- If desired, perform a dictionary attack of the shares
I enumerate the hosts by way of the ipc$ share. I also have an application that I've written which exploits html forms-based authentication; it does the following:
- Attempts a wide number of sql injection techniques to login
- If the above fails, it will perform a dictionary attack by sending http get/post requests using the username/password fields extrapolated from the html login form.
I extended it to work w/ HTTP basic authentication but ran into problems. Finally, I have another that works with standard windows applications using login mechanisms that indicate to the user whether login succeeded/failed. It does the following:
- Performs a dictionary attack against the login form by doing a SendMessage() to each respective textbox for the username and password. It'll press the command-button and look for either a label indicating failure, or a window indicating failure. If either is present, it assumes failure and tries again. This isn't a very general app as I often have to change/recompile depending on the target application.
I have all of the above in source form if you're interesting in seeing them. I will not distribute them in binary form. I call them wnetbrute, webrute, and winbrute, respectively. They're written in either C, C#, or Java; some all 3. They're just brute forcing apps, there's no intelligence to them. I have other tools for that...
n0cMonkey's suggestion was about the best; ethereal is probably the best (free) sniffer I've used, and it supports the same filtering syntax as tcpdump. Also, if you're wanting to do vulnerability scans, look at
nessus. Next, look at
nmap. You could write a simple script which launched nmap to do a ping sweep and os ident, write that to an xml file, and translate that xml file into a format that you could feed into nessus. The result is an entirely automated scan of only valid hosts...
I hope the above information wasn't entirely useless.