VULNOS 1
- Layout for this exercise:

1 - INTRODUCTION
- The purpose of this exercise is the study of the hacking process for the vulnerable machine VulnOS 1.
- VulnOS 1 can be downloaded from here:
https://www.vulnhub.com/entry/vulnos-1,60/
- Once VulnOS 1 downloaded and extracted with VirtualBox:

- In this vulnerable machine it happens that the number of potential vulnerabilities is very large, because there are many open ports and the corresponding associated services running.
- According to the author's suggestion all the vulnerabilities should be found.
- However, in this exercise we have limited ourselves to the search of a root shell and eventually the capture of the flag, just by exploiting the mininum amount of essential vulnerabilities to achieve our goal.
2 - ENUMERATION
- Discovering the IP with netdiscover, we learn that VulnOS 1 is assigned with 192.168.1.11:


- Scanning with Nmap the great amount of services running:

- Browsing the web:


- dirb helps to discover some of the available folders:


3 - PHPMYADMIN
- Let's go first with phpmyadmin, which default login is root plus blank password.
- However these credentials don't work in our case, probably because of the configuration:

- Using Medusa to find a valid password for username root:


- Medusa discovers root:toor, let's check whether it is correct:

- Yes, Medusa was right:

- Now, the first thing to notice is the great amount of available databases, each one with its corresponding list of usernames and password hashes.
- Let's go with the main databases one bye one.
- dolibarr:

- drupal6:

- dvwa (interesting):

- mysql:

- nowasp:

- weberp:

- CrackStation helps to decrypt most of the hashes:
https://crackstation.net/




- Gathering all these credentials we create two text files:
- users.txt: containing all the usernames and logins
- passwords.txt: containing all the decrypted passwords
4 - EXPLOITING WEBADMIN
- Now, let's focus our attention on port 10000:

- MiniServ 0.01 has got some exploits associated, for instance this Perl script that allows File Disclosure:

- Locating exploit 2017 at Kali:

- As expected, it is an executable Perl script:

- Opening the script there is an usage example line:


- Also, running the script without arguments we can learn how to use it:

- For instance let's use the script 2017.pl to read remotely /etc/sudoers available at VulnOS 1:

- Later (point 6.2 of this exercise) this Perl script will be used for achieving essential information about passwords for relevant users.
5 - EXPLOITING DVWA
- DVWA is the well-known Damn Vulnerable Web Application, basically a web application that is vulnerable on purpose:
http://www.dvwa.co.uk/

- The fact that DVWA is present at VulnOS 1 is an unvaluable gift, because it provides us with a lot of potential ways for exploitating the vulnerable machine.
- As seen before the valid credentials for DVWA are admin:password:


- Some of the recently released versions of DVWA are 1.9, 1.0.8, 1.0.7, etc ...
- Trying all of them, finally we have access to the DVWA web server:


- Let's notice that the default Security Level is set to high:

- Levering down to low:



- Taking advantage of the Command Execution vulnerability let's try to submit this PHP script:

- Before that, don't forget to set a Netcat listener at port 4444:

- Now, submitting the script:

- As a consequence a low privilege shell is succesfully achieved:

- Improving the shell:

6 - PRIVILEGE ESCALATION
6.1 - HTPASSWD
- htpasswd is used to create and update the flat-files used to store usernames and password for basic authentication of HTTP users.
- Resources available from the Apache HTTP server can be restricted to just the users listed in the files created by htpasswd.
- htpasswd encrypts passwords using either bcrypt, a version of MD5 modified for Apache, SHA1, or the system's crypt() routine.
https://httpd.apache.org/docs/2.4/programs/htpasswd.html
- Let's try to find any htpasswd file across Vulnos 1:


- Reading the file:

- Also, looking for htpasswd.users:



- John The Ripper helps to decrypt the second password:



- However this path does not lead us to anything, let's try another way.
6.2 - vulnosadmin
- Let's focus our attention on the interesting user vulnosadmin:


- Going to his home directory we find that vulnosadmin has been a successful sudoer in the past:

- Now, taking advantage of the webmin exploit at port 10000 used at point 4 of this exercise, we can get both /etc/passwd and /etc/shadow for vulnosadmin:

- Copying output to files a and b:

- Preparing the password hahes with unshadow command:

- Applying John The Ripper over file u:

- Finally we have been able to decrypt vulnosadmin user's password.
6.3 - SSH
- Using our lists from point 3 users.txt and passwords.txt (where canuhackme has been added) Medusa finds the right credentials for SSH remote shell connection:


- Now, entering SSH credentials vulnosadmin:canuhackme let's connect to Vulnos 1:

- The good news are that vulnosadmin is an (ALL)ALL sudoer:

- Changing the password for user root:

- Finally a root shell is succesfully achieved:

- Also this would be equally valid:

7 - CAPTURING THE FLAG
- Reading hello.txt:
