Istnieje wiele różnych typów oprogramowania do testów penetracyjnych, a testerzy penetracji często korzystają zarówno ze specjalistycznych aplikacji, jak i programów, które są szeroko dostępne dla ogółu społeczeństwa. Ponieważ z testami penetracyjnymi zwykle wiąże się wiele etapów, każda faza wymaga innego rodzaju oprogramowania. Podstawowe kategorie, do których należy większość typów oprogramowania do testów penetracyjnych, to skanery portów, luk w zabezpieczeniach i aplikacji. Niektóre z tych programów mogą jedynie skanować, podczas gdy inne mogą być również wykorzystywane do inicjowania ataków na wszelkie wykryte luki. Podstawowe narzędzia programowe, takie jak programy pocztowe, mogą być również przydatne w przeprowadzaniu socjotechnicznych aspektów testów penetracyjnych.
Testy penetracyjne to ogólny termin, który obejmuje szeroką gamę działań, z których wszystkie mają na celu pomoc w zabezpieczeniu danych, serwerów i aplikacji online. Inne terminy dotyczące testów penetracyjnych obejmują „biały kapelusz” i „etyczne” hakowanie, ponieważ testerzy penetracji używają wielu tych samych narzędzi, które są powszechnie używane przez złośliwych hakerów. Różnica polega na tym, że testerzy penetracji są zatrudniani do identyfikowania słabości i luk w zabezpieczeniach, aby można je było zabezpieczyć przed faktycznym atakiem.
Proces testów penetracyjnych obejmuje wiele różnych etapów i istnieje wiele różnych rodzajów technologii i oprogramowania, które można przetestować penetrująco. Oznacza to, że testy penetracyjne mogą wykorzystywać wiele różnych typów oprogramowania. Skanery portów są jednym z rodzajów oprogramowania do testów penetracyjnych powszechnie stosowanych w fazie gromadzenia informacji. Oprogramowanie tego typu jest przeznaczone do skanowania zdalnego hosta w poszukiwaniu otwartych portów, które mogą być celem ataku. Oprogramowanie do skanowania portów może być również zwykle używane do określenia, jaki system operacyjny (OS) jest uruchomiony na zdalnym hoście.
Skanery luk w zabezpieczeniach to kolejny powszechnie używany rodzaj oprogramowania do testów penetracyjnych. Oprogramowanie tego typu jest zwykle zaprogramowane z pewną liczbą znanych luk w zabezpieczeniach. Jeśli zdalny host ma którąkolwiek z tych luk w zabezpieczeniach, oprogramowanie można skonfigurować tak, aby zaimplementowało szereg potencjalnych exploitów i ataków. Ten rodzaj oprogramowania jest czasami również łączony ze skanerem portów, co może usprawnić przepływ pracy w testach penetracyjnych.
W innych sytuacjach przydatny może być również rodzaj oprogramowania do testów penetracyjnych, znany jako skaner aplikacji. Tego typu oprogramowanie może skanować aplikacje internetowe, a następnie próbować przeprowadzić szereg różnych ataków. Niektóre typowe ataki stosowane przez skanery aplikacji obejmują manipulację plikami cookie, wstawianie strukturalnego języka zapytań (SQL) i przepełnianie bufora.
Niektóre testy penetracyjne mają również aspekt socjotechniczny, który może, ale nie musi, wykorzystywać dowolne oprogramowanie. Ten rodzaj testów penetracyjnych może skutecznie zlokalizować wszelkie ludzkie słabości bezpieczeństwa, a testerzy często używają zwodniczych technik w celu uzyskania dostępu do poufnych informacji. Czasami do nawiązania kontaktu wykorzystywane jest oprogramowanie do obsługi poczty e-mail, chociaż ten rodzaj testów penetracyjnych często wykorzystuje rozmowy telefoniczne, a nawet fizyczne interakcje w celu uzyskania dostępu do cennych danych.