Приветствую! Раз объявили конкурс статей, то почему бы не поучаствовать.
Специально для codeby.net
Автор: KnightPentest
GPT 4.0
Это очень полезная нейронка для пентестера. В этой статье я продемонстрирую, как ее можно использовать на периметре.
Анализируем исходники CMS
Наверное каждый из нас хоть раз пробовал взломать форум(во время ctf) на каком-нибудь популярном CMS(wordpress, joomla, etc.). Если нам доступны исходники форума/плагина/темы для форума, то мы можем их проанализировать и найти новую багу. Особенно, если движок непопулярный или плагин для форума, то вероятность крайне высокая, как минимум мы будем понимать есть ли смысл вообще пытаться подобрать уникальный ID или что-то в этом роде, иначе можно потерять кучу времени и уйти ни с чем. На самом деле я бы порекомендовал в первую очередь изучить движок форума vbulletion это максимально дырявый форум с огромной историей, есть кучу багов, которые находили комьюнити форума ачата. Даже максимально странные баги, когда пользователь мог зарегистрироваться от имени администратора, введя вместо буквы "a" условно Ⱥ из греческого алфавита/латинского(если я не ошибаюсь, т.к я помню, что удавалось зарегистрироваться под именем админа, но администрироваться нельзя было). Теперь перейдем к делу.
У меня для проведения пентеста есть форум на движке IP BOARD. Первое что я сделаю - это зарегистрируюсь...
Приходит подтверждение почты
Меня в первую очередь заинтересовала эта активация из-за текста в сообщении:
После того, как были найдены исходники мне нужно было понять из чего формируется aid (секретный ключ, который необходим для подтверждения почты или сброса пароля). Если бы мы смогли его генерировать или подбирать, то смогли бы и захватить учетную запись администратора. В исходниках 100% есть строки в которых есть "aid" вот их и нужно найти. Воспользуемся утилитой grep.
Получаем output в каких файлах есть "aid"
На глаз уже видно, что исходники скорее всего лежат в /upload/admin/applications/core/modules_public/global/register.php или /upload/admin/applications/members/sources/adminManage.php но т.к мы не владеем php передадим все это дело в консольного GPT. Пусть он проанализирует и скажет как формирутеся aid.
Далее он ищет уже в файлах конкретно строки в которых есть "aid"
И он приходит к выводу, что aid создается через файл register.php и скидывает кусок исходного кода
aid - это всего-лишь url параметр, который состоит из $validate_key. Теперь просим его узнать как создается validate_key
Теперь мы знаем из чего состоит validate_key то есть aid. Из функции makePassword() и time().
time — Возвращает текущую метку системного времени Unix, 10 символов. 10 лярдов комбинаций, чтобы подобрать это число... Уже можно понять, что aid бессмысленно брутфорсить. Чтобы узнать подробнее про функцию makePassword() отправимся в github
Делаем вывод, что секретный ключ не сбрутить. А GPT нам ускорил процесс поиска нужных функций в коде php.
Поиск POC/CVE через GPT
Если вам нужен более точный ответ, то лучше задавайте вопрос на английском.
Дальше можно легко перевести на русский язык. Чувствуете разницу?
На ютубе есть обзор
Я повторил и получилось найти скулю, получить название бд
Все версии <= 3.4.7 оказались уязвимыми.
Сохраняйте журналы/статьи делайте из них конспекты
Создавайте схемы с помощью GPT
Вывод
Это лишь некоторые примеры, которые должны вам помочь. Надеюсь вы что-то подчеркнули для себя
Специально для codeby.net
Автор: KnightPentest
GPT 4.0
Это очень полезная нейронка для пентестера. В этой статье я продемонстрирую, как ее можно использовать на периметре.
Анализируем исходники CMS
Наверное каждый из нас хоть раз пробовал взломать форум(во время ctf) на каком-нибудь популярном CMS(wordpress, joomla, etc.). Если нам доступны исходники форума/плагина/темы для форума, то мы можем их проанализировать и найти новую багу. Особенно, если движок непопулярный или плагин для форума, то вероятность крайне высокая, как минимум мы будем понимать есть ли смысл вообще пытаться подобрать уникальный ID или что-то в этом роде, иначе можно потерять кучу времени и уйти ни с чем. На самом деле я бы порекомендовал в первую очередь изучить движок форума vbulletion это максимально дырявый форум с огромной историей, есть кучу багов, которые находили комьюнити форума ачата. Даже максимально странные баги, когда пользователь мог зарегистрироваться от имени администратора, введя вместо буквы "a" условно Ⱥ из греческого алфавита/латинского(если я не ошибаюсь, т.к я помню, что удавалось зарегистрироваться под именем админа, но администрироваться нельзя было). Теперь перейдем к делу.
У меня для проведения пентеста есть форум на движке IP BOARD. Первое что я сделаю - это зарегистрируюсь...
Приходит подтверждение почты
Меня в первую очередь заинтересовала эта активация из-за текста в сообщении:
Так и намекает, чтобы мы проверили насколько это безопасно. В целом не очень хорошо, что ID пользователя всем подряд отображается, злоумышленники понимают уже, что более 30 тысяч юзеров есть в бд, т.к после каждой регистрации uid увеличивается на 1. Если юзеров много, то злоумышленник будет готов потратить больше времени на получения конфиденциальных данных (емейлов, паролей, документов). Первое, что сделал - это начал гуглить ip board скачать русификатор.Подтверждение регистрации производится один раз и необходимо для повышения безопасности форума и защиты его от злоумышленников.
После того, как были найдены исходники мне нужно было понять из чего формируется aid (секретный ключ, который необходим для подтверждения почты или сброса пароля). Если бы мы смогли его генерировать или подбирать, то смогли бы и захватить учетную запись администратора. В исходниках 100% есть строки в которых есть "aid" вот их и нужно найти. Воспользуемся утилитой grep.
Bash:
grep -rl "\baid\b" //media/sf_Telegram_Desktop/IP.Board.v3.4.5_Nulled_Rus
Bash:
output
//media/sf_Telegram_Desktop/IP.Board.v3.4.5_Nulled_Rus/upload/admin/api/forums/api_topic_view.php
//media/sf_Telegram_Desktop/IP.Board.v3.4.5_Nulled_Rus/upload/admin/applications/core/extensions/usercpForms.php
//media/sf_Telegram_Desktop/IP.Board.v3.4.5_Nulled_Rus/upload/admin/applications/core/modules_public/global/lostpass.php
//media/sf_Telegram_Desktop/IP.Board.v3.4.5_Nulled_Rus/upload/admin/applications/core/modules_public/global/register.php
//media/sf_Telegram_Desktop/IP.Board.v3.4.5_Nulled_Rus/upload/admin/applications/core/xml/core_mobile_templates.xml
//media/sf_Telegram_Desktop/IP.Board.v3.4.5_Nulled_Rus/upload/admin/applications/core/xml/core_root_templates.xml
//media/sf_Telegram_Desktop/IP.Board.v3.4.5_Nulled_Rus/upload/admin/applications/core/xml/core_xmlskin_templates.xml
//media/sf_Telegram_Desktop/IP.Board.v3.4.5_Nulled_Rus/upload/admin/applications/forums/modules_public/extras/stats.php
//media/sf_Telegram_Desktop/IP.Board.v3.4.5_Nulled_Rus/upload/admin/applications/forums/xml/forums_mobile_templates.xml
//media/sf_Telegram_Desktop/IP.Board.v3.4.5_Nulled_Rus/upload/admin/applications/forums/xml/forums_root_templates.xml
//media/sf_Telegram_Desktop/IP.Board.v3.4.5_Nulled_Rus/upload/admin/applications/forums/xml/forums_xmlskin_templates.xml
//media/sf_Telegram_Desktop/IP.Board.v3.4.5_Nulled_Rus/upload/admin/applications/members/sources/adminManage.php
//media/sf_Telegram_Desktop/IP.Board.v3.4.5_Nulled_Rus/upload/admin/setup/sources/base/setup.php
//media/sf_Telegram_Desktop/IP.Board.v3.4.5_Nulled_Rus/upload/ips_kernel/facebook-client/facebookapi_php5_restlib.php
//media/sf_Telegram_Desktop/IP.Board.v3.4.5_Nulled_Rus/upload/ips_kernel/sabre/Sabre/DAV/Directory.php
//media/sf_Telegram_Desktop/IP.Board.v3.4.5_Nulled_Rus/upload/ips_kernel/sabre/Sabre/DAV/File.php
//media/sf_Telegram_Desktop/IP.Board.v3.4.5_Nulled_Rus/upload/ips_kernel/sabre/Sabre/DAV/Node.php
Далее он ищет уже в файлах конкретно строки в которых есть "aid"
И он приходит к выводу, что aid создается через файл register.php и скидывает кусок исходного кода
aid - это всего-лишь url параметр, который состоит из $validate_key. Теперь просим его узнать как создается validate_key
PHP:
$validate_key = md5( IPSMember::makePassword() . time() );
time — Возвращает текущую метку системного времени Unix, 10 символов. 10 лярдов комбинаций, чтобы подобрать это число... Уже можно понять, что aid бессмысленно брутфорсить. Чтобы узнать подробнее про функцию makePassword() отправимся в github
Ссылка скрыта от гостей
тут исходный код функции.
PHP:
<?php
$key = md5( IPSMember::makePassword() . uniqid( mt_rand(), TRUE ) );
public static function makePassword() {
$pass = "";
$unique_id = uniqid( mt_rand(), TRUE );
$prefix = IPSMember::generatePasswordSalt();
$unique_id .= md5( $prefix );
usleep( mt_rand(15000,1000000) );
$new_uniqueid = uniqid( mt_rand(), TRUE );
$final_rand = md5( $unique_id . $new_uniqueid );
for ($i = 0; $i < 15; $i++) {
$pass .= $final_rand{ mt_rand(0, 31) };
}
return $pass;
}
Поиск POC/CVE через GPT
Если вам нужен более точный ответ, то лучше задавайте вопрос на английском.
Дальше можно легко перевести на русский язык. Чувствуете разницу?
На ютубе есть обзор
Я повторил и получилось найти скулю, получить название бд
Все версии <= 3.4.7 оказались уязвимыми.
Сохраняйте журналы/статьи делайте из них конспекты
Создавайте схемы с помощью GPT
Вывод
Это лишь некоторые примеры, которые должны вам помочь. Надеюсь вы что-то подчеркнули для себя
Вложения
Последнее редактирование: