{"id":88591,"date":"2020-02-18T15:15:17","date_gmt":"2020-02-18T09:45:17","guid":{"rendered":"https:\/\/blogs_admin.quickheal.com\/?p=88591"},"modified":"2023-06-16T17:14:12","modified_gmt":"2023-06-16T11:44:12","slug":"ouroboros-following-new-trend-ransomware-league","status":"publish","type":"post","link":"https:\/\/www.quickheal.com\/blogs\/ouroboros-following-new-trend-ransomware-league\/","title":{"rendered":"Ouroboros: Following A New Trend In Ransomware League"},"content":{"rendered":"<p>Ransomware authors keep exploring new ways to test their strengths against various malware evasion techniques. The ransomware known as \u201cOuroboros\u201d is intensifying its footprint in the field by bringing more and more advancements in its behavior as it updates its version. This analysis provides the behaviour of version 6, few earlier variants of it and some insights on the recent Version 7. This <a href=\"https:\/\/blogs.quickheal.com\/deep-dive-into-royal-ransomware\/\">Ransomware<\/a> not only applies conventional methods but also adopts some new techniques making it very difficult to analyze.<\/p>\n<p style=\"text-align: left;\"><strong>Infection Vector<\/strong><br \/>\nOuroboros has been around from a year now and it spreads through RDP Bruteforce attacks, deceptive downloads, and through Server Message Block (SMB), which is generally used for file sharing and some administrative tasks on Windows endpoints connected over a network.<\/p>\n<p style=\"text-align: left;\"><strong>Technical Analysis<\/strong><br \/>\nDuring analysis, we found that initially, it stops SQL process ( SQLWriter, SQLBrowser, MSSQLSERVER, MSSQL$CONTOSO1, MSDTC, SQLSERVERAGENT, MySQL etc ) in order to encrypt those files which are open in a database by creating process cmd.exe with \u201cnet stop\u201d command as shown in fig below.<\/p>\n<figure id=\"attachment_88596\" aria-describedby=\"caption-attachment-88596\" style=\"width: 999px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-88596 size-full\" src=\"https:\/\/blogs.quickheal.com\/wp-content\/uploads\/2020\/02\/SQLwriteStopping.png\" alt=\"\" width=\"999\" height=\"66\" srcset=\"https:\/\/www.quickheal.com\/blogs\/wp-content\/uploads\/2020\/02\/SQLwriteStopping.png 999w, https:\/\/www.quickheal.com\/blogs\/wp-content\/uploads\/2020\/02\/SQLwriteStopping-300x20.png 300w, https:\/\/www.quickheal.com\/blogs\/wp-content\/uploads\/2020\/02\/SQLwriteStopping-768x51.png 768w, https:\/\/www.quickheal.com\/blogs\/wp-content\/uploads\/2020\/02\/SQLwriteStopping-650x43.png 650w, https:\/\/www.quickheal.com\/blogs\/wp-content\/uploads\/2020\/02\/SQLwriteStopping-789x52.png 789w\" sizes=\"(max-width: 999px) 100vw, 999px\" \/><figcaption id=\"caption-attachment-88596\" class=\"wp-caption-text\">Fig.1 Code snippet for stopping SQL process through cmd<\/figcaption><\/figure>\n<p style=\"text-align: left;\">It also stops some other sql process like sqlserver.exe, sqlagent.exe etc but uses another method to terminate.<\/p>\n<figure id=\"attachment_88602\" aria-describedby=\"caption-attachment-88602\" style=\"width: 727px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-88602 \" src=\"https:\/\/blogs.quickheal.com\/wp-content\/uploads\/2020\/02\/ProcedureToStopProcess.png\" alt=\"\" width=\"727\" height=\"258\" srcset=\"https:\/\/www.quickheal.com\/blogs\/wp-content\/uploads\/2020\/02\/ProcedureToStopProcess.png 973w, https:\/\/www.quickheal.com\/blogs\/wp-content\/uploads\/2020\/02\/ProcedureToStopProcess-300x106.png 300w, https:\/\/www.quickheal.com\/blogs\/wp-content\/uploads\/2020\/02\/ProcedureToStopProcess-768x272.png 768w, https:\/\/www.quickheal.com\/blogs\/wp-content\/uploads\/2020\/02\/ProcedureToStopProcess-650x230.png 650w, https:\/\/www.quickheal.com\/blogs\/wp-content\/uploads\/2020\/02\/ProcedureToStopProcess-789x280.png 789w\" sizes=\"(max-width: 727px) 100vw, 727px\" \/><figcaption id=\"caption-attachment-88602\" class=\"wp-caption-text\">Fig.2 Adopting different method to stop other SQL processes<\/figcaption><\/figure>\n<p><strong>Resemblance To LockerGoga<\/strong><br \/>\nIt forms 0x40 bytes key stack consisting of 0x20 key bytes generated from CryptGenKey Crypto API and combines it with 0x20 bytes which are already present in the file. Then it performs AES operations on them similar to LockerGoga. Ouroboros and LockerGoga use crypto++ library which makes the analysis difficult. While steps for encrypting the data is same, both use different <a href=\"https:\/\/www.quickheal.com\/qhise\/\">encryption modes<\/a>. LockerGoga uses AES in CTR mode, while Ouroboros uses AES in CFB mode.<br \/>\nBoth the samples are using aesenc\/aesenclast instructions, which are part of the AES-NI Instruction Set introduced by Intel around 2009.<\/p>\n<figure id=\"attachment_88606\" aria-describedby=\"caption-attachment-88606\" style=\"width: 615px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-88606 size-full\" src=\"https:\/\/blogs.quickheal.com\/wp-content\/uploads\/2020\/02\/aes-40-bytes-key.png\" alt=\"\" width=\"615\" height=\"153\" srcset=\"https:\/\/www.quickheal.com\/blogs\/wp-content\/uploads\/2020\/02\/aes-40-bytes-key.png 615w, https:\/\/www.quickheal.com\/blogs\/wp-content\/uploads\/2020\/02\/aes-40-bytes-key-300x75.png 300w\" sizes=\"(max-width: 615px) 100vw, 615px\" \/><figcaption id=\"caption-attachment-88606\" class=\"wp-caption-text\">Fig.3 Instruction set used by malware<\/figcaption><\/figure>\n<p style=\"text-align: left;\"><strong>Encryption Procedure<\/strong><br \/>\nAs explained above, after making 0x40 bytes key stack, it expands the key using Rijndael key expansion from 0x20 (256 bit) to 240 bytes by performing 15 rounds of various mathematical expressions.<\/p>\n<figure id=\"attachment_88607\" aria-describedby=\"caption-attachment-88607\" style=\"width: 537px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-88607 size-full\" src=\"https:\/\/blogs.quickheal.com\/wp-content\/uploads\/2020\/02\/KeyExpanded.png\" alt=\"\" width=\"537\" height=\"211\" srcset=\"https:\/\/www.quickheal.com\/blogs\/wp-content\/uploads\/2020\/02\/KeyExpanded.png 537w, https:\/\/www.quickheal.com\/blogs\/wp-content\/uploads\/2020\/02\/KeyExpanded-300x118.png 300w\" sizes=\"(max-width: 537px) 100vw, 537px\" \/><figcaption id=\"caption-attachment-88607\" class=\"wp-caption-text\">Fig.4 Expanded key Using Rijndael Expansion<\/figcaption><\/figure>\n<p style=\"text-align: left;\">It builds initial block cipher using the instruction set shown in (fig.3) by using expanded key and IV.<\/p>\n<figure id=\"attachment_88609\" aria-describedby=\"caption-attachment-88609\" style=\"width: 515px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-88609 size-full\" src=\"https:\/\/blogs.quickheal.com\/wp-content\/uploads\/2020\/02\/iv2.png\" alt=\"\" width=\"515\" height=\"68\" srcset=\"https:\/\/www.quickheal.com\/blogs\/wp-content\/uploads\/2020\/02\/iv2.png 515w, https:\/\/www.quickheal.com\/blogs\/wp-content\/uploads\/2020\/02\/iv2-300x40.png 300w\" sizes=\"(max-width: 515px) 100vw, 515px\" \/><figcaption id=\"caption-attachment-88609\" class=\"wp-caption-text\">Fig.5 Initialization Vector<\/figcaption><\/figure>\n<p style=\"text-align: left;\">After forming the initial block cipher of 0x40 bytes, it is used to encrypt file data by reading bytes from a file and performing operations on them. These encrypted bytes are stored in memory and then copied to file by using WriteFile API.<\/p>\n<figure id=\"attachment_88610\" aria-describedby=\"caption-attachment-88610\" style=\"width: 650px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-88610 size-large\" src=\"https:\/\/blogs.quickheal.com\/wp-content\/uploads\/2020\/02\/Encyp-of-file-bytes-with-key-650x215.png\" alt=\"\" width=\"650\" height=\"215\" srcset=\"https:\/\/www.quickheal.com\/blogs\/wp-content\/uploads\/2020\/02\/Encyp-of-file-bytes-with-key-650x215.png 650w, https:\/\/www.quickheal.com\/blogs\/wp-content\/uploads\/2020\/02\/Encyp-of-file-bytes-with-key-300x99.png 300w, https:\/\/www.quickheal.com\/blogs\/wp-content\/uploads\/2020\/02\/Encyp-of-file-bytes-with-key.png 703w\" sizes=\"(max-width: 650px) 100vw, 650px\" \/><figcaption id=\"caption-attachment-88610\" class=\"wp-caption-text\">Fig.6 XORing block cipher bytes with file bytes and storing them<\/figcaption><\/figure>\n<p style=\"text-align: left;\">This ransomware keeps 0x100 bytes PEM encoded RSA public key in a file. It encrypts AES key with this RSA public key and appends it at the end of the file as shown in (Fig.7).<\/p>\n<figure id=\"attachment_88612\" aria-describedby=\"caption-attachment-88612\" style=\"width: 529px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-88612 size-full\" src=\"https:\/\/blogs.quickheal.com\/wp-content\/uploads\/2020\/02\/key.jpg\" alt=\"\" width=\"529\" height=\"241\" srcset=\"https:\/\/www.quickheal.com\/blogs\/wp-content\/uploads\/2020\/02\/key.jpg 529w, https:\/\/www.quickheal.com\/blogs\/wp-content\/uploads\/2020\/02\/key-300x137.jpg 300w\" sizes=\"(max-width: 529px) 100vw, 529px\" \/><figcaption id=\"caption-attachment-88612\" class=\"wp-caption-text\">Fig.7 Appending key at the end of file<\/figcaption><\/figure>\n<p style=\"text-align: left;\"><strong>Ransom Note<\/strong><br \/>\nOn host machine, files are encrypted with extension [original file name].Email= [*.com]ID=[XXXXXXXXX].odveta<\/p>\n<figure id=\"attachment_88613\" aria-describedby=\"caption-attachment-88613\" style=\"width: 326px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-88613 size-full\" title=\"\u3000\" src=\"https:\/\/blogs.quickheal.com\/wp-content\/uploads\/2020\/02\/Capture.jpg\" alt=\"\u3000\u3000\u3000\u3000\u3000Fig.8 Extension Format\" width=\"326\" height=\"206\" srcset=\"https:\/\/www.quickheal.com\/blogs\/wp-content\/uploads\/2020\/02\/Capture.jpg 326w, https:\/\/www.quickheal.com\/blogs\/wp-content\/uploads\/2020\/02\/Capture-300x190.jpg 300w\" sizes=\"(max-width: 326px) 100vw, 326px\" \/><figcaption id=\"caption-attachment-88613\" class=\"wp-caption-text\">Fig.8 Extension Format<\/figcaption><\/figure>\n<p style=\"text-align: left;\">After encryption, it drops Unlock-Files.txt in each folder as a ransom note.<\/p>\n<figure id=\"attachment_88614\" aria-describedby=\"caption-attachment-88614\" style=\"width: 650px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-88614 size-large\" src=\"https:\/\/blogs.quickheal.com\/wp-content\/uploads\/2020\/02\/README-650x260.jpg\" alt=\"\" width=\"650\" height=\"260\" srcset=\"https:\/\/www.quickheal.com\/blogs\/wp-content\/uploads\/2020\/02\/README-650x260.jpg 650w, https:\/\/www.quickheal.com\/blogs\/wp-content\/uploads\/2020\/02\/README-300x120.jpg 300w, https:\/\/www.quickheal.com\/blogs\/wp-content\/uploads\/2020\/02\/README-768x307.jpg 768w, https:\/\/www.quickheal.com\/blogs\/wp-content\/uploads\/2020\/02\/README-789x315.jpg 789w, https:\/\/www.quickheal.com\/blogs\/wp-content\/uploads\/2020\/02\/README.jpg 898w\" sizes=\"(max-width: 650px) 100vw, 650px\" \/><figcaption id=\"caption-attachment-88614\" class=\"wp-caption-text\">Fig.9 Ransom note<\/figcaption><\/figure>\n<p style=\"text-align: left;\"><strong>Network Analysis<\/strong><br \/>\nBefore connecting to CnC server, it performs DNS query on sfml-dev.org and makes HTTP Get Request to url \/ip-provider.php and receive victim\u2019s host\/system public IP in response as shown in below figures.<\/p>\n<figure id=\"attachment_88617\" aria-describedby=\"caption-attachment-88617\" style=\"width: 1035px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-88617 size-full\" src=\"https:\/\/blogs.quickheal.com\/wp-content\/uploads\/2020\/02\/dns-query.png\" alt=\"\" width=\"1035\" height=\"34\" srcset=\"https:\/\/www.quickheal.com\/blogs\/wp-content\/uploads\/2020\/02\/dns-query.png 1035w, https:\/\/www.quickheal.com\/blogs\/wp-content\/uploads\/2020\/02\/dns-query-300x10.png 300w, https:\/\/www.quickheal.com\/blogs\/wp-content\/uploads\/2020\/02\/dns-query-768x25.png 768w, https:\/\/www.quickheal.com\/blogs\/wp-content\/uploads\/2020\/02\/dns-query-650x21.png 650w, https:\/\/www.quickheal.com\/blogs\/wp-content\/uploads\/2020\/02\/dns-query-789x26.png 789w\" sizes=\"(max-width: 1035px) 100vw, 1035px\" \/><figcaption id=\"caption-attachment-88617\" class=\"wp-caption-text\">Fig.10 DNS query to get the public address of sfml<\/figcaption><\/figure>\n<figure id=\"attachment_88618\" aria-describedby=\"caption-attachment-88618\" style=\"width: 1154px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-88618 size-full\" src=\"https:\/\/blogs.quickheal.com\/wp-content\/uploads\/2020\/02\/getting-public-ip-of-domain.png\" alt=\"\" width=\"1154\" height=\"72\" srcset=\"https:\/\/www.quickheal.com\/blogs\/wp-content\/uploads\/2020\/02\/getting-public-ip-of-domain.png 1154w, https:\/\/www.quickheal.com\/blogs\/wp-content\/uploads\/2020\/02\/getting-public-ip-of-domain-300x19.png 300w, https:\/\/www.quickheal.com\/blogs\/wp-content\/uploads\/2020\/02\/getting-public-ip-of-domain-768x48.png 768w, https:\/\/www.quickheal.com\/blogs\/wp-content\/uploads\/2020\/02\/getting-public-ip-of-domain-650x41.png 650w, https:\/\/www.quickheal.com\/blogs\/wp-content\/uploads\/2020\/02\/getting-public-ip-of-domain-789x49.png 789w\" sizes=\"(max-width: 1154px) 100vw, 1154px\" \/><figcaption id=\"caption-attachment-88618\" class=\"wp-caption-text\">Fig.11 Query to get public of host<\/figcaption><\/figure>\n<p>It then initiates a connection to CnC (IP: 92.222.149.118) over port 18 but may not connect due to a closed port.<br \/>\n\u201cThere was no response from the server when we tried to connect via telnet over port number 18, but as we were trying to connect over other ports, it gave successful response for port number 22 (SSH) .\u201d<\/p>\n<p>The network connection happens before encryption starts and in earlier versions, it was not clear what malware intends to achieve. But in version 7, we have observed that after a successful connection to CnC (though IP address is different), it sends locally generated RSA private key over CnC which might be the case of version 6.<\/p>\n<p style=\"text-align: left;\"><strong>Evoloution of Ouroboros<\/strong><\/p>\n<p style=\"text-align: left;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-88619 \" src=\"https:\/\/blogs.quickheal.com\/wp-content\/uploads\/2020\/02\/Document-2.png.png\" alt=\"\" width=\"692\" height=\"916\" srcset=\"https:\/\/www.quickheal.com\/blogs\/wp-content\/uploads\/2020\/02\/Document-2.png.png 1265w, https:\/\/www.quickheal.com\/blogs\/wp-content\/uploads\/2020\/02\/Document-2.png-227x300.png 227w, https:\/\/www.quickheal.com\/blogs\/wp-content\/uploads\/2020\/02\/Document-2.png-768x1016.png 768w, https:\/\/www.quickheal.com\/blogs\/wp-content\/uploads\/2020\/02\/Document-2.png-295x390.png 295w, https:\/\/www.quickheal.com\/blogs\/wp-content\/uploads\/2020\/02\/Document-2.png-789x1043.png 789w\" sizes=\"(max-width: 692px) 100vw, 692px\" \/><\/p>\n<p><strong>Analysis of Ouroboros version 7<\/strong><br \/>\nIn this version, CnC ( 80.82.69.52 ) was live , so we were able to perform network analysis.<\/p>\n<p>Before it establishes the connection, it checks for ids.txt, if it is already present in ProgramData then it skips the connection and does the encryption with an offline key.<br \/>\nBut if ids.txt is not present, it connects with CnC and resolves the public address of the host, same as in version 6.<\/p>\n<p>After resolving public address of the host, it generates RSA key, not using any kind of library for its generation but it has implemented the whole algorithm and has locally generated the public and private key.<\/p>\n<p>Following is the part where the key gets generated.<\/p>\n<figure id=\"attachment_88620\" aria-describedby=\"caption-attachment-88620\" style=\"width: 515px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-88620 size-full\" src=\"https:\/\/blogs.quickheal.com\/wp-content\/uploads\/2020\/02\/formation-of-private-key.png\" alt=\"\" width=\"515\" height=\"155\" srcset=\"https:\/\/www.quickheal.com\/blogs\/wp-content\/uploads\/2020\/02\/formation-of-private-key.png 515w, https:\/\/www.quickheal.com\/blogs\/wp-content\/uploads\/2020\/02\/formation-of-private-key-300x90.png 300w\" sizes=\"(max-width: 515px) 100vw, 515px\" \/><figcaption id=\"caption-attachment-88620\" class=\"wp-caption-text\">Fig.12 Private key locally generated<\/figcaption><\/figure>\n<p style=\"text-align: left;\">After forming a private key, it sends the same to CnC and gives the response as \u201cActive\u201d.<\/p>\n<figure id=\"attachment_88621\" aria-describedby=\"caption-attachment-88621\" style=\"width: 603px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-88621 \" src=\"https:\/\/blogs.quickheal.com\/wp-content\/uploads\/2020\/02\/transfer-of-private-key.png\" alt=\"\" width=\"603\" height=\"484\" srcset=\"https:\/\/www.quickheal.com\/blogs\/wp-content\/uploads\/2020\/02\/transfer-of-private-key.png 742w, https:\/\/www.quickheal.com\/blogs\/wp-content\/uploads\/2020\/02\/transfer-of-private-key-300x241.png 300w, https:\/\/www.quickheal.com\/blogs\/wp-content\/uploads\/2020\/02\/transfer-of-private-key-486x390.png 486w\" sizes=\"(max-width: 603px) 100vw, 603px\" \/><figcaption id=\"caption-attachment-88621\" class=\"wp-caption-text\">Fig.13 Private key send over CnC<\/figcaption><\/figure>\n<p style=\"text-align: left;\"><strong>Ransom Note in Version 7<\/strong><br \/>\nAfter encryption, it drops info.txt and uiapp.exe in C:\\ProgramData and deletes the pKey.exe.Uiapp.exe is the .Net file is created in order to drop the ransom note.<\/p>\n<figure id=\"attachment_88622\" aria-describedby=\"caption-attachment-88622\" style=\"width: 605px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-88622 \" src=\"https:\/\/blogs.quickheal.com\/wp-content\/uploads\/2020\/02\/network_ransomNote.png\" alt=\"\" width=\"605\" height=\"511\" srcset=\"https:\/\/www.quickheal.com\/blogs\/wp-content\/uploads\/2020\/02\/network_ransomNote.png 764w, https:\/\/www.quickheal.com\/blogs\/wp-content\/uploads\/2020\/02\/network_ransomNote-300x253.png 300w, https:\/\/www.quickheal.com\/blogs\/wp-content\/uploads\/2020\/02\/network_ransomNote-462x390.png 462w\" sizes=\"(max-width: 605px) 100vw, 605px\" \/><figcaption id=\"caption-attachment-88622\" class=\"wp-caption-text\">Fig.14 Ransom note Version 7<\/figcaption><\/figure>\n<p style=\"text-align: left;\">Quick Heal provides multilevel protection for this family. It detects and deletes it in real-time scenario as well as in behaviour base detection and ARW module.<\/p>\n<p style=\"text-align: left;\"><strong>Conclusion<\/strong><br \/>\nRansomwares are now not only using packers but also using libraries as well as different instruction set to make the analysis difficult. And noticing that other ransomwares (LockerGoga) have also used similar techniques, we can say that this trend will be followed in the future.<\/p>\n<p><strong>IOCs<\/strong><br \/>\nVersion6:<\/p>\n<p>1E73E78E60E3A2255C37D7181ADF16E6<br \/>\n1EA66E610493B9DB3F5AA6DA82CA2CE7<br \/>\n560EE81F4250138CE063FEC3F387690C<br \/>\nB316DB79241100B0E86C11352DD169A0<br \/>\n6330639300E22E956CC50CCBD4FD027E<\/p>\n<p>Version7:<br \/>\n117C3707F4D8DB004A0E7EF86350612B<br \/>\n15F32A4EE7B75AEFA308866B4BD79539<\/p>\n<p><strong>Subject Matter Expert<\/strong><br \/>\nManisha Prajapati, Pooja Birajdar | Quick Heal Security Labs<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ransomware authors keep exploring new ways to test their strengths against various malware evasion techniques. The ransomware known as \u201cOuroboros\u201d is intensifying its footprint in the field by bringing more and more advancements in its behavior as it updates its version. This analysis provides the behaviour of version 6, few earlier variants of it and [&hellip;]<\/p>\n","protected":false},"author":70,"featured_media":88592,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1671,910,1661],"tags":[49,50],"class_list":["post-88591","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-encryption","category-ransomware","category-rdp","tag-malware","tag-ransomware"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.quickheal.com\/blogs\/wp-json\/wp\/v2\/posts\/88591"}],"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\/70"}],"replies":[{"embeddable":true,"href":"https:\/\/www.quickheal.com\/blogs\/wp-json\/wp\/v2\/comments?post=88591"}],"version-history":[{"count":28,"href":"https:\/\/www.quickheal.com\/blogs\/wp-json\/wp\/v2\/posts\/88591\/revisions"}],"predecessor-version":[{"id":91760,"href":"https:\/\/www.quickheal.com\/blogs\/wp-json\/wp\/v2\/posts\/88591\/revisions\/91760"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.quickheal.com\/blogs\/wp-json\/wp\/v2\/media\/88592"}],"wp:attachment":[{"href":"https:\/\/www.quickheal.com\/blogs\/wp-json\/wp\/v2\/media?parent=88591"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.quickheal.com\/blogs\/wp-json\/wp\/v2\/categories?post=88591"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.quickheal.com\/blogs\/wp-json\/wp\/v2\/tags?post=88591"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}