Как получить доступ к файлам на сайте

Обновлено: 05.07.2024

Что такое доступ по соединению ftp, зачем он нужен, как сделать доступ ftp, как зайти в корневую папку сайта. Об этом сегодня речь, так как работа с сайтом предполагает знание и понимание данного вопроса.

Также доступ к сайту может осуществляться по протоколу ftp, когда мы заходим на удаленный сервер, используя свой логин-пароль, и видим файлы, находящиеся в той или иной директории.

Соединение по ftp нужно для того, чтобы получить доступ к файлам и папкам сайта, то есть к документам.

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

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

Поэтому, каждому пользователю хостингом хостер предоставляет доступ по ftp. Чтобы его осуществить, нужно знать пароль и логин доступа по протоколу ftp. Замечу, что он отличается от пароля доступа к панели управления сайтом (админки). Также он может отличаться от пароля доступа к базе данных или доступа к панели управления хостингом. Вот так-то. (Не поняли о чем идет речь читайте Хостинг, cms и доступ по ftp – что это такое? )

Итак, теоретическая часть изложена, теперь давайте перейдем к практике.

Как же на самом деле зайти в корневую папку сайта?

Это можно сделать 2 способами.

1. Первый через панель управления хостингом (не путайте с панелью управления админкой),

2. Также используя программы filezilla или total commander, то есть программы-клиенты ftp.

Поскольку я пользуюсь программой total commander описывать, как создать доступ по фтп соединению, буду в ней. Вам важно уловить суть, а затем вы можете это применить при необходимости и к filezilla.

Продажа статей через Текстсейл! - Копирайтингом я начал зарабатывать и это ТО, что приносит мне ДОХОД и по сей день!

КАК спастись от ПРОЗЯБАНИЯ в Интернете - Узнайте ПРАКТИЧЕСКИЕ советы, что нужно ДЕЛАТЬ, чтобы не быть на обочине жизни и в Интернете!

Итак. Скачиваете программу total commander или её аналог unreal commander. Интернет вам в помощь, ссылок масса. Можете с официального сайта. total commander — платная программа, unreal commander — бесплатная. Какой из них пользоваться, не столь важно, они очень похожи.

Открываете её. Она имеет вот такой вид.

По цвету может немного отличаться, у меня синий фон, у вас может быть белый, не суть.

Тотал Коммандер — это программа файловый менеджер. Она позволяет быстро перемещаться между дисками, копировать, перемещать файлы, делать с ними различные манипуляции и т.д. Как правило, она оснащена ещё рядом утилит , которые полезны для администрирования своего ПК. Нас же сейчас интересует вкладка FTP

Кликнем на нее и видим пункт «Соединиться с сервером». Жмем. Открывается вот такое окно:

Здесь нетрудно догадаться, что сначала нужно нажать кнопку «Добавить» и откроются настройки соединения.

Теперь самое главное их правильно заполнить. Программа есть, ftp-клиент также есть, что ещё нужно? Заполняем нужные поля.

Имя соединения: здесь пишите название своего сайта, чтобы было понятно. Например, у вас сайт о путешествиях, значит «Путешествие»

Учетная запись – это ваш логин доступа по ftp. Не знаете, спрашивайте у хостера.

Пароль – пароль доступа по ftp. То же самое, если не знаете, спросите у хостера.

Внимание!! Хранить пароли в ftp-клиентах не рекомендуется. Я бы даже сказал запрещено. Откажитесь от этой привычки. Это небезопасное место.

Итак, когда все поля заполнили (удаленный каталог не обязательно указывать) жмете OK, а потом «соединиться с сервером». Если все поля были правильно заполненные, вы попадете в директорию, где расположен ваш сайт, а оттуда уже рукой подать к корневой папке. Затем жмете www или public_html. Все в своей корневой папке. А дальше действуете по обстоятельствам.

Вот и вся процедура. Ничего сложного. Точно также дело обстоит и с filezilla. Суть заполнения полей настроек соединения по фтп точно такая же.

Такой способ соединения самый просто и быстрый в два клика. Есть вариант ещё — это заходить в панель управления хостингом, и там найти в настройках доступ по ftp, но этот путь относительно долгий и неудобный. Хотя, как вариант, его можно рассматривать.

