Информационная безопасность
[RU] switch to
English Version



Дополнительная информация

  Переполнение буфера в aGsm (buffer overflow)

From:Dmitriy 'Dimetrius' Baranov <dimetrius_(at)_the-rdm.com>
Date:19 августа 2004 г.
Subject:Ошибка переполнения буффера в aGsm версии 2.35c и в последней developer-версии (beta)...

 Доброго времени суток!
Мною обнаружена ошибка переполнения буффера и вероятно возможность
удалённого
исполнения вредоносного кода в последних версиях aGsm. Заключается
она
в следующем:

При обработке ответа от Half-Life серверов, aGsm, как выяснилось,
не
проверяет длинну строки hostname, а копирует её в память сразу.
Хакер
может написать программу для фальсифицикации строки ответа от
сервера и используя уязвимость запустить произвольный код.

Технические подробности:

Написал серверное UDP-приложение на Perl'e, которое, ждёт
датаграммы
на порту 27015 (стандартный порт Half-Life сервера) и на запрос
\xFF\xFF\xFF\xFFinfo\x00 ответил следующей строкой:

Строка ответа, приводящая к переполнения aGsm версии 2.35c:
===
\xff\xff\xff\xffA\x00AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAA
(после нулевого байта идут 66 любых символов или shell-code больше
или
равынй 66 байтам)

\x - Указатель ввода шестнадцатеричного ASCII значения

Строка ответа, приводящая к переполнения aGsm версии 2.51c:
===
\xff\xff\xff\xffA\x00AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAA
(после нулевого байта идут 148 любых символов или shell-code
больше или
равынй 148 байтам)

\x - Указатель ввода шестнадцатеричного ASCII значения

Вероятно, что для успешного выполнения кода в версии 2.51с нужна
строка,
существенно большая чем 148 байт.

К письму прилагается два скриншота:

overflow.jpg - Скриншот возникновения ошибки при обработки строки
на
фоне Perl приложения.

debug.jpg - Скриншот переполнения в стандартном отладчике от Visual
Studio 6.0. В Стеке памяти около адреса ошибки виден кусок буффера
нашей строкой - AAAAA...A, записавшейся в память.

Также к письму прилагается perl скрипт демонстрирующий уязвимость.
не приложил к нему shellcode. Т.к. не очень разбираюсь в адресах
системных функций разных ОС (Kernel32.dll).

p.s. У меня WindowsXP Pro Corp Eng... Я не тестировал дыру под
другими
ОС.

===
e-mail : dimetrius@the-rdm.com
www : http://www.the-rdm.com
icq # 16782600

О сайте | Условия использования
© SecurityVulns, 3APA3A, Владимир Дубровин
Нижний Новгород

 
 



Rating@Mail.ru
test server