Взаимодействие OllyDBG и браузеров

Discussion in 'Реверсинг' started by zero_day, 5 Dec 2012.

  1. zero_day

    zero_day New Member

    Joined:
    9 Nov 2012
    Messages:
    56
    Likes Received:
    1
    Reputations:
    0
    Хочу протестировать эксплоит (файл html с уязвимостью) для браузера по средствам OllyDBG. Как мне запустить связку эксплоит и браузер и просмотреть в OllyDBG момент падения браузера?
     
  2. herfleisch

    herfleisch Elder - Старейшина

    Joined:
    7 Jan 2009
    Messages:
    578
    Likes Received:
    203
    Reputations:
    13
    Уязвимость-то наверное не в HTML-файле, а в бразуере?
     
  3. zero_day

    zero_day New Member

    Joined:
    9 Nov 2012
    Messages:
    56
    Likes Received:
    1
    Reputations:
    0
    Естественно, HTML-файл просто ее эксплуатирует.
     
  4. SVAROG

    SVAROG Elder - Старейшина

    Joined:
    13 Feb 2007
    Messages:
    424
    Likes Received:
    86
    Reputations:
    -1
    http://www.xakep.ru/magazine/xa/135/068/1.asp
    http://www.xakep.ru/post/54073/
     
  5. Forte

    Forte Elder - Старейшина

    Joined:
    27 Sep 2010
    Messages:
    53
    Likes Received:
    24
    Reputations:
    32
    только через iexplore.exe
     
  6. RoksHD

    RoksHD New Member

    Joined:
    28 May 2012
    Messages:
    36
    Likes Received:
    3
    Reputations:
    2
    С чего Вы взяли что он хочет разобраться с уязвимостью под Internet Explorer? Он такого не писал...
     
  7. ourcode

    ourcode New Member

    Joined:
    2 Feb 2013
    Messages:
    21
    Likes Received:
    4
    Reputations:
    5
    1. Запусти браузер без уязвимости, отключи предварительно все лишнее, все лишние плагины, которых нет в дефолтной конфиуграции, так будет проще.

    Скорее всего тебе придется обойти ряд исключений, вызывающихся при старте, для этого Ctrl + (F7 + F8+F9).

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


    2. Если это уязвимость хоть, как-то описана, старайся максимально близко поставить breakpoint

    F2
    Harware execution / access

    3. У OllyDBG есть определенные проблемы с потоками, поэтому рекомендую использовать hardware breakpoint

    Рассмотрим абстрактный случай, допустим есть переполнение в функции alert(); javascript

    Абстрактный пример эксплойта:
    Code:
    <script language='javascript'>
    alert('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA');
    </script>
    
    4. Устанавливаешь breakpoint на функцию alert() в библиотеке интерпретирующий javascript

    5. Открываешь страницу в браузере, содержащую эксплойт, срабатывает
    breakpoint дальше по шагово уже отлаживаешь.

    6. Если успех и сработает переполнение, то регистр EIP заменится на число состаящее из 4-х байтов, ASCII символов AAAA, а именно EIP = 0x41414141
     
  8. ourcode

    ourcode New Member

    Joined:
    2 Feb 2013
    Messages:
    21
    Likes Received:
    4
    Reputations:
    5
    Второй вариант отладки эксплойтов и проверки на уязвимости.

    1. в коде эксплойта делаешь "якорь"

    Пример эксплойта с "якорем"

    Code:
    
    <script language=javascript>
    function test()
    {
    var anchor = 'anchor123';
    
    alert('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA...');
    }
    </script>
    <input type='button' onclick='test();' value='test' />
    
    
    2. После запуска браузера под отладчиком и открытия страницы с эксплойтом, ищешь в памяти процесса "якорь", текст "anchor123" ставишь на обращение к этой памяти hardware breakpoint

    3. Запускаешь проверку уязвимости, кликом по кнопке test

    4. После срабатывания эксплойта пошагово отлаживаешь до нужной тебе функции, уязвимого метода


    P.S. попробуй сначала поотлаживать следующие примеры разработанные самим, на любом из языков программирования, хотя удобнее будет на С или ASM отлаживать проще.

    1. отладка исключения
    2. примеры переполнения буфера и стэка

    P.S.2 эксперименты лучше проводить на довольно старых системах и старых браузерах Win XP + IE6 для начала, т.к. современные браузеры имеют различные защиты от переполнений