Превращаем буквы в деньги! - Научитесь зарабатывать, читая статьи в Интернете!

Заработок - это продажи! - Психология продаж в 7 подкастах! Уберите свой страх и внутреннее сопротивление

Комментарии (21)

Игорь, большое спасибо за статью. Обязательно последую твоим советам.Как раз сейчас сижу и ломаю голову, как загрузить сайт. И у меня ещё вопрос: а движки WordPress разве не на всех хостингах, на моём хостинге я что-то не вижу его наличия.Мне его порекомендовали как надёжный и дешёвый (740 руб в год)

С уважением Ирина

Движки, как правило устанавливает сам блоггер. Скачивает пакет с официального сайта, закачивает на хостинг и инсталлирует. Подключает базу и блог установлен (костяк) Но эту процедуру может делать и хостер, я правда ни разу к этой услуге не прибегал. ))

Спасибо, Игорь! Буду пробовать Ваши рекомендации. А в целом , спасибо за Вашу работу! Всегда интересно и полезно бывать у вас в гостях. Продолжайте в том же направление.

И вам, спасибо, Ирина!

Классно. Я, так понимаю, посредством этих программ можно также загрузить файлы вордпрес на хостинг?

Именно так. Загрузить, скачать на свой компьютер. Например, кое-какие правки, описанные здесь, их невозможно выполнить из админки. Только, скачав файл на компьютер, а затем обновив его на сервере. Или когда дело доходит до создания отдельной подписной страницы, без ftp-клиентов не обойтись.

Спасибо за четкий инструктаж! Тем более, что Total Commander — старый добрый друг.;)

Аналогично. Filezilla — однофункциональна, не вровень Total Commandery

Total одно время поругивали за «дырки» в FTP. Впрочем, версий ТС много, а дырки можно расковырять везде. Я как FileZilla попробовал, так ничего больше и не захотелось. Это дело вкуса.

Игорь, я тебе письмо в личку написал.

Безусловно. Кто к чему привык. Я тоталом пользуюсь помимо ftp-клиента, поэтому мне, как бы и нет смысла в дополнительных программах.

Письмо получил. Сейчас отвечу.

Так я не понял ты работаешь в тотале или filezilla? А пароли в ftp клиенте держишь?

В Тотал, а пароли в ftp клиенте не держу. Есть другая заначка, понадежней )

да заначек то море существует, только вот лень-матушка не даёт ими пользоваться.

Лень неистребима, её можно только на скамейку запасных посадить.

Здравствуйте, мой хостер дал вот такой ответ — Мы создали и развиваем платформу, в которой нет необходимости иметь доступ к сайту через ftp соединение!

как же быть? мне нужно написать robots txt

Значит у вас — конструктор, вы не платити за доступ по фтп, возможно и за хостинг. Это все равно, как если бы вы имели блог на ЖЖ или на блогспот. Скорее всего robots txt автоматически формируется в таких системах.

На некоторых платформах есть доступ по ftp через вебраузер. Например, ucoz.

А данным способом возможно подсоединение на блогспот?

НЕ могу подключить код ссылочной биржи, просят доступ по ftp и в админку. Это безопасно? Что нужно в первую очередь будет проверить после того, как они его установят.

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

Здесь вопрос доверия или нужно самому поставить код. После того, как установят, нужно сменить пароли доступа.

Для взлома не надо быть профессиональным хакером, речь в статье о так называемых «кулхацкерах», использующих плоды чужих «трудов» и самых простых случаях взлома. Статья ни в коей мере не howto, как взломать сайт. Цель — показать, насколько просто осуществляется взлом и рекомендовать меры по защите сайта и действия, в случае взлома «косовскими албанцами».
Приведён пример успешного розыска хакера российскими правоохранительными органами.

Как осуществляется взлом сайта?

  • перебор простых паролей доступа к админке/ftp («имя домена», 12345, admin, test и т.п.) — большое число взломов, как ни странно, происходит именно так;
  • использование уязвимостей скриптов (CMS и модулей).

Дело буквально пяти минут и не требует серьёзных знаний от взломщика. Дальнейшие шаги зависят от фантазии автора взлома — от неприятного дефейсмента, до уничтожения сайта и попытки захвата управления другими сайтами и сервером.

Я принимал меры, но как взломали сайт?

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

Ограничимся одним случаем. Серьёзную опасность представляет запуск скриптов под модулем Apache, например mod_perl. Запуск скрипта в этом случае осуществляется под пользователем Apache, который имеет доступ к данным пользователей сайтов.
Хакер, как описано выше, получает доступ к площадке одного сайта. Затем осуществляется размещение консольного скрипта, например cgi-telnet. И если права на конфигурационные файлы сайтов других пользователей выставлены в 644 (или тем более 777!), из консоли несложно прочитать содержимое файлов с паролями. Но! Только если запуск perl-скрипта осуществляется под пользователем Apache, т.е. под mod_perl (аналогичная ситуация с mod_php). При работе, например, под FastCGI — такой способ не даст доступа к файлам. Защититься от этого можно, устанавливая на критически важные файлы права 600 и используя FastCGI.

Как можно получить доступ к управлению самим сервером?

Последовательность действий по устранению последствий

  • Постарайтесь сразу определить, какие именно файлы были заменены, это может быть как index.php, так и файлы шаблонов, изображений и т.п.;
  • Сделайте скриншоты последствий;
  • Обязательно оповестите хостинг-провайдера и согласуйте свои дальнейшие действия;
  • Сохраните в отдельный каталог файлы сайта, время модификации файлов в дальнейшем поможет Вам определить злоумышленика;
  • Восстановите из резервной копии сайт или обратитесь для этого к хостеру;
  • Скачайте логи ошибок и доступа к сайту или попросите хостера их предоставить, лучше скопировать их в отдельный каталог, чтобы не удалились при ротации логов;
  • Анализ времени изменения файлов и сопоставления с записями в логах позволяют определить характер используемой уязвимости и IP-адрес злоумышленника;
  • Обновите скрипты или (если это невозможно) откажитесь от использования уязвимых модулей;
  • Обязательно смените все пароли доступа.

Преступление и наказание

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

Отделом К города N возбуждено уголовное дело по ст.272 УК РФ «Неправомерный доступ к охраняемой законом компьютерной информации. » в отношении гражданина РФ по заявлению юридического лица (владельца сайта). В феврале 2010-го года был выполнен взлом сайта производства одной из российских дизайн-студий («самописный» скрипт), через найденную злоумышленником уязвимость в коде сайта. Целью взлома являлось размещение рекламных баннеров. Злоумышленник принёс свои письменные извинения владельцу сайта с просьбой досудебного урегулирования — кроме уголовной статьи ему грозит и отчисление из ВУЗа. Так сказать — в интересах следствия подробности не разглашаются.

Если ущерб значительный, а IP-адрес «местный» (даже динамический и принадлежит Интернет-провайдеру), а не «китайского прокси» — можно с заявлением и имеющимися материалами обратиться по месту жительства в правоохранительные органы, а конкретно в отдел К. Следователи сами запросят у хостинг-провайдера официальное письмо с журналами и пояснениями ситуации, у Интернет-провайдера — кому был выделен IP-адрес. Компании обязаны предоставить эти сведения по запросу правоохранительных органов.
Взломщику общение с правоохранительными органами доставит много неприятных часов, особенно если на компьютере остались следы противоправной деятельности, не говоря уже о возможном судебном преследовании.

Краткие выводы

  • нигде не хранить учётные данные доступа;
  • использовать длинные комплексные пароли и нестандартные логины, периодически выполнять их смену;
  • своевременно обновлять скрипты с выходом обновлений;
  • при выборе компонента проверять на наличие незакрытых уязвимостей;
  • следить за правами на файлы скриптов и особенно критические файлы конфигурации;
  • средствами веб-сервера (например, .htaccess и .ftpaccess) разрешить доступ только с Вашего IP;
  • да, сохранять копирайты авторов скриптов надо, но по ним, а так же фрагментам адресной строки модулей, злоумышленники и ищут уязвимые сайты — смените хотя бы стандартные адреса обращения к скриптам;
  • периодически, в том числе внешними сервисами, проверять доступность конкретных разделов сайта;
  • иметь локальные бекапы сайтов.

