Меню Закрыть

Скрипты для кали линукс

Содержание

Содержание статьи

Обойти HTTPS с помощью proxy (Pretty Bad Proxy)

Решение

Хотелось бы начать сегодняшний Easy Hack с относительно старой атаки — возможности «обхода» HTTPS в браузере. Если точнее, возможности внедрить свой JavaScript-код в любой сайт, защищенный HTTPS, при условии, что злоумышленник может «вставить» свой прокси в настройках браузера жертвы. Да, эта атака не работает на современных топовых браузерах. Но, во-первых, еще шесть лет назад ей были подвержены все они, а во-вторых, она служит отличным примером основных проблем с HTTPS (SSL). Да и с технологической точки зрения интересна.

WARNING

Корпоративная сеть, все пользователи ходят через корпоративный прокси. Мы производим DNS- или ARP-спуфинг и подменяем официальный прокси на свой. Также есть автоматическое включение прокси с использованием технологии WPAD (Web Proxy Autodiscovery Protocol), которая по умолчанию активирована в Windows-системах («Автоматическое определение настроек» в IE).

Далее. Почему нам так важно именно стать прокси-сервером? Дело заключается в уникальности работы через них. Если при обычном подключении по SSL данные идут напрямую и, не считая первых SSL-пакетов, там все зашифровано, то c прокси добавляется еще один шаг, который не зашифрован.

Итак, по RFC, для работы по HTTPS через прокси был придуман дополнительный метод — CONNECT. Когда пользователь пытается подключиться по HTTPS к серверу, его браузер сначала посылает запрос плейн-текстом на прокси такого вида:

Подключение по HTTPS через proxy

Хакер #183. Малварь для Android

Прокси же пытается подключиться по указанному IP и порту и, если все хорошо, отвечает:

При этом он не обрывает подключение (TCP), а начинает просто пересылать весь трафик от пользователя на сервер. То есть отсюда и далее идет обычное подключение по SSL. Теория, я думаю, ясна. Перейдем к самой уязвимости, которая была в браузерах.

Проблема была в том, что браузер обрабатывал ответ прокси (например, ошибку при подключении) в контексте домена сайта, к которому он подключался. И что еще круче — JavaScript тоже работал! Прокси-серверу ничего не стоило вернуть браузеру ошибку со своим JS и из него получить те же куки, например.

Идея атаки на HTTPS с proxy

Хотелось бы подчеркнуть здесь, что фактически ничто не нарушало само HTTPS-соединение. Оно как было зашифровано и нетронуто, так и осталось. Проблема была уровнями выше — в same origin policy (SOP) браузера, по которому все было вполне корректно: вне зависимости от того, откуда пришли данные, если origin тот же, значит, и доступ есть. Причем разработчики разрешали вывод ошибок от proxy из хороших побуждений — чтобы у пользователя была возможность видеть кастомную информацию о причинах ошибки подключения.

Прокачать Kali Linux

Решение

Я думаю, ты в курсе, что Offensive Security значительно переосмыслили свой знаменитый пентестерско-хакерский дистрибутив BackTrack и конкретно его переделали. Как минимум, теперь он называется Kali, и в качестве основы взяли Debian (раньше был Ubuntu). Также ядро теперь первой свежести, а не какой-нибудь LTS. По моему мнению, проблем только добавилось, но, думаю, у них были веские аргументы для перемен. Но задача не об этом.

Как это ни странно, Kali создавался как дистрибутив, на котором было бы предустановлено и настроено все необходимое ПО для наших с тобой дел. Но и сторонних тулз оооочень много, и они систематически обновляются и меняются. Получается, когда мы скачиваем Kali, уверен, нам чего-то да не хватит из предустановленного арсенала. И возникает потребность в установке дополнительных приложений, причем из сырцов. Это может стать очень приличным геморроем, особенно если возникают конфликты различных версий библиотек, языков. А кроме того, все это надо еще и обновлять… Также есть целый ворох проблем в виде необходимости патчить разного рода VM Tools, чтобы они таки заработали под ядрышком 3.12.

