Запис от събитие

OWASP Sofia October 2025 Meetup @ Scalefocus

Кадърът е от сървъра на YouTube. Самият плейър — и всичко, което той зарежда — идва едва след като пуснете видеото.

Описание

It is time for our 2025 October meetup that was hosted by Scalefocus

The Meetup event can be found here: https://www.meetup.com/owasp-sofia-chapter/events/311301646/

Chapter page: https://owasp.org/www-chapter-sofia/

Agenda:

- "AWS Security services and cloud compliances" by Ivica Micev
- "It's not DNS. There's no way it's DNS. It was DNS." by Presian Yankulov
- "Introduction to binary exploitation" by Simeon Nguen

Описанието е на OWASP Sofia Chapter.

Препис

Автоматичен препис — може да съдържа грешки — сверявайте с видеото, преди да цитирате. Изтеглен през Supadata от субтитрите на YouTube.

Клик върху времето пуска видеото от този момент.

↗Здравейте, аз съм Мивица от Скопие. Тая презентация ще е на английски, зато що не искам да има това TikTok видеа как македонец говори български.

↗Да. Добре. Аа днес ще говорим Няма да скучна ви бъде моята презентация. Аа а може би не. зато що по-скоро нали аisionме makeрите трябва да я чуят тая презентация, а и нали инженерите, за да им помогнат на decision makйрите как да станат compliant. Така. Let's English. Окей.

↗Окей.

Покажи целия препис — още 136 абзаца (~13 246 думи)

↗Да. Оке. А you can see the topic today. Fast truck to readiness. How how there's no fast track but it's a fancy name.

↗I am Ивица from Скопие. Senior security enging manager focus working at focus years more than years experience more than7 years in the field I started as a system administrator and I have a troubles with that compliance auditors every year and that's why I

↗Yes.

↗Any anyone system admin background here?

↗Just one. Окей. timeertiflect

↗documlecting collecting

↗some bear some pizza for the auditor just to do like and after after after after after launching the cloud the cloud business public cloud the cloud providers made that happen to have continuous compliance that is the point how to be continuous compliant if some auditor come tomorrow at your office and check if are you compliant you need

↗auditor the shift is basically not to be a checkp and to be

↗looking back what happen last year and how is the state of the system today just that operational work need to be automated basically the cloud cloud vendors made that happen not just AWS I believe other other cloud vendors have this this features and and management services

↗basically integrating

↗daily work security part of the daily operations not to be compliant need to be compliant in front of auditors but most important system to be generally secure

↗services AWS the benefits are obvious your security and compli to part of daily daily operations manual work of

↗As I said, compliance is continuous not a checkpoint. How to shift to continuous compliance? Nowadays compliance has involved from static audits to a dynamic continuous readiness model. that can be happen basically with automation and integration of services reduce manual work AWS foundational security best practices ensures mandatory security basel for compliance I was checking yesterday that best practices back last year couple of years one page of documentation now the scroll really really big best practice each service how to be how to be secure and compliant and interesting thing is that each chapter foundational practices reference which compliance

↗compro

↗foster compliance systems

↗foundational security best practices

↗Did you ever see this this table before? This is really important when architect compliant system understand

↗in

↗CL is dead the cloud let's imagine that you need to make in your data center. You will be on the market years after after decision to be compliant hip. SH responsibility model orang certified

↗responsible security of the cloud inside regions availabil hardware compute storage database physical physical access everything which is happening of the cloud and the customer we are responsible for upper layers basically client data encryption server s encryption network traffic protection and customer operating systemation

↗the orange

↗blue part

↗can be can be compliant and secure if we are using that foundational security best practices of AWS.

↗So additional security best practices coule of slides mandatory security flat

↗establish mandatory security baseline for all as resour ensuring consistent protection and encryption encryption encryption continuous monitoring is the second second important thing you

↗FSBP framework but if not monitoring some IT guy need to access from home and click and open 22 port and yeah you not compli continuous monitoring uring

↗security and compurity

↗controls control security contctation

↗compu adopor

↗processory

↗requir

↗So as I said continuous monitoring and central security management basically security hub security hub is a management service of AWS which take about every security measures that be taken central posture management run compcks and aggregating security real time in real time infrastructure there your application is constantly monitored any security security findings this withs config interesting part is any configuration

↗providing configuration audit auditor office trct in also cloud trail logs whoever used aws before knows that any user activities is locked there and keep or somewh

↗basically it's evidence of user actions when your audit auditor comes to your office to check and AWS audit manager complies data from services from lot of services into audit ready reports you don't need to write that reports you have already if you set up correctly for compliance and monitoring for example I need to be compliant for HIPA I don't know and I used foundation foundational security best practices framework and use this AWS config security c security hub cloud trail logs audit manager I am already

↗Basically this can be can be achieved with control tower when you prepare stocks correctly at the beginning and we control tower we can automate governance to ensure compliance from the account creation with the control tower

↗account vending machine for that application this and use this and security measures you can make it the very beginning

↗service control polic also block high risk action like disabling cloud trail to maintain security ok there is a devs engineer who thinks that cloud trail should be disabled at this the very first moment there will be alarm some wants to disable cloud trail. So it's service control policies can be used for blocking such actions from the users. AS set cloud formation tax set deploy standardized resource tax for loging and im roles not just this service control polic but custom roles can be created and deployed

↗Окей,

↗basically said before security hub we can achieve this function for exus monitoring monitor our infrastructure what is the value proposition finding us evidence of contr audit manager makes automated evidence collection each evident can be collected and sublimed in one document and AWS artifact basically provides a proof of audit ready assessments for example for that if you remember of our table

↗endlect all docum

↗comport for the auditor

↗so basically the last comp overlap overlapping controls like foundational security best practices simple acheving multiple certification so there is overlapping rules for exo и хипа и така и andра.

↗So this

↗the beginning when the auditor last year to my office and spent one week with giving him pizza and beer and accumulating stress if I comp this must be changed. divide in foures the first setup basically security hub and activate FSBP standards it's a solid foundation for security and compliance of your your system you need to lock down your architecture protect from drifts Because if you implement cloud formation templates infrastructures are called everything goes automated but your admin needs access to one server and goes to the console and click click drift must be must be tracked automation integration audit manager cloud trail security hub already mention services

↗for avoiding comp risk of complicks compliance drifts

↗ja

↗a long term and call to action make automation

↗set you can forgot about operational spending operational on this basically you just need to monitor А

↗я use the integrated compliance tools. Most of services that are mentioned here are free for for usage. I think that audit manager has some pin for collecting that documents and plan your pill project try and

↗auditor

↗discussion

↗Я плитаме

↗мач да >> може и на български сега >> може >> приключим моята официална част. Така, това наистина е много добро решение за избягване на така наречения death by compliance, когато трябва три месеца да се подготвяш зодията и не правиш нищо друго. >> Да, >> но аз имам и малко по може би философски или по-общ въпрос. Анса не е ли до някакъв момент също и нож 2та и как това да се обясни също на мениджм защото compliance не означава securриity носа дава securриity не означава че е securриity но прави enйблмент на secюриity >> а как може да се продължи да се надгражда и това ми е въпрос защото има един вид не знам дали го знаеш дето един фермер си имал крава там в един отборх >> и дошъл данъчен и вика трябва да видя какво има в отбор Ра не може, не мога да влизате там. Как не мога бе? Я виж тука имам значка. Аз съм представител на >> хубаво. И отива той отваря вратата

↗отвътрели забика и почва да го гони. Помощ, помощ, покажи му значката. Да, да, да. Като дойдат >> как, как да убедиш мениджмента, ако ако мениджментът има critical application, което му носи пари и ще трябва да е compant в Европа или в България, е ще му дойде тоя аудитор и мора да е compliantт. >> Мисълта ми е примерно F5, които сега четем за тях, новините те са comp. >> Да, да, добре, >> нос кода им е някъде другаде. То той вече е балканския синдром. Нещодаче покажи му сертификат. Имам да обаче не говорим за сертификата да му покажим на него. Просто а генерирането на тия документи от самия cloud ти дава тая валидация дека не е само изпринтан сертификат. >> Тоест, че да не е просто не е просто хартия. >> Благодаря. >> Моля. въпроси.

↗Много са. >> Благодарим.

↗>> А, здрасти. Аз първо също искам да ви благодаря, нали, както и хората преди мене, за това, че сте дошли, защото наистина аа много е хубаво, когато се случват а нали някакви неща в отделни фирми, организации и така нататък. Много още по-хубаво е като се съберем и си обменим житейски опит, нали, ноухау и така нататък. Та да не да не протакам. Аз съм пресявам. С някои от вас се познаваме, с други не. Аа от колко? Айде, повече от половината ми живот съм вече в IT сектора, като съм почнал от такъв дниър бейби администратор мрежов. После синиър ме направиха за един ден, защото всички други напуснаха. То така човек се издига в кариерата, нали, като напусна другите и те тебе те щеш, не щеш, ти си А та от едно известно време, вече 10 години, както лети времето, съм в cyбер секюрити сектора. Пак почнах, в смисъл все още съмнелист, тоест не мога да кажа, че съм повече офенсив или

