Hack The Box Registry Detailed Walkthrough –

Hack the box registry machine is categoriezed as “hard” with 40 points. In today’s post I’m going to talk you a walkthrough of the steps I used to root the machine. let us start with adding the machine IP to etc/registry.htb as always. Once done let us start with namp port scan.


Here is the namp scan report:

 ⚡ ⚙ root@ns09~/htb/registry nmap -sC -sV -A registry.htb
Starting Nmap 7.80 ( https://nmap.org ) at 2019-11-25 10:03 +03
Stats: 0:00:10 elapsed; 0 hosts completed (1 up), 1 undergoing Service Scan
Service scan Timing: About 33.33% done; ETC: 10:03 (0:00:12 remaining)
Nmap scan report for registry.htb (
Host is up (0.14s latency).
Not shown: 997 closed ports
22/tcp  open  ssh      OpenSSH 7.6p1 Ubuntu 4ubuntu0.3 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   2048 72:d4:8d:da:ff:9b:94:2a:ee:55:0c:04:30:71:88:93 (RSA)
|   256 c7:40:d0:0e:e4:97:4a:4f:f9:fb:b2:0b:33:99:48:6d (ECDSA)
|_  256 78:34:80:14:a1:3d:56:12:b4:0a:98:1f:e6:b4:e8:93 (ED25519)
80/tcp  open  http     nginx 1.14.0 (Ubuntu)
|_http-server-header: nginx/1.14.0 (Ubuntu)
|_http-title: Welcome to nginx!
443/tcp open  ssl/http nginx 1.14.0 (Ubuntu)
|_http-server-header: nginx/1.14.0 (Ubuntu)
|_http-title: Welcome to nginx!
| ssl-cert: Subject: commonName=docker.registry.htb
| Not valid before: 2019-05-06T21:14:35
|_Not valid after:  2029-05-03T21:14:35
No exact OS matches for host (If you know what OS is running on it, see https://nmap.org/submit/ ).
TCP/IP fingerprint:

Network Distance: 2 hops
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

TRACEROUTE (using port 3389/tcp)
1   142.75 ms
2   143.26 ms registry.htb (

OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 38.70 seconds
 ⚡ ⚙ root@ns09 ~/htb/registry 

The namp scan revealed SSH on port 22, Webserver on port 80 and SSL on port 443 is open. The SSL port is of nginx server. Nmap as well reported there is another CN docker.registry.htb is an nginx server. I’m going to add docker.registry.htb to my host file.

As a next step, I browsed the newly found subdomain (https://docker.registry.htb), but nothing interesting was found.

Gobuster Scan

Since I couldn’t find anything on the main page or on the subdomain https://docker.registry.htb, I assumed that there should be something behind the scene. So I decided to take GoBuster for a ride on both. I fired-up GoBuster with default settings using the dirbuster directory-list-2.3-small.txt as a wordlist.

HTB Registry GoBuster Scan Report for http://registry.htb/

The http://registry.htb has two directories: /install and /bolt. Will enumerate this later, let us scan http://docker.registry.htb/ suing the same settings as above.

The second GoBuster scan revealed quite a few new subdirectories. Lets check one by one. The http://registry.htb/install and http://registry.htb/bolt as some webpages hosted. The http://docker.registry.htb/v2 seem to be more intersting to me so I dicided to concentrate on it.

The http://docker.registry.htb/v2 needs credentials for login, however, the failed authentication revealed that it hosts API for the docker. I tried the common passwords. I was managed to log in using admin:admin credentials.

As I already confirmed above the docker/v2 hosts API files, let us find a way to exploit it and get more information and credentials if possible. Also, according to some in HTB Forums, this: https://docs.docker.com/engine/reference/commandline/manifest/ will be helpful. Let’s not leave anything untouched in the recon.

 ⚡ ⚙  root@ns09~/htb/registry curl --user "admin:admin" http://docker.registry.htb/v2/_catalog
 ⚡ ⚙  root@ns09~/htb/registry curl --user "admin:admin" http://docker.registry.htb/v2/bolt-image/manifests/latest
   "schemaVersion": 1,
   "name": "bolt-image",
   "tag": "latest",
   "architecture": "amd64",
   "fsLayers": [
         "blobSum": "sha256:302bfcb3f10c386a25a58913917257bd2fe772127e36645192fa35e4c6b3c66b"
         "blobSum": "sha256:3f12770883a63c833eab7652242d55a95aea6e2ecd09e21c29d7d7b354f3d4ee"
         "blobSum": "sha256:02666a14e1b55276ecb9812747cb1a95b78056f1d202b087d71096ca0b58c98c"
         "blobSum": "sha256:c71b0b975ab8204bb66f2b659fa3d568f2d164a620159fc9f9f185d958c352a7"
         "blobSum": "sha256:2931a8b44e495489fdbe2bccd7232e99b182034206067a364553841a1f06f791"
         "blobSum": "sha256:a3ed95caeb02ffe68cdd9fd84406680ae93d633cb16422d00e8a7c22955b46d4"
         "blobSum": "sha256:f5029279ec1223b70f2cbb2682ab360e1837a2ea59a8d7ff64b38e9eab5fb8c0"
         "blobSum": "sha256:d9af21273955749bb8250c7a883fcce21647b54f5a685d237bc6b920a2ebad1a"
         "blobSum": "sha256:8882c27f669ef315fc231f272965cd5ee8507c0f376855d6f9c012aae0224797"
         "blobSum": "sha256:f476d66f540886e2bb4d9c8cc8c0f8915bca7d387e536957796ea6c2f8e7dfff"
   "history": [
         "v1Compatibility": "{\"architecture\":\"amd64\",\"config\":{\"Hostname\":\"e2e880122289\",\"Domainname\":\"\",\"User\":\"\",\"AttachStdin\":true,\"AttachStdout\":true,\"AttachStderr\":true,\"Tty\":true,\"OpenStdin\":true,\"StdinOnce\":true,\"Env\":[\"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin\"],\"Cmd\":[\"bash\"],\"Image\":\"docker.registry.htb/bolt-image\",\"Volumes\":null,\"WorkingDir\":\"\",\"Entrypoint\":null,\"OnBuild\":null,\"Labels\":{}},\"container\":\"e2e88012228993b25b697ee37a0aae0cb0ecef7b1536d2b8e488a6ec3f353f14\",\"container_config\":{\"Hostname\":\"e2e880122289\",\"Domainname\":\"\",\"User\":\"\",\"AttachStdin\":true,\"AttachStdout\":true,\"AttachStderr\":true,\"Tty\":true,\"OpenStdin\":true,\"StdinOnce\":true,\"Env\":[\"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin\"],\"Cmd\":[\"bash\"],\"Image\":\"docker.registry.htb/bolt-image\",\"Volumes\":null,\"WorkingDir\":\"\",\"Entrypoint\":null,\"OnBuild\":null,\"Labels\":{}},\"created\":\"2019-05-25T15:18:56.9530238Z\",\"docker_version\":\"18.09.2\",\"id\":\"f18c41121574af38e7d88d4f5d7ea9d064beaadd500d13d33e8c419d01aa5ed5\",\"os\":\"linux\",\"parent\":\"9380d9cebb5bc76f02081749a8e795faa5b5cb638bf5301a1854048ff6f8e67e\"}"

Lets crack the hash we found using John.

$2y$10$e.ChUytg9SrL7AsboF2bX.wWKQ1LkS5Fi3/Z0yYD86.P5E9cpY7PK = strawberry. 

As I have the password, I come to know that there is a login page which I need to find out, taking consideration of HTB forum suggestions, I set-off the GoBuster for another round of scanning. This time on http://registry.htb/bolt .

GoBuster result:

I managed to login to the page using bolt:strawberry as credentials. After loging-in I found the webpage is Bolt CMS version 3.6.4. A quick Google search showed me couple of explots.


Hey there, I'm Navin, a passionate Info-Sec enthusiast from Bahrain. I started this blog to share my knowledge. I usually write on HackTheBox machines and challenges, cybersecurity-related articles and bug-bounty. If you are an HTB user and like my articles, please respect here: Profile: https://www.hackthebox.eu/nav1n

View all posts by Navin →
Notify of
Inline Feedbacks
View all comments
Sorry, that action is blocked.