Но наше же дело — ломать, а не ПО ставить. А потому рекомендую воспользоваться скриптами, которые помогут тебе автоматизировать вышеупомянутые задачи.

Во-первых, это небольшой скриптец-инсталлятор — Lazy-Kali. Он дает возможность накачать ряд прикольных тулз (Unicornscan, Smbexec, Flash, Nautilus, Xssf, Ettercap 0.7.6, PwnStar и другие), а также удобненький интерфейс для обновления всех основных систем/тулз.

Во-вторых, я хотел бы тебе презентовать набор скриптов для комфортной работы Kali Linux от коллеги по DSec’у — @090h (пользуясь положением, передаю ему слова: «Ты — крутан :)»).

Данный набор скриптов полезен при первичной установке Kali для инстала большого количества софта в автоматическом режиме, также имеется скрипт для быстрого тюнинга. Ну и для любителей покопаться со всякими железками на ARM/MIPS есть возможность быстрого разворачивания тулчейнов под нужную архитектуру.

Перечислять все не имеет смысла — по исходникам все понятно. В общем, очень рекомендую. Взять можно здесь.

Для тех, кому скриптов мало и хочется большего, есть хорошая связка Vagrant + Packer, которая позволяет запилить себе виртуалочку Kali в автоматическом режиме. Шаблоны для виртуалки лежат рядом.

Определить IP-адрес, используя WEBRTC

Решение

Не так давно в браузеры пришла технология WebRTC (Web Real-Time Communication). Суть ее заключается в том, чтобы дать браузерам встроенную универсальную возможность, то есть без плагинов, осуществлять звонки, видеоконференции, передачу данных. Логично, что она возложена на специальный API в JS. И понятное дело, что возможность эта сможет потеснить Skype, например.

Сейчас эта технология поддерживается уже всеми топовыми браузерами (IE c 10-й версии). И даже есть примеры интеграции и использования технологии (если интересно — посмотри на хабре).

С другой стороны, у этой технологии для наших целей также есть кое-что. А именно — возможность получить IP-адрес системы. Заходит к тебе кто-то на сайт, а ты можешь узнать его IP, только используя возможности JavaScript’а. Причем, что очень важно, не IP-адрес NAT’a (вай-фай роутера или другого девайса) или IP прокси, а именно конкретного хоста в его подсети. К тому же можно получить IP-адреса всех сетевых интерфейсов. Никаких warning’ов при этом не отображается. Все тихо и незаметно.

Если кратко, то причина этой новой возможности JS в том, что хотя WebRTC и является P2P-технологией, но для нахождения хостов, для подключений между друг другом используется дополнительный сервер. Так вот, для обмена данными для подключения также был придуман протокол — SDP (Session Description Protocol). Для подключения в SDP, наряду с другой информацией, передаются и IP-адреса. Надеюсь, что не ошибся :).

Так что мы фактически приходим к тому, что наши внутренние IP уже не являются приватной информацией. Можно только надеяться, что потом для доступа к этому API потребуется подтверждение от пользователя.

PoC можно найти здесь.

Получить DNS имени по IP или rDNS

Решение

Это еще одна задачка, относящаяся к сбору информации об атакуемой сети. В данном случае мы опять-таки используем возможности DNS. Казалось бы, что тут вообще можно получить? Имеем мы, например, имя сервера нашей жертвы, резолвим его и получаем IP-адрес. Далее резолвим обратно из IP-адреса — смотрим получившееся имя. Иногда оно может отличаться от того, что было. Вдобавок к этому можно провести обратный резолв (из IP в доменное имя) и для соседних серверов, чтобы расширить attack surface… С этими задачками может и nslookup/dig справиться. Идейно здесь должно все быть понятно. Но мне бы хотелось обратить твое внимание именно на механизмы, которые используются при этом. Эти тонкости помогут тебе для определения количества серверов — «соседей» по хостингу.

Итак, у нас есть имя домена жертвы и его IP-адрес. Что же происходит при обратном резолве IP-адреса (nslookup 55.66.55.33)? По твоему запросу твой DNS-сервер пытается найти PTR-запись для этого IP-адреса. При этом DNS-сервер, который ответит тебе на запрос, будет другой, а не тот, что вернет обычные записи (MX, A, TXT…). Звучит странновато, но если пронаблюдать последовательность, то становится понятно.

