A Multi-Method Approach to Identifying Rogue Cobalt Strike Servers
Recorded Future assessed changes to Cobalt Strike servers in the wild in the aftermath of the public identification of several Cobalt Strike server detection methods. In our analysis, we conducted an evaluation of different methodologies and did a combined analysis based on them to determine if users changed their configurations to avoid detection. Sources include the Recorded Future® Platform, BinaryEdge, Censys, Rapid7 Lab’s OpenData, Shodan, GreyNoise, ReversingLabs, VirusTotal, Farsight DNS, and other open sources. This report will be of greatest interest to organizations seeking to improve the speed of their response times, as well as analysts who deal with Cobalt Strike incidents on a regular basis.
Executive Summary
Cobalt Strike est une plateforme d'exploitation conçue pour les professionnels de la sécurité afin de simuler des attaques ciblées et les actions post-exploitation menées par des adversaires avancés. Cet outil, développé et concédé sous licence par Strategic Cyber LLC, une société basée à Washington, D.C., fait l'objet d'une surveillance par la société afin de détecter toute utilisation illicite et est soumis à des contrôles à l'exportation. Malgré cela, le framework Cobalt Strike est devenu une option populaire parmi les différents logiciels de ce type, qui comprennent d'autres suites payantes telles que Metasploit Pro, Core Impact et d'autres. Bien qu'il ne soit pas le seul parmi les plateformes de ce type à être utilisé par des utilisateurs non autorisés et des acteurs malveillants, Cobalt Strike a été utilisé par divers groupes de menaces, notamment APT32, qui a utilisé cet outil pour l'exploitation initiale, et le groupe Cobalt, qui tire son nom de la plateforme et qui s'est fortement appuyé sur ce cadre.
Considering the significant use of the Cobalt Strike platform by security testers — and, more importantly, malicious attackers — the necessity of recognizing Cobalt Strike server connections to corporate network assets is evident.
Despite the detection methodology being public, Recorded Future has observed that Cobalt Strike servers have been left largely unpatched, allowing fingerprinting and subsequent detection. This methodology, coupled with other detections, allowed Recorded Future to sample Cobalt Strike servers found in the wild, and compare fingerprinting methods to help defenders best track and monitor this framework. The tracking of Cobalt Strike servers can aid blue teams in detecting red team activity and containing activity from adversaries who have not modified their Cobalt Strike Team Server.
Key Judgments
- Cobalt Strike servers remain fairly exposed and relatively easy to detect, despite patching to make specific fingerprinting methods more difficult. Many Cobalt Strike servers operating before the patch was released have not updated their systems, while newer deployments have used the upgraded software.
- Recently deployed Cobalt Strike servers are more likely to deploy an updated Cobalt Strike version (beyond 3.12) while continuing to use the default TLS certificate, which remains a reliable detection mechanism.
- Recorded Future’s sampling of current Cobalt Strike servers, contrasted with historic threat activity, found that criminal and state-aligned actors alike have used default, unpatched Cobalt Strike configurations, perhaps in an effort to blend in with other Cobalt Strike servers, or possibly simply because the default settings work well without alteration and the operator does not feel the need to alter anything.
- The detection of Cobalt Strike servers can aid defenders in creating alerts in their enterprise networks, providing a proactive measure to get ahead of their red team, criminal operations, or state-sponsored adversaries.
Background
A primary issue for incident response and security operations analysts today is determining which security events or alerts are a priority to review. Fortunately, applying accurate threat intelligence to a SIEM workflow, such as Splunk, can be valuable for identifying credible threats, and can even reveal crucial additional context to enable security teams to take more proactive measures. For example, an alert comes across your SIEM — it’s an IP address, 89.105.198[.]28, that has been contacted by one of your endpoints. Now what?
Recorded Future browser extension.
Lorsque vous ouvrez l'extension de navigateur Recorded Future sur la page des alertes Splunk, l'adresse IP 89.105.198[.]28 se hisse en tête avec un score de risque de 93 (ce résultat a été obtenu le 6 mai 2019 et le score de risque diminuera le 17 mai 2019 si aucune autre activité malveillante n'est observée). Cette enquête révèle que l'adresse IP avait déjà été signalée par Sophos dans le cadre de la campagne de ransomware MegaCortex, utilisant un shell inversé Cobalt Strike.
Cobalt Strike est une plateforme de simulation d'attaques développée pour les testeurs d'intrusion par Raphael Mudge, fondateur de Strategic Cyber LLC. Conçu pour être interopérable avec d'autres plateformes telles que Metasploit, NMAP et Powershell Empire, il peut être exécuté à l'aide d'Armitage, une interface utilisateur graphique (GUI) développée par Mudge, initialement pour Metasploit. Armitage et Cobalt Strike sont conçus autour d'un serveur d'équipe qui permet le partage d'informations et la possibilité de diriger et d'exécuter des actions bien coordonnées.
Reconnu pour ses fonctionnalités avancées, Cobalt Strike a été adopté par de nombreux professionnels de la sécurité et est également utilisé de manière illicite par des entités criminelles et des États-nations. Comme l'a déclaré MITRE, « les capacités interactives post-exploitation de Cobalt Strike couvrent l'ensemble des tactiques d'&t CK des groupes ATT, toutes exécutées au sein d'un système unique et intégré ». Ce cadre a été un élément central du paysage des menaces au cours des trois dernières années, fréquemment utilisé par des groupes criminels, des acteurs soutenus par des États et, bien sûr, des équipes de tests d'intrusion.
Cobalt Strike is professionally maintained and available under license currently for a $3,500 USD fee with annual renewals. In addition to export controls set by the United States, Strategic Cyber LLC attempts to strictly control its licensing and use to legitimate security professionals and keep the software out of the hands of malicious actors, making it difficult for both criminals and entities outside the United States to acquire it.
Strategic Cyber LLC regularly updates and patches licensed versions of the software. Recent changes to Cobalt Strike’s server configurations attempt to help the framework evade detection. Pirated versions of the software, however, will not receive official updates and patches.
Bien que les licences logicielles aient été strictement contrôlées, il existe des cas confirmés de versions piratées de Cobalt Strike en circulation, souvent des versions d'essai piratées, et divers acteurs du milieu criminel ont été observés tentant de les acquérir ou de les échanger. Les versions piratées peuvent toutefois comporter des « fonctionnalités » supplémentaires, telles que des portes dérobées, ou présenter certaines lacunes. Le 5 avril 2019, un membre du forum Raid Forums a publié un lien vers une copie piratée de Cobalt Strike 3.13 (la dernière version), mais d'autres membres ont signalé que certaines fonctionnalités manquaient et que des parties du logiciel qui auraient dû être supprimées, telles que EICAR, étaient toujours présentes. Les versions authentiques de Cobalt Strike ont donc une grande valeur. Par exemple, l'année dernière, un membre du forum Maza a proposé 25 000 dollars américains à un acheteur situé aux États-Unis pour obtenir une copie sous licence de Cobalt Strike et la transférer illégalement à ce membre du forum.
Revenons à notre enquête sur 89.105.198[.]28. Cette adresse IP a été utilisée comme serveur de commande et de contrôle pour un shell inversé Cobalt Strike sur un contrôleur de domaine victime lors d'un incident MegaCortex. Le ransomware a ensuite été distribué dans l'environnement via PSExec. La campagne de ransomware MegaCortex était active au moment de cette analyse. Une analyse plus approfondie de l'adresse IP révèle qu'elle utilise le certificat de sécurité par défaut du serveur Cobalt Strike pour crypter le trafic.
Cette affaire concernant le numéro 89.105.198[.]28 a incité Recorded Future à enquêter sur cette activité spécifique de Cobalt Strike. Cela a encouragé la poursuite des recherches à grande échelle sur Cobalt Strike, à la suite des découvertes de la société de sécurité Fox-IT concernant l'espace anormal inclus dans les réponses HTTP de Cobalt Strike et d'autres détections publiques, notamment l'utilisation courante du certificat SSL/TLS standard, préconfiguré et auto-signé sur les serveurs Cobalt Strike. Les serveurs qui déploient ce certificat peuvent être détectés via Shodan ou Censys grâce au hachage SHA256 ou au numéro de série du certificat.
Default Cobalt Strike SSL/TLS certificate.
Public Methodologies for Identifying Cobalt Strike Team Servers
Le 19 février 2019, Strategic Cyber LLC (le producteur de Cobalt Strike) a publié les résultats d'une« étude sur la population du serveur Cobalt Strike Team ». Cette étude a été menée en partie afin de déterminer le statut de licence du logiciel Cobalt Strike découvert, ainsi que d'identifier et d'analyser toute modification importante apportée aux versions du logiciel actuellement utilisées.
This study identified multiple methods that could be used to identify Cobalt Strike servers in the wild:
- Cobalt Strike servers are shipped with a default security certificate which can be used to fingerprint them unless the administrator changes it.
- SHA256: 87f2085c32b6a2cc709b365f55873e207a9caa10bffecf2fd16d3cf9d94d390c
- Serial Number: 146473198
- When enabled, the Cobalt Strike DNS server responds to any DNS request received with a bogon (fake) IP: 0.0.0.0 (this is not unique to Cobalt Strike servers).
- The default controller port for Cobalt Strike Team Server is 50050/TCP, a port unlikely to be found open on other servers.
- The “404 Not Found” HTTP response for Cobalt Strike is unique to NanoHTTPD web servers and can be detected.
Taken as a whole, the surest method in the list above is fingerprinting Cobalt Strike servers using the default security certificate. The remaining detection methods are less certain and all will be of higher confidence when corroborated with other methodologies. For example, any server using port 50050 that also provides an HTTP response unique to NanoHTTPD web servers is more likely a Cobalt Strike server than one found to only exhibit an HTTP response signature.
NanoHTTPD is an open source web server framework. NanoHTTPD servers and Cobalt Strike servers running version 3.12 and earlier could be identified via a null space in the HTTP response where “HTTP/1.1” is followed by a blank space (0x20) not found in other web server responses. Any HTTP response from a pre-3.13 Cobalt Strike server will contain this null space, and a scanner that can retrieve HTTP server responses may be used to search for them. A simple manual method of identifying the aforementioned null space may be done with a packet capture of a browser HTTP connection to a Cobalt Strike server, in which the extra space can be easily seen.
As Cobalt Strike instances running cracked versions are not updated or patched, this method provides the added potential of discovering Cobalt Strike servers operated by criminals.
Le blog de Strategic Cyber LLC ne mentionne pas spécifiquement une autre méthode permettant d'identifier les serveurs Cobalt Strike. Le 2 janvier 2019, la version 3.13 de Cobalt Strike a été publiée. Les notes de mise à jour de Cobalt Strike indiquent que l'une des modifications apportées par rapport aux versions précédentes concerne la suppression d'un « espace superflu dans les réponses HTTP ». Un octet nul supplémentaire dans la réponse HTTP des serveurs NanoHTTPD (un serveur Web open source basé sur Java) a affecté le serveur Cobalt Strike Team, lancé pour la première fois en 2012 et basé sur NanoHTTPD.
Les recherches sur les serveurs Cobalt Strike publiées par la société de sécurité Fox-IT le 26 février 2019 ont non seulement fourni des détails sur la manière d'identifier les serveurs antérieurs à la version 3.13 (qui répondent avec un espace nul supplémentaire dans la réponse HTTP), mais également une liste de plus de sept mille adresses IP hébergeant des serveurs Cobalt Strike observés entre 2015 et 2019 à l'aide de cette méthode de détection issue des données publiques de Rapid7.
Packet capture showing extra null space in the HTTP header from a Cobalt Strike server.
De même, le 27 février 2019, l'équipe de recherche en sécurité chinoise Knownsec a publié un blog détaillant son utilisation de l'anomalie de réponse NanoHTTPD 404 Not Found signalée par Strategic Cyber LLC, ainsi que de l'anomalie null space, pour identifier les serveurs Cobalt Strike. Ils ont trouvé moins de serveurs dans les données de leur plateforme de recherche ZoomEye associée, mais en ont tout de même recensé plus de trois mille. Knownsec a indiqué que le code open source NanoHPPTD sur lequel repose Cobalt Strike réagit précisément de la manière suivante :
HTTP/1.1 404 Non trouvé
Type de contenu : texte/plain
Date : Jour, JJ Mmm AAAA HH:MM:SS GMT
Longueur du contenu : 0
Knownsec based their detection logic on this finding. However, Knownsec also subsequently observed that the order within the HTTP response may in fact differ, after finding “content-type” presented after “date” in the response from some Cobalt Strike systems.
Une méthode fiable pour détecter les serveurs Cobalt est disponible pour les personnes ayant accès à des données détaillées sur le trafic réseau. Le projet open source JA3, développé par trois chercheurs de Salesforce, permet de détecter le trafic HTTPS suspect en identifiant la négociation TLS entre les serveurs et les clients. La version TLS/SSL, les suites de chiffrement acceptées et les détails relatifs aux courbes elliptiques (tels que les formats de points de courbes elliptiques) peuvent être identifiés de la même manière qu'un navigateur peut être identifié par sa version, ses modules complémentaires et d'autres fonctionnalités qui lui sont propres.
Les signatures JA3 sont destinées au client, tandis que les signatures JA3S sont destinées aux serveurs. Dans le cas de Cobalt Strike, des empreintes ont été créées pour la négociation TLS par la balise client (qui utilise le socket Windows pour initier la communication) et les serveurs Cobalt Strike fonctionnant sous le système d'exploitation Kali Linux. Ces empreintes digitales devraient être utilisées conjointement pour détecter de manière fiable un serveur Cobalt Strike. Bien que cette méthode de détection puisse être partiellement contournée par l'opérateur Cobalt Strike à l'aide d'un « redirecteur », de nombreux serveurs Cobalt Strike n'utilisent pas ce type de proxy.
Les signatures JA3 et JA3S peuvent être utilisées avec des outils tels que Zeek/Bro et Suricata. Les données issues de ces outils de détection réseau peuvent ensuite être transmises à un SIEM tel que Splunk. Les signatures JA3 et JA3S sont disponibles sur le compte Github de Salesforce et auprès d'autres sources.
As with detections of other tools such as Metasploit, Powershell, or PsExec that may be used by a security team or administrators, network defenders should exercise due diligence if they find evidence indicating connections from within their network to a Cobalt Strike server, as the detection itself will not identify the intentions of the user. Identifying a Cobalt Strike server as that of an authorized red team or a true adversary may be impossible based on detected traffic alone.
Changes Since Fox-IT and Knownsec Reports Publicizing Anomalous HTTP Responses
We expected the number of Cobalt Strike servers identified by these methods to decrease after the publication of information by Strategic Cyber LLC, Fox-IT, and Knownsec in late February 2019 concerning the detection of Cobalt Strike servers. Additionally, Cobalt Strike operators were encouraged by Strategic Cyber LLC in their February study to make use of an Apache or Nginx web server as a “redirector” to proxy their traffic; this precludes simple detections of Cobalt Strike servers by removing the anomalous HTTP responses, default security certificates, and other such identifiers from the equation. Updating legitimate, licensed servers to version 3.13 would decrease the number found using the extraneous null space method, but Cobalt Strike operators being aware of the well-publicized detection methods would also be expected to decrease the number of detectable servers.
By duplicating Fox-IT’s methodology of detecting the anomalous null space in HTTP responses, Insikt Group confirmed a noticeable decrease in identified servers. 388 Cobalt Strike servers were observed for the first time in February 2019 using Rapid7’s data. The number of first-seen Cobalt Strike servers using this method was only 90 in April 2019. However, this is only part of the story; older Cobalt Strike servers visible using this method have decreased in number but far less significantly. 441 of the servers observed in Rapid7’s data were still observed to be up in April 2019, which is more than the 387 last observed in January 2019.
By analyzing the Knownsec research to identify Cobalt Strike with a different HTTP detection methodology, Insikt Group replicated their research in the same ZoomEye search engine data. Insikt Group identified 1,580 servers that were up in 2018, and only 1,053 through May 2019.
Recent metrics of individual Cobalt Strike detection parameters. (January 2019 to May 2019)
As previously noted, both of these HTTP detection methods are based upon anomalies within NanoHTTPD, not Cobalt Strike systems in particular. Not all of those detected using these methods had corroborative data, such as open port 50050. Other variables are also involved in the change to the number of servers. Cobalt Strike servers may change IPs and do not always remain up for long periods of time. Although there has been a reduction in newly sighted Cobalt Strike servers since January 2019, the data indicates that there are still a large number of servers in operation that are detected by the HTTP null-space anomaly method.
Cobalt Strike identification using combined detection methods. (January 2019 to May 2019)
The combination of the three detections made for high confidence assessments for the servers to be hosting Cobalt Strike — in fact, all six of the servers identified in this manner were previously reported to host Cobalt Strike and communicate with various Cobalt Strike beacons. The use of the default Cobalt Strike proves to be the best detection methodology; however, monitoring the combined usage of NanoHTTPD and open port 50050 can narrow the field of IPs to monitor greatly.
Threat Analysis
By using Fox-IT’s methodology and looking for use of the standard-issue Cobalt Strike TLS certificate on accessible IPs, Recorded Future attempted to profile Cobalt Strike usage in the wake of Strategic Cyber LLC patching a major detection mechanism. It should be noted that the forthcoming methodology and study tracks visible Cobalt Strike servers, and cannot account for Cobalt Strike servers that evade detection even by simple changes.
Dans cette étude, Recorded Future avait anticipé les conclusions de Fox-IT concernant le passage à des versions plus récentes de Cobalt Strike, ce qui s'est produit dans une certaine mesure. Bien que Strategic Cyber LLC ait fourni un correctif pour remédier à ce problème de détection et publié les adresses IP avec l'espace supplémentaire dans la réponse HTTP, les déploiements Cobalt Strike antérieurs à la mise à jour ne semblent pas avoir été mis à jour. Le mois suivant la mise à jour du cadre a enregistré la plus forte augmentation du nombre de serveurs Cobalt Strike nouvellement observés selon la méthodologie de détection de Fox-IT, telle qu'elle a été appliquée aux ensembles de données de Rapid7. Ces serveurs ont passé en moyenne 70 jours en ligne.
However, this detection proved unreliable, as the method found 248 devices on consecutive CIDR ranges on AS 132839, using NanoHTTPD on port 1443, solely active on February 1, 2019. After removing this anomaly, the data indicates a stark drop in the detection of new Cobalt Strike hosts using NanoHTTPD. This may be due to fewer Cobalt Strike new deployments overall, but may also reflect the updated software being used.
The last-seen data from April 2019 largely indicate that previously deployed Cobalt Strike instances have not been removed or updated. Additionally, the amount of time the servers have stayed online, based on that same data set, shows no noticeable shift in servers that have continued to be detected, hovering around the data set’s average of 70 days. However, there was a decline in new Cobalt Strike servers found with the null space in the HTTP header.
The continued identification of Cobalt Strike servers using an outdated version of the framework (via the null space in the HTTP header) and the default configurations may indicate that a large population of Cobalt Strike servers are cracked or stolen versions. It may also be an instance of operators not reading security publications, but the answer may be more simple than that — most targets are not likely searching for Cobalt Strike servers, and the payloads remain effective, so why change their behavior?
Sampling of Cobalt Strike Servers
Recorded Future took a sampling of the IP addresses from which we had seen activity in April 2019 to look at both noted activity and detection overlaps. These servers fit into a number of categories: confirmed Cobalt Strike activity, Cobalt Strike servers associated with other malware, Cobalt Strike servers with links to known threat groups, and unreported Cobalt Strike servers that have yet to be named in threat lists or reporting.
The research methods used were unable to help determine if the systems analyzed were licensed or not, and similarly, could not identify if the servers were conducting authorized security testing or illicit attacks.
Plusieurs adresses IP ont été identifiées comme étant en commun dans des signaux liés à Cobalt Strike. Les trois ont utilisé le certificat par défaut, avaient ouvert le port 50050 du contrôleur Cobalt Strike et avaient déjà été identifiés comme hébergeant des balises Cobalt Strike ou des proxys inversés Meterpreter. Il convient de souligner à nouveau que les détections sont plus fiables lorsque des méthodes de détection corroborantes sont utilisées.
- L'adresse IP 89.105.202.58 a utilisé le certificat Cobalt Strike standard. Les résultats précédents de URLscan.io indiquent une réponse HTTP 404 Not Found, sans contenu et avec un type de contenu en texte brut. L'analyse Shodan indique que le port 50050 était ouvert, ce qui peut héberger le contrôleur Cobalt Strike. L'utilisateur Twitter @Scumbots a précédemment identifié le serveur comme hébergeant un proxy inverse Meterpreter, qui a été contacté via un script Powershell hébergé sur PasteBin depuis février 2019.
- 199.189.108.71 a également utilisé le certificat Cobalt Strike par défaut, avait le port 50050 ouvert et avait déjà été identifié par l'utilisateur Twitter @Scumbots pour héberger un proxy inverse Meterpreter, qui utilisait également Powershell encodé en base64 pour dissimuler son exécution.
L'adresse IP 31.220.43.11 a été identifiée à l'aide du certificat Cobalt Strike de référence, corroborée par l'ouverture du port 50050 sur le serveur. Un échantillon de Meterepreter a été observé envoyant du trafic HTTP vers l'adresse IP dans le cadre d'une fonction de commande et de contrôle. Selon les données Shodan, l'adresse IP dispose de plusieurs ports ouverts et est vulnérable à un certain nombre d'exploits, ce qui peut indiquer que l'hôte a été compromis pour servir d'autres logiciels malveillants. Au moment de l'analyse, l'adresse IP héberge un seul domaine : cob.ozersk[.]today.
Plusieurs adresses IP utilisaient le certificat Cobalt Strike standard et avaient déjà été associées à des activités FIN6, tant pour la diffusion de ransomware que pour le vecteur d'attaque initial visant à distribuer des logiciels malveillants destinés aux points de vente. Au moment de cette analyse, ces deux serveurs Cobalt Strike Team étaient actifs, bien que la campagne ait été rendue publique. Cela démontre que FIN6 n'avait pas besoin de nettoyer après ses opérations, ainsi que la rapidité avec laquelle l'opération a été abandonnée.
Interestingly, while one of the servers was detectable by all three methods, one of the servers had been patched for the NanoHTTPD extra space, implying that either the standard web server was reconfigured, or the actors had an updated version of Cobalt Strike. The diversity of the Cobalt Strike servers deployed in the same incident show that FIN6 uses the standard Cobalt Strike framework with little modification.
- Le serveur à l'adresse 185.80.233.166 utilise le certificat de sécurité Cobalt Strike par défaut. Ce système dispose également du port 50050/TCP ouvert par défaut pour Cobalt Strike Team Server. Le système disposait d'un enregistrement MX mail.sexlove24[.]com. Les données de télémétrie de Talos indiquent qu'aucun courrier n'a été observé à destination ou en provenance de ce système au cours du mois d'avril 2019. Cette adresse IP a été identifiée par Morphisec en février 2019 dans le cadre d'une attaque coordonnée visant des systèmes de point de vente utilisant FrameworkPOS. L'activité a exploité les techniques, tactiques et procédures (TTP) utilisées par le groupe FIN6, en particulier l'utilisation de WMI/PowerShell pour les mouvements latéraux et l'élévation des privilèges.
- L'adresse IP 176.126.85.207 a été détectée à la fois par l'espace anormal de Fox-IT et par l'utilisation du certificat Cobalt Strike par défaut, ces données étant corroborées par l'ouverture du port 50050. L'adresse IP a été observée en train de transmettre une charge utile HTTP inversée Metasploit Meterpreter en association avec LockerGoga et Ryuk provenant de FIN6.
Deux adresses IP ont utilisé le certificat Cobalt Strike standard et ont fait appel à des chargeurs réfléchissants Cobalt Strike. Le chargement réflexif de DLL (bibliothèque de chargement dynamique) est une méthode permettant d'injecter une DLL dans la mémoire d'un processus tout en contournant le chargeur de DLL Windows et en évitant de stocker la DLL sur un disque. Une DLL injectée de cette manière peut être difficile à détecter, car elle réside uniquement en mémoire. Le chargement de DLL réfléchissant, célèbre pour avoir été utilisé par APT40 (également connu sous le nom de TEMP.Periscope) et dans la campagne Wilted Tulip, n'est pas exclusif à Cobalt Strike et est mis en œuvre par divers moyens par un certain nombre d'acteurs. L'utilisation d'un chargeur réfléchissant ne constitue pas une preuve que ces groupes étaient actifs sur ces serveurs. Aucun des deux adresses IP n'hébergeait de domaines au moment de cette analyse.
- L'adresse IP 89.105.198.18 a également utilisé le certificat Cobalt Strike par défaut. Selon @Scumbots, l'adresse IP avait précédemment été identifiée comme un serveur de commande et de contrôle recevant des données Meterpreter via HTTP. Les données de scan précédentes provenant de Shodan ont confirmé la présence du serveur Cobalt Strike sur l'adresse IP en détectant que le port 50050 du contrôleur Cobalt Strike était ouvert. Les collections de Recorded Future ont identifié deux fichiers qui ont contacté l'adresse IP 89.105.198.18. observé pour la première fois en mars 2019. Les charges utiles ont été détectées de manière incohérente sur VirusTotal, probablement parce qu'au moins le premier fichier était compressé avec UPX. Une inspection des vidages de mémoire résultant de l'exécution des fichiers a révélé que les deux étaient des chargeurs réfléchissants Cobalt Strike.
- 3a143d038aae9e4253ed6656beaaae298795a3df20e874544c0122435ef79bc0
- 9668c17504a0d9471668dac64b3c5c2abfb3b186c25dc28d91afbe95ed341002
- Another IP address on the same CIDR range also made use of the default Cobalt Strike certificate:89.105.198.21. The IP address did not host domains at the time of this analysis, but previous scan data corroborated the presence of a Cobalt Strike server.
- L'adresse IP 106.12.204.25 a été détectée à la fois par l'espace anormal de Fox-IT et par l'utilisation du certificat Cobalt Strike par défaut. L'adresse IP avait également le port 50050 ouvert et renvoyait une réponse 404 Not Found en texte clair, comme mentionné ci-dessus. L'adresse IP a été signalée comme transmettant une balise Cobalt Strike, qui a également été détectée par un utilisateur de VirusTotal comme un chargeur réfléchissant Cobalt Strike lié à APT40. Recorded Future n'a pas observé l'adresse IP en relation avec APT40.
Another general category of IPs that was identified as hosting Cobalt Strike had uncorrelated threat activity involving other malware or suspicious activity, but largely produced inconclusive results.
- L'adresse IP 91.152.8.14 a utilisé le certificat Cobalt Strike standard à la mi-avril 2019. Un cheval de Troie générique a été détecté communiquant avec l'adresse IP via des méthodes HTTP sur le port 433. Au moment de l'analyse, l'adresse IP n'hébergeait aucun domaine, mais partageait un certificat avec forum.happyhippos[.]org. L'émetteur du certificat a déclaré être basé à Espoo, dans la région d'Uusimaa, en Finlande, ce qui correspond à la géolocalisation approximative de l'adresse IP. Une autre adresse IP appartenant à la même plage CIDR a été détectée via l'espace d'en-tête HTTP anormal, sur 91.152.8.173. Bien que cette adresse IP ait utilisé un certificat différent, les analyses Shodan précédentes sur le port 443 ont renvoyé une réponse 404 Not Found sans contenu et avec un Content-Type en texte brut, ce qui est un signe peu fiable indiquant la présence d'un serveur Cobalt Strike. En l'absence de données supplémentaires, Recorded Future n'a pas été en mesure de tirer de conclusion concernant ces adresses IP.
- The IP 99.81.122.12 was identified in late April 2019, from the anomalous spacing, use of the Cobalt Strike certificate, and having the controller port 50050 open. The server is now inactive, but previously served as a Cobalt Strike beacon, accessed via HTTP. The server did not host domains at the time of analysis.
- L'adresse IP 72.72.184.90 a également utilisé le certificat générique Cobalt Strike. L'adresse IP est contactée par un fichier malveillant, qui se connecte via HTTP à l'URL hxxps://72.14.184[.]90/search/news/. Le fichier est détecté comme une balise Cobalt Strike. L'adresse IP a également été impliquée dans une campagne de spearphishing fin janvier 2019. Les données du scan Shodan indiquent que le serveur présente un certain nombre de vulnérabilités, ce qui suggère qu'il pourrait être compromis pour héberger le serveur Cobalt Strike, plutôt que d'être loué pour une mission de test d'intrusion.
- 06f8004835c5851529403f73ad23168b1127315d02c68e0153e362a73f915c72
Finally, a number of IPs had limited reports of threat activity, but bore indications of potential malicious activity coming in the near term:
- L'adresse IP 172.96.250.199 a utilisé le certificat Cobalt Strike de base, mais aucune activité malveillante n'y est associée, selon les données télémétriques de Recorded Future. L'adresse IP a depuis changé de certificats pour utiliser une paire de certificats LetsEncrypt, dont un lié au domaine haqiu[.]cf. Le domaine n'était ni actif ni hébergé sur cette adresse IP au moment de cette analyse. L'adresse IP a été associée à l'hébergement d'un domaine suspect, ssss.ppwu[.]xyz. qui utilise deux certificats LetsEncrypt. Ces certificats ne sont valables que pendant 90 jours et ont depuis été transférés sur les serveurs Cloudflare. Cela peut indiquer une intervention imminente d'une équipe rouge ou une future activité malveillante utilisant Cobalt Strike.
- The IP 139.162.18.83 was identified from the use of the default Cobalt Strike SSL certificate, but no threat activity or other oddities, have been observed on the IP address. However, on the same CIDR range, 139.162.18.179 was identified from the anomalous space included in the HTTP response, and it was found to be using the default Cobalt Strike SSL certificate. There is no threat activity currently associated with the server, but a number of suspicious domains are hosted on the IP.
- L'adresse IP 124.156.106.98 a également utilisé le certificat Cobalt Strike par défaut et avait ouvert le port 50050, qui peut être utilisé pour le panneau de contrôle Cobalt Strike. L'adresse IP a été identifiée comme servant de commande et de contrôle pour une balise Cobalt Strike, observée en mars 2019. Cependant, un domaine inhabituel a été enregistré et hébergé sur l'adresse IP le 2 mai 2019, kongbu.koubaogangjiao[.]xyz. alors que les signaux Cobalt Strike étaient toujours actifs. Le domaine pourrait être utilisé à l'avenir pour des tests de pénétration ou des infections malveillantes.
Outlook
Recorded Future finds it important to cluster together signals from known threats to help baseline threat activity and to make it easier to identify more unique threats. The continued sightings of standard Cobalt Strike certificates, along with the anomalous space in HTTP responses from versions earlier than 3.13, indicates that the collaborative use of multiple signatures will prove to be the best method for identifying active Cobalt Strike servers.
While espionage-oriented actors often have large amounts of development time and resources at their disposal, they also have a vested interest to blend in with the crowd. Obstacles other than intentional tradecraft may prevent the patching of Cobalt Strike servers, including lack of knowledge of the update due to a language barrier, operational comfort with currently installed versions, or other modifications that prevent the installation of the update. The use of cracked versions of Cobalt Strike or deployment of standard Cobalt Strike instances causes a blending together of threats, making attribution difficult. Additionally, by running cracked versions of the framework, actors can blend in with older versions of Cobalt Strike.
Detection of these servers on a rolling basis can provide rules for SOC and IR teams to develop alerting or blocking capabilities, and can prompt investigations into hosts communicating with these servers.