{"id":87753,"date":"2019-05-28T11:31:42","date_gmt":"2019-05-28T06:01:42","guid":{"rendered":"https:\/\/blogs.quickheal.com\/?p=87753"},"modified":"2019-05-30T11:43:45","modified_gmt":"2019-05-30T06:13:45","slug":"apt-27-like-newcore-rat-virut-exploiting-mysql-targeted-attacks-enterprise","status":"publish","type":"post","link":"https:\/\/www.quickheal.com\/blogs\/apt-27-like-newcore-rat-virut-exploiting-mysql-targeted-attacks-enterprise\/","title":{"rendered":"APT-27 like Newcore RAT, Virut exploiting MySQL for targeted attacks on enterprise"},"content":{"rendered":"<p>In today\u2019s world data is everything, and to store and process this large amount of data, everyone started using computing devices. Database servers which are used for storing this precious data on computing devices include MySQL, MongoDB, MSSQL, etc. But\u00a0unfortunately, not everyone is conscious about its security. In fact, approximately 90% of these applications have credentials like root:root, scott:tiger. In some cases, we observed people even don\u2019t use credential for database server\u2019s root account.<\/p>\n<p>As cloud services are commonly used by enterprises\u00a0, these services are equally used by attacker to attack on vulnerable devices by running bots and C&amp;C on cloud servers. Many cloud service providers are providing free cloud service for one year, with public IP which helps attacker to stay hidden and change infrastructure easily. For e.g. google cloud, AWS etc.<\/p>\n<p style=\"text-align: left\">To attack any enterprise, attacker need to identify a vulnerability in enterprise network. We observed \u00a0generally, enterprises patches all vulnerabilities related to OS, but they use server machine running MySQL on pubic IP. MySQL server run as a service, so it runs with system privilege. If attacker enters into the network using MySQL, then it executes with system privilege, so it can access everything on infected host without any vulnerability.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-87788 size-full\" src=\"https:\/\/blogs.quickheal.com\/wp-content\/uploads\/2019\/05\/mysql_word.png\" alt=\"\" width=\"537\" height=\"537\" srcset=\"https:\/\/www.quickheal.com\/blogs\/wp-content\/uploads\/2019\/05\/mysql_word.png 537w, https:\/\/www.quickheal.com\/blogs\/wp-content\/uploads\/2019\/05\/mysql_word-150x150.png 150w, https:\/\/www.quickheal.com\/blogs\/wp-content\/uploads\/2019\/05\/mysql_word-300x300.png 300w, https:\/\/www.quickheal.com\/blogs\/wp-content\/uploads\/2019\/05\/mysql_word-390x390.png 390w, https:\/\/www.quickheal.com\/blogs\/wp-content\/uploads\/2019\/05\/mysql_word-70x70.png 70w, https:\/\/www.quickheal.com\/blogs\/wp-content\/uploads\/2019\/05\/mysql_word-80x81.png 80w, https:\/\/www.quickheal.com\/blogs\/wp-content\/uploads\/2019\/05\/mysql_word-45x45.png 45w\" sizes=\"(max-width: 537px) 100vw, 537px\" \/><\/p>\n<p style=\"text-align: center\">Fig. 1 Worldwide MySQL servers on public ip<\/p>\n<p>&nbsp;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-87783 size-full\" src=\"https:\/\/blogs.quickheal.com\/wp-content\/uploads\/2019\/05\/mysql_india.png\" alt=\"\" width=\"1081\" height=\"607\" srcset=\"https:\/\/www.quickheal.com\/blogs\/wp-content\/uploads\/2019\/05\/mysql_india.png 1081w, https:\/\/www.quickheal.com\/blogs\/wp-content\/uploads\/2019\/05\/mysql_india-300x168.png 300w, https:\/\/www.quickheal.com\/blogs\/wp-content\/uploads\/2019\/05\/mysql_india-768x431.png 768w, https:\/\/www.quickheal.com\/blogs\/wp-content\/uploads\/2019\/05\/mysql_india-650x365.png 650w, https:\/\/www.quickheal.com\/blogs\/wp-content\/uploads\/2019\/05\/mysql_india-789x443.png 789w\" sizes=\"(max-width: 1081px) 100vw, 1081px\" \/><\/p>\n<p style=\"text-align: center\">Fig. 2 MySQL server accessible on public ip from india<\/p>\n<p>We observed approx. 15000attacks in our honeypot network targeting MySQL Database. Most of these attacks are from Germany ( 34% of total attacks identified), and rest are originating from different countries like United States, France, China, Poland and Russia.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-87754 size-full\" src=\"https:\/\/blogs.quickheal.com\/wp-content\/uploads\/2019\/05\/MySql-Attack.png\" alt=\"\" width=\"1196\" height=\"490\" srcset=\"https:\/\/www.quickheal.com\/blogs\/wp-content\/uploads\/2019\/05\/MySql-Attack.png 1196w, https:\/\/www.quickheal.com\/blogs\/wp-content\/uploads\/2019\/05\/MySql-Attack-300x123.png 300w, https:\/\/www.quickheal.com\/blogs\/wp-content\/uploads\/2019\/05\/MySql-Attack-768x315.png 768w, https:\/\/www.quickheal.com\/blogs\/wp-content\/uploads\/2019\/05\/MySql-Attack-650x266.png 650w, https:\/\/www.quickheal.com\/blogs\/wp-content\/uploads\/2019\/05\/MySql-Attack-789x323.png 789w\" sizes=\"(max-width: 1196px) 100vw, 1196px\" \/><\/p>\n<p style=\"text-align: center\">Fig. 3 MySQL attacker location<\/p>\n<p>We observed that, attackers are \u00a0mostly using two approaches \u2013 #1 They try to get an entry into database server, drop existing tables and insert a ransom note as blob in a newly created table#2. In the second attack approach, they use MySQL as entrance into Linux or Windows system and then drop a backdoor, miner or ransomware into the victim host. For this they take advantage of com compatibility feature of MySQL.<\/p>\n<p>As per our observation attacker is authenticating to MySQL with default credential like scott:tiger, root or it will try 10000 well known passwords. Also, they use sql injection on web application for executing sql queries. I some cases, we found use of webshell. Also, there is one serious Authentication bypass vulnerability (CVE-2012-2122) present for MySQL server 5.1.X by which attacker take access of server without any credential. Now once attacker gets access to MySQL database, it can do anything. It can manipulate your data, delete it or steal it. But MySQL doesn\u2019t understand windows api function like CreateProcess or UrlToDownloadFile. For this attacker\u2019s are using one solution i.e. MySQL\u2019s <a href=\"https:\/\/dev.mysql.com\/doc\/refman\/5.5\/en\/create-function-udf.html\">user-defined<\/a> function. User can write their own user-defined function which can be used in MySQL, by default MySQL have avg, sum etc. pre-build functions.<\/p>\n<p>In some cases attacker uses hidden database in MySQL i.e. \u201cMySQL\u201d in this database creates one table with one column of blob type. It then inserts one dll in hex format. We can dump MySQL table into physical file in any location using dumpfile function. So now, attacker uses trigger or select query to dump this dll as physical file in plugins folder of MySQL. This dll contains definition for user-defined function; now attacker can use their own user-defined functions in MySQL.<\/p>\n<p>Generally they use function for download file from URL and execute them on infected server. Every application executed by mysqld.exe will run with system privilege. They evade detections and can be used to launch file-less malware attacks. It uses following query to insert dll file as blob in hex format and then dump it using \u201cinto DUMPFILE\u201d.<\/p>\n<p>insert into yongger3 values (&#8220;0x4D \u201c);<\/p>\n<p>\u2018select data from yongger3 into DUMPFILE &#8220;&#8216;,@@plugin_dir,&#8217;\\\\udf33.dll&#8221;&#8216;<\/p>\n<p>Also, it can drop pe file directly with select statement without inserting it into MySQL table.<\/p>\n<p style=\"text-align: center\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-87723 size-full\" src=\"https:\/\/blogs.quickheal.com\/wp-content\/uploads\/2019\/05\/mysql_kill.png\" alt=\"\" width=\"852\" height=\"443\" srcset=\"https:\/\/www.quickheal.com\/blogs\/wp-content\/uploads\/2019\/05\/mysql_kill.png 852w, https:\/\/www.quickheal.com\/blogs\/wp-content\/uploads\/2019\/05\/mysql_kill-300x156.png 300w, https:\/\/www.quickheal.com\/blogs\/wp-content\/uploads\/2019\/05\/mysql_kill-768x399.png 768w, https:\/\/www.quickheal.com\/blogs\/wp-content\/uploads\/2019\/05\/mysql_kill-650x338.png 650w, https:\/\/www.quickheal.com\/blogs\/wp-content\/uploads\/2019\/05\/mysql_kill-789x410.png 789w\" sizes=\"(max-width: 852px) 100vw, 852px\" \/><br \/>\nFig. 4 MySQL commands executed by attacker.<\/p>\n<p>List of Functions defined in user-defined dll of attacker:<\/p>\n<ol>\n<li>KillProcess<\/li>\n<li>ProcessView<\/li>\n<li>About<\/li>\n<li>Backshell<\/li>\n<li>Cmdshell<\/li>\n<li>Downloader<\/li>\n<li>open3389<\/li>\n<li>regread<\/li>\n<li>regwrite<\/li>\n<li>shut<\/li>\n<li>shell<\/li>\n<li>cmdshelv<\/li>\n<li>xpdl3<\/li>\n<\/ol>\n<p>To use above user defined function from dll in MySQL, attacker first need to create this function in MySQL for which they use query like:<\/p>\n<p>CREATE FUNCTION cmdshell RETURNS string SONAME &#8216;xsa.dll&#8217;<\/p>\n<p>Where cmdshell is user-defined function used to execute commands like terminal. xsa.dll is attacker\u2019s dll dropped into plugin folder containing definition of user defined function. For Linux machines, instead of dll attacker uses .so files.<\/p>\n<p>To execute this function attacker uses select query like:<\/p>\n<p>select cmdshell(&#8220;cmd.exe cmd\/c net user xiaoshage xiaoshage1 \/add&amp;net localgroup administrators xiaoshage \/add&#8221;)<\/p>\n<p>In above query attacker used cmdshell function to execute cmd.exe with net command. This command creates xiaoshage user and adds it to administrator group. In most of cases, MySQL is installed on domain admin server, so this account can be added to domain admin group and then used to access all machines in network. Also, attacker defined function open3389 where 3389 means tcp port 3389 which is used for rdp access. From MySQL, attacker enables rdp service by adding following registries:<\/p>\n<p>\u201cSYSTEM\\\\CurrentControlSet\\\\Control\\\\Terminal Server\\\\Wds\\\\rdpwd\\\\Tds\\\\tcp\u201d<\/p>\n<p>Key:\u201cPort number\u201d\u00a0 value :\u201d 0xd3d\u201d(3389)<\/p>\n<p>Interestingly, attacker killed multiple services, antivirus program from system using MySQL. They executed cmd.exe and taskkill with cmdshell function as displayed in fig. 2 it can also use Killprocess function which accepts program name and then uses TerminateProcess function with combination of CreateToolhelp32Snapshot, Process32Next and Process32First functions.<\/p>\n<p>Attacker killed following processes from victim\u2019s pc using MySQL<\/p>\n<table class=\" alignleft\" style=\"width: 70%\">\n<tbody>\n<tr>\n<td style=\"text-align: left\">QQPCTray.exe<\/td>\n<td>NPFMntor.exe<\/td>\n<td>safedog guard center.exe<\/td>\n<\/tr>\n<tr>\n<td>ksafe.exe<\/td>\n<td>rstray.exe<\/td>\n<td>UpdaterUI.exe<\/td>\n<\/tr>\n<tr>\n<td>UIHost.exe<\/td>\n<td>360sd.exe<\/td>\n<td>AVP.EXE<\/td>\n<\/tr>\n<tr>\n<td>360Tray.exe<\/td>\n<td>avfwsvc.exe<\/td>\n<td>360rp.exe<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p style=\"text-align: center\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-87724 size-full\" src=\"https:\/\/blogs.quickheal.com\/wp-content\/uploads\/2019\/05\/mysql_pcap.png\" alt=\"\" width=\"902\" height=\"668\" srcset=\"https:\/\/www.quickheal.com\/blogs\/wp-content\/uploads\/2019\/05\/mysql_pcap.png 902w, https:\/\/www.quickheal.com\/blogs\/wp-content\/uploads\/2019\/05\/mysql_pcap-300x222.png 300w, https:\/\/www.quickheal.com\/blogs\/wp-content\/uploads\/2019\/05\/mysql_pcap-768x569.png 768w, https:\/\/www.quickheal.com\/blogs\/wp-content\/uploads\/2019\/05\/mysql_pcap-527x390.png 527w, https:\/\/www.quickheal.com\/blogs\/wp-content\/uploads\/2019\/05\/mysql_pcap-789x584.png 789w\" sizes=\"(max-width: 902px) 100vw, 902px\" \/>Fig. 5 MySQL Remote command execution<\/p>\n<p>In fig. 5, we can observe network traffic of MySQL, where queries are directly visible which contains queries to terminate process and query service. Also, for each command executed it also receives response and displays it to attacker.<\/p>\n<p>Shut function provides definition for pc shutdown and restart. All these functions are executed under MySQL so for victim it\u2019s like mysqld.exe is executing or killing process, adding registry.<\/p>\n<p>For Linux MySQL user-defined functions are as follows:<\/p>\n<ol style=\"text-align: left\">\n<li>sys_eval<\/li>\n<li>sys_exec<\/li>\n<li>sys_get<\/li>\n<li>sys_set<\/li>\n<\/ol>\n<p style=\"text-align: center\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-87725 size-full\" src=\"https:\/\/blogs.quickheal.com\/wp-content\/uploads\/2019\/05\/downloader1.png\" alt=\"\" width=\"585\" height=\"382\" srcset=\"https:\/\/www.quickheal.com\/blogs\/wp-content\/uploads\/2019\/05\/downloader1.png 585w, https:\/\/www.quickheal.com\/blogs\/wp-content\/uploads\/2019\/05\/downloader1-300x196.png 300w\" sizes=\"(max-width: 585px) 100vw, 585px\" \/>Fig. 6 Downloader function definition<\/p>\n<p style=\"text-align: center\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-87726 size-large\" src=\"https:\/\/blogs.quickheal.com\/wp-content\/uploads\/2019\/05\/hfs_httpy.aibeichen.cn_-576x390.png\" alt=\"\" width=\"576\" height=\"390\" srcset=\"https:\/\/www.quickheal.com\/blogs\/wp-content\/uploads\/2019\/05\/hfs_httpy.aibeichen.cn_-576x390.png 576w, https:\/\/www.quickheal.com\/blogs\/wp-content\/uploads\/2019\/05\/hfs_httpy.aibeichen.cn_-300x203.png 300w, https:\/\/www.quickheal.com\/blogs\/wp-content\/uploads\/2019\/05\/hfs_httpy.aibeichen.cn_-768x520.png 768w, https:\/\/www.quickheal.com\/blogs\/wp-content\/uploads\/2019\/05\/hfs_httpy.aibeichen.cn_-789x534.png 789w, https:\/\/www.quickheal.com\/blogs\/wp-content\/uploads\/2019\/05\/hfs_httpy.aibeichen.cn_.png 990w\" sizes=\"(max-width: 576px) 100vw, 576px\" \/>Fig. 7 HFS server<\/p>\n<p style=\"text-align: left\">We observed various malware distributed using MySQL as source this include virut, backdoor, miner.We also received\u00a0<a href=\"https:\/\/www.cyber.nj.gov\/threat-profiles\/trojan-variants\/newcore\">NewCore RAT<\/a> sample from <a href=\"https:\/\/www.fortinet.com\/blog\/threat-research\/cta-security-playbook--goblin-panda.html\">APT-27<\/a> I.e <a href=\"https:\/\/www.fortinet.com\/blog\/threat-research\/cta-security-playbook--goblin-panda.html\">GoblinPanda<\/a> attack was hosted on <strong>43.242.75.228<\/strong> <a href=\"https:\/\/en.wikipedia.org\/wiki\/HTTP_File_Server\">hfs server<\/a>,which is using MySQL as initial vector.<\/p>\n<p style=\"text-align: left\"><strong>Ransom note from one of MySQL attack:<\/strong><\/p>\n<p>{<\/p>\n<p>To recover your lost Database and avoid leaking it: Send us 0.1 Bitcoin<\/p>\n<p>(BTC) to our address\u00a0\u2018s7iHwdafANy4ThJc*&amp;******\u2019\u00a0and contact by mail with your IP or\u00a0web\u00a0name\u00a0&amp; payment\u00a0evidence. If you are unsure if we have your data, contact us and we will send you a proof. Your Database is downloaded and backed up on our servers. If we don\u2019t receive your payment in the next 10 Days, we will make your database public or use them otherwise.<\/p>\n<p>}<\/p>\n<p>After dropping database, attacker insert ransom note and ask for ransom. Victim can try to restore data if there ibdata1, log file, .bak and .frm files are present. But it is suggested that in this type of attack, don\u2019t pay ransom as attacker is not reading or taking backup of database so there is no way that they can restore database after payment. Differentiation between malicious and clean database drop activity is not possible, so it\u2019s hard to block this attack by antivirus product.<\/p>\n<p style=\"text-align: left\"><strong>Future attack:<\/strong><\/p>\n<p>We think that in future attacker will store c# code in MySQL table and then will create trigger to execute csc.exe in victims\u2019 machine after every 1 hour, to compile this c# code in memory without physical copy.<\/p>\n<p>So, there will be no physical copy of malware and it will compile on client-end, so it is hard to detect this file by signature-based approach. Also, they can inject such code into regasm.exe which is genuine utility. Now a days, Hawkeye executes without any physical copy by using CVE-2017-11882, CVE-2017-01999 and CVE-2017-8570, but in future it can use MySQL as source and then for victim it will be like mysqld.exe executes csc.exe which executes regasm.exe.<\/p>\n<p>For now, we have seen that MySQL attacks are used for ransom, to intrude victim and also, they drop Virut infector which drops backdoor with IoT capability. It\u2019s hard to detect this attack and attacker can leverage MySQL to infect machine being undetected.<\/p>\n<p style=\"text-align: left\"><strong>Solution:<\/strong><\/p>\n<p style=\"text-align: left\">Quick Heal has\u00a0<a href=\"https:\/\/www.seqrite.com\/seqrite-utm\">UTM<\/a> product.This product includes\u00a0<a href=\"https:\/\/blogs.seqrite.com\/benefits-of-having-intrusion-preventiondetection-system-in-your-enterprise\/\">IDS\/IPS<\/a> engine which work on network level. Which means if attacker try to connect to MySQL from remote location and execute malicious query then in network first traffic is received by UTM device. Then these devices contain firewall, Browser protection as well as IDS\/IPS engine. Quick Heal detects malicious MySQL queries using IDS\/IPS engine from UTM Product. Which will block this communication and protect user from MySQL attack.<\/p>\n<p style=\"text-align: left\">Similarly,\u00a0UTM can also be used for IOT security.<\/p>\n<blockquote>\n<p style=\"text-align: left\">So, we recommend use of <a href=\"https:\/\/www.seqrite.com\/seqrite-utm\">UTM<\/a> product at enterprise level to prevent from increasing MySQL attacks.<\/p>\n<\/blockquote>\n<p style=\"text-align: left\">On endpoint level we block this attack on network level as well as attacks get blocked by our <a href=\"https:\/\/blogs.seqrite.com\/rise-of-ransomware-how-seqrite-can-help-your-business-stay-protected\/\">behaviour-based<\/a> detection.<\/p>\n<p style=\"text-align: left\"><b>IDS\/IPS Detection:<\/b><\/p>\n<ul style=\"text-align: left\">\n<li>MySQL\/EXEFileWrite.UN!SP.34758<\/li>\n<li>MySQL\/CommandExecution.UN!SP.34759<\/li>\n<li>MySQL\/CommandExecution.UN!SP.34760<\/li>\n<li>MySQL\/EXEFileWrite.UN!SP.34776<\/li>\n<\/ul>\n<p style=\"text-align: left\"><strong>Virus Protection Detection:<\/strong><\/p>\n<ul style=\"text-align: left\">\n<li>W32.Virut.G<\/li>\n<li>Backdoor.Agent<\/li>\n<li>Backdoor.Dofloo.CE99d<\/li>\n<li>Trojan.Mauvaise.SL1<\/li>\n<li>Trojan.Agent.S175662<\/li>\n<\/ul>\n<p style=\"text-align: left\"><strong>Attack\u00a0 IOC&#8217;s:<\/strong><br \/>\nD6362BDF13A789790E7CADCD110B9E4D<br \/>\nA5B019DDB693B0EC32B7A400957EDA24<br \/>\nc419cdd0dece9c183b3865b9c2db23fb<br \/>\n6F5E0882316C5BFE9420D91058F53BE8<br \/>\nF0044BCB4B1D4A6A39B766F864D9861A<br \/>\n19230C66AA4A550770D7C83BA8CC6027<br \/>\nB36150FEC88C917112B2C8801511C076<br \/>\n313909878C72ACA7E1D79CE221B1AC47<\/p>\n<p style=\"text-align: left\"><b>URL<\/b><strong>:<\/strong><br \/>\n43[.]242[.]75[.]228<br \/>\ny[.]aibeichen[.]cn\/csrss.exe<\/p>\n<p><strong>Subject Matter Expert:<\/strong><br \/>\nVallabh Chole<br \/>\nSecurity Labs, Quick Heal Technologies, Ltd.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In today\u2019s world data is everything, and to store and process this large amount of data, everyone started using computing devices. Database servers which are used for storing this precious data on computing devices include MySQL, MongoDB, MSSQL, etc. But\u00a0unfortunately, not everyone is conscious about its security. In fact, approximately 90% of these applications have [&hellip;]<\/p>\n","protected":false},"author":57,"featured_media":87755,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[133,24,910],"tags":[1564,49,1664,1123,1667,1665],"class_list":["post-87753","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-hacker","category-malware","category-ransomware","tag-infector","tag-malware","tag-mysql","tag-rat","tag-targeted-attack","tag-virut"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.quickheal.com\/blogs\/wp-json\/wp\/v2\/posts\/87753"}],"collection":[{"href":"https:\/\/www.quickheal.com\/blogs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.quickheal.com\/blogs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.quickheal.com\/blogs\/wp-json\/wp\/v2\/users\/57"}],"replies":[{"embeddable":true,"href":"https:\/\/www.quickheal.com\/blogs\/wp-json\/wp\/v2\/comments?post=87753"}],"version-history":[{"count":23,"href":"https:\/\/www.quickheal.com\/blogs\/wp-json\/wp\/v2\/posts\/87753\/revisions"}],"predecessor-version":[{"id":87790,"href":"https:\/\/www.quickheal.com\/blogs\/wp-json\/wp\/v2\/posts\/87753\/revisions\/87790"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.quickheal.com\/blogs\/wp-json\/wp\/v2\/media\/87755"}],"wp:attachment":[{"href":"https:\/\/www.quickheal.com\/blogs\/wp-json\/wp\/v2\/media?parent=87753"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.quickheal.com\/blogs\/wp-json\/wp\/v2\/categories?post=87753"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.quickheal.com\/blogs\/wp-json\/wp\/v2\/tags?post=87753"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}