PentestGPT е агент за проникващо тестване с отворен код, който насочва голям езиков модел към дадена цел и му позволява да работи самостоятелно. В своя режим по подразбиране той изпълнява разузнаване, след това експлоатация и накрая преминаване през стъпките, като всеки етап захранва следващия. При превключване в режим за проникващо тестване (pentest) етапите стават откриване на активи, идентифициране на уязвимости и отчет. В процеса не участва човек.

Агентът управлява Claude Code или Codex, изпълнява инструментите и решава какво да опита по-нататък. Гелей Денг и неговите колеги публикуваха оригиналната версия на конференцията USENIX Security 2024.

Необходими са Python 3.12+, мениджърът на пакети uv и два автентикирани инструмента за команден ред: Claude Code и Codex. Docker изображението обединява и двата интерфейса с команден ред (CLI), така че се вписвате веднъж, токените се съхраняват в томове (volumes) и сесиите оцеляват при повторно създаване на контейнера. Вписването в Codex не може да бъде предварително зададено, тъй като токените за опресняване на ChatGPT са за еднократна употреба, поради което обратното извикване (callback) на OAuth се препраща през socat. Този детайл е от значение първия път, когато се опитвате да подготвите изображение за екип.

По-старият дизайн е запазен под името pentestgpt-legacy. Той изпълнява три сътрудничещи си сесии на големи езикови модели (разузнаваща, генерираща и парсваща), които заедно поддържат Дърво на задачите за проникващо тестване (Pentesting Task Tree), докато вие управлявате сесията интерактивно.

Този режим с участие на човек поддържа нативно повече доставчици, отколкото автономния тръбопровод: OpenAI, Anthropic, Google Gemini, DeepSeek, xAI, Qwen, Moonshot и локални модели чрез Ollama. Регистърът на моделите е уеб-проверен през юни 2026 г., което е признание, че идентификаторите на моделите остаряват. Вграден бърз тест (smoke test) проверява в реално време всеки конфигуриран модел с двупосочна заявка и отпечатва матрица за успех или неуспех, което си струва да се изпълни, преди да се доверите на списъка.

Проверете телеметрията, преди да го насочите към клиент

По подразбиране PentestGPT изпраща анонимни данни за употреба към проект в Langfuse: метаданни за сесията (като тип на целта, продължителност и статус на завършване), кои инструменти са били изпълнени и факта, че е намерен флаг. Изходните данни от командите, идентификационните данни и стойностите на флаговете никога не се предават. Тази разлика е именно това, което ще вълнува адвокатите на вашия клиент, а отказът от изпращане на тези данни изисква или флаг в командния ред, или променлива на средата.

PentestGPT е достъпен безплатно в GitHub.