<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>HackingTeam's RCS: Bringing a Commercial Spyware Platform Back to Life on Martin's Blog</title><link>https://mac.sploit.dk/books/hackingteam-rcs/</link><description>Recent content in HackingTeam's RCS: Bringing a Commercial Spyware Platform Back to Life on Martin's Blog</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Mon, 01 Jan 0001 00:00:00 +0000</lastBuildDate><atom:link href="https://mac.sploit.dk/books/hackingteam-rcs/index.xml" rel="self" type="application/rss+xml"/><item><title>HackingTeam, RCS, and Its Human Consequences</title><link>https://mac.sploit.dk/books/hackingteam-rcs/01-hackingteam-rcs-and-its-human-consequences/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://mac.sploit.dk/books/hackingteam-rcs/01-hackingteam-rcs-and-its-human-consequences/</guid><description>&lt;p&gt;Before this book brings an old surveillance application back to life, it needs&#10;to say what that application was for.&lt;/p&gt;&#10;&lt;p&gt;HackingTeam was founded in Milan in 2003 and sold intrusion and surveillance&#10;software to government and law-enforcement customers. Its flagship platform,&#10;the Remote Control System, appeared under the names &lt;em&gt;Da Vinci&lt;/em&gt; and later&#10;&lt;em&gt;Galileo&lt;/em&gt;. The product joined covert collection on computers and phones to the&#10;ordinary machinery of an enterprise investigation: user accounts, work groups,&#10;targets, evidence databases, dashboards, alerts, audit records, backups, and a&#10;desktop analyst console.&lt;/p&gt;</description></item><item><title>Anatomy of a Surveillance Platform</title><link>https://mac.sploit.dk/books/hackingteam-rcs/02-anatomy-of-a-surveillance-platform/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://mac.sploit.dk/books/hackingteam-rcs/02-anatomy-of-a-surveillance-platform/</guid><description>&lt;p&gt;RCS is easiest to misunderstand when reduced to “spyware.” The implant was one&#10;part of the product, but the product was an investigation system. It connected&#10;covert collection to users, permissions, target records, evidence processing,&#10;search, alerting, topology management, and backups. The leaked manuals describe&#10;both an all-in-one installation and a distributed deployment, and the source&#10;tree supplies the services behind those diagrams.&lt;/p&gt;&#10;&lt;p&gt;I use &lt;em&gt;platform&lt;/em&gt; deliberately. The implant collected. The surrounding system&#10;made that collection repeatable, searchable, shareable, and administratively&#10;ordinary.&lt;/p&gt;</description></item><item><title>Archaeology of an Inconsistent Leak</title><link>https://mac.sploit.dk/books/hackingteam-rcs/03-archaeology-of-an-inconsistent-leak/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://mac.sploit.dk/books/hackingteam-rcs/03-archaeology-of-an-inconsistent-leak/</guid><description>&lt;p&gt;There is no single version of RCS in the archive examined for this book. There&#10;are several repositories that happened to be present when the material was&#10;copied, and their branch tips do not describe one product release. Once I&#10;compared the embedded repository histories, the archive stopped looking like a&#10;release and started looking like a developer&amp;rsquo;s workspace. Treating the&#10;directory tree as a coherent source distribution would make the reconstruction&#10;look simpler than it was—and the resulting claims less reliable.&lt;/p&gt;</description></item><item><title>Time-travelling the Runtime</title><link>https://mac.sploit.dk/books/hackingteam-rcs/04-time-travelling-the-runtime/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://mac.sploit.dk/books/hackingteam-rcs/04-time-travelling-the-runtime/</guid><description>&lt;p&gt;Making old source code compile is not the same as reconstructing the system it&#10;belonged to. RCS depended on a particular Ruby generation, native extensions,&#10;old library behavior, a sharded MongoDB deployment, generated certificates,&#10;licence state, and interfaces shared across several repositories. Replacing&#10;each obsolete part with a current equivalent would have produced a different&#10;application—if it produced a working application at all.&lt;/p&gt;&#10;&lt;p&gt;I treated the job as conserving a machine, not porting a program. The lab&#10;recreates the narrow historical environment the backend expects, applies only&#10;the compatibility changes needed to bridge the surviving source snapshots,&#10;and puts modern isolation around the result. The application inside the&#10;container remains old. The safety boundary around it is new.&lt;/p&gt;</description></item><item><title>Licensing, Identity, and Trust</title><link>https://mac.sploit.dk/books/hackingteam-rcs/05-licensing-identity-and-trust/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://mac.sploit.dk/books/hackingteam-rcs/05-licensing-identity-and-trust/</guid><description>&lt;p&gt;When I traced RCS&amp;rsquo;s trust checks through the source, the broad label split into&#10;several narrower mechanisms. The system verified that a licence had the right&#10;shape and cryptographic checks. It could&#10;bind that licence to a hardware token. It generated a private certificate&#10;authority for encrypted service connections. It hashed operator passwords and&#10;issued session cookies. It also gave backend components a shared credential&#10;that admitted them as servers.&lt;/p&gt;</description></item><item><title>Rebuilding the Operator Console</title><link>https://mac.sploit.dk/books/hackingteam-rcs/06-rebuilding-the-operator-console/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://mac.sploit.dk/books/hackingteam-rcs/06-rebuilding-the-operator-console/</guid><description>&lt;p&gt;Once the backend ran, I could query it through REST and MongoDB. I still could&#10;not see RCS as an operator saw it. The product was designed around a large&#10;Adobe AIR application whose console decided which sections a user could see,&#10;loaded and patched shared collections, translated a nested operation graph&#10;into screens, rendered about twenty evidence types, built configuration&#10;graphs, and turned asynchronous backend pushes into visible state.&lt;/p&gt;</description></item><item><title>From Synchronization to Stored Evidence</title><link>https://mac.sploit.dk/books/hackingteam-rcs/07-from-synchronization-to-stored-evidence/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://mac.sploit.dk/books/hackingteam-rcs/07-from-synchronization-to-stored-evidence/</guid><description>&lt;p&gt;An RCS operator did not receive a folder of raw implant output. By the time a&#10;record appeared in the Evidence grid, several systems had already decided&#10;which agent it belonged to, decrypted and decoded it, extracted searchable&#10;terms, separated binary content, updated counters, evaluated alerts, and&#10;placed optional work into other queues.&lt;/p&gt;&#10;&lt;p&gt;That transformation is the center of the product. The implant might have&#10;collected a keystroke, photograph, file, location, or message, but the backend&#10;turned it into something an analyst could filter, tag, annotate, export,&#10;delete, and connect to an investigation. It also created a second problem:&#10;RCS had to preserve the confidentiality and integrity of an unusually&#10;sensitive database while letting many asynchronous components modify it.&lt;/p&gt;</description></item><item><title>Inside an RCS Investigation</title><link>https://mac.sploit.dk/books/hackingteam-rcs/08-inside-an-rcs-investigation/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://mac.sploit.dk/books/hackingteam-rcs/08-inside-an-rcs-investigation/</guid><description>&lt;p&gt;RCS makes the most sense when followed as a piece of work rather than a list of&#10;components. An administrator creates users and groups. An analyst opens an&#10;operation and its targets. A technician prepares a factory configuration. A&#10;synchronizing instance becomes an agent record. Evidence appears in typed&#10;views, acquires notes and relevance, feeds entities and dashboards, and can&#10;trigger personal alerts. Other sections expose the health and infrastructure&#10;that keep that workflow moving.&lt;/p&gt;</description></item><item><title>Collectors, Anonymizers, and Injection Infrastructure</title><link>https://mac.sploit.dk/books/hackingteam-rcs/09-collectors-anonymizers-and-injection-infrastructure/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://mac.sploit.dk/books/hackingteam-rcs/09-collectors-anonymizers-and-injection-infrastructure/</guid><description>&lt;p&gt;The backend reconstructed in the preceding chapters was only the protected&#10;half of RCS. A working surveillance service also needed an edge: machines that&#10;could receive traffic, conceal the database tier, move material between trust&#10;zones, and, in some deployments, interfere with a target&amp;rsquo;s web traffic. The&#10;product divided those jobs among collectors, anonymizers, a network&#10;controller, Network Injectors, and connectors.&lt;/p&gt;&#10;&lt;p&gt;I drew the execution boundary at that edge. The lab runs the database, worker,&#10;and defensive web console. It does &lt;strong&gt;not&lt;/strong&gt; run a&#10;collector, anonymizer, Network Injector, implant, or exploit, and it does not&#10;connect to any historical or current infrastructure. Synthetic collector,&#10;injector, and connector records make the System views inspectable; they do not&#10;show that the corresponding services operated. Unless a paragraph explicitly&#10;says otherwise, behavior in this chapter comes from static source or the RCS 9&#10;manuals, not packets observed in the lab.&lt;/p&gt;</description></item><item><title>Could RCS Itself Be Compromised?</title><link>https://mac.sploit.dk/books/hackingteam-rcs/10-could-rcs-itself-be-compromised/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://mac.sploit.dk/books/hackingteam-rcs/10-could-rcs-itself-be-compromised/</guid><description>&lt;p&gt;Yes.&lt;/p&gt;&#10;&lt;p&gt;In the examined RCS database source, a user with the least operator role can&#10;reach code execution in the backend process. Any authenticated operator can&#10;also grant themselves every application privilege. Beyond those direct&#10;compromise paths, inconsistent ownership checks expose evidence and agent&#10;controls across investigations, while shared component credentials and weak&#10;service-to-service trust turn one compromised component into a possible route&#10;through the rest of the platform.&lt;/p&gt;&#10;&lt;p&gt;That answer needs boundaries. It is a source-backed assessment of the frozen&#10;RCS database snapshot reconstructed for this book, not evidence that somebody&#10;exploited a historical customer. The review was intentionally defensive and&#10;static-first: no implant or exploit code was built or run, no weaponized&#10;payload was used, and no external RCS infrastructure was contacted. The&#10;current lab also suppresses several original deployment paths by keeping&#10;MongoDB and the worker internal and relying on an isolated host. The console&#10;and published backend ports are loopback-only, but still require host-level&#10;isolation. These controls reduce reachability; they do not repair the&#10;underlying code.&lt;/p&gt;</description></item><item><title>The Exploit Business Behind RCS</title><link>https://mac.sploit.dk/books/hackingteam-rcs/11-the-exploit-business-behind-rcs/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://mac.sploit.dk/books/hackingteam-rcs/11-the-exploit-business-behind-rcs/</guid><description>&lt;p&gt;The most revealing number in HackingTeam&amp;rsquo;s exploit repository is not a CVE.&#10;It is seven.&lt;/p&gt;&#10;&lt;p&gt;Only seven catalogue identities remained in the final source snapshot: four&#10;social-delivery packages and three entries labelled &lt;code&gt;zeroday&lt;/code&gt;. The Git history&#10;contains 38 identities with recoverable metadata, plus one early encrypted&#10;package whose manifest is no longer recoverable. Thirty-one metadata-bearing&#10;entries had therefore disappeared from the final operator catalogue. Some had&#10;stopped working. Some had been patched. Some were detected by antivirus&#10;products. Others vanished in broad cleanup commits whose own descriptions call&#10;them dangerous to use.&lt;/p&gt;</description></item><item><title>Detecting RCS</title><link>https://mac.sploit.dk/books/hackingteam-rcs/12-detecting-rcs/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://mac.sploit.dk/books/hackingteam-rcs/12-detecting-rcs/</guid><description>&lt;p&gt;The easiest way to write a bad RCS detection is to start with &lt;code&gt;Server: nginx&lt;/code&gt;.&#10;The examined backend places that value on every REST response, and its error&#10;pages imitate nginx. It is a real product behavior. It is also shared by an&#10;enormous population of ordinary web servers.&lt;/p&gt;&#10;&lt;p&gt;Ports 80 and 443, Ruby, MongoDB, a ten-year certificate, &lt;code&gt;ACME Corp&lt;/code&gt;, and a&#10;directory named &lt;code&gt;backup&lt;/code&gt; have the same problem. Each belongs in the&#10;investigation. None independently identifies HackingTeam.&lt;/p&gt;</description></item><item><title>Investigating a Suspected RCS Deployment</title><link>https://mac.sploit.dk/books/hackingteam-rcs/13-investigating-a-suspected-rcs-deployment/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://mac.sploit.dk/books/hackingteam-rcs/13-investigating-a-suspected-rcs-deployment/</guid><description>&lt;p&gt;The first impulse on finding an RCS login page is often to try the default&#10;administrator password. That is precisely the wrong first action.&lt;/p&gt;&#10;&lt;p&gt;Logging in is not passive. RCS creates and invalidates session state, writes&#10;audit records, updates recent activity, and may send a “used on another&#10;machine” logout push to an operator already connected as the same user. A&#10;browser session can reveal that investigators are present. Restoring a backup,&#10;opening a task workflow, deleting a suspicious record, or compacting MongoDB&#10;changes far more.&lt;/p&gt;</description></item><item><title>Lessons for Modern Commercial Spyware</title><link>https://mac.sploit.dk/books/hackingteam-rcs/14-lessons-for-modern-commercial-spyware/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://mac.sploit.dk/books/hackingteam-rcs/14-lessons-for-modern-commercial-spyware/</guid><description>&lt;p&gt;RCS looked most powerful when nothing exceptional was happening.&lt;/p&gt;&#10;&lt;p&gt;An administrator created accounts. A technician selected options in a form.&#10;An analyst opened an operation, filtered a table, added a note, pinned an item&#10;to a dashboard, and configured an alert. A worker transformed incoming bytes&#10;into records. A connector copied selected records elsewhere. Backup jobs,&#10;licence checks, status monitors, and audit views surrounded the process.&lt;/p&gt;&#10;&lt;p&gt;The extraordinary act—covertly compromising another person&amp;rsquo;s device—had been&#10;absorbed into ordinary enterprise software. That is the central lesson of this&#10;reconstruction. Commercial spyware scales not only through a vulnerability or&#10;an implant, but through everything that turns intrusion into routine work:&#10;packaging, permissions, queues, templates, evidence schemas, support,&#10;monitoring, export, and an interface that lets an operator move through it all&#10;without confronting the person on the other side.&lt;/p&gt;</description></item><item><title>Appendix A: Complete Exploit Catalogue</title><link>https://mac.sploit.dk/books/hackingteam-rcs/appendix-complete-exploit-catalogue/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://mac.sploit.dk/books/hackingteam-rcs/appendix-complete-exploit-catalogue/</guid><description>&lt;p&gt;This inventory is compiled statically from the &lt;code&gt;vector-exploit&lt;/code&gt; packages'&#10;&lt;code&gt;info.yaml&lt;/code&gt; metadata, the repository&amp;rsquo;s Git history, and its development tree.&#10;Nothing in the repository was built, run, repaired, or improved.&lt;/p&gt;&#10;&lt;p&gt;The packages use internal tracking numbers (&lt;code&gt;HT-YYYY-NNN&lt;/code&gt;). The loader accepts&#10;clear ZIP archives or archives encrypted with a source-embedded passphrase&#10;from the server&amp;rsquo;s &lt;code&gt;exploits/&lt;/code&gt; directory. The passphrase is not reproduced.&#10;When the catalogue is requested, the server&amp;rsquo;s exploit loader scans that&#10;directory and publishes each compatible package&amp;rsquo;s declared metadata to the&#10;console, using the categories &lt;code&gt;social&lt;/code&gt;, &lt;code&gt;zeroday&lt;/code&gt;, &lt;code&gt;private&lt;/code&gt;, and &lt;code&gt;public&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>Appendix B: Reproducing the Defensive Backend Lab</title><link>https://mac.sploit.dk/books/hackingteam-rcs/appendix-reproduction-guide/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://mac.sploit.dk/books/hackingteam-rcs/appendix-reproduction-guide/</guid><description>&lt;p&gt;This appendix reproduces the constrained research environment used for the&#10;book. It starts the original RCS database and worker code in containers,&#10;provides the MongoDB topology they expect, and serves the newly written web&#10;console on loopback. It does not reproduce an operational surveillance&#10;deployment.&lt;/p&gt;&#10;&lt;p&gt;The procedure never builds or runs an implant, exploit, collector, anonymizer,&#10;Network Injector, delivery package, or original AIR console. Those repositories&#10;remain static evidence. The web console renders historical build and installer&#10;controls but is designed and tested not to submit build tasks.&lt;/p&gt;</description></item><item><title>Appendix C: Original-to-Lab Patch Inventory</title><link>https://mac.sploit.dk/books/hackingteam-rcs/appendix-original-to-lab-patch-inventory/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://mac.sploit.dk/books/hackingteam-rcs/appendix-original-to-lab-patch-inventory/</guid><description>&lt;p&gt;This appendix accounts for the differences between the read-only leaked&#10;source and the copies used by the defensive lab. It exists to prevent a lab&#10;observation from being silently attributed to original HackingTeam code.&lt;/p&gt;&#10;&lt;p&gt;The comparison was refreshed after the reproduction guide. Excluding generated&#10;runtime directories and Git metadata, the copied backend contains &lt;strong&gt;five&#10;modified original files&lt;/strong&gt;, &lt;strong&gt;one lab-only source file&lt;/strong&gt;, and 601 intentionally&#10;omitted original files. The copied common library contains all 115 original&#10;files, of which &lt;strong&gt;five are modified&lt;/strong&gt;. In total, exactly &lt;strong&gt;ten carried source&#10;files differ&lt;/strong&gt; from their reference copies.&lt;/p&gt;</description></item><item><title>Appendices D–E: Source, Version, and Fidelity Map</title><link>https://mac.sploit.dk/books/hackingteam-rcs/appendix-source-version-and-fidelity-map/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://mac.sploit.dk/books/hackingteam-rcs/appendix-source-version-and-fidelity-map/</guid><description>&lt;p&gt;This appendix identifies the source snapshots and execution boundaries behind&#10;the book. It is a working research artifact and will grow as the claim ledger&#10;is reviewed.&lt;/p&gt;&#10;&lt;h2 id="source-snapshots"&gt;Source snapshots&lt;/h2&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Component&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Examined commit&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th style="text-align: right"&gt;Commit date&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Declared or inferred line&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;rcs-db&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;6cff59d28634d718cac9fdd17cb629fd59a3cf3f&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: right"&gt;2014-05-12&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;9.2.3; build &lt;code&gt;2014051201&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;rcs-common&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;38290d4eab2b2c295bea021429848a3666647827&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: right"&gt;2015-03-31&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;9.6.0&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;rcs-collector&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;42cf61af9ec3e7b886e87eac20e762c3ce51c78c&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: right"&gt;2015-03-31&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;9.6 branch tip&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;rcs-console&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;a90041fcd32bf1a82276ac20c2cd5ecb7d108db0&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: right"&gt;2015-03-31&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;sends RCS version 9.6.0&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;rcs-console-library&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;97531201600a8a223392e955a35b2b2605c1c1d4&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: right"&gt;2015-03-31&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;9.6 branch tip; REST/service layer&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;vector-exploit&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;2cf574d3bf2ea44f67433e32ccc9906ded6218e0&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: right"&gt;2014-12-12&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;catalogue build &lt;code&gt;2014093001&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;rcs-anonymizer&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;0c4189b1e5d7e23ad0bf85d0f184d9d8e46decbe&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: right"&gt;2015-04-03&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;supporting static tree; commit identifies 9.6.0&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;p&gt;The first six rows are the primary snapshots frozen before drafting; the&#10;anonymizer is the supporting static tree cited by Chapter 9. The Git commit&#10;date describes the examined repository tip. It is not a product release date&#10;and offers no evidence that the components were deployed together. The connector&#10;implementation cited in Chapters 9 and 10 resides inside the &lt;code&gt;rcs-db&lt;/code&gt; tree at&#10;&lt;code&gt;lib/rcs-connector/&lt;/code&gt; rather than in a separate repository.&lt;/p&gt;</description></item><item><title>Appendix F: IOC Catalogue</title><link>https://mac.sploit.dk/books/hackingteam-rcs/appendix-ioc-catalogue/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://mac.sploit.dk/books/hackingteam-rcs/appendix-ioc-catalogue/</guid><description>&lt;p&gt;This catalogue turns the reconstruction into defensive leads. It covers the&#10;RCS operator/backend platform and the deployment edge visible in the examined&#10;source. It is not a universal signature for HackingTeam products, and it does&#10;not claim to identify every implant, customer configuration, successor&#10;product, or later version.&lt;/p&gt;&#10;&lt;p&gt;An indicator&amp;rsquo;s value depends on where it is observed. A TLS issuer can be seen&#10;on a network sensor. A REST path normally requires TLS termination. A service&#10;name requires host telemetry or a forensic image. A MongoDB collection shape&#10;requires database access. The tables preserve that sensor position together&#10;with provenance and false-positive limits.&lt;/p&gt;</description></item><item><title>Appendix G: Detection-Rule Listings</title><link>https://mac.sploit.dk/books/hackingteam-rcs/appendix-detection-rule-listings/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://mac.sploit.dk/books/hackingteam-rcs/appendix-detection-rule-listings/</guid><description>&lt;p&gt;This appendix records the experimental detection rules developed from the&#10;backend and operator-side reconstruction. It is a publication snapshot, not a&#10;claim that the rules are production-ready and not a complete detector for&#10;HackingTeam products. The authoritative working files remain under&#10;&lt;code&gt;research/hackingteam-rcs/detections/&lt;/code&gt;; the copies below let a reader review&#10;the exact logic without having to infer it from prose in Chapter 12.&lt;/p&gt;&#10;&lt;p&gt;The rules cover the RCS database, service installation, collector-facing&#10;traffic, licence files, launchers, and certificate-generation source. They do&#10;not attempt to identify implants or exploit packages. No implant, exploit,&#10;collector, anonymizer, or injector was executed to create this rule set.&lt;/p&gt;</description></item><item><title>Appendix H: API and Storage Map</title><link>https://mac.sploit.dk/books/hackingteam-rcs/appendix-api-and-storage-map/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://mac.sploit.dk/books/hackingteam-rcs/appendix-api-and-storage-map/</guid><description>&lt;p&gt;This appendix maps the examined RCS database API to its MongoDB storage. It is&#10;designed for source review, defensive reconstruction, and incident response—not&#10;as an operator tutorial. Request bodies, credential values, implant&#10;configuration, build parameters, and exploit-delivery instructions are&#10;deliberately omitted. The map describes the frozen original &lt;code&gt;rcs-db&lt;/code&gt; source;&#10;lab-only proxying and safety controls are identified separately.&lt;/p&gt;&#10;&lt;p&gt;The central caution is that neither the URL structure nor the collection&#10;layout is an authorization boundary. The dispatcher authenticates a session,&#10;then individual controller actions apply symbolic privileges. Some actions&#10;also filter documents by denormalized user membership, while others do not.&#10;Chapter 10 assesses those inconsistencies. A responder should use this map to&#10;find evidence on an authorized forensic clone, not to infer that a reachable&#10;route is safe to call.&lt;/p&gt;</description></item><item><title>Appendix I: Source Commits, Manuals, and References</title><link>https://mac.sploit.dk/books/hackingteam-rcs/appendix-source-commits-and-references/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://mac.sploit.dk/books/hackingteam-rcs/appendix-source-commits-and-references/</guid><description>&lt;p&gt;This appendix is the book&amp;rsquo;s consolidated provenance index. It identifies the&#10;immutable source revisions, manual files, research artifacts, and external&#10;works used across the chapters. It does not replace the local citation beside&#10;a claim: a commit identifies a tree, while a file and line range identify the&#10;evidence inside it.&lt;/p&gt;&#10;&lt;p&gt;Paths beginning with &lt;code&gt;data/&lt;/code&gt; refer to read-only leak material in the defensive&#10;research workspace. Paths beginning with &lt;code&gt;docker-lab/&lt;/code&gt; refer to the isolated&#10;reconstruction or its documentation. Paths under &lt;code&gt;research/hackingteam-rcs/&lt;/code&gt;&#10;are book research artifacts. No repository or manual hash establishes that&#10;the material was deployed by a particular customer.&lt;/p&gt;</description></item><item><title>Appendix J: Glossary</title><link>https://mac.sploit.dk/books/hackingteam-rcs/appendix-glossary/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://mac.sploit.dk/books/hackingteam-rcs/appendix-glossary/</guid><description>&lt;p&gt;This glossary defines terms as they are used in this book. Some are&#10;HackingTeam product terms, some come from the underlying technologies, and&#10;some are research distinctions introduced to prevent the evidence from saying&#10;more than it can support.&lt;/p&gt;&#10;&lt;p&gt;The product uses &lt;strong&gt;target&lt;/strong&gt; as a database-object name. When discussing people,&#10;the book prefers “person targeted,” “affected person,” “victim,” or the more&#10;precise description supported by the evidence. A record labelled evidence by&#10;RCS is called &lt;strong&gt;RCS evidence&lt;/strong&gt; or an &lt;strong&gt;evidence record&lt;/strong&gt;; the label does not&#10;make its contents independently authentic.&lt;/p&gt;</description></item></channel></rss>