Показать сообщение отдельно

Ковыряем LIM-Talk
  #2  
Старый 09.04.2006, 19:45
Elekt
Banned
Регистрация: 05.12.2005
Сообщений: 982
Провел на форуме:
4839935

Репутация: 1202


Отправить сообщение для Elekt с помощью ICQ
По умолчанию Ковыряем LIM-Talk

Теперь приведу другой пример.

Один из пользователей в моей локалке написал аналог дмесса. Попроще конечно, но вроде как работает. Функций минимум: автоответ, история.
Софтинка прошла жёсткий тест на уязвимости.. и не зря!



========LIM-Talk_2005.03

Скачать LIM-Talk_2005.03
Простите, исходники мне так и не отдали, боялись

При тесте на бажность открылись интересные подробности.

Во входящем сообщении не проверялось имя компа-отправителя. Вообще.
Само собой при большой длине имени отправителя буфер переполняется и ланталк с ошибкой падает, что собственно можно использовать для выполнения произвольного кода. Талк запускается под учёткой пользователя, а это как правило в 90% случаев - Админ. Вобщем, хорошая такая дырочка.

Затем выяснились ещё вот какие интересные подробности.
Журнал реализован в папке "logs". Там храняться "ххх .txt" файлы, где "ххх" - имя отправителя.
При приёме сообщения лантал выводит на экран. При закрытии окна (именно при ЗАКРЫТИИ!) идёт проверка "имени отправителя" на уже имеющиёся лог-файл. Если такого отправителя небыло - создние файла "имя оправителя".txt и запись новых сообщений.

Так вот. Если имя отправителя содержит в себе символы, которые запрещены в названиях файлов - лог-файла не создастся. Ошибки при этом не вылетает - лог просто незаписывается, пропадает.
Так например:
Код:
"**HACKER**"
Дальше больше - если имя отправителя например вот такое:
Код:
"../../../../../../../../troyan"
(без кавычек!), то... в корневой директории диска, где находиться талк создастся "troyan.txt"
Ну, можно и вот так:
Код:
"../../../../../../../../WINDOWS\troyan"
Внимание! Создание файла происходит ПОСЛЕ закрытия окна сообщения. Не забудьте закрыть(ctrl+W).

Но *.txt расширение как-то не катит =]
Я угробил немало времени, пытаясь обойти расширение... и нашёл способ!
Х.з. почему, но если в конец имени поставить двоеточие, то расширение "*.txt" не создаётся.
Пробуем:
Код:
"troyan:"
. Создаётся файл "troyan" без расширения.
Пробуем:
Код:
"troyan.exe:"
... ГЫГЫГЫ Готово.

... к сожалению двоеточие не только рубит расширение. Оно отрезает всё сообщение после себя.
Таким образом мы можем создать в любом известном нам месте на диске жертвы:
- текстовый файл с заданным содержанием
- любой другой файл без содержания (0 байт объёма)


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

Т.е толка от инклуда почти никакого.
Однако, кое-что поганого всё же можно сделать
Если имя оправителя будет вот таким: "[пробел]:" или "[пробел][пробел]:" , где [пробел] - это и есть пробел ) :
Код:
("  :")
, тогда создастся файл лога с именем в два пробела. Стандартными средствами виндов файл с таким именем НЕЛЬЗЯ создать, и соответственно нельзя удалить.

Так же при открытии более 72 окон - работа талка опять же аварийно завершаеться. Можно просто послать 73 собщения от разных имён - и талк упадёт.
При тестировании выяснилось, что если имя отправителя ВООБЩЕ ПУСТОЕ, то талк при приёме каждого такого сообщения открывает окно и присваивает имени отправителя имя "ts[N]", где [N] - номер сообщения по порядку. Итак, послав 73 сообщения от пустого имени отправителя мы снова убиваем талк.


========LIM-Talk_2005.03

Скачать LIM-Talk_2005.11
Простите, исходники мне так и не отдали, боялись

Об багах 2005.03 версии было честно отписано автору. Он долго мучил себя и меня, разбираясь в сути проблем. Как бонус в новую версию ввёл добавление: фильтр мата... Эх

===================
Хочу сказать, что практически во всех болталках в автоответчике отсутствует проверка на совпадение имени получателя-отправителя. И как только возникает возмоность отправить мессагу от произвольного имени, становиться валидной атака на автоответчик - его зацикливание.
Если вы видите, что у жертвы включён автоответ - просто шлёте мессагу ему же от его же имени. Всё

Как вариант, можно провести атаку на зацикливание автогответа, если присутствует сразу два пользователя с включёнными автоответчиками.
Стравливаете их автоответчики между собой
====================


Это я к тому, что автор так не исправил в этом релизе данную багу, а так же багу с подменой русских букв.

А словарь имеет следующую багу. Если умудриться добавить в слов. запас строчку вида "[пробел][пробел],[пробел]":
Код:
"  , "
, то при приёме сообщения, содержащего где-либо два пробела подряд - талк зависает и умирает.
При строчке "[пробел],[пробел]" - талк дохнет от одного единственного пробела(но это уже слишком, кто ж им пользоваться тогда будет?).
Для надежности было бы не плохо воткнуть подвис на три пробела, но так к сожалению почему-то не катит.

========LIM-Talk_2005.03
Скачать LIM-Talk_v2_with_SMILES
Простите, исходники мне так и не отдали, боялись

Спустя некоторое время вышел ещё один релиз, держащий смайлы.

И тут не обошлось без приколов
При просмотре списков соответствия ("alt", "smiles") невольно обращаешь внимание на имена файлов. А что если и здесь инклуд?.. Точно!
Шлём сообщение, содержащее:
Код:
*../../../../WINDOWS/system32/setup:
хахаха) эта картинка есть в любой ХР, 2003. Возможно и в 2000.

При экспериментах всплыла ещё вот такая ошибка:
Код:
*:
Вываливаеться еррор.


========================

По данной методике можно расковырять практически ЛЮБОЙ талк. Главное - немного желания, удачи и мозгов.
Скоро напишу тестовый эксплоит к ним.

Всем удачи в происках!