Во-первых, для резолва IP-адресов действует обычный подход (иерархия). Для того чтобы сделать их валидного вида, просто создана специальная зона «.in-addr.arpa» и обратная последовательность IP-адреса. Например, 223.19.109.62.in-addr.arpa для 62.109.19.223.

Читайте также:  Doogee mix android 8

Полезность обратного резолва — нахождение других доменных имен

Далее, когда ты просишь свой DNS-сервер сделать обратный резолв, то он повторяет классический проход по иерархии. Сначала отправляет запрос на сервер один из рутовых DNS-серверов (a.root-servers.net, например). Тот отвечает именем сервера, ответственного за эту зону. Например, за 62.in-addr.arpa отвечает tinnie.arin.net. То есть мы увидим здесь один из основных регистраторов. Теперь мы делаем запрос уже к нему. Его ответ будет уже решающим.

Мы получим имя DNS-сервера, ответственного за диапазон IP-адресов. Это может быть провайдер или организация, то бишь автономная система (AS). Сам диапазон IP мы можем запросить через стандартную команду whois. У этого сервера мы можем напрямую запросить все PTR-записи по всему диапазону IP.

Таким образом, я думаю, теперь все встает на свои места. PTR-записи находятся на DNS-сервере, ответственном за диапазон IP, а не DNS доменной зоны. Резолв же идет стандартным путем по иерархии.

Обнаружили ns1.ispsystem.net, который отвечает за PTR-запись brrr.org.ru

Кстати, в продолжение прошлых тем про спуфинг email’ов, могу добавить, что некоторые почтовые серверы не желают получать почту с хостов без PTR-записи. Говорят, данный способ спасает от спама. Эта проблема решабельна — купить сервак с PTR-записью очень просто/дешево. Так что нас это не остановит, но знать о потенциальных проблемах желательно.

Собрать информацию с помощью dnsenum

Решение

Итак, задачка выше, наверное, была одной из последних про сбор инфы через DNS. В Easy Hack’е за последние несколько лет были описаны все основные методы по recon’у. Во всяком случае, других я пока что не знаю :).

Но с другой стороны, большая части информации была связана именно с методами, их причинами, и в качестве примеров приводились «точечные» инструменты — dig/nsloolup. Для понимания работы это то, что нужно. Но для пентестерских будней необходимы более быстрые и автоматизированные инструменты. Примером такой штуки служит dnsenum. Он входит в поставку Kali/BackTrack.

Списочек того, что он умеет делать:

  • собирать A-, NS-, MX-записи;
  • выполнять AXFR (трансфер зоны) для DNS-серверов;
  • получать поддомены по гуглу;
  • брутфорсить поддомены;
  • производить реверс-запросы по диапазону из whois’а.

Не могу сказать, что эта тулза лучшая среди конкурентов (а аналогов много). Гуглохакинг, например, не очень, но все-таки она хороша, быстра и проста. Так что если еще не подобрал себе что-то — попробуй ее.

Спрятать JavaScript в GIF/BMP и обойти CSP

Решение

В последних версиях современных браузеров появилась такая интересная технология — CSP (content security policy). Недавно в «Хакере» была хорошая статья на эту тему, так что в подробности CSP я вдаваться не буду, а лишь напомню основные моменты.

Итак, задача, стоящая перед CSP, — это снизить последствия от XSS-уязвимостей (и не только их). Сервер в ответе добавляет HTTP-заголовок, в котором указывает, с каких доменов разрешена подгрузка JavaScript’ов, картинок, CSS-стилей. К тому же по умолчанию запрещается исполнение inline JS скриптов. Таким образом, даже если хакер может внедрить на страницу произвольный HTML, то яваскрипт payload нельзя будет подгрузить с хакерского ресурса. Мне это чем-то напоминает DEP как механизм защиты памяти: по сути, это ограничение того, какой код может исполняться, а какой — нет.

