Тепер ми спробуємо інший метод застосування SQL. Подивимося, чи база даних буде продовжувати відкидати повідомлення про помилки. Цей метод називається «очікування затримки», а сама затримка записується у такому вигляді: waitfor delay 00:00:01'. Я копіюю це з нашого файлу і вставляю в адресний рядок браузера.
Все це називається "сліпе використання SQL на тимчасовій основі". Все, що ми тут робимо – це кажемо: чекати затримки протягом 10 секунд. Якщо ви помітили, зліва вгорі ми маємо напис «connecting…», тобто що робить наша сторінка? Вона чекає на з'єднання, і через 10 секунд у вас на моніторі з'являється правильна сторінка. За допомогою цього прийому ми звертаємося до бази даних, щоб вона дозволила нам поставити їй ще кілька питань, наприклад, якщо користувач Джо, то потрібно чекати 10 секунд. Це зрозуміло? Якщо користувач dbo, чекати теж 10 секунд. Це і є метод сліпого застосування SQL.
Я думаю, що розробники під час створення патчів не усувають цю вразливість. Це SQL – ін'єкція, але наша програма IDS її теж бачить, як попередні методи застосування SQL.
Спробуємо щось цікавіше. Скопіюємо цей рядок з адресою IP і вставимо її в браузер. Спрацювало! Смужка TCP у нашій програмі почервоніла, програма відзначила дві загрози безпеці.
Добре, дивимося далі, що сталося. У нас є одна загроза командній оболонці XP і ще одна загроза - спроба впровадження SQL. Разом відзначено дві спроби атакувати веб-додаток.
Добре, а тепер допоможіть мені з логікою. Ми маємо пакет даних про втручання, в якому IDS говорить, що відреагувала на різні втручання в командну оболонку XP.
Якщо ми опустимося вниз, то побачимо таблицю HEX-кодів, праворуч від якої є прапор з повідомленням xp_cmdshell +27ping, і, очевидно, це погано.
Подивимося сюди, що сталося. Що зробив SQL сервер?
SQL сервер сказав: «ти можеш мати пароль від моєї бази даних, можеш отримати всі записи моєї бази даних, але чувак, я зовсім не хочу, щоб ти запускав у мене свої команди, це зовсім не круто»!
Що нам потрібно зробити – це домогтися, щоб навіть якщо IDS повідомляє про загрозу командній оболонці XP, ця загроза б ігнорувалась. Якщо ви використовуєте SQL Server 2005 або SQL Server 2008, то при виявленні спроби впровадження SQL командна оболонка операційної системи буде заблокована, що не дозволить вам продовжувати свою справу. Це дуже прикро. То що нам робити? Потрібно спробувати попросити сервер дуже лагідно. Потрібно сказати так: «Будь ласка, тату, ну можна мені ці печива»? Ось що я роблю, серйозно, я прошу сервер дуже чемно! Я прошу показати додаткові опції, прошу реконфігурацію та прошу змінити налаштування командної оболонки XP, щоб зробити командну оболонку доступною, тому що мені це потрібно!
Ми бачимо, що IDS це виявила – бачите, тут помічено вже 3 погрози.
Ви тільки подивіться сюди – ми висадили в повітря безпеки! Схоже на різдвяну ялинку, стільки тут всього навішено! Цілих 27 загроз безпеці! Ура, хлопці, ми впіймали цього хакера, ми його дістали!
Нас не турбує, що він вкраде наші дані, але якщо він зможе виконувати системні команди у нашій «коробці» – це вже серйозно! Ви можете малювати маршрут Telnet, FTP, можете заволодіти моїми даними, це круто, але я про це не турбуюся, я тільки не хочу, щоб ви заволоділи оболонкою моєї «коробки».
Я хочу сказати про речі, які реально мене дістали. Я працюю на організації, я працюю на них багато років, і я говорю вам про це, тому що моя подружка вважає, що я безробітний. Вона вважає, що я займаюся тільки тим, що стою на сцені і говорю, це не можна вважати роботою. Але я говорю: «ні, моя радість, я консультант»! Ось у чому різниця – я висловлюю свою думку, і за це мені платять.
Скажу так – ми, як хакери, любимо зламувати оболонку, і для нас немає більше у світі задоволення, ніж «ковтати раковину». Коли аналітики IDS пишуть свої правила, ви бачите, що вони пишуть так, щоб захиститися від злому оболонки. Але якщо поговорити з СІО про проблему вилучення даних, він запропонує вам подумати про два варіанти. Припустимо, у мене є програма, яка робить 100 «штук» на годину. Що для мене важливіше – забезпечити безпеку всіх даних у цьому додатку чи безпеку оболонки «коробки»? Це серйозне питання! Про що ви маєте турбуватися більше?
Те, що у вас пошкоджено оболонку «коробки», не обов'язково означає, що хтось отримав доступ до внутрішньої роботи програм. Так, це більш ніж ймовірно, і якщо цього ще не сталося, воно може незабаром статися. Але зверніть увагу, що безліч продуктів безпеки побудовані на передумовах, що атакуючий переміщається вашою мережею. Тому вони звертають увагу на виконання команд, на впровадження команд і ви повинні відзначити, що це серйозна річ. Вони звертають увагу на тривіальні вразливості, на дуже простий міжсайтовий скриптинг, на дуже прості SQL-ін'єкції. Їх не хвилюють ні комплексні погрози, ні зашифровані повідомлення, вони не переймаються речами такого роду. Можна сказати, що всі продукти безпеки шукають шуму, вони шукають «тявкалку», вони хочуть зупинити те, що кусає вас за кісточку. Ось що я зрозумів, маючи справу із продуктами безпеки. Вам не потрібно купувати продукти безпеки, не потрібно їхати вантажівкою заднім ходом. Вам потрібні компетентні, кваліфіковані люди, котрі розуміють технологію. Так, мій Бог, саме люди! Ми не хочемо викидати мільйони доларів на ці проблеми, але багато хто з вас працював у цій галузі, і знає, що як тільки ваш бос подивиться рекламу, то біжить до магазину з криком: «ми повинні отримати цю річ!». Але насправді нам це не потрібно, ми просто маємо виправити бардак, який знаходиться у нас за спиною. Ось що було передумовою цього виступу.
Середовище підвищеної безпеки – це те, на що я витратив багато часу, аби зрозуміти правила роботи механізмів захисту. Як тільки ви розберетеся в механізмах захисту, обійти захист не важко. Наприклад, у мене є веб-додаток, захищений власним файрволом. Я копіюю адресу панелі налаштувань, вставляю її в адресний рядок браузера і заходжу в налаштування і намагаюся застосувати міжсайтовий скриптинг.
В результаті я отримую повідомлення файрвола про загрозу – мене заблокували.
Я думаю, це погано, чи ви згодні? Ви зіткнулися із продуктом безпеки. Але що, якщо я спробую щось подібне до цього: введу в рядок параметр Joe'+OR+1='1
Як бачите, це спрацювало. Виправте мене, якщо я помиляюся, але ми стали свідками того, як впровадження SQL перемогло файрвол програми. А тепер вдамо, що хочемо розпочати компанію з впровадження заходів безпеки, тому приміряємо на себе капелюх виробника ПЗ. Тепер ми втілюємо зло, бо це чорний капелюх. Я консультант, тому можу чинити так із виробниками програм.
Ми хочемо створити та розгорнути нову систему виявлення втручання, тому почнемо компанію з виявлення втручання. Snort, як продукт з відкритим вихідним кодом, містить сотні тисяч сигнатур загроз втручання. Ми повинні чинити етично, тому ми не крастимемо ці сигнатури з інших додатків і вставлятимемо їх у свою систему. Ми просто сядемо і перепишемо їх усі – гей, Боб, Тім, Джо, давайте сюди, переверніть-но швидко ці 100 000 сигнатур!
Ще нам потрібно створити сканер уразливостей. Ви знаєте, що Nessus, програма для автоматичного пошуку вразливостей, має добрих 80 тисяч сигнатур та скриптів, що перевіряють уразливість. Ми знову вчинимо етично і власноруч перепишемо їх у свою програму.
Люди запитують мене: «Джо, ти робиш усі ці тести за допомогою таких програм з відкритим кодом, як Mod Security, Snort та подібні до них, відповідай, наскільки вони схожі на продукти інших виробників»? Я їм відповідаю: "Взагалі не схожі"! Тому що виробники не крадуть начинку з продуктів безпеки з відкритим кодом, вони сідають та пишуть усі ці правила власноруч.
Якщо ви зможете зробити так, щоб ваші власні сигнатури та атакуючі рядки працювали без використання продуктів з відкритим вихідним кодом, для вас це чудовий шанс. Якщо ви не в змозі нічого протиставити комерційним продуктам, рухаючись у правильному напрямку, ви повинні знайти концепцію, яка допоможе вам стати відомим у своїй галузі.
Усі знають, що я випиваю. Дозвольте мені показати вам, чому я випиваю. Якщо ви коли-небудь у своєму житті проводили аудит вихідного коду, ви обов'язково зап'єте, повірте мені, після цього ви почнете випивати.
Отже, наша улюблена мова – це C++. Давайте подивимося на цю програму – Web Knight, це програма-файрвол для веб-серверів. У ньому є винятки за умовчанням. Це цікаво – якщо я розгорну цей файрвол, він не захистить мене від Outlook Web Access.
Прекрасно! Це тому, що багато виробників ПЗ витягують правила з одних додатків і вставляють їх у свій продукт, не виконавши цілу купу досліджень, що належать. Тому, коли я розгортаю програму мережного файрвола, я вважаю, що все, що стосується веб-пошти, зроблено в ньому неправильно! Тому що практично будь-яка веб-пошта порушує безпеку за умовчанням. Ви маєте веб-код, який виконує системні команди та запити LDAP або будь-якого іншого сховища бази даних користувачів прямо в Інтернеті.
Скажіть мені, на якій планеті це може вважатися безпечним? Просто подумайте про це: ви відкриваєте Outlook Web Access, натискаєте клавіші ctrl +K, шукаєте користувачів і таке інше, ви керуєте Active Directory прямо з інтернету, ви виконуєте команди системи на Linux, якщо ви використовуєте «білкину пошту», або Horde або що ще. Ви витягуєте всі ці evals та інші типи небезпечної функціональності. Тому безліч файрволів виключає їх зі списку загроз безпеці, спробуйте запитати виробника виробника вашого ПЗ.
Повернімося до програми Web Knight. Воно вкрало безліч правил безпеки із сканера URL, який сканує всі ці діапазони IP-адрес. І що ж, всі ці діапазони адрес виключені з мого продукту?
Хтось із вас хоче встановити ці адреси у своїй мережі? Ви хочете, щоб ваша мережа запускалася на ці адреси? Так, це приголомшливо. Ну гаразд, погортаємо цю програму вниз і подивимося на інші речі, які не хоче робити цей файрвол.
Вони називаються «1999» і хочуть, щоб їхній веб-сервер опинився в минулому! Хтось із вас пам'ятає цю фігню: /scripts, /iishelp, msads? Можливо, кілька людей із ностальгією згадають, як було весело зламувати такі речі. "Пам'ятаєш, чувак, як давним-давно ми "вбивали" сервери, це було круто!".
Тепер, якщо ви подивіться на ці винятки, то побачите, що зможете виконувати всі ці речі – msads, printers, iiisadmpwd – усі ці штуки, які сьогодні нікому не потрібні. А як щодо команд, які вам не дозволено виконувати?
Це arp, at, cacls, chkdsk, cipher, cmd, com. При їх перерахуванні вас охоплюють спогади про минулі часи, «чуваку, пам'ятаєш, як ми захопили той сервер, пам'ятаєш ті дні»?
Але ось що дійсно цікаво – хто-небудь бачить тут WMIC чи можливо PowerShell? Уявіть, що у вас є нова програма, яка функціонує за рахунок виконання скриптів у локальній системі, і це сучасні скрипти, тому що ви хочете запустити Windows Server 2008, а я збираюся зробити велику справу, захистивши її правилами, призначеними для Windows 2000. Так що наступного разу, коли постачальник приходить до вас зі своїм веб-додатком, запитайте його: «Гей, мужику, а ти передбачив такі речі, як bits admin, або виконання команд powershell, чи перевірив ти всі інші речі, тому що ми збираємося оновитися та використовувати нову версію DotNET»? Адже всі ці речі мають бути присутніми у продукті безпеки за умовчанням!
Наступне, про що я хочу з вами поговорити, – це логічні помилки. Давайте перейдемо на адресу 192.168.2.6. Це приблизно така ж програма, як попередня.
Ви можете помітити щось цікаве, якщо прокрутіть сторінку вниз і натисніть посилання Contact Us.
Якщо ви подивіться на вихідний код вкладки «Зв'яжіться з нами», це один із способів пентестингу, то чим я постійно займаюся, то помітите такий рядок.
Подумайте про це! Чую, що багато хто побачивши це сказали: «Вау»! Якось я проводив тестування на проникнення, скажімо, для одного банку-мільярдера і помітив там щось подібне. Отже, нам не потрібні ні SQL-ін'єкції, ні міжсайтовий скриптинг - у нас є основне, ось цей адресний рядок.
Отже, без перебільшення – банк сказав нам, що у них були обидва – і мережевий фахівець, і веб-інспектор, і вони не висловили жодних зауважень. Тобто вони вважають нормальним, що через браузер можна відкрити та прочитати текстовий файл.
Тобто ви можете просто прочитати файл прямо із файлової системи. Глава їхньої служби безпеки сказав мені: «так, один із сканерів виявив цю вразливість, але вважав її незначною». На що я відповів, гаразд, дайте мені хвилину. Я набрав в адресному рядку filename=../../../../boot.ini та зміг прочитати завантажувальний файл файлової системи!
На це мені сказали: "ні-ні-ні, це ж не критичні файли"! Я відповів – але це ж Server 2008? Вони сказали – так, це він. Я кажу - але цей сервер має файл конфігурації, розташований в кореневої директорії сервера, правильно? "Правильно", відповідають вони. "Відмінно", - кажу я, - "а що, якщо атакуючий зробить ось це", і набираю в адресному рядку filename = web.config. Вони кажуть – та й що, ви ж на моніторі нічого не бачите?
Я говорю - а що, якщо я клацну по монітору правою кнопкою миші і виберу параметр "Показати код сторінки"? І що я тут побачу? «Нічого критичного»? Я побачу пароль адміністратора сервера!
І ви кажете, що тут немає жодної проблеми?
Але моя улюблена частина – це таке. Ви не дозволяєте мені виконувати команди в «коробці», зате я можу вкрасти пароль адміністратора веб-сервера та базу даних, переглянути всю базу даних, висмикнути звідти всі матеріали про базу даних та відмови системи та піти з усім цим. Це той випадок, коли поганий хлопець каже: "Гей, мужику, сьогодні великий день"!
Не дозволяйте продуктам безпеки стати вашим захворюванням! Не дозволяйте продуктам безпеки змусити вас хворіти! Знайдіть якихось «ботанів», подаруйте їм усі ці пам'ятні цацьки зі Star Trek, зацікавте їх, заохочуйте їх, щоб вони залишилися з вами, тому що ці занудні смердючки, що не приймають щодня душ, саме ті, хто змушує ваші мережі працювати як слід! Це ті люди, які допоможуть вашим продуктам безпеки працювати як слід.
Скажіть, хто з вас може перебувати довго в одній кімнаті з людиною, яка постійно говорить: «о, мені треба терміново надрукувати цей скрипт!», і який зайнятий цим весь час? Але вам потрібні такі люди, які роблять працездатними продукти безпеки.
Повторю ще раз – продукти безпеки тупі, тому що вогні постійно помиляються, постійно роблять відстійні речі, вони просто не забезпечують безпеку. Я ще жодного разу не бачив хорошого продукту безпеки, який би не вимагав людини з викруткою, здатної підкрутити де потрібно, щоб усе запрацювало більш-менш нормально. Це просто величезний список правил, які говорять, що це погано, і все!
Тому, хлопці, я хочу, щоб ви звернули увагу на освіту, такі речі, як безпека, політехнічне навчання, адже існує безліч безкоштовних онлайн-курсів, присвячених проблемам безпеки. Вивчіть Python, вивчіть збірки Assembly, вивчіть тестування веб-додатків.
Ось що справді допоможе вам захистити свою мережу. Розумні люди захищають мережі, продукти не захищають! Поверніться на роботу і скажіть своєму босу, що вам потрібно більше бюджету для більшої кількості розумних людей, я знаю, що зараз криза, але все одно скажіть їй – нам потрібно більше коштів для людей, для їхнього навчання. Якщо ми купуємо продукт, але не купуємо курс щодо поводження з ним, тому що це дорого, то навіщо ми взагалі його купуємо, якщо не збираємося навчити людей із ним поводитися?
Я працював на багатьох виробників продуктів безпеки, практично все життя провів, займаючись впровадженням цих продуктів, і мене вже нудить від усіх цих контролю доступу до мережі та інших речей, тому що я встановлював і запускав всі ці відстійні продукти. Якось я прийшов до клієнта, вони хотіли впровадити стандарт 802.1x для протоколу EAP, тому вони мали MAC адреси та вторинні адреси для кожного порту. Я прийшов, побачив, що це погано, розвернувся і почав натискати на принтері кнопки. Ви знаєте, принтер може роздрукувати тестову сторінку мережного обладнання з усіма MAC адресами та IP-адресами. Але виявилося, що принтер не підтримує стандарт 802.1x, тому він повинен бути виключений.
Тоді я відключив принтер від мережі та змінив MAC адресу свого ноутбука на MAC адресу принтера та підключив свій ноутбук, таким чином обійшовши це дороге рішення MAC, подумайте про це! Так що ж гарне це рішення MAC може для мене зробити, якщо людина може просто видати будь-яке обладнання за принтер або за VoIP телефон?
Так що на сьогоднішній день пентестинг для мене полягає в тому, що я проводжу час, намагаючись зрозуміти продукт безпеки, який купив мій клієнт, і розібратися в ньому. Зараз кожен банк, в якому я проводжу випробування на проникнення, має всі ці HIPS, NIPS, LAUGTHS, MACS і цілу купу інших абревіатур, які є суцільним відстою. Але я намагаюся розібратися, що ці продукти намагаються зробити та як вони намагаються це зробити. Потім, як тільки я з'ясовую, що за методологію та логіку вони використовують, щоб забезпечити захист, обійти її стає зовсім не важко.
Мій улюблений продукт, який я залишу, називається MS 1103. Це експлойт на основі браузера, який «розпорошує» HIPS, Host Intrusion Prevention Signature, або сигнатури запобігання втручанню в хост. Фактично він призначається для обходу сигнатур HIPS. Я не хочу показувати, як він працює, тому що мені шкода часу на демонстрацію, але він чудово дозволяє обійти цей захист, і я хочу, щоб ви взяли його собі на озброєння.
ОК, хлопці, я вже йду.
Небагато реклами 🙂
Дякую, що залишаєтеся з нами. Вам подобаються наші статті? Бажаєте бачити більше цікавих матеріалів? Підтримайте нас, оформивши замовлення або порекомендувавши знайомим,
Dell R730xd вдвічі дешевше в дата-центрі Equinix Tier IV в Амстердамі? Тільки в нас
Джерело: habr.com