Главная » Хабрахабр » [Перевод] Конференция DEFCON 18. Вы потратили все эти деньги, но вас продолжают «иметь». Часть 1

[Перевод] Конференция DEFCON 18. Вы потратили все эти деньги, но вас продолжают «иметь». Часть 1

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

Сегодня снова воскресенье, 4 часа дня, сегодня я хотел лететь домой, но, не смотря на это, я благодарю вас и действительно ценю ваше внимание, как и в прошлом году, и я чертовски люблю таких людей и DefCon.

Я провёл множество испытаний на проникновение, был во множестве стран, где занимался пентестингом, и везде боролся с разными средствами защиты типа файрволов, AWS и систем обнаружения вторжений IDS и MAC. Тема презентации – Вы потратили все эти деньги, но вас продолжают «иметь». Часто, когда я провожу тестирование, мой отчет превращается в сообщение об инцидентах, и хочется сказать: «эй, чувак, но ты же владелец всего этого, как можно пользоваться таким отстоем»? Мы все еще даем им взбучку, и это очень плохо. Этому была посвящена целая тема, но давайте я сначала расскажу, кто я такой.

Итак, я взламываю, я лютую и я выпиваю. Я пентестер сетевых приложений и обучаю этому людей, и я же – «чёрный» парень на конференциях по безопасности, да, это я! Так что если вам не нравятся такие парни, как я, вы можете встать и уйти. Порядки меняются, но я остаюсь прежним.

Я всегда так поступаю, потому что испытываю особую ностальгию по тем временам. Итак, разрешите мне вернуться немного назад, лет на 10. В те времена пентестинг был лёгким занятием, мы приходили к клиенту и говорили: «привет, чувак, мы люди из безопасности», и клиент поднимал руки вверх, думая: «вот чёрт, здесь люди из безопасности»!

Кто из вас помнит, что Nessus тогда был бесплатным? После этого мы взламывали сеть клиента инструментами с открытым кодом вроде ISS или Nessus.

Мы сканировали порты, чтобы найти цель, использовали всякие компиляции, «точку-слеш», все эти библиотеки и вскрывали панель управления. Итак, мы приходили к клиенту со всеми этими вещами и запросто взламывали его сайт, используя такие эксплойты, как RootShell с PacketStorm – поднимите руки, кто их помнит!

Затем мы делали скриншоты уязвимости, на которых можно было увидеть ваши пароли и прочую конфиденциальную информацию, и говорили: «ну всё, чувак, твоя сеть захвачена!».

«Ваша сеть – долбанный отстой, так что заплатите мне»! Потом мы составляли отчёт, писали, какая отстойная у них сеть, и получали за это деньги.

Хочется ему сказать: «тогда какого черта ты меня нанял?», а он отвечает: «знаете, мы сделали это, и это, у нас есть IDS и MAC, у нас есть то, у нас есть это…». Но сегодня, ребята, кругом сплошная CISSP, независимая сертификация информационной безопасности, и чувак, который нанимает тебя думает, что знает больше, чем ты. Все, кто меня знает, знают, что у меня всегда имеется какая-то история. И ты крутишься там, во всём этом дерьме.
Позвольте мне рассказать вам небольшую историю.

Он сказал: «ОК, Джо, я хочу, чтобы вы сделали аудит этих подсетей и список управления доступом ACL для VLAN». Несколько лет назад у меня был клиент, который заказал пентестинг. Наверное, кто-то из вас уже делал ACL для VLAN, так что вы, ребята, умнее меня, потому что я никогда этого не делал.

Он отвечает – аудит VLAN, ладно, думаю я, пойду, посмотрю на конфигурацию их сети. Я говорю – хорошо, какой именно аудит я должен сделать? Я был просто в шоке и сказал ему, как такое возможно, а он просто ответил – ну так получилось! И вот я сижу с сетевым администратором и вижу, что у них на 300 пользователей 90 сетей VLAN! А вот эта сеть вам нужна? Я взял маленький листок бумаги и стал обходить народ, спрашивая: «Вам нужна это сеть? Итак, я обошел всех, узнал, что кому было нужно, и это была большая, чертовски большая компания. Может быть, вам нужна вот эта сеть?». Я сказал себе: «эй, чувак, все эти коробки нуждаются в обновлении, их действительно нужно пропатчить». Я проверил все эти VLAN, провел сертификацию некоторых сетей и дошёл до одного из сегментов DMZ, которых в компании было 4 штуки. Я пошёл к заместителю генерального директора и сказал, что у вас есть всё это оборудование, которому требуется обновление программного обеспечения, так как вы пропустили некоторые SQL-патчи, PHP-патчи и ещё много чего.

