Местный
08.05.2024, 00:28
Приветствую! Раз объявили конкурс статей, то почему бы не поучаствовать.
Специально для античат
Автор: KnightPentest
GPT 4.0
Это очень полезная нейронка для пентестера. В этой статье я продемонстрирую, как ее можно использовать на периметре.
https://forum.antichat.xyz/attachments/4934600/1715095934054.png
Анализируем исходники CMS
Наверное каждый из нас хоть раз пробовал взломать форум(во время ctf) на каком-нибудь популярном CMS(wordpress, joomla, etc.). Если нам доступны исходники форума/плагина/темы для форума, то мы можем их проанализировать и найти новую багу. Особенно, если движок непопулярный или плагин для форума, то вероятность крайне высокая, как минимум мы будем понимать есть ли смысл вообще пытаться подобрать уникальный ID или что-то в этом роде, иначе можно потерять кучу времени и уйти ни с чем. На самом деле я бы порекомендовал в первую очередь изучить движок форума vbulletion это максимально дырявый форум с огромной историей, есть кучу багов, которые находили комьюнити форума ачата. Даже максимально странные баги, когда пользователь мог зарегистрироваться от имени администратора, введя вместо буквы "a" условно Ⱥ из греческого алфавита/латинского(если я не ошибаюсь, т.к я помню, что удавалось зарегистрироваться под именем админа, но администрироваться нельзя было). Теперь перейдем к делу.
У меня для проведения пентеста есть форум на движке IP BOARD. Первое что я сделаю - это зарегистрируюсь...
https://forum.antichat.xyz/attachments/4934600/1715098726684.png
Приходит подтверждение почты
https://forum.antichat.xyz/attachments/4934600/1715099190396.png
Меня в первую очередь заинтересовала эта активация из-за текста в сообщении:
Подтверждение регистрации производится один раз и необходимо для повышения безопасности форума и защиты его от злоумышленников.
Так и намекает, чтобы мы проверили насколько это безопасно. В целом не очень хорошо, что ID пользователя всем подряд отображается, злоумышленники понимают уже, что более 30 тысяч юзеров есть в бд, т.к после каждой регистрации uid увеличивается на 1. Если юзеров много, то злоумышленник будет готов потратить больше времени на получения конфиденциальных данных (емейлов, паролей, документов). Первое, что сделал - это начал гуглить ip board скачать русификатор.
https://forum.antichat.xyz/attachments/4934600/1715099498342.png
После того, как были найдены исходники мне нужно было понять из чего формируется aid (секретный ключ, который необходим для подтверждения почты или сброса пароля). Если бы мы смогли его генерировать или подбирать, то смогли бы и захватить учетную запись администратора. В исходниках 100% есть строки в которых есть "aid" вот их и нужно найти. Воспользуемся утилитой grep.
Bash:
grep
-rl
"\baid\b"
//media/sf_Telegram_Desktop/IP.Board.v3.4.5_Nulled_Rus
Получаем output в каких файлах есть "aid"
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
На глаз уже видно, что исходники скорее всего лежат в /upload/admin/applications/core/modules_public/global/register.php или /upload/admin/applications/members/sources/adminManage.php но т.к мы не владеем php передадим все это дело в консольного GPT. Пусть он проанализирует и скажет как формирутеся aid.
https://forum.antichat.xyz/attachments/4934600/1715100043038.png
Далее он ищет уже в файлах конкретно строки в которых есть "aid"
https://forum.antichat.xyz/attachments/4934600/1715100087908.png
И он приходит к выводу, что aid создается через файл register.php и скидывает кусок исходного кода
https://forum.antichat.xyz/attachments/4934600/1715100185244.png
aid - это всего-лишь url параметр, который состоит из $validate_key. Теперь просим его узнать как создается validate_key
https://forum.antichat.xyz/attachments/4934600/1715100349250.png
PHP:
$validate_key
=
md5
(
IPSMember
:
:
makePassword
(
)
.
time
(
)
)
;
Теперь мы знаем из чего состоит validate_key то есть aid. Из функции makePassword() и time().
time — Возвращает текущую метку системного времени Unix, 10 символов. 10 лярдов комбинаций, чтобы подобрать это число... Уже можно понять, что aid бессмысленно брутфорсить. Чтобы узнать подробнее про функцию makePassword() отправимся в github
ipb.php тут исходный код функции.
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;
}
Делаем вывод, что секретный ключ не сбрутить. А GPT нам ускорил процесс поиска нужных функций в коде php.
Поиск POC/CVE через GPT
https://forum.antichat.xyz/attachments/4934600/1715101950126.png
Если вам нужен более точный ответ, то лучше задавайте вопрос на английском.
https://forum.antichat.xyz/attachments/4934600/1715102115440.png
Дальше можно легко перевести на русский язык. Чувствуете разницу?
https://forum.antichat.xyz/attachments/4934600/1715102410652.png
На ютубе есть обзор
Я повторил и получилось найти скулю, получить название бд
https://forum.antichat.xyz/attachments/4934600/1715102595321.png
Все версии <= 3.4.7 оказались уязвимыми.
https://forum.antichat.xyz/attachments/4934600/1715102880330.png
Сохраняйте журналы/статьи делайте из них конспекты
https://forum.antichat.xyz/attachments/4934600/1715111449405.png
https://forum.antichat.xyz/attachments/4934600/1715111481898.png
Создавайте схемы с помощью GPT
https://forum.antichat.xyz/attachments/4934600/1715112208873.png
https://forum.antichat.xyz/attachments/4934600/1715112476216.png
https://forum.antichat.xyz/attachments/4934600/1715112694204.png
https://forum.antichat.xyz/attachments/4934600/1715113331904.png
Вывод
Это лишь некоторые примеры, которые должны вам помочь. Надеюсь вы что-то подчеркнули для себя
Специально для античат
Автор: KnightPentest
GPT 4.0
Это очень полезная нейронка для пентестера. В этой статье я продемонстрирую, как ее можно использовать на периметре.
https://forum.antichat.xyz/attachments/4934600/1715095934054.png
Анализируем исходники CMS
Наверное каждый из нас хоть раз пробовал взломать форум(во время ctf) на каком-нибудь популярном CMS(wordpress, joomla, etc.). Если нам доступны исходники форума/плагина/темы для форума, то мы можем их проанализировать и найти новую багу. Особенно, если движок непопулярный или плагин для форума, то вероятность крайне высокая, как минимум мы будем понимать есть ли смысл вообще пытаться подобрать уникальный ID или что-то в этом роде, иначе можно потерять кучу времени и уйти ни с чем. На самом деле я бы порекомендовал в первую очередь изучить движок форума vbulletion это максимально дырявый форум с огромной историей, есть кучу багов, которые находили комьюнити форума ачата. Даже максимально странные баги, когда пользователь мог зарегистрироваться от имени администратора, введя вместо буквы "a" условно Ⱥ из греческого алфавита/латинского(если я не ошибаюсь, т.к я помню, что удавалось зарегистрироваться под именем админа, но администрироваться нельзя было). Теперь перейдем к делу.
У меня для проведения пентеста есть форум на движке IP BOARD. Первое что я сделаю - это зарегистрируюсь...
https://forum.antichat.xyz/attachments/4934600/1715098726684.png
Приходит подтверждение почты
https://forum.antichat.xyz/attachments/4934600/1715099190396.png
Меня в первую очередь заинтересовала эта активация из-за текста в сообщении:
Подтверждение регистрации производится один раз и необходимо для повышения безопасности форума и защиты его от злоумышленников.
Так и намекает, чтобы мы проверили насколько это безопасно. В целом не очень хорошо, что ID пользователя всем подряд отображается, злоумышленники понимают уже, что более 30 тысяч юзеров есть в бд, т.к после каждой регистрации uid увеличивается на 1. Если юзеров много, то злоумышленник будет готов потратить больше времени на получения конфиденциальных данных (емейлов, паролей, документов). Первое, что сделал - это начал гуглить ip board скачать русификатор.
https://forum.antichat.xyz/attachments/4934600/1715099498342.png
После того, как были найдены исходники мне нужно было понять из чего формируется aid (секретный ключ, который необходим для подтверждения почты или сброса пароля). Если бы мы смогли его генерировать или подбирать, то смогли бы и захватить учетную запись администратора. В исходниках 100% есть строки в которых есть "aid" вот их и нужно найти. Воспользуемся утилитой grep.
Bash:
grep
-rl
"\baid\b"
//media/sf_Telegram_Desktop/IP.Board.v3.4.5_Nulled_Rus
Получаем output в каких файлах есть "aid"
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
На глаз уже видно, что исходники скорее всего лежат в /upload/admin/applications/core/modules_public/global/register.php или /upload/admin/applications/members/sources/adminManage.php но т.к мы не владеем php передадим все это дело в консольного GPT. Пусть он проанализирует и скажет как формирутеся aid.
https://forum.antichat.xyz/attachments/4934600/1715100043038.png
Далее он ищет уже в файлах конкретно строки в которых есть "aid"
https://forum.antichat.xyz/attachments/4934600/1715100087908.png
И он приходит к выводу, что aid создается через файл register.php и скидывает кусок исходного кода
https://forum.antichat.xyz/attachments/4934600/1715100185244.png
aid - это всего-лишь url параметр, который состоит из $validate_key. Теперь просим его узнать как создается validate_key
https://forum.antichat.xyz/attachments/4934600/1715100349250.png
PHP:
$validate_key
=
md5
(
IPSMember
:
:
makePassword
(
)
.
time
(
)
)
;
Теперь мы знаем из чего состоит validate_key то есть aid. Из функции makePassword() и time().
time — Возвращает текущую метку системного времени Unix, 10 символов. 10 лярдов комбинаций, чтобы подобрать это число... Уже можно понять, что aid бессмысленно брутфорсить. Чтобы узнать подробнее про функцию makePassword() отправимся в github
ipb.php тут исходный код функции.
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;
}
Делаем вывод, что секретный ключ не сбрутить. А GPT нам ускорил процесс поиска нужных функций в коде php.
Поиск POC/CVE через GPT
https://forum.antichat.xyz/attachments/4934600/1715101950126.png
Если вам нужен более точный ответ, то лучше задавайте вопрос на английском.
https://forum.antichat.xyz/attachments/4934600/1715102115440.png
Дальше можно легко перевести на русский язык. Чувствуете разницу?
https://forum.antichat.xyz/attachments/4934600/1715102410652.png
На ютубе есть обзор
Я повторил и получилось найти скулю, получить название бд
https://forum.antichat.xyz/attachments/4934600/1715102595321.png
Все версии <= 3.4.7 оказались уязвимыми.
https://forum.antichat.xyz/attachments/4934600/1715102880330.png
Сохраняйте журналы/статьи делайте из них конспекты
https://forum.antichat.xyz/attachments/4934600/1715111449405.png
https://forum.antichat.xyz/attachments/4934600/1715111481898.png
Создавайте схемы с помощью GPT
https://forum.antichat.xyz/attachments/4934600/1715112208873.png
https://forum.antichat.xyz/attachments/4934600/1715112476216.png
https://forum.antichat.xyz/attachments/4934600/1715112694204.png
https://forum.antichat.xyz/attachments/4934600/1715113331904.png
Вывод
Это лишь некоторые примеры, которые должны вам помочь. Надеюсь вы что-то подчеркнули для себя