Wordpress
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Use Trickest to easily build and automate workflows powered by the world's most advanced community tools. Get Access Today:
Завантажені файли зберігаються за адресою: 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/
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, що може бути корисним для усунення неполадок.
Адміністратор
Редактор: Публікує та керує своїми та чужими постами
Автор: Публікує та керує своїми постами
Співробітник: Пише та керує своїми постами, але не може їх публікувати
Підписник: Переглядає пости та редагує свій профіль
Перевірте, чи можете ви знайти файли /license.txt
або /readme.html
У джерельному коді сторінки (приклад з https://wordpress.org/support/article/pages/):
grep
meta name
CSS посилання файли
JavaScript файли
Використовуйте Trickest, щоб легко створювати та автоматизувати робочі процеси, які підтримуються найсучаснішими інструментами спільноти. Отримайте доступ сьогодні:
Ви, ймовірно, не зможете знайти всі можливі Плагіни та Теми. Щоб виявити всі з них, вам потрібно буде активно брутфорсити список Плагінів та Тем (на щастя, для нас є автоматизовані інструменти, які містять ці списки).
ID Brute: Ви отримуєте дійсних користувачів з сайту WordPress, брутфорсуючи ID користувачів:
Якщо відповіді 200 або 30X, це означає, що id є дійсним. Якщо відповідь 400, тоді id є недійсним.
wp-json: Ви також можете спробувати отримати інформацію про користувачів, запитуючи:
Інший /wp-json/
кінцевий пункт, який може розкрити деяку інформацію про користувачів, це:
Зверніть увагу, що цей кінцевий пункт лише відкриває користувачів, які зробили пост. Будуть надані лише відомості про користувачів, у яких ця функція активована.
Також зверніть увагу, що /wp-json/wp/v2/pages може витікати IP-адреси.
Перерахування імен користувачів для входу: Коли ви входите в /wp-login.php
, повідомлення є іншим, якщо вказане ім'я користувача існує чи ні.
Якщо 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
Цей файл зазвичай існує в кореневій директорії сайту Wordpress: /wp-cron.php
Коли цей файл доступний, виконується "важкий" MySQL запит, тому його можуть використовувати зловмисники для виклику DoS.
Також, за замовчуванням, wp-cron.php
викликається при кожному завантаженні сторінки (кожного разу, коли клієнт запитує будь-яку сторінку Wordpress), що на сайтах з високим трафіком може викликати проблеми (DoS).
Рекомендується вимкнути Wp-Cron і створити реальний cronjob на хостингу, який виконує необхідні дії через регулярні інтервали (без виклику проблем).
Спробуйте отримати доступ до https://worpress-site.com/wp-json/oembed/1.0/proxy?url=ybdk28vjsa9yirr7og2lukt10s6ju8.burpcollaborator.net і сайт Worpress може надіслати запит до вас.
Це відповідь, коли це не працює:
Цей інструмент перевіряє, чи існує methodName: pingback.ping і для шляху /wp-json/oembed/1.0/proxy, і якщо існує, намагається їх експлуатувати.
Більше ніж реальна атака, це цікавість. У CTF https://github.com/orangetw/My-CTF-Web-Challenges#one-bit-man ви могли перевернути 1 біт з будь-якого файлу wordpress. Тож ви могли перевернути позицію 5389
файлу /var/www/html/wp-includes/user.php
, щоб NOP операцію NOT (!
).
Модифікація php з теми, що використовується (потрібні облікові дані адміністратора)
Зовнішній вигляд → Редактор тем → Шаблон 404 (праворуч)
Змініть вміст на php shell:
Шукайте в інтернеті, як ви можете отримати доступ до цієї оновленої сторінки. У цьому випадку вам потрібно перейти сюди: http://10.11.1.234/wp-content/themes/twentytwelve/404.php
Ви можете використовувати:
to get a session.
Можливо, що можна завантажити .php файли як плагін. Створіть свій php бекдор, використовуючи, наприклад:
Потім додайте новий плагін:
Завантажте плагін і натисніть Встановити зараз:
Натисніть Продовжити:
Ймовірно, це нічого не зробить, але якщо ви перейдете до Медіа, ви побачите завантажену оболонку:
Доступ до неї, і ви побачите URL для виконання реверс-оболонки:
Цей метод передбачає установку шкідливого плагіна, відомого як вразливий, і його можна експлуатувати для отримання веб-оболонки. Цей процес здійснюється через панель управління WordPress наступним чином:
Отримання плагіна: Плагін отримується з джерела, такого як Exploit DB, наприклад, тут.
Установка плагіна:
Перейдіть до панелі управління WordPress, потім перейдіть до Панель управління > Плагіни > Завантажити плагін
.
Завантажте zip-файл завантаженого плагіна.
Активація плагіна: Після успішної установки плагін потрібно активувати через панель управління.
Експлуатація:
З встановленим і активованим плагіном "reflex-gallery" його можна експлуатувати, оскільки відомо, що він вразливий.
Фреймворк Metasploit надає експлойт для цієї вразливості. Завантаживши відповідний модуль і виконавши конкретні команди, можна встановити сесію meterpreter, що надає несанкціонований доступ до сайту.
Зазначено, що це лише один з багатьох методів експлуатації сайту WordPress.
Зміст включає візуальні допоміжні засоби, що ілюструють кроки в панелі управління WordPress для установки та активації плагіна. Однак важливо зазначити, що експлуатація вразливостей таким чином є незаконною та неетичною без належного дозволу. Цю інформацію слід використовувати відповідально і лише в законному контексті, наприклад, під час тестування на проникнення з явним дозволом.
Для більш детальних кроків перевірте: https://www.hackingarticles.in/wordpress-reverse-shell/
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 може відкривати функціональність, є ключовим для виявлення вразливостей у його функціональності. Ви можете знайти, як плагін може відкривати функціональність у наступних пунктах та деякі приклади вразливих плагінів у цьому блозі.
wp_ajax
Один із способів, яким плагін може відкривати функції для використання, - це через AJAX-обробники. Ці обробники можуть містити логіку, помилки авторизації або аутентифікації. Більше того, досить часто ці функції базуються як на аутентифікації, так і на авторизації на існуванні nonce Wordpress, який будь-який користувач, аутентифікований у екземплярі Wordpress, може мати (незалежно від його ролі).
Це функції, які можуть бути використані для відкриття функції в плагіні:
Використання nopriv
робить кінцеву точку доступною для будь-яких користувачів (навіть неавтентифікованих).
Більше того, якщо функція просто перевіряє авторизацію користувача за допомогою функції wp_verify_nonce
, ця функція просто перевіряє, чи користувач увійшов в систему, зазвичай вона не перевіряє роль користувача. Тому користувачі з низькими привілеями можуть мати доступ до дій з високими привілеями.
REST API
Також можливо експонувати функції з wordpress, реєструючи rest AP за допомогою функції register_rest_route
:
permission_callback
- це зворотний виклик функції, яка перевіряє, чи має даний користувач право викликати метод API.
Якщо використовується вбудована функція __return_true
, вона просто пропустить перевірку прав користувача.
Прямий доступ до php файлу
Звичайно, Wordpress використовує PHP, і файли всередині плагінів безпосередньо доступні з вебу. Отже, у випадку, якщо плагін відкриває будь-яку вразливу функціональність, яка активується просто доступом до файлу, це буде експлуатовано будь-яким користувачем.
Переконайтеся, що WordPress, плагіни та теми оновлені. Також підтверджуйте, що автоматичне оновлення увімкнено в wp-config.php:
Також, встановлюйте лише надійні плагіни та теми WordPress.
Видаліть стандартного admin користувача
Використовуйте сильні паролі та 2FA
Періодично переглядайте права доступу користувачів
Обмежте спроби входу для запобігання атакам Brute Force
Перейменуйте файл wp-admin.php
та надавайте доступ лише внутрішньо або з певних IP-адрес.
Використовуйте Trickest для легкого створення та автоматизації робочих процесів, підтримуваних найсучаснішими інструментами спільноти. Отримайте доступ сьогодні:
Вчіться та практикуйте Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Вчіться та практикуйте Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)