Onderzoekers van het cybersecuritybedrijf Sekoia hebben een nieuwe methode ontdekt waarbij de ChocoPoC malware wordt verspreid via trojanized proof-of-concept (PoC) exploits op GitHub. In plaats van de malware direct in exploitbestanden te verbergen, voegen aanvallers kwaadaardige Python-pakketten toe aan de afhankelijkheden van de PoC's. Deze pakketten worden gehost op de Python Package Index (PyPI) en worden automatisch geïnstalleerd wanneer een slachtoffer een besmette repository kloont.

Een voorbeeld van zo'n kwaadaardig pakket is 'frint', dat tijdens installatie een extra kwaadaardig pakket 'skytext' binnenhaalt. Dit pakket bevat een gecompileerde Python-extensie die bij uitvoering extra code ontsleutelt en een downloader activeert om de uiteindelijke payload, de ChocoPoC remote access trojan (RAT), binnen te halen vanuit een Mapbox dataset. De RAT kan onder meer willekeurige shell- en Python-commando's uitvoeren, bestanden uploaden, browsergegevens zoals wachtwoorden en cookies stelen, tekst- en databasebestanden doorzoeken, shellgeschiedenis verzamelen en netwerkconfiguraties en actieve processen inventariseren. Voor grotere data-exfiltratie wordt een aparte HTTP-server gebruikt.

Sekoia identificeerde minstens zeven PoC repositories op GitHub die exploits bevatten voor kwetsbaarheden in onder andere FortiWeb, React2Shell, MongoBleed, PAN-OS, Ivanti Sentry, Check Point VPN en Joomla SP Page Builder. Het kwaadaardige pakket skytext werd meer dan 2.400 keer gedownload, vooral op Linux-systemen, met een piek na de bekendmaking van een populaire kwetsbaarheid die als lokaas diende. Eerder gebruikte de campagne ook andere pakketten met vergelijkbare code, zoals 'slogsec' en 'logcrypt.cryptography', die dezelfde payload leverden.

De onderzoekers vermoeden dat aanvallers vooral gecompromitteerde accounts gebruiken om deze kwaadaardige PyPI-pakketten en PoC's te publiceren. Zo werden e-mailadressen van betrokken GitHub-committers gevonden in lekdatabases en is een login waarschijnlijk afkomstig van een infostealer. Deze nieuwe techniek maakt het mogelijk om de exploit zelf onaangetast te laten en de kwaadaardige functionaliteit te verbergen in ogenschijnlijk onschuldige pakketten. Omdat penetratietesters en kwetsbaarheidsonderzoekers vaak onbetrouwbare code uitvoeren, wordt geadviseerd om nooit blindelings GitHub repositories te vertrouwen en verdachte code alleen in geïsoleerde omgevingen te testen. Meer details over deze campagne zijn te vinden in het onderzoek van Sekoia.