• XSS.stack #1 – первый литературный журнал от юзеров форума

сканер ИИ в Пентесте: Автоматизированный Веб-Сканер с Интеграцией ИИ

hackeryaroslav

(L1) cache
Пользователь
Регистрация
11.09.2023
Сообщения
535
Реакции
521

Авторство: hackeryaroslav​

Источник: xss.pro​


Автоматизированный Веб-Сканер v1.0 (планирую добавлять новые идеи и доработки, буду оказывать активную поддержку, так что следите за обновлениями!). Сканер представляет собой средство обнаружения уязвимостей в веб-приложениях.

Screenshot 2024-01-19 181154.png

Основные особенности:
  1. Проект включает в себя интеграцию с ИИ, что позволяет автоматизировать анализ отчетов (проект собирает все репорты и отдает ИИ на анализ), предоставляя ценные рекомендации и советы по устранению обнаруженных уязвимостей.
  2. В составе сканера представлены популярные инструменты для тестирования на проникновение, такие как Nmap, Nikto, Sqlmap и другие. Это обеспечивает полный охват при проверке безопасности вашего веб-приложения. Можно добавит свои инструменты в код и поменять существующие аргументы там же.
  3. Вы можете настроить профиль ИИ в соответствии с вашим стилем и потребностями: от дружелюбного наставника до киберспецагента или хакера-гуру. И также дать свой промпт для стиля и фидбека от ИИ.
  4. Возможность отключения или добавления собственных инструментов (скоро), выбор режима агрессивного сканирования, а также создание кастомных инструментов для адаптации под вашу среду (пока на тесте)
  5. Поддержка прокси

Как использовать:
  • Базовый запуск:
    Код:
    python ai.py http://example.com
  • Агрессивный режим:
    Код:
    python ai.py http://example.com -a
  • Отключение определенного инструмента (например, nikto (на тесте)):
    Код:
    python ai.py "http://example.com" -d nikto
  • Интеграция с ИИ:
    Код:
    python ai.py http://example.com -ai
  • Запуск с пользовательским промптом:
    Код:
    python ai.py http://example.com -p "Ваш пользовательский промпт"
  • Добавление собственного инструмента (пока не работает):
    Код:
    python ai.py "http://example.com" -c
  • Совмещенный режим анализа и ИИ:
    Код:
    python ai.py http://example.com -ai -pr hacker
  • Запуск с профилем ИИ и агрессивным режимом:
    Код:
    python ai.py http://example.com -ai -pr paranoid -a

Преимущества:
  • Автоматизация процесса тестирования на проникновение.
  • Интеллектуальный анализ отчетов и рекомендации по устранению уязвимостей.
  • Гибкие настройки и возможность адаптации под конкретные потребности.

В коде для анализа отчетов я использовал Llama модель, опен сорсная, можно взглянуть характеристики тут https://github.com/facebookresearch/llama/blob/main/MODEL_CARD.md

Парочку скринов работы проекта


Screenshot 2024-01-19 164101.png



Результаты фидбека Llama paranoid, таргет не уязвим, но оно дает советы куда дальше копать:

Screenshot 2024-01-19 180014.png


Можно самостоятельно посмотреть результаты каждой тулы в txt файлах:

Screenshot 2024-01-19 173101.png

Если скан проведен без ИИ, то прога попытается отыскать уязвимости найденные сканеров и вывести инфу в таблицу:

Screenshot 2024-01-19 172948.png
Что нужно?
Апи ключи от LLama для использовании ИИ интеграции, его очень просто получить и будет он работать довольно долго. Для этого заходим сюда: https://www.llama-api.com/account/api-token предварительно войти в аккаунт и скопировать ключ. Бесплатно даются токенов на 5$:

Screenshot 2024-01-19 180750.png

Проведя тест сканов с ИИ боле 10 раз, грубо говоря, потратил только цент из доступных. Всегда в случае невалида ключа можно зарегистрировать новый аккаунт.

