Hackers Deploy Malicious npm Packages to Steal SSH Key


Two malicious npm packages were discovered on the npm open source package manager, which leverages GitHub to store stolen Base64-encrypted SSH keys obtained from developer systems that installed the malicious npm packages.

In recent weeks, two suspicious npm packages, namely warbeast2000 and kodiak2k, were discovered in multiple versions. As of writing, both the packages were removed from npm in January.

ReversingLabs stated that between 2020 and the end of 2023, the overall number of malicious packages discovered on open-source package managers increased by 1,300%.

A rising part of this trend is the hosting of malicious command and control infrastructure on the GitHub version control platform.

Document

Free Trial

Open Suspicious Files & Links in the ANY RUN Sandbox Safely; Try All Features for Free. Understand malware behavior, collect IOCs, and easily map malicious actions to TTPs — all in our interactive sandbox.

Malicious Packages Target Developer SSH keys

The warbeast2000 package, according to researchers, was made up of only a few components and was not particularly complex. Warbeast2000’s corresponding npm page was simple and did not openly imitate any other package.

“There were eight versions (1.0.0 – 1.0.8), with new elements being added to the package with each new version. The package author was in the process of building out the malware and adding layers of deception. Fortunately, the package was detected and removed from npm before that could happen”, ReversingLabs Shared with Cyber Security News.

After the victim’s machine was installed with the final version of the package, a postinstall script would be activated, retrieving and running a JavaScript file.

The malicious script, in its second stage, read the private SSH key that was kept in the id_rsa file, which was found in the /.ssh directory.

The Base64-encoded key was then uploaded to a GitHub repository under the attacker’s control. The package did not exhibit any other actions other than obtaining and copying the id_rsa SSH key.

Malicious second stage from warbeast2000 private SSH key

Once the package is installed, kodiak2k executes a postinstall script. That script launches another JavaScript file that it has downloaded. Except for the first few, kodiak2k had over 30 versions, all of which were harmful, in contrast to warbeast2000.

Similar to warbeast2000, that script searches for a key called meow while reading everything in the /.ssh directory.

It’s unclear if meow was just a placeholder name for the package throughout development or if the developer had a specific key in mind.

“When and if the meow file was located, the key contained in it would be encoded in Base64 and uploaded to a GitHub repository, as with the warbeast2000 package”, researchers said.

It was discovered that later iterations of kodiak2k ran a script in a GitHub repository that had been archived and contained the Empire post-exploitation framework. The script can dump credentials from process memory by launching the Mimikatz hacking tool.

In September 2023, Sonatype researchers tracked the npm registry campaign, extracting Kubernetes configurations and SSH keys via npm packages. Their automated system found about 14 malicious packages.

Hence, developers and development organizations should evaluate the security of software or libraries discovered on package managers such as npm or PyPI before incorporating them to make sure they are safe to use.



Source link