Статья Ищем уязвимости в WordPress с помощью plecost

  • Автор темы Автор темы Inject0r
  • Дата начала Дата начала
  • Теги Теги
    wordpress
Всем привет!

Сегодня потестируем сканер безопасности Wordpress под названием plecost и проэксплуатируем одну небольшую уязвимость.

plecost по умолчанию установлен в kali, но почему-то совсем не обновляется и имеет версию аж 0.2.2-9-beta.

Устанавливаем утилиту:

apt-get update
apt-get install python3-pip
python3 -m pip install plecost
cd /usr/bin/
rm plecost
ln -s /usr/local/bin/plecost plecost

Убеждаемся, что у нас установилась свежая версия 1.1.1:

plecost

55.jpg

Сканируем сайт с движком на WordPress:

plecost <Домен>

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

Какую информацию дает на выходе утилита:
- версия WordPress и список ее уязвимостей;
- список установленных плагинов, их версии и уязвимости.

В моем примере был найден движок версии 4.5.0 с объемным списком дыр. А вот установленные плагины оказались безопасными.

1.jpg


Что делать дальше?

1. Можно пробить все найденные уязвимости на

Например, эксплойт для уязвимости CVE-2016-6897 может выполнить DoS-атаку. Правда для его выполнения необходимо знать логин/пароль от админки.
4.jpg


2. Можно поискать уязвимости в локальной базе Kali через searchsploit

Обновляем базу:

searchsploit --update

Ищем уязвимости для WordPress, исключаем из поиска уязвимости для плагинов и тем, так как в данном примере дыры не найдены:

searchsploit wordpress | grep -v Plugin | grep -v Theme

Изучив результаты видим, что для нашей версии 4.5.0 подходит эксплойт Username Enumeration. Давайте его запустим и найдем все логины!

66.jpg


Копируем эксплойт на рабочий стол:

cd ~/Desktop
cp /usr/share/exploitdb/platforms/php/webapps/41497.php ~/Desktop/

Удаляем виндовый символ перевода каретки, иначе скрипт выдаст ошибку:
cat 41497.php | tr -d '\r' > exploit.php

Открываем exploit.php в редакторе.

В первой строчке исправляем ошибку: добавляем после ! знак /
Далее, переменной url задаем значение с доменом сайта жертвы. После домена обязательно ставим /, иначе скрипт откажется работать.

77.jpg


Сохраняем изменения и запускаем:

chmod +x exploit.php
./exploit.php

3.jpg


В результате мы получаем список логинов для админки WP. Ура! Дальше можно в дело пускать брут :)

Это моя первая статья, надеюсь, что кому-нибудь она будет полезна :)
 
Последнее редактирование модератором:
Для вордпресса можно псомотреть логины без скачивания эксплоитов, через впскан.

wpscan --url site.com --enumerate u и он покажеи и id и логин.
 
  • Нравится
Реакции: Tihon49, Sykes и Vertigo
Спасибо! Логины знаем, в вход на сайт защищён капчей, что порекомендуете?
 
Для вордпресса можно псомотреть логины без скачивания эксплоитов, через впскан.

wpscan --url site.com --enumerate u и он покажеи и id и логин.

Можно и так) Но крутые хакеры легких путей не ищут :)
[doublepost=1503931350,1503927412][/doublepost]Кстати, упустил момент. По умолчанию прога брутит плагины по словарю размером в 50 наименований. У нее есть словарь на 1000 плагинов, чтобы его использовать, нужно ввести команду:

plecost <домен> -w plugin_list_1000.txt
 
К определению что это WP вот крутой плагин который, меня не раз помогал (Только для мозилы, отображается возле значка обновления)
 

Вложения

  • WP.png
    WP.png
    2,1 КБ · Просмотры: 567
Для вордпресса можно псомотреть логины без скачивания эксплоитов, через впскан.

Плюс к этому в Metasploit:
  • модуль для определения версии: auxiliary/scanner/http/wordpress_scanner;
  • модуль для определения имени пользователя: auxiliary/scanner/http/wordpress_login_enum.
А я когда-то, не будучи еще знакомым с Kali и Linux-ом вообще, вручную перебирал в адресной строке:
Код:
http://ИМЯ_САЙТА.ru/?author=1
http://ИМЯ_САЙТА.ru/?author=2
http://ИМЯ_САЙТА.ru/?author=3
....................
http://ИМЯ_САЙТА.ru/?author=N
и вычислял цель вручную (ху из ху).
 
давно это было)
А я когда-то, не будучи еще знакомым с Kali и Linux-ом вообще, вручную перебирал в адресной строке:
Код:
http://ИМЯ_САЙТА.ru/?author=1
http://ИМЯ_САЙТА.ru/?author=2
http://ИМЯ_САЙТА.ru/?author=3
....................
http://ИМЯ_САЙТА.ru/?author=N
и вычислял цель вручную (ху из ху).
 
Подскажите, пожалуйста, насколько удобно и целесообразно делать это все под виндой?
 
Подскажите, пожалуйста, насколько удобно и целесообразно делать это все под виндой?
Очень неудобно. В любом случае, если опыта мало, Вы можете скачать дистрибутив Kali Linux для виртуальной машины отсюда:
 
  • Нравится
Реакции: Shellmell и n01n02h
Если человек убежденный мазохист и есть мазь от геморроя, то можно поставить нужные зависимости и работать. Но это правда жесть..
Да это реально мазахизм, там от командной строки только нервный срыв поймать можно
 
  • Нравится