↗defensive. Малко повече ми е работата в defensive, но имам интереси навсякъде. В тези две компании работя, а обичам Уиски, Dota и така. Друго нещо интересно не мога да кажа. А сега гледаме попита откъде идва ей това заглавие на моята презентация. Както казах, това е едно известно хайко, нали? Това е произведение на нали литературно, ако не се чете назад. Значи това е мисълта, която протича във всеки един от нас, когато има проблем в мрежата. Особено такива, нали, хора с мрежо бекграунд, когато казватне е DNS, няма начин да е DNS. Просто е беше DNS-ъ, нали. То това е идеята. Аа защо предложих тоя толк? Аа станаха едни събития това лято, които провокираха едни такива мисли в мене пак да се върна към нещо толкова. Хората като се сетят за DNS, а да му обяснявам какво е DNS. Колко от вас не знаят какво е DNS? Ето, виждате? Всички знаят DNS какво е, защото е фундаментално,

↗а нали то общо взето аа няма как, ще видим. Няма как да има интернет без DNS, но общо взето се случват едни неща по света, които са ей такива аа нали Аминтаб и спира интернета и всички сме шаш и паника, особено тия зависимите от социалните мрежи, но почват кво става? Жена ми свърши светът. Викамне, спокойно, няма интернет. Та то даже не е няма интернет. Интернет си има. Помните ли тия две събития? Едното е сега супер скорошно в началото на септември. А, получих много такива обаждания. Тука паднаха рутерите, суичове, няма мрежа, атакуват нидоси, не знам си кво, нали. Аз проверявам. В крайна сметка се оказа проблем при Google, нали, при повечето хора, даже некосвено се оказа проблемът при Google, особено тези, които не бяха клиенти на на БТК, на Vivacom, при тях всичко си беше наред, но който използваше тогава и резолвърите на Google, четирите осмици и той си

↗мислеше, че няма интернет. То интернет си имаше, трябваше да си смени resolвъра, а cloud flayър, през които минава може би 1/3 от трафика вече в интернет, също им падна аа публичен резолвър, четирите единици, който аз лично слагам навсякъде, нали, и тогава като нямаш DNS не работи. Сега аз винаги като идва някоя млада надежда при нас да търси убежище, нали, работа и така нататък, а почвам да си го питам някакви работи. Абе ти разбираш ли от мрежи? Да бе, как? Аз съм завършил CCNA. Викам супер, нали? А DNS на кой леър от този модел или там ти си пиа пистака и почва цяло една мисловна дейност, което е хубаво, нали, не ти отговаря да на трети леър, нали? Та на кой леър е DNS-ъ? На седми леър. Той е аликейшън. Сега моля ли да се сетите за друг аликейшън в интернет, който ако го няма, няма да има интернет аликейшъна. Може ли да се сетите? Аз поне мислех, мислех, не, не го измислих.

↗Та затова е хубаво да знаем какво се случва с DNS-а. Сега какво ще ви кажа днес тая вечер? Набързо, защото а както му споделих на Тошко, като взех да си правя преди няколко дни, така си мисля от известно време какво ще говоря, какво ще презентирам и като събрах една книга, викам тука нали цял семестър мога да изкарам за DNS. Аз чак се изумих колко неща не знам около DNS, като взех да проучвам, защото наистина не съм задълбал досега от и пък да съм научил нещо, решил съм си казуса и съм го нали забравил. Въпросът е, че а нали не съм не съм го запомнил. А, да. Та история на DNS- малко анатомия, нали, ще правим такъв една тривия ще ви направя. Как се абьюз DNS, нали, малко offensive и как се защитава DNS с defensive частта. А някой друг да му е страст така мрежите и DNS? Никой. А, ей там. Добре, супер. Ако имате нещо да допълвате, казвайте, ако нещо не сте съгласни, защото пак темата

↗е доста обширна и така нататък. Та history of DNS сега и като почваш сега викам чакай да видя спецификацията. Аз обичам да чета спецификации и документации откакто си изглобих шкафовете от Икия наобратно и ходих да връщам вратичките. Оли само викат тапанар вика то наобратно вратичките са си наред. То оттогава си чета инструкциите. Аа RфC-та ми RFC-та да искате в смисъл за DNS. Ей това е кратка история в началото на DS. откъде почва от началото на RPET и така нататък, как е имало идеята да има една централизирана хостфайл, който ще го поддържа определена а там групировка и така нататък, нали. Тука в по-ново време имаме един таймлайн, който също е доста, понеже аз винаги като обяснявам на някой иска да почне с cyбер secюриity, нали, винаги му казваме добре, ама айде малко IT опит, малко мрежи. Мрежите са лесни. Викам, откакто са се родили, нали, примерно BGP

↗протокол откакто е измислен, има две-три неща много вив около него. Викам, мрежите са относително статични, нали, лесно се учат, пък като ги научиш, няма проблем. Да, ама DNS- като видите какво става тука последните десетина години, е леле майко, нали? Той се развива много аа много бързо се развива с уеб технологиите и всички челинджи, които имаме с челинджи. Добре, всички препятствия и неудобства, които имаме със секюритито, защото както и при мене преди мен казаха, интернет е измислен да вървят котки и картинки върху него, а не да е secкюър. Така, само ще си спра да ми се върти телефона, че пообяснявам. Така. Някой разпознава ли тази някой ще каже нали драсканица, този портрет, да кажем? Някой разпознава ли този човек? За съжаление вече не е сред нас, но този човек се казва Дан Камински и е светил в в тази област на Cyбер Secкюрити. Почина преди няколко години, за съжаление. Та той

↗преди време открива нещо много интересно, свързано с DNS. А може да абюз кеша. Прочетете наистина прочетете. Има едно видео. Няма сега да имам а звук. То е 5-ше минути е. Аз ще го дам като линк. Но идеята е следната. Другият, който е на телефона с него, се казва Пол Викси. Прочетете и за него. Той се обажда на Пол Викси и му казва: "Беч, открих ей такъв експлойт как да се представя за всеки един autority сървър, DNS authority сървър." И Пол Вик си го прекъсва и той му обяснява накратко за какво става въпрос. Пол Вик си му казва, "Повече никога не споделя това, което ми каза по некрипирана телефонна връзка и качва всички, да го кажем, BigТЕК компании на самолет за централата в Microsoft, за да оправят проблема с DNS-а. Много е интересен казусат, но това е най-близкото, до което сме били, дойбера апокалипсис, нали? Ако някой с лоши намерения бил набарал това преди дан Камински, ще щяло

↗да стане много лошо. А така. А приключихме с историята. Както казах, тя е обширна. Няма какво да ви занимавам. Сега малко триви и анатомия на DNS-а. Всички знаем, нали, как изглежда, какво е DNS. Сега ще го кажа накратко. Телефонната книга в интернет, нали, телефонния указател. Имена ги превръща в IP-а адреси. Имената са човешко четими и лесно разпознаваеми, запомнящи са. Може да боравим с тях, нали, в текстов вид. IP-адресите са числа, от които разбират компютри, рутери и така нататък. Та докъде се простират тия имена? Някой може ли да предположи колко колко голямо може да е това име по спецификация? >> 250 >> Да, близо сме. Ето тука има тривията 253 като изключим байта терминиращия за стринга и че последния лейбъл няма точка, нали? Ефективната дължина на hostname- може да е 253 символа. рактъра. Аа аз на CTF имаше доста интересен, може би сме го играли с

↗някои от вас, имаше много интересен челиндж, където реално решението беше да крафтнем с с някакъв tools python там с капи трябва да крафтнеш някакъв по-голям аа налинейм, който да е извън спецификацията, да го пратиш и естествено нали някакъв overflow се получаваше в DNA сървъра и той ти изплюваше влага, нали, но общо взето това е нещо фундаментално, което не Всеки, нали, аз ако не го бях играл тоя CTF, щях да кажами до безкрай може би са тия неща. Също и ТХТ записите, TXT записите. Ето тука нали е сметката от chatт GPT, защото chatт GPT, както казахме, всеки келеш с интернет вече може да се възползва от него. Така. Та това е нещо интересно, важно, което нали аа като обща култура е хубаво да се знае. Сега какво има, понеже говорим за анатомията на DNS, какво има вътре в самия DNS като а флагове, нали? Това е една диаграма, какво има по нали като полета? А

↗няма смисъл сега да ви занимавам с тези работи. Аа тази картинка не съм я правил аз. Аа тя е от А сега ще ви кажа за един друг готин случай. А от едно, да го кажем такова интернет списание, ще ви кажа кое е. Има и много интересен сайт, който след малко ще ви го покажа. Добре. А другото важно има някакви такиваниганс, дето им викат на английски, не знам дали са на българския също около DNS. Този проблем и аз съм се сблъсквал с него и просто съм го оставил да отлежи и той се оправя, дето се вика, докато не научих, че това наистина става въпрос за негатив кешинг. Какво значи това нещо? И то е от ТTL в негативке е от соната. Тоест не всеки път може да го контролираме ние, ако не са ни авторити в DNS сървърите. След малко ще поговорим за йерархията в Интер в DNS. Та каква е идеята? Тука има хора разработчици, пък дори и да не са, трябва искат да си вдигнат някакво ново

