Gardeners know that worms are good. Cybersecurity professionals know that worms are bad. Very bad. In fact, worms are literally the most devasting force for evil known to the computing world. The MyDoom worm holds the dubious position of most costly computer malware ever – responsible for some $52 billion in damage. In second place… Sobig, another worm.
It turns out, however, that there are exceptions to every rule. Some biological worms are actually not welcome in most gardens. And some cyber worms, it seems, can use their powers for good …
Meet Hopper, The Good Worm
Detection tools are not good at catching non-exploit-based propagation, which is what worms do best. Most cybersecurity solutions are less resilient to worm attack methods like token impersonation and others that take advantage of deficient internal configurations – PAM, segmentation, insecure credential storage, and more.
So, what better way to beat a stealthy worm than with … another stealthy worm?
And thus was born Hopper! Hopper is a real worm, with command and control, built-in privilege escalation, and many more of wormkind’s most devious capabilities. But contrary to most worms, Hopper was built to do good. Instead of causing harm, Hopper tells its White Hat operators where and how it succeeded in infiltrating a network. It reports how far it got in, what it found along the way, and how to improve defenses.
Up Close and Personal with Hopper
The development team at Cymulate based Hopper on a common malware stager – a small executable that serves as an initial payload, with its primary objective being to prepare a larger payload. Our stager also serves as a PE packer, a program that loads and executes programs indirectly, usually from a package.
Hopper’s stager was written in such a way that the initial payload doesn’t have to be changed if we make an update to Hopper. This means that excluding hashes on every update turned into history, and Hopper users only need to exclude the stager’s hash once. Writing the stager in this way also opened up the path for executing other tools that Hopper needs.
To maximize Hopper’s flexibility, our team added different initial execution methods, additional communication methods, various ways to fetch the first stage payload, different injection methods, and more. And, to create a very stealthy worm, we need to allow for maximum customization of stealthy features, so we made configurations almost entirely operator-controlled:
- Initial payload configuration – fully configurable execution methods including executables, libraries, python scripts, shellcodes, PowerShell scripts, and more
- First stage payload configuration – customizable package fetching methods and package injection methods (for example, reflective injection)
- Second stage beacon configuration – tailored communication channels, keep alive timing and timeout, and jitter
- API – over the air addition of new capabilities to allow easier future expansion of capabilities, including communication methods, spread methods, and exploits