
Testowanie systemów pod kątem bezpieczeństwa wymaga wykorzystania różnych narzędzi, w tym skanera portów. Jednym z sposobów na zwiększenie skuteczności testów jest wykorzystanie zaawansowanych technologii sztucznej inteligencji, takich jak chat GPT, które mogą stanowić nieocenione wsparcie dla testerów penetracyjnych.
Chat GPT może być wykorzystany do automatycznego generowania kodu skryptów testowych, w tym skryptów do skanowania portów. Dzięki wykorzystaniu tej technologii, możliwe jest generowanie realistycznych scenariuszy ataków i automatyczne tworzenie skryptów do przeprowadzania testów bezpieczeństwa.
Poniżej przedstawiony jest przykładowy kod PHP do skanowania portów, z dodaną funkcjonalnością wykrywania bannerów i szukania CVE dla znalezionych wersji usług, który został wygenerowany przez chat GPT:
$host = 'example.com'; // adres IP lub nazwa domenowa
$ports = array(21, 22, 80, 443, 3306); // lista portów do przetestowania
foreach ($ports as $port) {
$connection = @fsockopen($host, $port, $errno, $errstr, 1);
if (is_resource($connection)) {
echo "Port $port is open n";
// wykrywanie bannerów
$banner = fgets($connection, 4096);
echo "Banner: $banner n";
// szukanie CVE dla znalezionych wersji usług
$cve = shell_exec("searchsploit --color $banner");
echo "CVEs: $cve";
fclose($connection);
} else {
echo "Port $port is closed n";
}
}
Wykrywanie bannerów może pomóc testerom w identyfikacji używanych wersji oprogramowania, co pozwala na szybsze weryfikowanie, czy dana usługa zawiera znane luki bezpieczeństwa. Wykorzystanie narzędzi do wyszukiwania CVE dla znalezionych wersji może pozwolić testerom na szybkie znalezienie informacji o potencjalnych lukach bezpieczeństwa, co umożliwia szybsze wdrożenie odpowiednich zabezpieczeń i zapobieganie atakom.
Jednym z popularnych narzędzi służących do wyszukiwania informacji o CVE jest SearchSploit, narzędzie dostępne w systemie operacyjnym Kali Linux. W powyższym przykładzie skrypt PHP korzysta z tego narzędzia, aby wyszukać CVE dla znalezionych bannerów.
Ważnym aspektem testowania penetracyjnego jest również raportowanie znalezionych luk w bezpieczeństwie. Chat GPT może pomóc w automatycznym generowaniu raportów na podstawie wyników testów, co pozwala na szybsze i bardziej skuteczne przekazywanie informacji o lukach bezpieczeństwa i rekomendacjach dotyczących zabezpieczeń.
Podsumowanie, wykorzystanie chat GPT jako wsparcia dla testerów penetracyjnych może znacząco zwiększyć skuteczność testów bezpieczeństwa. Dodanie funkcjonalności, takiej jak wykrywanie bannerów i szukanie CVE dla znalezionych wersji, może pomóc testerom w szybszym identyfikowaniu i naprawianiu potencjalnych luk w bezpieczeństwie. Wprowadzenie automatycznego generowania raportów może również pomóc w szybszym i bardziej efektywnym przekazywaniu informacji o lukach w bezpieczeństwie i zaleceniach dotyczących zabezpieczeń.
---
Powyższy artykuł został wygenerowany za pomocą odpowiedniego "prompt'a" (polecenia), przez Chat GPT. Wprawne oko zauważy, że narzędzie które miało służyć w badaniu bezpieczeństwa bezpośrednio naraża audytora na przeprowadzenie ataku na jego własnym ekosystemie.
Linijka odpowiedzialna za pobranie banner'a (informacji o usłudze) nie filtruje przychodzących danych:
$banner = fgets($connection, 4096);
|
W efekcie w zmiennej banner może być umieszczony niebezpieczny kod, który wykona się bezpośrednio na maszynie, w kontekście użytkownika, który wykonuje polecenie skryptu:
$cve = shell_exec("searchsploit --color $banner");
|
Komenda wykonana w bashu to np. (dla $banner = 'Apache 2.0'):
searchsploit --color Apache 2.0
|
W przypadku testowania serwera, na którym banner zostałby spreparowany w złośliwy kod np. "Apache 2.0|rm -rf /" - nasza aplikacja wykonała by następujące polecenie:
searchsploit --color Apache 2.0|rm - rf /
|
Rezultatem uruchomienia tego skryptu (w zależności od uprawnień użytkownika) było by skasowanie zawartości głównego drzewa "/".
Pamiętajmy zatem, że nie wszystko co łatwe jest równiez dobre.