Хотя технология и подвергается критике. Мне кажется, что она приносит приличный ряд трудностей при эксплуатации XSS’ок, иногда совсем сводя возможность эксплуатации на нет. А как-никак XSS — самая распространенная уязвимость веб-приложений. Главное, не считать CSP «серебряной» пулей, которая решит все проблемы. CSP отлично себя может показать на небольших и «целостных» сайтах, требующих высокого уровня защищенности. Например, на сайтах интернет-банкинга.

Но наша цель — это обход CSP. Что же мы можем сделать? Если мы вспомним, что CSP указывает, откуда скрипты могут быть загружены и исполнены, то получается, туда нам и надо подгрузить наш скрипт. Как же это сделать?

Один из вариантов следующий. На многих сайтах сейчас есть возможность залить свои картинки, и если домен, куда попадают картинки, также входит в скоуп CSP, то мы получаем простой способ обхода CSP. Загружаем на атакуемый сайт свою картинку, которая в то же время является и валидным JavaScript-файлом, и в XSS ссылаемся на нее.

Теперь глубже. Как же это возможно? Здесь есть несколько основополагающих факторов. Во-первых, вспомним, что когда мы подгружаем JS через script src=, то браузер игнорирует тип получаемого файла, то есть заголовок «Content-Type: image/gif», который отдается сервером при загрузке gif-картинки. Фактически это может быть любой файл. Во-вторых, браузер будет его парсить как JS. Получается, главное — чтобы файл был валидным JS-ником. Таким образом, делаем вывод, что мы можем обойти CSP при подгрузке любого типа файла (почти), если внутри спрятать валидный JS.

Но достаточно часто на сервере тип файла проверяется при загрузке. А потому встает задача и обойти фильтр, то есть получить одновременно и валидный JS, и валидную картинку при этом.

На самом деле это не очень трудно (в конце топика ты легко сможешь сделать это сам). Но вот Saumil Shah на конференции добился еще большего. Для GIF и BMP он смог и сделать валидный JS-файл, и сохранить возможность визуализации картинки. Техника называется imajs.

Если мы подключаем такую картинку через — она отображается, если через

Если нужно получить доступ к серверу, поправить работоспособность чужой сети или побаловаться с чьим-то сайтом – Kali Linux вам в помощь.

В этой статье будем рассматривать отличный видеокурс по взлому сайтов, SQL-инъекциям и прочим интересным штукам, которые наиболее удобно реализовать с Kali Linux.

В первой части курса рассматривается установка дистрибутива Kali Linux на виртуальную машину VMWare со всеми встроенными инструментами. Для тренировок будет использоваться виртуальная машина OWASP Broken Web Application, в которой находятся сайты с уязвимостями: их-то мы и будем мучить. Также обновим операционную систему.

Рекомендуем к просмотру видео по установке Kali Linux с флешки:

Ну и конечно же установим Kali Linux на эту самую флешку, сохранив при этом все пользовательские данные:

Небольшое ознакомительное видео о том, что такое XSS:

В следующем ролике автор рассказывает про XSS-уязвимость сайта, через которую будет взламываться удаленный компьютер. XSS – очень старая, но до сих пор работающая технология взлома. Если у вас есть свой сайт, проверьте, не выполняет ли он пользовательские скрипты, если их ввести, например, в поле комментария? Через эту брешь при помощи инструмента Beef было взломано множество ресурсов…

А данный видеоурок позволит рассмотреть работу XSS-атаки изнутри:

Это вторая часть обучающего материала про межсайтовый скриптинг. В ролике автор показывает, как исполнить скриптовую Reflected-атаку на пользователя через сайт с брешью в безопасности. С помощью инструмента Burp Suite получаем хеш ссылки, по которой открывается скрипт и подсаживаем наш ужасный hook ничего не подозревающему пользователю. Когда пользователь откроет целевую страницу, его компьютер окажется в наших руках.

Еще один полезный туториал по взлому с использованием Burp Suite, но без необходимости использовать платный инструментарий:

Автор рассматривает базовые понятия о cookies и средства безопасности в самом браузере для защиты “печенек” от злоумышленника. Будем воровать cookies из браузера Chrome того пользователя, которого взломали на прошлом уроке. Используется по-прежнему многофункциональный инструмент Beef и JS-скрипты, чтобы представиться сайту под именем нашего тестового пользователя.