↗приложение, сайт и така нататък и нали в така в еуфорията да да го подкарат да поработи. мога да изпратя DNS заявка, докато преди преди да има дори а запис от своя компютър и това ще отиде да доритив сървъра за съответния домейн, ще попита имаш ли запис за тоя нали за тоя host name, то ще каже Nхмейн, нямаме такъв домейн, нали, нямаме такова записано и компютърът ще го кешира като несъществуващ. След малко викаш е вярно бе, чакай да го нали да го да си добавя записа, защото нали не работи. Добавяш го, то пак не работи, защото в кеша ти седи негативния отговор, първичният негативен отговор и той изтича след а това, което е записано в солата на на DNA зоната, което също е доста интересно, нали. И ако не го знаеш, се чудиш: "Абе това сега що не работи, нали? Та ето това е списанието. То е в нали в този стил е разписано. Може да си го намерите, дето се вика, като скрийншоти и като картинки в

↗навсякъде в интернет. Ако го искате като PDF от страницата на Дулия Evнс има поне още 15 такива списания, които аз лично ползвам като чийчис за баш, за Linux команди и така нататък. Какво друго имаме, ако искате да си поиграете с анатомията и това как работи DNS в реалния живот? Въпросната същия Длинс е направил един, а, да го кажем, playground сайт, в който вие може да си записвате всякакви записи, нали, аа и да си експериментирате с тях. Meso DNS много е готин. И също ето на този германски инженер, който нали немските имена малко трудно се произнася, даже няма да се опитвам. А също има една страница, която има всякакви, нали, да ги кажем, хатута и всякакви ресурси, с които може да проучите как работи DNS всеки и така нататък. В смисъл неща, които пак казвам, ако задълбаем вся сега, нали, ще откараме до до утре, така че няма да да задълбавам. Аз на Тошко му казах в началото: "Обичам

↗така нещата да са one онлайн. Първо човек да му провокирам интереса и той сам да почне да си рисърчва, нали, нещата, поне за такива а приятни събития като това. А сега нещо много интересно, нали знаете, че DNS или може би не знаете, сега ще ви кажа. DNS е йерархична структура. Тоест има, когато направите едно просто Сега ще ви покажа, само ще го оставя за секунда, нали, какво имам предвид по йерархична. Примерно ще направим треace на blog2.com, нали? Това е заявка, DNS заявка с пуснат trace. Това си го представете като представете си го като trace root, нали, какъвто сте пускали към IP и към домейн. Обаче за DNS заявка. Първата стъпка е да питаме а така наречените root сървъри, които са 13 на брой, нали, такова кофти число 13 на брой. Тези сървъри в тях държат а в тях се съдържа информация за така наречените топлевъл домейни. Накъде да се пратят? Към топлевъл домейните се

↗пращат, нали, заявката се препраща към съответните отговорни топ левел домейни. Те препращат заявката съответно към аа съответните ауторитивни, тоест там, където е записана, където вече има записа еди сихо h хост name към кой IP адрес и вече получаваме нали това, което ни трябва. А тоест къде да посетим сайта. Та да се върнем на ето тези 13 root сървъра. Те къде са? Те не са 13 физически най-вероятно те са много повече, но като IP адреси, като хостнеемове, те са 13 и са разпределени ей така по света. И сега аз вчера оня ден като подготвях тая презентация и гледам Пакистан, викам много интересна страна да си избираш да е root сървър. Не, не, не знам там как е геополитическата установка. Просто ми звучи интересно, нали там реално примерно с liner как може по-надеж да проверим къде са IP-тата? Аа DNSХ,

↗нали? Аа че няма мишка. Първата част е, Не знам дали се вижда. Първата част е точка. Това значи зоната. Единствените записи са там са root сървърите. Искаме а нали сървърите short и да видим къде се намират. И реално това ще ми върне а IP адресите, нали? А къде се намират? Имаме в Токио, в Коледж парк Мерилен и така нататък. Наистина в Исламад Пакистан поне това е IP. Интересното, нали, сега в днешно време аз много се дразня на

↗много се дразня на така наречените ncast рутинги и така нататък, където всъщност IP-то като database gло location може да е някъде другаде официално, но заради тези CDN и всичко, което ползваме да направим интернет по-бърз и по-мощен, да го кажем. Реално нали се сещате, че Пакистан няма как да ни е на трихопа, още повече на В смисъл малко спекулативно е къде са тези DNA сървъри, но аз ако съм извънземен и реша да нападам земята, ще ги търся тия. Казвам ви го, нали? С цел да да съборя целия всички комуникационни канали. Добре така. Някакви въпроси, ако искате сега, ако искате после в сета в Q&A, както прецените. Сега за осив DNS може би Симеон е по-веж от мене там Киро и тойшън тестър и той. Аз не съм човекът, който може да говори за офенсив, но знам как се абюз DNS, нали виждате това. Даже не се пробвайте да го запаметите. Въпросът е, че има атаки към

↗а нали регистра, към DNA сървъри, към каквото се сетите. Примерно някой Има ли такъв белбрат като мене и Тошкото да помни 2016 година, лето 2016 Miray Botnet. Mir Botnet на някой говори ли му нещо? Охохохохо. Аа, събориха един от най-големите DDNS провайдъри в света. Аа а именно Din DNS. Мирай го събори и настана наистина интересно. Redit падна, Twitter падна, Spotify, каквото се сетите, нали, загина, защото, пак казвам, много от услугите а са били използвали, нали виждате колко е опасно. Както казах в началото, всички ползваме Cloud Flayer, всички ползваме Google. Те не са идеални. Те дори някой някой път това последното на Google, те така и не казаха какво е. То си беше някакво тяхно хараки бяха направили. Така че както и да е. А сега как може да се абюз също от така наречените National State Actors, APT-тата, нали това са нали хакерите на държавите.

↗Има един много интересен подход Fastfкс, където всъщност много динамично, много бързо се сменят записите и много трудно да блокираш и да установиш откъде идва атаката и заплахата. Прочетете го, ако ви е интересно. DNS ребайдинг атаки. Нещо много отвратително, което реално с а не с малко, с много креативност всъщност може неща, които са казани, че са само за local host, ти да ги прескочиш и да от нали от външния свят все едно, че си на local host и така да ги а експлоатираш. Малън DNS, последното, което четох и видях беше доста интересно. шестенсетичния, нали, в смисъл банерито налода на маура беше записано в шестентичен вид в тхта записите. Колко там десетина хиляди тъхта записа, защото всеки а нали пак казах всеки тъхта запис може да е а 253 чарактера. Аа в смисъл може да си сглобиш байри от DNS заявки. Има ги, нали, може да се използва също за DNS, за information

↗exfiltration. Тоест, ако някой реши да ви краде данните от корпоративната среда тайно и не сте си секюрнали DNS-а, може да използва DNS така, че да ги изнесе незабелязано. Не му трябва HTP, не му трябва FTPSH и така нататък. А microtic любимата ми тема и съм се сблъсквал с много такива ситуации, в които микротик е конфигуриран дефолтно без firewall. Когато му пуснеш той да е DNS сървър, той става open resкурсив за целия интернет. А виждал съм и хакнати микротици по такъв начин, че DNA заявките ти си мислиш, че питаш Google, обаче ти връща някое айранско IP и така нататък. В смисъл самият микротик беше хакнат. Не съм се занимавал какъв е малъ и как е бил хакнат, защото ми бяха експлознати всичките уинбоксове и админски панели навън слаби пароли. Все тая. Аа нещо подобно на това, което Данка Мински е бил открил, ето тази атака Toдоor. За щастие пак е открита от групачали, нали,

↗чисто с добронамерена цел, но е нещо пак също доста важно. Така че DNS, както виждате, върти интернет, но се абюзват доста сериозно и това е само час. Аз съм отдраскал само час. Това са заглавия от нали като изключим един DNS, защото това ми това ми светна от първия път. Тези другите са от 2025 и то относително скоро. Някой знае ли или не знае ли my to attack table? Там има малко записи, особено в recнеance и в коя беше втората фаза? Помагайте. Developing capabilities там resources developing resources. Голяма част от атаките, особено това примерно, което казахме за F5 F F F5, които казва:"Абе нас ни хакна, нали, много сериозен хакер National State, а ние не сме го забелязали. Не вярваме в 5 да нямат secкюрити и така нататък. Това, което най-вероятно е станало, аа нали атакуващите са или са абюзли вече легитимни услуги, което е най-вероятно, или са си вдигнали тяхна чисто нова

↗инфраструктура с нови домейни, нови DNS и сървъри. Тоест никой трети трет и интелиellлинс в света не не е знаел, че това е заплаха, нали, която ако я видиш да те атакува и така нататък. А нали тука мисълта ми е, че DNS участва във всяка една стъпка от атакчейна. Не, добре. Почти всяка една стъпка. DNS small but effective control system. Това също е много да не губя време. Аа като ви дам презентацията, върху всяка картинка, ако я цъкнете, а ще ви отвори аа ще ви отвори ресурса, от който съм черпил, нали, вдъхновение. Реално виждате тука има Cбал Strike, Sлиivвъръ и така нататък. Това са все известни, популярни коман контрол платформи, които имат възможност да правят ексфилтрация и и нали и самата бийкънинга чрез DNS и ще видите защо го правят, защото е стелти. След малко ще говоря как се защитава DNS в много малко компании за съжаление наистина обръщат внимание,

