поиск 0day

Тема в разделе "WASM.RESEARCH", создана пользователем zerodawn, 19 июл 2018.

  1. zerodawn

    zerodawn Member

    Публикаций:
    0
    Регистрация:
    16 янв 2018
    Сообщения:
    94
    Привет, я вот ищу всякие зеродеи всякими дедовскими способами. Реверсить, реверсить и еще раз реверсить.
    Но это очень, очень долго и далеко не всегда результативно.

    Так вот вопрос, насмотревшись этих Trend-micro zeroday-intiative, google project zero и прочих, возникает вопрос, а какие инструменты они юзают для поиска дыр?

    Неужели только одни фаззеры? Или он там на стимуляторах сидят? Они находят зеродеи каждый месяц, порой от одного и того же человека.

    Как? Карл, как? Давайте делиться тут инструментами полезными для эксплойт-дев и поиска зеродеев.
     
    superakira и _edge нравится это.
  2. superakira

    superakira Guest

    Публикаций:
    0
    Мне кажется, что прям вот методы нету иначе бы они не были 0day. Те не берем задачу диффов обновлений, а прям тру 0дэй если.

    Например
    https://bugs.chromium.org/p/project-zero/issues/detail?id=1540

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

    Как мне кажется, это в сторону виндбг со своими плагинами, скриптами. Собирать например просто аномалию, чтобы схлопнуться в задаче до какого-то модуля/подсистемы/куска кода - но тут уже приходишь к задаче, что именно смотреть, непонятно)

    Ну это имхо.
     
  3. vx1d

    vx1d Member

    Публикаций:
    0
    Регистрация:
    13 дек 2016
    Сообщения:
    118
    надысь смотрел WinAFL https://github.com/ivanfratric/winafl
    нужно было функу в библиотеке профазить, написал свою прогу использующую эту библиотеку
    нафазил в своей проге сдесяток кандидатов
    начал тестить под отладчиком - ничего не подошло)
    а идея WinAFL мне понравилась - тупой coverage-guided fuzzing
     
  4. zerodawn

    zerodawn Member

    Публикаций:
    0
    Регистрация:
    16 янв 2018
    Сообщения:
    94
    Ок, допустим. А это тоже реверс?

    [​IMG]
     
  5. Indy_

    Indy_ Well-Known Member

    Публикаций:
    4
    Регистрация:
    29 апр 2011
    Сообщения:
    4.775
    zerodawn,

    > Как? Карл, как?

    Статистикой. Производители софта собирают инфу по крэшам. Если ось слетела сотни тысяч раз, они все эти дампы имеют и их анализят. Не статистические методы есть, к примеру на вм известные люди https://twitter.com/j00ru мониторили дереференс указателей(RC) для всей ОС, это дало кучу уязвимостей, авторы опубликовали конечно же лишь не значительную их часть. Это по части автоматики, но это промежуточное решение, так как это просто отслеживание асинхронных выборок визором, тоесть просто наблюдали за всеми потоками.
    Аналитического пути/решения нет. Я тоже потратил кучу времени на эту задачу, она тупиковая. В данный момент алгоритмически задача не резолвится.
     
  6. zerodawn

    zerodawn Member

    Публикаций:
    0
    Регистрация:
    16 янв 2018
    Сообщения:
    94
    Это разве не аналогично фаззингу? Смысл запускать операционку и ждать редких крашей? По-идее, надо ей что-то скормить в качестве входных данных?

    Ну, ок, допустим. А люди из Trendmicro как находят дыры? Им же производители вряд ли дают некий API к их краш-репортам?
     
  7. superakira

    superakira Guest

    Публикаций:
    0
    zerodawn, крашдампов у всех полно))) даже у них, я про трендмикро. но чето я соменваюсь, что прям это вот оно.

    кстати кто тебе мешает напрямую написать яну биру и спросить - смотрю на твой список 2014 и в шоке... колись как искал - автоматикой или головой) кстати тоже вариант, по крайне мере может ответят - либо да либо нет.
     
  8. Indy_

    Indy_ Well-Known Member

    Публикаций:
    4
    Регистрация:
    29 апр 2011
    Сообщения:
    4.775
    zerodawn,

    Кстате раньше я часто искал в гугле минидампы, таким путём можно добыть уязвимости.
     
  9. Indy_

    Indy_ Well-Known Member

    Публикаций:
    4
    Регистрация:
    29 апр 2011
    Сообщения:
    4.775
    zerodawn,

    > Это разве не аналогично фаззингу?

    Нет. Фаззинг это брут, бесконечная посылка рандом параметров. В случае же j00ru это чисто алгоритмический подход и видимо единственно возможный из тех, что возможно реализовать. Повторные выборки данных. Это просто обнаружить, но такого типа ошибки обычно почти всегда не приводят к смене мода, они позволяют лишь читать память ядра.
     
  10. Fail

    Fail Active Member

    Публикаций:
    0
    Регистрация:
    14 мар 2012
    Сообщения:
    503
    zerodawn, Клейн Т. - Дневник охотника за ошибками. Саттон М., Грин А., Амини П.-Fuzzing-Исследование уязвимостей методом грубой силы
     
  11. vx1d

    vx1d Member

    Публикаций:
    0
    Регистрация:
    13 дек 2016
    Сообщения:
    118
    это раньше было
    сейчас фазеры поумнее, например WinAFL - подает на вход мутированные данные из набора валидных и с помощью DinamoRIO наблюдает появление новых блоков кода (покрытие), если появился новый блок, AFL запоминает входные данные которые привели к увеличению покрытия и ставит их в очередь для мутации
     
  12. vx1d

    vx1d Member

    Публикаций:
    0
    Регистрация:
    13 дек 2016
    Сообщения:
    118
    морально устарела лет 5 назад а то и больше
     
  13. Indy_

    Indy_ Well-Known Member

    Публикаций:
    4
    Регистрация:
    29 апр 2011
    Сообщения:
    4.775
    vx1d,

    Не хочется давать название и оценку этому шедевру DinamoRIO, так как забанят. И про покрытие туда же.

    Если атакуемый обьект это ядерная функция, к коду которой доступа нет из за изоляции режимов, то ни о каком анализе через dbi речи быть не может. Так что не пишите чушь.
     
  14. vx1d

    vx1d Member

    Публикаций:
    0
    Регистрация:
    13 дек 2016
    Сообщения:
    118
    чем плох DinamoRIO, я не в курсе?

    да, с ядерными функциями проблема, как решение - перенести исследуемую функцию, где парсятся данные в юзермоду (поставить заглушки на функции внутри исследуемой) и фазить в юзермоде
     
  15. vx1d

    vx1d Member

    Публикаций:
    0
    Регистрация:
    13 дек 2016
    Сообщения:
    118
    ты меня на мысль навел - все краши которые нафазил, это были краши DinamoRIO)
     
    Indy_ нравится это.
  16. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.076
    тут стоит определиться с перечнем ошибок..

    1. переполнение буфера.
    2. погрешности округления плавающей запятой.
    3. переполнение целочисленной переменной.
    4. утечки озу.
    =====
    хмм.. список неполный, но суть в том, что тест строится либо на дизасме, либо на сырцах.
     
  17. _edge

    _edge Well-Known Member

    Публикаций:
    1
    Регистрация:
    29 окт 2004
    Сообщения:
    631
    Адрес:
    Russia
    Раз уж Убивец отметился, оставлю ссылку тоже, интересно ЧЕМ и КАК они такое делают, https://www.joesecurity.org/joe-sandbox-reports

    Там очень много всего, и я так понял, они что-то доселе неизведанное тоже пропускают через это "сито".
     
  18. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.076
    акь минимум это течь озу и автоматика такое вполне ловит.
     
  19. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.076
    а, вообще, делегация прав от привилегированного процесса к непривилегированному с точки зрения секуры должна полностью исключаться.
     
  20. betrayer

    betrayer Guest

    Публикаций:
    0
    Я когда-то читал одну книжку, про эксплойты (самое простое, типа как переполнение буфера происходит и все такое). Понял, что это не мое - общие вещи я понимаю, как и что, но что-то более сложное мне даже повторить непросто было бы, не то что самому исследовать. Надо, видимо, было начать изучать сискодинг лет так 20 назад + юзать какие-то эфедрины.