Другой способ украсть "куки" с использованием Kali Linux:

В этом ролике автор будет показывать, как с помощью встроенного в Kali Linux инструмента Aircrack-ng можно получить доступ к защищенному роутеру. Будет рассмотрено, как создать флешку с Live CD с Linux-ом для тех случаев, когда на вашем компьютере нет беспроводного адаптера или он не поддерживается Aircrack-ng. Взлому будет подвергаться роутер на котором включен MAC-фильтр, шифрование WPA2 + имя сети будет скрыто.

Мы также подобрали видео, которое не обрывается. Автор максимально доступно объясняет возможные уязвимости и способы их использования. Вы узнаете, почему Wi-Fi сеть никак не может быть на 100% защищенной.

Читайте также:  Pin face unlock zip

В первой части этого урока будем разбираться, как “подсунуть” целевому серверу логин и пароль для входа, если мы этого не знаем. Данный распространенный вид атаки подразумевает под собой обман SQL-базы через подстановку передаваемых параметров. Для этого могут понадобиться дополнительные знания ответов web-сервера и понимание базовых вещей в MySQL.

Продолжаем изучать процесс взлома сайта через логин и пароль. В этом уроке используется локальное прокси браузера и встроенный инструмент Burp Suite для перехвата отправляемых параметров из web-сервера в базу данных. Для понимания урока и облегчения применения знаний на практике хорошо бы знать тонкости работы запросов GET/POST, а также углубленное понимание SQL-синтаксиса.

Второе видео по SQL-инъекциям хоть и короткое, но очень информативное:

Также можно обратиться к развернутой лекции:

В этом ролике будем получать пароли пользователей Windows. Из-за того, что пароли хранятся в виде одностороннего шифрования, понадобится специальный инструмент, чтобы расшифровать строку и получить искомое. Использоваться будет программка Cain and Abel. Эту манипуляцию нельзя назвать взломом, а скорее расшифровкой, но несмотря на это – информация полезная.

Также предлагаем ознакомиться с другими нашими статьями, которые посвящены взлому паролей:

Kali Linux видится многим как «хакерская» операционная система. Сами хакеры, особенно в молодёжной среде, воспринимаются c восхищением. Отсюда понятен интерес молодых людей к Kali Linux. Они пробуют её установить запустить и у них возникает масса «детских» вопросов. Отвечать на эти вопросы нужно, какими бы простыми, наивными или некорректными они не были. Лично для меня неприемлемо поведение «бывалых», которые на такие вопросы отвечают «а зачем тебе?», «опять каникулы в школе?», «за такие глупые вопросы нужно уже банить?» и т.д. Этим хамством забиты российские технические форумы. Подобного я не позволяю себе и не позволю другим на codeby.net и FreeForum.biz. Абсолютно каждый, каким бы большим специалистом он не стал сейчас, начинал с изучения азов, начинал с «детских» вопросов. Те, кто не задаёт простых вопросов, в конечном счёте, так и не узнает на них ответов.

Настройка, работа Kali Linux вызывает вопросы и у продвинутых пользователей Linux. Но эти вопросы являются сложными или творческими. И, с одной стороны, хочется помочь всем начинающим (т.к. сам таким был), а с другой стороны, не хочется скатываться до совсем ясельного уровня. Ведь отвечать на банальные вопросы и не интересно, и жалко времени.

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

1. Основы языков программирования

1.1 HTML

На самом деле, HTML – это даже не язык программирования, а язык разметки, т.е. он используется, грубо говоря, для оформления текста.

