Новичку полезно

  • А знаете ли вы что?

    - каждый уважающий себя хакер использует связку из VPN+Socket?


Ораторство ShellCoder'a

Теги: эксплойт, exploit development, shellcod, шелл-код
Intro
 
Доброго времени суток посетители  портала rudvs ;) Решил написать статью для новичков, которые хотят научиться писать свои эксплойты. Сразу скажу, что статья расщитана только для новичков и собственно ничего нового в ней не будет. Причина по которой я решил написать эту статью, есть! И эта причина заключается в том, что сложность написания эксплойтов растет, как и цены на них. Поэтому в настоящее время наблюдается дифицит рабочей силы, на момент написания статьи тренды киберпреступников сосредоточены на социальной инженерии, вредоносном программном обеспечении и поиске критических уязвимостей. К чему я это клоню? Дело все в том, что двигателем ИБ-бизнеса являются эксплойты. Моду на них еще не кто не отменял, и не отменят лет еще сто. Если раньше можно было с легкостью разработать свой эксплойт, найдя в какой нибудь программе ошибку переполнения буфера и перезаписав адресное пространство шелл-код выполнится на ура. То сейчас нам мешают различные защитные механизмы, которые внедряются разработчиками программного обеспечения. Как быть? Исследователи научились обходить различного рода защиты, такие как DEP, ASLR, NX bit, так называемую песочницу, эмуляторы кода и прочие системы виртуализации. Например DEP\ASLR мы обходим техникой ROP (Return Oriented Programming), но парни из компании четырех-цветной эмблемы придумали целый ряд защит, которые противостоит ROP-эксплойтам. Эти защитные технологии были внедрены в ОС Windows 8. Название этих защитных технологии userland heap, kernel heap, kernel-mode и их тоже научились обходить, подробнее тут http://securitylab.ru/analytics/439784.php Кстате у техники ROP есть аналогия под названием JOP - Jump Oriented Programming, тот же ROP, только для передачи управления используется регистр (JMP reg), а не слово из стека при RETN. Так же появился новый виток развития эксплойтов - аппаратные эксплойты! Но поиск ошибок в железе - это экзотика, которая не всем доступна, как по уровню знаний, так и по корману ;) Уязвимости в железе можно разделить на два подкласса - псевдоаппаратные и аппаратные. Псевдоаппаратные уязвимости - они эксплуатируют ошибку не в самом оборудовании, а в прошивке, драйвере, CRM (системе управления, которая может быть представлена в виде веб-панели, SSH, Telnet или другого протокола передачи информации и управления). Многие их выдают за аппаратные, но на самом деле они являются псевдоаппаратными!!! Так, как аппаратные уязвимости - это уязвимости, связанные с проектированием аппаратных схем. Например на exploit-db, 1337day в разделе hardware лежат херово-туча псевдоаппаратных уязвимостей. Кстате основным преимуществом эксплойтов, заточенных на хардварные уязвимости,является возможность трансформации вектора эксплуатации с локального (local2remote) на удаленный (remote2local) и наоборот, что открывает новые горизонты. Теперь мне бы хотелось не много поговорить о программе найди уязвимость - получи бабло. Что творится на этом рынке, вообще не пойму, наши отечественные ресерчеры, багхантеры и шеллкодеры работают на запад и продают свои исследования вроде ZDI (http://zerodayinitiative.com/). Какого черта? Нельзя, чтоли организовать в Росси подобную программу? Я хуй знает, например компания Яндекспредоставила нам такую возможность, но уязвимости надо искать в их сервисах, что не много смущает, Яндекс заботится о собственной безопасности, а не безопасности в целом. Почти в каждой стране есть такие программы, но нет конкурента у ZDI. Что нас привлекает, что мы работаем на них? Думаю конкурс pwn20wn на который нас приглашают, если мы нашли хуеву-тучу уязвимостей или же, то, что оплачиваются путевки на Defcon, Blackhat плюс перелет и регистрация, запись на курсы. Нет ребят так дело не пойдет! Я дал вам идею, пора бы ее воплатить. Например техническая хакерская конференция Defcon, есть и у нас. Название ей ZeroNights, она не чуть не уступает дефкону. Мы так же можем организовать свою программу вроде ZDI, организовать поездки на наши отечественные конфы и сделать тот же конкурс pwn20wn, а не работать на запад! Ладно поживем увидем! Теперь о черном рынке... Не удивлюсь, если станут продавать не просто эксплойты, а специальные руби модули под Metasploit, оформленные ввиде пака для наступательной безопасности и шпионажа. Жизнь сразу облегчится, подумайте... Картина была бы такая, например: мы заходим на подпольный хакерский форум и видим сообщение: продаю нульдей модули для наступательной безопасности под Metasploit/ Круче продавать не один эксплойт, а пачку оформленных в виде руби модулей под Мetasploit. Поэтому жду тенденций в этом направлении. Теперь вернемся к новичкам, которые хотят научится писать эксплойты. На данный момент всех статей и литературы по данной теме не хватает. С уверенностью могу сказать, что 35% информации уже устарело!!! Тобишь не актуальная инфа... Поэтому я активно всех призываю к написанию мануалов и статей etc. Тренинги бы тоже не помешали бы. И так мое вступление подошло к концу, пора перейти к делу!
 
