Skip to content

That AI Extension Helping You Write Emails? It’s Reading The...#2191

Open
carlospolop wants to merge 1 commit intomasterfrom
update_That_AI_Extension_Helping_You_Write_Emails__It_s_R_20260501_025022
Open

That AI Extension Helping You Write Emails? It’s Reading The...#2191
carlospolop wants to merge 1 commit intomasterfrom
update_That_AI_Extension_Helping_You_Write_Emails__It_s_R_20260501_025022

Conversation

@carlospolop
Copy link
Copy Markdown
Collaborator

🤖 Automated Content Update

This PR was automatically generated by the HackTricks News Bot based on a technical blog post.

📝 Source Information

  • Blog URL: https://unit42.paloaltonetworks.com/high-risk-gen-ai-browser-extensions/
  • Blog Title: That AI Extension Helping You Write Emails? It’s Reading Them First
  • Suggested Section: Pentesting Web -> Browser Extension Pentesting Methodology (add a section on malicious extension tradecraft: AitB/DOM scraping, chrome.debugger/CDP abuse, WebSocket C2 via service workers, chrome.proxy PAC hijack, chrome.storage.sync persistence/ID restoration, chrome_settings_overrides search hijack)

🎯 Content Summary

Title / context
Unit 42 analyzed 18 Chrome extensions marketed as “GenAI productivity tools” that instead implement malware behaviors (RAT, adversary-in-the-browser/DOM theft, infostealing, search hijacking, traffic manipulation/spyware). Unit 42 reported them to Google; Google either removed them or warned owners. The post is threat research (no CVE) focused on how browser-extension privileges enable low-friction interception/exfiltration inside the browse...

🔧 Technical Details

  1. Browser-extension WebSocket RAT pattern: A malicious extension can maintain a persistent WebSocket C2 channel (auto-reconnect, persistence across browser restarts via extension service workers). A user-facing UI action (e.g., a popup “Connect” button) can be used to initiate the C2 session, after which the extension accepts remote commands without dropping files or injecting into processes.

    2) In-browser code execution via remote JS + new Function(): If an extension accepts code over C2 and evaluates it with new Function(), then runs it in the active tab, the attacker gains browser-context “RCE” in the victim’s authenticated sessions (email/banking/SaaS). This enables data theft and action impersonation directly within the victim’s session context.

    3) Debugger-assisted HTTPS response access: With the debugger permission, an extension can attach to the Chrome Debugger Protocol and observe data at the browser boundary,...

🤖 Agent Actions

I’m mapping the repo first and then reading the existing browser-extension pages to avoid duplicating material or placing this in the wrong section.
I found an existing browser-extension-pentesting-methodology page, so I’m reading that plus adjacent client-side/web pages to see what’s already covered and where the gap actually is.
The target page already exists and is indexed in src/SUMMARY.md, so I’m now checking whether the specific tradecraft from the Unit 42 post is actually missing rather than just phrased differently.
The gap is real: the current page explains extension architecture and auditing primitives, but it does not document the operator tradecraft from this post such as chrome.debugger/CDP abuse, PAC-based proxy hijack, chrome_settings_overrides search hijack, or cross-storage ID restoration. I’m adding a focused section to the existing methodology page rather than creating a new file.
The first patch missed the exact anchor in the existing file. I’m re-reading the insertion area and applying the section in the right place without touching unrelated content.
I’ve added the new material to the existing methodology page. Now I’m checking the rendered markdown structure and the diff to make sure the section is concise, non-duplicative, and the references stay at the end of the file.
Updated src/pentesting-web/browser-extension-pentesting-methodology/README.md instead of creating a new page.

I added a new ## Malicious Extension Tradecraft section covering the missing techniques from the Unit 42 post that were not already documented there: WebSocket C2 via background/service workers, remote JS execution with new Function() + chrome.scripting.executeScript, page-context hooking of fetch / XMLHttpRequest, DOM scraping / AitB, chrome.debugger / CDP abuse to access decrypted response bodies, PAC-based proxy hijack with chrome.proxy, cross-storage persistence and ID restoration with chrome.storage.sync + chrome.cookies.onChanged, chrome_settings_overrides search hijacking, and install-time forced navigation via chrome.runtime.onInstalled.

I also updated the file’s ## References section with the Unit 42 article and relevant Chrome docs. git diff --check is clean.


This PR was automatically created by the HackTricks Feed Bot. Please review the changes carefully before merging.

@carlospolop
Copy link
Copy Markdown
Collaborator Author

🔗 Additional Context

Original Blog Post: https://unit42.paloaltonetworks.com/high-risk-gen-ai-browser-extensions/

Content Categories: Based on the analysis, this content was categorized under "Pentesting Web -> Browser Extension Pentesting Methodology (add a section on malicious extension tradecraft: AitB/DOM scraping, chrome.debugger/CDP abuse, WebSocket C2 via service workers, chrome.proxy PAC hijack, chrome.storage.sync persistence/ID restoration, chrome_settings_overrides search hijack)".

Repository Maintenance:

  • MD Files Formatting: 972 files processed

Review Notes:

  • This content was automatically processed and may require human review for accuracy
  • Check that the placement within the repository structure is appropriate
  • Verify that all technical details are correct and up-to-date
  • All .md files have been checked for proper formatting (headers, includes, etc.)

Bot Version: HackTricks News Bot v1.0

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant