Wordpress
Use Trickest to easily build and automate workflows powered by the world's most advanced community tools. Get Access Today:
Basic Information
Завантажені файли знаходяться за адресою: http://10.10.10.10/wp-content/uploads/2018/08/a.txt
Файли тем можна знайти в /wp-content/themes/, тому, якщо ви зміните деякі php файли теми для отримання RCE, ви, напевно, будете використовувати цей шлях. Наприклад: Використовуючи тему twentytwelve, ви можете доступитися до 404.php файлу за адресою: /wp-content/themes/twentytwelve/404.php
Ще один корисний URL може бути: /wp-content/themes/default/404.php
У wp-config.php ви можете знайти кореневий пароль бази даних.
Шляхи для входу за замовчуванням, які слід перевірити: /wp-login.php, /wp-login/, /wp-admin/, /wp-admin.php, /login/
Основні файли WordPress
index.php
license.txt
містить корисну інформацію, таку як версія встановленого WordPress.wp-activate.php
використовується для процесу активації електронної пошти під час налаштування нового сайту WordPress.Папки для входу (можуть бути перейменовані для приховування):
/wp-admin/login.php
/wp-admin/wp-login.php
/login.php
/wp-login.php
xmlrpc.php
- це файл, який представляє функцію WordPress, що дозволяє передавати дані через HTTP, використовуючи XML як механізм кодування. Цей тип зв'язку був замінений на REST API WordPress.Папка
wp-content
є основним каталогом, де зберігаються плагіни та теми.wp-content/uploads/
- це каталог, де зберігаються всі файли, завантажені на платформу.wp-includes/
Це каталог, де зберігаються основні файли, такі як сертифікати, шрифти, JavaScript файли та віджети.wp-sitemap.xml
У версіях WordPress 5.5 і вище WordPress генерує XML файл карти сайту з усіма публічними постами та публічно запитуваними типами постів і таксономіями.
Пост експлуатація
Файл
wp-config.php
містить інформацію, необхідну WordPress для підключення до бази даних, таку як ім'я бази даних, хост бази даних, ім'я користувача та пароль, ключі аутентифікації та сіль, а також префікс таблиці бази даних. Цей конфігураційний файл також може бути використаний для активації режиму DEBUG, що може бути корисним для усунення неполадок.
Дозволи користувачів
Адміністратор
Редактор: Публікує та керує своїми та чужими постами
Автор: Публікує та керує своїми постами
Співробітник: Пише та керує своїми постами, але не може їх публікувати
Підписник: Переглядає пости та редагує свій профіль
Пасивна енумерація
Отримати версію WordPress
Перевірте, чи можете ви знайти файли /license.txt
або /readme.html
У джерельному коді сторінки (приклад з https://wordpress.org/support/article/pages/):
grep
meta name
CSS посилання файли
JavaScript файли
Отримати плагіни
Отримати теми
Витяг версій загалом
Використовуйте Trickest для легкого створення та автоматизації робочих процесів, підтримуваних найсучаснішими інструментами спільноти. Отримайте доступ сьогодні:
Активна енумерація
Плагіни та Теми
Ви, ймовірно, не зможете знайти всі можливі Плагіни та Теми. Щоб виявити всі з них, вам потрібно буде активно брутфорсити список Плагінів та Тем (на щастя, для нас є автоматизовані інструменти, які містять ці списки).
Користувачі
ID Брут
Ви отримуєте дійсних користувачів з сайту WordPress, брутфорсуючи ID користувачів:
Якщо відповіді 200 або 30X, це означає, що id є дійсним. Якщо відповідь 400, тоді id є недійсним.
wp-json
Ви також можете спробувати отримати інформацію про користувачів, запитуючи:
Інший /wp-json/
кінцевий пункт, який може розкрити деяку інформацію про користувачів, це:
Зверніть увагу, що цей кінцевий пункт лише відкриває користувачів, які зробили пост. Будуть надані лише відомості про користувачів, у яких увімкнено цю функцію.
Також зверніть увагу, що /wp-json/wp/v2/pages може витікати IP-адреси.
Перерахування імен користувачів для входу
При вході в /wp-login.php
повідомлення є іншим, якщо вказане ім'я користувача існує чи ні.
XML-RPC
Якщо xml-rpc.php
активний, ви можете виконати брутфорс облікових даних або використовувати його для запуску DoS-атак на інші ресурси. (Ви можете автоматизувати цей процес використовуючи це наприклад).
Щоб перевірити, чи активний, спробуйте отримати доступ до /xmlrpc.php і надішліть цей запит:
Перевірити
Брутфорс облікових даних
wp.getUserBlogs
, wp.getCategories
або metaWeblog.getUsersBlogs
- це деякі з методів, які можна використовувати для брутфорсу облікових даних. Якщо ви зможете знайти будь-який з них, ви можете надіслати щось на зразок:
Повідомлення "Неправильне ім'я користувача або пароль" всередині відповіді з кодом 200 повинно з'явитися, якщо облікові дані недійсні.
Використовуючи правильні облікові дані, ви можете завантажити файл. У відповіді з'явиться шлях (https://gist.github.com/georgestephanis/5681982)
Також є швидший спосіб для брутфорсу облікових даних, використовуючи system.multicall
, оскільки ви можете спробувати кілька облікових даних в одному запиті:
Обхід 2FA
Цей метод призначений для програм, а не для людей, і є старим, тому не підтримує 2FA. Отже, якщо у вас є дійсні облікові дані, але головний вхід захищений 2FA, ви можете зловживати xmlrpc.php, щоб увійти з цими обліковими даними, обминаючи 2FA. Зверніть увагу, що ви не зможете виконати всі дії, які ви можете зробити через консоль, але ви все ще можете отримати доступ до RCE, як пояснює Ippsec у https://www.youtube.com/watch?v=p8mIdm93mfw&t=1130s
DDoS або сканування портів
Якщо ви можете знайти метод pingback.ping у списку, ви можете змусити Wordpress надіслати довільний запит до будь-якого хоста/порту. Це можна використовувати, щоб попросити тисячі сайтів Wordpress доступитися до одного місця (так що в цьому місці викликано DDoS) або ви можете використовувати це, щоб змусити Wordpress сканувати якусь внутрішню мережу (ви можете вказати будь-який порт).
Якщо ви отримали faultCode зі значенням більше ніж 0 (17), це означає, що порт відкритий.
Подивіться на використання system.multicall
в попередньому розділі, щоб дізнатися, як зловживати цим методом для виклику DDoS.
DDoS
wp-cron.php DoS
Цей файл зазвичай існує в корені сайту Wordpress: /wp-cron.php
Коли цей файл доступний, виконується "важкий" MySQL запит, тому його можуть використовувати зловмисники для виклику DoS.
Також, за замовчуванням, wp-cron.php
викликається при кожному завантаженні сторінки (кожного разу, коли клієнт запитує будь-яку сторінку Wordpress), що на сайтах з високим трафіком може викликати проблеми (DoS).
Рекомендується вимкнути Wp-Cron і створити реальний cronjob на хостингу, який виконує необхідні дії з регулярним інтервалом (без виклику проблем).
/wp-json/oembed/1.0/proxy - SSRF
Спробуйте отримати доступ до https://worpress-site.com/wp-json/oembed/1.0/proxy?url=ybdk28vjsa9yirr7og2lukt10s6ju8.burpcollaborator.net і сайт Worpress може надіслати запит до вас.
Це відповідь, коли це не працює:
SSRF
Цей інструмент перевіряє, чи існує methodName: pingback.ping і для шляху /wp-json/oembed/1.0/proxy, і якщо існує, намагається їх експлуатувати.
Автоматичні інструменти
Використовуйте Trickest, щоб легко створювати та автоматизувати робочі процеси, які підтримуються найсучаснішими інструментами спільноти. Отримайте доступ сьогодні:
Отримайте доступ, переписавши один біт
Більше ніж реальна атака, це цікавість. У CTF https://github.com/orangetw/My-CTF-Web-Challenges#one-bit-man ви могли б перевернути 1 біт з будь-якого файлу wordpress. Тож ви могли б перевернути позицію 5389
файлу /var/www/html/wp-includes/user.php
, щоб NOP операцію NOT (!
).
Panel RCE
Модифікація php з теми, що використовується (потрібні облікові дані адміністратора)
Зовнішній вигляд → Редактор тем → Шаблон 404 (праворуч)
Змініть вміст на php shell:
Шукайте в інтернеті, як ви можете отримати доступ до цієї оновленої сторінки. У цьому випадку вам потрібно перейти сюди: http://10.11.1.234/wp-content/themes/twentytwelve/404.php
MSF
Ви можете використовувати:
to get a session.
Plugin RCE
PHP плагін
Можливо, що можна завантажити .php файли як плагін. Створіть свій php бекдор, використовуючи, наприклад:
Потім додайте новий плагін:
Завантажте плагін і натисніть Встановити зараз:
Натисніть Продовжити:
Ймовірно, це нічого не зробить на перший погляд, але якщо ви перейдете до Медіа, ви побачите завантажену оболонку:
Доступ до неї, і ви побачите URL для виконання реверсної оболонки:
Завантаження та активація шкідливого плагіна
Цей метод передбачає установку шкідливого плагіна, відомого як вразливий, і може бути використаний для отримання веб-оболонки. Цей процес здійснюється через панель управління WordPress наступним чином:
Отримання плагіна: Плагін отримується з джерела, такого як Exploit DB, як тут.
Встановлення плагіна:
Перейдіть до панелі управління WordPress, потім перейдіть до
Панель управління > Плагіни > Завантажити плагін
.Завантажте zip-файл завантаженого плагіна.
Активація плагіна: Після успішної установки плагін повинен бути активований через панель управління.
Експлуатація:
З встановленим і активованим плагіном "reflex-gallery" його можна експлуатувати, оскільки відомо, що він вразливий.
Фреймворк Metasploit надає експлойт для цієї вразливості. Завантаживши відповідний модуль і виконавши конкретні команди, можна встановити сесію meterpreter, що надає несанкціонований доступ до сайту.
Зазначено, що це лише один з багатьох методів експлуатації сайту WordPress.
Зміст включає візуальні допоміжні засоби, що ілюструють кроки в панелі управління WordPress для встановлення та активації плагіна. Однак важливо зазначити, що експлуатація вразливостей таким чином є незаконною та неетичною без належного дозволу. Цю інформацію слід використовувати відповідально і лише в законному контексті, наприклад, під час тестування на проникнення з явним дозволом.
Для більш детальних кроків перевірте: https://www.hackingarticles.in/wordpress-reverse-shell/
Від XSS до RCE
WPXStrike: WPXStrike — це скрипт, призначений для ескалації вразливості Cross-Site Scripting (XSS) до Remote Code Execution (RCE) або інших критичних вразливостей у WordPress. Для отримання додаткової інформації перевірте цей пост. Він надає підтримку версій WordPress 6.X.X, 5.X.X та 4.X.X і дозволяє:
Ескалація привілеїв: Створює користувача в WordPress.
(RCE) Завантаження користувацького плагіна (бекдору): Завантажте свій користувацький плагін (бекдор) до WordPress.
(RCE) Редагування вбудованого плагіна: Редагуйте вбудовані плагіни в WordPress.
(RCE) Редагування вбудованої теми: Редагуйте вбудовані теми в WordPress.
(Користувацький) Користувацькі експлойти: Користувацькі експлойти для сторонніх плагінів/тем WordPress.
Постексплуатація
Витягніть імена користувачів та паролі:
Змінити пароль адміністратора:
Wordpress Plugins Pentest
Attack Surface
Знання того, як плагін Wordpress може відкривати функціональність, є ключовим для виявлення вразливостей у його функціональності. Ви можете знайти, як плагін може відкривати функціональність, у наступних пунктах та деяких прикладах вразливих плагінів у цьому блозі.
wp_ajax
Один із способів, яким плагін може відкривати функції для використання, - це через AJAX-обробники. Ці обробники можуть містити логіку, помилки авторизації або аутентифікації. Більше того, досить часто ці функції базуються як на аутентифікації, так і на авторизації на існуванні nonce Wordpress, який будь-який користувач, аутентифікований у екземплярі Wordpress, може мати (незалежно від його ролі).
Це функції, які можуть бути використані для відкриття функції в плагіні:
Використання nopriv
робить кінцеву точку доступною для будь-яких користувачів (навіть неавтентифікованих).
Більше того, якщо функція просто перевіряє авторизацію користувача за допомогою функції wp_verify_nonce
, ця функція просто перевіряє, чи користувач увійшов в систему, зазвичай вона не перевіряє роль користувача. Тому користувачі з низькими привілеями можуть мати доступ до дій з високими привілеями.
REST API
Також можливо відкрити функції з WordPress, зареєструвавши REST API за допомогою функції register_rest_route
:
permission_callback
- це зворотний виклик функції, яка перевіряє, чи має даний користувач право викликати метод API.
Якщо використовується вбудована функція __return_true
, вона просто пропустить перевірку прав користувача.
Прямий доступ до php файлу
Звичайно, Wordpress використовує PHP, і файли всередині плагінів безпосередньо доступні з вебу. Отже, у випадку, якщо плагін відкриває будь-яку вразливу функціональність, яка активується просто доступом до файлу, це буде експлуатовано будь-яким користувачем.
Захист WordPress
Регулярні оновлення
Переконайтеся, що WordPress, плагіни та теми оновлені. Також підтвердіть, що автоматичне оновлення увімкнене в wp-config.php:
Також, встановлюйте лише надійні плагіни та теми WordPress.
Плагіни безпеки
Інші рекомендації
Видаліть стандартного admin користувача
Використовуйте сильні паролі та 2FA
Періодично переглядайте права доступу користувачів
Обмежте спроби входу для запобігання атакам Brute Force
Перейменуйте файл
wp-admin.php
та надавайте доступ лише внутрішньо або з певних IP-адрес.
Використовуйте Trickest для легкого створення та автоматизації робочих процесів, підтримуваних найсучаснішими інструментами спільноти. Отримайте доступ сьогодні:
Last updated