Dostupno je dosta različitih vrsta softvera za etičko hakiranje, iako mnogi od njih spadaju u jednu od nekoliko kategorija. Programi za skeniranje i mapiranje mreže često se koriste za procjenu i mapiranje mreže, dopuštajući korisniku da pronađe slabosti i područja u kojima se napad može pokrenuti. Postoji i niz programa koji se onda mogu koristiti za pokretanje napada na mrežu ili sustav, koji zapravo ne oštećuju sustav već jednostavno nekome daju pristup kroz napad. Alati za vraćanje lozinke ili razbijanje lozinke također su popularan oblik etičkog softvera za hakiranje, koji omogućuje nekome da pronađe lozinke raznim metodama.
Etički softver za hakiranje obično se odnosi na programe koji se koriste za hakiranje, ali koji sami po sebi ne uzrokuju zlonamjerne ili štetne učinke. Ove programe obično koriste hakeri “bijelih šešira” zaposleni u tvrtki da traže slabosti u svojim sustavima. Jedna od najpopularnijih i najvažnijih vrsta softvera za hakiranje bijelog šešira je program koji se koristi za skeniranje i mapiranje mreže. Ova vrsta programa može se koristiti za mapiranje raznih mrežnih veza, dopuštajući hakeru da pronađe slabosti ili točke unutar mreže koje on ili ona može napasti.
Nakon što se pronađe ova vrsta slabosti, haker s bijelim šeširom može koristiti softver za etičko hakiranje kako bi pokrenuo napad na sustav. Ovi programi nisu dizajnirani da uzrokuju stvarnu ili dugoročnu štetu, već jednostavno pokazuju kako se slabosti mogu iskoristiti. Program bi se mogao koristiti za preplavljivanje sustava masovnom e-poštom, iako poslana e-pošta ne bi sadržavala viruse ili bilo kakav zlonamjerni kod. Ove vrste softvera omogućuju hakeru da u potpunosti simulira kako se može dogoditi napad na sustav, bez oštećenja podataka ili kompromitiranja informacija na tom sustavu.
Jedna od najčešćih i najpopularnijih vrsta softvera za etičko hakiranje je program koji se može koristiti za oporavak ili pronalaženje lozinki na sustavu. To može uključivati program koji koristi bazu podataka riječi za pokretanje napada na sustav, koristeći različite kombinacije kako bi pokušao pronaći funkcionalnu lozinku. Drugi alati se mogu koristiti za traženje postojećih zapisa lozinki na sustavu, kako bi ih iskoristili za buduće napade. To omogućuje nekome da pokaže vlasniku sustava kako bi lozinke trebale biti složenije ili bolje šifrirane.