Martin's Blog

HackingTeam's RCS: Bringing a Commercial Spyware Platform Back to Life

In 2015, the breach of the Italian surveillance vendor HackingTeam exposed far more than a collection of implants and exploits. The archive contained the parts of a complete surveillance business: database services, evidence workers, collectors, delivery infrastructure, an analyst console, manuals, release machinery, and the records of a company trying to turn intrusion into a repeatable product.

This book reconstructs the operator side of that system. It follows the original Ruby and MongoDB backend from incompatible source snapshots to a working isolated lab, rebuilds the obsolete Adobe AIR console as a testable web application, and uses the running system to examine how evidence moved from an agent record into an analyst’s investigation. It then asks a question that the product’s own threat model did not always appear to prioritize: could the surveillance platform itself be compromised?

No implant or exploit code is built, run, repaired, or improved. The active work is confined to the backend lab and synthetic data. I audit implant capabilities statically by tracing registered modules to implementations and evidence sinks. Deployment and successful collection remain outside that evidence. Collector, injector, implant, and exploit behavior is otherwise discussed from source, package metadata, and the original manuals unless explicitly identified as a lab observation.

Evidence and provenance

The archive is not one coherent release. The examined rcs-db snapshot calls itself 9.2.3, while the checked-out common library and console identify themselves as 9.6.0; the exploit catalogue carries yet another release date. The book therefore distinguishes how each claim is known:

The labels are not decorations. They mark important limits. A console workflow verified through the web port is not automatically proof that the original AIR binary behaved identically. A collector branch found in source is not a packet capture. A modern vulnerability in a frozen dependency says nothing by itself about whether a historical deployment was vulnerable at the time.

Table of contents

#ChapterWhat it covers
1HackingTeam, RCS, and Its Human ConsequencesHackingTeam’s history; Da Vinci and Galileo; reported customers and deployments; the 2015 breach; export controls; affected people; and the ethics of researching leaked surveillance source.
2Anatomy of a Surveillance PlatformThe complete RCS system: investigations, operators, agents, collectors, anonymizers, workers, MongoDB, the console, trust boundaries, and end-to-end data flow.
3Archaeology of an Inconsistent LeakThe archive’s incompatible snapshots; 9.2.3/9.6.0 version seams; repository history; lab patches; generated state; and the fidelity boundary.
4Time-travelling the RuntimeReconstructing the Ruby 2.1.5 and Debian Jessie environment; era dependencies; EventMachine and OpenSSL; MongoDB 2.6 sharding; commissioning; and reliability tests.
5Licensing, Identity, and TrustLicence checks, hardware-token support, certificates, password handling, sessions, operator authorization, component credentials, and the gaps between those trust systems.
6Rebuilding the Operator ConsoleThe Adobe AIR-to-web reconstruction; MXML and service mappings; REST and WebSocket integration; mock/live tests; the manual audit; preserved quirks; and known differences.
7From Synchronization to Stored EvidenceFactory cloning, encrypted worker ingestion, evidence processing, alerts, target-scoped collections, GridFS, deletion and retention, and synthetic-data provenance.
8Inside an RCS InvestigationThe fictional Operation Nightjar from users and groups through configuration, evidence, requests, entities, dashboards, alerts, audit, and system administration.
9Collectors, Anonymizers, and Injection InfrastructureA static-source and manual examination of collectors, decoy responses, anonymizer chains, Network Injectors, connectors, edge trust, and defensive footprints.
10Could RCS Itself Be Compromised?A defensive assessment of the backend: 27 validated findings, four compromise paths, affected assets, deployment caveats, containment, and architectural hardening.
11The Exploit Business Behind RCSThe exploit catalogue as product history: packaging, categories, platform coverage, compatibility, maintenance, retirement, and lifecycle evidence—without building or executing it.
12Detecting RCSConfidence-scored network, certificate, host, service, filesystem, and MongoDB detection; investigative playbooks; experimental rules; validation; and false positives.
13Investigating a Suspected RCS DeploymentA preservation-first response workflow for backend, collector or infrastructure, and endpoint discoveries, including victim-data handling and attribution limits.
14Lessons for Modern Commercial SpywareSurveillance as enterprise engineering; operator experience; security debt; exploit productization; oversight; safe reconstruction; and questions for modern systems.
App. AComplete Exploit CatalogueThe complete static inventory of 38 metadata-bearing exploit identities, including platform, category, lifecycle, repository state, CVE mapping, and confidence.
App. BReproducing the Defensive Backend LabA safety-first guide to the isolated four-service Compose lab, first boot, health checks, validation gates, synthetic fixtures, reset semantics, and proof limits.
App. COriginal-to-Lab Patch InventoryA file-by-file accounting of original source, compatibility changes, omissions, new lab artifacts, generated state, line changes, and hashes.
App. D–ESource, Version, and Fidelity MapFrozen repository revisions, the component timeline, and the matrix separating executed, ported, synthetic, source-only, and unavailable behavior.
App. FIOC CatalogueConfidence-scored network, TLS, protocol, host, configuration, MongoDB, and behavioral indicators, with lab-only artifacts and false-positive limits separated.
App. GDetection-Rule ListingsThe complete Suricata, Sigma, and YARA rule listings with hashes, sensor requirements, expected coverage, false-positive guidance, and validation gaps.
App. HAPI and Storage MapREST and WebSocket surfaces, parameter formats, authorization layers, MongoDB namespaces, target-scoped storage, GridFS, queues, logs, and deletion paths.
App. ISource Commits, Manuals, and ReferencesThe consolidated provenance index for source revisions, manual files and hashes, internal research artifacts, and external historical and technical sources.
App. JGlossaryProduct, architecture, evidence, storage, provenance, security, and attribution terminology used throughout the book.

← All books