{"id":98,"date":"2026-01-13T00:00:00","date_gmt":"2026-01-12T23:00:00","guid":{"rendered":"https:\/\/helloblog.io\/sv\/wordpress-malware-googlebot-asn-ip-verifiering\/"},"modified":"2026-01-20T06:33:17","modified_gmt":"2026-01-20T05:33:17","slug":"wordpress-malware-googlebot-asn-ip-verifiering","status":"publish","type":"post","link":"https:\/\/helloblog.io\/sv\/wordpress-malware-googlebot-asn-ip-verifiering\/","title":{"rendered":"N\u00e4r Google ser n\u00e5got helt annat \u00e4n bes\u00f6kare: WordPress-malware som verifierar Googlebots IP p\u00e5 ASN-niv\u00e5"},"content":{"rendered":"\n<p>Det klassiska m\u00f6nstret med &#8220;redirect alla till en skum dom\u00e4n&#8221; blir allt mindre vanligt. I st\u00e4llet ser vi attacker som \u00e4r selektiva p\u00e5 riktigt: vanliga bes\u00f6kare (och ofta \u00e4ven sajt\u00e4garen) f\u00e5r se en helt normal WordPress-sajt, medan s\u00f6kmotorer f\u00e5r ett helt annat inneh\u00e5ll. Det h\u00e4r \u00e4r extra lurigt, eftersom det fr\u00e4mst sl\u00e5r mot SEO och varum\u00e4rke \u2013 och kan p\u00e5g\u00e5 l\u00e4nge utan att n\u00e5gon m\u00e4rker n\u00e5got.<\/p>\n\n\n\n<p>I en nyligen analyserad incident hittades en s\u00e5dan selektiv injektion direkt i sajtens <strong>index.php<\/strong>. Den fungerade som en grindvakt: beroende p\u00e5 vem som gjorde requesten laddade den antingen WordPress som vanligt, eller h\u00e4mtade och skrev ut fj\u00e4rrinneh\u00e5ll fr\u00e5n en extern k\u00e4lla.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Vad som g\u00f6r den h\u00e4r varianten mer avancerad \u00e4n vanlig cloaking<\/h2>\n\n\n\n<p>SEO cloaking i sig \u00e4r ingen ny teknik: m\u00e5nga skript tittar p\u00e5 <code>User-Agent<\/code> och levererar spam till &#8220;Googlebot&#8221; och vanligt inneh\u00e5ll till m\u00e4nniskor. Det nya h\u00e4r var hur l\u00e5ngt angriparen gick f\u00f6r att s\u00e4kerst\u00e4lla att det verkligen var Google som tittade.<\/p>\n\n\n\n<p>I st\u00e4llet f\u00f6r att enbart lita p\u00e5 <code>User-Agent<\/code> (som \u00e4r trivial att fejka), inneh\u00f6ll malwaren en stor, h\u00e5rdkodad lista med Googles IP-intervall kopplade till Googles ASN (Autonomous System Number). En ASN kan ses som en organisations &#8220;internet-identitet&#8221; \u2013 ett s\u00e4tt att gruppera IP-utrymmen som faktiskt \u00e4gs och anv\u00e4nds av exempelvis Google f\u00f6r Search, Gmail och Google Cloud.<\/p>\n\n\n\n<p>Listan var angiven i <strong>CIDR-format<\/strong> (Classless Inter-Domain Routing), allts\u00e5 ett kompakt s\u00e4tt att beskriva IP-block. Ett enkelt exempel \u00e4r <code>192.168.1.0\/24<\/code>, vilket representerar 256 adresser (<code>192.168.1.0<\/code>\u2013<code>192.168.1.255<\/code>). Prefixet <code>\/24<\/code> beskriver storleken p\u00e5 n\u00e4tet (n\u00e4tmasken).<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1360\" height=\"636\" src=\"https:\/\/helloblog.io\/app\/uploads\/sites\/13\/2026\/01\/IP-Verified-Conditional-Logic.png\" alt=\"Diagram som visar IP-verifierad villkorslogik f\u00f6r att avg\u00f6ra vilken payload som ska serveras\" class=\"wp-image-91\" srcset=\"https:\/\/helloblog.io\/app\/uploads\/sites\/13\/2026\/01\/IP-Verified-Conditional-Logic.png 1360w, https:\/\/helloblog.io\/app\/uploads\/sites\/13\/2026\/01\/IP-Verified-Conditional-Logic-300x140.png 300w, https:\/\/helloblog.io\/app\/uploads\/sites\/13\/2026\/01\/IP-Verified-Conditional-Logic-1024x479.png 1024w, https:\/\/helloblog.io\/app\/uploads\/sites\/13\/2026\/01\/IP-Verified-Conditional-Logic-768x359.png 768w, https:\/\/helloblog.io\/app\/uploads\/sites\/13\/2026\/01\/IP-Verified-Conditional-Logic-400x187.png 400w\" sizes=\"auto, (max-width: 1360px) 100vw, 1360px\" \/><figcaption class=\"wp-element-caption\"><em>Forr\u00e1s: Sucuri Blog<\/em><\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">S\u00e5 fungerar attackkedjan i praktiken<\/h2>\n\n\n\n<p>Det infekterade <code>index.php<\/code>-fl\u00f6det var byggt f\u00f6r att (1) identifiera Googles crawlers, (2) verifiera att trafiken kommer fr\u00e5n Googles riktiga IP-utrymme och (3) bara d\u00e5 leverera angriparens inneh\u00e5ll. F\u00f6r alla andra blir allt \u201dsom vanligt\u201d.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">1) Flerlagers identifiering: User-Agent + IP-verifiering<\/h3>\n\n\n\n<p>F\u00f6rsta filtret var <code>HTTP_USER_AGENT<\/code>: skriptet letade inte bara efter &#8220;Googlebot&#8221; utan \u00e4ven str\u00e4ngar f\u00f6r Googles olika verifierings- och inspektionsfl\u00f6den (t.ex. verktyg och API-crawlers). Po\u00e4ngen \u00e4r att f\u00e5 det injicerade inneh\u00e5llet b\u00e5de indexerat och &#8220;bekr\u00e4ftat&#8221; genom flera Google-tj\u00e4nster.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1880\" height=\"498\" src=\"https:\/\/helloblog.io\/app\/uploads\/sites\/13\/2026\/01\/Multi-Layer-Identity-Verification.png\" alt=\"Illustration av flerlagers verifiering d\u00e4r User-Agent kontrolleras och d\u00e4refter IP-intervall verifieras\" class=\"wp-image-92\" srcset=\"https:\/\/helloblog.io\/app\/uploads\/sites\/13\/2026\/01\/Multi-Layer-Identity-Verification.png 1880w, https:\/\/helloblog.io\/app\/uploads\/sites\/13\/2026\/01\/Multi-Layer-Identity-Verification-300x79.png 300w, https:\/\/helloblog.io\/app\/uploads\/sites\/13\/2026\/01\/Multi-Layer-Identity-Verification-1024x271.png 1024w, https:\/\/helloblog.io\/app\/uploads\/sites\/13\/2026\/01\/Multi-Layer-Identity-Verification-768x203.png 768w, https:\/\/helloblog.io\/app\/uploads\/sites\/13\/2026\/01\/Multi-Layer-Identity-Verification-1536x407.png 1536w, https:\/\/helloblog.io\/app\/uploads\/sites\/13\/2026\/01\/Multi-Layer-Identity-Verification-400x106.png 400w\" sizes=\"auto, (max-width: 1880px) 100vw, 1880px\" \/><figcaption class=\"wp-element-caption\"><em>Forr\u00e1s: Sucuri Blog<\/em><\/figcaption><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">2) Bitvis IP-matchning mot CIDR (IPv4 + IPv6)<\/h3>\n\n\n\n<p>Det mest intressanta var IP-kontrollen. I st\u00e4llet f\u00f6r enkla j\u00e4mf\u00f6relser anv\u00e4nde skriptet bitvisa operationer f\u00f6r att r\u00e4kna ut om en IP-adress ligger inom ett visst CIDR-intervall. F\u00f6r IPv4 beskrevs logiken som en maskad j\u00e4mf\u00f6relse, i stil med:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#24292e\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#e1e4e8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>\/\/ Principen: maska b\u00e5de IP och n\u00e4tverk och j\u00e4mf\u00f6r resultatet\n($ip_decimal &amp; $netmask_decimal) == ($range_decimal &amp; $netmask_decimal);\n<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-dark\" style=\"background-color:#24292e;color:#e1e4e8\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color:#6A737D\">\/\/ Principen: maska b\u00e5de IP och n\u00e4tverk och j\u00e4mf\u00f6r resultatet<\/span><\/span>\n<span class=\"line\"><span style=\"color:#E1E4E8\">($ip_decimal <\/span><span style=\"color:#F97583\">&#x26;<\/span><span style=\"color:#E1E4E8\"> $netmask_decimal) <\/span><span style=\"color:#F97583\">==<\/span><span style=\"color:#E1E4E8\"> ($range_decimal <\/span><span style=\"color:#F97583\">&#x26;<\/span><span style=\"color:#E1E4E8\"> $netmask_decimal);<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>Dessutom fanns robust st\u00f6d f\u00f6r <strong>IPv6<\/strong>, vilket m\u00e5nga \u00e4ldre cloaking-skript struntar i. Resultatet blir att man inte kan avsl\u00f6ja attacken genom att bara spoof:a en Googlebot-User-Agent fr\u00e5n sin egen dator \u2013 IP:n m\u00e5ste ocks\u00e5 matcha Googles faktiska n\u00e4t.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1420\" height=\"734\" src=\"https:\/\/helloblog.io\/app\/uploads\/sites\/13\/2026\/01\/Bitwise-IP-Range-Validation.png\" alt=\"Diagram som visar bitvis validering av IP-intervall mot n\u00e4tmask i CIDR-format\" class=\"wp-image-93\" srcset=\"https:\/\/helloblog.io\/app\/uploads\/sites\/13\/2026\/01\/Bitwise-IP-Range-Validation.png 1420w, https:\/\/helloblog.io\/app\/uploads\/sites\/13\/2026\/01\/Bitwise-IP-Range-Validation-300x155.png 300w, https:\/\/helloblog.io\/app\/uploads\/sites\/13\/2026\/01\/Bitwise-IP-Range-Validation-1024x529.png 1024w, https:\/\/helloblog.io\/app\/uploads\/sites\/13\/2026\/01\/Bitwise-IP-Range-Validation-768x397.png 768w, https:\/\/helloblog.io\/app\/uploads\/sites\/13\/2026\/01\/Bitwise-IP-Range-Validation-400x207.png 400w\" sizes=\"auto, (max-width: 1420px) 100vw, 1420px\" \/><figcaption class=\"wp-element-caption\"><em>Forr\u00e1s: Sucuri Blog<\/em><\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1332\" height=\"620\" src=\"https:\/\/helloblog.io\/app\/uploads\/sites\/13\/2026\/01\/CIDR-format.png\" alt=\"Illustration av CIDR-format och hur ett prefix som \/24 avgr\u00e4nsar ett IP-block\" class=\"wp-image-94\" srcset=\"https:\/\/helloblog.io\/app\/uploads\/sites\/13\/2026\/01\/CIDR-format.png 1332w, https:\/\/helloblog.io\/app\/uploads\/sites\/13\/2026\/01\/CIDR-format-300x140.png 300w, https:\/\/helloblog.io\/app\/uploads\/sites\/13\/2026\/01\/CIDR-format-1024x477.png 1024w, https:\/\/helloblog.io\/app\/uploads\/sites\/13\/2026\/01\/CIDR-format-768x357.png 768w, https:\/\/helloblog.io\/app\/uploads\/sites\/13\/2026\/01\/CIDR-format-400x186.png 400w\" sizes=\"auto, (max-width: 1332px) 100vw, 1332px\" \/><figcaption class=\"wp-element-caption\"><em>Forr\u00e1s: Sucuri Blog<\/em><\/figcaption><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">3) Remote payload via cURL och \u201dnative\u201d-illusion<\/h3>\n\n\n\n<p>N\u00e4r b\u00e5de User-Agent och IP-verifiering passerade h\u00e4mtade skriptet fj\u00e4rrinneh\u00e5ll via cURL fr\u00e5n en extern URL och skrev ut det direkt i svaret. F\u00f6r s\u00f6kmotorn ser det d\u00e4rmed ut som att inneh\u00e5llet hostas av den komprometterade sajten.<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#24292e\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#e1e4e8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>hxxps:\/\/amp-samaresmanor[.]pages[.]dev\n<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-dark\" style=\"background-color:#24292e;color:#e1e4e8\" tabindex=\"0\"><code><span class=\"line\"><span>hxxps:\/\/amp-samaresmanor[.]pages[.]dev<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1444\" height=\"836\" src=\"https:\/\/helloblog.io\/app\/uploads\/sites\/13\/2026\/01\/Remote-Payload-Execution-via-cURL.png\" alt=\"Diagram som visar hur payload h\u00e4mtas via cURL fr\u00e5n extern dom\u00e4n och skrivs ut i responsen\" class=\"wp-image-95\" srcset=\"https:\/\/helloblog.io\/app\/uploads\/sites\/13\/2026\/01\/Remote-Payload-Execution-via-cURL.png 1444w, https:\/\/helloblog.io\/app\/uploads\/sites\/13\/2026\/01\/Remote-Payload-Execution-via-cURL-300x174.png 300w, https:\/\/helloblog.io\/app\/uploads\/sites\/13\/2026\/01\/Remote-Payload-Execution-via-cURL-1024x593.png 1024w, https:\/\/helloblog.io\/app\/uploads\/sites\/13\/2026\/01\/Remote-Payload-Execution-via-cURL-768x445.png 768w, https:\/\/helloblog.io\/app\/uploads\/sites\/13\/2026\/01\/Remote-Payload-Execution-via-cURL-400x232.png 400w\" sizes=\"auto, (max-width: 1444px) 100vw, 1444px\" \/><figcaption class=\"wp-element-caption\"><em>Forr\u00e1s: Sucuri Blog<\/em><\/figcaption><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">4) Villkorslogik, felhantering och loggning<\/h3>\n\n\n\n<p>Skriptet hade en tydlig beslutsmotor och loggning f\u00f6r att \u00f6vervaka att attacken fungerar:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li><strong>Legitim bot (r\u00e4tt User-Agent + IP matchar):<\/strong> fj\u00e4rrinneh\u00e5ll serveras. Om payloaden inte kan h\u00e4mtas skickas boten vidare till <code>\/home\/<\/code> f\u00f6r att undvika att Google ser en trasig sida.<\/li>\n\n\n<li><strong>Fejkad bot (User-Agent matchar men IP faller):<\/strong> loggar ett fel i stil med &#8220;Fake GoogleBot detected&#8221; och skickar vidare till den riktiga startsidan.<\/li>\n\n\n<li><strong>Vanliga anv\u00e4ndare:<\/strong> skickas direkt till normal hemsida (f\u00f6r att h\u00e5lla \u00e4garen omedveten).<\/li>\n\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1694\" height=\"680\" src=\"https:\/\/helloblog.io\/app\/uploads\/sites\/13\/2026\/01\/Conditional-Logic-and-Error-Logging.png\" alt=\"Fl\u00f6desschema \u00f6ver villkorslogik: legitim bot f\u00e5r payload, fejkad bot loggas och omdirigeras, vanliga anv\u00e4ndare f\u00e5r normal sida\" class=\"wp-image-96\" srcset=\"https:\/\/helloblog.io\/app\/uploads\/sites\/13\/2026\/01\/Conditional-Logic-and-Error-Logging.png 1694w, https:\/\/helloblog.io\/app\/uploads\/sites\/13\/2026\/01\/Conditional-Logic-and-Error-Logging-300x120.png 300w, https:\/\/helloblog.io\/app\/uploads\/sites\/13\/2026\/01\/Conditional-Logic-and-Error-Logging-1024x411.png 1024w, https:\/\/helloblog.io\/app\/uploads\/sites\/13\/2026\/01\/Conditional-Logic-and-Error-Logging-768x308.png 768w, https:\/\/helloblog.io\/app\/uploads\/sites\/13\/2026\/01\/Conditional-Logic-and-Error-Logging-1536x617.png 1536w, https:\/\/helloblog.io\/app\/uploads\/sites\/13\/2026\/01\/Conditional-Logic-and-Error-Logging-400x161.png 400w\" sizes=\"auto, (max-width: 1694px) 100vw, 1694px\" \/><figcaption class=\"wp-element-caption\"><em>Forr\u00e1s: Sucuri Blog<\/em><\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Varf\u00f6r index.php och WordPress-k\u00e4rnfiler \u00e4r en favoritplats<\/h2>\n\n\n\n<p>Att l\u00e4gga logiken i <code>index.php<\/code> ger angriparen en tidig kontrollpunkt i requesten. I den aktuella varianten anv\u00e4ndes ocks\u00e5 WordPress egna bootstrap-filer f\u00f6r att h\u00e5lla normal funktionalitet intakt n\u00e4r malwaren v\u00e4ljer att inte leverera payload.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li><code>wp-load.php<\/code>: inkluderades f\u00f6r att initiera (bootstrapa) WordPress-milj\u00f6n s\u00e5 skriptet f\u00e5r tillg\u00e5ng till konfiguration och databas.<\/li>\n\n\n<li><code>wp-blog-header.php<\/code>: normalt en del av standardfl\u00f6det i <code>index.php<\/code> n\u00e4r WordPress ska rendera sidan som vanligt.<\/li>\n\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Konsekvenser: SEO-skada och s\u00f6krykte snarare \u00e4n \u201csynligt hack\u201d<\/h2>\n\n\n\n<p>Den h\u00e4r typen av infektion \u00e4r byggd f\u00f6r att vara tyst. I st\u00e4llet f\u00f6r att sabotera sajten f\u00f6r riktiga bes\u00f6kare manipulerar den det som s\u00f6kmotorer ser. Effekterna blir typiskt:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li>blacklisting och\/eller deindexering i s\u00f6kmotorer<\/li>\n\n\n<li>spam-inneh\u00e5ll i s\u00f6kresultat trots att sajten ser korrekt ut vid manuell kontroll<\/li>\n\n\n<li>\u201dresource hijacking\u201d d\u00e4r din dom\u00e4n anv\u00e4nds som distributionsyta f\u00f6r angriparens inneh\u00e5ll<\/li>\n\n\n<li>f\u00f6rdr\u00f6jd uppt\u00e4ckt eftersom \u00e4gare och kundtj\u00e4nst inte ser problemen i browsern<\/li>\n\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1270\" height=\"936\" src=\"https:\/\/helloblog.io\/app\/uploads\/sites\/13\/2026\/01\/What-Google-sees.png\" alt=\"Exempel p\u00e5 hur Google kan se spam-inneh\u00e5ll medan vanliga bes\u00f6kare fortfarande ser den riktiga webbplatsen\" class=\"wp-image-97\" srcset=\"https:\/\/helloblog.io\/app\/uploads\/sites\/13\/2026\/01\/What-Google-sees.png 1270w, https:\/\/helloblog.io\/app\/uploads\/sites\/13\/2026\/01\/What-Google-sees-300x221.png 300w, https:\/\/helloblog.io\/app\/uploads\/sites\/13\/2026\/01\/What-Google-sees-1024x755.png 1024w, https:\/\/helloblog.io\/app\/uploads\/sites\/13\/2026\/01\/What-Google-sees-768x566.png 768w, https:\/\/helloblog.io\/app\/uploads\/sites\/13\/2026\/01\/What-Google-sees-400x295.png 400w\" sizes=\"auto, (max-width: 1270px) 100vw, 1270px\" \/><figcaption class=\"wp-element-caption\"><em>Forr\u00e1s: Sucuri Blog<\/em><\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Tecken att leta efter i en WordPress-milj\u00f6<\/h2>\n\n\n\n<p>Om du misst\u00e4nker den h\u00e4r typen av crawler-interception \u00e4r det s\u00e4llan frontenden som avsl\u00f6jar det. Titta i st\u00e4llet efter indikatorer som matchar beteendet:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li>m\u00e4rkliga eller f\u00f6rs\u00e4mrade Google-resultat (nya titlar, sidor eller snippet-texter du inte k\u00e4nner igen)<\/li>\n\n\n<li>k\u00e4rnfiler med ov\u00e4ntade \u00e4ndringar \u2013 s\u00e4rskilt <code>index.php<\/code><\/li>\n\n\n<li>misst\u00e4nkta externa URL:er\/dom\u00e4ner i koden<\/li>\n\n\n<li>ovanliga loggrader eller nya loggfiler kopplade till redirect\/payload-h\u00e4mtning<\/li>\n\n<\/ul>\n\n\n\n<div class=\"wp-block-group callout callout-warning is-style-warning is-layout-flow wp-block-group-is-layout-flow\" style=\"border-width:1px;border-radius:8px;padding-top:1rem;padding-right:1.5rem;padding-bottom:1rem;padding-left:1.5rem\">\n\n<h4 class=\"wp-block-heading callout-title\">Extra lurigt i fels\u00f6kning<\/h4>\n\n\n<p>Eftersom IP-verifieringen kan kr\u00e4va Googles riktiga ASN-IP:n r\u00e4cker det inte att testa med en spoofad User-Agent lokalt. Du kan f\u00e5 helt \u201drent\u201d resultat i din egen browser och \u00e4nd\u00e5 vara infekterad.<\/p>\n\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Snabb sanering och f\u00f6rebyggande \u00e5tg\u00e4rder (praktiskt fokus)<\/h2>\n\n\n\n<p>N\u00e4r den h\u00e4r typen av kod hamnar i en k\u00e4rnfil \u00e4r grundregeln: utg\u00e5 fr\u00e5n att du beh\u00f6ver b\u00e5de sanera och t\u00e4ppa igen h\u00e5let som gjorde intr\u00e5nget m\u00f6jligt.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n\n<li><strong>Rensa ok\u00e4nda filer och kataloger:<\/strong> ta bort allt du inte k\u00e4nner igen (eller j\u00e4mf\u00f6r mot en ren WordPress-distribution).<\/li>\n\n\n<li><strong>Granska anv\u00e4ndare:<\/strong> leta efter misst\u00e4nkta administrat\u00f6rer\/hj\u00e4lpkonton och ta bort dem.<\/li>\n\n\n<li><strong>\u00c5terst\u00e4ll inloggningar:<\/strong> byt l\u00f6senord f\u00f6r WP-admin, FTP\/SFTP, hostingpanel och databas.<\/li>\n\n\n<li><strong>Skanna din egen dator:<\/strong> ett komprometterat utvecklarmaskineri kan \u00e5terinfektera sajten via sparade credentials.<\/li>\n\n\n<li><strong>Uppdatera allt:<\/strong> WordPress core, teman och plugins.<\/li>\n\n\n<li><strong>S\u00e4tt en WAF:<\/strong> en Web Application Firewall kan hj\u00e4lpa till att blockera k\u00e4nda C2-\/payload-dom\u00e4ner och stoppa vissa uppladdningsf\u00f6rs\u00f6k i f\u00f6rsta ledet.<\/li>\n\n\n<li><strong>\u00d6vervaka filintegritet:<\/strong> larma p\u00e5 \u00e4ndringar i k\u00e4rnfiler som <code>index.php<\/code>.<\/li>\n\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">Dom\u00e4nen som anv\u00e4ndes som payload-k\u00e4lla i fallet<\/h2>\n\n\n\n<p>I analysen pekade malwaren ut en extern k\u00e4lla p\u00e5 <code>amp-samaresmanor[.]pages[.]dev<\/code>. Vid tidpunkten f\u00f6r publicering var den URL:en flaggad av ett mindre antal s\u00e4kerhetsleverant\u00f6rer p\u00e5 VirusTotal, och flera webbplatser hade identifierats med samma infektion via PublicWWW.<\/p>\n\n\n\n<p>Det viktiga h\u00e4r \u00e4r inte just dom\u00e4nnamnet utan m\u00f6nstret: en komprometterad WordPress-sajt anv\u00e4nds som trov\u00e4rdig yta, medan det faktiska inneh\u00e5llet hostas n\u00e5gon annanstans och bara visas f\u00f6r verifierade crawlers.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Sammanfattning<\/h2>\n\n\n\n<p>Det h\u00e4r \u00e4r en tydlig p\u00e5minnelse om att modern WordPress-malware ofta \u00e4r byggd f\u00f6r att undvika m\u00e4nsklig uppt\u00e4ckt. Genom att kombinera User-Agent-filter med ASN-baserad IP-verifiering (inklusive IPv6) kan angriparen leverera spam n\u00e4stan uteslutande till Googles egna system. F\u00f6r dig som utvecklar eller driftar WordPress \u00e4r filintegritets\u00f6vervakning och regelbunden kontroll av indexerade sidor i Google Search Console tv\u00e5 av de mest tr\u00e4ffs\u00e4kra s\u00e4tten att uppt\u00e4cka den h\u00e4r typen av tyst SEO-kapning i tid.<\/p>\n\n\n<div class=\"references-section\">\n                <h2>Referenser \/ K\u00e4llor<\/h2>\n                <ul class=\"references-list\"><li><a href=\"https:\/\/blog.sucuri.net\/2026\/01\/malware-intercepts-googlebot-via-ip-verified-conditional-logic.html\" target=\"_blank\" rel=\"noopener noreferrer\">Malware Intercepts Googlebot via IP-Verified Conditional Logic<\/a><\/li><li><a href=\"https:\/\/blog.sucuri.net\/2026\/01\/google-sees-spam-you-see-your-site-a-cloaked-seo-spam-attack.html\" target=\"_blank\" rel=\"noopener noreferrer\">Google Sees Spam, You See Your Site: A Cloaked SEO Spam Attack<\/a><\/li><li><a href=\"https:\/\/www.virustotal.com\/gui\/url\/5a006beedf563c6215a31746d011d13fd4f2561a1bf3b557484c4532b13e1ec6?nocache=1\" target=\"_blank\" rel=\"noopener noreferrer\">VirusTotal URL report (amp-samaresmanor.pages.dev)<\/a><\/li><li><a href=\"https:\/\/publicwww.com\/websites\/amp-samaresmanor.pages\/\" target=\"_blank\" rel=\"noopener noreferrer\">PublicWWW results for amp-samaresmanor.pages.dev<\/a><\/li><\/ul>\n            <\/div>","protected":false},"excerpt":{"rendered":"<p>En ny typ av SEO-cloaking dyker upp i WordPress d\u00e4r angriparen inte n\u00f6jer sig med att kolla User-Agent \u2013 de r\u00e4knar matematiskt p\u00e5 IP:n f\u00f6r att bara visa spam f\u00f6r Googles riktiga infrastruktur.<\/p>\n","protected":false},"author":60,"featured_media":90,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[9],"tags":[56,57,54,55,10],"class_list":["post-98","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-sakerhet","tag-cloaking","tag-googlebot","tag-malware","tag-seo","tag-wordpress"],"_links":{"self":[{"href":"https:\/\/helloblog.io\/sv\/wp-json\/wp\/v2\/posts\/98","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/helloblog.io\/sv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/helloblog.io\/sv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/helloblog.io\/sv\/wp-json\/wp\/v2\/users\/60"}],"replies":[{"embeddable":true,"href":"https:\/\/helloblog.io\/sv\/wp-json\/wp\/v2\/comments?post=98"}],"version-history":[{"count":1,"href":"https:\/\/helloblog.io\/sv\/wp-json\/wp\/v2\/posts\/98\/revisions"}],"predecessor-version":[{"id":144,"href":"https:\/\/helloblog.io\/sv\/wp-json\/wp\/v2\/posts\/98\/revisions\/144"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/helloblog.io\/sv\/wp-json\/wp\/v2\/media\/90"}],"wp:attachment":[{"href":"https:\/\/helloblog.io\/sv\/wp-json\/wp\/v2\/media?parent=98"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/helloblog.io\/sv\/wp-json\/wp\/v2\/categories?post=98"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/helloblog.io\/sv\/wp-json\/wp\/v2\/tags?post=98"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}