3CX Software Supply Chain Compromis Initié par un précédent Software Supply Chain Compromis ; Acteur nord-coréen présumé responsable
En mars 2023, Mandiant Consulting a répondu à une compromission de la chaîne d'approvisionnement qui affectait le logiciel 3CX Desktop App. Au cours de cette réponse, Mandiant a identifié que le vecteur de compromis initial du réseau de 3CX était via un logiciel malveillant téléchargé depuis le site Web de Trading Technologies. C'est la première fois que Mandiant voit une attaque de la chaîne d'approvisionnement logicielle conduire à une autre attaque de la chaîne d'approvisionnement logicielle.
L'application de bureau 3CX est un logiciel d'entreprise qui fournit des communications à ses utilisateurs, notamment le chat, les appels vidéo et les appels vocaux. Fin mars 2023, une compromission de la chaîne d'approvisionnement logicielle a propagé des logiciels malveillants via une version trojanisée du logiciel légitime de 3CX qui était disponible en téléchargement sur leur site Web. Le logiciel concerné était 3CX DesktopApp 18.12.416 et versions antérieures, qui contenait un code malveillant exécutant un téléchargeur, SUDDENICON, qui à son tour recevait des serveurs de commande et de contrôle (C2) supplémentaires à partir de fichiers d'icônes cryptés hébergés sur GitHub. Le serveur C2 décrypté a été utilisé pour télécharger une troisième étape identifiée comme ICONICSTEALER, un dataminer qui vole les informations du navigateur. Mandiant suit cette activité sous le numéro UNC4736, un groupe d'activités suspecté de nexus nord-coréen.
L'enquête de Mandiant Consulting sur la compromission de la chaîne d'approvisionnement de 3CX a révélé le vecteur d'intrusion initial : un progiciel contenant des logiciels malveillants distribué via une précédente compromission de la chaîne d'approvisionnement logicielle qui a commencé par un programme d'installation falsifié pour X_TRADER, un progiciel fourni par Trading Technologies (Figure 1). Mandiant a déterminé qu'un processus de chargement complexe a conduit au déploiement de VEILEDSIGNAL, une porte dérobée modulaire à plusieurs niveaux, et de ses modules.
Mandiant Consulting a identifié un installateur avec le nom de fichier X_TRADER_r7.17.90p608.exe (MD5 : ef4ab22e565684424b4142b1294f1f4d) qui a conduit au déploiement d'une porte dérobée modulaire malveillante : VEILEDSIGNAL.
Bien que la plate-forme X_TRADER aurait été abandonnée en 2020, elle était toujours disponible en téléchargement sur le site Web légitime de Trading Technologies en 2022. Ce fichier était signé avec le sujet "Trading Technologies International, Inc" et contenait le fichier exécutable Setup.exe qui était également signé avec le même certificat numérique. Le certificat de signature de code utilisé pour signer numériquement le logiciel malveillant devait expirer en octobre 2022.
Le programme d'installation contient et exécute Setup.exe qui supprime deux DLL trojanisées et un exécutable bénin. Setup.exe utilise l'exécutable bénin pour charger l'une des DLL malveillantes. Le chargement latéral s'appuie sur des exécutables Windows légitimes pour charger et exécuter un fichier malveillant déguisé en dépendance légitime. Les DLL malveillantes chargées contiennent et utilisent SIGFLIP et DAVESHELL pour déchiffrer et charger la charge utile en mémoire à partir de l'autre exécutable malveillant abandonné. SIGFLIP s'appuie sur le chiffrement de flux RC4 pour déchiffrer la charge utile de son choix et utilise la séquence d'octets FEEDFACE pour trouver le shellcode, dans ce cas DAVESHELL, pendant l'étape de déchiffrement.
SIGFLIP et DAVESHELL extraient et exécutent une porte dérobée modulaire, VEILEDSIGNAL, et deux modules correspondants. VEILEDSIGNAL s'appuie sur les deux modules extraits pour l'injection process et les communications avec le serveur C2.
VEILESIGNAL et les deux composants qui l'accompagnent offrent les fonctionnalités suivantes :
La configuration C2 de l'échantillon identifié de VEILEDSIGNAL (MD5 : c6441c961dcad0fe127514a918eaabd4) reposait sur l'URL codée en dur suivante : www.tradingtechnologies[.]com/trading/order-management.
Les applications X_TRADER et 3CXDesktopApp compromises contiennent, extraient et exécutent une charge utile de la même manière, bien que la charge utile finale soit différente. Mandiant a analysé ces échantillons et a observé les similitudes suivantes :
L'attaquant a utilisé une version compilée du projet Fast Reverse Proxy accessible au public, pour se déplacer latéralement au sein de l'organisation 3CX pendant l'attaque. Le fichier MsMpEng.exe (MD5 : 19dbffec4e359a198daf4ffca1ab9165) a été déposé dans C:\Windows\System32 par l'auteur de la menace.
Mandiant a pu reconstituer les étapes de l'attaquant dans tout l'environnement alors qu'il récoltait les informations d'identification et se déplaçait latéralement. Finalement, l'attaquant a pu compromettre les environnements de construction Windows et macOS. Sur l'environnement de construction Windows, l'attaquant a déployé un lanceur TAXHAUL et un téléchargeur COLDCAT qui ont persisté en effectuant un détournement d'ordre de recherche DLL via le service IKEEXT et exécuté avec les privilèges LocalSystem. Le serveur de build macOS a été compromis avec la porte dérobée POOLRAT utilisant des démons de lancement comme mécanisme de persistance.
Les rapports précédents mentionnaient que le serveur de build macOS avait été compromis avec SIMPLESEA. Mandiant Intelligence a terminé l'analyse de l'échantillon et a déterminé qu'il s'agissait de la porte dérobée POOLRAT au lieu d'une nouvelle famille de logiciels malveillants.
UNC4736 démontre divers degrés de chevauchement avec plusieurs opérateurs nord-coréens suivis par Mandiant Intelligence, en particulier avec ceux impliqués dans des opérations de cybercriminalité à motivation financière. Ces clusters ont démontré une concentration soutenue sur la crypto-monnaie et les services liés aux technologies financières au fil du temps.
Mandiant estime avec une confiance modérée que l'UNC4736 est lié à l'activité "AppleJeus" nord-coréenne à motivation financière, comme l'a rapporté la CISA. Ceci est en outre corroboré par les conclusions de Google TAG qui a signalé la compromission de www.tradingtechnologies[.]com en février 2022, précédant la distribution de mises à jour X_TRADER compromises à partir du site.
Un faible chevauchement d'infrastructure a également été identifié entre UNC4736 et deux groupes d'activités APT43 suspectées, UNC3782 et UNC4469.
Date
Domaine
UNC
2022-12-20
courbefinances[.]com
UNC4469
2022-12-29
pbxphonenetwork[.]com
UNC4736
Date
Domaine
UNC
2022-04-08
journalide[.]org
UNC4736
2021-11-26
nxmnv[.]site
UNC3782
Date
Domaine
UNC
2023-01-09
msedgepackageinfo[.]com
UNC4736
2023-03-22
apollo-crypto.org.shilaerc20[.]com
UNC4469
La compromission de la chaîne d'approvisionnement logicielle identifiée est la première à notre connaissance qui a conduit à une compromission de la chaîne d'approvisionnement logicielle en cascade. Cela montre la portée potentielle de ce type de compromission, en particulier lorsqu'un acteur malveillant peut enchaîner les intrusions, comme le démontre cette enquête. Les recherches sur l'activité UNC4736 suggèrent qu'elle est très probablement liée à des acteurs nord-coréens motivés financièrement. Les compromis en cascade de la chaîne d'approvisionnement des logiciels démontrent que les opérateurs nord-coréens peuvent exploiter l'accès au réseau de manière créative pour développer et distribuer des logiciels malveillants, et se déplacer entre les réseaux cibles tout en menant des opérations alignées sur les intérêts de la Corée du Nord.
ICONICSTALER
ICONICSTEALER est un mineur de données C/C++ qui collecte les données de configuration des applications ainsi que l'historique du navigateur.
DAVESHELL
DAVESHELL est un shellcode qui fonctionne comme un dropper en mémoire. Sa charge utile intégrée est mappée en mémoire et exécutée.
SIGFLIP
SigFlip est un outil permettant de corriger les fichiers PE-COFF signés par un code authentique afin d'injecter du code arbitraire sans affecter ni casser la signature du fichier.
POOLRAT
POOLRAT est une porte dérobée macOS C/C++ capable de collecter des informations système de base et d'exécuter des commandes. Les commandes exécutées incluent l'exécution de commandes arbitraires, la suppression sécurisée de fichiers, la lecture et l'écriture de fichiers, la mise à jour de la configuration.
TAXHAUL
TAXHAUL est une DLL qui, lorsqu'elle est exécutée, déchiffre une charge utile de shellcode attendue sur C:\Windows\System32\config\TxR\
CHAT FROID
COLDCAT est un téléchargeur complexe. COLDCAT génère des informations d'identification d'hôte uniques et les balise vers un C2 qui est spécifié dans un fichier séparé via une requête POST avec les données dans l'en-tête du cookie. Après une brève poignée de main, le logiciel malveillant s'attend à ce que le shellcode codé en base64 s'exécute en réponse.
SIGNAL DE GUIDAGE
VEILEDSIGNAL est une porte dérobée écrite en C qui est capable d'exécuter du shellcode et de se terminer. De plus, VEILEDSIGNAL s'appuie sur des modules supplémentaires qui se connectent via des canaux nommés Windows pour interagir avec l'infrastructure C2.
Remerciements particuliers à Michael Bailey, Willi Ballenthin, Michael Barnhart et Jakub Jozwiak pour leur collaboration et leur relecture. Mandiant tient également à remercier le Google Threat Analysis Group (TAG) et le Microsoft Threat Intelligence Center (MSTIC) pour leur collaboration dans cette recherche.
Développement des ressources
Accès initial
Persistance
Escalade des privilèges
Évasion de la défense
Découverte
Commander et contrôler
Impact
règle M_Hunting_3CXDesktopApp_Key {
méta :
disclaimer = "Cette règle est destinée à la recherche et n'est pas testée pour s'exécuter dans un environnement de production"
description = "Détecte une clé trouvée dans un fichier 3CXDesktopApp malveillant"
md5="74bc2d0b6680faa1a5a76b27e5479cbc"
date = "2023/03/29"
édition = "1"
chaînes :
$key = "3jB(2bsG#@c7" large ascii
condition:
clé $
}
règle M_Hunting_3CXDesktopApp_Export {
méta :
disclaimer = "Cette règle est destinée à la recherche et n'est pas testée pour s'exécuter dans un environnement de production"
description = "Détecte une exportation utilisée dans le malware 3CXDesktopApp"
md5="7faea2b01796b80d180399040bb69835"
date = "2023/03/31"
édition = "1"
chaînes :
$str1 = "DllGetClassObject" large ascii
$str2 = "3CXDesktopApp" large ascii
condition:
tout de ($str*)
}
rule TAXHAUL{ meta : author = "Mandiant" created = "04/03/2023" modified = "04/03/2023" version = "1.0" strings : $p00_0 = {410f45fe4c8d3d[4]eb??4533f64c8d3d[4]eb??4533f64c8d3d[4]eb} $p00_1 = {4d3926488b01400f94c6ff90[4]41b9[4]eb??8bde4885c074} condition : uint16(0) == 0x5A4D et l'un d'entre eux}
règle M_Hunting_MSI_Installer_3CX_1
{
méta :
auteur = "Mandiant"
md5 = "0eeb1c0133eb4d571178b2d9d14ce3e9, f3d4144860ca10ba60f7ef4d176cc736"
chaînes :
$ss1 = { 20 00 5F 64 33 64 63 6F 6D 70 69 6C 65 72 5F 34 37 2E 64 6C 6C 5F }
$ss2 = { 20 00 5F 33 43 58 44 65 73 6B 74 6F 70 41 70 70 2E }
$ss3 = { 20 00 5F 66 66 6D 70 65 67 2E 64 6C 6C 5F }
$ss4 = "3CX Ltd1" ascii
$sc1 = { 1B 66 11 DF 9C 9A 4D 6E CC 8E D5 0C 9B 91 78 73 }
$sc2 = "202303" ascii
condition:
(uint32(0) == 0xE011CFD0) et taille de fichier > 90 Mo et taille de fichier < 105 Mo et tous
}
règle M_Hunting_TAXHAUL_Hash_1
{
méta :
auteur = "Mandiant"
disclaimer = "Cette règle est destinée à la recherche et n'est pas testée pour s'exécuter dans un environnement de production"
description = "La règle recherche la valeur codée en dur utilisée dans l'algorithme de hachage de chaîne observé dans les instances de TAXHAUL."
md5="e424f4e52d21c3da1b08394b42bc0829"
chaînes :
$c_x64 = { 25 A3 87 DE [4-20] 25 A3 87 DE [4-20] 25 A3 87 DE }
condition:
taille de fichier < 15 Mo et uint16(0) == 0x5a4d et uint32(uint32(0x3C)) == 0x00004550 et n'importe lequel d'entre eux
}
règle M_Hunting_SigFlip_SigLoader_Native
{
méta :
auteur = "Mandiant"
disclaimer = "Cette règle est destinée à la recherche et n'est pas testée pour s'exécuter dans un environnement de production"
description = "La règle recherche les chaînes présentes dans SigLoader (natif)"
md5="a3ccc48db9eabfed7245ad6e3a5b203f"
chaînes :
$s1 = "[*] : chargeur de base..." ascii large
$s2 = "[!] : chemin PE ou clé de chiffrement manquants..." ascii large
$s3 = "[!] : Utilisation : %s
$s4 = "[*] : chargement/analyse du fichier PE '%s'" large ascii
$s5 = "[!]: Impossible de lire le fichier %s" largeur ascii
$s6 = "[!]: '%s' n'est pas un fichier PE valide" large ascii
$s7 = "[+] : table de certificats RVA %x" largeur ascii
$s8 = "[+] : Taille de la table de certificat %d" largeur ascii
$s9 = "[*] : Balise trouvée 0x%x%x%x%x" largeur ascii
$s10 = "[!] : Impossible de localiser les données/shellcode" ascii large
$s11 = "[+] : Taille des données chiffrées/déchiffrées %d" largeur ascii
condition:
taille de fichier < 15 Mo et uint16(0) == 0x5a4d et uint32(uint32(0x3C)) == 0x00004550 et 4 de ($s*)
}
règle M_Hunting_Raw64_DAVESHELL_Bootstrap
{
méta :
auteur = "Mandiant"
disclaimer = "Cette règle est destinée à la recherche et n'est pas testée pour s'exécuter dans un environnement de production"
description = "La règle recherche le shellcode d'amorçage (64 bits) présent dans DAVESHELL"
md5="8a34adda5b981498234be921f86dfb27"
chaînes :
$b6ba50888f08e4f39b43ef67da27521dcfc61f1e = { E8 00 00 00 00 59 49 89 C8 48 81 C1 ?? ?? ?? ?? BA ?? ?? ?? ?? 49 81 C0 ?? ?? ?? ?? 41 B9 ?? ?? ?? ?? 56 48 89 E6 48 83 E4 F0 48 83 CE 30 C7 44 24 20 ?? ?? ?? ?? E8 ?? 00 00 00 48 89 F4 5E C3 }
$e32abbe82e1f957fb058c3770375da3bf71a8cab = { E8 00 00 00 00 59 49 89 C8 BA ?? ?? ?? ?? 49 81 C0 ?? ?? ?? ?? 41 B9 ?? ?? ?? ?? 56 48 89 E6 48 83 E4 F0 48 83 CE 30 48 89 4C 24 28 48 81 C1 ?? ?? ?? ?? C7 44 24 20 ?? ?? ?? ?? E8 ?? 00 00 00 48 89 F4 5E C3 }
condition:
taille de fichier < 15 Mo et l'un d'entre eux
}
règle M_Hunting_MSI_Installer_3CX_1
{
méta :
auteur = "Mandiant"
disclaimer = "Cette règle est destinée à la recherche et n'est pas testée pour s'exécuter dans un environnement de production"
description = "Cette règle recherche les valeurs codées en dur dans le programme d'installation MSI observées dans les chaînes et le certificat de signature"
md5="0eeb1c0133eb4d571178b2d9d14ce3e9"
chaînes :
$ss1 = { 20 00 5F 64 33 64 63 6F 6D 70 69 6C 65 72 5F 34 37 2E 64 6C 6C 5F }
$ss2 = { 20 00 5F 33 43 58 44 65 73 6B 74 6F 70 41 70 70 2E }
$ss3 = { 20 00 5F 66 66 6D 70 65 67 2E 64 6C 6C 5F }
$ss4 = "3CX Ltd1" ascii
$sc1 = { 1B 66 11 DF 9C 9A 4D 6E CC 8E D5 0C 9B 91 78 73 }
$sc2 = "202303" ascii
condition:
(uint32(0) == 0xE011CFD0) et taille de fichier > 90 Mo et taille de fichier < 100 Mo et tous
}
règle M_Hunting_VEILEDSIGNAL_1
{
méta :
auteur = "Mandiant"
disclaimer = "Cette règle est destinée à la recherche et n'est pas testée pour s'exécuter dans un environnement de production"
md5 = "404b09def6054a281b41d309d809a428, c6441c961dcad0fe127514a918eaabd4"
chaînes :
$rh1 = { 68 5D 7A D2 2C 3C 14 81 2C 3C 14 81 2C 3C 14 81 77 54 10 80 26 3C 14 81 77 54 17 80 29 3C 14 81 77 54 11 80 AB 3C 14 8 1 D4 4C 11 80 33 3C 14 81 D4 4C 10 80 22 3C 14 81 D4 4C 17 80 25 3C 14 81 77 54 15 80 27 3C 14 81 2C 3C 15 81 4B 3C 14 81 94 4D 1D 80 28 3C 14 81 94 4D 14 80 2D 3C 14 81 94 4D 16 80 2D 3C 14 81 }
$rh2 = { 00 E5 A0 2B 44 84 CE 78 44 84 CE 78 44 84 CE 78 1F CE CA 79 49 84 CE 78 1F CE CD 79 41 84 CE 78 1F CE CB 79 C8 84 CE 78 BC F4 CA 79 4A 84 CE 78 BC F4 CD 79 4D 84 CE 78 BC F4 CB 79 65 84 CE 78 1F EC CF 79 43 84 CE 78 44 84 CF 78 22 84 CE 78 FC F5 C7 79 42 84 CE 78 FC F5 CE 79 45 84 CE 78 FC F5 CC 79 45 84 CE 78}
$rh3 = { DA D2 21 22 9E B3 4F 71 9E B3 4F 71 9E B3 4F 71 C5 DB 4C 70 94 B3 4F 71 C5 DB 4A 70 15 B3 4F 71 C5 DB 4B 70 8C B3 4F 71 66 C3 4B 70 8 C B 3 4F 71 66 C3 4C 70 8F B3 4F 71 C5 DB 49 70 9F B3 4F 71 66 C3 4A 70 B0 B3 4F 71 C5 DB 4E 70 97 B3 4F 71 9E B3 4E 71 F9 B3 4F 71 26 C2 46 70 9F B3 4F 71 26 C2 B0 71 9F B3 4F 71 9E B3 D8 71 9F B3 4F 71 26 C2 4D 70 9F B3 4F 71 }
$rh4 = { CB 8A 35 66 8F EB 5B 35 8F EB 5B 35 8F EB 5B 35 D4 83 5F 34 85 EB 5B 35 D4 83 58 34 8A EB 5B 35 D4 83 5E 34 09 EB 5B 35 77 9B 5E 34 92 EB 5B 35 77 9B 5F 34 81 EB 5B 35 77 9B 58 34 86 EB 5B 35 D4 83 5A 34 8C EB 5B 35 8F EB 5A 35 D3 EB 5B 35 37 9A 52 34 8C EB 5B 35 37 9A 58 34 8E EB 5B 35 37 9A 5B 34 8E EB 5B 35 37 9A 59 34 8E EB 5B 35 }
condition:
uint16(0) == 0x5A4D et uint32(uint32(0x3C)) == 0x00004550 et 1 de ($rh*)
}
règle M_Hunting_VEILEDSIGNAL_2
{
méta :
auteur = "Mandiant"
disclaimer = "Cette règle est destinée à la chasse et n'est pas testée pour s'exécuter dans un environnement de production"
md5="404b09def6054a281b41d309d809a428"
chaînes :
$sb1 = { C1 E0 05 4D 8 ? [2] 33 D0 45 69 C0 7D 50 BF 12 8B C2 41 FF C2 C1 E8 07 33 D0 8B C2 C1 E0 16 41 81 C0 87 D6 12 00 }
$si1 = mot complet "CryptBinaryToStringA"
$si2 = mot complet "BCryptGenerateSymmetricKey"
$si3 = mot complet "CreateThread"
$ss1 = "ChainingModeGCM" large
$ss2 = "__hold" mot complet
condition:
(uint16(0) == 0x5A4D) et (uint32(uint32(0x3C)) == 0x00004550) et (uint16(uint32(0x3C)+0x18) == 0x020B) et tous
}
règle M_Hunting_VEILEDSIGNAL_3
{
méta :
auteur = "Mandiant"
disclaimer = "Cette règle est destinée à la chasse et n'est pas testée pour s'exécuter dans un environnement de production"
md5 = "c6441c961dcad0fe127514a918eaabd4"
chaînes :
$ss1 = { 61 70 70 6C 69 63 61 74 69 6F 6E 2F 6A 73 6F 6E 2C 20 74 65 78 74 2F 6A 61 76 61 73 63 72 69 70 74 2C 20 2A 2F 2A 3 B 20 71 3D 30 2E 30 31 00 00 61 63 63 65 70 74 00 00 65 6E 2D 55 53 2C 65 6E 3B 71 3D 30 2E 39 00 00 61 63 63 63 65 70 74 2 D 6 C 61 6E 67 75 61 67 65 00 63 6F 6F 6B 69 65 00 00 }
$si1 = mot complet "HttpSendRequestW"
$si2 = mot complet "CreateNamedPipeW"
$si3 = mot complet "CreateThread"
$se1 = mot complet "DllGetClassObject"
condition:
(uint16(0) == 0x5A4D) et (uint32(uint32(0x3C)) == 0x00004550) et (uint16(uint32(0x3C)+0x18) == 0x020B) et tous
}
règle M_Hunting_VEILEDSIGNAL_4
{
méta :
auteur = "Mandiant"
disclaimer = "Cette règle est destinée à la chasse et n'est pas testée pour s'exécuter dans un environnement de production"
md5 = "404b09def6054a281b41d309d809a428, c6441c961dcad0fe127514a918eaabd4"
chaînes :
$sb1 = { FF 15 FC 76 01 00 8B F0 85 C0 74 ?? 8D 50 01 [6-16] FF 15 [4] 48 8B D8 48 85 C0 74 ?? 89 ?? 24 28 44 8B CD 4C 8B C? 48 89 44 24 20 }
$sb2 = { 33 D2 33 C9 FF 15 [4] 4C 8B CB 4C 89 74 24 28 4C 8D 05 [2] FF FF 44 89 74 24 20 33 D2 33 C9 FF 15 }
$si1 = mot complet "CreateThread"
$si2 = mot complet "MultiByteToWideChar"
$si3 = mot complet "LocalAlloc"
$se1 = mot complet "DllGetClassObject"
condition:
(uint16(0) == 0x5A4D) et (uint32(uint32(0x3C)) == 0x00004550) et (uint16(uint32(0x3C)+0x18) == 0x020B) et tous
}
règle M_Hunting_VEILEDSIGNAL_5
{
méta :
auteur = "Mandiant"
disclaimer = "Cette règle est destinée à la chasse et n'est pas testée pour s'exécuter dans un environnement de production"
md5="6727284586ecf528240be21bb6e97f88"
chaînes :
$sb1 = { 48 8D 15 [4] 48 8D 4C 24 4C E8 [4] 85 C0 74 ?? 48 8D 15 [4] 48 8D 4C 24 4C E8 [4] 85 C0 74 ?? 48 8D 15 [4] 48 8D 4C 24 4C E8 [4] 85 C0 74 ?? 48 8D [3] 48 8B CB FF 15 [4] EB }
$ss1 = "chrome.exe" mot complet large
$ss2 = "firefox.exe" mot complet large
$ss3 = "msedge.exe" mot complet large
$ss4 = "\\\\.\\pipe\\*" mot complet ascii
$ss5 = "FindFirstFileA" mot complet ascii
$ss6 = "Process32FirstW" mot complet ascii
$ss7 = "RtlAdjustPrivilege" mot complet ascii
$ss8 = "GetCurrentProcess" mot complet ascii
$ss9 = "NtWaitForSingleObject" mot complet ascii
condition:
(uint16(0) == 0x5A4D) et (uint32(uint32(0x3C)) == 0x00004550) et (uint16(uint32(0x3C)+0x18) == 0x020B) et tous
}
règle M_Hunting_VEILEDSIGNAL_6
{
méta :
auteur = "Mandiant"
disclaimer = "Cette règle est destinée à la chasse et n'est pas testée pour s'exécuter dans un environnement de production"
md5="00a43d64f9b5187a1e1f922b99b09b77"
chaînes :
$ss1 = "C:\\Programdata\\" large
$ss2 = "devobj.dll" mot complet large
$ss3 = "msvcr100.dll" mot complet large
$ss4 = "TpmVscMgrSvr.exe" mot complet large
$ss5 = "\\Microsoft\\Windows\\TPM" mot complet large
$ss6 = "CreateFileW" mot complet ascii
condition:
(uint16(0) == 0x5A4D) et (uint32(uint32(0x3C)) == 0x00004550) et (uint16(uint32(0x3C)+0x18) == 0x010B) et tous
}
rule MTI_Hunting_POOLRAT { meta: author = "Mandiant" disclaimer = "Cette règle est destinée à la recherche et n'est pas testée pour s'exécuter dans un environnement de production" description = "Détecte les chaînes trouvées dans POOLRAT. " md5 = "451c23709ecd5a8461ad060f6346930c" date = "10/28/2020" version = "1" chaînes : $str1 = "name= \"uid\"%s%s%u%s" large ascii $str2 = "nom=\"session\"%s%s%u%s" large ascii $str3 = "nom=\"action\"%s%s%s%s" large ascii $str4 = "nom=\"token\"%s%s%u%s" large ascii $boundary = "--N9dLfqxHNUUw8qaUPqggVTpX- " condition large ascii nocase : n'importe laquelle de ($str*) ou $boundary}
règle M_Hunting_FASTREVERSEPROXY
{
méta :
auteur = "Mandiant"
disclaimer = "Cette règle est destinée à la chasse et n'est pas testée pour s'exécuter dans un environnement de production"
md5="19dbffec4e359a198daf4ffca1ab9165"
chaînes :
$ss1 = "Go build ID :" mot complet
$ss2 = "Go buildinf :" mot complet
$ss3 = "net/http/httputil.(*ReverseProxy)." ascii
$ss4 = "github.com/fatedier/frp/client" ascii
$ss5 = "\"port_serveur\"" ascii
$ss6 = "github.com/armon/go-socks5.proxy" ascii
condition:
uint16(0) == 0x5A4D et uint32(uint32(0x3C)) == 0x00004550 et tous
}
alert tcp any any -> any any (msg:"Possible 3CXDesktopApp malveillant identifié"; content:"raw.githubusercontent.com/IconStorages/images/main/"; threshold:type limit, track by_src, count 1, seconds 3600; sid: 99999999;)
alert tcp any any -> any any (msg:"Possible 3CXDesktopApp Identified"; content:"3cx_auth_id=%s\;3cx_auth_token_content=%s\;__tutma=true"; threshold:type limit, track by_src, count 1, seconds 3600; sid: 99999999;)
alert tcp any any -> any any (msg:"Possible 3CXDesktopApp Identified"; content:"__tutma"; threshold:type limit, track by_src, count 1, seconds 3600; sid: 99999999;)
alert tcp any any -> any any (msg:"Possible 3CXDesktopApp Identified"; content:"__tutmc"; threshold:type limit, track by_src, count 1, seconds 3600; sid: 99999999;)
Les organisations peuvent valider leurs contrôles de sécurité en utilisant les actions suivantes avec Mandiant Security Validation.
À
Nom
A106-319
Commande et contrôle - UNC4736, requête DNS, variante n° 1
A106-321
Commande et contrôle - UNC4736, requête DNS, variante n° 2
A106-323
Commande et contrôle - UNC4736, requête DNS, variante n° 3
A106-324
Host CLI - UNC4736, clé d'exécution 3CX, modification du registre
A106-322
Transfert de fichiers malveillants - UNC4736, SUDDENICON, Télécharger, Variante #1
S100-272
Évaluation : UNC4736 Mener une attaque de la chaîne d'approvisionnement ciblant le système de gestion téléphonique 3CX
Lien vers le flux RSS
Les experts Mandiant sont prêts à répondre à vos questions.
Date Domaine UNC Date Domaine UNC Date Domaine UNC ICONICSTEALER DAVESHELL SIGFLIP POOLRAT TAXHAUL COLDCAT VEILEDSIGNAL VID Nom