↗поне в тези, които аз съм си имал работа. Сега видяхме дотук все лоши неща може да се използва DNS, нали? Нищо хубаво свързано с тоя апликейшън. All Дайте да видим какво може да правим с Allже да направим така наречения DNS dъumst diйвиing. Нали знаете поговорката каквото нали се качи в интернет, остава в интернет. Не може да бъде изтрито. Също е с DNA записите. А има компании, които за съжаление примерно има една, която се казваше паot pasв или passive тоt, както и да, аз използвах много точно за такъв дъмстр дайвинг. Имаха, нали, за безплатен акаунт. Можеше да влезеш да си видиш исторически тоя DNA запис към как се е променял във времето, нали, към какви IP адреси е а сочил. Това е много интересно, както за защитаващи, така и за атакуващи. Тая компания, която ви я казвам, те я купиха Microsoft и я направиха, нали, част от тяхното портфолио и вече не може да си я позволи човек. А

↗та идеята е само да видя тука ли ми е картинката и къде беше. Добре, има един сайт, не знам на коя картинка, която е, който се казва DNS History. Аа също така ето това DNSdumster.com. Ако ви е интересно, отворете, може да проверите. Аз за какво го ползвам това, когато правя някакъв, да кажем, беic secюриity assessм или нещо ей така да се заигра някой, той ми каз имам cloud flare тука, лафове и така нататък, нали, защитен ми е уеб уеб приложението. Аз викам добре, даже няма да го пипам, нали, чисто пасивно е идеята на на ота без да сканираш адреси, без да сканираш домейни. Мен ме интересува този домейн, който сега в момента е защитен с Cloud Fayer, преди да е заминал към Cloud Flare, той къде са му били записите. Това може лесно да се провери, нали, с такива услуги. И много често мрежовите администратори подпускат една много важна особено за Cloud Layer.

↗Трябва да има access лист, който казва това приложение, дето си го публикувал през Cloudfare, трафикът, който трябва да обслужва да идва само от Cloudfare. Повярвайте ми, нерядко съм я виждал, съм го виждал тоя пропуск и какво става. Сега, ако набараш старото IP, което е реално на това приложение, което се е скрило зад cloud layer и си напишеш, нали, в хосфайла, ти ефективно заобиколяваш cloud и всичките рестрикции, наложени там и защити. Това се ползва, пак казвам, в ТХТ записи и във всякакви такива по-екзотични може човек да разбере в дадена компания, дори без да я пипа, нали, да разбере къде, нали, през хикс записи може да разбере къде ѝ е пощата, може да разбере какви тър парти услуги, знаете, има там селфс форсове, всякакви такива, които ти казва:"Абе, направи си тоя запис DNS-а, нали?" И човек си прави записа в DNS-а, ама това е публично достъпно. И сега всяко едно такова

↗парченце, парченце от пъзела на човек, който е заинтересован за secюрити стака на тая компания и тя как работи, може да ползва DNS, така че да си попълни липсващите парчета от нали от пъзела и плана за примерно за атака или защита. Сега друго, което може да се направи с All и DNS е да се направи така наречения трейдхънтинг. Нали ви казах, че атакуващите обичат така да си вдигат нови сървъри, да ползват екзотични домейни, да ползват така наречения DJA. DJA е съкратено от Domain Generation алгоритъм. Там на база слънчево ли е днес, кефи ли те, нали, дали Левски и ЦСКА играят и така нататък, да си създаде домейн nameй, нали. Всичко това оставя в следа. Всичко това има някакъв патърн и могат да се ползват DNA записите за проследяване на инфраструктурата на такива хакерски групировки, нали, когато се прави тейкдау на ботнетове и така нататък. Общо взето,

↗когато се билдва кейс, нали, примерно от SIS-а, NISA, FBI, Interpol и така нататък. Знаете, малко трудно е да регистрираш, да си регистрира собствен домейн в някои регистрали, нали, и хостинг компании, защото ти искат да ти докажат кой си, за какво си и така нататък. Има случаи не малко, където нали атакуващият е в толкова стелжим, нали, че никой не може да атрибютне атаката откъде идва, докато не откриеш, че той се е регистрира в доме със собствения имейл, нали? Има такива реални случаи. А, ето тука още един такъв пример. Статиите, пак казвам, заслужават си четенето и така да си пък, който не се е занимавал примерно с трейдхънтинг, да види колко е интересно чрез DNS. Добре, как сме с времето, че не следил? Добре, имаме още малко. Така. А, по принцип покарам по-спокойно, но да не спим тука. А, минаваме към defensive. За offensive това бяха нещата, които исках да обърна

↗внимание, нали, за defensive. DNS е свързан на вид с неща, които ние не осъзнаваме, че са свързани с DNS. Едно такова нещо е LMNR, другото е Netbills и MDNS. Тия неща са измислени, за да работят нещата поименно, когато няма нейм сървър, особено локалната мрежа, активна директория и така нататък. Много ги обичаме ние атакуващите, а пък защитаващите много ги мразим аа когато ги срещнем, защото те позволяват супер лесно да се направи спуфинг вътре. Симон мога да кажа, смисъл в примерно в една активна директория и общо взето примерно аз като отида в една организация и ако видя такова нещо, първата ми работа е да да се преборя да спрем Еламенр, защото реално в днешно време не се използва. То е онаследено. Това е почти всички случаи е унаследено, но е много опасно. Аа така. Каква е разликата, нали? Общо взето между MDNS и MMR, MMR работи на Layър 2, което е гадно. И общо взето, нали,

↗мултика питаш мрежата, абе кой е на това име и се надяваш правилният човек да ти отговори на, че той е на това име. Сега си представи, че някой пита: "Абе кой е домейн контролер?" И ти да си в мрежата, нали, на жертва и казваш аз съм домейн контролер и той да ти се довери. Супер. Затова е тука. Хей, Джон, where are you? Джон ей там, обаче преди него отговаря ей тая мацка и нали а нещата се случват. Аа MDNS общо взето същата работа. Порт 53. 53 Това нещо виждал съм го дори да ходи в интернет. Не знам по по нали по какви причини тези неща. Аа хуба са хубаво, ако вие администрирате една корпоративна мрежа и имате влияние върху това какво се случва в нея. ей тия неща да ги няма, нали, защото се абюзват. Ето го. То пише даже на Penetration Best Friends Multiast DNS, нали? Net Boss, MNR, Legacy услуги, които все още съществуват. Ползват се сега by default в новите Windows май ги няма, нали и е

↗трудно да се пуснат, но във всичко, което е преди от преди 5-10 години, всичко е а нали пуснато. Сега има една хубава статия от Black Hills Information Security, която те даже едно Тулче са пуснали. Може да си запишете пикап или да си свърши да си дръпнете. Има едно тяхно туче, което целта му е да открива аномалии в DNS. Аз си поиграх малко с него. Въпросът е, че не съм готов да ви правя нали някакво демо, но пак казвам, ето написано е, дето се вика, дори и аз мога да го следвам. Тогава и вие може да се справите. Така че аа DNS packet inspection е много важен за защитаващите. Сега откъм defensive частта освен securриity трябва да гледаме и privacy. Много хора бъркат privacy и secюрити. Мисля, че е едно и също. Не е нали има много компании, които те карат да се чувстваш секюр, но ви но ни вредят на privacy-то. Да не давам, нали, примери. Та DNS услугата в

↗днешно време трябва да е както private, така и secure. Защо? DNS се ползва примерно ти казваш какво толкова като съм си словал Google8 за DNS. Аз не знам дали е, не съм даже проучвал. Моята конспиративна теория е, че те ползват всичките тия заявки откъде идват, нали? Аа малко или много да профилират потребителите, нали, от тоя публичен адрес, що ми идват а а заявки за fashiondays.com, ще му сервирам реклами за Fashion Days и за облекла. В смисъл съвсем логично, нали? Google това им е, това им е бизнесът. Те от това печелят пари. Та а не знам дали знаете, аз покрай тая презентация, даже днеска го казах в една организация, има

↗аа EU for DNS. Супер много се изненадах, като видях ей това нещо. От няколко години Европейският съюз инвестира в независима DNS инфраструктура и услуги, които се предлагат както завърмънт сектора, така и за privacy. Може да в смисъл за частни лица. Ето тука protect your sale в публични за за телкус, нали, и завърмънт. Каква е идеята? Както казах в самото начало нямаме resilience от гледна точка на DNS. Падне Cloudфр, падне Google и всички се хващаме за главите. Идеята е поне малко да а разчупим монопола и аз смятам, че това все повече ще го ползваме. нещо да слагам примерно Googleте или cloudфлерските, дето се вика Mate in Europe, с наши пари да го ползваме, нали? А честно казано, пак по две-три години инициативата. Вчера разбрах за нея покрай презентацията. Някой знаел ли е за това нещо? Виждате ли? Куца маркетинга на Европейския съюз. Троловете в интернет

↗какво е в Европейския съюз само имигранти. Лошо е. инфлация, такова. Да. В смисъл такива са в момента нещата, да не се отплесвам. Аа така знаете, аз ви показах в началото таймлайна. В момента има общо взето два начина да ползвате DNS: криптирано и некриптирано. Некриптирано в локалната мрежа между компютри и активната директория окей. Но когато става въпрос за трафика от вашите системи към съответния DNS сървър някъде, е хубаво да е криптирано. Стандартите са два. DNS overhts DNS over TLS. Сега ще кажете кой да ползвам, кой е по-добър. Няма по-добър. По-добрият е в зависимост от US. Примерно аз, когато е за моя лаптоп лично, аз имам инсталиран един tool, който локално си имам DNS сървър с adблокъри, с каквото се сетите. DNS CP Proxy се казва, ако някой му е интересно да го ползва. А, ползвам DO, защото DOC много важно ей тука, виждате ли? Той работи на порт 443

↗по UDP, което е quк протокола. Тоест, ако някой ви снифи трафика и видите тези пакети, той няма да знае това уебтрафиic ли е, YouTube ли гледа човека или са DNS заявки. Това обаче може би е нежелано в корпоративна мрежа, където искаме да правим отделни правила. Абе тоя това правило Farwall е за уебтрафик. Тука е изключения за DNS трафик и така нататък. Затова на повечето места се ползва DNS over TLS, защото работи на порт 853, нали, лесно се идентифицира, пак е privacy насочен, пак е криптиран трафика. Въпросът, пак казвам, са различните use casйси. Така и приключваме. А няколко поне насоки от мен как да защитим DNS, нали, като чисто дефанзивна част. Self host е DNA сървър или какво да ползваме за доме control, forрдериer и така нататък за локален кешинг, нали. Не казвам, че не трябва да се ползва Cloud Flare и други Cloud услуги, защото там е лесно. Там ее web интерфейс, там

↗аа общо взето достъпът до там също е защитен, знаете, двуфакторен и така нататък. Сега, ако трябва да си търкараш при тебе DNA сървъра от оритив, ще станеш обект много ясно на някакви атаки от отвънка, нали, трябва да го пачваш, да го бекъпваш, да нали неща, които са неприятни. По-хубаво е, нали, в cloud. Аде, обаче дайте да се подготвим за ситуацията, в която cloudъ изчезва и ние какво правим сега? Тепърва ще вдигаме DNA сървър. Тепърва викаме какви записи имахме ние имаме ли ги тия записи някъде бекъпти? Та моята теория и съвет от известно време е компании, големи компании, които разчитат на клад услуги, нека имат при тях едни дремещи, аз така ще им кажа, дремещи DNA сървъри, които са up to date, които са готови в случай на диза, нали, като изчезне cloudът, както се видяхме, че стане, компанията влиза в съответния регистра, променя autority в DNA сървърите, да не сочат към cloud rъ,

↗да сочат към към IP-тата на съответната организация, където сте си ход хоснали адреси и вие сте upen rъning в рамките на там докато изтечела няколко часа, нали, глобално, докато се пропагандира. Така че това е, нали, виждал съм и в компании, които им казвам, "Добре, сега дайте да видим какво сте сложили в аа в фордите на домейн контролерите, DNS форъдите." Викам, добре, това е добър случай. Като видя сложени IP-тата на някакви наши ISP-та, които са купени от BTK и от А1 преди 10 години и тия сървъри буквално може да ги подпалиш и да ги бутнеш и да ги направиш с няколко нали реда код. В смисъл доста доста не не е не е подходящо за една компания, която разчита нали, че иска да е secкюри и така нататък. Това, което ни липсва на много места са отделни, както казах, firewall правила за DNS. В идеалния случай как трябва да изглежда, може би трябва да го начертая.

↗А нали домейнски машини в корпоративната среда, те ползват DNS услуга от домейн контролерите. Ако тая машина ѝ сложиш случаен DNS сървър в интернет, firewall трябва да я блокира. Тя трябва да ползва DNS услугата от активната директория или там каквото има друго enterprise решение за DNS като single source of truth. Та това е окей. На домейн контролерите слагаш форди, които ти си избрал. Дали ще е DNS for DNS или там cloud flare, няма значение, но това трябва да е пътят. Тоест тая машина, за да си направи DNS резолвинга, задължително трябва да мине по тоя път, а не нали на една машина такъв DNS, на друга такъв и така нататък, защото това видяхте отваря аа вратички за ексфилтрация по DNS, команен контрол и така нататък. Така знаете, в много компании като отидете и като седнете на работното място, не може да гледате порно, не може да отваряте сайтове за залагане, не може да а какво

↗друго игри да играете и така нататък. Това се прави както с цел, нали, продуктивити, го обяснявам много хора, така и да предотвратим хората да се застрелят в крака, нали, ако ги оставиш свободно да да цъкат и за интернет, много лоши неща могат да се случат, освен да си губят времето. Могат да си загубят криптовалутите. Та каква е идеята? Как работят в днешно време тия Next Generation Firewall? Знаете, когато се осъществява първоначалната връзка, нали, към уеб сървъра, да се обмени информация за преди да се криптира връзката. Реално има некриптирана част, която в сертификата се вижда като common name, всъщност името на сървъра и там си пише Facebook, и така нататък. И Firewall казва, това ми е забранено. и го и го спри с последните стандарти в TLS. Тази част е криптирана. Sна е криптирана. И сега питането тия firewall как ще разберат тоя трафик да може ли да го блокирам или не.

↗Отговорът е декриптирайте нали трафика върху всяка машина. Сложете сертификейт autтоority-то на аа на корпоративния firewall или с pointта, нали, каквото е там. Crow strrike, Sofo, се мака, каквото има вече там, нали. което не винаги е окей. Има сайтове, които искат end to end visibility, нали? Не може просто да им прекъсваш а криптираната връзка. Та поне моята прогноза, понеже се занимавам немалка част от времето си с такива работи, е, че все повече, аз го виждам и превендорите, все повече ще се разчита, поне в корпоративната част контролът, това кой какво може да достъпва в интернет да е на ниво DNS. Така че нали важно е Split Horizon DNS. Виждал съм какви ли не извръщения.

↗Трябва много да се внимава, особено когато се изваждат сертификати, примерно от Letсрипt, когато се изваждат сертификати за вътрешни host namees, да не се издаде, защото въпреки че е вътрешно само част, нали, ще се ползва отвътре, само с нали с а частни адреси, няма да види бял свят. при издаването на сертификата, примерно следп, всичко това се записва в така наречените сертификет transparency и пак те могат да бъдат абюзни, могат да бъдат нали проследявани от хора, които искат да атакуват компанията и примерно ако си написал името на на някакъв вендор или нещо, което ти работиш при тебе, примерно, а Cisco FTD, еди си кой модел, еди си коя версия в хостнейма- нали и това излезе в cerтифиicate transparency log, ще е доста така издаденическо какъв ви е firewall. Добре. А това беше и предишният ток за комйса. Много искам да видя някой редовно да си правя одит на DNS записите. Виждал съм

↗какви ли не буквално чаршафи, нали, със стотици азаписи, MХИК с записи, каквото се сетиш, които не се ползват, нали, или не са актуални и така нататък. Като питаш хората това защо не си го изтрил, защо не си го разчистил? Нали знаете, колкото да тръгне нещо, пък после ще го оправим, нали? В повечето случаи е това. Обаче тези неща могат да се ползват за домейнхайкинг, за каквото нали а се сетите. Така че също това е много важно, конфигурациите и записите и не на на последно, но не на последно място всъщност е да се логват DNS заявките. Също наблюденията са ми, че в компании, които искат да са секюрнати, понеже пак казвам, не са обърнали внимание на DNS, те като не са обърнали внимание, не логват и заявките от DNS. Това примерно в Windows се прави за 5 минути. Казваш в ей тая папка, нали, DNS сървъра, логвай ми всичко в тая папка. Тая папка си я четеш с някакъв там инструмент CM и

↗някакъв статистически анализ такъв anomaly detection и така нататък ентропия на хостовете и си откри откриваш потенциални атаки и маур в инфраструктурата. Общо взето това са нещата. Сега следващата мисъл е от Дан Камински в този клип, който ви казах, интернетът никога не е дизайн да бъде секюренти. Ние какво ще направим с вас по тая тема? Еми идеята е ние да го секюрнем на с каквото можем и всеки ден да се борим за потребителите, които пък не знаят за тези неща. А,

↗>> благодаря ти много. >> Въпроси, >> въпроси.

↗>> Това нямаме. Ами беше супер интересно. Много ти благодаря.

↗>> Здравейте на всички. Днес ще говоря за Binary Explitation. Тема, която ми стана интересна може би миналото лято. В началото започнах с Linux Base Binary Explitation с 64 бита. В последствие се поинтересувах за това да се сертифицирам за усет и там общо взето ми трябваше Windows based 32 бита и всъщност презентацията е базирана на записките ви, които си водих по време на подготовката и курса и така нататък. Аа та да, ще започнем с това как се получават мемори уязвимостите. Общо взето, когато имаме неправилно управление на паметта, това може да доведе до не така неочаквани резултати. А в случаите, когато нещо е супер критично, може да доведе дори и до екзекютване на код, като това най-често се среща при езици, които дават достъп до паметта, като C и C++. Има ли девелопъри на C, C++? Няколко има. Добре, супер. Аа та в случаите, когато имаме такъв достъп до

↗паметта, могат да изскочат такива грешки. А, имам доста примери за различни банери уязвимости, меory уязвимости, но този, който ще засегнем, всъщност е Buffer Overflow, а със сигурност най-популярният случай за Binary уязвимост, като ако тръгнете да разглеждате CV детайлите за годините, дори и в днешно време все още има доста мемори уязвимости, а buffer overflли и всякакви други като after free, формата string werc и все подобни. А този ток ще се фокусира главно върху 32 битова архитектура, а поради проста причина, че има твърде много голям learning и също така голяма част от техниките, които са валидни за 32 бита, може да се транслират за 64 бита. А като започнем с малко предтекст за това, което ще последва, имаме памет, която е физическа и виртуална. Мапва се виртуалната памет към физическата и два различни а виртуални адреса могат да сочат към едно

↗и също място във физическата памет. Като това се случва благодарение на меory мениджмтюнита. Не е супер важно, но така от обща култура. А когато се стартира един трет или една апликация, тя си създава така фрейм и започва да езекютва код от DL-лите или от program имиджа, като също така има и други dataта структури вътре в самия аред като process information блок и трет information блок, където се съдържа информация всъщност за а всякакви полезни неща за самия контекст на execюш. започва от High Memory Address от 0 и FF и отива към ниския memory address с нулите. И много важно да знаем за стака, че работи на принципа last in first out. Като ако сложим пушнем нещо на стака, то отива най-отгоре, после а пушваме три, то отива отгоре и така, така редим ги като чини. И ако папваме това са операции в assembler, push и поп. Ако попнем нещо от стака, попваме това,

↗което е най-отгоре от самия стак. Може да си го представим като чини, ако имаме една функция, като например а с variable mail true, string name. Variable mail true отива най-отдолу, после string name joh do blла блабла. И така редим чиниите на стака и оборудвани с това базово знание, с малко basic assembler и една аски таблица в ръка, можем да продължим напред. А, хубаво е да имаме някакви basics в Ascender, ако особено ако смятаме да се занимаваме с exploitation, защото когато а така disassembмлнем някое езе, а разбира се има шанс да го сев до код, да видим на C или C++, но истината в крайна сметка е в асмблера, но е доста просто. Ад, събиране, изваждане, местене и така нататък. Refренсиing. А като нещо много важно са регистрите. А имаме в 32 битовата архитектура започват с E, A EX, CBX, ECX, в 64 рабо започват с R, а общо взето 32 бита, защото регистърът съдържа 32 бита, а като може

↗да оперираме върху половината от регистъра с подрегистъра AX или върху горната и долната част на подрегистъра с ih и така нататък. Но трите регистъра, които са важни за нашите цели, binary exploitation са, даже бих казал, че два в този случай ще ни потрябват повече. А stack поinter сочи към върха на стака, защото стакът постоянно се мести нагоренадолу. Така че това е много важен регистър за нас. А другият важен регистър е base point, защото когато стакът постоянно се мести нагоренадолу, base pointer ни позволява да имаме reference point и ако ни трябва а да извикаме ня да вземем някоя променлива, може да го вземем като адрес, примерно EBP плюс минус едикво си, а за да взимаме променливи и да ги използваме в нашите функции. и instruction pointin със сигурност най-важната най-важния регистър, когато става въпрос за binary explitation, защото казва коя е следващата

↗инструкция, която ще се изпълни вломата, като ако хайджакнем instruction поinterра, следващата ни цел е евентуално някак си да успеем да хайджакнем целия флоум на кода. А диалели общо взето са споделени библиотеки, които се лоудват в самия процес и може да ви да използваме експортнати функции от DL-ите. Например, ако искаме да използваме create file W, а трябва да лоднем 32, за да извикаме това. Въоръжени с това знание, ни трябва също така и някой дебъгър. В случая за Windows, Windbug няма значение, честно казано, ползвайте каквото ви харесва и някой disassender. А в случая аз съм използвал. Та това са двете а така меча и щита, които ще им трябват. И вече може да започнем към същинската част the meet and potatoes, а именно buffer overflow. А и ще започнем с един много прост пример. Имаме програма, която заделя буфер от 64 керактъра. И имаме уязвимата функция string copy,

↗като копираме този аргумент, който подаваме в буфера. Нямаме никаква валидация. Всичко, което подадем, ще се копира в буфера. Какво ще стане обаче, когато подадем повече от 64 ата в този буфер? Ще се получи buffer overflow. И това, което всъщност става, е предист copy. Така изглежда паметта. Имаме Return адреса, имаме source destination и тем подобни. Копираме 32 ата, запълваме половината от буфера. Копираме 80 ата, бъфет се препълва и започваме да пишем и по други региони в паметта. Като когато имаме презаписване на EP регистъра на Return адреса, в случая когато exit от main и retтнова, сме презаписали return адреса и това се озовава в instruction pointра при exit на executionш и това ни позволява да е exекютваме в последствие, ако открием как, код, а като целта ни е да екютнем shell cд, като този shell код общо взето или най-често а ще е rвърс shell или bind shell. А за хората, които

↗не знаят, това позволява а така да пишеш команди върху сървъра, така да кажем, на много прост език. Аа и как всъщност се е exploлойтва buffer overflow? А имаме тук buffer overflow, уязвимо приложение, което има proof of concept, общо взето слуша на пор 80 и в usрнейма, ако му изпратим твърде много символи, в случая а ще офлоуне буфера. А няма да навлизаме в детайли за това как се откриват такива бъгове, защото е твърде твърде детайлно и out of scope. А, но да, приемете, че ако изпратим 1600 ата, а това ще крашне. А това, което правим в следващата стъпка, след като сме въоръжени с нашия пф в concept, стреляме смело, атачваме си процеса към дебъгера, за да видим какво се случва. Пускаме Python scриpта и откриваме, че в stock pointра вече виждаме супер много така, където се намира stack pointer. Почваме да откриваме 40 единици, което 41 е главно а в хъщо така се е се опитало да

↗екзекютне 40 единици, обаче тъй като е невалиден memory адрес, дава access violation. И всъщност това, което се е случило току-що е, че сме презаписали retтър адреса и ефективно сме хайджакнали ишънтера. Обаче тук идва един въпрос. Като сме пратили 1600 ата, къде всъщност се намира а-то, което over о over орайтва return адреса или instruction point? Можем да се върнем и да почнем да ги броим, но естествено има по-мързелив начин. The Broin sequence. Иначе казано, пишем MSF Patter Create, за да създадем цикличен патър от уникални символи. Така че това, което попадне в instruction pointer вместо 41, а можем да преброим къде му се намира осета. Заменяме inputт buffра вместо със SATA, с тези с този цикличен патърнn. Изпращаме експлойта и откриваме, че този път instructionш pointer е презаписан с 42. 30 6142, което е главно B 0 А малко главно B. И ако потърсим този осет с MSF

↗pattern осе откриваме, че това е на 780-ия ракър. Тоест, ако изпратим 780 а-та и 4бта, след следователно, ако всичко е така, както трябва да е, би следвало да намерим в instruction instruction поinterтера 42, защото това е следващото в хле изпращаме го и точно това ѝ се случва. Виждаме 42ките и останалата част от бъфера е запълнена с падинг, който е общо взето сета. Така, това е супер. Вече имаме контрол върхуш поinра. Може да се похвалим на всички, обаче това е само част от упражнението, но е добра първа стъпка и е доста оптимистично, когато имаш контрол върхуш поin разбира се, има още доста неща, които могат да те спънат. А, но само за санитичек за тъй като в началото, когато започнах да се интересувам от такива неща, малко ми беше а стакът расте натам, надолу, наобратно с главата и така нататък. Има малко конфзин заниity чек. Ето ги 4141, които сме ги

↗изпратили. Instructionш pointer и това са нещата след instruction pointerра. А, супер. Окей, значи имаме контрол върху instruction pointer искаме да стигнем до стака, защото върху стака всъщност ще се намира нашия shell код, които са assemb инструкции, които ще е exекютнатър shell. А, но имаме един проблем, а той е, че всеки път като е execютнем този е exploйт, stck stack pointer ESP сочи към различно място в паметта. Тоест, няма как да знаем точно къде ще се намира stack pointer, но и това си има решение и то е jump ESP инструкцията, която се така състои от байтовете FF E4. А идеята е, че ще запишем instruction поinра с jump ESP инструкция и в момента, в който това се случи, а естествено ще джъмпнем към стака. А имаме някакви лоднати диалели в самия процес. Като за целта на упражнението избираме такъв, който няма ASLR и DEP, а Adress Layout Randomization и Data Execution

↗prevention. А по-нататък ще говоря и за тях, а но в случая избираме този, който е без защити аа и търсим в него дали случайно нямаме тази а тези два байта FF E4. Ето го сace, в който търсим Search bytes. Оттук е началото до края, което съвпада с началото и накрая, както виждате в DL-а. И също така като напишем assemble за unassemble на memory адреса, да видим три първите три инструкции, а откриваме, че наистина по това е jump ESP инструкция. ъпдейтваме си експлойта с адреса, който сме намерили за jump инструкцията 1090C83, а като използваме пак от Струк, а защото трябва да го иначе да го изпратим в Little Indian, тоест трябва да да изпратим 83 09 бла-блабла, тоест наобратно да го завъртим а заради Little Indian. А в случая затова просто ползваме пак, защото е по-печетливо. И това, което правим следващата стъпка е да сложим break point на jм инструкцията. Пращаме си експлойта и

↗виждаме, че в дебъгера наистина сме ударили Jump и и ESP инструкцията ето тук. А ако степ all върнем с P над тази инструкция, виждаме, че започваме да екзекютваме 43йките, които сме пратили като падинг. Това сатата, което е инкремен TBX инструкция просто случайност. И тук вече имаме а не една доста важна стапка, именно и досадна същевременно, а именно беткерактърите. Има керактъри или байтове, които ще ни счупят експлойта, ако ги изпратим. Затова трябва да открием всички лоши байтове, като например байта е string terminator. Затова ако изпратим by, шансовете са, че ще ни се прецака експлойта. Това, което правим, а всичко си остава както и преди, но слагаме освен а B, атата и адреса и C-тата, слагаме и тези B charactery. Това са всичките а printable characters askки. А и когато изпратим експлойта с бедке рактърите, откриваме, че имаме тези неща в stack пойнтера, като това е 1 2 3 4 5

↗7 6 7 8 9 и всъщност на девет се чупи а патърна и където трябва да е 0а, всъщност виждаме 0. Това означава, че най-вероятно 0а ето тук е bet. И така започваме да махаме 1ди байт. Тук махаме 0а от бедкерате. Изпращаме го, намираме следващия бебайт, изпращаме и така, докато можем да изпратим всичките и нищо не липсва от нашия exploit. В случая бетбайтовете са тези 00, 0а, 0D, 025 и така нататък. След като изпратим това, виждаме вече всичките бе баййтове, така че няма да ни се счупи е exploйта. И също така виждаме останалата част от нашия падинг ЦТ. А тук и сме готови да си генерираме л кода. А в случая просто ползвам MS Venom. Няма значение. А слагате си B тиренце B, за да знаете всъщност за да специфицирате лошите байтове. Така че ще ви генерира един такъв код, който е 350 351 байта и не в нито един от байтовете не се съдържа е някой от този тези байтове, които ще ви счупят експлойта.

↗ъпдейтваме си е exploлойта, слагаме малко 90-ки. Това е no operation в assembly инструкцията, а просто за да имаме нing падad. Така че когато трансферираме exекюшна и shell код започва да се екзекютва, някои от shell кодовете в metasploй а започват да пишат малко върху стака, има шанс да презапише върху а себе си реално и да прецака да се прецака шела. В случая нищо няма да му стане, но все пак е добра практика да сложите малък лендинг пад, стига да имате място. А ъпдейтваме си е exploйта, слагаме shell кода, който сме генерирали, слагаме breakp, а удряме брейк пойнта, имаме jump, джъмпваме и като степърнем, започваме да еекютнем, да екзекютваме ноповете. И всъщност това, което виждаме тук, са нашите байтове на shell кода. И когато продължим с G, а първо си пускаме listener, за да хванем shellла. Пускам продължаваме executionш с G и общо взето ни връща SH. А това е в общи линии basic

↗buffer overflow. А мога да ви го покажа на видео. Не изглежда много впечатляващо, ако трябва да бъдем честни, а, защото е доста бейсиic пример, но все пак съм го рекорднал, така че might as well. Секунда само. Я да видим. Опа, да. Аа, та ето го самия exploйт. А, пускам сиer и просто пускам експлойта с IP-то и ми връща SH. А, това е. Не изглежда много впечатляващо, но в бекграунда се случват всички тези неща, които видяхте. А, само секунда. А, да. Окей.

↗Така. А един малко по-различен пример. Съвсем набързичко ще минем през него. А какво се случва всъщност, когато имаме а уязвима апликация, обаче нямаме достатъчно място на стака? Имаме само 12 байта. Обаче виждаме, че всъщност сме изпратили 2500 байта, за да крашнем а приложението. И това, което всъщност може да направим, тъй като стак е executable, пак си намираме jump инструкция. Обаче след като jъмпнем, можем да сложим малко assemblerри инструкции, да си ги компилираме, а и общо взето да изпълним да джъмпнем. Изпълняваме assembler инструкции. Идеята е следната. Shell кода е в началото, не в края. След това имаме overйта и местим пойнтера назад, така че да сочи към shell кода и в последствие правим пак jump. Тоест един вид правим stack pпит, защото преместваме къде се сочик пойнтъра и джъмпваме там. А така че това е един вариант, когато нямаме достатъчно място.

↗Just move ESP. А това е супер. Обаче а имаме малко усложнения. А те са именно ASLR и DEP, като ще започнем с DEP. Data Execution Pervention общо взето маркира стака с NX Bit, което означава, че неща от стака са вече само а read и right и не може да езекютваме нищо от стака, което не е много яко. А, но ако видим Virtual протеction на instruction pointerра, ще видим, че а има execute и read. Тоест може да екзекютваме и да рейдваме а от а този регион, но ако видим защитите на стака, а ще видим, че е само read и right. Тоест това, което ние правехме преди и си слагаме shell кода върху стака, вече е невъзможно заради data execution prevent, но и затова има решение. А просто заради sanity check. Това е notepad лоднат и всъщност това са всичките DL-и, които не всичките има повече, но това са някои от DL-ите, които лодва notepad и виждаме, че всичките имат data execution prevent

↗като защита. И ако пробвам да сложа на стака няколко но оперейшъна и пренасочаш поinterтера към стака и се опитам да езекютна код от стака, виждате, че получаваме access valation, защото нямаме право да правим това. И тук идвайнинга return oriented programing, където идеята е, че вместо да езекютваме от стака, можем да намерим а гаджети, така наречените гаджети, които са малки поредици от assembler инструкции, които всичките завършват с retтn и да ги подредим по такъв начин, че да общо взето накрая да си езекнем shell кода. А като ето това е един chain. Pop ex return pop e return и местим ea в там, където сочиx. Това е point. Попваме EVP. Това как може да го чейннем? А в случая изпращаме експлойта, а който ще съдържа тези стойности в себе си с пак, както видяхте в миналия случай. Това тук този адрес сочи към POP ECX инструкцията, която е лодната. Не

↗знам или в Ex-то или в DL. Намерили сме някъде тази инструкция. На стака имаме само тази стойност и когато се екзекютне по PCX, попваме това, което е най-горе в стака, в случая това, което е в червено и се ретърваме и ще се ретърнем в това, което е на стака, което е пък следващата инструкция по A и се ретърваме. Тоест в EX ще попнем тази стойност Babe и ще се върнем ето тук, където вече ще преместим EAX Bape в мястото, където сочи това кафе. А и попваме EVP, което може да е сайд ефект. А тъй като някои от гаджетите, които намираме, имат странични ефекти, които са общо взето нежелани инструкции и слагаме просто някакъв джънк в EVP, като например няколкота. Тук може би е малко по-добре изобразено. В return адреса слагаме първия гаджет, например POP EAX 0B11 на deimal. А попваме в EX 11, връщаме се във втория гаджет, попваме 0 и така, така и общо взето правим chaйн, затова

↗се казва rчеa защото гаджетите винаги завършват на retтр и ретърваме в следващия гаджет. А как дапаснем деп? Единият вариант е да направим 100% shell код, който е билнат от роб гаджети, което е тегаво. Вторият вариант е да имаме първий на експлойта, който Rchain да извика някое някое AP, като например Virtualog, Virtual Protect или WR process memory с идеята да променим протекшна на Memory региона, така че от Nonecutable да стане executable. А и общо взето в случая ще ви покажа как това става с Virtualog. Идеята е, че ще извикаме Virtualog и там, където ни е кода на стака с Virtual log ще го пачнем така, че от Rey Right да стане executable. И трябва да ги наредим така нещата в стака. Тук да имаме virtual log, да имаме return адреса, а където всъщност ще се след като извикаме Virtual log ще се retтърнем в този адрес, където е нашият shell код. А тук първият аргумент на

↗Virtual Lock е адреса, където се намира всъщност SH кода в случая. А колко е сайзъ, като това ще бъде единица, защото Virtual Rock Alock работи на page bases, така че няма значение. А в случая type просто трябва да е commit 1000 и flct. За да е page execute read and right трябва да е стоимо 140 като това създава някои проблеми като например това че не знаем нито къде се намира virtual log. Не знаем къде се намираше ашел кода преди да езекютнем и също така а тези аргументи ще съдържат в себе сино by който ще ни счупи целия е exploйт. Така че това, което може да направим е да изпратим скелетън стойности и да ги пачнем динамично с а роче chaйнин. Та ето така изглеждат въпросните гаджети, а общо взето инструкции трябва да си направите като пъзел от тези инструкции, така че да се случи това, което искате. И с така простичко ще ви покажа една инструкция, като например instruction

↗pointer го за за презаписваме с тази инструкция. Push ESP, тоест ESP, стойността на ESP отива на стака. Pus по PDI, по PSI return. Каква е идеята? Тук искаме копие настак пойнтера в някоя някой регистър с целта после да пренасочим този регистър към там, където ни е скелетън кода или плейсхолърите. И какво се случва? Пушваме ESP, като ESP е тази стойност в момента. Пушваме го и отива на стака. Ето тук е стойността. Пушваме EAX, което е нула. Отива и той на стака. Попваме ESI, тоест ще попнем това, което е най-отгоре върху стака, в случая нулите и ESI. А всъщност попваме първо edi, edi става нула, попваме ESI. ESI става тази стойност, която е оригиналната стойност на ESP. Така че сме успели да копираме ESP в ESI. Изглежда безсмислено, но има много, много важно значение. Като добавим още около 80 гаджета, се получава ето такъв пчей. като А да. А първо идеята е, че трябва да