Я в шелл-кодеры пойду, пусть меня научат...
 
Сразу скажу, чтоб научиться писать свои эксплойты надо уметь программировать. Поэтому, если вы не знаете не один язык программирования или вообще не умеете программировать, то вам прийдется потратить какое-то время и потом вернутся к этому занятию уже со знаниями. Начинать лутше всего с Паскаля, он даст вам фундаментательные основы, для понимания всех других языков программирования и вы с легкостью поймете синтаксис любого другого языка программирования. Да и запомните: основой программистской грамотности является развитое алгоритмическое мышление. Не надо сразу лезть в Google и искать там учебник по Паскалю, я дам вам отличный учебник, который по суте предназначен по специальностям 2202 >, 2203 >. В этом учебнике вы изучите Pascal, C\C++ ;) Получается вы изучите сразу три языка программирования. Ну на паскале мы не чего писать не будем, он даст нам фундамент, а вот С\С++ мы будем использовать для разработки эксплойтов! И так ваша задача открыть сайт Google и вбить там вот этот номер книги: ISBN 5-7695-1904-5. Удачного вам изучения и чтения ;) Да чуть не забыл для эксплойтов нужно знать ассемблер, и тут я вам тоже помогу, одна из лутших книг по изучению ассемблера является от автора Олега Калашникова "Ассемблер - это просто. Учимся программировать" , ее номер: ISBN 978-5-9775-0591-8. Кстате эта книга признана лутшей по изучению ассемблера журналом ][akep. Эти две книги вам помогут научится разрабатывать свои эксплойты. Возможно вам прийдется еще изучить такие языки программирования как Python и JavaScript. Но тех двух книг будет достаточно для того, чтобы написать свои первые эксплойты. И так шаг за шагом преодолевая трудности вы дойдете до статуса Exploit Developer ;)
 
The END
 
В этой статье я прежде всего хотел вас наставить на путь истенный и думаю у меня все получилось. Наверно у вас появился вопрос где взять мануал по разработке эксплойтов, после того как вы изучите паскаль, с\с++, ассемблер. Я вам скажу этот мануал я в скором времени выкину на наш форум в него будут входить такие темы как:
 
* Stack Overflows (in both Linux and Windows)
* Heap Overflows (in both Linux and Windows)
* Integer Overflows
* Exploits on Mac OS X
* Abusing Structured Exception Handlers on Windows
* Abusing Vectored Exception Handlers on Windows
* Browser Exploits
* PDF Exploits
* Exploits on Mac OS X
* Defeating DEP using Ret2LibC
* Introduction to Return Oriented Programming
* ROP gadgets and stack flips
* ROP shellcode loaders
* Practical ROP Exploits
* Bypassing ASLR on Windows 7
* Kernel Exploitation
* JIT Spraying
* Advanced Browser Exploits
* Advanced PDF Exploits
 
Каждую из тем мы подробно рассмотрим и изучим. В конце каждой темы мы будем делать лабораторную работу в стиле Capture-The-Flag Round. Где все желающие смогут проверить свои знания в деле ;) Вот и все мое ораторство подошло к концу, желаю всем удачи и терпения, кто решил зяняться разработкой эксплойтов!

Добавить комментарий


Обновить