En septiembre del 2021 varios temas y plugis de WordPress que se encontraban alojados en el sitio web de la empresa AccessPress Themes fueron modificadas con código sospechoso. Los atacantes infectaron más de 40 temas y 53 plugins de la empresa precitada.
En una investigación realizada por la compañía de investigadores de seguridad JetPack, publicada el 18 de enero, se ha podido conocer que el código sospechoso contenido en los plugins y temas del vendor permitirían a los atacantes tener un acceso backdoor a cualquier sitio que posee esas extensiones.
JetPack detalla que el código solo era ejecutado cuando las extensiones eran descargadas directamente de la página de AccessPress.
Las extensiones infectadas contenía un dropper para webshell que le permitía al atacante tener acceso completo a los sitios infectados. El dropper se encontraba alojado en el archivo initial.php que se encontraba en el directorio principal del plugin o del tema. Una vez ejecutado, instalaba un webshell basado en las cookies del sitio en wp-includes/vars.php. El Shell es instalado justo por delante de la función wp_is_mobile() bajo la función con nombre wp_is_mobile_fix().
Una vez instalado el shell, el dropper sería llamado cargando una imagen de remotamente desde la URL hxxps://www.wp-theme-connect.com/images/wp-theme[.]jpg. Luego de recopilar la información acerca de los argumentos de los query’s usados por el sitio, el dropper es removido.
JetPack ha publicado una lista con todos los plugins y temas afectados que puede revisar ingresando aquí. Cabe destacar que, en la lista solo constan las extensiones gratis esto no garantiza que los plugins y temas pagados estén libres de vulnerabilidades.
Por otro lado, WordFence reveló que se han descubierto cerca de 2240 fallas de seguridad en complementos de WordPress de terceros hacía fines de 2021, un incremento del 142% en los hallazgos comparados con las 1000 vulnerabilidades informadas en el 2020. Hasta la publicación de este artículo se han encontrado 10359 vulnerabilidades de complementos de WordPress.
Regla YARA
Con el uso de la siguiente regla YARA se puede validar si existe un backdoor en sitios webs bajo nuestra administración.
rule accesspress_backdoor_infection
{
strings:
// IoC's for the dropper
$inject0 = "$fc = str_replace('function wp_is_mobile()',"
$inject1 = "$b64($b) . 'function wp_is_mobile()',"
$inject2 = "$fc);"
$inject3 = "@file_put_contents($f, $fc);"
// IoC's for the dumped payload
$payload0 = "function wp_is_mobile_fix()"
$payload1 = "$is_wp_mobile = ($_SERVER['HTTP_USER_AGENT'] == 'wp_is_mobile');"
$payload2 = "$g = $_COOKIE;"
$payload3 = "(count($g) == 8 && $is_wp_mobile) ?"
$url0 = /https?:\/\/(www\.)?wp\-theme\-connect\.com(\/images\/wp\-theme\.jpg)?/
condition:
all of ( $inject* )
or all of ( $payload* )
or $url0
}
Recomendaciones
- Si posee alguno de los plugins o temas reportados por JetPack debe actualizar la extensión a la versión más reciente publicada en WordPress.org.
- En caso de haber tenido uno de los plugins, actualizar el mismo no se garantiza la eliminación del backdoor en el sitio web, es por esto que se debe reinstalar una versión totalmente limpia de WordPress en su sitio web.
- Si su sitio web posee una extensión de AccessPress Themes pagadas sugerimos contactarse con el equipo de soporte de la página a la brevedad posible.