Открыт к вашему фидбеку по коду, новых идей и доработок. Буду скидывать новые версии с кодом тут с описанием измененного. Проект и документация полностью на английском для доступности к широкой аудитории. Если будут те, кто захотят версию на русском, проганю все и скину вам. Также хочу выпустить статью о коде, как и почему. Норм идея? Что думаете об этом? Всем добра!
 

Вложения

  • ai.zip
    4.3 КБ · Просмотры: 211
Последнее редактирование:
Хороший проект но мне кажется такое было уже
И я бы добавил поддержку llama-cpp без api
Поскольку проект является open source, мне нельзя использовать свой API в файле окружения (env), например. Просто интегрировать всю модель непосредственно в код также не представляется возможным — это было бы слишком сложно и неэффективно.
 
python ai.py http://testhtml5.vulnweb.com -ai -pr hacker
Ничего не нашёл, скрипт точно работает?
привет, да скрипт работает, тестил на десятках доменах. В твоем случае это http://testhtml5.vulnweb.com При скане я получил эту ошибку от никто:
Screenshot 2024-01-21 063147.png


На сайте (testhtml5.vulnweb.com) предусмотрены меры безопасности, которые обнаруживают и блокируют определенные типы трафика, включая инструменты автоматического сканирования. Веб-сайт имеет защиту от инструментов автоматического сканирования, может она только позволит себя отсканировать только их продуктом. Я тестил скрипт на реальных таргетов и все отрабатывалось хорошо.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
V4y32X2kyOk.jpg



мем не мой, но он в тему про SQL-Injection и AI.
 
Немного поправил код, убрал лишние инструменты, которые вызывали проблемы, добавил перечень сканируемых инструментов в терминал. Также внес изменения для поиска найденных уязвимостей по CVE в таблице и теперь скрипт предоставляет ссылку на информацию о соответствующей уязвимости. Пользуясь случаем, хочу спросить у вас, форумчан, какой проект с интеграцией ИИ вы бы хотели видеть — с уникальным функционалом, автоматизацией работы и отсутствием аналогов на рынке (или почти), или какие функции можно добавить в существующий проект. А так приметил у себя одну идейку для следующего. В ближайшие недели приступлю, надеюсь, что поддержите, ведь это немало сил берет и они не так уж и просты, если честно:D
 

Вложения

  • ai.zip
    4.5 КБ · Просмотры: 79
Пожалуйста, обратите внимание, что пользователь заблокирован
Running nmap...
Running nikto...
Running sqlmap...
Running sslscan...
Running dnsrecon...
Traceback (most recent call last):
File "/usr/share/dnsrecon/./dnsrecon.py", line 1691, in <module>
main()
File "/usr/share/dnsrecon/./dnsrecon.py", line 1651, in main
std_enum_records = general_enum(res, domain, xfr, bing, yandex, spf_enum, do_whois, do_crt, zonewalk)
File "/usr/share/dnsrecon/./dnsrecon.py", line 934, in general_enum
bind_ver = check_bindversion(res, ns_rcrd[2], res._res.timeout)
File "/usr/share/dnsrecon/./dnsrecon.py", line 847, in check_bindversion
print_status(f"\t Bind Version for {ns_server} {response.answer[0].items[0].strings[0]}")
KeyError: 0
Error running dnsrecon: Command '['dnsrecon', '-d', 'XXXXXXXXXX']' returned non-zero exit status 1.
 
Running nmap...
Running nikto...
Running sqlmap...
Running sslscan...
Running dnsrecon...
Traceback (most recent call last):
File "/usr/share/dnsrecon/./dnsrecon.py", line 1691, in <module>
main()
File "/usr/share/dnsrecon/./dnsrecon.py", line 1651, in main
std_enum_records = general_enum(res, domain, xfr, bing, yandex, spf_enum, do_whois, do_crt, zonewalk)
File "/usr/share/dnsrecon/./dnsrecon.py", line 934, in general_enum
bind_ver = check_bindversion(res, ns_rcrd[2], res._res.timeout)
File "/usr/share/dnsrecon/./dnsrecon.py", line 847, in check_bindversion
print_status(f"\t Bind Version for {ns_server} {response.answer[0].items[0].strings[0]}")
KeyError: 0
Error running dnsrecon: Command '['dnsrecon', '-d', 'XXXXXXXXXX']' returned non-zero exit status 1.
тестил с со своими доменами, отрабатывает как положено. Убедись что кали и днсрекон на последней версии, также проверь правильность написания домена и также чекни результат сгенерированный прогрой тхт файла репорта.
 
Небольшое и приятное обновление v1.1. Теперь после каждого сканирования автоматически генерируется маленький и приятный HTML-отчет, который лежит прямо в папке с проектом. Просто открывайте его двойным щелчком мыши и сразу видите отчет по каждому инструменту с ответами от ИИ. Это еще больше упростит нашу жизнь, ведь теперь не нужно тратить время на открытие каждого файла отдельно – все сразу и удобно в одном отчете. Весь код наложен комментами с пояснениями. Все аргументы можно легко поменять под ваши предпочтения, мои же созданы для демонстрации работы и быстрого скана. Тулзу которую не хотите запускать можно исключить аргументом -d [instr]
Screenshot 2024-02-15 194707.png

Screenshot 2024-02-15 194720.png



Если одна из тулз отработала с ошибкой, то тщательно проверьте свой домен. А именно в каком формате вы его отдали. Также домен может быть оснащен защитой от сканеров, поэтому будьте в курсе об этом заранее.

Следующие обновление будет включать исправление существующих недочетов, улучшение дизайна вывода из консоли и отчета. Также добавлю приятные дополнительные штуки. Также будет приятно услышать ваши пожелания
 

Вложения

  • ai.zip
    5.8 КБ · Просмотры: 37
Последнее редактирование:
Running nmap...
Running nikto...
Running sqlmap...
Running sslscan...
Running dnsrecon...
Идея обьединить все используемые инструменты в скоупе одной программы - совершенно не нова. Однако и делать это в cli, где ты реалтайм просто физически не сможешь контролировать ход выполнения, создавать рулезы, расширять\ограничивать и разграничивать область применения и поверхность атак, работать с site map и заметками, на основе которых выстраивать дальнейшую роадмап и отмечать эндпоинты, отслеживать все реквесты и респонзы, и т.д. и т.п. - ну это мазохизм чистой воды. GUI тут незаменим. Нет, я двумя руками и всеми фибрами души ратую за cli, где это возможно, но не в данном конкретном случае. Да и одновременное взаимодействие всех этих вспомогательных инструментов крайне сомнительно в плане палива, шума и итогового кпд.

Дабы не быть голословным - всё это уже давно реализовано в Burp Suite.

photo_2023-06-22_07-37-40.jpg


Ну и Nikto ... так себе решение.


