Det finns en hel del olika typer av programvara för etisk hackning, även om många av dem faller inom en av flera kategorier. Nätverksskanning och kartläggningsprogram används ofta för att utvärdera och kartlägga ett nätverk, vilket gör att användaren kan hitta svagheter och områden där en attack kan startas. Det finns även ett antal program som sedan kan användas för att starta en attack mot ett nätverk eller ett system, som faktiskt inte skadar systemet utan helt enkelt ger någon åtkomst genom attacken. Lösenordsåterställning eller knäckningsverktyg är också en populär form av etisk hackningsprogram, som gör att någon kan hitta lösenord med olika metoder.
Programvara för etisk hackning avser vanligtvis program som används för att hacka, men som inte orsakar skadliga eller negativa effekter på egen hand. Dessa program används vanligtvis av ”white hat” hackare som är anställda av ett företag för att leta efter svagheter i deras system. En av de mest populära och viktigaste typerna av white hat-hackningsprogram är ett program som används för att skanna och kartlägga ett nätverk. Den här typen av program kan användas för att kartlägga en mängd olika nätverksanslutningar, så att hackaren sedan kan hitta svagheter eller punkter inom nätverket som han eller hon kan attackera.
När den här typen av svaghet har hittats kan en hackare med vita hattar använda etisk hackningsprogram för att starta en attack mot systemet. Dessa program är inte utformade för att orsaka verklig eller långsiktig skada, utan visar bara hur svagheter kan utnyttjas. Ett program kan användas för att översvämma ett system med e-postmeddelanden, även om e-postmeddelandet inte innehåller virus eller skadlig kod. Dessa typer av programvara tillåter en hackare att helt simulera hur en attack mot ett system kan inträffa, utan att skada data eller äventyra information om det systemet.
En av de vanligaste och populäraste typerna av etisk hackningsprogram är ett program som kan användas för att återställa eller hitta lösenord på ett system. Detta kan inkludera ett program som använder en databas med ord för att starta en attack mot ett system, med hjälp av olika kombinationer för att försöka hitta ett fungerande lösenord. Andra verktyg kan användas för att leta efter befintliga register över lösenord på ett system, för att kunna använda dem för framtida attacker. Detta gör att någon kan demonstrera för en systemägare hur lösenord bör göras mer komplexa eller bättre krypterade.