PWNDOC — COMPLETE GUIDE
A detailed explanation of the tool and installation process
By Devi Jagannath, Dr. Sibi Chakkaravarthy S and G.Deepak
INTRODUCTION
PwnDoc is a pentest reporting application making it simple and easy to write your findings and generate a customizable Docx report. The main goal is to have more time to Pwn and less time to Doc by mutualizing data like vulnerabilities between users.
FEATURES
1. Multiple Language support
2. Multiple Data support
3. Great Customization
● Manage reusable Audit and Vulnerability Data
● Create Custom Sections
● Add custom fields to Vulnerabilities
4. Vulnerabilities Management
5. Multi-User reporting
6. Docx Report Generation
7. Docx Template customization
WHY USE PWNDOC TO GENERATE AUDIT REPORTS
- Easy to use and we can spend less time on documenting and more time on pwn.
2. Highly customizable.
3. Friendly user interface to manage things at a single point.
PREREQUISITES
- Git
- Docker-compose (Installation is covered in installation procedure)
HOW TO INSTALL
Follow the below steps to install it from scratch [PwnDoc uses 3 containers: the backend, the frontend, and the database.]
- sudo su (To get admin privileges)
2. sudo curl -L “https://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname-s)-$(uname -m)” -o /usr/local/bin/docker-compose
3. sudo mv /usr/local/bin/docker-compose /usr/bin/docker-compose
4. sudo chmod +x /usr/bin/docker-compose
5. git clone https://github.com/pwndoc/pwndoc.git
6. cd pwndoc/
7. sudo docker-compose up -d — build [To build and run docker containers]
NOTE: If you are facing any issue download docker in your machine and the above process will take 10–13 min depending on your network speed
8. docker-compose start
9. docker-compose stop
NOTE:
1. Don’t stop now.
2. If you are facing problems in installing, use this link to troubleshoot.
IMPORTANT COMMANDLETS
Commands to Use
docker-compose up -d — build — To build and run docker containers
docker-compose start — To start containers
docker-compose stop — To stop containers
docker-compose down — To remove containers
To update docker files:
docker-compose down
git pull
docker-compose up -d — build
HOW TO USE?
IMPORTANT :
1. Your application will run on: port 8443 [By default]
2. Your API can be accessed on: port 4242 [By default]
3. Application: https://localhost:8443
4. API: https://localhost:4242/api
STEPS :
- After successfully installing all the above things open “https://localhost:8443” then it will prompt you to create a new username and password after creating a new ID and password login using the same.
NOTE:
- If you are seeing the below screen the replace “http://localhost:8443” to “https://localhost:8443”. [Need to use https]
2. After logging in you’ll be seeing a screen like this
3. We need to set up a template and language to proceed, click on the home page and set the language, and upload the template. [Click here to download template]
4.After creating a template then your screen should look like this.
NOTE: We are using this template to create a number of different audit reports.
5. Then click on the vulnerability button and create a vulnerability of your choice, for instance I’m creating a web vulnerability “DomXSS”.
6.Fill in required info about the vulnerability.
7. Then it will be added to the list of vulnerabilities.
8. Now it’s time to create an audit report, for doing this click on the audit button and click on “new audit” button on top right.
9. Give the name of audit, language used and template then cli
10. Then fill in the basic details of the audit like shown below
11. Now add your finding by clicking the “+” against “findings”
12. Add all your findings in the audit and add if you have a network scan report
13. Do “ctrl+s” to save all info and again go to the audits dashboard and down your newly generated report.
14. After clicking that a .docx will get downloaded with “audit results”, In our case, it will be like this.
NOTE:
● Compare the template and generated report to understand the process better.
● If you are deploying it in the cloud the process is the same but you need to make sure required ports are open in inbound rules
If you need to add a custom domain name and ssl follow the below steps
15. To add a domain name with SSL in this deployment. You can use below “docker-compose.traefik.yml” file. Just add this file to pwndoc folder where the “docker-compose.yml” file resides.
16. Change the domain name in the “docker-compose.traefik.yml” file. It has to be updated under “pwndoc-frontend:” service, just look for the word “pwndoc.local” and replace it with your
domain name. Here we are using a free SSL certificate which is provided by Let’s Encrypt SSL. Make a note this certificate is valid for only 90days, it can be renewed before expiry to extend SSL validity. To extend validity you should run the same docker-compose deployment command.
docker-compose -f docker-compose.traefik.yml up -d
17. Create a new “A record” in your domain registry under DNS Management and point it to your server IP address. Below is a DNS Management panel from godaddy
18. To deploy with new file “docker-compose.traefik.yml” use below command
sudo docker-compose -f docker-compose.traefik.yml up -d
19. If the above command proceeds without any error. You can access the pawndoc with your domain name as https://yourdomain.com.
Note for beginners:
Since we shared screenshots from our development system. You may find docker commands without sudo, but it is made for our convenience we have elevated user rights to the current user. Please use sudo prefix as per the above-mentioned commands in this document, for docker and docker-compose sudo prefix is required if you follow the installation method from this document.
REFERENCES
1. https://pwndoc.github.io/pwndoc/#/installation