Как можно прокомментировать то, что сервер разработчиков находится в DMZ? У них было собрание, потому что они постоянно встречаются, и вот один из разработчиков встаёт и говорит: «нет-нет, нам нельзя это обновлять, это наши серверы для разработки!» (смех и аплодисменты в зале). А мне отвечают: «Так лучше!».

Клиент спрашивает, почему это наша система IDS не смогла вас поймать, а я отвечаю, а что, там была IDS? Итак, я продолжаю работать на клиента, начинаю свой маленький пентестинг и «обрушиваю» пару стоек, потому что это легко сделать. Я отвечаю: «ну, наверное потому, что над этой IDS кто-то поработал»! Он говорит, да, мы с её помощью наблюдаем за безопасностью.

Итак, я должен был взглянуть на их «коробку» и попросил парня дать мне доступ, чтобы быстренько её осмотреть. Компании нанимают другие компании для аутсорсинга своих IDS, те управляют ими, составляют отчёты и делают ещё кучу всяких дерьмовых вещей. Оказалось, что там было аж 4 руткита! Я, черт возьми, потратил больше 2-х минут, чтобы залогиниться через SSH, и увидел, что эта стерва медлительна до чёртиков, поэтому я стал проверять её на руткиты.

Итак, что я делаю, когда выступаю против этих парней из крупных компаний, когда провожу аудит всех этих грёбаных банков, всех этих долбанных компаний – я обращаюсь за помощью к Google. Так что пентестинг – это крутая вещь! Никогда не занимайтесь такой ерундой, как сканирование уязвимостей, сразу берите систему «за горло». В первую очередь я ищу сообщения об ошибках SQL, ищу файлы для удалённого управления, всё то, что даст мне быстрый доступ к оболочке, самому уязвимому месту. Я поступаю, как женщина, которая хочет поймать мужа на измене – смотрю повсюду! Так что я всегда ищу SQL-инъекции, RF-файлы, межсайтовый скриптинг, и после того, как нахожу их, то перехожу к пассивной разведке и к OSINT – разведке на основе открытых источников, для этого я использую Maltego. Поверьте мне, вас удивит то, что он способен сделать! Я пытаюсь понять, какие у них подсети, где все эти вещи расположены, я использую этот невероятный инструмент под названием Firefox.

Я уверен, что большинство из вас уже используют её, этот приём определённо нужно использовать. Пассивная разведка – основной инструмент, который вы действительно должны попробовать. Я настраиваю нагрузку на «коробку» и выясняю, это балансировка нагрузки DNS или HTTP. Затем я ищу балансировщики нагрузки, сейчас я пропускаю через балансировщики нагрузки около 30% моих испытаний на проникновение, это действительно удобная штука. Например, когда вы посылаете пакеты и они разлетаются по всем этим путям, это делает тестирование немного сложнее.

Это позволяет послать серверу некоторые общие запросы. Затем я возвращаюсь к потрясающему браузеру Firefox и в режиме реального времени меняю содержимое заголовка строки поиска HTTP Headers.

То же самое с командой dig и Netcraft. Так что если вы отсылаете первый пакет и к вам возвращается ответ «5», затем вы посылаете еще один пакет на тот же ящик и он возвращает вам ответ «6», значит, у вас есть балансировка нагрузки.

Например, вы ищите что-то вроде «F5 BigIP» и получаете IP-адреса с уже сбалансированной нагрузкой. Netcraft вообще потрясающая вещь. Балансировщик нагрузки обнаруживается shell-скриптом или с помощью Halberd, это скрипт на Python, который делает то же самое. Во время пентестинга это для меня было очень важно. Так что это действительно хорошие вещи, которые помогают вам определить реальный IP хоста, который вы намерены атаковать и который находится за балансировщиком нагрузки.

Кажется, что IPS есть у каждого, однако подавляющее большинство моих клиентов используют её в режиме IDS. Следующая вещь, с которой я столкнулся, — это определение наличия IPS, или системы предотвращения вторжений. Кто-нибудь из вас пользуется этой вещью? Так же, как нет смысла использовать инструменты взлома против хоста с балансировкой нагрузки, нет смысла использовать их и против хоста, который защищен IPS. Действительно, попробуйте отключить её и посмотрите, что произойдёт. Отключите её к чертям, потому что она блокирует трафик! Это такое же дерьмо, как и все подобные ей системы. Кто из вас верит, что эта система блокирует незаконный трафик, она вам об этом написала? Я просто хочу убедиться, что я не единственный, кто так считает. Вы со мной согласны?

Итак, мне нужно выяснить, не нужно ли мне бороться против IPS, то есть не находится ли атакуемый хост под её защитой, и для этого я делаю некоторые действительно простые вещи.