Как он может помочь начинающему хакеру? Приведу мой личный пример. У одного из провайдеров Интернета, услугами которого я пользовался (местный провайдер с домовой городской сетью), был (может и сейчас есть – не знаю, давно ушёл от этого провайдера) свой сайт и свои собственные сервисы для пользователей. В начале 2000х это было актуально – Интернет-трафик (внешний) был платный, поэтому все старались пользоваться локальными ресурсами. Эти ресурсы, безусловно, были очень популярны. Один из самых популярных – файлообменник. Из-за постоянных злоупотреблений пользователей (например, «раздетая» с помощью Фотошопа одноклассница Маша) владелец файлообменника ввёл обязательный пароль. Этот пароль генерировался автоматически, и он не мог содержаться в комментарии к файлу. Так вот, анализ формы для отправки файла и некоторые эксперименты с ней показали, что пароль содержится в одном из скрытых полей формы, которое, естественно, можно редактировать. На сервере этот пароль ничем уже не проверялся. В результате, сохранив форму для загрузки файла себе на компьютер и чуть отредактировав её, удалось сделать так, чтобы файлы можно было опять загружать без пароля. Этой формой мог пользоваться любой клиент провайдера. Позже провайдер «закрыл» дыру – стал проверять наличие пароля. Тем не менее, такими же простыми манипуляциями удалось сделать так, что файлы загружались всегда со «стандартным» паролем («0000», вроде) плюс этот пароль можно было записывать в комментарий к файлу.

Те, кто знаком хотя бы с основами HTML, прекрасно понял, о чём я говорю. Для остальных – это просто китайская грамота.

Ещё один свеженький пример. Буквально на днях (11 февраля 2015 года), была обнаружена дыра в теме WordPress, которая позволяет закачивать производные файлы на сервер. Описание этой темы здесь. Уязвимой в этой теме является файл admin/upload-file.php. Я нашёл эту тему и нашёл этот файл. Файл совсем короткий, поэтому я приведу его полностью:

Этот файл на PHP, но, чтобы воспользоваться этой уязвимостью, нужно сделать форму отправки файла именно на HTML.

Итак, HTML нужно знать, чтобы: а) искать уязвимости; б) использовать уязвимости. Есть и более продвинутые задачи, для выполнения которых нужно знать HTML, но остановимся на этом.

1.2 PHP

Выше я привёл содержание крошечного файла, написанного на PHP. Этот файл содержит такую брешь, что уже не важно, насколько хорошо настроен сервер, есть ли файловый файервол и т.д. Если кто-то использует эту тему – то сайт этого человека в полной нашей власти (а если сервер/хостинг криво настроены, то весь компьютер под нашим управлением). Но ведь чтобы это понять, нужно хоть чуть-чуть знать PHP.

Чтобы использовать готовые эксплойты, которые написал кто-то другой, опять же, нужно знать хотя бы основы PHP, чтобы знать куда записать адрес сайта и другие переменные величины, и как вообще запустить этот скрипт.

1.3 MySQL

Обычно, самое интересное находится в базах данных. Чтобы понять, как использовать MySQL-инъекцию, нужно знать, что такое MySQL-инъекция. Чтобы уловить суть MySQL-инъекции, нужно знать, что такое MySQL-запросы, каков синтаксис этих запросов, каково устройство базы данных, как хранятся данные, что такое таблицы и т.д.

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

1.4 JavaScript, JQuery

Хотя бы нужно знать, что на веб-сайтах управляется, зависит от JavaScript. Ведь на некоторых сайтах, которые на дают выделить (и/или скопировать) содержимое, не дают скачать файл или не дают посмотреть содержимое достаточно просто отключить JavaScript, чтобы всё это стало возможным.

Ну а чтобы отключить JavaScript, нужно знать: а) в каких ситуациях работа (защита) сайта зависит от него; б) как JavaScript подключается и какими способами можно блокировать работу скриптов.

Можно привести тонну примеров неудачной защиты форм с помощью JavaScript (мне запомнилась форма на сайте ФСБ РФ – чтобы её отправить, там обязательно нужно заполнить стопятьсот полей (паспорт, прописка и т.д.), но самыми простыми манипуляциями это «ограничение» можно обойти (это было давно, вполне возможно, они исправили форму обратной связи)).

2. Основы устройства сетей, работы веб-серверов и веб-сайтов

2.1 Устройство сетей

Про устройство сетей обязательно нужно знать: что такое IP адрес, что он позволяет идентифицировать пользователя Интернета, как спрятать свой IP , что такое прокси, что такое TOR, что такое домен, порты и т.д.

