CRX Collection Workflow: A Practical Guide



2024 was quite the year for me. I left a company where I had been in my dream role, moved across the country (again) for a new position, and even got engaged. It has been nearly a year since I last wrote anything on my blog, so I figured there was no better time than this chilly Saturday afternoon to share something I have been working on over the past few days.

I was honestly struggling to choose a topic, especially after so many exciting projects in the last year. In the spirit of keeping my posts short and digestible, I decided to focus on a workflow I created (and had help with!) for threat-hunting malicious extensions, along with some of the challenges I have faced.

Hunting for a CRX Resource

In late December, security teams around the globe scrambled when security vendor Cyberhaven discovered one of its extensions had been compromised, primarily targeting Facebook ad accounts. As of this writing, 36 malicious extensions have been identified on extensiontotal.com.

As an intelligence analyst, I’m always seeking more data. My first question when researching this was, “How can I collect more malicious extensions?” You’d think there would be a central list or a website with an API offering this information, but you'd also be mostly mistaken. 

There are sites like CRXcavator, that have been down for a while, displaying a message that reads, “We apologize for the extended outage of CRXcavator. We are working on getting it restored,” and I’ve encountered login errors multiple times. CRXaminer can help determine whether an extension is malicious, and ExtensionTotal also has some of these same capabilities, but none gave a clear option to pull down their known malicious extensions. 


Outside of the security vendors, I also checked open-source projects which I only mostly found GitHub repositories that hadn’t been updated in years. One seemed as if the creator was manually adding new CRX extensions whenever an article was published, which is useful for gathering IOCs but isn’t robust enough for a larger, more automated process.


CRX Collection Workflow 

Inspired by the GitHub repo I found, I decided to replicate their approach but automate it as much as possible. To do this, I created a custom AI feed in Feedly that tracks anything related to malicious extensions or tagged with Browser Extensions; T1176. This feed captures extension-related posts from the internet and sends them to my IOC news feed. As new blogs and research are found, I then use Feedly’s AI engine to automatically pull out the CRX IOCs.


Next, I turned to my favorite resource, VirusTotal (VT). I knew CRX files could be found there, but I wasn't sure if the entire CRX file was being uploaded. That includes the manifest.json, any JavaScript, and related network telemetry, such as domains the extension calls. It turns out everything is included, which opens the door for deeper analysis.

Using a query like entity:file filename:*.crx fs:14d+ and p:1+ - which searches for CRX files first uploaded to VT in the past fourteen days and flagged as malicious by at least one vendor, helps identify potentially malicious files. 

The next challenge was determining how to vet these files before sharing them internally. For that, I used CRXaminer (please release an API) and enriched this information with additional artifacts, including the manifest.json, any JavaScript it calls, and known malicious domains from VirusTotal. 

This process turned up 14 newly discovered malicious extensions.

If you've ever worked with me, I've probably brought up JA3 or JA4 once or twice. While analyzing samples many of the CRX file types and related malicious JS will have a JA3 hash you can use to pivot off. Running this alone will often result in high volumes of FPs, but if you tweak these queries you can use it as a pivot point to identify additional CRX samples. 


Now that I have multiple multiple queries, with decently high fidelity, and will be creating more as additional files are analyzed, such as with JA3s. This entire process can be automated with the VT API, using these queries, to pull identified CRX files on a regular cadence, their manifest.json, any JavaScript, and relevant behavioral patterns. 


Expanding the workflow

At this point, I started chatting with a teammate about some of the challenges I was facing:

    1) Fully automating the vetting process (using a tool like CRXaminer would streamline this even more)

    2) Figuring out how to monitor newly registered extensions

Thanks to my teammate’s expertise, by the end of the day they had a program that identifies CRX extensions and assigns risk based on their contents. Within two working days, we were close to having a fully automated workflow to collect and vet CRX extensions. I may come back and add more details surrounding this another time. 

The final step, like any collection workflow, is to distribute the IOCs for retroactive searching, detection, and response. Not only does this help us stay updated on newly identified CRX files, but it also lets us block malicious CRX files before they are downloaded or installed. All thanks to the intel we have collected, vetted, and operationalized. 

Final Thoughts

Workflows like these, are becoming an important part of my role as an intel analyst and threat hunter. As my career has progressed, I have started to redefine what it means to stay current with the threat landscape. Lately, that means adapting methods from one area to another and drawing parallels across seemingly unrelated topics.

Thanks for reading and as always Happy Hunting! 


Identified Malicious Extensions

blojlgglhfcmpigjbkllcgjmhincdjhb
bojaonpikbbgeijomodbogeiebkckkoi
eppiocemhmnlbhjplcgkofciiegomcon
acmfnomgphggonodopogfbmkneepfgnh
aojcgkfcpipialpajbphlnfjelpcpfic
dljdacfojgikogldjffnkdcielnklkce
gcpaokdjnddgeodalchpomeomglomoan
hodiladlefdpcbemnbbcpclbmknkiaem
lgjdgmdbfhobkdbcjnpnlmhnplnidkkp
mmacphhaiefdkchcpamplnpgbolonlde
nodcmkfbncnhlbbohoalamehlohaidjo
pfaahjapdldabbobilkilmppakcdjagh
lpbkofhnclhhlaibcklkgaonbbmhjeco
lccpadlcbfphjdlckfnlahjhikmgglak

Resources

https://crxcavator.io/
https://crxaminer.tech/
https://robwu.nl/crxviewer/
https://www.extensiontotal.com/cyberhaven-incident-live
https://www.cyberhaven.com/engineering-blog/cyberhavens-preliminary-analysis-of-the-recent-malicious-chrome-extension









Comments

Popular posts from this blog

Certifried Red Team Operator

VirusTotal Enterprise - Starting Workflow

Tracking Malicious Files with Favicons