В этой статье вы узнаете о том, как взламывать учетные данные сайтов на WordPress с помощью различных брутфорс атак.
- Предварительные требования
- WPscan
- Metasploit
- Люкс Burp
- Как обезопасить сайт от брутфорса?
- Предварительные требования
- WPscan
- Metasploit
- Burp Suite
- Сложность пароля
- Двухфакторная аутентификация
- Captcha
- Плагин брандмауэра WordPress
- Подключить СDN сервис
- Установить и настроить бэкап плагин
- Отключение просмотра каталогов и автоматических обновлений
- Приступаем к взлому WordPress
- Тестируем первоначальные находки
- Обходные маневры
- Развиваем идею
- Получение shell-доступа
- Уроки на будущее
- Как хакеры взламывают сайты
- Что случилось с сайтами
- Как хакеры взламывают сайты
- Подбор логина и пароля
- Устаревшая версия ПО
- Бэкдоры
- Базовые требования к безопасности сайта
- Типичные взломы сайтов
- Фармацевтические взломы
- Вредоносные редиректы
- Тестирование и очистка сайта после взлома
- Проверьте сайт в этих сервисах
- Более простой способ:
- Удаление вредоносного кода
- Обновите ПО, смените пароли, ключи и соли
- Как удалить сайт и IP из черных списков
- Sucuri Security
- Wordfence
- iThemes Security
- All in One WP Security & Firewall
- Security Ninja
- VaultPress
- Theme Check
- Выясните, был ли сайт действительно взломан
- 2. Сделайте бэкап
- 3. Просканируйте компьютер
- 4. Обратитесь к профессионалам
- 5. Поговорите с техподдержкой хостинга
- 6. Восстановите сайт из бэкапа
- Как восстановить Вордпресс сайт, если есть доступ к админке
- 1. Смените пароли
- 2. Просканируйте сайт
- 3. Замените взломанные файлы оригинальными
- 4. Проверьте пользователей сайта
- 5. Замените ключи и соли
- 6. Замените пароли еще раз
- 7. Укрепите безопасность сайта
- 8. Как вернуть недостающий контент
- Как восстановить Вордпресс сайт, если нет доступа к админке
- 1. Сбросьте пароль администратора в phpMyAdmin
- 2. Найдите взломанные файлы
- 3. Замените взломанные файлы
- 4. Просканируйте сайт еще раз
- 5. Последние действия
- Заключение
- Введение
- Индексирование сайта
- Определение версии WordPress
- Автоматизация процесса тестирования
- Определение установленных компонентов
- Брутфорс wp-login
- Security-плагины для WordPress
- Заливаем Shell
- Подключаем. htaccess
- Защищаем файлы
Предварительные требования
- Сайт на WordPress. Здесь мы будем использовать собственную лабораторию для пентеста, о созданию которой был посвящен наш предыдущий пост.
- Kali Linux (WPscan). Более подробно о WPScan и его возможностях мы уже писали, а вместо Kali Linux можно использовать любую другую из ОС для белого хакинга.
- Burp Suite (Intruder). Более подробно о данном инструменте можно узнать здесь.
WPscan
WPscan – это фреймворк, который используется в качестве сканера уязвимостей методом «черного ящика». W Pscan предустановлен в большинстве дистрибутивов Linux, ориентированных на безопасность, а также доступен в виде подключаемого модуля.
Здесь мы будем использовать WordPress, размещенный на локальном хосте.
- Собственные общие списки логинов и паролей
- Базы логинов и паролей, которые уже есть в Kali Linux
В данном случая был использован файл паролей rockyou.txt, который предоставляется со стандартной Kali Linux и содержит 14 341 564 уникальных пароля.
wpscan --url http://192.168.1.100/wordpress/ -U users.txt -P /usr/share/wordlists/rockyou.txt
- –URL — это параметр URL-адреса, за которым следует URL-адрес веб-сайта WordPress для сканирования.
- -U будет перебирать только указанные имена пользователей, в нашем случае это users.txt
- -P перебор паролей из предоставленного списка rockyou.txt
Продолжительность сканирования во многом зависит от размера файла имен и паролей. В нашем случае мы сопоставляем большое количество имен с еще большим количеством паролей, что может сказаться на производительности сайта.
Metasploit
msf > use auxiliary/scanner/http/wordpress_login_enum
msf auxiliary(wordpress_login_enum) > set rhosts 192.168.1.100
msf auxiliary(wordpress_login_enum) > set targeturi /wordpress
msf auxiliary(wordpress_login_enum) > set user_file user.txt
msf auxiliary(wordpress_login_enum) > set pass_file pass.txt
msf auxiliary(wordpress_login_enum) > exploit
Burp Suite
Посмотрите на изображение ниже и обратите внимание на последнюю строку перехваченного сообщения, где указаны учетные данные для входа как raj: raj, которые были использованы для входа в систему. Теперь нужно отправить эти данные в Intruder, что можно сделать с помощью сочетания клавиш ctrl + I или выбрав опцию Send to Intrude в контекстном меню.
Теперь открываем вкладку Intruder и видим запрос базового шаблона, который был сюда отправлен. Выбираем Positions, где по умолчанию активно несколько позиций, которые помечены символами §. Все, что находится между двумя символами §, заменяется полезной нагрузкой. Но сейчас все они нам не нужны, поэтому нажмите кнопку очистки в правом нижнем углу окна редактора.
Теперь нажимаем кнопку start attack.
На вкладке payloads в раскрывающемся списке можно увидеть числа 1 и 2. Выберите 1 для первой позиции полезной нагрузки и установите для него простой список. В простой список можно вручную добавлять элементы с помощью кнопки add, а также вставлять список с помощью буфера обмена или загрузки из файла.
Аналогично ставим цифру 2 для другой позиции и выбираем для нее Runtime file, что полезно при работе с большими списками. Указываем путь к любому файлу-словарю, который содержит только список паролей. Нажимаем start attack.
Сложность пароля
Надежный пароль должен состоять из:
- Символов верхнего регистра (A)
- Символов нижнего регистра (a)
- Цифр
- Специальных символов
Надежный пароль не гарантирует 100%, но по крайней мере позволяет значительно увеличить время взлома.
Двухфакторная аутентификация
Следующий способ защиты от брутфорса – двухфакторная аутентификация или 2FA. Обычно в качестве второго подтверждения используют телефон или почту.
Captcha
Установить капчу на WordPress довольно просто, например, с помощью многочисленных плагинов. Капча поможет предотвратить ботами выполнение автоматических скриптов для входа в вашу учетную запись.
Плагин брандмауэра WordPress
Даже неудачные брутфорс атаки могут замедлить работу сайта или полностью вывести сервер из строя. Вот почему так важно их заблокировать, для чего и понадобиться брандмауэр, который отфильтровывает плохой трафик и блокирует ему доступ к вашему сайту.
Подключить СDN сервис
CDN (Content Delivery Network) — сеть доставки и дистрибуции контента, более подробно о которой можно узнать здесь. Для нас главное, что CDN обеспечивают надежную защиту от брутфорса.
Топ 6 CDN c бесплатными решениями для WordPress:
- Cloudflare
- Jetpack
- Swarmify
- Amazon CloudFront (1 год бесплатного доступа)
- Incapsula
- JS Deliver
Установить и настроить бэкап плагин
На крайний случай будет полезно установить и настроить бэкап плагин. По крайней мере в случае удачной атаки будет возможность восстановить данные. Есть несколько отличных плагинов для WordPress, которые позволяют делать резервные копии автоматически.
Отключение просмотра каталогов и автоматических обновлений
Еще один способ снизить риск брутфорс атаки для сайта на WordPress.
Вне всяких сомнений на сегодняшний день WordPress является самой популярной системой управления контентом (Content Management System, CMS).
Вне всяких сомнений на сегодняшний день WordPress является самой популярной системой управления контентом (Content Management System, CMS). Согласно исследованию W3 Techs, доля WordPress составляет 58,2% от веб-сайтов, чьи системы управления контентом нам известны или 18,6% от всех веб-сайтов. Как и все самые современные и популярные кмски стандартная сборка WordPress достаточно защищена и безопасна. Однако для расширения функционала владельцы сайтов на WordPress часто устанавливают множество дополнительных плагинов. На начало июля 2013 года официальный репозитарий WordPress.org насчитывал 25700 плагинов, которые были загружены более 475 миллиона раз. И это не считая тех плагинов, которые не входят в официальный репозитарий WordPress. В основном именно сторонние расширения делают веб-сайт уязвимым и используются злоумышленниками при реализации атак на WordPress. Многие из установленных плагинов не обновляются, и даже те из них, которые не активированы через WordPress Dashboard, предоставляют прекрасные возможности для осуществления атак. Кроме того, на хостингах, разделенных на несколько пользователей, или в консолидированных корпоративных дата центрах, ваш экземпляр WordPress скорее всего не единственное веб-приложение, находящееся на сервере.
В целях экономии времени я не буду переливать из пустого в порожнее и рассказывать вам о том, как опасны XSS-атаки. На данный момент все еще существует некоторая путаница вокруг XSS и его роли во время проникновения во внутреннюю сеть, а также способов осуществления подобных атак и многократного использования XSS. Все дело в том, что атакующий не может использовать XSS-брешь для того, чтобы проникнуть напрямую на сервер. Вместо этого, комбинируя уязвимости и используя социальную инженерию, при помощи XSS можно довольно легко скомпрометировать систему. В этом руководстве я покажу, как взломать WordPress при помощи XSS, а затем получить полный доступ к системе.
Приступаем к взлому WordPress
Раз эта статья опубликована The Ethical Hacker Network, основное внимание будет уделено механизму атаки с целью последующей разработки способов по защите от подобных вторжений. Вне зависимости от того реализуется ли настоящая атака или производится легитимный пентест, первым шагом будет исследование окружающей обстановки. Если предположить, что злоумышленник уже нацелился атаковать вашу организацию или, если речь идет о легитимном пентесте, нанята команда специалистов по безопасности, их первым шагом должно быть обнаружение установленной системы WordPress. Вы можете попробовать получить доступ к корневым папкам WordPress, включив их в URI-путь того хоста, который вы тестируете. Вдобавок к этому, файл «robots.txt» также может содержать всю необходимую информацию. На Рисунке 1 показаны директории, которые были явно защищены от индексации поисковой системой, что говорит о присутствии на сервере системы WordPress. Из рисунка мы также можем определить местонахождения системы.
В некоторых случаях WordPress установлен в поддиректориях. Поисковая система Google прекрасно индексирует скрытые файлы и директории. Перед началом брутфорса веб-сервера утилитами наподобие DirBuster, которые ищут скрытые файлы и директории, обратитесь к поисковой системе Google. Возможно, эта работа уже сделана для вас.
Google часто индексирует основные файлы WordPress. Если ввести поисковый запрос «site:<target site> inurl:/wp-includes/ inurl:plupload» применительно к определенному сайту, вы можете определить, какие файлы проиндексированы. На Рисунке 2 показано, что Google проиндексировала файл типа Shockwave Flash File (plupload.flash.swf), находящийся в директории «/wp-includes/» исследуемого нами хоста.
Рисунок 2 – Результат поискового запроса
Тестируем первоначальные находки
Для того, чтобы сымитировать рабочий веб-сайт, упомянутый выше, внутри лабораторной среды был установлен WordPress и плагины. Плагин под названием «Plupload» позволяет загружать файлы на веб-сервер. При клике на ссылку, показанную на Рисунке 3, отображается пустая страница Shockwave Flash:При клике в любом месте пустого пространства страницы, сгенерированной плагином, появится стандартное окно обзора файлов, где мы можем выбрать файл для загрузки на сервер. В большинстве случаев, директория, куда загружаются файлы, находится вне корневой папки веб-сервера и, как правило, не доступна. Тем не менее, не лишним будет проверить ее присутствие.
Давайте рассмотрим внимательнее URI-строку «plupload/plupload.flash.swf?id=». Этот URL – прекрасное место для тестирования XSS-инъекций.
А почему бы не использовать символы «<» или «>» или стандартный тег «<script>»? В данном конкретном случае это не сработает, поскольку на клиенте установлен Web Application Firewall (WAF), который фильтрует определенные символы (например, «<» и «>»), что делает невозможным использование HTML-тегов.
Обходные маневры
Продолжаем наши исследования. Из предыдущего примера понятно, что XSS-инъекция работает и окно с сообщением можно успешно вывести внутри браузера при помощи JavaScript. Однако отображение простого окна не столь интересно, и требуется инжект более интересного HTML-кода. Так как же мы можем использовать эту брешь на более продвинутом уровне?
Альтернативный метод инжектирования HTML-кода – его кодирование при помощи JavaScript-функции «CharCodeAt()». Наглядный пример того, как это работает, можно увидеть на странице « Uncle Jim’s Javascript Utilities». Эта функция позволяет кодировать HTML-теги для обхода фильтрации WAF. Затем JavaScript отражается обратно в браузер и при помощи функции «FromCharCode()» происходит декодирование в обычный HTML. На основе XSS-строки из предыдущего примера создадим обновленный вариант, где ключевое слово «alert» заменяется на «document.write»
Еще одно окно с сообщением? Да. Единственное, что о чем я не упомянул, — используя JavaScript-функцию «document.write» мы полностью устранились от Shockwave Flash файла «plupload.flash.swf» и, по сути, создали новую страницу. Кроме того, используя функцию кодирования HTML-кода и его отражения на пустую страницу, мы обошли WAF.
Развиваем идею
Теперь в браузере отобразится новая веб-страница, которая содержит BeEF «iFrame», указывающий на локальный запущенный экземпляр BeEF. Сейчас браузер уязвим к различным эксплоитам, которые содержит управляющая панель BeEF (см. Рисунок 16).
Последующие шаги по адаптации нашего кода уже зависят от тех целей, которых мы хотим достичь. К примеру, созданный нами URL можно использовать при целевом фишинге. Ссылку можно подвергнуть обфускации или отослать так, как есть. Обфускация ссылки повышает шансы на то, что по ней кликнет жертва. Однако есть и побочный эффект: правильно сконфигурированные спам-фильтры могут заблокировать письма, которые содержат обфусцированные ссылки.
Помните, подобные атаки реализуются на стороне жертвы. Успеху подобных атак способствует использование социальной инженерии, которая наилучшим образом работает через электронную почту.
Получение shell-доступа
Хотя браузер, подцепленный BeEF, может дать выборочный контроль злоумышленнику над системой жертвы, и мы могли убедиться в эффективности этого инструмента, однако получение shell-доступа при помощи BeEF может быть проблематичным. Для решения этой задачи больше подходит Metasploit Framework.
Внутри консоли Metasploit будет создан listener. Также будет использоваться эксплоит «java_jre17_jmxbean_2» и reverse TCP Meterpreter payload для ОС Windows, как показано на Рисунке 17. И listener и реверсивный обработчик (reverse handler) будут использовать порты 8080 и 4444 соответственно.
Listener и реверсивный обработчик стартуют, как показано на Рисунке 19. Обратите внимание, строки URL и URI автоматически создаются listener’ом. Эти данные будут использоваться при рефакторинге HTML-кода, содержащего URL для осуществления XSS-инъекции.
Теперь мы создаем целевое сообщение, содержащее закодированный URL, и отсылаем его жертве. Пользователь, который видит ссылку на знакомый ему сайт, часто думает, что она безопасна. X SS-строка инжектируется в приложение и отражается обратно в браузер, затем декодируется, после чего создается новая страница. Далее при помощи «iFrame» происходит запрос к Metasploit listener (Рисунок 24), на компьютере жертвы выполняется полезная нагрузка, а затем открывается сессия Meterpreter.
Уроки на будущее
В это статье было не только продемонстрировано, что возможен взлом WordPress через сторонние плагины при помощи XSS, но и техники, которые помогают обойти распространенные средства для безопасности в сети. В конце концов, все это переросло в получение полного доступа к компьютеру жертвы. Какие же мы можем извлечь уроки?
Если взглянуть на ситуацию с корпоративной точки зрения, можно усвоить несколько уроков:
- Всегда будьте осведомлены о том, что находится на ваших серверах. Сотрудники, сами того не подозревая, могут создать брешь в ваших системах, которые содержат конфиденциальные данные.
- Все то же самое относится и к операционным системам (Windows, OSX и Android). Обычно взламываются не сами ОС, а дополнительные программы, установленные на них. Используйте только те программы, которые вам действительно нужны, и регулярно устанавливайте обновления к ним.
- Тесты, тесты и еще раз тесты. Даже если плагин работает и взят из надежного источника, нельзя быть уверенным в том, что код этого плагина безопасен. Даже если у вас есть возможность провести тестирование своими силами (и тем более, если у вас такой возможности нет), наймите профессионального пентестера веб-приложений. Вся ваша компания находится под угрозой.
Если посмотреть на ситуацию с точки зрения отдельного пользователя, следует сделать те же самые выводы лишь за тем исключением, что масштабы могут быть не такими большими, как в случае с корпорацией. В любом случае помните о том, что если не предпринять мер предосторожности, ваше увлечение никогда станет работой вашей мечты, а малый бизнес никогда не станет большим.
Как хакеры взламывают сайты
В данный момент на Вордпрессе работает более 43% всех сайтов в Интернете, это более 100 млн. сайтов. Около 65% всех сайтов, использующих CMS, используют Вордпресс. Такая популярность привлекает хакеров, то есть, если они найдут какую-то уязвимость в Вордпресс, они смогут получить тот или иной контроль над большим количеством сайтов.
Хакеры создают ботов, которые автоматически обходят сотни тысяч сайтов и сканируют их на наличие устаревшего ПО, описание уязвимостей которого находится в открытом доступе. Когда бот находит сайт с устаревшим софтом, он использует имеющуюся у него методику взлома этого ПО, отсылает сообщение хакеру и идет дальше.
Обычно после взлома взломщики публикуют свою рекламу на сайте, начинают рассылать спам по своим базам или спискам подписчиков взломанного сайта, или взломанный сайт работает в качестве редиректа посетителей на сайты хакеров.
Тогда ссылка на взломанный сайт появляется в интернет-спаме, поисковики это видят и понижают сайт в поисковой выдаче.
Хакеры не используют свои сайты для рассылки спама или для создания сети редиректов на свои сайты, потому что их сайты попадут в спам-фильтры и под санкции поисковых систем.
Вместо этого они взламывают чужие сайты и используют их. После того, как взломанные сайты попадают в фильтры и под санкции, хакеры оставляют эти сайты, взламывают другие и пользуются ими.
Что случилось с сайтами
На втором сайте хакеры создали бэкдор, создали еще одного пользователя, опубликовали несколько статей со ссылками на что-то фармацевтическое и начали рассылать спам по своим базам.
На первом сайте удалось найти инфицированные файлы и вылечить их, на втором сайте сделали бэкап и восстановили сайт до состояния, которое было до заражения.
На обоих сайтах после восстановления были заменены пароли к сайту, FTP, хостингу и ключи и соли.
Как хакеры взламывают сайты
4 основных способа, которыми хакеры взламывают сайты:
- Слабые пароли
- Устаревшее ПО
- Небезопасные темы и плагины
- Уязвимости в ПО хостинга
Подбор логина и пароля
Вы можете ограничить количество попыток авторизации с помощью плагина, например Login LockDown. Еще один способ — перенесите страницу авторизации на новый адрес, например сайт.ru/login
.
Устаревшая версия ПО
Описания уязвимостей устаревших версий Вордпресс, плагинов и тем находятся в Интернете. У ботов есть эти описания. Когда они находят сайт с устаревшей версией ПО, они взламывают этот сайт по уже имеющемуся алгоритму.
Чтобы обезопасить сайт от таких атак, всегда используйте последнюю версию софта.
Бэкдоры
Хакер сохраняет файл со специальным скриптом на сервере, который позволяет ему заходить на сайт в любое время, при этом хакер не пользуется стандартной страницей входа, а заходит на сайт через созданный им бэкдор.
Если у вас не установлен какой-нибудь плагин, который предупреждает об изменениях в файлах, может быть довольно трудно определить, что вредоносный файл был добавлен. Есть несколько признаков, которые могут дать понять, что сайт был взломан.
Если вы открываете фронтэнд или бэкэнд сайта, и видите сообщение в браузере, что посещение этого сайта может быть небезопасно, то ваш сайт может быть взломан.
Другой признак — антивирус на компьютере показывает сообщение, что посещение этого сайта может быть опасно. Бэкдоры могут запускать вредоносный код, или вирусы, например трояны, когда посетитель заходит на сайт.
Еще один признак — е-мейлы, которые вы отправляете с сервера, возвращаются обратно с SMTP ошибкой 550. От некоторых серверов, которым вы отправляли е-мейл может вернуться более подробное описание проблемы. Например, ссылка на сайты, которые поместили ваш сайт или ваш IP в список сайтов, содержащих вредоносное ПО.
Базовые требования к безопасности сайта
Эти требования — необходимый минимум для безопасности сайта.
- Регулярно обновляйте Вордпресс, скрипты, плагины и темы.
- Используйте сложные логины и пароли.
- Установите плагин для ограничения попыток авторизации.
- Выбирайте плагины и темы от проверенных авторов.
- Используйте надежный хостинг.
- Настройте автоматический бэкап всех файлов и базы данных.
Типичные взломы сайтов
Хакеры взламывают сайты для рассылки спама, редиректа на свои сайты, кражи личных данных и использования сервера в качестве хранилища какой-нибудь информации или файлообменника. В большинстве случаев сайты взламываются автоматически хакботами.
Фармацевтические взломы
Если вы видите на своем сайте ссылки на другие сайты, которые вы не добавляли, или вас или ваших посетителей перенаправляет на другие сайты, это называется фармацевтические или фарма хаки.
Текст или ссылки указывают на полулегальные спам сайты, которые продают поддельные часы, кошельки, Виагру и тому подобное.
Хакер добавляет скрипты в файлы сайта, обычно в хедер, иногда в другие части страниц. Эти ссылки или текст могут быть скрыты или незаметны для посетителей, но видны поисковым системам.
Введите в поисковике запрос site:ваш-сайт.ru
, и посмотрите, как ваш сайт выглядит в поиске.
В поисковой выдаче вы должны видеть только название страниц и их описание. Если вы видите что-то подобное, значит, ваш сайт взломали.
Попробуйте вставить ссылку на какую-нибудь страницу вашего сайта в Фейсбук, ВКонтакте или Вотсапп. Если вы увидите что-то постороннее в описании или названии, это значит, что ваш сайт взломан.
Вредоносные редиректы
Хакер вставляет скрипт в файл .htaccess
или другие главные файлы сайта, который перенаправляет посетителей на другие страницы или другой сайт. Это называется вредоносный редирект.
Не заметить такой взлом очень сложно, потому что вместо загрузки вашего сайта загрузится другой сайт.
Иногда редирект может быть не таким очевидным, если взломанный файл использует стили вашей темы. Тогда вы увидите большое количество рекламы на странице, которая выглядит похожей на ваш сайт.
Редиректы могут быть настроены только с некоторых страниц сайта или со всего сайта целиком.
Тестирование и очистка сайта после взлома
Перед тем, как вы начнете что-то делать, сделайте полный бэкап всего сайта и базы данных. Даже несмотря на то, что сайт взломан, позже вам может понадобиться какая-то информация.
Чтобы не допустить заражения других сайтов, некоторые хостинги могут отключить или удалить ваш сайт, когда узнают, что сайт взломан, особенно на дешевых тарифах виртуальных хостингов.
Если логи событий находятся не в основной папке сайта, то сохраните их на компьютер, так как они хранятся на сервере несколько дней, после чего заменяются новыми.
После того, как вы сохранили бэкап и логи на компьютер, можно начинать лечение сайта.
Проверьте сайт в этих сервисах
Даже если вы точно знаете, что сайт взломали, проверьте его еще раз в этих сервисах. Вы можете найти еще какие-то вирусы, кроме тех, которые вы уже нашли.
Проверьте сайт во всех сервисах, так как они сканируют немного по-разному и находят разные типы инфекций. Также просканируйте свой компьютер.
В статье Как проверить и вылечить от вирусов Вордпресс
сайт описан способ найти вредоносный код в файлах сайта, используя команды в SSH терминале.
Начните с поиска файлов, измененных в течение последних 2-х дней:
find /путь/к/вашему/сайту/папка/ -mtime -2 -ls
Замените /путь/к/вашему/сайту/папка/
на путь к вашей папке, и пройдите поиском по каждой папке.
Если вы ничего не нашли, увеличьте поиск до 5 дней:
find /путь/к/вашему/сайту/папка/ -mtime -5 -ls
Если вы снова ничего не нашли, увеличивайте интервал поиска, пока не найдете изменения. Не забывайте, что обновления ПО тоже изменения.
Еще одна команда, которую вы можете использовать для поиска — «grep». Эта команда поможет найти вредоносный код, который добавил хакер.
После того, как вы нашли файлы, в которых хакер сделал изменения, вы можете попробовать найти в них повторяющиеся фрагменты, например, base64
или hacker was here
.
grep -ril base64 *
Замените base64
на повторяющееся сочетание, которое вы нашли в измененных файлах. Результат покажет вам список файлов, в которых встречается это сочетание.
Хакеры часто используют эти функции:
- base64
- str_rot13
- gzuncompress
- eval
- exec
- create_function
- system
- assert
- stripslashes
- preg_replace (/e/)
- move_uploaded_file
Если вы хотите увидеть содержание этих файлов, используйте этот запрос:
grep -ri base64 *
Замените base64
на значение, которое вы нашли в измененных файлах.
Более аккуратный запрос может быть таким:
grep --include=*.php -rn . -e "base64_decode"
Результат этого запроса показывает номера строк, в которых содержится сочетание «base64_decode», в тех файлах, которые заканчиваются на .php.
Более простой способ:
Скопируйте сайт с сервера, удалите все что можно безопасно удалить, заархивируйте целиком или разделите на архивы и проверьте архивы на VirusTotal или 2ip. Также можно проверить на компьютере антивирусом. Перенесите все зараженные файлы из архива в отдельную папку. После того, как вы нашли файлы с внедренным код, их можно восстановить или удалить.
Удаление вредоносного кода
- Если вы нашли файл бэкдора, в котором находится только скрипт хакера, удалите этот файл.
- Если вы нашли вредоносный код в файле Вордпресс, темы или плагина, удалите этот файл и скачайте новый из репозитария Вордпресс или с сайта разработчика.
- Если вы нашли вредоносный код в файле, который вы создавали, удалите хакерский код и сохраните файл.
- Возможно, у вас в бэкапе есть незараженная версия сайта, вы можете восстановить сайт из старой версии. После восстановления обновите Вордпресс, плагины и тему, смените пароль и установите плагин безопасности.
Очистите сайт и просканируйте его еще раз на интернет сервисах проверки.
Обновите ПО, смените пароли, ключи и соли
После того, как вы удалили вредоносный код, обновите Вордпресс, плагины и темы. Смените пароли на сайте и на хостинге. Подумайте о смене пароля к е-мейлу и базе данных (в файле wp-config.php и на хостинге).
Смените ключи и соли, это сделает все cookies, которые хранятся в браузерах пользователей, в том числе хакеров, недействительными для авторизации на сайте.
Генератор ключей и солей находится на сайте Вордпресс. Скопируйте новые ключи и вставьте их в файл wp-config в этом месте:
Перед изменением файла wp-config сделайте его бэкап. Сохраните файл, закачайте обратно на сервер.
Как удалить сайт и IP из черных списков
После того, как вы очистили сайт, он все еще может находиться в списках сайтов, содержащих вредоносное ПО или в спам списках. Сначала нужно узнать, на каких сайтах ваш сайт или IP занесены в черный список.
https://transparencyreport.google.com/safe-browsing/search?url=ваш-сайт.ru
Замените ваш-сайт.ru
на ваш адрес.
http://www.spamhaus.org/query/ip/123.45.67.890
Замените 123.45.67.890
на IP сайта. Узнать IP.
Когда какой-то сайт заносит IP в черный список, он отображается красным.
Откройте красные ссылки в новом окне и следуйте инструкциям. У всех сайтов инструкции могут быть разными, поэтому читайте внимательно.
Обычно запрос проверки делается в несколько кликов, и занимает около 2 дней. Некоторые сайты не предупреждают о переносе IP из черного списка в белый список, поэтому вы можете вернуться на Спамхаус через несколько дней, и проверить снова.
На некоторых сайта можно запросить проверку только один раз, поэтому убедитесь, что сайт полностью очищен, иначе ваш IP может остаться в черных списках надолго.
Sucuri Security
В платной версии Sucuri предлагает защиту самого высокого класса — файрвол на уровне DNS, который сканирует каждый запрос к сайту. Ускорение сайта с помощью кеширования и подключения к собственному CDN, и бесплатное восстановление сайта, если сайт был взломан. Также сервис проверяет, что сайт не занесен в черные списки.
В бесплатной версии плагин сравнивает файлы ядра Вордпресс и файлы в репозитории Вордпресс, ведет логи событий, имеет несколько основных настроек безопасности. В случае появления подозрительной активности плагин посылает сообщение на е-мейл.
У плагина есть главная панель, в которой сообщается, что файлы на сервере соответствуют файлам в репозитарии Вордпресс, на сайте не обнаружено вредоносного кода, сайт не занесен в черные списки и показаны логи событий. Это очень удобный инструмент для наблюдения за безопасностью сайта.
Wordfence
Один из самых известных и мощных плагинов безопасности Вордпресс. Платная и бесплатная версии обнаруживают вредоносный код и защищают сайт практически от всех видов угроз. База данных плагина постоянно обновляется, поэтому все новые угрозы попадают в базу данных. Через 30 дней база обновляется в бесплатной версии.
В Wordfence есть функция обнаружения изменений или добавления файлов. Когда существующий файл обновляется или добавляется новый файл, Вордфенс сообщает об этом и предлагает отменить изменение или удалить файл.
В Вордфенсе есть функция сканирования файлов на своем сервере, встроенный файрвол на уровне сайта и множество других функций.
iThemes Security
iThemes Security — мощный плагин из тройки лидеров. У него есть база с последними хаками, бэкдорами и другими угрозами.
Бесплатная версия хорошо защищает чистый сайт, но если вы хотите знать, когда файлы изменялись и делать подробный скан сайта, вам нужно купить премиум версию.
Еще одна крутая функция этого плагина — бэкап сайта. Если вы узнали, что сайт был взломан, вместо поиска взлома вы можете восстановить более раннюю версию сайта.
All in One WP Security & Firewall
Большой бесплатный плагин со множеством настроек, имеет встроенный файрвол, защищает файлы сайта и базу данных. В платной версии есть сканер сайта на наличие вредоносного ПО.
Проверяет файлы и базу данных, сообщает, были ли какие-то изменения, меняет стандартную страницу авторизации, скрывает версию Вордпресс, меняет префикс базы данных и еще десятки других функций. Ко всем функциям есть подсказки — описания.
Плагин скорее предназначен для предупреждения заражений, чем для лечения, поэтому его лучше устанавливать на свежий или вылеченный сайт. На мой взгляд, лучший бесплатный плагин.
Security Ninja
Один из самых простых, но мощных премиум плагинов безопасности. В бесплатной версии проверяет сайт
на наличие типичных уязвимостей и предлагает инструкции по устранению этих уязвимостей.
В платной версии добавляется сканер ядра, который сравнивает файлы вашей установки Вордпресс с оригинальными файлами на сайте Вордпресс, сканер сайта на наличие вредоносного ПО и облачный файрвол, в который добавляются IP, распространяющие вредоносное ПО и спам.
VaultPress
Плагин безопасности и бэкап плагин в одном от Automattic, часть разработчиков которого являются разработчиками Вордпресс. Есть бесплатная и премиум версия.
Регулярные бэкапы дают возможность восстановить сайт в случае взлома. Дополнительные инструменты безопасности защитят ваш сайт, если обновитесь до премиум версии.
В премиум версии есть функция ежедневного сканирования сайта на наличие вредоносного кода, вирусов, троянов и прочей заразы. Также помогает очищать сайт после заражения.
Theme Check
Этот плагин проверяет код на правильность в теме, которую вы используете. Он сравнивает код темы на соответствие последним стандартам Вордпресс. Если что-то не соответствует этим стандартам или выглядит подозрительным, плагин сообщает об этом.
Если вы выбираете тему для использования, проверьте ее этим плагином.
Выясните, был ли сайт действительно взломан
Все, что подключено к интернету, можно взломать, в том числе и Вордпресс.
Чтобы не принять необычное поведение сайта за взлом, проверьте, что вы видите один или несколько из этих признаков:
- Предупреждение в браузере
— Хром и другие браузеры предупреждают посетителей о фишинге, вредоносном коде, подозрительной перелинковке и других опасных вещах на сайте. Если вы или ваши посетители видят такое предупреждение, это может говорить о взломе сайта. - Плагин безопасности показывает предупреждение
— если у вас установлен какой-нибудь плагин безопасности, он может показывать предупреждение. - Постоянные ссылки
— Зайдите в Настройки
— Постоянные ссылки. Проверьте, что ничего не добавлено к постоянной ссылке. Постоянная ссылка должна выглядеть как%postname%
. Если ссылка изменилась на%postname%/%
, например,значит, ваш сайт взломали. - Ваш сайт перенаправляет посетителей на другие сайты
— хакеры часто используют взломанные сайты для редиректа на свои сайты с часами, сумками, другими товарами илиуслугами. Если сайт перенаправляет вас на другой сайт, или ваши посетители говорят вам об этом, это определенно взлом сайта. Проверьте свой сайт в поисках, нет ли в выдаче «виагры» вместе с вашим сайтом. Заменитеваш-сайт.ru
на ваш адрес. - На сайте появился непонятный контент
— если вы видите, что на сайте появилось что-то новое, чего вы не публиковали, скорее всего это добавили хакеры. - Пользователи сайта
— Проверьте пользователей сайта, нет ли неизвестных вам юзеров с правами администратора. - Неожиданные пики посещаемости
— Хакеры используют взломанные сайты для редиректа на свои сайты. Если вы видите внезапное необъяснимое увеличение посещаемости, это может говорить о перенаправлении спам-трафика через ваш сайт на сайты хакеров. - Таблицы в базе данных
— Хакеры могут получить доступ к базе данных и создать новую таблицу с вредоносным кодом, которая может быть похожа на стандартную таблицу Вордпресс. Например, создать новую таблицуwp_pagemeta
, которая маскируется под стандартнуютаблицуwp_postmeta
. - Сканирование сайта показывает проблемы
— Часто заражения хорошо скрыты и их нелегко обнаружить. Проверьте сайт на Sucuri Site Check, Virus Total или 2ip
чтобы избавиться от сомнений и, возможно, установить место взлома. - Поисковики пометили ваш сайт как небезопасный
— Гугл, Яндекс и другие поисковики могут пометить ваш сайт в результатах выдачи как небезопасный, или вообще удалить сайт из поисковой выдачи. В Инструментах Вебмастера Гугл может появиться предупреждение в Проблемах Безопасности. - Вы не можете попасть в админку Вордпресс
— если вы не можете попасть в консоль Вордпресс, скорее всего, ваш сайт взломали. - Хостинг отключил ваш сайт
— Некоторые хостинги могут отключить или удалить взломанный сайт, если вы им об этом скажете или если они сами это обнаружат. На хороших хостингах все сайты изолированы, чтобы не допустить заражения соседних сайтов. Обычно такой хостинг предупреждает владельца сайта о проблеме.
2. Сделайте бэкап
Может показаться странным делать бэкап взломанного сайта, но это нужно сделать. В нем содержится вся информация сайта, не только взломанные файлы.
Кроме этого, хостинг может удалить ваш сайт. Если хостинг заблокирует или удалит ваш сайт, у вас останется копия.
Сделайте бэкап и пометьте его как взломанный.
3. Просканируйте компьютер
В некоторых случаях хакеры попадают на сайт через компьютер пользователя. Если хакер взломал ваш компьютер, он мог пойти дальше и взломать сайт (например, через кейлоггер).
Установите антивирус / файрвол или проверьте компьютер на вирусы и установите все последние обновления ОС. Даже если хакер взломал ваш сайт не через ваш компьютер, сделайте скан, чтобы повторно не заразить сайт после восстановления.
4. Обратитесь к профессионалам
Если вы думаете, что не справитесь самостоятельно, отправьте зараженные файлы профессионалам, например, Virusdie. Они берут небольшую плату за анализ и очистку каждого файла, который сканеры пометили как «Неизлечимый».
Хакеры довольно умные люди, и могут оставить какие-то закладки, чтобы попасть на сайт еще раз после восстановления. Возможно, обращение к профессионалам удалит все закладки и сэкономит время.
Если вы хотите все сделать самостоятельно, читайте дальше.
5. Поговорите с техподдержкой хостинга
Хороший хостинг подготовлен к таким ситуациям и может помочь вылечить сайт. Когда хостинг определяет, что сайт взломан, специалисты техподдержки могут помочь его восстановить.
Хостингу может быть интересно, что случилось с вашим сайтом, потому что это может затронуть другие сайты, которые находятся на этом сервере, и может относиться к общей безопасности хостинга.
Если они не могут помочь, они могут дать направление поиска для восстановления сайта.
6. Восстановите сайт из бэкапа
У вас должен быть настроен бэкап, поэтому попробуйте восстановить сайт из более ранних версий.
Проблема может быть в том, что после последнего бэкапа вы добавляли какую-то информацию на сайт, которая потеряется при восстановлении. Если после восстановления вы теряете слишком много, можно попробовать вылечить сайт вручную.
Как восстановить Вордпресс сайт, если есть доступ к админке
1. Смените пароли
Смените пароли всех администраторов. Еще лучше сменить все пароли, — пароли хостинга, FTP, базы данных и е-мейл.
Пароли администраторов можно изменить в меню Пользователи. Создайте новые пароли и отправьте их по почте администраторам.
Смените пароли как минимум всех администраторов сайта, в одном из следующих шагов вы будете менять пароли еще раз.
2. Просканируйте сайт
В этом шаге вы найдете место взлома. Чтобы уменьшить количество сканируемых файлов, удалите папку с плагинами и неиспользуемые темы в папке с темами. Оставьте только текущую тему и родительскую, если есть. В этих папках хакеры часто оставляют бэкдоры.
Установите один из этих плагинов или по очереди:
Если вы не хотите использовать плагины, используйте эти интернет-сканеры.
Проверьте статус сайта на Странице диагностики Гугл. Введите ваш адрес и посмотрите результаты.
3. Замените взломанные файлы оригинальными
Если вы нашли взломанные файлы, удалите их или замените оригинальными.
Вы можете заменить файлы Вордпресс оригинальными файлами. Самый простой способ это сделать — переустановить Вордпресс в админке. Консоль— Обновления.
То же самое вы можете сделать с плагинами и темами. Если вы делали изменения в functions.php, и не пользовались дочерней темой, переустановка темы удалит ваши изменения.
Если вы нашли файлы, которые не добавляли, и которые не относятся к файлам Вордпресс, удалите их.
4. Проверьте пользователей сайта
Зайдите в меню Пользователи и проверьте пользователей сайта. Если вы видите что-то странное, например, пользователя с правами администратора, которого вы не знаете, удалите этого пользователя.
5. Замените ключи и соли
Это секретные ключи, которые используются для шифрования информации в cookies.
6. Замените пароли еще раз
Вы уже меняли пароли в начале статьи, замените их еще раз.
- Пароль администратора
- Логин и пароль к хостингу
- Логин и пароль к FTP
- Пароль к базе данных
- Е-мейл адрес админа
7. Укрепите безопасность сайта
Последний шаг — настройте защиту сайта, чтобы не допустить повторного взлома.
8. Как вернуть недостающий контент
После восстановления сайта на нем может не хватать какого-то контента, который был на момент взлома, например, статьи, страницы, товары, медиа, настройки темы и так далее.
Если вы пользуетесь встроенным Экспортом в меню Инструменты, то восстановите контент с помощью Импорта.
В настройках многих тем есть функция Экспорта / Импорта настроек.
В базе данных сохраненного после взлома бэкапа можно найти страницы, статьи, товары и другой контент.
Если у вас есть RSS фид, вы можете найти опубликованные статьи в нем.
Как восстановить Вордпресс сайт, если нет доступа к админке
1. Сбросьте пароль администратора в phpMyAdmin
Еще один способ — изменить е-мейл администратора, вернуться на страницу авторизации (по умолчанию /wp-login.php) и запросить новый пароль через функцию Забыли пароль? Этот способ работает только если у вас есть доступ к странице авторизации.
Кроме редактирования базы данных, есть еще несколько способов зайти в админку с помощью скриптов, которые нужно добавить в файл functions.php или в папку /mu-plugins/:
2. Найдите взломанные файлы
Даже если вы не можете зайти в консоль Вордпресс, процесс восстановления сайта такой же, как в предыдущей части. Вам нужно найти инфицированные файлы и заменить их чистыми версиями.
3. Замените взломанные файлы
После того, как вы нашли инфицированные файлы, замените их чистыми или удалите. Для этого вам понадобится доступ к файлам по FTP или через хостинг.
В зависимости от того, что вы нашли, вы можете удалить файл целиком или только ту часть, которую добавил хакер.
- Вы нашли вредоносный код в файле Вордпресс, темы или плагина — удалите весь файл, и замените на оригинальный с официальной страницы.
- Вы нашли вредоносный код в файле, который вы или кто-то создал вручную — удалите вредоносный код и сохраните файл.
- Если вы нашли файл бэкдора, в котором находится только вредоносный скрипт — удалите весь файл.
- Если ничего не помогло — обратитесь к профессионалам в Virusdie.
4. Просканируйте сайт еще раз
После удаления вредоносных файлов просканируйте сайт еще раз, чтобы убедиться, что сайт полностью вылечен.
Поговорите с техподдержкой хостинга, скажите, что сайт вылечен, возможно, они найдут что-то на своей стороне или на вашем сайте.
5. Последние действия
После лечения сайта пройдите те же шаги, что в предыдущем разделе
- Проверьте пользователей сайта
- Замените ключи и соли
- Замените пароли еще раз
- Укрепите безопасность сайта
Заключение
Если вы все сделали правильно, сайт должен опять заработать. Следите за безопасностью сайта, используйте плагины безопасности.
WordPress — это удобная блог-платформа для публикации статей и управления ими, на которой базируется огромное число различных сайтов.
Из-за своей распространенности эта CMS уже давно является лакомым куском для злоумышленников. К сожалению, базовые настройки не обеспечивают достаточного уровня защиты, оставляя многие дефолтные дырки незакрытыми. В этой статье мы пройдем типичным путем «типового» взлома сайта на WordPress, а также покажем как устранить выявленные уязвимости.
Введение
На сегодняшний день WordPress среди систем управления контентом популярнее всего. Его доля составляет 60,4% от общего числа сайтов, использующих CMS-движки. Из них, согласно статистике, 67,3% сайтов базируется на последней версии данного программного обеспечения. Между тем за двенадцать лет существования веб-движка в нем было обнаружено 242 уязвимости различного рода (без учета уязвимостей, найденных в сторонних плагинах и темах). А статистика сторонних дополнений выглядит еще печальней. Так, компания Revisium провела анализ 2350 русифицированных шаблонов для WordPress, взятых из различных источников. В результате они выяснили, что более половины (54%) оказались зараженными веб-шеллами, бэкдорами, blackhat seo («спам») ссылками, а также содержали скрипты с критическими уязвимостями. Поэтому устраивайся поудобней, сейчас мы будем разбираться, как провести аудит сайта на WordPress и устранить найденные недостатки. Использовать будем версию 4.1 (русифицированную).
Индексирование сайта
Первым этапом любого теста обычно бывает сбор информации о цели. И тут очень часто помогает неправильная настройка индексирования сайта, которая позволяет неавторизованным пользователям просматривать содержимое отдельных разделов сайта и, например, получить информацию об установленных плагинах и темах, а также доступ к конфиденциальным данным или резервным копиям баз данных. Чтобы проверить, какие директории видны снаружи, проще всего воспользоваться Гуглом. Достаточно выполнить запрос Google Dorks типа site:example.com intitle:"index of" inurl:/wp-content/
. В операторе inurl:
можно указать следующие директории:
/wp-content/
/wp-content/languages/plugins
/wp-content/languages/themes
/wp-content/plugins/
/wp-content/themes/
/wp-content/uploads/
Если сможешь просмотреть /wp-content/plugins/
, следующий шаг по сбору информации об установленных плагинах и их версиях значительно упрощается. Естественно, запретить индексирование можно с помощью файла robots.txt
. Так как по умолчанию он не включен в установочный пакет WordPress, его необходимо создать самому и закинуть в корневую директорию сайта. Мануалов по созданию и работе с файлом robots.txt
довольно много, поэтому оставлю эту тему для самоподготовки. Приведу лишь один из возможных вариантов:
User-Agent: *
Disallow: /cgi-bin
Disallow: /wp-login.php
Disallow: /wp-admin/
Disallow: /wp-includes/
Disallow: /wp-content/
Disallow: /wp-content/plugins/
Disallow: /wp-content/themes/
Disallow: /?author=*
Allow: /
Если в файлах, хранящихся в папке uploads
, имеются сведения конфиденциального характера, добавляем к этому списку строчку: Disallow: /wp-content/uploads/
.
С другой стороны, в файле robots.txt
не рекомендуется размещать ссылки на директории, которые были созданы специально для хранения чувствительной информации. Иначе этим самым ты облегчишь злоумышленнику задачу, так как это первое место, куда обычно все заглядывают в поисках «интересненького».
Определение версии WordPress
Еще один важный шаг — идентификация версии CMS. Иначе как подобрать подходящий сплоит? Существует три быстрых способа для определения используемой на сайте версии WordPress:
- Найти в исходном коде страницы. Она указана в метатеге
generator
: - Найти в файле
readme.html
(рис. 1), который входит в состав установочного пакета и находится в корне сайта. Файл может иметь и другие названия типаreadme-ja.html
. - Найти в файле
ru_RU.po
(рис. 2), который входит в состав установочного пакета и расположен по адресу/wp-content/languages/
:"Project-Id-Version: WordPress 4.1.1\n"
Один из вариантов защиты в данном случае — ограничить доступ к файлам readme.html
и ru_RU.po
с помощью .htaccess
.
Автоматизация процесса тестирования
Исследованием безопасности WordPress занялись не вчера, поэтому существует достаточное количество инструментов, позволяющих автоматизировать рутинные задачи.
- определение версии и темы с помощью скрипта http-wordpress-info
nmap -sV --script http-wordpress-info
- подбор пароля по словарям
nmap -p80 --script http-wordpress-brute --script-args 'userdb=users.txt,passdb=passwords.txt' example.com
- модуль для определения версии:
auxiliary/scanner/http/wordpress_scanner
; - модуль для определения имени пользователя
auxiliary/scanner/http/wordpress_login_enum
. - перечисление установленных плагинов:
wpscan --url www.exmple.com --enumerate p
;
- перечисление установленных тем:
wpscan --url www.exmple.com --enumerate t
- перечисление установленного timthumbs:
wpscan --url www.example.com --enumerate tt
; - определение имени пользователя:
wpscan --url www.example.com --enumerate u
; - подбор пароля по словарю для пользователя admin:
wpscan --url www.example.com --wordlist wordlist.txt --username admin
; - подбор пароля с использованием связки имя пользователя / пароль с числом потоков, равным 50:
wpscan --url www.example.com --wordlist wordlist.txt --threads 50
.
Определение установленных компонентов
Теперь давай соберем информацию об установленных плагинах и темах независимо от того, активированы они или нет. Прежде всего такую информацию можно выудить из исходного кода HTML-страницы, например по JavaScript-ссылкам, из комментариев и ресурсов типа CSS, которые подгружаются на страницу. Это самый простой способ получения информации об установленных компонентах. Например, строчки ниже указывают на используемую тему twentyeleven:
<script src="http://example.com/wp-content/themes/twentyeleven/js/html5.js" type="text/javascript"></script>
Далее, HTTP-заголовки, такие как X-Powered-By
, могут указывать на наличие плагина (например, на плагин W3 Total Cache).
Так как информация о плагинах не всегда отображается в исходном коде HTML-страницы, то обнаружить установленные компоненты можно с помощью утилиты WPScan (см. врезку). Только не забывай, что перебор путей плагинов зафиксируется в логах веб-сервера.
Получив данные об установленных компонентах, уже можно приступать к поиску уязвимостей своими силами либо найти общедоступные эксплойты на ресурсах типа rapid7 или exploit-db.
Брутфорс wp-login
Security-плагины для WordPress
- Login LockDown
— ограничивает количество неудачных попыток авторизации; - Revisium WordPress Theme Checker
— ищет типичные вредоносные фрагменты в темах WordPress; - Sucuri Security
— проводит мониторинг и обнаружение вредоносного кода; - iThemes Security (бывший Better WP Security)
— многофункциональный плагин для защиты WordPress; - BackUpWordPress
— делает резервное копирование файлов и БД; - Google Captcha (reCAPTCHA)
— устанавливает капчу при регистрации, авторизации, восстановлении паролей и в форме комментариев.
Заливаем Shell
После того как мы сбрутили пароль, ничто не мешает залить шелл на скомпрометированный веб-ресурс. Для этих целей вполне сгодится фреймворк Weevely, который позволяет генерировать шелл в обфусцированном виде, что делает его обнаружение довольно сложным. Чтобы не вызывать подозрения, полученный код можно вставить в любой файл темы (например, в index.php
) через редактор темы консоли WordPress. После чего с помощью того же Weevely можно подключиться к машине жертвы и вызывать различные команды:
python weevely.py http://test/index.php Pa$w0rd
[+] weevely 3.1.0
[+] Target:test
[+] Session: _weevely/sessions/test/index_0.session
[+] Browse the filesystem or execute commands starts the connection
[+] to the target. Type :help for more information.
weevely> :help
Подключаем. htaccess
Для запрета доступа к чувствительной информации лучше воспользоваться файлом .htaccess
— это файл конфигурации, используемый в Apache Web Server. Рассмотрим возможности этого файла с точки зрения безопасности. С его помощью можно: запретить доступ к директориям и файлам, заблокировать различные SQL-инъекции и вредоносные скрипты. Для этого стандартный файл .htaccess
для CMS WordPress 4.1 нужно немного расширить. Чтобы закрыть список файлов и папок, добавляем:
Options +FollowSymLinks -Indexes
RewriteCond %{QUERY_STRING} (<|%3C)([^s]*s)+cript.*(>|%3E) [NC,OR]
Противодействовать скриптам, пытающимся установить глобальные переменные или изменить переменную _REQUEST
через URL:
RewriteCond %{QUERY_STRING} GLOBALS (=|\[|\%[0-9A-Z]{0,2}) [OR]
RewriteCond %{QUERY_STRING} _REQUEST (=|\[|\%[0-9A-Z]{0,2})
Для противодействия SQL-инъекциям блокируем запросы к URL, содержащие определенные ключевые слова:
RewriteCond %{query_string} concat.*\( [NC,OR]
RewriteCond %{query_string} union.*select.*\( [NC,OR]
RewriteCond %{query_string} union.*all.*select [NC]
RewriteRule ^(.*)$ index.php [F,L]
SetEnvIf user-agent «Indy Library» stayout=1
SetEnvIf user-agent «libwww-perl» stayout=1
SetEnvIf user-agent «Wget» stayout=1
deny from env=stayout
Защищаем файлы
Неплохо было бы также ограничить и доступ к особо важным файлам, которые хранят конфигурацию или просто могут выдать злоумышленнику какую-то информацию.
Можно выделить следующих кандидатов:
wp-config.php
, содержит имя БД, имя пользователя, пароль и префикс таблиц;.htaccess
;readme.html
иru_RU.po
, которые содержат версию WordPress;install.php
.
Делается это следующим образом:
Order Allow,Deny
Deny from all
Причем файл .htaccess
, содержащий эти строки, должен находиться в той же директории, что и защищаемый файл. Затем запрещаем перечисление пользователей (помнишь, чуть выше мы говорили о том, как легко получить список пользователей?):
RewriteCond %{QUERY_STRING} author=\d
RewriteRule ^ /? [L,R=301]
AuthUserFile /dev/null
AuthGroupFile /dev/null
AuthName "Access Control"
AuthType Basic
order deny,allow
deny from all
allow from 178.178.178.178 # IP домашнего компа
allow from 248.248.248.248 # IP рабочего компа