Вышеперечисленное нужно знать на первых порах хотя бы для того, чтобы понимать базовые компьютерные тексты и инструкции. А ещё для осознания факта, что анонимность в интернете – это вещь эфемерная.

Продвинутые знания о построении сетей в дальнейшем помогут проводить результативные сканирования с помощью специальных программ.

Читайте также:  Вождение на фуре обучение

2.2 Понимание устройства и работы веб-сервера

Как и в предыдущих пунктах, начну с простого примера (кстати, совсем недавнего). При посещении одного из серверов, было обнаружено, что настройки сервера позволяют просматривать содержимое каталогов (листинг файлов). На сервере был найден phpMyAdmin, но стандартные пароли к нему не подходили. Блуждая по каталогам в попытке найти уязвимые скрипты (там самописные скрипты для обработки записей в больницу и раздачи «номерков») был найден текстовый (!) файл содержащий одну строчку с двумя словами, разделёнными запятой. Как оказалось, это и был логин с паролем для phpMyAdmin. База данных, как говориться, наша из-за клинической глупости разработчика, но вот для записи своего файла на сервер понадобились знания об этом сервере. Например, нужно знать абсолютный путь, куда будет произведена запись шела. Чтобы знать абсолютный путь, нужно хотя бы знать структуру каталогов сервера Apache.

Этим примером я хочу сказать не то, что нужно выучить структуру Apache. Я хочу сказать, что без знаний о работе, об общих принципах устройства веб-сервера, постоянно будете натыкаться на невозможность в полной мере «раскрутить» уязвимость, даже если она уже найдена.

Помните что я говорил про языки программирования и про понимание принципов работы веб-сайтов? Чтобы понять всю глубину нужно самому стать веб-разработчиком. Чтобы понять веб-сервер, нужно читать книжки не по взлому веб-сервера, а по его обслуживанию. Т.е. нужно самому стать системным администратором, и осознание слабых мест, в какие стороны, при попытке проникнуть на веб-сервер, нужно «капать», придёт само.

2.3 Понимание устройства и работы веб-сайтов

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

Чтобы продолжить знакомство с устройством веб-сайтов, желательно иметь опыт по работе с популярными системами управления контентом, с популярными движками и скриптами. Знать как устроены плагины и темы, где они располагаются, какие файлы могут представлять интерес и т.д.

Например, очень простое знание о том, что для добавление на сайт картинки, которая по отношению к .htm файлу находится на два каталога выше можно использовать конструкцию ./../../, т.е. например

Это очень, казалось бы, банальная информация позволила создать очень простой, но потрясающе эффективный «хак»

Когда я открыл это для себя, я ещё пользовался бесплатным хостингом (название домена компании holm.ru или holms.ru – они ещё раздавали домены третьего уровня вида *.h7.ru, *.h10.ru, т.е. цифры там последовательно менялись, по мере заполнение серверов).

Я применил эти несколько строчек, которые привёл чуть выше и оказалось, что я могу выходить за границы выделенной мне папки. Чуть усовершенствованный скрипт позволил мне не просто просматривать корень сервера, а переходить во внутрь папок, которые я видел и открывать файлы для просмотра. Результат был потрясающим! Я очень много узнал о чужих сайтах. Главное открытие, что соотношение «нормальных сайтов» к «ненормальным» (мошенническим, бессодержательным, просто пустым) не в пользу «нормальных». Попадались «сайты знакомств» (я до сих пор иногда встречаю такие), где очень красивая «обложка» – главная страница, с симпатичными людьми, которые как бы уже являются пользователями сайта. И если хочешь с ними начать общаться, то нужно зарегистрироваться и что-то там ввести или заплатить. А на самом деле внутри веб-сайта кроме этих десяти фотографий больше ничего и нет. Это сейчас всем понятно – но в своё время Интернет-мошенничество я изучал именно так.

Но самое потрясающее, что обнаружил, это сайты в названии доменных имён которых встречалось слово mail. «Снаружи» эти сайты состояли из одной единственной страницы, полностью идентичной странице входа в почту mail.ru. А вот внутри там лежало несколько файлов, один из которых почти всегда оказывался собранными парами логин-пароль. Т.е. кто-то под разными предлогами (посмотреть открытку, например), заманивал пользователей на эту страницу, ничего не подозревающие пользователи вводили свои данные и они уже попадали к хакеру.

