{"id":26947662,"url":"https://github.com/cyllective/comfiltrat0r","last_synced_at":"2026-04-28T17:33:29.463Z","repository":{"id":203484896,"uuid":"709698262","full_name":"cyllective/COMfiltrat0r","owner":"cyllective","description":"Data Exfiltration via WebSerial","archived":false,"fork":false,"pushed_at":"2023-10-25T08:13:39.000Z","size":185,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-06-02T08:17:16.538Z","etag":null,"topics":["data-exfiltration","data-loss-prevention","micropython","python","raspberry-pi-pico","serial","teensy","webserial"],"latest_commit_sha":null,"homepage":"https://cyllective.github.io/COMfiltrat0r/","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cyllective.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-10-25T08:09:54.000Z","updated_at":"2023-10-28T21:41:08.000Z","dependencies_parsed_at":null,"dependency_job_id":"6b4e3714-3d88-4c0d-8ba2-03e8459bec19","html_url":"https://github.com/cyllective/COMfiltrat0r","commit_stats":null,"previous_names":["cyllective/comfiltrat0r"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/cyllective/COMfiltrat0r","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cyllective%2FCOMfiltrat0r","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cyllective%2FCOMfiltrat0r/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cyllective%2FCOMfiltrat0r/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cyllective%2FCOMfiltrat0r/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cyllective","download_url":"https://codeload.github.com/cyllective/COMfiltrat0r/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cyllective%2FCOMfiltrat0r/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32392296,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-28T14:34:11.604Z","status":"ssl_error","status_checked_at":"2026-04-28T14:32:37.009Z","response_time":56,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["data-exfiltration","data-loss-prevention","micropython","python","raspberry-pi-pico","serial","teensy","webserial"],"created_at":"2025-04-02T20:20:06.389Z","updated_at":"2026-04-28T17:33:29.458Z","avatar_url":"https://github.com/cyllective.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# COMfiltrat0r\r\nCOMfiltrat0r is a tool/technique developed by [cyllective](https://cyllective.com?comf=1) to bypass USB mass storage policies. You can read the full story and technical details in our blog post over at [cyllective.com](https://cyllective.com/blog/post/comfiltrat0r).\r\n\r\n\u003cdiv align=\"center\"\u003e\r\n\t\u003cimg height=\"350px\" src=\"static/comfiltrat0r.gif\"\u003e\r\n\u003c/div\u003e\r\n\r\n## How does this work?\r\nIf policies still allow for serial devices, you can send data over serial (RS-232) to a microcontroller using a web browser that supports [WebSerial](https://developer.mozilla.org/en-US/docs/Web/API/Web_Serial_API).\r\n\r\n## Hardware Setup\r\nThose steps should also be possible on different [microcontrollers that support MicroPython](https://micropython.org/download/).\r\n\r\n### Teensy 4.1\r\n+ Flash [MicroPython](https://micropython.org/download/TEENSY41/) onto your Teensy via the [Teensy Loader](https://www.pjrc.com/teensy/loader.html)\r\n+ Copy `devices/teensy41/boot.py` and `devices/teensy/main.py` onto a microSD card (cheap knockoff cards can cause errors)\r\n+ Plug the microSD card into the Teensy\r\n\r\n### Pico\r\n+ Flash [MicroPython](https://micropython.org/download/rp2-pico/) onto your Pico\r\n\t+ Copy the `uf2` file onto the file storage after connecting the Pico while holding `BOOTSEL`\r\n+ Wire up an SPI to microSD card interface\r\n```bash\r\n# You can use any SPI pins. Those are just the ones from the example code\r\nCS   \u003c-\u003e Pin 17\r\nSCK  \u003c-\u003e Pin 19\r\nMOSI \u003c-\u003e Pin 20\r\nMISO \u003c-\u003e Pin 16\r\n```\r\n+ Plug in a microSD card (cheap knockoff cards can cause errors)\r\n+ Set up [Thonny](https://thonny.org/) for the Pico and MicroPython\r\n+ Copy `devices/pico/main.py` and `devices/pico/sdcard.py` to the Pico via Thonny's file browser\r\n\r\n## Software Setup\r\nYou have multiple options:\r\n- Visit [cyllective.github.io/COMfiltrat0r](https://cyllective.github.io/COMfiltrat0r) via a supported browser\r\n- Open `index_combined.html` in a supported browser\r\n\r\n## Known Problems\r\nDepending on the client's operating system where the microcontroller gets plugged in, you may encounter that the device cannot be opened. This is the result of another program or even your OS taking control of the serial port. \r\n\r\n## Kudos\r\n[p5.webserial.js](https://github.com/gohai/p5.webserial/blob/main/libraries/p5.webserial.js) from [gohai/p5.webserial](https://github.com/gohai/p5.webserial)\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcyllective%2Fcomfiltrat0r","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcyllective%2Fcomfiltrat0r","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcyllective%2Fcomfiltrat0r/lists"}