Реакции: Tihon49 и Sykes
Спасет ли от деанона Тор и ProxyChains или придется мучиться внутри программы?
 
wpscan --url site.com --enumerate u и он покажеи и id и логин.
Из личного опыта могу сказать, что не всегда...Если установлены плагины для защиты админки и настроены правильно, то он не покажет юзеров + он также может даже плагинов не найти)
 
  • Нравится
Реакции: Tihon49
Добрый день, помогите пожалуйста с установкой!
каждый раз при утсановке, а я уже пробовал ставить на 3 разные машины, и плюс 4 разных бистрибутива, везде ругаеться на питон.
суть примерна такая:
Код:
Traceback (most recent call last):
  File "/usr/local/bin/plecost", line 11, in <module>
    sys.exit(main())
  File "/usr/local/lib/python3.6/dist-packages/plecost_lib/__main__.py", line 84, in main
    from .api import run, __version__
  File "/usr/local/lib/python3.6/dist-packages/plecost_lib/api.py", line 51, in <module>
    from .libs.data import PlecostOptions
  File "/usr/local/lib/python3.6/dist-packages/plecost_lib/libs/data.py", line 55, in <module>
    from .utils import get_data_folder
  File "/usr/local/lib/python3.6/dist-packages/plecost_lib/libs/utils.py", line 47, in <module>
    import aiohttp
  File "/usr/local/lib/python3.6/dist-packages/aiohttp/__init__.py", line 6, in <module>
    from .client import *  # noqa
  File "/usr/local/lib/python3.6/dist-packages/aiohttp/client.py", line 15, in <module>
    from . import connector as connector_mod
  File "/usr/local/lib/python3.6/dist-packages/aiohttp/connector.py", line 17, in <module>
    from .client_proto import ResponseHandler
  File "/usr/local/lib/python3.6/dist-packages/aiohttp/client_proto.py", line 6, in <module>
    from .http import HttpResponseParser, StreamWriter
  File "/usr/local/lib/python3.6/dist-packages/aiohttp/http.py", line 8, in <module>
    from .http_parser import (HttpParser, HttpRequestParser, HttpResponseParser,
  File "/usr/local/lib/python3.6/dist-packages/aiohttp/http_parser.py", line 15, in <module>
    from .http_writer import HttpVersion, HttpVersion10
  File "/usr/local/lib/python3.6/dist-packages/aiohttp/http_writer.py", line 304, in <module>
    class URL(yarl.URL):
  File "/usr/local/lib/python3.6/dist-packages/yarl/__init__.py", line 232, in __init_subclass__
    "is forbidden".format(cls))
TypeError: Inheritance a class <class 'aiohttp.http_writer.URL'> from URL is forbidden
подскажите с решением, если кто сталкивался, вторые сутки маюсь!
 
Добрый день, помогите пожалуйста с установкой!
каждый раз при утсановке, а я уже пробовал ставить на 3 разные машины, и плюс 4 разных бистрибутива, везде ругаеться на питон.
суть примерна такая:
Код:
Traceback (most recent call last):
  File "/usr/local/bin/plecost", line 11, in <module>
    sys.exit(main())
  File "/usr/local/lib/python3.6/dist-packages/plecost_lib/__main__.py", line 84, in main
    from .api import run, __version__
  File "/usr/local/lib/python3.6/dist-packages/plecost_lib/api.py", line 51, in <module>
    from .libs.data import PlecostOptions
  File "/usr/local/lib/python3.6/dist-packages/plecost_lib/libs/data.py", line 55, in <module>
    from .utils import get_data_folder
  File "/usr/local/lib/python3.6/dist-packages/plecost_lib/libs/utils.py", line 47, in <module>
    import aiohttp
  File "/usr/local/lib/python3.6/dist-packages/aiohttp/__init__.py", line 6, in <module>
    from .client import *  # noqa
  File "/usr/local/lib/python3.6/dist-packages/aiohttp/client.py", line 15, in <module>
    from . import connector as connector_mod
  File "/usr/local/lib/python3.6/dist-packages/aiohttp/connector.py", line 17, in <module>
    from .client_proto import ResponseHandler
  File "/usr/local/lib/python3.6/dist-packages/aiohttp/client_proto.py", line 6, in <module>
    from .http import HttpResponseParser, StreamWriter
  File "/usr/local/lib/python3.6/dist-packages/aiohttp/http.py", line 8, in <module>
    from .http_parser import (HttpParser, HttpRequestParser, HttpResponseParser,
  File "/usr/local/lib/python3.6/dist-packages/aiohttp/http_parser.py", line 15, in <module>
    from .http_writer import HttpVersion, HttpVersion10
  File "/usr/local/lib/python3.6/dist-packages/aiohttp/http_writer.py", line 304, in <module>
    class URL(yarl.URL):
  File "/usr/local/lib/python3.6/dist-packages/yarl/__init__.py", line 232, in __init_subclass__
    "is forbidden".format(cls))
TypeError: Inheritance a class <class 'aiohttp.http_writer.URL'> from URL is forbidden
подскажите с решением, если кто сталкивался, вторые сутки маюсь!

Код:
python3 -m pip install aiohttp==1.3.5
sudo python3 -m pip install --upgrade beautifulsoup4==4.6.0
 
  • Нравится
Реакции: Sa1nt, Vertigo и Topotun
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!