{"id":310,"date":"2025-09-29T21:50:33","date_gmt":"2025-09-29T18:50:33","guid":{"rendered":"https:\/\/dinodevs.com\/blog\/?p=310"},"modified":"2025-09-30T02:09:13","modified_gmt":"2025-09-29T23:09:13","slug":"deploying-faustctf-vulnbox-on-hetzner","status":"publish","type":"post","link":"https:\/\/dinodevs.com\/blog\/deploying-faustctf-vulnbox-on-hetzner\/","title":{"rendered":"Deploying FaustCTF Vulnbox on Hetzner"},"content":{"rendered":"\n<p>Hetzner sponsored the infrastructure of <a href=\"https:\/\/2025.faustctf.net\/\">FaustCTF 2025<\/a> and also provided a 10\u20ac coupon for every team that wanted to host their vulnbox on their infrastructure for free.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"965\" height=\"470\" src=\"https:\/\/dinodevs.com\/blog\/wp-content\/uploads\/2025\/09\/faustctf-downloads-message.png\" alt=\"\" class=\"wp-image-315\" srcset=\"https:\/\/dinodevs.com\/blog\/wp-content\/uploads\/2025\/09\/faustctf-downloads-message.png 965w, https:\/\/dinodevs.com\/blog\/wp-content\/uploads\/2025\/09\/faustctf-downloads-message-300x146.png 300w, https:\/\/dinodevs.com\/blog\/wp-content\/uploads\/2025\/09\/faustctf-downloads-message-768x374.png 768w\" sizes=\"auto, (max-width: 965px) 100vw, 965px\" \/><figcaption class=\"wp-element-caption\">Message from the FaustCTF organisers on each team&#8217;s profile page.<\/figcaption><\/figure>\n\n\n\n<p>In this article we will go through the steps to deploy the vulnbox provided by the FaustCTF organizers on a Hetzner server. You can <a href=\"https:\/\/hetzner.cloud\/?ref=GQoLcJHrdZLk\">create your Hetzner using our referral link<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Introduction<\/h2>\n\n\n\n<p>The FaustCTF is an Attack\/Defense competition organized yearly. In order to participate in the competition, the registered teams have to self host the vulnbox (a VM with the competition&#8217;s services) given by the organizers.<\/p>\n\n\n\n<p>The organizers offer the vulnbox in two formats:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>an OVA container &#8211; a format commonly used with virtualization software like Virtual Box<\/li>\n\n\n\n<li>a QCOW2 image &#8211; a QEMU formal compatible with multiple hypervisors and some cloud providers<\/li>\n<\/ul>\n\n\n\n<p>Unfortunately, Hetzner doesn&#8217;t directly support either of these formats, but their rescue mode can be utilized to prepare the server. Since this approach was not clearly documented on the internet, we will go through it step by step.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Create Account and Redeem Code<\/h2>\n\n\n\n<p>We will create a new Hetzner account to be used for our this team and use the code provided by the FaustCTF organizers. If you wish, you can create your account following our referral link.<\/p>\n\n\n\n<p>After creating your account, to redeem the code, head to the Console, click &#8220;Usage&#8221; on the navigation bar and click the &#8220;Redeem Code&#8221;. A pop up will appear to insert the code.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"751\" height=\"623\" src=\"https:\/\/dinodevs.com\/blog\/wp-content\/uploads\/2025\/09\/faustctf-redeem-code.png\" alt=\"\" class=\"wp-image-318\" srcset=\"https:\/\/dinodevs.com\/blog\/wp-content\/uploads\/2025\/09\/faustctf-redeem-code.png 751w, https:\/\/dinodevs.com\/blog\/wp-content\/uploads\/2025\/09\/faustctf-redeem-code-300x249.png 300w\" sizes=\"auto, (max-width: 751px) 100vw, 751px\" \/><figcaption class=\"wp-element-caption\">You can redeem Hetzner codes by visiting the &#8220;Usage&#8221; section on Hetzner Console.<\/figcaption><\/figure>\n\n\n\n<p>In our case, using the code provided by the FaustCTF organizer we got 10\u20ac of credits, enough to host our vulnbox for the 8 hours of the competition.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Starting a server<\/h2>\n\n\n\n<p>To start preparing our server, we will set up a simple Ubuntu VPS to use it as a base and then convert it to the vulnbox. To do so, while on Hetzner Console, go to &#8220;Projects&#8221;, select the &#8220;Default&#8221; project, and under the &#8220;Servers&#8221; click &#8220;Add Server&#8221;. <\/p>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"763\" height=\"292\" data-id=\"319\" src=\"https:\/\/dinodevs.com\/blog\/wp-content\/uploads\/2025\/09\/hetzner-projects.png\" alt=\"\" class=\"wp-image-319\" srcset=\"https:\/\/dinodevs.com\/blog\/wp-content\/uploads\/2025\/09\/hetzner-projects.png 763w, https:\/\/dinodevs.com\/blog\/wp-content\/uploads\/2025\/09\/hetzner-projects-300x115.png 300w\" sizes=\"auto, (max-width: 763px) 100vw, 763px\" \/><figcaption class=\"wp-element-caption\">Select the default project or create a new one.<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"851\" height=\"237\" data-id=\"320\" src=\"https:\/\/dinodevs.com\/blog\/wp-content\/uploads\/2025\/09\/hetzner-project-add-server.png\" alt=\"\" class=\"wp-image-320\" srcset=\"https:\/\/dinodevs.com\/blog\/wp-content\/uploads\/2025\/09\/hetzner-project-add-server.png 851w, https:\/\/dinodevs.com\/blog\/wp-content\/uploads\/2025\/09\/hetzner-project-add-server-300x84.png 300w, https:\/\/dinodevs.com\/blog\/wp-content\/uploads\/2025\/09\/hetzner-project-add-server-768x214.png 768w\" sizes=\"auto, (max-width: 851px) 100vw, 851px\" \/><figcaption class=\"wp-element-caption\">Select &#8220;Add Server&#8221;.<\/figcaption><\/figure>\n<\/figure>\n\n\n\n<p>For the new server, select the &#8220;Location&#8221; of your preference (e.g. Falkenstein at eu-central), select Ubuntu as &#8220;Image&#8221;, for &#8220;Type&#8221; select the &#8220;Shared vCPU&#8221; option with the &#8220;x86 (Intel\/AMD)&#8221; variant in combination with &#8220;CPX41&#8221; (8 vCPUs, 16GB RAM, 240GB SSD, but you can scale this later), and apart from the &#8220;Name&#8221; that you can change, leave the rest to default. (Note that the RAM selected on this step should be enough so that we can download the vulnbox on the RAM disk later on through the rescue mode).<\/p>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-2 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"766\" height=\"594\" data-id=\"321\" src=\"https:\/\/dinodevs.com\/blog\/wp-content\/uploads\/2025\/09\/hetzner-vulnbox-location.png\" alt=\"\" class=\"wp-image-321\" srcset=\"https:\/\/dinodevs.com\/blog\/wp-content\/uploads\/2025\/09\/hetzner-vulnbox-location.png 766w, https:\/\/dinodevs.com\/blog\/wp-content\/uploads\/2025\/09\/hetzner-vulnbox-location-300x233.png 300w\" sizes=\"auto, (max-width: 766px) 100vw, 766px\" \/><figcaption class=\"wp-element-caption\">Select server location.<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"764\" height=\"697\" data-id=\"322\" src=\"https:\/\/dinodevs.com\/blog\/wp-content\/uploads\/2025\/09\/hetzner-vulnbox-image.png\" alt=\"\" class=\"wp-image-322\" srcset=\"https:\/\/dinodevs.com\/blog\/wp-content\/uploads\/2025\/09\/hetzner-vulnbox-image.png 764w, https:\/\/dinodevs.com\/blog\/wp-content\/uploads\/2025\/09\/hetzner-vulnbox-image-300x274.png 300w\" sizes=\"auto, (max-width: 764px) 100vw, 764px\" \/><figcaption class=\"wp-element-caption\">Select server image.<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"752\" height=\"644\" data-id=\"323\" src=\"https:\/\/dinodevs.com\/blog\/wp-content\/uploads\/2025\/09\/hetzner-vulnbox-type-1.png\" alt=\"\" class=\"wp-image-323\" srcset=\"https:\/\/dinodevs.com\/blog\/wp-content\/uploads\/2025\/09\/hetzner-vulnbox-type-1.png 752w, https:\/\/dinodevs.com\/blog\/wp-content\/uploads\/2025\/09\/hetzner-vulnbox-type-1-300x257.png 300w\" sizes=\"auto, (max-width: 752px) 100vw, 752px\" \/><figcaption class=\"wp-element-caption\">Select server type.<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"759\" height=\"381\" data-id=\"324\" src=\"https:\/\/dinodevs.com\/blog\/wp-content\/uploads\/2025\/09\/hetzner-vulnbox-type-2.png\" alt=\"\" class=\"wp-image-324\" srcset=\"https:\/\/dinodevs.com\/blog\/wp-content\/uploads\/2025\/09\/hetzner-vulnbox-type-2.png 759w, https:\/\/dinodevs.com\/blog\/wp-content\/uploads\/2025\/09\/hetzner-vulnbox-type-2-300x151.png 300w\" sizes=\"auto, (max-width: 759px) 100vw, 759px\" \/><figcaption class=\"wp-element-caption\">Select server specs.<\/figcaption><\/figure>\n<\/figure>\n\n\n\n<p>After creating the server, click on it to visit its management panel.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Operating in the Rescue Mode<\/h2>\n\n\n\n<p>Lets continue by enabling the rescue mode on the server we prepared. You can do that by visiting the &#8220;Rescue&#8221; tab and clicking &#8220;Enable rescue &amp; power cycle&#8221; (if requested for a public key, ignore it and continue). If enabled, you will see a some new credentials on the screen, copy them as we will use them in a bit (you will lose them if you refresh the page). Then open the &#8220;Console&#8221; through the &#8220;Actions&#8221; dropdown on the top right of the page. A new pop up console will appear and you will be able to use the credentials given to login.<\/p>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-3 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"889\" height=\"677\" data-id=\"328\" src=\"https:\/\/dinodevs.com\/blog\/wp-content\/uploads\/2025\/09\/hetzner-vulnbox-enable-rescue.png\" alt=\"\" class=\"wp-image-328\" srcset=\"https:\/\/dinodevs.com\/blog\/wp-content\/uploads\/2025\/09\/hetzner-vulnbox-enable-rescue.png 889w, https:\/\/dinodevs.com\/blog\/wp-content\/uploads\/2025\/09\/hetzner-vulnbox-enable-rescue-300x228.png 300w, https:\/\/dinodevs.com\/blog\/wp-content\/uploads\/2025\/09\/hetzner-vulnbox-enable-rescue-768x585.png 768w\" sizes=\"auto, (max-width: 889px) 100vw, 889px\" \/><figcaption class=\"wp-element-caption\">Enable the rescue mode and reboot the server.<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"891\" height=\"745\" data-id=\"326\" src=\"https:\/\/dinodevs.com\/blog\/wp-content\/uploads\/2025\/09\/hetzner-vulnbox-enable-rescue-2.png\" alt=\"\" class=\"wp-image-326\" srcset=\"https:\/\/dinodevs.com\/blog\/wp-content\/uploads\/2025\/09\/hetzner-vulnbox-enable-rescue-2.png 891w, https:\/\/dinodevs.com\/blog\/wp-content\/uploads\/2025\/09\/hetzner-vulnbox-enable-rescue-2-300x251.png 300w, https:\/\/dinodevs.com\/blog\/wp-content\/uploads\/2025\/09\/hetzner-vulnbox-enable-rescue-2-768x642.png 768w\" sizes=\"auto, (max-width: 891px) 100vw, 891px\" \/><figcaption class=\"wp-element-caption\">Copy the root password for the rescue mode.<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"888\" height=\"743\" data-id=\"327\" src=\"https:\/\/dinodevs.com\/blog\/wp-content\/uploads\/2025\/09\/hetzner-vulnbox-enable-rescue-3.png\" alt=\"\" class=\"wp-image-327\" srcset=\"https:\/\/dinodevs.com\/blog\/wp-content\/uploads\/2025\/09\/hetzner-vulnbox-enable-rescue-3.png 888w, https:\/\/dinodevs.com\/blog\/wp-content\/uploads\/2025\/09\/hetzner-vulnbox-enable-rescue-3-300x251.png 300w, https:\/\/dinodevs.com\/blog\/wp-content\/uploads\/2025\/09\/hetzner-vulnbox-enable-rescue-3-768x643.png 768w\" sizes=\"auto, (max-width: 888px) 100vw, 888px\" \/><figcaption class=\"wp-element-caption\">Open up a new console to connect to the rescue mode of the server.<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"622\" data-id=\"325\" src=\"https:\/\/dinodevs.com\/blog\/wp-content\/uploads\/2025\/09\/hetzner-vulnbox-enable-rescue-4-1024x622.png\" alt=\"\" class=\"wp-image-325\" srcset=\"https:\/\/dinodevs.com\/blog\/wp-content\/uploads\/2025\/09\/hetzner-vulnbox-enable-rescue-4-1024x622.png 1024w, https:\/\/dinodevs.com\/blog\/wp-content\/uploads\/2025\/09\/hetzner-vulnbox-enable-rescue-4-300x182.png 300w, https:\/\/dinodevs.com\/blog\/wp-content\/uploads\/2025\/09\/hetzner-vulnbox-enable-rescue-4-768x467.png 768w, https:\/\/dinodevs.com\/blog\/wp-content\/uploads\/2025\/09\/hetzner-vulnbox-enable-rescue-4.png 1040w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Login using <code>root<\/code> and the password given.<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"616\" data-id=\"329\" src=\"https:\/\/dinodevs.com\/blog\/wp-content\/uploads\/2025\/09\/hetzner-vulnbox-enable-rescue-5-1024x616.png\" alt=\"\" class=\"wp-image-329\" srcset=\"https:\/\/dinodevs.com\/blog\/wp-content\/uploads\/2025\/09\/hetzner-vulnbox-enable-rescue-5-1024x616.png 1024w, https:\/\/dinodevs.com\/blog\/wp-content\/uploads\/2025\/09\/hetzner-vulnbox-enable-rescue-5-300x180.png 300w, https:\/\/dinodevs.com\/blog\/wp-content\/uploads\/2025\/09\/hetzner-vulnbox-enable-rescue-5-768x462.png 768w, https:\/\/dinodevs.com\/blog\/wp-content\/uploads\/2025\/09\/hetzner-vulnbox-enable-rescue-5.png 1039w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">You now have access to the rescue mode cli.<\/figcaption><\/figure>\n<\/figure>\n\n\n\n<p>The first problem one may face when using the rescue mode is that the keyboard has a German layout (e.g. typing &#8220;z&#8221; may be interpreted as &#8220;y&#8221;), causing problems when copy pasting commands. So lets change that by changing the keyboard layout\/language.<\/p>\n\n\n\n<p>We will start by running <code>dpkg-reconfigure keyboard-configuration<\/code> which you can paste as <code>dpkg\/reconfigure kezboard\/configuration<\/code> so that it can be translated to the correct command using the German keyboard. On the configuration menu, select the <code>Generic 104-key PC<\/code> keyboard and then for language select <code>other<\/code> &gt; <code>English (US)<\/code> &gt; <code>English (US)<\/code>, you can leave the rest as is. As soon as the configuration is done, execute <code>setupcon<\/code> and the keyboard will now be in <code>English (US)<\/code>.<\/p>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-4 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"620\" data-id=\"331\" src=\"https:\/\/dinodevs.com\/blog\/wp-content\/uploads\/2025\/09\/hetzner-vulnbox-enable-rescue-fix-keyboard-1024x620.png\" alt=\"\" class=\"wp-image-331\" srcset=\"https:\/\/dinodevs.com\/blog\/wp-content\/uploads\/2025\/09\/hetzner-vulnbox-enable-rescue-fix-keyboard-1024x620.png 1024w, https:\/\/dinodevs.com\/blog\/wp-content\/uploads\/2025\/09\/hetzner-vulnbox-enable-rescue-fix-keyboard-300x182.png 300w, https:\/\/dinodevs.com\/blog\/wp-content\/uploads\/2025\/09\/hetzner-vulnbox-enable-rescue-fix-keyboard-768x465.png 768w, https:\/\/dinodevs.com\/blog\/wp-content\/uploads\/2025\/09\/hetzner-vulnbox-enable-rescue-fix-keyboard.png 1038w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Run <code>dpkg-reconfigure keyboard-configuration<\/code> by pasting <code>dpkg\/reconfigure kezboard\/configuration<\/code><\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"618\" data-id=\"332\" src=\"https:\/\/dinodevs.com\/blog\/wp-content\/uploads\/2025\/09\/hetzner-vulnbox-enable-rescue-fix-keyboard-2-1024x618.png\" alt=\"\" class=\"wp-image-332\" srcset=\"https:\/\/dinodevs.com\/blog\/wp-content\/uploads\/2025\/09\/hetzner-vulnbox-enable-rescue-fix-keyboard-2-1024x618.png 1024w, https:\/\/dinodevs.com\/blog\/wp-content\/uploads\/2025\/09\/hetzner-vulnbox-enable-rescue-fix-keyboard-2-300x181.png 300w, https:\/\/dinodevs.com\/blog\/wp-content\/uploads\/2025\/09\/hetzner-vulnbox-enable-rescue-fix-keyboard-2-768x463.png 768w, https:\/\/dinodevs.com\/blog\/wp-content\/uploads\/2025\/09\/hetzner-vulnbox-enable-rescue-fix-keyboard-2.png 1039w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Select <code>Generic 104-key PC<\/code><\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"622\" data-id=\"333\" src=\"https:\/\/dinodevs.com\/blog\/wp-content\/uploads\/2025\/09\/hetzner-vulnbox-enable-rescue-fix-keyboard-3-1024x622.png\" alt=\"\" class=\"wp-image-333\" srcset=\"https:\/\/dinodevs.com\/blog\/wp-content\/uploads\/2025\/09\/hetzner-vulnbox-enable-rescue-fix-keyboard-3-1024x622.png 1024w, https:\/\/dinodevs.com\/blog\/wp-content\/uploads\/2025\/09\/hetzner-vulnbox-enable-rescue-fix-keyboard-3-300x182.png 300w, https:\/\/dinodevs.com\/blog\/wp-content\/uploads\/2025\/09\/hetzner-vulnbox-enable-rescue-fix-keyboard-3-768x466.png 768w, https:\/\/dinodevs.com\/blog\/wp-content\/uploads\/2025\/09\/hetzner-vulnbox-enable-rescue-fix-keyboard-3.png 1038w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Select <code>English (US)<\/code><\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"623\" data-id=\"330\" src=\"https:\/\/dinodevs.com\/blog\/wp-content\/uploads\/2025\/09\/hetzner-vulnbox-enable-rescue-fix-keyboard-4-1024x623.png\" alt=\"\" class=\"wp-image-330\" srcset=\"https:\/\/dinodevs.com\/blog\/wp-content\/uploads\/2025\/09\/hetzner-vulnbox-enable-rescue-fix-keyboard-4-1024x623.png 1024w, https:\/\/dinodevs.com\/blog\/wp-content\/uploads\/2025\/09\/hetzner-vulnbox-enable-rescue-fix-keyboard-4-300x183.png 300w, https:\/\/dinodevs.com\/blog\/wp-content\/uploads\/2025\/09\/hetzner-vulnbox-enable-rescue-fix-keyboard-4-768x468.png 768w, https:\/\/dinodevs.com\/blog\/wp-content\/uploads\/2025\/09\/hetzner-vulnbox-enable-rescue-fix-keyboard-4.png 1038w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Run <code>setupcon<\/code> so that the changes are applied<\/figcaption><\/figure>\n<\/figure>\n\n\n\n<p>Let&#8217;s now download the vulnbox OVA container provided by the CTF organisers. You can use <code>wget<\/code> to do that, just be careful when pasting the URL as it may be entered with <code>https;\/\/<\/code> instead of <code>https:\/\/<\/code>. When the download completes, extract the OVA using <code>tar -xvf vulnbox.ova<\/code> and then delete the OVA file using <code>rm vulnbox.ova<\/code> (to save space).<\/p>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-5 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"619\" data-id=\"336\" src=\"https:\/\/dinodevs.com\/blog\/wp-content\/uploads\/2025\/09\/hetzner-vulnbox-enable-rescue-download-1-1024x619.png\" alt=\"\" class=\"wp-image-336\" srcset=\"https:\/\/dinodevs.com\/blog\/wp-content\/uploads\/2025\/09\/hetzner-vulnbox-enable-rescue-download-1-1024x619.png 1024w, https:\/\/dinodevs.com\/blog\/wp-content\/uploads\/2025\/09\/hetzner-vulnbox-enable-rescue-download-1-300x181.png 300w, https:\/\/dinodevs.com\/blog\/wp-content\/uploads\/2025\/09\/hetzner-vulnbox-enable-rescue-download-1-768x464.png 768w, https:\/\/dinodevs.com\/blog\/wp-content\/uploads\/2025\/09\/hetzner-vulnbox-enable-rescue-download-1.png 1037w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Download the vulnbox OVA from the FaustCTF website.<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"619\" data-id=\"335\" src=\"https:\/\/dinodevs.com\/blog\/wp-content\/uploads\/2025\/09\/image-1-1024x619.png\" alt=\"\" class=\"wp-image-335\" srcset=\"https:\/\/dinodevs.com\/blog\/wp-content\/uploads\/2025\/09\/image-1-1024x619.png 1024w, https:\/\/dinodevs.com\/blog\/wp-content\/uploads\/2025\/09\/image-1-300x181.png 300w, https:\/\/dinodevs.com\/blog\/wp-content\/uploads\/2025\/09\/image-1-768x464.png 768w, https:\/\/dinodevs.com\/blog\/wp-content\/uploads\/2025\/09\/image-1.png 1039w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Extract the contents of the vulnbox OVA files.<\/figcaption><\/figure>\n<\/figure>\n\n\n\n<p>Now, we have the vulnbox&#8217;s disk in the form of a VMDK file, and we can clone it to our server&#8217;s disk using <code>qemu-img<\/code> to convert it and write the results directly on the <code>\/dev\/sda<\/code> where the main disk of the server is (this will take one or two minutes).<\/p>\n\n\n\n<pre class=\"wp-block-code lang-bash\"><code>qemu-img convert -O raw vulnbox-disk1.vmdk \/dev\/sda<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"618\" src=\"https:\/\/dinodevs.com\/blog\/wp-content\/uploads\/2025\/09\/hetzner-vulnbox-enable-rescue-write-vmdk-1024x618.png\" alt=\"\" class=\"wp-image-337\" srcset=\"https:\/\/dinodevs.com\/blog\/wp-content\/uploads\/2025\/09\/hetzner-vulnbox-enable-rescue-write-vmdk-1024x618.png 1024w, https:\/\/dinodevs.com\/blog\/wp-content\/uploads\/2025\/09\/hetzner-vulnbox-enable-rescue-write-vmdk-300x181.png 300w, https:\/\/dinodevs.com\/blog\/wp-content\/uploads\/2025\/09\/hetzner-vulnbox-enable-rescue-write-vmdk-768x463.png 768w, https:\/\/dinodevs.com\/blog\/wp-content\/uploads\/2025\/09\/hetzner-vulnbox-enable-rescue-write-vmdk.png 1039w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Write the vulnbox disk on the server&#8217;s disk, then <code>sync<\/code> and <code>reboot<\/code>.<\/figcaption><\/figure>\n\n\n\n<p>The server should now be ready to boot as the vulnbox. You can now copy the random root password and connect to it using SSH, to configure the vulnbox so that it can be used with your team. <\/p>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-6 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"620\" data-id=\"339\" src=\"https:\/\/dinodevs.com\/blog\/wp-content\/uploads\/2025\/09\/hetzner-vulnbox-enable-vulnbox-booted-1024x620.png\" alt=\"\" class=\"wp-image-339\" srcset=\"https:\/\/dinodevs.com\/blog\/wp-content\/uploads\/2025\/09\/hetzner-vulnbox-enable-vulnbox-booted-1024x620.png 1024w, https:\/\/dinodevs.com\/blog\/wp-content\/uploads\/2025\/09\/hetzner-vulnbox-enable-vulnbox-booted-300x182.png 300w, https:\/\/dinodevs.com\/blog\/wp-content\/uploads\/2025\/09\/hetzner-vulnbox-enable-vulnbox-booted-768x465.png 768w, https:\/\/dinodevs.com\/blog\/wp-content\/uploads\/2025\/09\/hetzner-vulnbox-enable-vulnbox-booted.png 1039w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Vulnbox booted is now booted.<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"973\" height=\"339\" data-id=\"340\" src=\"https:\/\/dinodevs.com\/blog\/wp-content\/uploads\/2025\/09\/hetzner-vulnbox-enable-vulnbox-config-1.png\" alt=\"\" class=\"wp-image-340\" srcset=\"https:\/\/dinodevs.com\/blog\/wp-content\/uploads\/2025\/09\/hetzner-vulnbox-enable-vulnbox-config-1.png 973w, https:\/\/dinodevs.com\/blog\/wp-content\/uploads\/2025\/09\/hetzner-vulnbox-enable-vulnbox-config-1-300x105.png 300w, https:\/\/dinodevs.com\/blog\/wp-content\/uploads\/2025\/09\/hetzner-vulnbox-enable-vulnbox-config-1-768x268.png 768w\" sizes=\"auto, (max-width: 973px) 100vw, 973px\" \/><\/figure>\n<\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Conclusion<\/h2>\n\n\n\n<p>To sum up, we were able to utilise the VMDK disk file of the provided vulnbox OVA container to easily import the FaustCTF on a Hetzner server. During the competition, we had no problem with our vulnbox and our total credits consumption was around 3\u20ac (running the CPX41 for about 8 hours).<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hetzner sponsored the infrastructure of FaustCTF 2025 and also provided a 10\u20ac coupon for every team that wanted to host their vulnbox on their infrastructure for free. In this article we will go through the steps to deploy the vulnbox provided by the FaustCTF organizers on a Hetzner server. You can create your Hetzner using [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":314,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[19,6,14],"class_list":["post-310","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized","tag-ctf","tag-hacking","tag-server"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.0 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Deploying FaustCTF Vulnbox on Hetzner - DinoDevs<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/dinodevs.com\/blog\/deploying-faustctf-vulnbox-on-hetzner\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Deploying FaustCTF Vulnbox on Hetzner - DinoDevs\" \/>\n<meta property=\"og:description\" content=\"Hetzner sponsored the infrastructure of FaustCTF 2025 and also provided a 10\u20ac coupon for every team that wanted to host their vulnbox on their infrastructure for free. In this article we will go through the steps to deploy the vulnbox provided by the FaustCTF organizers on a Hetzner server. You can create your Hetzner using [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/dinodevs.com\/blog\/deploying-faustctf-vulnbox-on-hetzner\/\" \/>\n<meta property=\"og:site_name\" content=\"DinoDevs\" \/>\n<meta property=\"article:published_time\" content=\"2025-09-29T18:50:33+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-09-29T23:09:13+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/dinodevs.com\/blog\/wp-content\/uploads\/2025\/09\/faustctf-hetzner.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t<meta property=\"og:image:height\" content=\"346\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Athanasios Grammatopoulos\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Athanasios Grammatopoulos\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"9 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/dinodevs.com\/blog\/deploying-faustctf-vulnbox-on-hetzner\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/dinodevs.com\/blog\/deploying-faustctf-vulnbox-on-hetzner\/\"},\"author\":{\"name\":\"Athanasios Grammatopoulos\",\"@id\":\"https:\/\/dinodevs.com\/blog\/#\/schema\/person\/fccac7bcc5374cede43de49a450dfaf3\"},\"headline\":\"Deploying FaustCTF Vulnbox on Hetzner\",\"datePublished\":\"2025-09-29T18:50:33+00:00\",\"dateModified\":\"2025-09-29T23:09:13+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/dinodevs.com\/blog\/deploying-faustctf-vulnbox-on-hetzner\/\"},\"wordCount\":963,\"publisher\":{\"@id\":\"https:\/\/dinodevs.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/dinodevs.com\/blog\/deploying-faustctf-vulnbox-on-hetzner\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/dinodevs.com\/blog\/wp-content\/uploads\/2025\/09\/faustctf-hetzner.png\",\"keywords\":[\"ctf\",\"hacking\",\"server\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/dinodevs.com\/blog\/deploying-faustctf-vulnbox-on-hetzner\/\",\"url\":\"https:\/\/dinodevs.com\/blog\/deploying-faustctf-vulnbox-on-hetzner\/\",\"name\":\"Deploying FaustCTF Vulnbox on Hetzner - DinoDevs\",\"isPartOf\":{\"@id\":\"https:\/\/dinodevs.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/dinodevs.com\/blog\/deploying-faustctf-vulnbox-on-hetzner\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/dinodevs.com\/blog\/deploying-faustctf-vulnbox-on-hetzner\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/dinodevs.com\/blog\/wp-content\/uploads\/2025\/09\/faustctf-hetzner.png\",\"datePublished\":\"2025-09-29T18:50:33+00:00\",\"dateModified\":\"2025-09-29T23:09:13+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/dinodevs.com\/blog\/deploying-faustctf-vulnbox-on-hetzner\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/dinodevs.com\/blog\/deploying-faustctf-vulnbox-on-hetzner\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/dinodevs.com\/blog\/deploying-faustctf-vulnbox-on-hetzner\/#primaryimage\",\"url\":\"https:\/\/dinodevs.com\/blog\/wp-content\/uploads\/2025\/09\/faustctf-hetzner.png\",\"contentUrl\":\"https:\/\/dinodevs.com\/blog\/wp-content\/uploads\/2025\/09\/faustctf-hetzner.png\",\"width\":1024,\"height\":346},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/dinodevs.com\/blog\/deploying-faustctf-vulnbox-on-hetzner\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/dinodevs.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Deploying FaustCTF Vulnbox on Hetzner\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/dinodevs.com\/blog\/#website\",\"url\":\"https:\/\/dinodevs.com\/blog\/\",\"name\":\"DinoDevs\",\"description\":\"When in doubt, code it out.\",\"publisher\":{\"@id\":\"https:\/\/dinodevs.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/dinodevs.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/dinodevs.com\/blog\/#organization\",\"name\":\"DinoDevs\",\"url\":\"https:\/\/dinodevs.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/dinodevs.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/dinodevs.com\/blog\/wp-content\/uploads\/2025\/05\/dinodevs.cube_.png\",\"contentUrl\":\"https:\/\/dinodevs.com\/blog\/wp-content\/uploads\/2025\/05\/dinodevs.cube_.png\",\"width\":600,\"height\":600,\"caption\":\"DinoDevs\"},\"image\":{\"@id\":\"https:\/\/dinodevs.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/dinodevs.com\/blog\/#\/schema\/person\/fccac7bcc5374cede43de49a450dfaf3\",\"name\":\"Athanasios Grammatopoulos\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/dinodevs.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/0271fabc59edad96ed659fb1a3c4caf867a7324609e22d0b2cc25ad71d4c0d8c?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/0271fabc59edad96ed659fb1a3c4caf867a7324609e22d0b2cc25ad71d4c0d8c?s=96&d=mm&r=g\",\"caption\":\"Athanasios Grammatopoulos\"},\"sameAs\":[\"https:\/\/github.com\/GramThanos\"],\"url\":\"https:\/\/dinodevs.com\/blog\/author\/gramthanos\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Deploying FaustCTF Vulnbox on Hetzner - DinoDevs","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/dinodevs.com\/blog\/deploying-faustctf-vulnbox-on-hetzner\/","og_locale":"en_US","og_type":"article","og_title":"Deploying FaustCTF Vulnbox on Hetzner - DinoDevs","og_description":"Hetzner sponsored the infrastructure of FaustCTF 2025 and also provided a 10\u20ac coupon for every team that wanted to host their vulnbox on their infrastructure for free. In this article we will go through the steps to deploy the vulnbox provided by the FaustCTF organizers on a Hetzner server. You can create your Hetzner using [&hellip;]","og_url":"https:\/\/dinodevs.com\/blog\/deploying-faustctf-vulnbox-on-hetzner\/","og_site_name":"DinoDevs","article_published_time":"2025-09-29T18:50:33+00:00","article_modified_time":"2025-09-29T23:09:13+00:00","og_image":[{"width":1024,"height":346,"url":"https:\/\/dinodevs.com\/blog\/wp-content\/uploads\/2025\/09\/faustctf-hetzner.png","type":"image\/png"}],"author":"Athanasios Grammatopoulos","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Athanasios Grammatopoulos","Est. reading time":"9 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/dinodevs.com\/blog\/deploying-faustctf-vulnbox-on-hetzner\/#article","isPartOf":{"@id":"https:\/\/dinodevs.com\/blog\/deploying-faustctf-vulnbox-on-hetzner\/"},"author":{"name":"Athanasios Grammatopoulos","@id":"https:\/\/dinodevs.com\/blog\/#\/schema\/person\/fccac7bcc5374cede43de49a450dfaf3"},"headline":"Deploying FaustCTF Vulnbox on Hetzner","datePublished":"2025-09-29T18:50:33+00:00","dateModified":"2025-09-29T23:09:13+00:00","mainEntityOfPage":{"@id":"https:\/\/dinodevs.com\/blog\/deploying-faustctf-vulnbox-on-hetzner\/"},"wordCount":963,"publisher":{"@id":"https:\/\/dinodevs.com\/blog\/#organization"},"image":{"@id":"https:\/\/dinodevs.com\/blog\/deploying-faustctf-vulnbox-on-hetzner\/#primaryimage"},"thumbnailUrl":"https:\/\/dinodevs.com\/blog\/wp-content\/uploads\/2025\/09\/faustctf-hetzner.png","keywords":["ctf","hacking","server"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/dinodevs.com\/blog\/deploying-faustctf-vulnbox-on-hetzner\/","url":"https:\/\/dinodevs.com\/blog\/deploying-faustctf-vulnbox-on-hetzner\/","name":"Deploying FaustCTF Vulnbox on Hetzner - DinoDevs","isPartOf":{"@id":"https:\/\/dinodevs.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/dinodevs.com\/blog\/deploying-faustctf-vulnbox-on-hetzner\/#primaryimage"},"image":{"@id":"https:\/\/dinodevs.com\/blog\/deploying-faustctf-vulnbox-on-hetzner\/#primaryimage"},"thumbnailUrl":"https:\/\/dinodevs.com\/blog\/wp-content\/uploads\/2025\/09\/faustctf-hetzner.png","datePublished":"2025-09-29T18:50:33+00:00","dateModified":"2025-09-29T23:09:13+00:00","breadcrumb":{"@id":"https:\/\/dinodevs.com\/blog\/deploying-faustctf-vulnbox-on-hetzner\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/dinodevs.com\/blog\/deploying-faustctf-vulnbox-on-hetzner\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/dinodevs.com\/blog\/deploying-faustctf-vulnbox-on-hetzner\/#primaryimage","url":"https:\/\/dinodevs.com\/blog\/wp-content\/uploads\/2025\/09\/faustctf-hetzner.png","contentUrl":"https:\/\/dinodevs.com\/blog\/wp-content\/uploads\/2025\/09\/faustctf-hetzner.png","width":1024,"height":346},{"@type":"BreadcrumbList","@id":"https:\/\/dinodevs.com\/blog\/deploying-faustctf-vulnbox-on-hetzner\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/dinodevs.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Deploying FaustCTF Vulnbox on Hetzner"}]},{"@type":"WebSite","@id":"https:\/\/dinodevs.com\/blog\/#website","url":"https:\/\/dinodevs.com\/blog\/","name":"DinoDevs","description":"When in doubt, code it out.","publisher":{"@id":"https:\/\/dinodevs.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/dinodevs.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/dinodevs.com\/blog\/#organization","name":"DinoDevs","url":"https:\/\/dinodevs.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/dinodevs.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/dinodevs.com\/blog\/wp-content\/uploads\/2025\/05\/dinodevs.cube_.png","contentUrl":"https:\/\/dinodevs.com\/blog\/wp-content\/uploads\/2025\/05\/dinodevs.cube_.png","width":600,"height":600,"caption":"DinoDevs"},"image":{"@id":"https:\/\/dinodevs.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/dinodevs.com\/blog\/#\/schema\/person\/fccac7bcc5374cede43de49a450dfaf3","name":"Athanasios Grammatopoulos","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/dinodevs.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/0271fabc59edad96ed659fb1a3c4caf867a7324609e22d0b2cc25ad71d4c0d8c?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/0271fabc59edad96ed659fb1a3c4caf867a7324609e22d0b2cc25ad71d4c0d8c?s=96&d=mm&r=g","caption":"Athanasios Grammatopoulos"},"sameAs":["https:\/\/github.com\/GramThanos"],"url":"https:\/\/dinodevs.com\/blog\/author\/gramthanos\/"}]}},"_links":{"self":[{"href":"https:\/\/dinodevs.com\/blog\/wp-json\/wp\/v2\/posts\/310","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dinodevs.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dinodevs.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dinodevs.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/dinodevs.com\/blog\/wp-json\/wp\/v2\/comments?post=310"}],"version-history":[{"count":7,"href":"https:\/\/dinodevs.com\/blog\/wp-json\/wp\/v2\/posts\/310\/revisions"}],"predecessor-version":[{"id":343,"href":"https:\/\/dinodevs.com\/blog\/wp-json\/wp\/v2\/posts\/310\/revisions\/343"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/dinodevs.com\/blog\/wp-json\/wp\/v2\/media\/314"}],"wp:attachment":[{"href":"https:\/\/dinodevs.com\/blog\/wp-json\/wp\/v2\/media?parent=310"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dinodevs.com\/blog\/wp-json\/wp\/v2\/categories?post=310"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dinodevs.com\/blog\/wp-json\/wp\/v2\/tags?post=310"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}