В бёрпе же, посредством экстеншнс (BApp), ты можешь использовать и интегрировать гораздо более продуктивные и результативные софты, example:
Nessus (loader), Nuclei (integration + template gen.), в порядке вещей и вышеуказанные NMap (Parser) , SQLMap (+ api, + tampering, + DNS collab, + map gui '=\', etc), SSL Scanner, а так же выстраивать аргументы\кеи сразу в виде комманд к cURL, Gobuster, Feroxbuster, тому же sqlmap, Wfuzz, ffuf. При необходимости, можно как импортировать, так и экспортировать в site map резалты вышеупомянутых Nikto (+ Nessus), и допом Dirb, Acunetix, Netsparker (экспорт в них же резалтов с берпа работает и стандартными средствами, по большей части, импорт из них в берп для дальнейшей и точечной работы - App : Add to sitemap+ ). Не говоря уже о том, что все это можно расширить кастомными BChecks'ами, софты пустить через локальную проксю берпа, по итогу резалты всего своего парка используемых инструментов ты консолидируешь, компилируешь, назначаешь правила и отслеживаешь выполнение - не выходя из одной программы (хоть ваще на отдельной виртуалке\vps берп ставь и пускай всё через него). Даже стандартными средствами берпа можно добиться очень многого, не говоря уже об остальном, т.к. можно и много чего еще, на что хватит фантазии.

Теперь непосредственно к контексту данной темы, на чем (в основном) и акцентировано внимание, ибо, повторюсь, идея не нова даже этом ключе (как справедливо заметили выше):
Хороший проект но мне кажется такое было уже
И было, и есть, и развивается (но уже в основном платно) в Burp. Однако и фри версия тож работает и развивается


Example:
Промпт (кастом, шабы):

1.png


Резалт:

2.png


Можно анализировать хоть ваще простыни траффа, хоть каждый реквест\респонз (любого софта, пущенного через локальную проксю берпа), хоть точечно (напр. через Repeater) - перепроверкой наиболее подозрительных точек вставки, руками. Ну или для удобства\экономии, просто вкл\откл экстеншн.

2 hackeryaroslav , теперь обращусь к тебе. Лови ОГРОМНЕЙШИЙ плюс, (все проставил в теме))) и ваще респект, но исключительно за старания и попытку в реализацию. С позиции опыта - ты выбрал верное направление. С позиции же перспектив, конкурентоспособности, КПД, временных и трудозатрат, etc - ты переизобретаешь даже не велосипед, а колесо. Ибо над аналогичными решениями трудятся целые проф. тимы. И поверь, результат у них будет в любом случае качественнее. Потому дам совет, почти все эти решения на начальном этапе опенсорс (пока плавно не уходят в коммерс). Развивай уже готовые проджекты, кастомизируя и совершенствуя лисапед до электромопеда - глядишь, в дальнейшем и выйдет ламботесла-суперкар. )))

Чуть говна еще накину с лопаты на вентилятор, со своей колокольни:
делаем работу ленивым проще
Отдавать багхантинг, пентестинг, а главное самостоятельный АНАЛИЗ (по большей части) на откуп практически полной автоматизации, еще и с применением ИИ - чревато вырождением, проф. деградацией и вводит камьюнити в стагнацию, как минимум. Уже, в нынешних реалиях, навыки скрипткидди считаются если не пздц скиллом, то как минимум нихepовым достижением o_0 ... ИИ, в свою очередь, добавляет свою ложку дегтя. В "креативный" анализ и нестандартный подход как его следствие, языковая модель на текущем этапе развития не умеет ваще. Она лишь подтверждает известные факты и может помочь обратить внимание на твой пpoeб в узких местах, однако если человек не внимателен в самом АНАЛИЗЕ - ему в теме делать нехер ))) Ну и про ленивых...Если человек действует всегда по "упрощенной схеме", лень учиться, лень усердно работать, развиваться, надо все и сразу, здесь и сейчас - нечего пытаться облегчить им и так лайтовую житуху "на чилле" ))) Ибо xyёвoй nизде - xyёвo везде.

Пожалуй на этой оптимистичной ноте я и закончу :D
 
