Cet article décrit d'abord comment le groupe OceanLotus (également connu sous les noms APT32 et APT-C-00) a récemment utilisé l'un des exploits accessibles au public pour CVE-2017-11882, une vulnérabilité de corruption de mémoire présente dans les logiciels Microsoft Office, et comment les logiciels malveillants OceanLotus parviennent à persister sans laisser aucune trace sur les systèmes compromis. Cet article décrira par la suite comment, depuis le début de 2019, le groupe utilise des archives auto-extractibles pour exécuter du code.
Contexte
Suite aux activités d'OceanLotus, nous partons en tournée dans le monde de la tromperie. Ce groupe est connu pour attirer les victimes en falsifiant des documents d'appel afin d'inciter les victimes potentielles à exécuter la porte dérobée du groupe, et il continue de proposer de nouvelles idées pour diversifier son arsenal. Les techniques utilisées pour les leurres vont des fichiers à double extension, des archives auto-extractibles et des documents aux macros activées à la réutilisation des exploits connus. De plus, ils sont très actifs et continuent sans relâche à attaquer leurs victimes préférées, les pays d'Asie du Sud-Est.
Résumé de l'exploit Equation Editor
A la mi-2018, OceanLotus a mené une campagne en utilisant des documents abusant de la faiblesse mise en évidence par la vulnérabilité CVE-2017-11882. En effet, plusieurs preuves de concept ont été mises à disposition. La vulnérabilité réside dans le composant responsable du rendu et de l'édition des équations mathématiques. L'un des documents malveillants utilisés par OceanLotus a été analysé par 360 Threat Intelligence Center (en chinois) et contient des détails sur cet exploit. Jetons un coup d'oeil à un document similaire.
Premier niveau
Ce document, FW Report on demonstration of former CNRP in Republic of Korea.doc, (SHA-1: D1357B284C951470066AAA7A8228190B88A5C7C3) est similaire à celui mentionné dans l'article ci-dessus, et également intéressant car il cible réellement les personnes intéressées par la politique cambodgienne (le CNRP - Cambodia National Rescue Party - parti politique qui a été dissous fin 2017). Malgré son extension .doc, le document est en fait au format RTF (voir Figure 1), contient de nombreux groupes de données inutiles et est également mal formé.
Malgré la présence d'éléments malformés, Word ouvre ce fichier RTF avec succès. Comme on peut le voir (Figure 2), au décalage 0xC00, il y a une structure EQNOLEFILEHDR, suivie de l'en-tête du CDMT, puis d'un enregistrement CDMT (Figure 3) pour une police.
Un débordement dans le champ name est possible, car sa taille n'est pas vérifiée avant d'être copiée. Un nom trop long déclenche la vulnérabilité. Comme on peut le voir dans le contenu du fichier RTF (décalage 0xC26 dans la Figure 2), le tampon est rempli de shellcode suivi d'un sled NOP (0x90) et de l'adresse de retour 0x402114. Cette adresse est un gadget dans EQNEDT32.exe, pointant vers une instruction RET. Il en résulte un pointage EIP au début du champ name, contenant le shellcode.
L'adresse 0x45BD3C stocke une variable qui est déréférencée jusqu'à ce qu'elle atteigne un pointeur vers la structure MTEFData, actuellement chargée. C'est là que se trouve le reste du shellcode.
Le but du shellcode est d'exécuter un deuxième shellcode, intégré dans le document ouvert. Tout d'abord, le shellcode initial essaie de trouver l’handle du fichier ouvert en itérant à travers toutes les handles du système (NtQuerySystemInformation avec l'argument SystemExtendedHandleInformation) et en vérifiant si le PID de la handle correspond au PID d'un processus WinWord et si le document a été ouvert avec la fenêtre suivante : 0x12019F. Pour confirmer qu'il a trouvé la bonne handle et non celle d'un autre document ouvert, le contenu du fichier est mappé avec la fonction CreateFileMapping et le shellcode vérifie si les quatre derniers octets du document sont « yyyy ». Cette technique est appelée Egg Hunting, c’est-à-dire chasse aux œufs. Une fois qu'il trouve une correspondance, le document est copié dans un dossier temporaire (GetTempPath) comme ole.dll. Ensuite, les 12 derniers octets du document sont lus.
Les 32 bits entre les marqueurs AABBCCDD et yyyy forment le lien vers le shellcode suivant. Il est appelé à l'aide de la fonction CreateThread. Le shellcode extrait est le même que celui que le groupe OceanLotus utilise depuis un certain temps déjà. Le script d'émulateur Python que nous avons sorti en mars 2018 fonctionne toujours pour passer à l'étape suivante.
Deuxième niveau
Extraction des composants
Les noms de fichiers et répertoires sont choisis dynamiquement. Le code sélectionne aléatoirement le nom de fichier d'un fichier exécutable ou DLL situé dans C:\Windows\system32. Il va alors interroger ses ressources et extraire le champ FileDescription pour l'utiliser comme nom de dossier. Si cela ne fonctionne pas, le code choisit aléatoirement un nom de dossier dans les répertoires %ProgramFiles% ou C:\Windows (dans GetWindowsDirectoryW). Il évite d'utiliser un nom qui pourrait entrer en conflit avec des fichiers existants en s'assurant qu'il ne contient pas : windows, Microsoft, desktop, system, system32 ou syswow64. Si le répertoire existe déjà, le nom du répertoire est ajouté de « NLS_{6 caractères}. »
La ressource 0x102 de ce niveau est analysée et les fichiers sont déposés dans %ProgramFiles% ou %AppData% dans le dossier choisi aléatoirement. Les temps de création sont modifiés pour avoir les mêmes valeurs que kernel32.dll.
Par exemple, voici un dossier et une liste de fichiers créés avec CC:\Windows\system32\TCPSVCS.exe comme source de données.
La structure de la ressource 0x102 dans le dropper est assez complexe. En bref, il comprend les informations suivantes :
- Noms de fichiers;
- Taille et contenu des fichiers compression format (COMPRESSION_FORMAT_LZNT1 utilisé par la fonction RtlDecompressBuffer);
- Format de compression (COMPRESSION_FORMAT_LZNT1 utilisé par la fonction RtlDecompressBuffer).
Le premier fichier est déposé sous TCPSVCS.exe qui est en fait le fichier AcroTranscoder.exe légitime d'Adobe (selon sa FileDescription, SHA-1 : 2896738693A8F36CC7AD83EF1FA46F82F32BE5A3).
Vous aurez peut-être remarqué que la taille de fichier de certaines DLL dépasse 11MB. C'est parce qu'un grand tampon contigu de données aléatoires est placé à l'intérieur de l'exécutable. C'est peut-être un moyen d'échapper à la détection par certains produits de sécurité.
Atteindre la persévérance
La ressource 0x101 du dropper contient deux entiers 32 bits qui dictent comment la persistance doit être implémentée. La valeur de la première spécifie comment le logiciel malveillant parviendra à la persistance sans les privilèges d'administrateur.
First integer value | Persistence mechanism |
---|---|
0 | Do not achieve persistence |
1 | Scheduled task as current user |
2 | (HKLM|HKCU)\SOFTWARE\Microsoft\Windows\CurrentVersion\Run |
3 | Creation of a shortcut file (with a .lnk extension) in the subdirectory Microsoft\Windows\Start Menu\Programs\Startup under one of the environment variables: %ALLUSERSPROFILE%, %APPDATA% or %USERPROFILE% |
La valeur du deuxième intégreur indique comment le logiciel malveillant doit essayer d'atteindre la persistance s'il fonctionne avec des privilèges élevés.
Second integer value | Persistence mechanism |
---|---|
1 | Scheduled task as administrator |
2 | Creation of a service |
Le nom de service est formé du nom de fichier sans extension; le nom d'affichage est le nom du dossier mais s'il existe déjà, la chaîne « Revision 1 » est ajoutée (le numéro est incrémenté jusqu'à ce qu'il trouve un nom non utilisé). Les opérateurs se sont assurés que la persistance à travers le service serait résiliente : en cas de panne de service, le service devrait redémarrer après 1 seconde. Ensuite, la valeur de registre WOW64 de la nouvelle clé de service est fixée à 4, ce qui indique qu'il s'agit d'un service 32 bits.
La tâche planifiée est créée via plusieurs interfaces COM : ITaskScheduler, ITask, ITaskTrigger, IPersistFile et ITaskScheduler.. Essentiellement, le logiciel malveillant crée une tâche cachée, définit les informations de compte avec l'utilisateur actuel ou les informations de l'administrateur et définit le déclencheur.
Il s'agit d'une tâche quotidienne d'une durée de 24 heures et l'intervalle entre deux exécutions est fixé à 10 minutes. En d’autres mots. elle sera exécutée en tout temps.
La part malveillante
Dans notre exemple, l'exécutable TCPSVCS.exe (AcroTranscoder.exe) est un logiciel légitime qui charge les DLL qui ont été déposées avec lui. Dans le cas présent, la Flash Video Extension.dll est la plus intéressante.
Sa fonction DLLMain n'appelle qu'une seule fonction. Quelques prédicats opaques sont présents :
Après ces vérifications trompeuses, le code reçoit la section .text de TCPSVCS.exe, change sa protection pour PAGE_EXECUTE_READWRITE et l'écrase avec des instructions qui n'ont aucun effet secondaire :
A la fin, une instruction CALL à l'adresse de la fonction FLVCore::Uninitialize(void) exportée par Flash Video Extension.dll est ajoutée. Cela signifie qu'après le chargement de la DLL malveillante, lorsque le runtime appelle WinMain dans TCPSVCS.exe, le pointeur d'instruction pointe vers le sled « NOP » qui appellera éventuellement FLVCore::Uninitialize(void), l'étape suivante.
Cette fonction crée simplement un mutex commençant par {181C8480-A975-411C-AB0A-630DB8B0A221} et suivi du nom d'utilisateur courant. Ensuite, il lit le fichier déposé avec l'extension .db3, qui contient du code indépendant de la position, et utilise CreateThread pour exécuter son contenu.
Le contenu du fichier.db3 est un shellcode couramment utilisé par OceanLotus. Encore une fois, nous avons réussi à décompresser sa charge utile en utilisant le script d'émulation que nous avons publié sur GitHub.
Le script extrait le dernier niveau. Cette composante est la porte dérobée que nous avons déjà analysée dans ce white paper : OceanLotus: Old techniques, new backdoor. Il est reconnaissable comme tel dans le GUID {A96B020F-0000-466F-A96D-A91BBF8EAC96} qui est présent dans le binaire. La configuration du logiciel malveillant est toujours chiffrée dans une ressource PE. Il contient presque la même configuration mais les serveurs C&C sont différents de ceux qui ont déjà été publiés :
- andreagahuvrauvin[.]com
- byronorenstein[.]com
- stienollmache[.]xyz
Une fois de plus, OceanLotus présente une large combinaison de techniques pour rester sous le radar. Le groupe est de retour avec une version « améliorée » de son processus d'infection. En choisissant des noms aléatoires et en remplissant des exécutables avec des données aléatoires, ils réduisent le nombre d'IoCs fiables (basées sur le hachage et les noms de fichiers). De plus, puisqu'ils utilisent le chargement latéral des DLL, les attaquants n'ont qu'à laisser tomber le binaire légitime d'AcroTranscoder tel quel.
Archives auto-extractables
Après avoir utilisé les fichiers RTF, le groupe a commencé à utiliser des archives auto-extractibles (SFX) qui utilisent des icônes de document communes pour tenter d'induire leurs victimes en erreur. Il a été brièvement documenté par Threatbook (en chinois). Lorsqu'ils sont exécutés, ces fichiers RAR auto-extractibles déposent et exécutent des fichiers DLL (avec une extension.ocx) dont la charge utile finale est celle précédemment documentée {A96B020F-0000-466F-A96D-A91BBF8EAC96}.dll. Depuis la mi-janvier 2019, OceanLotus a commencé à réutiliser la technique mais a changé de configuration avec le temps. Cette section décrit la technique et ce qu'ils ont modifié pour atteindre leur but.
Tomber dans le piège
Le document THICH-THONG-LAC-HANH-THAP-THIEN-VIET-NAM (1).EXE (signifiant « RELATION FAVORISÉE DE LA PERFORMANCE DU VIET-NAM » selon Google Translate, SHA-1: AC10F5B1D5ECAB22B7B418D6E98FA18E32BBDEAB) a été vu pour la première fois en 2018. Ce fichier SFX est astucieusement conçu, comme l'indique la description (Version Info), il s'agit d'une « image JPEG ». Le script du SFX est le suivant :
Le logiciel malveillant dépose {9ec60ada-a200-4159-b310-8071892ed0c3}.ocx (SHA-1: EFAC23B0E6395B1178BCF7086F72344B24C04DCC) ainsi que l’image de 2018 thich thong lac.jpg.
L'image du leurre est la suivante :
Vous avez peut-être remarqué que les deux premières lignes du script SFX invoquent deux fois le fichier OCX, mais ce n'est pas une erreur...
{9ec60ada-a200-4159-b310-8071892ed0c3}.ocx (ShLd.dll)
Le flux de contrôle du fichier OCX est très similaire aux autres composants OceanLotus : il y a beaucoup de séquences d'instructions JZ/JNZ et PUSH/RET entrelacées de code inutile.
Après avoir filtré le code indésirable, le DllRegisterServer d'exportation appelé par regsvr32.exe ressemble à ceci :
Fondamentalement, la première fois que le DllRegisterServer est appelé, il définit la valeur de registre HKCU\SOFTWARE\Classes\CLSID\{E08A0F4B-1F65-4D4D-9A09-BD4625B9C5A1}\Model selon un décalage codé dans la DLL (0x10001DE0).
La deuxième fois que la fonction est appelée, elle lit cette même valeur et exécute la fonction à cette adresse. De là, la ressource est lue et exécutée et de nombreuses opérations en mémoire sont exécutées.
Le shellcode est le même chargeur PE utilisé dans les campagnes OceanLotus précédentes. Il peut être imité avec notre script d'émulation de miasme. Finalement, il laisse tomber db293b825dcc419ba7dc2c49fa2757ee.dll, le charge dans la mémoire et exécute DllEntry.
La DLL récupère le contenu de sa ressource, déchiffre (AES-256-CBC) et le décompresse (LZMA). La ressource a un format spécifique qui rend la rétro-ingénierie facile.
La configuration est explicite : selon le niveau de privilège, les données binaires seront écrites soit dans %appdata%\Intel\logs\BackgroundUploadTask.cpl ou %windir%\System32\BackgroundUploadTask.cpl (ou SysWOW64 pour systèmes 64-bit).
Ensuite, la persistance est obtenue en créant une tâche nommée named BackgroundUploadTask[junk].job où un [junk] est une collection de 0x9D et 0xA0 bytes.
Le nom de l'application de la tâche est %windir%\System32\control.exe et la valeur du paramètre est le chemin du binaire vidé. La tâche cachée est définie pour être exécutée tous les jours.
Structurellement, le fichier CPL est une DLL dont le nom interne est ac8e06de0a6c4483af9837d96504127e.dll, qui exporte une fonction CPlApplet. Ce fichier déchiffre sa seule ressource {A96B020F-0000-466F-A96D-A91BBF8EAC96}.dll, puis charge cette DLL et appelle sa seule exportation, DllEntry.
Fichier de configuration de la porte dérobée
La porte dérobée a une configuration chiffrée intégrée à ses ressources. La structure du fichier de configuration est assez similaire à la précédente.
Malgré la similitude structurelle, les valeurs dans beaucoup de ces domaines ont été mises à jour en les comparant à celles de notre white paper, publié en mars 2018.
Le premier élément du tableau binaire contient une DLL (HttpProv.dll MD5: 2559738D1BD4A999126F900C7357B759) identifiée par Tencent, mais puisque le nom d'exportation a été supprimé du binaire, les hashes ne correspondent pas.
Allons plus en profondeur
Lors de la chasse aux échantillons, quelques caractéristiques sont ressorties. L'échantillon analysé vient d'apparaître vers juillet 2018 et d'autres similaires ont été trouvés très récemment de la mi-janvier à début février 2019. Le vecteur d'infection utilisé était une archive SFX déversant un document légitime, leurre et un fichier OCX malveillant.
Même si OceanLotus utilise de faux horodatages, il a été observé que les horodatages des fichiers SFX et OCX sont toujours les mêmes (0x57B0C36A (08/14/2016 @ 19:15 UTC) et 0x498BE80F (02/06/2009 @ 19:34 UTC) respectivement). Cela signifie probablement qu'ils ont une sorte de « constructeur » qui réutilise les mêmes modèles et ne fait que modifier certaines de leurs caractéristiques.
Parmi les documents que nous avons analysés depuis le début de l'année 2018, nous avons observé différents noms de documents suggérant un ciblage par pays :
- The New Contact Information Of Cambodia Media(New).xls.exe
- 李建香 (个人简历).exe (fake pdf document of a CV)
- feedback, Rally in USA from July 28-29, 2018.exe
Depuis la découverte de la backdoor {A96B020F-0000-466F-A96D-A91BBF8EAC96}.dll et son analyse publique par plusieurs chercheurs, nous avons observé certains changements dans les données de configuration du logiciel malveillant.
Tout d'abord, les auteurs ont commencé à supprimer les noms des DLL d'aide (DNSprov.dll et les deux versions de HttpProv.dll).
Puis les opérateurs ont cessé d'empaqueter la troisième DLL (deuxième version de HttpProv.dll), choisissant d'en intégrer une seule.
Deuxièmement, beaucoup de champs de configuration de la porte dérobée ont été modifiés, peut-être pour éviter la détection, depuis que de nombreux IoC sont devenus disponibles.
Les champs importants qui ont été modifiés sont les suivants :
- La clé de registre « AppX » a changé (voir IoC);
- La chaîne de codage mutex (« def », « abc », et « ghi »);
- Le numéro de port.
Enfin, toutes les nouvelles variantes analysées ont de nouveaux serveurs C&C, qui sont énumérés dans la sectionn IoCs.
Conclusion
OceanLotus est très actif et continue d'évoluer. Le groupe se concentre vraiment sur la variation de leurs outils et leurres. Ils enveloppent intelligemment leurs charges utiles de documents attrayants basés sur des événements d'actualité susceptibles d'intéresser les victimes auxquelles ils sont destinés. Ils n'arrêtent pas d'inventer des techniques différentes et même de réutiliser et de réadapter le code d'exploitation accessible au public, par exemple pour l'exploitation de l'éditeur d'équations. De plus, ils continuent d'améliorer leurs techniques pour réduire le nombre d'artefacts laissés sur les machines de leurs victimes, réduisant ainsi les chances de détection par les produits de sécurité. Comme nous l'avons montré, beaucoup d'opérations en mémoire sont impliquées, les noms de fichiers sont générés de manière aléatoire et les opérateurs OceanLotus ont modifié leurs binaires pour éviter d'être détectés. Un autre point très intéressant est que certains noms de domaine semblent provenir d'un dictionnaire. OceanLotus fait l'effort supplémentaire de continuer à mener ses campagnes, mais ne retenez pas votre souffle...
Indicateurs de compromission (IoC)
Les IoCs de ce blog, ainsi que les attributs MITRE ATT&CK, sont également disponibles dans notre répertoire GitHub.
Répertoire des clés/valeurs :
- HKCU\SOFTWARE\Classes\CLSID\{E08A0F4B-1F65-4D4D-9A09-BD4625B9C5A1}\Model
- [HKCU|HKLM]\SOFTWARE\App\
- AppXbf13d4ea2945444d8b13e2121cb6b663\
- Application
- DefaultIcon
- AppX70162486c7554f7f80f481985d67586d\
- Application
- DefaultIcon
- AppX37cc7fdccd644b4f85f4b22d5a3f105a\
- Application
- DefaultIcon
- AppXbf13d4ea2945444d8b13e2121cb6b663\
Mutexes:
- {181C8480-A975-411C-AB0A-630DB8B0A221}_ (+ username)
Domain names |
---|
aliexpresscn[.]net |
andreagahuvrauvin[.]com |
andreagbridge[.]com |
aol.straliaenollma[.]xyz |
beaudrysang[.]xyz |
becreybour[.]com |
byronorenstein[.]com |
chinaport[.]org |
christienoll[.]xyz |
christienollmache[.]xyz |
cloud.360cn[.]info |
dieordaunt[.]com |
dns.chinanews[.]network |
illagedrivestralia[.]xyz |
karelbecker[.]com |
karolinblair[.]com |
lauradesnoyers[.]com |
ntop.dieordaunt[.]com |
office.ourkekwiciver[.]com |
ourkekwiciver[.]com |
sophiahoule[.]com |
stienollmache[.]xyz |
straliaenollma[.]xyz |
ursulapapst[.]xyz |
Fichiers :
Documents exploiting CVE-2017-11882: |
---|
SHA-1 hashes |
D1357B284C951470066AAA7A8228190B88A5C7C3 |
49DFF13500116B6C085C5CE3DE3C233C28669678 |
9DF3F0D8525EDF2B88C4A150134C7699A85A1508 |
50A755B30E8F3646F9476080F2C3AE1347F8F556 |
BB060E5E7F7E946613A3497D58FBF026AE7C369A |
E2D949CF06842B5F7AE6B2DFFAA49771A93A00D9 |
ESET detection names |
Win32/Exploit.CVE-2017-11882.BU |
Win32/Exploit.CVE-2017-11882.A |
Win32/Exploit.Agent.KT |
Win32/Exploit.Agent.LT |
Win32/Exploit.CVE-2017-11882.EI |
SFX archives and OCX droppers: |
SHA-1 hashes |
AC10F5B1D5ECAB22B7B418D6E98FA18E32BBDEAB |
7642F2181CB189965C596964D2EDF8FE50DA742B |
CD13210A142DA4BC02DA47455EB2CFE13F35804A |
377FDC842D4A721A103C32CE8CB4DAF50B49F303 |
B4E6DDCD78884F64825FDF4710B35CDBEAABE8E2 |
BD39591A02B4E403A25AAE502648264308085DED |
B998F1B92ED6246DED13B79D069AA91C35637DEC |
CC918F0DA51794F0174437D336E6F3EDFDD3CBE4 |
83D520E8C3FDAEFB5C8B180187B45C65590DB21A |
EFAC23B0E6395B1178BCF7086F72344B24C04DCC |
8B991D4F2C108FD572C9C2059685FC574591E0BE |
B744878E150A2C254C867BAD610778852C66D50A |
3DFC3D81572E16CEAAE3D07922255EB88068B91D |
77C42F66DADF5B579F6BCD0771030ADC7AEFA97C |
ESET detection names |
Win32/Agent.ZUR |
Techniques MITRE ATT&CK
Tactic | ID | Name | Description |
---|---|---|---|
Initial Access | T1193 | Spearphishing Attachment | Deceitful RTF documents and self-extracting archives are sent to potential victims. |
Execution | T1204 | User Execution | The user needs to execute the self-extracting archive or open the RTF document. |
T1117 | Regsvr32 | The self-extracting archives execute regsvr32 to run the OceanLotus' backdoor. |
|
T1035 | Service Execution | The second stage of the exploit tries to run OceanLotus' backdoor as a service. | |
Persistence | T1050 | New Service | The second stage of the exploit tries to achieve persistence by creating a service. |
T1060 | Registry Run Keys / Start Folder | The second stage of the exploit tries to achieve persistence by adding a value in the Run registry key. | |
T1053 | Scheduled Task | The second stage of the exploit tries to achieve persistence by creating a schedule task. | |
Defense Evasion | T1009 | Binary Padding | The second stage of the exploit fills dropped executables with random data. |
T1073 | DLL Side-Loading | OceanLotus' backdoor is side-loaded by dropping a library and a legitimate, signed executable (AcroTranscoder). | |
T1112 | Modify Registry | OceanLotus' backdoor stores its configuration in a registry key. | |
T1027 | Obfuscated Files or Information | The second stage of the exploit drops an encrypted shellcode. | |
T1099 | Timestomp | The creation time of the files dropped by the second stage of the exploit is set to match the creation time of kernel32.dll . |
|
Discovery | T1083 | File and Directory Discovery | OceanLotus' backdoor can list files and directories. |
T1012 | Query Registry | OceanLotus' backdoor can query the Windows Registry to gather system information. | |
T1082 | System Information Discovery | OceanLotus' backdoor captures system information and sends it to its C&C server. | |
Exfiltration | T1002 | Data Compressed | OceanLotus' backdoor uses LZMA compression before exfiltration. |
T1022 | Data Encrypted | OceanLotus' backdoor uses RC4 encryption before exfiltration. | |
T1041 | Exfiltration Over Command and Control Channel | Data exfiltration is done using the already opened channel with the C&C server | |
T1203 | Exploitation for Client Execution | The RTF document includes an exploit to execute malicious code. (CVE‑2017‑11882) | |
Command And Control | T1094 | Custom Command and Control Protocol | OceanLotus' backdoor can exfiltrate data by encoding it in the subdomain field of DNS packets. |
T1065 | Uncommonly Used Port | OceanLotus' backdoor use HTTP over an uncommon TCP port (14146). Port is specified in the backdoor configuration. |