PS: статья не претендует на абсолютную полноту изложения и ориентирована не на IT-гуру, разумеется, при целенаправленном взломе конкретного сервера или сайта могут применяться другие средства. Рад буду дополнить по комментариям хабрасообщества, в том числе и другими примерами.
И вкратце о действиях при взломе сайта.

image

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

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

Сбор сведений

Первый шаг, как правило, включает в себя получение информации о предполагаемой цели, в том числе идентификацию целевой машины, сбор важных деталей об IP-адресе, операционной системе, аппаратной части, сетевой конфигурации и инфраструктуре, DNS записях и так далее.

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

Утилиты для выполнения исследований

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

Maltego: Анализатор ссылок и данных (тоже с открытым исходным кодом)

Nessus: Сканер уязвимостей, позволяющий проверить разные аспекты, включая нестыковки в конфигурации, устаревшее программное обеспечение, небезопасные или отсутствующие пароли, бреши для проведения DoS-атак, которые могут способствовать в получении доступа или полного контроля над системой.

Netsparker: Сканирует сайты, приложения и службы сервера на предмет уязвимостей вне зависимости от операционной системы.

Nikto: Сканер на предмет присутствия опасных файлов и CGI-сценариев, устаревшего программного обеспечения, ошибок в конфигурации приложений, эксплуатируемых злоумышленниками.

ScanMyServer: Бесплатная онлайн-утилита, позволяющая обойти все страницы определенного сайта или блога и найти различные проблемы безопасности.

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

После получения предварительной детальной информации, можно переходить к следующей стадии, а конкретно – продумыванию методов получения доступа к целевой системе.

Получение доступа

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

OWASP (Open Web Application Security Project; Открытый проект для обеспечения безопасности веб-приложений) – организация, которая занимается отслеживанием уязвимостей и ведет рейтинг из десяти наиболее часто встречающихся и потенциально опасных брешей, используемых злоумышленниками для получения неправомерного доступа к веб-серверам.

Обычно наипростейший способ получить доступ и контроль над сервером – воспользоваться известными уязвимостями, к чему наиболее часто и прибегают злоумышленники. Хотя некоторые хакеры используют сценарии, отличающиеся от наиболее распространенных атак, в основном, если стандартные методы не срабатывают, злоумышленники начинают искать более доступную цель.

10 наиболее распространенных проблем по версии OWASP

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

1. Инъекция: внедрение кода в программу или запрос для выполнения удаленных команд (как в случае с SQL-инъекцией).

2. Неправомерная аутентификация: получения доступа к системе при помощи украденных, неправильно настроенных или полученных другим образом учетных записей.

3. Раскрытие конфиденциальных данных: реализуется, когда приложения ненадежно защищают пароли, токены сессий и другую конфиденциальную и ценную информацию.

4. Внешние XML-сущности (или XXE): сценарий, основанный на уязвимостях, связанных с парсингом XML-данных в приложениях.

5. Неправомерный доступ: реализуется вследствие некорректно настроенных прав пользователе или ролей.

6. Ошибки в конфигурациях, имеющих отношение к безопасности

7. Межсайтовый скриптинг (XSS): схож с инъекциями. Позволяет злоумышленнику внедрять клиентские скрипты в веб-приложения с целью обхода средств разграничения доступа.

8. Небезопасная десериализация: уязвимость, при помощи которой неправильно настроенные или неизвестные данные используются для запуска кода, обхода аутентификации, реализации DoS-атак и в других сценариях с целью обхода мер безопасности.

9. Использование компонентов сервера с известными уязвимостями.

10. Неудовлетворительное журналирование и мониторинг.

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

Бэкдоры и заметание следов

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

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

Этичный хакинг и тестирование на проникновение, информационная безопасность

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

1. Поиск уязвимостей в веб-приложении

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

Выполняемые действия сохраняются в Истории. У действия есть заголовок и определённый текст. Оказалось, что хранимые поля не фильтруются на специальные символы и слова, поэтому быстро удалось найти и подтвердить уязвимость XSS — то есть кода в поле вводишь что-нибудь вроде

а на странице сайта (в данном случае в История) показывает всплывающее окно JavaScript.

С помощью такой уязвимости можно, например, похитить кукиз других пользователей. Но проблема в том, что, видимо, История, у каждого пользователя своя. То есть максимум, что я могу сделать в этой ситуации, это захватить кукиз пользователей с точно такими же правами как у меня — то есть только у пользователей, выполнивших вход под гостевой учётной записью. Возможно, админу доступен список Истории всех пользователей — но не факт. Плюс надо ещё придумать, как спровоцировать его зайти в Историю — а то может получиться так, что в следующий раз он туда зайдёт через год, или через два, или никогда.

Поскольку видно, что специальные символы не фильтруются, а данные, скорее всего, хранятся в базе данных, то это может означать, что должна присутствовать уязвимость SQL-инъекция, которая позволяет получить базу данных сайта. Но я не успел это проверить — обнаружилась намного более лёгкая уязвимость — небезопасная выгрузка файлов.

Суть в том, что если я запускал новое действие, то мне для ввода были доступны несколько полей — в них я и обнаружил XSS и мог обнаружить SQL-инъекцию. Но при открытии сохранённого действия из Истории, на странице появлялось ещё одно поле — для загрузки файла.

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

И загрузил его на сервер. Сервер показал мне ссылку на этот файл. То есть файл загрузился! Я перешёл по ссылке и вместо того, чтобы скачаться, либо чтобы показать содержимое — файл был выполнен, то есть я увидел ту информацию, которую показывает функция phpinfo().

В чём ошибки программиста:

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

И более главное: при написании кода всегда нужно фильтровать данные и ограничивать файлы, которые можно загружать на сервер. Даже если вы программируете «для себя» и держите файлы на локальном сервере у себя на компьютере, всё равно может случиться неприятность — кто-то может подключиться к вашему веб-серверу по локальной сети (при использовании публичным Интернетом), или ваш компьютер может быть доступен напрямую по белому IP. Очевидно, что для публичного сайта код должен писаться с постоянной мыслью о безопасности.

2. Загрузка бэкдора

В начале я хотел воспользоваться самым простым вариантом — c99unlimited.php. Это шелл в фиде файлового менеджера и в нём удобно бродить по каталогам и скачивать файлы. Но у меня он не заработал — выдал ошибку 500. Видимо, у сервера с ним какая-то несовместимость.

Это абсолютно не проблема, разнообразных шеллов в Webshells очень много — можно долго сидеть и выбирать тот, который понравится, но я решил воспользоваться ещё более любимым Weevely. У меня к этому инструменту ещё более чувства )))) Хотя у него интерфейс командной строки — так мне нравится даже больше.

Создаём новый бэкдор (да, пароль просто цифра 1):

Заливаем его на сервер.

И подключаемся к нему:

3. Осматриваемся на сервере из бэкдора


Примечание: для лучшего понимания происходоящего, рекомендуется к знакомству цикл статей «Азы работы в командной строке Linux (часть 1)».

После подключения, Weevely показал, что я нахожусь в папке /var/www/XX1/tmp.

Можно дополнительно в этом убедиться:

Посмотрим, какие у меня права на эту папку:

Из этой информации следует, что владельцем папки является пользователей XX1. Но права на запись есть вообще у всех.

Кстати, а кто там я?

Я работаю от пользователя www-data.

4. Как скачать исходный код сайтов с сервера

Ах да, зачем я вдруг кинулся искать папку с правом на запись? Дело в том, что мне надо скачать файлы с исходным кодом — для дальнейшего анализа «в спокойной обстановке». Этих файлов много и скачивать их все по одному займёт много времени. Поэтому у меня план такой — запаковать все файлы в архив, а архив скачать.

Само собой, можно воспользоваться услугами папки /tmp, которая всегда открыта на запись для всех желающих. Но из папки /tmp я могу скачать только с помощью Weevely. Но если мне удастся сохранить архив в папку веб-сервера, то я могу скачать его прямо из веб-браузера или любой файловой качалкой. Это особенно актуально, если файл очень большой — может пригодиться докачка файла после разрыва соединения, что в командной строке с Weevely сделать не получится.

Понятно, что если мы в папке /var/www/XX1/tmp, то папкой веб-сервера является /var/www/. Посмотрим что там в ней:

А в ней папки других сайтов — в общей сложности 14 штук, но показать их я уже не могу.

Смотрим в шпаргалку, чтобы сохранить файлы в архив командой zip дополнительно нужно использовать опцию -r для рекурсивного добавления всего, что находится в папках, запускается следующим образом:

Каталогом для архивации является /var/www/, архив я пока сохраню в директорию /tmp (а не в папку с сайтами, так как получится, что мы попытаемся сохранить архив в папке, которая добавляется в этот архив — возможно, это вызовет ошибку).

Чёрт, на этом сервере не установлена программа zip. Можно воспользоваться встроенным эмулятором архивирования Weevely, но попробую ещё другую программу:

А вот программа tar оказалась на сервере. Внутренние команды означают:

  • c — создать архив
  • z — алгоритм сжатия
  • f — после этой опции указывается путь до архива и имя файла

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

Чтобы узнать размер всех подпапок в папке /var/www/:

Если нужно скачать только некоторые папки, то это делается командой вида:

5. Как узнать, какие сайты работают на сервере

Исходный код — это очень ценный трофей и он нам ещё во многом поможет. Но, как я уже сказал, на этом сервере много папок с сайтами — то есть и сайтов здесь много.

Ладно, проверим вручную. Если бинарный файл называется apache2, значит конфигурационные файлы хранятся в /etc/apache2/.

В папке /etc/apache2/conf-available собраны другие конфигурационные файлы, а в папке /etc/apache2/conf-enabled можно узнать, какие из них подключены.

В папке /etc/apache2/mods-enabled можно посмотреть, какие модули Apache включены.

В папке /etc/apache2/sites-available можно узнать, настройки для каких сайтов предусмотрены, а в папке /etc/apache2/sites-enabled — какие из них активны в данный момент.

К сожалению, не могу вам показать содержимое, могу только сказать, в sites-available оказалось 18 конфигурационных файлов. В этих файлах для каждого сайта как минимум 2 обязательных директивы:

  • ServerName — здесь имя хоста, фактически, домен сайта (иногда субдомен)
  • DocumentRoot — путь до файлов на этом сервере для данного хоста

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

Да чё уж там, берём всё, «дома разберёмся»:

6. Взлом MySQL

Если у нас есть доступ к файловой системе, то получение пароля от MySQL это дело техники.

Описанным выше способом (анализ виртуальных хостов и просмотр содержимого папок сайтов) находим адрес phpMyAdmin. Но phpMyAdmin может и отсутствовать — ничего страшного, можно работать с базой данных через консоль.

Самое главное, это проанализировать исходный код сайтов и найти там учётные данные. Чтобы упростить эту задачу, можно искать по содержимому файлов, особое внимание следует обратить таким строкам как:

А также файлам с говорящими названиями, например, connectdb.php.

Weevely имеет команду для подключения к MySQL из командной строки:

Либо если MySQL разрешает удалённые подключения, можно подсоединиться к хосту напрямую:

Там внутри можно посмотреть базы данных:

Там же можно посмотреть таблицы в базе данных и содержимое таблиц.

Если нужно сделать дамп всех баз данных для скачивания, то это делается командой:

Между опцией -p и ПАРОЛЕМ нет пробела — иначе появляется ошибка.

7. Анализ добытых паролей

База данных раскрыла много интересной информации. Но самая интересная — это список пользователей с паролями.

Это важно — пользователь имеет тенденцию использовать одинаковые пароли — это отдельная уязвимость, между прочим.

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

Ну и вообще — если пароли одинаковые, то есть смысл поискать другие службы — вдруг туда тоже подойдут уже имеющиеся у нас логины и пароли.

8. Промежуточный итог

Итак: сервер скомпрометирован через уязвимое веб-приложение.

Уже на данном этапе:

  • Получен доступ в файловую систему
  • Получен доступ к исходному коду сайта
  • Есть возможность редактировать файлы веб-сайтов
  • Получен пароль от СУБД, получен доступ к базам данных, есть возможность редактировать базы данных
  • Получены пароли пользователей от сервисов
  • Анализ паролей выявил в них явную закономерность
  • Найдены другие сайты и получен их исходный код

Можно уже сейчас составлять отчёт для владельца-заказчика и завязывать с этой оценкой безопасности.

Краткое содержание отчёта: всё плохо.

Но у этой истории будет ещё и вторая часть. Смотрите продолжение «Как взламывают сайты (часть 2)».

Читайте также: