Creando un backdoor en WordPress

Creando un backdoor en WordPress

Os voy a enseñar a crear una puerta trasera en WordPress, bastante útil en muchos aspectos…

PHP

Este es el código, simplemente nos crea el usuario “Usuarios” . Este usuario se crea al usar esta url https://dominio.com/?wordpress=usuario

Creando un backdoor en WordPress 1

Nombre de usuario: Usuarios y la contraseña: usuario

¿Porque en el código he puesto WordPress instalado… y no he puesto de usuario backdoor creado o algo asi? Muy sencillo, se trata de ocultarlo lo máximo posible

Creando un backdoor en WordPress 2

Ten en cuenta que el usuario aparece en la lista de los usuarios

Si se dan cuenta y te borran el usuario, simplemente vuelves a entrar a la url con los parámetros mencionados y lo puedes volver a crear (Siempre y cuando no encuentren el código que permite hacer esta acción)

Muy bien, pero… ¿Donde pegamos este código?

Se puede añadir en el functions.php del tema o bien puedes crear un mu-plugin que se llame “WordPress” por ejemplo ¿Porque un mu-plugin y no un plugin? Porque poca gente conoce lo que es un mu-plugin y seguramente les sea mas difícil de localizar

También puedes pasarlo a base64 o modificar el codigo para crear más usuarios y pegarlo en diferentes plugins o archivos php.

¿Como seria? Probado y funcionando

PHP

Otra idea es que el código solo se pueda ejecutar en una pagina especifica, por si acaso algún plugin de seguridad detecta el link. Es decir que solo puedas ejecutarlo por ejemplo desde https://dominio.com/contacto?wordpress=usuario

PHP

No he probado esto último, pero diría que así puede funcionar

Desinfectar web hackeada por el plugin Yuzo related

Desinfectar web hackeada por el plugin Yuzo related

El plugin Yuzo Related Posts, que está instalado en más de 60,000 sitios web, se eliminó del directorio de plugins de WordPress.org el 30 de marzo de 2019 después de que una vulnerabilidad no parcheada fuera divulgada públicamente e irresponsablemente por un investigador de seguridad ese mismo día. Hoy 10 de abril de 2019 esta vulnerabilidad esta siendo explotada masivamente, seguramente con un script que rastrea los sitios vulnerables y si es vulnerable inyecta un codigo javascript que contiene publicidad

JS

Este es el código desofuscado, pero los atacantes lo están inyectando a través de un eval(String.fromCharCode

¿Como desinfecto mi web?

Lo primero que debes hacer es eliminar el plugin de tu WordPress

Después para remover el código lo que tienes que hacer es insertar este código SQL para eliminar la tabla donde está el javascript ofuscado, que es lo que hace que tu web cargue la publicidad

SQL

El creador del plugin ya ha corregido las vulnerabilidades y el equipo de plugins de WordPress ya está revisando la nueva versión.

El creador ha publicado un link con la nueva versión (que podéis descargar aquí)

Lo recomendable es esperar a que el equipo de plugins de WordPress lo revise y mantener el plugin alejado de nuestro WordPress, en las próximas horas o días estará de vuelta en el repositorio

Bonus: Si te gusta la seguridad o quieres probar esta vulnerabilidad, aquí tienes información para hacer una prueba de concepto 🙂

Como dejar un sitio de WordPress inoperativo – CVE-2018-6389

Como dejar un sitio de WordPress inoperativo – CVE-2018-6389

Según wordpress.com, la plataforma de WordPress impulsa el 29% de los sitios web de Internet en todo el mundo.
 
En este artículo explicaré cómo la denegación de servicio puede ser causada fácilmente a casi cualquier sitio web de WordPress en línea, y cómo puede parchear su sitio web de WordPress para evitar que esta vulnerabilidad sea explotada.
 
Es importante tener en cuenta que explotar esta vulnerabilidad es ilegal, a menos que tenga permiso del propietario del sitio web.
 
Hay una URL en WordPress que carga un monton de archivos, 181 valores
 
eutil, común, wp-a11y, sack, quicktag, colorpicker, editor, wp-fullscreen-stu, wp-ajax-response, wp-api-request, wp-pointer, autoguardado, heartbeat, wp-auth-check, wp- listas, prototipo, scriptaculous-root, scriptaculous-builder, scriptaculous-dragdrop, scriptaculous-effects, scriptaculous-slider, scriptaculous-sound, scriptaculous-controls, scriptaculous, cropper, jquery, jquery-core, jquery-migrate, jquery-ui- core, jquery-effects-core, jquery-effects-blind, jquery-effects-bounce, jquery-effects-clip, jquery-effects-drop, jquery-effects-explode, jquery-effects-fade, jquery-effects-fold, jquery-effects-highlight, jquery-effects-puff, jquery-effects-pulsete, jquery-effects-scale, jquery-effects-shake, jquery-effects-size, jquery-effects-slide, jquery-effects-transfer, jquery- ui-accordion, jquery-ui-autocomplete, jquery-ui-button, jquery-ui-datepicker, jquery-ui-dialog, jquery-ui-draggable,jquery-ui-droppable, jquery-ui-menu, jquery-ui-mouse, jquery-ui-position, jquery-ui-progressbar, jquery-ui-resizable, jquery-ui-seleccionable, jquery-ui-selectmenu, jquery- ui-slider, jquery-ui-sortable, jquery-ui-spinner, jquery-ui-tabs, jquery-ui-tooltip, jquery-ui-widget, jquery-form, jquery-color, schedule, jquery-query, jquery- serialize-object, jquery-hotkeys, jquery-table-hotkeys, jquery-touch-punch, sugerir, imagesloaded, masonry, jquery-masonry, thickbox, jcrop, swfobject, moxiejs, plupload, plupload-handlers, wp-plupload, swfupload, swfupload-all, swfupload-handlers, comment-repl, json2, guión bajo, columna vertebral, wp-util, wp-sanitize, wp-backbone, revisiones, imgareaselect, mediaelement, mediaelement-core, mediaelement-migrat, mediaelement-vimeo, wp- mediaelement, wp-codemirror, csslint, jshint, esprima, jsonlint, htmlhint, htmlhint-kses, editor de código, wp-theme-plugin-editor, wp-playlist, zxcvbn-async,password-strength-meter, user-profile, language-chooser, user-suggest, admin-ba, wplink, wpdialogs, word-coun, media-upload, hoverIntent, customize-base, customize-loader, customize-preview, customize- modelos, personalizar-vistas, personalizar-controles, personalizar-seleccionar-actualizar, personalizar-widgets, personalizar-vista previa-widgets, personalizar-menús-nav-menus, personalizar-previsualizar-menús-nav-menus, wp-custom-header, acordeón, shortcode, modelos de medios, wp-embe, vistas de medios, editor de medios, audiovideo de medios, mce-view, wp-api, etiquetas de administrador, comentarios de administrador, xfn, buzón de correos, cuadro de etiquetas, sugerencias de etiquetas, publicación, editor-expandir, enlace, comentario, galería-admin, widgets-admin, widgets multimedia, widget-audio-medios, widget-imagen-multimedia, widget-galería-medios, widget-videos-medios, widgets-texto, personalizado- html-widgets, tema, edición en línea, publicación en línea-impuestos, instalación de plugins, actualizaciones, farbtastic, iris, selector de color wp, tablero de instrumentos, lista-revisión, media-grid, medios, edición de imágenes,set-post-thumbnail, nav-menu, custom-header, custom-background, media-gallery, svg-painter
 
Si solicitamos todos estos recursos a una página web podemos llegar a saturarla

Hice una prueba y el servidor respondió después de 2.2 segundos, con casi 4MB de datos, lo que hizo que el servidor trabajara muy duro para procesar dicha solicitud.

Así que decidí usar doser.py , una herramienta sencilla , diseñada para repetir constantemente las solicitudes
Para causar DoS, y ¿adivinen qué? ¡funcionó! 🙂

Y la web se cae

Video de ejemplo:

El equipo de WordPress no toma esto como una vulnerabilidad ya que dice que se debe proteger a nivel servidor

¿Como protegemos nuestro servidor / web?

Lo recomendable es contratar un buen servicio de alojamiento

y bloquear / redirigir https://www.myweb.com/wp-admin/load-scripts.php

Python