hackeryaroslav , теперь обращусь к тебе. Лови ОГРОМНЕЙШИЙ плюс, (все проставил в теме))) и ваще респект, но исключительно за старания и попытку в реализацию. С позиции опыта - ты выбрал верное направление. С позиции же перспектив, конкурентоспособности, КПД, временных и трудозатрат, etc - ты переизобретаешь даже не велосипед, а колесо. Ибо над аналогичными решениями трудятся целые проф. тимы. И поверь, результат у них будет в любом случае качественнее. Потому дам совет, почти все эти решения на начальном этапе опенсорс (пока плавно не уходят в коммерс). Развивай уже готовые проджекты, кастомизируя и совершенствуя лисапед до электромопеда - глядишь, в дальнейшем и выйдет ламботесла-суперкар. )))
спасибо, я это заметил. Сам с идеей долго просиживал, что то уникальное сейчас создать трудновато, хотелось прям такое свое с нуля написать. Заметки подчеркнул, проект еще будет дорабатываться. Все таки как веб разраб, меня очень движит ИИ, в плане его интеграции, очень интересно такие разрабатывать)) мой гитхаб из них почти и состоит. Все таки было бы как то не интересно брать чужую писанину и переделывать, но как для себя, а не для конкурса вполне себе идея.
Отдавать багхантинг, пентестинг, а главное самостоятельный АНАЛИЗ (по большей части) на откуп практически полной автоматизации, еще и с применением ИИ - чревато вырождением, проф. деградацией и вводит камьюнити в стагнацию, как минимум. Уже, в нынешних реалиях, навыки скрипткидди считаются если не пздц скиллом, то как минимум нихepовым достижением o_0 ... ИИ, в свою очередь, добавляет свою ложку дегтя. В "креативный" анализ и нестандартный подход как его следствие, языковая модель на текущем этапе развития не умеет ваще. Она лишь подтверждает известные факты и может помочь обратить внимание на твой пpoeб в узких местах, однако если человек не внимателен в самом АНАЛИЗЕ - ему в теме делать нехер ))) Ну и про ленивых...Если человек действует всегда по "упрощенной схеме", лень учиться, лень усердно работать, развиваться, надо все и сразу, здесь и сейчас - нечего пытаться облегчить им и так лайтовую житуху "на чилле" ))) Ибо xyёвoй nизде - xyёвo везде.
с этим тоже согласен, в конце концов, либо ты ленивый гений который реально крутой ИИ запилит и будет с багханта деньги гребсти (лень же двигатель прогресса, верно?), либо ты просто дурак который на ИИ и полагается, все таки по большей части баги находятся самим человеком, до куда ни один сканер и ИИ не может добраться. ИИ думают технически и по практике, а человек думает креативно и необычно. В этом и заключаются успехи


Спасибо за такой чтиво, да и за поддержку тоже, был ,мягко говоря, удивлен, когда увидел. Колесо удалось))
 
Лови ОГРОМНЕЙШИЙ плюс, (все проставил в теме))) и ваще респект, но исключительно за старания и попытку в реализацию
С позиции же перспектив, конкурентоспособности, КПД, временных и трудозатрат, etc - ты переизобретаешь даже не велосипед, а колесо
Burp Suite, безусловно, является одним из наиболее мощных инструментов в это области. Его разработка длится уже многие годы, и это отражается в его функциональности и надежности. Однако, когда люди начинают работу над своими собственными проектами в этой области, они иногда задаются вопросом: зачем создавать что-то, что уже существует?

Этот вопрос понятен и обоснован. Однако, важно понимать, что разработка новых инструментов в области безопасности - это не только попытка повторить то, что уже существует. Это также возможность привнести что-то новое, инновационное и уникальное в эту область.

Продолжим. Несмотря на то что мой проект может показаться простым или неуклюжим на первый взгляд, он всё же несёт в себе потенциал для роста и развития. Даже если мой инструмент пока не обладает такими же масштабами и функциональностью, как Burp Suite, это не значит, что он лишен смысла или ценности. Кроме того, не следует забывать, что даже самые маленькие проекты могут приносить ощутимую пользу. Может быть, мой инструмент будет более интуитивно понятен для новичков или решит какую-то узкую специфическую задачу, которая не была решена Burp Suite. Даже небольшие изменения и усовершенствования могут иметь значительное значение для пользователей.

Думаю тут, мы все таки оба правы и это только даст мотивации двигать этот проект дальше. Ну и тут еще и мои принципы, я такой разраб, который каждый свой проект поддерживаю до конца. Даже после конкурса, он будет залит на гитхаб, где я, естественно, буду накидывать еще полезных штук.))
 
how about you integrate ollama.ai llama model into the script no need to pay for the ai
To integrate them, we need to download models that are over 20 GB, which may not be comfortable for others.
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх