Shatter после SP4 \ 2

Тема в разделе "WASM.RESEARCH", создана пользователем xenomorph, 25 фев 2005.

  1. xenomorph

    xenomorph New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2005
    Сообщения:
    16
    Адрес:
    Это не важно, на сегодня у мен
    Привет всем!



    Я тут новичок и в АЗМ-е я как свинья в помидорах ...



    Хотелось бв попросить чтоб Гуры по реверсированию \

    Винды это прочли и высказали своё ИМХО.



    Но может кому-нить покажеться интересТным, и может кто помогёт?



    Проблема:



    Shatter. Поднятие привилегий локально на НТ \ ХР.

    Статей на эту тему было много ... все до которых я дотянулся я прочитал. 8)



    Смысл в двух словах:



    1. Ищем окно работающее под nt_system etc.

    2. Забрасываем в заголовок окна шеллкод.

    (SetWindowTextW + шеллкод - для этого не надо иметь НИКАКИХ привилегий)

    3. Посылаем окну WM_TIMER с адресом возврата на шеллкод.

    4. Шеллкод выполняеться с правами окна.



    Я собственно накатал программу автоматизирующую данный процесс.



    1. Определяем адреса WInExec \ ExitProcess.

    2. Формируем листинг.

    3. Авто-Компилируем (NASM) + убиваем нули ...

    4. Читаем в буффер + добавляем 10 Кб nop-ов.

    5. Находим окно + Забрасываем в заголовок окна шеллкод.

    6. Брутфорсим посылая WM_TIMER увеличивая параметр

    (адрес приземления на НОП-ы на 5к (т.е. 1/2 от шеллкода)

    Рискуем попасть на системкраш ... Но это работает!

    7. Код выполняеться. 8).



    Теперь собственно проблема:



    Начиная с Сервис паков SP NT4.0 6а \ w2kSP 4.0 \ XP 2.0 \ 1.0 (вроде тоже).

    Это не работает.

    (До - работает на "ура" 8). На блокноте в частности ...)



    WM_TIMER проходит - не 0, но прыжка нету 8-(. Шеллкод не выполняетсья.



    Гипотезы и размышления.



    1. WM_TIMER обязан работать. Или приложения поздыхают (?).

    2. По-умолчанию оконная процедура должна его обрабатывать (?).



    Мой друг по-моеё просьбе это дело исследовал ...

    и пришёл к выводу что прохождение WM_TIMER-а зависит

    от второго параметра - к. должен соответствовать ID таймера ...

    ... я пасс ...



    ВОПРОС: может ли кто проверить КАКИМ ОБРАЗОМ реализована защита в этих

    сервис паках? Возможно ли это, или я где-то неправ? Прав ли мой друг?

    Если да - возможен ли брутфорс подбора ID Таймера?



    В принципе - если я прав (что маловероятно) - то это local_xploit 8).



    Помогите пожалуйста!

    Заранее огромное спасибо!
     
  2. bogrus

    bogrus Active Member

    Публикаций:
    0
    Регистрация:
    24 окт 2003
    Сообщения:
    1.338
    Адрес:
    ukraine




    Скорее всего, что винда перед вызовом TIMERPROC (address of timer procedure) проверяет, создавала ли программа этот самый таймер (SetTimer), а блокнот имхо не обязан его создавать (раньше видимо не проверяла)
     
  3. bogrus

    bogrus Active Member

    Публикаций:
    0
    Регистрация:
    24 окт 2003
    Сообщения:
    1.338
    Адрес:
    ukraine
    Даж более того, ядро проверяет совпадает ли address of timer procedure с тем, который был указан в SetTimer, т.ч. не судьба :)