Reactor Writeup - HackTheBox
Easy
Linux
1. Reconnaissance
Full TCP Port Scan
┌──(kali㉿kali)-[~]
└─$ scan_tcp_full $TARGET_IP
[+] Discovering all open TCP ports... Starting Nmap 7.99 ( https://nmap.org ) at 2026-05-23 21:06 +0200 Nmap scan report for 10.129.1.72 Host is up (0.016s latency). Not shown: 64952 closed tcp ports (reset), 581 filtered tcp ports (no-response) Some closed ports may be reported as filtered due to --defeat-rst-ratelimit PORT STATE SERVICE 22/tcp open ssh 3000/tcp open ppp Nmap done: 1 IP address (1 host up) scanned in 13.57 seconds [+] Parsing open TCP ports... [+] Running scripts & versions on TCP ports: 22,3000 Starting Nmap 7.99 ( https://nmap.org ) at 2026-05-23 21:06 +0200 Nmap scan report for 10.129.1.72 Host is up (0.011s latency). PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 9.6p1 Ubuntu 3ubuntu13.16 (Ubuntu Linux; protocol 2.0) | ssh-hostkey: | 256 ce:fd:0d:82:c0:23:ed:6e:4b:ea:13:fa:4f:ea:ef:b7 (ECDSA) |_ 256 f8:44:c6:46:58:7a:39:21:ef:16:44:e9:58:c2:f3:62 (ED25519) 3000/tcp open ppp? | fingerprint-strings: | GetRequest: | HTTP/1.1 200 OK | Vary: RSC, Next-Router-State-Tree, Next-Router-Prefetch, Next-Router-Segment-Prefetch, Accept-Encoding | x-nextjs-cache: HIT | x-nextjs-prerender: 1 | x-nextjs-stale-time: 4294967294 | X-Powered-By: Next.js | Cache-Control: s-maxage=31536000, | ETag: "p02u6gnhufd8t" | Content-Type: text/html; charset=utf-8 | Content-Length: 17175 | Date: Sat, 23 May 2026 19:06:26 GMT | Connection: close | <!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/css/414e1be982bc8557.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-db0a529a99835594.js"/><script src="/_next/static/chunks/4bd1b696-80bcaf75e1b4285e.js" async=""></script><script src="/_next/static/chunks/517-d083b552e04dead1.js" async=""></script><script s | HTTPOptions, RTSPRequest: | HTTP/1.1 400 Bad Request | vary: RSC, Next-Router-State-Tree, Next-Router-Prefetch, Next-Router-Segment-Prefetch | Allow: GET | Allow: HEAD | Cache-Control: private, no-cache, no-store, max-age=0, must-revalidate | Date: Sat, 23 May 2026 19:06:26 GMT | Connection: close | Help, NCP, RPCCheck: | HTTP/1.1 400 Bad Request |_ Connection: close 1 service unrecognized despite returning data. If you know the service/version, please submit the following fingerprint at https://nmap.org/cgi-bin/submit.cgi?new-service : SF-Port3000-TCP:V=7.99%I=7%D=5/23%Time=6A11FABC%P=x86_64-pc-linux-gnu%r(Ge SF:tRequest,44A8,"HTTP/1\.1\x20200\x20OK\r\nVary:\x20RSC,\x20Next-Router-S SF:tate-Tree,\x20Next-Router-Prefetch,\x20Next-Router-Segment-Prefetch,\x2 SF:0Accept-Encoding\r\nx-nextjs-cache:\x20HIT\r\nx-nextjs-prerender:\x201\ SF:r\nx-nextjs-stale-time:\x204294967294\r\nX-Powered-By:\x20Next\.js\r\nC SF:ache-Control:\x20s-maxage=31536000,\x20\r\nETag:\x20\"p02u6gnhufd8t\"\r SF:\nContent-Type:\x20text/html;\x20charset=utf-8\r\nContent-Length:\x2017 SF:175\r\nDate:\x20Sat,\x2023\x20May\x202026\x2019:06:26\x20GMT\r\nConnect SF:ion:\x20close\r\n\r\n<!DOCTYPE\x20html><html\x20lang=\"en\"><head><meta SF:\x20charSet=\"utf-8\"/><meta\x20name=\"viewport\"\x20content=\"width=de SF:vice-width,\x20initial-scale=1\"/><link\x20rel=\"stylesheet\"\x20href=\ SF:"/_next/static/css/414e1be982bc8557\.css\"\x20data-precedence=\"next\"/ SF:><link\x20rel=\"preload\"\x20as=\"script\"\x20fetchPriority=\"low\"\x20 SF:href=\"/_next/static/chunks/webpack-db0a529a99835594\.js\"/><script\x20 SF:src=\"/_next/static/chunks/4bd1b696-80bcaf75e1b4285e\.js\"\x20async=\"\ SF:"></script><script\x20src=\"/_next/static/chunks/517-d083b552e04dead1\. SF:js\"\x20async=\"\"></script><script\x20s")%r(Help,2F,"HTTP/1\.1\x20400\ SF:x20Bad\x20Request\r\nConnection:\x20close\r\n\r\n")%r(NCP,2F,"HTTP/1\.1 SF:\x20400\x20Bad\x20Request\r\nConnection:\x20close\r\n\r\n")%r(HTTPOptio SF:ns,10C,"HTTP/1\.1\x20400\x20Bad\x20Request\r\nvary:\x20RSC,\x20Next-Rou SF:ter-State-Tree,\x20Next-Router-Prefetch,\x20Next-Router-Segment-Prefetc SF:h\r\nAllow:\x20GET\r\nAllow:\x20HEAD\r\nCache-Control:\x20private,\x20n SF:o-cache,\x20no-store,\x20max-age=0,\x20must-revalidate\r\nDate:\x20Sat, SF:\x2023\x20May\x202026\x2019:06:26\x20GMT\r\nConnection:\x20close\r\n\r\ SF:n")%r(RTSPRequest,10C,"HTTP/1\.1\x20400\x20Bad\x20Request\r\nvary:\x20R SF:SC,\x20Next-Router-State-Tree,\x20Next-Router-Prefetch,\x20Next-Router- SF:Segment-Prefetch\r\nAllow:\x20GET\r\nAllow:\x20HEAD\r\nCache-Control:\x SF:20private,\x20no-cache,\x20no-store,\x20max-age=0,\x20must-revalidate\r SF:\nDate:\x20Sat,\x2023\x20May\x202026\x2019:06:26\x20GMT\r\nConnection:\ SF:x20close\r\n\r\n")%r(RPCCheck,2F,"HTTP/1\.1\x20400\x20Bad\x20Request\r\ SF:nConnection:\x20close\r\n\r\n"); Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel Service detection performed. Please report any incorrect results at https://nmap.org/submit/ . Nmap done: 1 IP address (1 host up) scanned in 13.58 seconds
We find a HTTP server. Lets check its response for some clues
┌──(kali㉿kali)-[~]
└─$ curl -I http://$TARGET_IP:3000/
HTTP/1.1 200 OK Vary: RSC, Next-Router-State-Tree, Next-Router-Prefetch, Next-Router-Segment-Prefetch, Accept-Encoding x-nextjs-cache: HIT x-nextjs-prerender: 1 x-nextjs-stale-time: 4294967294 X-Powered-By: Next.js Cache-Control: s-maxage=31536000, ETag: "p02u6gnhufd8t" Content-Type: text/html; charset=utf-8 Content-Length: 17175 Date: Sat, 23 May 2026 19:07:19 GMT Connection: keep-alive Keep-Alive: timeout=5
Interesting, a Next.js server.
Protected Writeup
This has not retired yet on HackTheBox. We only publish writeups for retired machines and challenges. Once it retires, this writeup will become publicly accessible.