↗намерим адреса на ще го на на няколко структури ще няма да влизаме в детайли, но да. Първо трябва да намерим и адреса на Virtual log. А всъщност има export adress table, import address table и вътре имаме адреса, така адрес, който е поinter към актуалния адрес на Virtual log. Обаче се оказа, че той има 20 в него, което е bad by. Затова трябва да добавим това плюс едно, а и така нататък. Общо взето и тук пачваме адреса на Virтуual log в 45-ците. После трябва да сложим адреса на shell кода, така че трябва да а някъде и стака да имаме адрес, който да сложим тук. Тези двете са едно и също, повтарят се. И тук просто трябва да сложим -1 а в тази а така единица в тази стойност. Обаче едно е bad. Затова може да използваме например инструкция като next e, което ще го направи от neгатив в позитив. Затова така bypсваме bтке chктърите. А и общо взето накрая ще имаме code execution.

↗И може би да ви го покажа това нещо на клипче как изглежда. А всъщност това е някакъв IBM сървис IBM Tvly. А, атачваме се към процеса. Ето го всъщност самия и рочейна. А, и това всъщност е първата инструкция, която презаписва instruction поinterра и можем да сложим break point на нея и да видим как всъщност презаписваме instruction point и пачваме в реално време. Слагаме break point и пускаме програмата да ръва, докато сметачнали дебъгера. Ръмваме си експлойта и всъщност ще започне тук самият чейн. Пушвам ESP, бла-бла бла. Общо взето правим жижи на стака. А така че да. А ето тук всъщност преди няколко инструкции намерихме Virtual log и го добавихме в скелетън placeхолра и общо взето така и закютваме чейнове от семлер инструкции, докато а не стигнем накрая до стак пивота, след като а всъщност може би това да го покажа, защото е съществената част. А преди да екютнем

↗Virtual log, начин по който тук се подават аргументи към функцията, е, че трябва да са пушнати аргументите на стака и като колнем Virtual log и влезем във функцията, тя ще си ги намери от стака. А това е return адреса, който сме го пачна. Всичко тук е пачнато динамично. А това е това са параметрите, които общо взето праща аргументите, които пращаме към Virtual log. И всъщност виждаме, че в момента тук ни е shell кода. То е с защит в момента защитата е read и right. Така да правата да речем read и right. След като а влезем в virtual log и стигнем до края, виждаме, че сме пачнали същия memory регион на execute WR, което ни позволява вече да exекютнем нашия shell cд. А може да си пуснем listener, защото сме вuger и в момента сме на breakp, така да се каже. А, така че няма закъде да бързаме. Натискаме, пишем G за go. А, executionш продължава и имаме shell. А, та да, това

↗е в общи линии за рокчейнинга. А другото нещо, с което може да се сблъскаме е ASLR. А, където когато имаме ASLR, общо взето всеки след всяко рестартиране, след рестартиране, било то на компютъра, на сървиса, а включително зависи от Dите-те, се намират на различни места. Така че, ако примерно анел 32 е било този адрес, следващият път може да е този адрес, да речем. А, така че няма как, тъй като нашите гаджети ги взимаме от DL-лите или от есето и ако имаме ESLR, няма как да си намерим гаджети, защото не знаем нищо къде ще се намира. Тоест, имам една такава картина, която ни е неизвестна и ако видим това са няколко рестарта на сървиса, всеки път диалелите се така спаунват на различен memory адрес. А ако аз искам да ползвам гаджети от този memory adдрес, общо взето нямам избор, защото не знам къде са. Но ако всъщност успеем да открием information, а всичките тези амеory

↗адреси могат да бъдат разкрити, защото офсетите от един до друг, тоест разстоянието от един модул до друг модул, от една функция до друга функция е статична. И в случая например, а за това е модулът, който таргетираме. Той експортва една функция а to crypto get new lock id и всъщност ако успеем някак си чрез exploit да лийкнем функцията а така да лийкнем memory адреса на тази функция, ще видим, че тя има осет от base адреса 14 е0. Така че, ако от това число извадим 14 е0, ще ни даде base адреса. И всъщност виждаме, че наистина е така. И общо взето това, което имаме е, че а в случая пчейна вместо да го пишем със статични стойности, както преди а рефренсва base адреса. Например този гаджет Move ECX, вместо да е някакъв статичен адрес, е а бейса на DL-а base адреса плюс offset и така си правим rчеa и може да bypassнем ASLR, след като имаме information leak.

↗А и общо взето това са няколко пъти като рънеш е exploйта. Всеки път функцията е а на различен memory adдress. Изваждаме а съответното число, намираме base адреса. Оттам знаем а това може да го подадем към самия exploit като променлива като base address и оттам вече да си екзекютнем останалата част от shell кода, който си остава същия shell код. И ако се интересувате повече от Binary Exploitation, искате да научите повече, а има няколко варианта, а, които са така сравнително популярни. А първото е Offensive Security Exploy Development курса, а като а да има доста солидна цена към него $1750. Windows Windows Focused и другото, другият вариант е Red to War Games, което честно казано мен ми беше много забавно а да минавам през War Games а като е доста по-евтин. Мисля, че беше около 200 300 400 максимум. а и по коледж, който е безплатен, като има сравнение в exploy developм редита на

↗различните курсове и нещата, които обхващат като съдържание. И честно казано не мисля, че ще сгрешите с War Games като начало, а тъй като е по-ниска бариера за entтри, пови по-голям клас от уязвимости засяга не само buffer over, както exploit developмент курса, а засяга use after free, засяга off by one и всякакви такива underfl overfl и така доста голям набор от мемори уязвимости. Ако си падате по книги, също така има солиден списък, къде коя засяга повече, коя по-малко binary exploitation, като най-новата е тази from day zero to zero day, a hand zone guide to vulnerability research. В момента е доста хайпната. Буквално е излязла преди няколко месеца от Eugen Lim Space Racon и да, това е в общи линии на Soul Fox. Ако има някакви въпроси да

↗>> надявам се, ако има въпроси, да мога да отговоря, защото е и аз желая да знам повече неща, обаче няма как. Просто тематиката е такава, че има неща, които не знаеш дет и да. >> А как практически може да се използва това нещо? В смисъл такъв, че това, което виждам си ти трябва доста сериозен достъп до машината, да може да я експлотнеш или най-ната ще закачите бургер, който пак изисква да си разни. Така че къде се ползва практически? Само повтори въпроса. А въпросът е как това може да се използва практически, когато нали трябва достъп до машината за tч and thebugер и така нататък. Идеята е следната, че ти ако имаш някакъв популярен софтуер, някакво exсе или whatever, а да си го копираш при тебе, да си тестваш експлойта при тебе и когато вече си готов и си разработил този експлойт и примерно имаш някъде някакъв сървър, който слуша на порт 14, а да го езетнеш този е exploit и да го

↗получиш shell от него. А не таргетираш първо всъщност това, което виждате е prationшъ за експлойта, който вече да го рънеш срещу реален таргет.

↗>> И аз питам нещо пресичко. А реално целия целият biner expationш зависи от това да намериш някакъв инт, който продаваш към системата и който може да овър. А в повечето случаи това се поне това, което аз може би не е така. Вим каква се случва, когато се ползват по low level езиците като си и други такива. в модерния свят, така да наречем, ползването на фреймърци, доколко спасява от такива уязвимости, които са на от това, че няма някакъв sanitation илиation или тези, че е много по-рядко да се видят такива уязвимости. има а опити и всъщност успешни опити за експлойтване на някакви енджини на Но честно казано е доста задълбочена работата и е много сложно експлойтването на такива неща. Аа но да, честно казано не мога да дам супер детайлна информация, но също е възможно трябва да направите по-задълбочен рисърч, но много по-малко. Разбира се, когато имаш директен достъп до паметта и имаш

↗девелопъри и хората правят грешки, е съвсем нормално да има доста повече уязвимости. >> А, да, подобен въпрос. Тъй като тези две защити SLR-рите те са доста старички, а реално в днешно време има доста повече защити, както при Макол на баг, а те са още по-трудни за байпасване според. Накъде се движат нещата? Има ли бъдеще въобще този тип извести? >> Мисля, че продължава. Мисля, че винаги ще имаще, защото както знаем, Да. И естествено има нови и нови и нови защити, обаче знаем, че е игра на котка и мишка и когато измислиш една защита, винаги някой ще е използва два пъти повече време, за да намери BYP. Аа но да, не съм супер в детайли с това как ще еволира. А, между другото, ако някой се интересува, има Zero Day подкаст в Spotify навсякъде с едни много, много повече навътре хора от мен. А, като може да ги съдите и да. А също така red, които правят red wargames, освен че се

↗занимават с това с курса sнting, а участват на поone и се занимават с много много inept binary expitation на всякакви неща и са печели няколко няколко пъти понтона. Така че

↗си >> може би да кажеш какво пон са тия две в смисъл интересно да кажеш какво е понто >> а а понтон е състезание където ти дават някакъв таргет като например VMware и трябва да намериш да речем escape от виртуалката към например в пример а към хоста и трябва имаш един шанс да пуснеш експлойта и той трябва да сработи като естествено преди това имат време може таргетъ да е кола, може да е всичко. Честно казано, има много категории в понтон състезанието и е доста престижно.

↗Първи път, втори път. Това е препълних куф. Добре. >> А, последният шанс за последен въпрос или пица? Няма. Добре. Още веднъж благодарим. А първо четли от времето си, че останахте изключително почти до края, което ещо. Благодаря ви. Значи има смисъл това, което правим. А благодарност към Ирица, който може да изтръгна през Сиян, а не през Слав Симеон, който се прави наскровен и благодарим отново на нашите домакински фокус.

← Всички лекции