Статьи Как стать ниндзей, От одних из лучших ресерчеров в мире

Discussion in 'Статьи' started by shell_c0de, 11 Mar 2016.

  1. shell_c0de

    shell_c0de Hack All World

    Joined:
    7 Jul 2009
    Messages:
    1,183
    Likes Received:
    618
    Reputations:
    690
    Предисловие переводчика
    VRT - это подразделение Sourcefire, которое занимается поиском зиродеев и написанием под них сигнатур для снорта. Довольно давно на их блоге была хорошая статья на тему с чего начать в эксплойтинге. Ниже будет её перевод. Она написана в довольно шутливом тоне и довольно легко читается, но это мой первый опыт в переводах (читать то читаю легко), так что за исправление косяков в тексте поблагадарю.

    -------------------

    How do I become a Ninja?

    Ранее мы опубликовали на блоге пост — Задайте вопрос VRT. Несколько человек написали нам и задали вопросы, относящиеся к Snort`у. Но далее случилось кое что интересное. Некто под ником mish спросил - «Как мне стать Ниндзей?» (Его вопрос был несколько длинее и конечно мы подразумеваем «Ниндзя - иследователь уязвимостей»).

    Мы задали этот вопрос нескольким людям из VRT и по видимому нажали на горячую кнопку нашего старшего директора группы исследования уязвимостей — Matt Watchinski. Далее следует его манифест в ответ на вопрос mish`а:

    1. Вам нужно переделать ваш образ мышления. Большинство людей видят компьютер и программы как инструменты для выполнения задач, которые встают перед ними изо дня в день. Если вы видите все вокруг как что-то необходимое для вашей работы, тогда вы никогда не увидите это как что-то, что можно поломать и использовать для своей выгоды. Лучший путь о котором я когда нибудь слышал, приводящим к этому - «Будьте злым».

    2. Чтение книг без попыток перевести информацию из них в практические знания не сделает из вас ниндзю. Только опыт делает ниндзю тем, чем он является. Сидение в библиотеке не даст ничего полезного. Как только вы исправите свой образ мышления на первый план выходят технические навыки.

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

    4. Возьмите себе старую RedHat без PAX/AppArmor/и тд, убедитесь, что рандомизация стека выключена и скачайте все уроки ABO`s from Gera ( http://community.corest.com/~gera/InsecureProgramming/ ). Начните работать над простыми примерами переполнения буфера. Если вы застряните — все ответы находятся в гугле (но не мошенничайте, оно того не стоит).

    5. После этого вы будете ненавидеть GDB. Настало время перейти к настоящему отладчику. Возьмите виртуалку с Windows XP (без сервис пака) или с Windows 2000 с любым сервис паком (к слову, VMWare — великая вещь). Начните работать с AWBO (http://www.snort.org/vrt/tools/awbo.html ). Там будет все, вплоть до эксплуатации уязвимости через seh на Windows. Никто не ожидает, что после завершения изучения этих примеров вы станете мастером в эксплойтах, но все базовые вещи должны быть освоены. Дополнительно, к этому моменту вы наверное прочтете все документы по теме переполнений, которые можно найти через гугл. Также вы должны уже свободно владеть WinDbg, OllyDbg или ImmunityDebugger (WinDbg круче) и к сожалению GDB, худшим отладчиком на планете.

    6. Теперь пришло время попробовать немного code auditing. Простейший путь — провести аудит на предмет известных уязвимостей. Лучший пример работы этого типа здесь http://xorl.wordpress.com/category/bugs/ . Начните делать точно то, что делает этот парень. Также пришло время скачать C99 стандарт и прочитать его. Также неплохо скачать мануалы интела. После аудита нескольких сотен программ вы будете относительно фамильярны с паттернами Си и других языков, которые приводят к ошибкам. На самом деле весь code audit заключается в поиске паттернов, тк реальное программное обеспечение очень большое и способность быстро находить опасные шаблоны очень важна, так как позволяет вам пропустить тонны говно кода и сфокусироваться только на интересных кусках.

    7. Теперь наступило время начать использовать другие инструменты. По моему мнению лучшее с чего можно начать это фаззеры, чтото типа FileFuzz от iDefense (http://packetstormsecurity.org/files/39626/FileFuzz.zip.html ). Также посмотрите на Sully и Peach. Запустите кучу виртуальных машин с различными программами и фаззьте их в фонновом режиме, пока изучаете другие вещи. В конце концов вы возненавидите эти инструменты так сильно, что у вас появится идея переписать их с нуля. Поддайтесь этой идее и начните писать простейший файловый фаззер. Но учитесь ненавидеть Sully/Peach и работать с ними одновременно, так как написание подобного инструмента с нуля займет кучу времени и вы забудете много всего написать по пути. Однако вы можете полюбить питон в процессе, правда не уверен хорошо это или плохо =).

    8. Надеюсь к этому моменту вы получили несколько падений от своих фаззеров. Пришло время начать читать RFC, документацию на протоколы, форматы файлов и всего прочего, что имеет отношение к падению. Также это время купить IDA Pro (прим. переводчика — или скачать =)). Работайте над созданием надежного тест кейза (при. переводчика — минимально необходимого и надежного триггера падения) для вашего падения, чтобы точно понять, что происходит. Это искусство и нет более надежного способа обучится этому, чем отладка бинарных приложений без исходников, но это требует кучи проб и ошибок. В этот момент вы встанете над пропастью алкоголизма, так как будете биться головой о проблемы, которые не можете понять и из-за этого прикладываться к бутылке, чтобы унять боль. Настало время найти поддержку, не для алкоголизма, но для вашей проблемы. Алкоголизм — это нормально (не совсем). Если вы действительно хороши в эксплойтах, вам нужен алкоголь, чтобы прожить день, так как вы понимаете, что каждый инструмент и приложение, которое ты запускаешь содержит громадное количество уязвимостей, которые можно использовать, чтобы поиметь компьютер. Также если в процессе обучения вы писали себе инструменты вы найдете в них ошибки, так как большинство ниндзь в процессе обучения — хреновые кодеры (иногда настоящие ниндзя продолжают быть хреновыми кодерами) (заметка редактора — точнее они все хреновые кодеры).

    9. Как только вы получите свой первый работающий зиро дей, вам нужно изобрести победный танец. Это важно, так как он будет использоваться в будущем, чтобы показать друзьям, что вы получили новый зиро дей. Хотя это и смотрится глупо это очень важно, так как теперь вы алкоголик и вам надо уметь быстро отпраздновать ваши достижения без прикладывания лишний раз к бутылке и не претуплять тем самым ваши боевые навыки.

    10. Теперь у вас есть выбор. Вы имеете навыки, которые стоят денег. Вы можете начать самостоятельно продавать эксплойты или впечатлить какого-нибудь работодателя с помощью резюме, полного раскрытых уязвимостей. Но это не урок о бизнесе, это манифест о том как стать ниндзей.

    11. Если вы выбрали путь работы на кого-то, то у вас есть возможность для специализации. Это хорошо, так как вам будет нужно писать новые тулзы и разрабатывать новые техники если вы выберите направление где нет публично доступной информации. К примеру возьмем реверсинг приложений под vxWorks. Ничего полезного об этом нигде нет. Прости, Matasano, но твой единственный пост в блоге на эту тему не считается и возможно нарушает что-то в DMCA, так что я не могу дать ссылку на него здесь.

    После прочтения этой статьи у вас в мозгу наверное появилась мысль — «Это не то, о чем я спрашивал, я спрашивал о конкретных шагах, книгах и статьях». К сожалению ничего из того, что вы прочтете не сделает никогда из вас того, кем вы хотите быть. Только холодный, тяжелый практический опыт может сделать это. Вы не увидите этого, пока не начнете этим заниматься и каждое новое приключение будет открывать новую информацию и идеи, которые были скрыты пока вы в них не нуждались. Вы действительно должны любить этот процесс. Если вы входите в ресторан и видите компьютер с меню на нем и вашей первой мыслью будет не потрогать все его кнопки и посмотреть сломается ли он, значит вы не любите все это.

    Оригинал : http://vrt-blog.snort.org/2009/07/how-do-i-become-ninja.html
    Перевод : higaru
    P.S скомуздено отсюда https://damagelab.org/index.php?showtopic=22554&hl=%ED%E8%ED%E4%E7%FF
     
    _________________________
    CyberTro1n, carartem02, atata and 5 others like this.
  2. failman242

    failman242 New Member

    Joined:
    25 Mar 2016
    Messages:
    1
    Likes Received:
    0
    Reputations:
    0
    Интересно... Я только начал изучать мир, а тут на...
     
  3. Richmounth

    Richmounth Member

    Joined:
    3 Mar 2016
    Messages:
    100
    Likes Received:
    52
    Reputations:
    1
    А что на? Статья да, может и наводит на путь - но поменять мышление не получится, это чересчур, зачем я это написал хз, нинзя с меня никакой))
     
  4. soraklet

    soraklet New Member

    Joined:
    18 Oct 2016
    Messages:
    1
    Likes Received:
    0
    Reputations:
    0
    линки в статье не раблотают !! почему ?!