Скомпрометированных учётных записей было много (со всех сайтов я набрал больше сотни). Примерно в половине случаев пароль не подходил (пользователь успел его сменить), либо почтовый ящик был полностью пустой (пользователь что-то заподозрил и удалил все письма). Но вот вспоминая вторую половину, я до сих пор мучаюсь догадкой: люди, когда думают что никто не узнает, действительно такие еба… странные или мне просто повезло с подборкой? Из интересных ящиков очень многие, так или иначе, содержали переписку по обмену интимными фотографиями, разговоры «ниже пояса», причём в значительной части была затронута и тема несовершеннолетних. Я до сих пор помню фотку переодетого в женский наряд мужчины (чулки и вообще полный набор), который прислал её женщине, которая интересовалась женщинами (мужчина убеждал, что он – это женщина), чтобы она в ответ прислала свои «голые» фотки. А на что готов пойти ты, чтобы увидеть фотографию голой женщины? 🙂

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

Трудно не согласиться с Виктором Пелевиным

Просто ассемблер чужой души при близком рассмотрении редко выглядит привлекательно.

3. Основы работы операционной системы Linux

Чем больше вы знаете про Linux, тем лучше. Хотя бы уже потому, что огромное количество веб-серверов в Интернете в качестве операционной системы использует Linux.

Я рассказал свой случай про выход за пределы из выделенного мне на хостинге каталога. У другого хостера, мне удалось попасть в корневой каталог файловой системы (а вот сайты оказались недоступными, поскольку права на папки были прописаны правильно). И представьте ситуацию: я мечусь по папкам сервера, ведь нужно быстрее хватать что-нибудь ценное, пароли разные и т.д. А где что лежит у Linux’а? В какие каталоги надо переходить и какие файлы скачивать? Я был совершенно не знаком тогда с Linux и главный вывод, который я сделал для себя после того случая – нужно разбираться с Linux, иначе никак.

Многие программы для анализа сетей и веб-сайтов на проникновение работают на Linux. Нужно знать, как установить, как запустить (если это консольная программа).

Вообще, в непривычной ОС пользователи иногда не знают, как скопировать файл, или как его открыть, или как установить новую программу, или «где диск D» и т.д. В общем, изучайте Linux в самых разных его аспектах.

И начтите своё изучение не с Kali Linux, а, например, с Linux Mint.

Kali Linux – она не очень подходит для новичков. Даже в дружелюбной Linux Mint могут возникать вопросы по обычному использованию. Что уж говорить про Kali Linux. Все программы, которые есть в Kali Linux, прекрасно могут работать и на других версиях Linux. Я бы рекомендовал так: в качестве основной ОС использовать Linux Mint, а после изучения новых программ устанавливать их в Linux Mint или же, в качестве виртуальной машины (второй ОС) использовать Kali Linux.

Заключительные слова

Я привёл несколько примеров из своих экспериментов по обходу ограничений и проникновению. В скольких из них я использовал Kali Linux? Ни в одном. Я прекрасно помню своё первое знакомство с предшественницей Kali Linux – я установил в виртуальный компьютер, посмотрел меню (там непонятные английский названия), попробовал запустить некоторые программы (почти всегда открывалась командная строка), понял, что здесь ВООБЩЕ ничего не понятно, всё закрыл и удалил.

Изучайте языки программирования (PHP, MySQL, HTML), новые технологии, Linux, устройство и работу сервера. Старайтесь мыслить в созидательном русле (как сделать сайт, как обслуживать сервер, как эффективно работать в Linux) и понимание глубинных процессов придёт само. А именно это (знание и понимание происходящих процессов) и есть главное богатство хакера. Не нужно зацикливаться на Kali Linux. Изучение Kali Linux без знания того, что я перечислил выше – это равносильно построению дома без фундамента.

Рекомендуем к прочтению

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

Ваш адрес email не будет опубликован.