В первую очередь я использую cURL – это инструменты командной строки, или скрипты, и библиотека, передающие данные по URL. Я парень Linux, но сейчас вынужден использовать Windows, поэтому чувствую себя слегка запачкавшимся. Поверьте мне, эта атака не работала с тех пор, как Иисус ходил по земле, так что сообщите мне, если вам удастся её осуществить. С помощью cURL я собираюсь победить ../../WINNT/system32/cmd.exe?d.

Потому что если эта штука посылает вам пакеты reset, вам нужно обратиться к cmd.exe?d, так как вероятно, что ваш адрес блокирует именно IPS. Единственная причина, по которой это нужно сделать, заключается в попытке узнать, не блокирует ли что-либо ваш IP адрес или не отправляет ли пакеты сброса вашего соединения. Это очень хороший инструмент, работающий на Python, что позволяет его немного изменить и настроить под свои нужды. Размышляя таким же образом, ребята из purehacking.com придумали инструмент Active Filter Detection, или активное обнаружение фильтра.

Если получаю, значит, мой IP-адрес заблокирован. Я часто сталкиваюсь с IPS, поэтому я использую 3-4 разных IP-адреса, с которых выстреливаю пакетами и смотрю, получаю ли я в ответ пакеты сброса. Поэтому следующее, что я делаю – это смотрю, может ли IPS справиться с SSL. Замечу, что большинство IDS/IPS решений не следят за закодированным SSL трафиком и за другим зашифрованным трафиком. Ещё раз напомню, почему мы используем Linux.

Вы видите, что я открываю порт 8888, а затем любые данные, которые я передаю локальному хосту 8888, попадают в этот маленький скрипт оболочки, вы видите server = /home/j0e/security/toolz/ssl_proxy.sh. Я создаю файл xlnetd и выполняю то, что называю «SSL-тест».

Таким образом, трафик поступает прямо в открытый SSL, а затем осуществляется соединение с целью и запускается все тот же Active Filter Detection или cmd.exe против локального хоста для того, чтобы установить, не заблокирован ли мой IP-адрес. На следующем слайде вы можете увидеть потрясающие способности моего скрипта — только посмотрите на этот скрипт из одной строчки!

Поэтому, если вы хотите заставить своих клиентов потратить деньги с пользой, скажите им, пусть покупают SSL-акселератор. Подавляющее большинство моих клиентов, которые развертывают IPS и используют режим блокировки, не расшифровывают SSL трафик перед тем, как он проходит IPS или IDS. Я занимаюсь этим довольно часто, запуская privoxy и в скрытом режиме использую для атаки на хост через порт 8080 такие инструменты, как Nessus. Он прерывает протокол SSL перед IPS и пытается расшифровать трафик.
Теперь посмотрим, как можно атаковать хост через Tor и как запустить через него инструменты для сканирования сети. В связи с этим стоит порекомендовать своим клиентам блокировать выходные узлы Tor.

Поэтому вы должны заставлять компании блокировать эти узлы, это то, что я в первую очередь делаю для своих клиентов. Большинство компаний не имеют никаких причин для того, чтобы позволять своим клиентам подсоединяться к своей сети через частные сети, однако никогда не блокируют такие подключения. У меня нет слайда с описанием GLib прокси, потому что похмелье действительно повлияло на мою способность как следует сделать эти слайды сегодня утром.

Как можно определить, использует ли хост WAF? Последнее, что я делаю, это идентифицирую WAF, Web Application Firewalls, или файрволы веб-приложений.

На самом деле обнаружить использование таких файрволов несложно. Поскольку я выполняю много PCI-пентестинга, то знаю, что некоторые гениальные головы в представительстве PCI поняли, что если у вас есть уязвимые веб-приложения, которые вы не хотите исправить их и устранить уязвимость, то вы можете использовать WAF. Злонамеренный HTTP запрос может содержать полезную нагрузку, которая включает в себя всякую ерунду типа апострофа, кавычек, вопросительного знака, минуса, скобки, звёздочки и так далее. Для этого достаточно отослать хосту 1 настоящий запрос, один злонамеренный запрос и посмотреть, чем будут отличаться его ответы.

Так что если вы запросите cmd.exe и используете утилиту командной строки grep для метода «501», то есть вместо ошибки 404 «не найдено» получите сообщение об ошибке 501 — «метод запроса не поддерживается сервером», то вы, вероятно, столкнулись с файрволом mod_security, защищающим сервера Apache. Так что совершенно не трудно выяснить, нападаете ли вы на хост, защищённый с помощью WAF.
Итак, вы посылаете любые недопустимые символы, после чего инструменты, изображенные на следующем слайде, выдают вам все виды этих странных вещей. Новые версии этого файрвола изменили ситуацию, но кто реально заботиться о том, чтобы обновлять свой WAF?

Так что я достаточно широко использую методы, показанные на следующем слайде, а также пропускаю свои атаки через файрвол AQTRONIX Web Knight.

Так что вы просто начинаете добавлять вещи в адресную строку, чтобы посмотреть, что это даст и не получите ли вы в ответ сообщение об ошибке 404 для файла, которого нет на хосте. Вы видите в заголовке ответа код 999 No Hacking, такую штуку я запускаю при тестировании – «Никакого хакерства».

Это и будет указывать на то, что в данном случае имеет место какой-то защитный механизм. Я имею в виду, что если вы посылаете правильный запрос, который выдаёт вам сообщение 200, а затем посылаете неверный запрос для файла, которого не существует, и сервер выдаёт ошибку 404, а затем вдруг вставляете что-то для межсайтового скриптинга, то сервер отправит вам совсем другое значение ошибки.

Если вы определили, что выступаете против WAF, посмотрите, поддерживает ли эта вещь HEX, обрабатывает ли она utf7, utf-8, base16, base64 или смесь этих кодировок. Вернёмся к нашим играм с кодировкой. Большинство WAF недостаточно хорошо работает с кодировками, особенно если вы начнёте смешивать их друг с другом.

Мои хорошие приятели, Санчо Гачи и Уинделл, в прошлом году создали инструмент на Python под названием WAFW00F – это утилита для обнаружения WAF.

Эта вещь мне очень нравится, сейчас у нас уже есть список из 10 или 12 WAF, и он постоянно увеличивается. Эта штука снимает «отпечатки пальцев» заголовков HTTP ответов и идентифицирует WAF. Следующая вещь, на которую стоит обратить внимание, называется WAF Fun, это инструмент, который воздействует методом brute-force на набор правил файрвола веб-приложений, и он тоже написан на Python.

Но я всё же надеюсь, что на следующей конференции DefCon смогу продемонстрировать, как работает WAF Fun с использованием метода brute-force. Я действительно восхищён этими парнями и желаю, чтобы мы достигли ещё большего прогресса, но вы же знаете, что мы немного выпиваем, потом работаем, потом опять выпиваем и снова работаем, так что процесс создания таких вещей не лёгок.

Правда, он написан на Ruby, а все мы знаем, что Ruby – это отстой. Ещё одна интересная вещь – это то, что мы можем проделать с помощью юникода.

17:00 мин

Вы потратили все эти деньги, но вас продолжают «иметь». Конференция DEFCON 18. Часть 2

Вам нравятся наши статьи? Спасибо, что остаётесь с нами. Поддержите нас оформив заказ или порекомендовав знакомым, 30% скидка для пользователей Хабра на уникальный аналог entry-level серверов, который был придуман нами для Вас: Вся правда о VPS (KVM) E5-2650 v4 (6 Cores) 10GB DDR4 240GB SSD 1Gbps от $20 или как правильно делить сервер? Хотите видеть больше интересных материалов? (доступны варианты с RAID1 и RAID10, до 24 ядер и до 40GB DDR4).

VPS (KVM) E5-2650 v4 (6 Cores) 10GB DDR4 240GB SSD 1Gbps до января бесплатно при оплате на срок от полугода, заказать можно тут.

класса c применением серверов Dell R730xd Е5-2650 v4 стоимостью 9000 евро за копейки? Dell R730xd в 2 раза дешевле? Только у нас 2 х Intel Dodeca-Core Xeon E5-2650v4 128GB DDR4 6x480GB SSD 1Gbps 100 ТВ от $249 в Нидерландах и США! Читайте о том Как построить инфраструктуру корп.


Оставить комментарий

Ваш email нигде не будет показан
Обязательные для заполнения поля помечены *

*

x

Ещё Hi-Tech Интересное!

[Перевод] Интервью с Дэвидом Гобелем

Дэвид любезно согласился дать LEAF очень интересное интервью. Дэвид Гобель – изобретатель, филантроп, футурист и ярый сторонник технологий омоложения; вместе с Обри де Греем он известен как один из основателей Methuselah Foundation и как автор концепции Longevity Escape Velocity (LEV), ...

10 долларов на хостинг: 20 лет назад и сегодня

Всё кругом дорожает, а технологии дешевеют. Когда-то компьютер или мобильный телефон могли позволить себе единицы, сейчас эти устройства есть в каждой российской семье. Цена мегабайта за последние 20 лет упала в несколько тысяч раз. Ещё один пример — хостинг. В ...