Les chercheurs d’ESET ont analysé un logiciel de rappels d’anniversaires dont des composants supplémentaires interceptent des requêtes DNS pour injecter des publicités.
L’étrange comportement d’une simple application Windows a retenu notre attention, et c’est pourquoi ESET a décidé d’analyser un logiciel malveillant qui à ce jour passait sous le radar. Après avoir reçu une question de la part du fournisseur régional de soins de santé Sykehuspartner, l’un de nos contacts au Norwegian HealthCERT nous a interrogés concernant des requêtes DNS envoyées à des domaines sous le format [0-9a-f]{60}.smoke. Il n’existe aucun domaine de premier niveau nommé .smoke (du moins était-ce le cas au moment de rédiger le présent article).
L’application responsable de ce comportement est un programme de rappels d’anniversaires très simple. Il s’agit d’un programme légitime, mais il présente des fonctionnalités intéressantes qui ne sont pas divulguées explicitement aux utilisateurs. Nous avons vu le programme de rappels d’anniversaires télécharger et exécuter des composants supplémentaires, lesquels interceptent des requêtes DNS pour injecter des publicités sur des pages Web. Nous avons baptisé cette nouvelle menace DNSBirthday.
Il est également évident que les auteurs de ce logiciel malveillant ont configuré tous les composants et ne font pas que revendre des machines compromises. Par exemple, le serveur de commande et de contrôle est le même pour tous les échantillons, et on trouve dans le logiciel malveillant de nombreuses références à un projet intitulé RQZTech.
Distribution
Nous avons constaté qu’il est uniquement possible de télécharger le logiciel d’installation du programme de rappels d’anniversaires à partir de l’adresse URL suivante :
hxxp://updates.rqztech.com/download?app=BirthdayReminder&aff_id=15124
Le paramètre aff_id suggère que la distribution s’effectue par l’intermédiaire d’un programme affilié, mais nous n’avons pas été en mesure de le confirmer. Il pourrait également s’agir d’un leurre.
La technologie de télémétrie d’ESET démontre que cette menace est présente dans le monde entier, mais qu’elle touche particulièrement certains pays comme les États-Unis, l’Espagne, le Japon et l’Italie.
Analyse technique
DNSBirthday consiste en un logiciel malveillant modulaire formé de plusieurs composants. Il nous a fallu un certain temps pour assembler toutes les pièces du casse-tête et comprendre l’ensemble du mécanisme sur lequel repose le fonctionnement de ce logiciel malveillant. Tous les composants partagent certaines caractéristiques communes :
- Ils communiquent avec un seul serveur de commande et de contrôle (rqztech.com) à l’aide de messages JSON formatés sur HTTPS.
- La plupart des objets binaires sont liés de façon statique avecOpenSSL et libcurl, ainsi qu’avec une bibliothèque JSON.
- La plupart des noms des composants débutent par le préfixerqz.
- Les chemins d’accès PDB des composants prennent la forme suivante :C:\Users\default.default-PC\Documents\Visual Studio 2013\Projects\rqz-[module-name]\Release\rqz-[module-name].pdb.
Les auteurs ont choisi d’épingler deux certificats afin de prévenir les attaques par hôte interposé. Cependant, le serveur a répondu aux requêtes HTTP non chiffrées; il était donc possible de capturer le trafic du réseau lors du débogage en remplaçant le schéma URL de ces requêtes par http.
Les certificats intégrés aux exécutables sont autosignés. Le champ Not-before indique qu’ils ont probablement été générés le 16 avril 2016.
Nous étudierons en détail chaque composant, mais d’abord, voici un aperçu de la façon dont ils sont liés.
Même si tous les composants sont des exécutables PE, seuls certains sont écrits sur le disque. Les autres sont chargés et exécutés en mémoire à l’aide d’un chargeur au format PE personnalisé.
BirthdayReminderSetup.exe.
BirthdayReminderSetup.exe consiste en un paquet NSIS de 18 Mo. Ce programme d’installation détermine d’abord la version du système d’exploitation (32 ou 64 bits), puis il extrait plusieurs fichiers qu’il dépose dans le dossier d’installation spécifié en conséquence.
Par la suite, il assure une certaine cohérence en créant la valeur BirthdayReminder dans la clé de registre HKLM\Software\Microsoft\Windows\CurrentVersion\Run , ainsi que le chemin d’accès à l’application BRController.exe. Après tout, comment pourrait-il vous envoyer des rappels d’anniversaires s’il ne fonctionne pas en permanence? Il possède même une icône dans la zone de notification de votre ordinateur.
BRController.exe — rqz-loader
Le composant BRController.exe a pour seul objectif de déchiffrer le fichier br.dll.enc en mémoire, de le charger et d’appeler rqz_stg1_init, l’une de ses fonctions exportées.
L’algorithme de déchiffrement utilisé est AES-256-CBC, mis en œuvre par l’intermédiaire d’une bibliothèque OpenSSL liée de façon statique.
La clé de déchiffrement est générée en deux étapes. D’abord, l’empreinte numérique SHA-256 du fichier logo.png est générée. Ensuite, une simple opération de chiffrement XOR (opérateur booléen OU exclusif) est appliquée à l’empreinte numérique. Le premier octet est lié par chiffrement XOR au dernier, tandis que tous les autres octets sont liés de la même façon au premier.
Le vecteur d’initialisation (VI) représente les 16 premiers octets de la clé, qui sont ensuite remaniés selon la même opération de chiffrement XOR utilisée pour la clé.
br.dll — rqz-stg1
Nous nommons br.dll la forme non chiffrée du fichier br.dll.enc. Cette bibliothèque agit en tant que composant principal de ce logiciel malveillant.
D’abord, br.dll crée un mutex Global\Global\RqzSingleInst,puis il crée une liste d’objets nommés de façon explicite (p. ex., dlExec, loader ou même exfil). Ces objets, lorsqu’ils sont appelés, peuvent effectuer des tâches comme télécharger des fichiers exécutables, les enregistrer sur le disque et les exécuter, ou encore exfiltrer des données vers le serveur de commande et de contrôle.
Le composant récupère un identifiant de robot unique codé en dur dans l’exécutable BRController en recherchant la séquence d’octets 0xB00B1355, puis en lisant les 16 octets suivants. Ensuite, il tente de lancer l’interface utilisateur graphique de l’application de rappels d’anniversaires et entre dans une séquence en boucle pour communiquer avec son serveur de commande et de contrôle.
La première requête HTTP POST envoyée au serveur
(hxxps://updates.rqztech.com/update_check/) contient certains renseignements de base au format JSON. Ces derniers apparaissent dans le paramètre de données.
Voici une version épurée de la première requête POST envoyée au serveur de commande et de contrôle :
1 2 3 4 5 6 7 |
<span style="font-weight: 400; font-family: 'courier new', courier, monospace;">{</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> "compStatus": [],</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> "ver": "1.1.0-x32",</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> "osver": "Windows 7 HomeBasic -unknown- x32",</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> "uuid": "7cbf93f588f70f6cf514666dfb8d36d34943dd924c7bb7a5372a5ae765de2009",</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> "checkinCount": 0</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;">}</span> |
Ce fichier JSON contient la version du logiciel malveillant ver, 1.1.0-x32), la version de Windows (osver), l’identifiant du robot (uuid), le nombre de fois que le logiciel malveillant a tenté de communiquer avec le serveur (checkinCount), ainsi qu’un tableau affichant l’état du dernier composant chargé (compStatus).
Le serveur répond avec un tableau JSON contenant une liste de paramètres à transmettre aux différents composants. Même si la requête ressemble à une opération de mise à jour logicielle, nous avons constaté qu’elle sert à introduire des composants malveillants dans les ordinateurs des victimes.
La première fois que le logiciel malveillant communique avec le serveur, ce dernier répond en lui envoyant le fichier JSON suivant (la chaîne payload a été tronquée afin d’améliorer la lisibilité).
Réponse du serveur de commande et de contrôle :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
<span style="font-weight: 400; font-family: 'courier new', courier, monospace;">[</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> {</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> "args": {</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> "exit": "0",</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> "env": "RQZ_SESSIONID=58a72526b10d8e000aef05d7;",</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> "sleepTime": "28800000"</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> },</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> "component": "callback"</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> }, {</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> "args": {</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> "pname": "rqz_info_gatherer",</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> "payload": "+j5kXRAtalG4PNEwXrhX [...] nhG0JfKbF7OzmcE7ULfiwm1Sg=="</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> },</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> "component": "loader",</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> "exec": "1"</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> }, {</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> "args": {},</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> "component": "rqz_info_gatherer",</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> "exec": "1"</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> }</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;">]</span> |
La réponse du serveur indique que trois actions à exécuter successivement. La première définit certaines variables de l’environnement à l’aide du composant callback.
Le composant loader est ensuite appelé afin de déchiffrer et de charger le composant rqz_info_gatherer en mémoire. La chaîne payload est une bibliothèque de liens dynamiques (DLL) chiffrée et encodée en base64 (rqz_info_gatherer). L’opération de déchiffrement est la même que celle effectuée pour déchiffrer le fichier br.dll.enc.
Une fois chargé, le composant récemment déchiffré est appelé.
Par la suite, le logiciel malveillant demeure en veille pendant huit heures.
rqz-info-gatherer
L’objectif de ce module consiste à recueillir des renseignements sur la machine et à envoyer un rapport à l’aide du composant exfil à partir du module br.dll.
Le composant exfil envoie une requête HTTPS POST à hxxps://updates.rqztech.com/update_report/ avec le robot uuid et le paramètre payload. Le paramètre payload consiste en un objet JSON formé de deux éléments : data et sha256.
La chaîne sha256 représente l’empreinte numérique des données avant qu’elles ne soient encodées en base64.
La chaîne data est un fichier JSON encodé en base64 qui contient des renseignements sur l’ordinateur. Le fragment de code suivant est un exemple de rapport décodé envoyé au serveur (la chaîne procStat est tronquée afin d’améliorer la lisibilité).
Exemple de rapport créé par le module rqz-info-gatherer :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
<span style="font-weight: 400; font-family: 'courier new', courier, monospace;">{</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;">"infoGatherer": {</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> "defaultBrowser": "FIREFOX.EXE",</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> "firewallEnabled": 1,</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> "winBuild": "Windows 7Home Basic - unknown - x32",</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> "dirStat": {</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> "appData": 275865504,</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> "webTemp": 109159833,</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> "docu": 1679,</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> "desktop": 66397544</span> <span style="font-weight: 400;"> <span style="font-family: 'courier new', courier, monospace;"> },</span></span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> "infoGathererVersion": "1.0.4",</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> "procStat": "[System Process],System,smss.exe, [...]firefox.exe,audiodg.exe,",</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> "installDate": 0,</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> "dotNetVer": "3.5.30729.5420;3.0.30729.5420;2.0.50727.5420",</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> "ieVer": "8.0.7601.17514",</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> "oemLogo": "0",</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> "uptime": 13771487,</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> "permCheckSuccess": "1"</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> }</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;">}</span> |
La plupart de ces champs s’expliquent facilement. L’objet dirStat contient la taille en octet de certains dossiers.
Une fois envoyé, le serveur répond tout simplement danke (« merci » en allemand), ce qui, étrangement, correspond au nom de champ de pays dans le certificat public.
rqz-dnsduvel-ldr
Nous avons également noté qu’après une certaine période (une ou deux semaines), le composant br.dlltélécharge le composant rqz-dnsduvel-ldr. Le terme duvel signifie « diable » en (ancien) néerlandais et en frison. Par conséquent, le nom de ce composant veut probablement dire « DNS diabolique ».
Ce composant recherche des processus de navigateur tels que iexplore.exe, chrome.exe et firefox.exe afin d’y introduire du code malveillant.
Lorsqu’il trouve un processus, le module installe et exécute un fichier exécutable intégré dans le dossier %TEMP% (GetTempPathA). Le nom du fichier représente l’identifiant du processus dans lequel le code malveillant sera introduit, accompagné de l’extension .tmp. Cela signifie que pour chaque processus de navigateur à infecter, une copie de l’exécutable est déposée sous forme de fichier .TMP dans le dossier temporaire.
L’objet binaire déposé utilise le nom interne rqz-dnsduvel-ldr-exe,et l’identifiant du processus à infecter et un identifiant de session y sont attribués en tant que paramètres.
rqz-dnsduvel-ldr-exe
Ce composant est un injecteur qui utilise une injection de DLL par réflexion pour charger une bibliothèque de liens dynamiques dans l’espace d’adressage d’un autre processus.
Cet exécutable contient un autre exécutable, mais contrairement au module rqz-dnsduvel-ldr, l’objet binaire intégré est chiffré. Encore une fois, l’opération de déchiffrement emploie l’algorithme AES-256-CBC, mais cette fois, le VI et la clé sont figés.
L’injecteur communique avec le serveur pour obtenir un fichier de configuration. Cette demande est effectuée par l’intermédiaire d’une requête HTTPS POST envoyée à :
hxxps://updates.rqztech.com/update_report/?update=fdac34d
Les paramètres POST sont, encore une fois, uuid et payload. De même,payload représente un objet JSON doté d’un paramètre data et d’une clé sha256. La chaîne data représente le fichier JSON encodé en base64 suivant, où procNamedésigne le navigateur à infecter et où sessionID correspond au témoin défini par le deuxième argument de la ligne de commande.
Exemple de rapport produit par le module rqz-dnsduvel-ldr-exe :
1 2 3 4 5 6 7 8 |
<span style="font-weight: 400; font-family: 'courier new', courier, monospace;">{</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> "duvel": {</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> "procName": "chrome.exe",</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> "loaderVer": "rqz-dnsduvel-ldr-exe-1.0.4-x64",</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> "duvelVer": "rqz-dnsduvel-1.0.3-68c0c5",</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> "sessionId": "[...]"</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> }</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;">}</span> |
Le serveur répond en envoyant le fichier de configuration JSON suivant (le tableau blockList est tronqué afin d’améliorer la lisibilité).
Exemple de fichier de configuration généré pour le module rqz-dnsduvel-ldr-exe :
1 2 3 4 5 6 7 8 9 10 11 |
<span style="font-weight: 400; font-family: 'courier new', courier, monospace;">{</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> "duvelDetails": {</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> "token": "be1728523f82428fc2016155f6dd65867b01997dc0b1c93097a8b7cc60cb.smoke",</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> "dnsServer": "176.31.106.50",</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> "blockList": [</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> "redirect.viglink.com",</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> ...,</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> "be1728523f82428fc2016155f6dd65867b01997dc0b1c93097a8b7cc60cb.smoke"</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> ]</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> }</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;">}</span> |
Toute la configuration, accompagnée d’une liste de blocage exhaustive, est accessible sur la page Github d’ESET.
Le tableau blockList contient environ 500 noms de domaines qui hébergent habituellement des publicités. Le contenu de cette configuration est stocké dans un fichier de mappage sauvegardé en mémoire et nommé rqzduvel-checkin-payload. Il a été créé à l’aide de la commande CreateFileMapping(INVALID_HANDLE_VALUE, …).
Le champ token contient un nom de domaine utilisé par le logiciel malveillant pour vérifier si le serveur DNS employé correspond à la valeur du champ dnsServer. DNSBirthday interroge ce domaine et vérifie si l’adresse retournée est bien 127.0.0.1.
Le module récupère l’exportation ReflectiveLoader dans l’objet binaire déchiffré (rqz-dnsduvel) et associe la bibliothèque à l’espace d’adressage du navigateur à l’aide de la commande WriteProcessMemory. Il appelle ensuite la fonction CreateRemoteThread , après avoir défini le paramètre lpStartAddress selon l’adresse de l’exportation récupérée.
Après l’injection, le composant informe le serveur de commande et de contrôle de la réussite de l’opération par l’intermédiaire d’une requête POST envoyée à : hxxps://updates.rqztech.com/moduleapi/
Le résultat de l’injection est envoyé au serveur de commande et de contrôle de la façon suivante :
1 2 3 4 5 6 7 8 9 10 |
<span style="font-weight: 400; font-family: 'courier new', courier, monospace;">{</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> "password" : "74f20fc0a7274",</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> "duvel" : {</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> "function": "smokeFail",</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> "arg" : {</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> "smokeUrl" : "be1728523f82428fc2016155f6dd65867b01997dc0b1c93097a8b7cc60cb.smoke",</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> "reason" : "1"</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> }</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> }</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;">}</span> |
La chaîne reason peut contenir les valeurs suivantes :
- L’objet binaire n’est pas parvenu à ouvrir le processus du navigateur sur l’ordinateur de la victime.
- L’injection a réussi (le processus est toujours en cours d’exécution après une minute).
- Le processus a probablement échoué, ainsi que l’injection.
rqz-dnsduvel
Le composant rqz-dnsduvel s’active en dernier; son objectif consiste à intercepter les fonctions du résolveur DNS.
Les auteurs ont probablement emprunté du code afin d’effectuer l’injection de DLL par réflexion. Ils ont également lié de façon statique le projet NTHooklib, lequel comprend la bibliothèque udis86. NTHooklib consiste en une bibliothèque qui fournit un moteur d’interception.
Le composant intercepte les fonctions DNS suivantes :
- getaddrinfo
- GetAddrInfoW
- gethostbyname
- GetAddrInfoEx
L’objectif de cette interception consiste à interroger un autre serveur DNS lorsque la requête s’adresse à un nom de domaine qui figure dans la « liste de blocage » du fichier de configuration.
Chaque fois que le navigateur infecté doit résoudre l’un de ces noms de domaine, le serveur désigné dans le champ dnsServer est utilisé (176.31.106.50 dans ce cas-ci). Tandis que nous étudiions le comportement de DNSBirthday, nous avons constaté que peu importe le nom de domaine interrogé, l’adresse IP générée par le serveur DNS frauduleux était toujours 188.214.30.97 ou 188.214.30.98.
Le fragment de code suivant est une boucle qui remplace toutes les réponses provenant de la véritable fonction getaddrinfo; cette boucle présente l’adresse IP générée par le serveur frauduleux.
Injection de publicités
Comme nous l’avons déjà mentionné, les noms de domaine qui figurent sur la « liste de blocage » sont liés à des publicités, ce qui nous amène à penser que l’objectif principal de ce logiciel malveillant est de remplacer ou d’introduire des publicités sur des pages Web.
Lorsqu’il reçoit des requêtes pour des fichiers .js, le serveur à l’adresse 188.214.30.97 génère toujours le même fichier. Le script ajoute un élément div accompagné de l’identifiant greenteainthesahara. Ensuite, il envoie une requête HTTP POST à l’adresse URL hxxp://ads.greenteamedia.net/ads et évalue (eval) simplement la réponse.
Le fichier JavaScript que nous avons étudié sur ads.greenteamedia.net contient du code pour différents navigateurs et plateformes et même, étrangement, pour des téléphones mobiles. L’objectif principal de ce script consiste à ajouter sur la page un récepteur d’événements qui, au premier clic, ouvre une nouvelle fenêtre de navigation affichant une publicité.
Voici un exemple de chaîne de redirection que nous avons pu observer.
- hxxp://ads.greenteamedia.net/tracker?id=58b87f2a2a61cf000a11f651&type=Popunder
- hxxp://go.oclaserver.com/afu.php?zoneid=788473
- hxxp://onclkds.com/afu.php?zoneid=788473
- hxxp://onclkds.com/?r=/mb/han&zoneid=788473&pbk2=fd0ac8ee88f5760db27385dc91765d976393347937513284046&auction_id=b322d474-a5bc-4757-bb28-6613427bd3e8&uuid=fffa3dff-f018-412b-95a9-1a9e915fa972&ad_scheme=1&ab=148&rotation_type=2&adparams=bm9qcz0w&x=1698&y=822&sw=1716&sh=927&wx=0&wy=0&ww=1716&wh=887&wiw=1698&wih=822&wfc=0&pl=http://onclkds.com/afu.php?zoneid=788473&drf=&np=0&pt=undefined&nb=1&ng=1&dm
Le reste de la chaîne change et dépend probablement du résultat de l’offre publicitaire. Parfois, la chaîne crée une redirection vers une page de téléchargement susceptible d’introduire encore plus de codes malveillants.
Conclusion
Les auteurs de ce maliciel se sont donné beaucoup de mal simplement pour introduire des publicités indésirables.
Comme nous l’avons démontré, les auteurs ont déployé de nombreux efforts pour éviter d’être détectés, en intégrant un chargeur PE, en chargeant et en déchiffrant des composants en mémoire, en créant une architecture modulaire qui permet la mise à jour et l’ajout d’autres composants, ainsi qu’en utilisant une clé publique épinglée pour sécuriser leurs communications.
Néanmoins, certains de leurs choix nous laissent perplexes :
- Les versions récentes de certains composants contiennent le chemin d’accès.pdb, absent dans les anciennes versions.
- La plupart des composants ne sont pas écrits sur le disque, mais la phase finale(rqz-dnsduvel-ldr-exe) l’est.
- Le composantrqz-dnsduvel-ldr-exe se sert d’une clé et d’un VI figés au lieu de les tirer de l’empreinte numérique du fichier png.
En raison de sa modularité, ce logiciel malveillant cache peut-être d’autres fonctionnalités que nous n’avons pas encore observées. Il est possible que les opérateurs de ce logiciel malveillant envoient d’autres types de codes malveillants comme des logiciels espions à leurs victimes. Certains composants sont peut-être en développement à l’heure actuelle.
Nous avons communiqué avec OVH concernant le serveur de commande et de contrôle et le serveur DNS frauduleux, et tous deux ont été démantelés.
Un grand merci à Romain Dumont pour son aide avec l’analyse technique du logiciel malveillant et la rédaction de ce billet.
Annexes
Échantillons analysés
Nom de fichier | Nom interne | Versions analysées | Date et heure du débogage | Objectif principal |
BRController.exe | rqz-loader | 1.1.0 x32 et x64 | Dim. 2 oct. 2016 16:11:40 | Chargeur :
Déchiffre et charge br.dll.enc en mémoire |
BRController.exe (debug) | Inconnu | Inconnu x32 et x64 | Inconnu | Chargeur :
Déchiffre et charge br.dll.enc en mémoire |
br.dll(.enc) | rqz-stg1 | 1.0.4 x32 et x64
1.1.0 x32 et x64 |
Inconnu
Dim. 2 oct. 2016 16:12:07 |
Composant principal :
Communique avec le serveur de commande et de contrôle Exfiltre des données Met à jour et télécharge d’autres composants Télécharge et exécute d’autres modules en mémoire |
rqz-info-gatherer | 1.0.4 x32 et x64 | Mardi 13 sept. 2016 23:25:43 | Module :
Recueille des renseignements sur l’ordinateur |
|
rqz-dnsduvel-ldr | 1.0.4 x32 et x64 | Sam. 17 sept. 2016 19:55:10 | Module :
Installe et exécute rqz-dnsduvel-ldr-exe pour chaque processus de navigateur |
|
%d.tmp | rqz-dnsduvel-ldr-exe | 1.0.3 x32 et x64
1.0.4 x32 et x64 |
Sam. 3 sept. 2016 19:02:11
Sam. 17 sept. 2016 19:54:36 |
Injecteur :
Injecte un processus donné avec sa bibliothèque de liens dynamiques intégrées (rqz-dnsduvel) |
rqz-dnsduvel | 1.0.2-30fa39 x32 et x64
1.0.3-68c0c5 x32 et x64 |
Sam. 3 sept. 2016 19:01:51
Sam. 17 sept. 2016 19:53:50 |
Intercepteur DNS :
Intercepte les fonctions DNS à l’intérieur d’un processus Remplace l’adresse IP de certains noms de domaine |
Indicateurs de compromissions
Registre
- “HKLM\Software\Microsoft\Windows\CurrentVersion\Run\BirthdayReminder”
Mutex
- Global\Global\RqzSingleInst
- Global\downloadExec
Empreintes numériques
Composant | SHA-1 | Noms répertoriés par ESET |
BirthdayReminderSetup.exe | 6a07de60da0962ee952e63ac89ce86d2581f3926 | Win32/Adware.DNSBirthday.A |
rqz-loader 1.1.0 x32 | 19041323a4ecd92eb888664e1d2c0b2893419f78 | Win32/Adware.DNSBirthday.A |
rqz-loader 1.1.0 x64 | 94c6f2bbad0ce47957d18b53ef1938d846d7576f | Win64/Adware.DNSBirthday.B |
rqz-stg1 1.1.0 x32 | 59eb5b5d3171069761a13389a1a7cce12a95e0bd | Win32/Adware.DNSBirthday.A |
rqz-stg1 1.1.0 x64 | f02e0012aedf02f898f1558c827491d7099c1d62 | Win64/Adware.DNSBirthday.A |
rqz-info-gatherer 1.0.4 x32 | 8cfbd1f7e4d8c4357766f0f4b84bb08cf2e78c17 | Win32/Adware.DNSBirthday.B |
rqz-info-gatherer 1.0.4 x64 | 0f4aeee1a0878eb510229b871e02eb1e1939107e | Win64/Adware.DNSBirthday.B |
rqz-dnsduvel-ldr 1.0.4 x32 | 892785875fcdfe4cc672ba1c3fc59bfbf37c7efe | Win32/Adware.DNSBirthday.A |
rqz-dnsduvel-ldr 1.0.4 x64 | 5a5174739bbb7881c46112704cbf039f39d98fec | Win64/Adware.DNSBirthday.B |
rqz-dnsduvel-ldr-exe 1.0.4 x32 | cc291be6cbc7b0dc3aa09973d0ed98e363f9083f | Win32/Adware.DNSBirthday.A |
rqz-dnsduvel-ldr-exe 1.0.4 x64 | ce84d96a974e95499fadd3320f851c0b728cd438 | Win64/Adware.DNSBirthday.B |
rqz-dnsduvel 1.0.3-68c0c5 x32 | e6b6fe919cf6c3af0d40594e86da4cf776dbcf9a | Win32/Adware.DNSBirthday.B |
rqz-dnsduvel 1.0.3-68c0c5 x64 | d1085fb7f2c4d1add9244cb8af6d0e25b50d7b14 | Win64/Adware.DNSBirthday.B |
Puisque BirthdayReminderSetup.exe et BRController.exe contiennent un identifiant de robot unique, voici certaines empreintes numériques ssdeep floues :
Composant | ssdeep |
BirthdayReminderSetup.exe | 393216:ZD4b8Ev/xl3OB4fcUx6uj55/Q7COLc1cm+DkC1GWF2jazuIYRCxEfFCqgY9iHtKZ:ZD5EhFOmcUs85/OCOLecm+14OzzY9Fdl |
BRController.exe (x86) | 24576:0+KpP0PYnsKdFCH6BMKHiBMikwMbSyM52it6YTekcys4e6faNe0M4RzRPxM4TuZR:cfs4F6KHiy7kM4CjlpRPx1TuZ+tgP8K |
BRController.exe (x64) | 49152:l4+VwASOwGtlqKPb8KHh+3ulMrqkvTiV3ML3OsQXIU6inTe2mEPEB:jCTiVGV+q2mHB |
Réseau
- Serveur DNS frauduleux :31.106.50
- Serveurs de commande et de contrôle :rqztech.com (188.165.205.99)
- Adresses IP du serveur publicitaire :214.30.97 et 188.214.30.98
- Requête DNS envoyée au domaine nommé[0-9a-f]{60}.smoke
Certificats SSL
358bb04f6a0bf8ce88d23b2e620ac01b28d307ab80286f6ee2dcc484a6b1a5d0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 |
<span style="font-weight: 400; font-family: 'courier new', courier, monospace;">Certificate:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> Data:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> Version: 3 (0x2)</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> Serial Number:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> d7:f9:78:6e:63:d2:7f:f4</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> Signature Algorithm: sha256WithRSAEncryption</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> Issuer: C=DE, ST=Berlin, CN=rqztech.com</span> <span style="font-weight: 400;"> <span style="font-family: 'courier new', courier, monospace;"> Validity</span></span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> Not Before: Apr 16 11:38:38 2016 GMT</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> Not After : Apr 14 11:38:38 2026 GMT</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> Subject: C=DE, ST=Berlin, CN=rqztech.com</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> Subject Public Key Info:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> Public Key Algorithm: rsaEncryption</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> RSA Public Key: (4096 bit)</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> Modulus (4096 bit):</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> 00:c3:11:ec:01:27:60:d1:d3:92:53:c3:06:31:ca:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> f9:82:7a:57:7b:17:d3:a6:61:8e:57:ad:e9:d2:9d:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> cb:40:1e:32:de:e7:3c:79:eb:c5:cc:f7:78:af:d3:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> a0:43:54:28:e1:0d:ba:69:56:ea:d9:03:dd:c8:41:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> 5f:8d:12:3e:23:85:94:73:d9:83:db:90:83:35:60:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> 6a:c5:96:77:7c:3c:04:9d:05:5b:4d:15:9e:5c:54:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> ea:dd:1a:03:4d:db:8a:56:b3:f9:ee:12:89:01:b0:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> d0:79:bb:c1:5d:55:9b:e4:3d:a5:91:0e:fc:36:2f:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> 91:51:0c:d1:6f:47:5f:18:76:fd:01:71:df:55:60:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> f9:ba:82:66:6d:08:51:81:4e:02:67:74:ba:6c:37:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> b4:02:bf:cf:3d:07:16:c8:2d:9f:77:85:9a:b9:21:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> e7:06:d2:de:4d:40:18:2b:60:3a:83:7f:d4:a8:2b:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> 6f:4f:ee:ab:db:27:93:02:10:62:74:58:6a:82:71:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> d6:4c:89:3d:03:19:4a:5b:b4:c9:15:11:21:ea:ce:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> 99:5a:bf:ee:d6:53:cc:31:ee:06:42:96:38:5f:98:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> 0a:27:c5:e1:a0:86:47:3b:d1:ec:e2:99:28:b4:4e:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> 45:88:b4:20:4d:67:2b:40:94:43:08:8c:ca:96:a2:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> ec:08:c0:79:ef:e0:52:21:d4:44:03:c1:b5:bd:09:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> b7:ee:a7:4b:7b:8a:0d:12:4c:84:05:31:66:08:03:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> b2:cc:d0:42:13:7a:a5:24:fe:0d:aa:4f:aa:5d:d2:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> f1:4a:55:87:72:31:7e:74:db:b0:cb:a2:5f:88:80:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> 56:40:33:49:6e:e8:cf:56:99:57:41:54:12:19:71:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> b3:3d:bd:66:f3:b1:61:15:f9:81:de:a5:6b:8d:c5:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> 4b:e5:8d:62:e5:bf:7d:f0:98:c8:24:bd:c7:fa:55:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> b2:ac:09:e7:fb:83:f4:87:25:f3:04:07:f8:de:23:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> b9:8e:68:09:e7:5c:9e:51:66:d6:c7:36:55:0c:1f:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> e0:7c:ed:62:a5:47:fd:dd:c0:8d:ad:46:66:b1:80:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> 2f:03:0e:06:25:2d:98:58:37:fc:48:70:8b:67:83:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> 69:7f:39:03:36:79:e3:d0:db:83:d1:ad:fd:ba:8d:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> 9c:7a:81:67:5e:af:97:37:58:e1:a4:9e:31:65:ab:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> 47:b7:a0:eb:c6:70:de:7f:40:18:42:d9:06:d3:30:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> 17:87:a8:84:c5:9a:9e:48:41:b9:11:0f:94:27:c9:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> 5e:a1:26:47:5c:c7:42:d7:c3:0f:08:ae:7a:ba:32:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> 76:22:f0:14:5d:03:9f:f0:4f:63:3f:a1:4c:d7:e0:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> 44:0a:31</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> Exponent: 65537 (0x10001)</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> X509v3 extensions:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> X509v3 Subject Key Identifier:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> 1B:4C:10:58:D0:62:AD:4E:A2:43:C2:9A:81:F3:59:F6:B3:2F:B1:C1</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> X509v3 Authority Key Identifier:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> keyid:1B:4C:10:58:D0:62:AD:4E:A2:43:C2:9A:81:F3:59:F6:B3:2F:B1:C1</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> X509v3 Basic Constraints:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> CA:TRUE</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> Signature Algorithm: sha256WithRSAEncryption</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> 3f:b4:9b:47:b2:99:a0:90:d5:75:34:c7:a2:87:1d:90:4e:6c:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> a5:ce:59:76:68:8f:a1:17:9f:2e:0e:45:31:a6:0e:92:66:03:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> 61:b9:61:e7:20:1e:d0:aa:97:ce:bf:1e:d7:d4:9c:f2:78:a0:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> 99:62:1e:97:65:1c:d3:f8:b7:fb:a1:a7:23:62:32:ad:f2:72:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> 1c:85:08:ab:71:60:2b:44:91:9a:bd:82:42:1f:8f:1f:fe:b9:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> 39:2b:45:9d:11:7b:53:73:8f:2c:16:f6:95:f1:25:58:6d:8b:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> 01:61:67:17:b6:02:b1:6a:00:48:8c:a7:59:d4:d5:3c:d1:57:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> 7a:9a:4b:dd:8e:db:05:a0:f7:c0:19:10:87:b7:3a:55:34:5f:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> b4:c8:15:ec:17:5f:c1:c1:7b:5c:cb:53:ef:c3:bf:0c:1b:f6:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> a3:8d:3a:5e:72:e5:49:7f:6a:37:0c:fc:7c:f6:54:4f:9f:b9:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> 37:f5:57:73:25:ed:62:9b:41:38:e8:a6:08:11:ad:c1:1a:af:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> 65:94:6c:0b:cc:5b:27:1a:cd:80:bd:ea:f9:a0:a2:c0:e5:bc:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> cb:fd:3a:8c:82:85:0e:5a:0a:04:88:86:f7:10:38:2d:65:30:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> 18:c2:3c:a6:07:90:6c:d6:21:78:68:28:5a:b8:ca:44:c1:2c:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> 15:53:92:0b:a7:b8:bb:e3:d8:27:85:d4:c1:5f:a9:e8:32:95:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> d7:a7:98:4b:b5:db:48:e0:e8:5c:28:94:5d:d9:b3:af:74:48:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> e2:45:72:c1:34:8a:95:6e:a3:81:1e:8b:ad:47:fb:01:70:18:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> c1:25:77:da:97:27:b5:90:76:7d:3f:3e:78:2d:a9:31:f9:c3:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> 85:6f:ae:a1:5d:e3:34:a2:c4:2d:25:6e:45:ba:2b:fb:ad:0d:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> d2:e5:d2:fe:6a:13:3c:64:c0:ce:fd:72:e5:83:11:88:84:c0:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> 5f:c3:6a:b1:e9:a0:aa:8b:a1:29:de:c6:3d:5e:36:78:bc:4b:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> 94:e7:91:49:30:2f:83:c3:34:38:e9:3b:9d:2e:cb:51:da:75:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> 93:7f:78:1e:00:89:d8:bf:d8:ca:69:9d:45:92:b0:57:ed:cc:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> c1:13:ab:07:a3:23:ee:39:65:a1:b5:74:e9:6a:3b:77:22:0d:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> 13:83:ea:b5:cc:51:d0:d3:fa:ce:2a:e5:0e:37:61:e1:a6:fb:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> 1f:b6:de:c6:84:f6:77:8b:69:98:64:af:42:e5:88:63:68:55:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> 41:98:39:e9:20:eb:2e:f8:57:b0:8e:aa:e4:45:90:88:8d:8f:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> c4:a1:f2:29:99:58:62:53:8e:64:88:ed:2b:5b:23:55:14:0d:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> 4a:4a:5f:9a:b2:b1:64:59</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;">-----BEGIN CERTIFICATE-----</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;">MIIFOzCCAyOgAwIBAgIJANf5eG5j0n/0MA0GCSqGSIb3DQEBCwUAMDQxCzAJBgNV</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;">BAYTAkRFMQ8wDQYDVQQIDAZCZXJsaW4xFDASBgNVBAMMC3JxenRlY2guY29tMB4X</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;">DTE2MDQxNjExMzgzOFoXDTI2MDQxNDExMzgzOFowNDELMAkGA1UEBhMCREUxDzAN</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;">BgNVBAgMBkJlcmxpbjEUMBIGA1UEAwwLcnF6dGVjaC5jb20wggIiMA0GCSqGSIb3</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;">DQEBAQUAA4ICDwAwggIKAoICAQDDEewBJ2DR05JTwwYxyvmCeld7F9OmYY5XrenS</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;">nctAHjLe5zx568XM93iv06BDVCjhDbppVurZA93IQV+NEj4jhZRz2YPbkIM1YGrF</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;">lnd8PASdBVtNFZ5cVOrdGgNN24pWs/nuEokBsNB5u8FdVZvkPaWRDvw2L5FRDNFv</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;">R18Ydv0Bcd9VYPm6gmZtCFGBTgJndLpsN7QCv889BxbILZ93hZq5IecG0t5NQBgr</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;">YDqDf9SoK29P7qvbJ5MCEGJ0WGqCcdZMiT0DGUpbtMkVESHqzplav+7WU8wx7gZC</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;">ljhfmAonxeGghkc70ezimSi0TkWItCBNZytAlEMIjMqWouwIwHnv4FIh1EQDwbW9</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;">Cbfup0t7ig0STIQFMWYIA7LM0EITeqUk/g2qT6pd0vFKVYdyMX5027DLol+IgFZA</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;">M0lu6M9WmVdBVBIZcbM9vWbzsWEV+YHepWuNxUvljWLlv33wmMgkvcf6VbKsCef7</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;">g/SHJfMEB/jeI7mOaAnnXJ5RZtbHNlUMH+B87WKlR/3dwI2tRmaxgC8DDgYlLZhY</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;">N/xIcItng2l/OQM2eePQ24PRrf26jZx6gWder5c3WOGknjFlq0e3oOvGcN5/QBhC</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;">2QbTMBeHqITFmp5IQbkRD5QnyV6hJkdcx0LXww8Irnq6MnYi8BRdA5/wT2M/oUzX</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;">4EQKMQIDAQABo1AwTjAdBgNVHQ4EFgQUG0wQWNBirU6iQ8KagfNZ9rMvscEwHwYD</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;">VR0jBBgwFoAUG0wQWNBirU6iQ8KagfNZ9rMvscEwDAYDVR0TBAUwAwEB/zANBgkq</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;">hkiG9w0BAQsFAAOCAgEAP7SbR7KZoJDVdTTHoocdkE5spc5ZdmiPoRefLg5FMaYO</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;">kmYDYblh5yAe0KqXzr8e19Sc8nigmWIel2Uc0/i3+6GnI2IyrfJyHIUIq3FgK0SR</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;">mr2CQh+PH/65OStFnRF7U3OPLBb2lfElWG2LAWFnF7YCsWoASIynWdTVPNFXeppL</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;">3Y7bBaD3wBkQh7c6VTRftMgV7BdfwcF7XMtT78O/DBv2o406XnLlSX9qNwz8fPZU</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;">T5+5N/VXcyXtYptBOOimCBGtwRqvZZRsC8xbJxrNgL3q+aCiwOW8y/06jIKFDloK</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;">BIiG9xA4LWUwGMI8pgeQbNYheGgoWrjKRMEsFVOSC6e4u+PYJ4XUwV+p6DKV16eY</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;">S7XbSODoXCiUXdmzr3RI4kVywTSKlW6jgR6LrUf7AXAYwSV32pcntZB2fT8+eC2p</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;">MfnDhW+uoV3jNKLELSVuRbor+60N0uXS/moTPGTAzv1y5YMRiITAX8Nqsemgqouh</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;">Kd7GPV42eLxLlOeRSTAvg8M0OOk7nS7LUdp1k394HgCJ2L/YymmdRZKwV+3MwROr</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;">B6Mj7jllobV06Wo7dyINE4PqtcxR0NP6zirlDjdh4ab7H7bexoT2d4tpmGSvQuWI</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;">Y2hVQZg56SDrLvhXsI6q5EWQiI2PxKHyKZlYYlOOZIjtK1sjVRQNSkpfmrKxZFk=</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;">-----END CERTIFICATE-----</span> |
45cbc80fe0cac8004f862b9eb90b53b57b06299f98e20923185eb08c363d1ec4
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 |
<span style="font-weight: 400; font-family: 'courier new', courier, monospace;">Certificate:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> Data:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> Version: 3 (0x2)</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> Serial Number:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> ba:e6:b6:c8:31:b3:b9:e4</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> Signature Algorithm: sha256WithRSAEncryption</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> Issuer: C=DE, ST=Berlin, CN=rqztech.com</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> Validity</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> Not Before: Apr 16 11:38:38 2016 GMT</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> Not After : Apr 11 11:38:38 2036 GMT</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> Subject: C=DE, ST=Berlin, CN=rqztech.com</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> Subject Public Key Info:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> Public Key Algorithm: rsaEncryption</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> RSA Public Key: (4096 bit)</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> Modulus (4096 bit):</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> 00:d3:02:ec:b7:43:e3:b7:1f:3c:ef:be:1d:38:05:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> f5:6d:d8:a7:fb:f2:35:f7:50:f6:3b:e7:d1:bf:f1:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> ee:a9:b7:e9:2c:d8:54:d0:a2:86:58:db:c9:4e:42:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> 56:28:f8:87:18:a6:3d:1b:80:89:04:91:c6:66:2c:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> 60:30:96:fd:a4:04:a5:1e:06:a1:93:27:5a:28:f9:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> 8b:b0:61:03:18:cd:0c:d7:01:97:02:99:84:96:ae:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> 5a:26:ac:c5:dc:0b:dc:9a:9b:be:8b:b9:db:f2:03:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> 52:25:78:9d:03:34:ea:3f:c6:58:d3:cd:f2:cf:5f:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> bc:70:bb:b3:07:21:bf:14:c7:6a:b2:29:f7:93:e2:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> 08:ff:b8:45:cf:7c:9d:5c:26:48:6b:10:20:b0:cb:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> ff:d2:7c:ca:96:5a:bd:6b:56:ab:53:44:82:e9:12:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> fe:2b:b7:88:ad:ca:38:f7:14:32:95:7e:46:c8:24:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> da:fa:62:fc:3d:b6:ac:8e:8b:2d:f0:b2:4d:8d:08:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> d0:2f:ee:e2:78:bb:5e:57:71:b4:39:57:27:48:00:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> cc:71:e7:bf:d4:8a:c5:2d:f0:f6:93:3a:39:d5:f8:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> da:eb:6a:18:25:b6:5d:f9:4e:00:c3:51:34:18:d5:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> 76:82:81:0a:78:1c:ce:cf:fa:ed:6d:af:0b:22:99:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> 8c:4c:2d:6e:af:ae:4e:47:6d:10:77:70:9f:95:a0:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> a1:52:5d:77:b9:26:82:73:90:13:cb:7d:2f:9c:c2:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> f8:54:45:80:1d:be:8f:f6:a6:b2:6d:95:3c:88:6a:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> 19:3d:94:7f:69:61:73:7b:69:4b:76:ee:7a:59:5c:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> 11:14:15:5d:91:11:14:a7:9c:62:82:18:c7:a8:32:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> f5:ba:9b:15:69:91:e6:de:35:bb:a0:45:b7:fb:f5:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> 0c:a4:25:8e:83:c4:39:74:3b:ad:b7:75:ec:c0:c5:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> a9:c9:49:fa:88:95:96:a4:3b:66:6d:13:44:b6:d0:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> 97:52:87:64:12:26:7c:a6:2a:d4:a8:a4:7b:d2:f6:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> 75:2b:ed:94:1f:75:f2:8c:2d:68:c5:f4:9d:57:d1:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> 95:68:44:2c:fa:1a:c7:ce:8e:07:b1:27:e1:41:1b:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> 99:a8:94:70:60:7e:d0:b3:ad:f9:dd:87:bd:12:1a:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> 15:cf:03:94:65:43:8c:d2:d1:0a:14:00:b5:30:54:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> 26:42:b4:a3:19:2b:7a:03:41:cf:4d:76:1e:8b:d0:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> 9a:66:20:b3:ad:29:db:76:9f:be:11:ea:b9:f7:7f:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> 18:c4:07:a4:85:9f:8b:5c:2a:3a:28:4d:a4:d2:16:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> 03:d9:6a:42:f4:ab:b3:2f:c8:d4:3a:d1:bd:f4:21:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> 5c:08:c9</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> Exponent: 65537 (0x10001)</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> X509v3 extensions:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> X509v3 Subject Key Identifier:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> 51:2E:D2:C3:93:10:DB:98:C0:D9:7D:9B:51:63:85:2D:B2:68:1F:62</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> X509v3 Authority Key Identifier:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> keyid:51:2E:D2:C3:9310:DB:98:C0:D9:7D:9B:51:63:85:2D:B2:68:1F:62</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> X509v3 Basic Constraints:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> CA:TRUE</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> Signature Algorithm: sha256WithRSAEncryption</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> d2:ae:94:9b:47:35:21:28:72:c7:77:01:02:05:b2:e6:ff:4d:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> 27:95:08:d7:10:94:ab:1e:c4:1e:e0:4c:d0:e3:48:c0:f7:73:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> 30:ed:06:bf:32:2c:ff:9a:bc:91:3e:43:b6:5e:6c:c9:ae:b1:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> 6f:84:11:ae:35:d4:fb:43:2a:13:fd:6c:01:f7:fa:13:ea:87:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> 1d:f0:b1:63:81:3d:0b:e6:c5:40:f0:69:81:df:d0:ca:f8:53:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> de:92:3b:8c:64:a5:7c:19:68:eb:09:e1:1b:06:ec:45:fc:22:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> f9:c8:a6:74:31:27:88:a9:c7:d0:8b:8c:91:bb:08:f1:b6:71:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> 9e:a1:d4:88:4f:2e:5c:9f:c5:bd:9e:63:74:43:ce:2a:1f:59:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> 05:72:c9:88:ba:d9:f2:e4:ed:b1:b6:bb:e1:35:1f:41:01:ee:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> 44:51:a9:3a:4b:a7:3e:e9:ef:41:11:54:33:a3:a8:0e:a8:e9:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> ed:06:89:60:0e:37:15:39:82:d7:a3:15:6f:d9:ec:5e:68:47:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> d4:33:62:9a:68:52:41:38:63:ac:fd:14:ed:57:d6:2b:4e:61:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> d6:f1:d8:a2:39:1a:f7:0c:bf:16:27:3c:d0:4a:86:c6:4d:91:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> b2:c7:96:ce:ed:cd:4b:1f:a4:e0:a9:fa:ba:a0:7c:e6:96:a2:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> 19:a4:73:6b:fd:5b:62:27:dc:24:95:31:f8:35:9b:8e:6c:ea:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> 2c:4e:be:15:08:12:51:01:96:34:63:78:02:ca:31:25:61:f8:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> 13:3f:3d:02:ab:a9:4c:9a:d4:5e:b0:c8:3a:d9:21:da:cf:b8:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> 98:91:49:fc:9d:7b:e0:c1:55:87:37:c9:ad:6e:e7:d9:92:6d:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> 6d:79:db:cd:a9:c4:f3:c6:0e:28:dc:0e:b4:79:77:5e:8e:86:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> 24:e5:56:b6:40:3c:02:b8:c7:49:e6:62:c7:8d:f1:b9:06:b6:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> 9b:17:28:2b:b2:ca:06:6d:17:bf:79:8b:98:49:ed:dc:2b:eb:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> a1:7c:bc:01:1b:bb:49:a8:ff:63:1c:a4:d2:b8:75:cc:be:34:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> 22:cf:ef:fb:17:f0:79:08:96:2b:4a:e9:41:03:de:f5:11:dd:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> e7:36:b2:11:d3:0c:18:81:9d:98:d1:a7:9b:12:0f:62:ed:1b:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> f4:5e:56:c3:b6:6f:9f:58:99:18:93:3e:e7:ca:b7:25:de:3d:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> 68:6a:fd:60:a5:de:32:fc:9b:55:ca:d2:44:ab:31:65:f0:d6:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> 1e:6b:32:ed:08:c3:9d:6e:e7:27:3f:b6:a9:19:8e:8e:46:f1:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> f3:a7:8f:40:37:38:e8:fa:49:49:18:db:48:2d:d8:d3:9a:c2:</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;"> 69:4f:6e:00:b6:ee:c3:9e</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;">-----BEGIN CERTIFICATE-----</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;">MIIFOzCCAyOgAwIBAgIJALrmtsgxs7nkMA0GCSqGSIb3DQEBCwUAMDQxCzAJBgNV</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;">BAYTAkRFMQ8wDQYDVQQIDAZCZXJsaW4xFDASBgNVBAMMC3JxenRlY2guY29tMB4X</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;">DTE2MDQxNjExMzgzOFoXDTM2MDQxMTExMzgzOFowNDELMAkGA1UEBhMCREUxDzAN</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;">BgNVBAgMBkJlcmxpbjEUMBIGA1UEAwwLcnF6dGVjaC5jb20wggIiMA0GCSqGSIb3</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;">DQEBAQUAA4ICDwAwggIKAoICAQDTAuy3Q+O3Hzzvvh04BfVt2Kf78jX3UPY759G/</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;">8e6pt+ks2FTQooZY28lOQlYo+IcYpj0bgIkEkcZmLGAwlv2kBKUeBqGTJ1oo+Yuw</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;">YQMYzQzXAZcCmYSWrlomrMXcC9yam76LudvyA1IleJ0DNOo/xljTzfLPX7xwu7MH</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;">Ib8Ux2qyKfeT4gj/uEXPfJ1cJkhrECCwy//SfMqWWr1rVqtTRILpEv4rt4ityjj3</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;">FDKVfkbIJNr6Yvw9tqyOiy3wsk2NCNAv7uJ4u15XcbQ5VydIAMxx57/UisUt8PaT</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;">OjnV+Nrrahgltl35TgDDUTQY1XaCgQp4HM7P+u1trwsimYxMLW6vrk5HbRB3cJ+V</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;">oKFSXXe5JoJzkBPLfS+cwvhURYAdvo/2prJtlTyIahk9lH9pYXN7aUt27npZXBEU</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;">FV2RERSnnGKCGMeoMvW6mxVpkebeNbugRbf79QykJY6DxDl0O623dezAxanJSfqI</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;">lZakO2ZtE0S20JdSh2QSJnymKtSopHvS9nUr7ZQfdfKMLWjF9J1X0ZVoRCz6GsfO</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;">jgexJ+FBG5molHBgftCzrfndh70SGhXPA5RlQ4zS0QoUALUwVCZCtKMZK3oDQc9N</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;">dh6L0JpmILOtKdt2n74R6rn3fxjEB6SFn4tcKjooTaTSFgPZakL0q7MvyNQ60b30</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;">IVwIyQIDAQABo1AwTjAdBgNVHQ4EFgQUUS7Sw5MQ25jA2X2bUWOFLbJoH2IwHwYD</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;">VR0jBBgwFoAUUS7Sw5MQ25jA2X2bUWOFLbJoH2IwDAYDVR0TBAUwAwEB/zANBgkq</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;">hkiG9w0BAQsFAAOCAgEA0q6Um0c1IShyx3cBAgWy5v9NJ5UI1xCUqx7EHuBM0ONI</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;">wPdzMO0GvzIs/5q8kT5Dtl5sya6xb4QRrjXU+0MqE/1sAff6E+qHHfCxY4E9C+bF</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;">QPBpgd/QyvhT3pI7jGSlfBlo6wnhGwbsRfwi+cimdDEniKnH0IuMkbsI8bZxnqHU</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;">iE8uXJ/FvZ5jdEPOKh9ZBXLJiLrZ8uTtsba74TUfQQHuRFGpOkunPunvQRFUM6Oo</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;">Dqjp7QaJYA43FTmC16MVb9nsXmhH1DNimmhSQThjrP0U7VfWK05h1vHYojka9wy/</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;">Fic80EqGxk2RsseWzu3NSx+k4Kn6uqB85paiGaRza/1bYifcJJUx+DWbjmzqLE6+</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;">FQgSUQGWNGN4AsoxJWH4Ez89AqupTJrUXrDIOtkh2s+4mJFJ/J174MFVhzfJrW7n</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;">2ZJtbXnbzanE88YOKNwOtHl3Xo6GJOVWtkA8ArjHSeZix43xuQa2mxcoK7LKBm0X</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;">v3mLmEnt3CvroXy8ARu7Saj/Yxyk0rh1zL40Is/v+xfweQiWK0rpQQPe9RHd5zay</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;">EdMMGIGdmNGnmxIPYu0b9F5Ww7Zvn1iZGJM+58q3Jd49aGr9YKXeMvybVcrSRKsx</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;">ZfDWHmsy7QjDnW7nJz+2qRmOjkbx86ePQDc46PpJSRjbSC3Y05rCaU9uALbuw54=</span> <span style="font-weight: 400; font-family: 'courier new', courier, monospace;">-----END CERTIFICATE-----</span> |
Discussion