SILO
- Layout for this exercise:

1 - INTRODUCTION
- The goal of this exercise is to develop a hacking process for the vulnerable machine Silo, what is a retired machine from the Hack the Box pentesting platform:
https://www.hackthebox.eu
2 - ENUMERATION
- Silo's IP is 10.10.10.82:

- Scanning with Nmap:

- So we have a Windows machine running the database Oracle listening on ports 1521 and 49161, and also IIS at port 80.
- Metasploit helps with the module sid_brute to bruteforce the Oracle SID's to connect to the database:

- The ODAT (Oracle Database Attacking Tool) yields similar result when guessing the SID's:
https://github.com/quentinhardy/odat
- Along this exercise I will be using the standalone version for ODAT.
https://github.com/quentinhardy/odat/releases/

- Also, we know that default credentials for Oracle are scott:tiger, as explained here:
http://www.orafaq.com/wiki/SCOTT
http://www.dba-oracle.com/t_oracle_scott_tiger_user.htm

3 - EXPLOITATION
- Msfvenom helps to create an .aspx backdoor:


- ODAT uploads backdoor.aspx at Silo's web root directory:

- Starting a listening session:

- Running backdoor.aspx from the browser:

- The consequence is a low privileged Meterpreter session:

- Also, we can spawn a shell:

- Going to Phineas user's Desktop there are two interesting files: user.txt and Oracle issue.txt:

4 - CAPTURING THE 1st FLAG
- Reading user.txt:

5 - PRIVILEGE ESCALATION
- There are different ways of getting a remote root shell, let's see two of them.
5.1 - Uploading and running a backdoor with Odat
- Let's create now an executable backdoor.exe with Msfvenom:


- Copying backdoor.exe to Odat's working directory:

- Odat's utlfile --putFile option uploads the executable to Silo's C:/

- Setting a listening session:

- Running backdoor.exe with Odat's option externaltable --exec:

- Once backdoor.exe is executed we get a root Meterpreter session:

5.2 - Pass The Hash (PTH)
- First, we need to get the credential hashes with Volatility.
- Reading the text file Oracle issue.txt we find a link to Dropbox and an associated password:

- However the first character of the password needs to be found:

- Backgrounding the shell and going back to the Meterpreter session we can download the Oracle issue.txt text file to Kali:





- Opening with gedit, now the 1st character of the password is clear:


- Using the password there is access to the Dropbox link:


- We find a Memory Dump for Silo:

- Saving the file:

- Unzipping twice:


- Finally we get a .dmp file:


- The forensics tool Volatility can help to read the dump content:
https://www.volatilityfoundation.org/
- Some options for Volatility:



- Getting virtual addresses for some files:

- Actually, adresses of SYSTEM and SAM are of our greatest interest:


- Hashdumping to a text file:

- Finally, we can read the hashes for 3 of the users, Administrator, Guest, Phineas:

- Pass The Hash (PTH) is a hacking technique that allows an attacker to authenticate to a remote server or service by using the underlying NTLM or LM hash of a user's password, instead of requiring the associated plaintext password as is normally the case.

- We will use Pass The Hash (PTH) in two ways , the first using the Metasploit module psexec, the second using pth-winexe:
5.2.1 - Pash the Hash (PTH) with Metasploit psexec
- The psexec module can be used to obtain access to a given system when credentials like username and password hash are known:
https://www.offensive-security.com/metasploit-unleashed/psexec-pass-hash/

5.2.2 - Pash the Hash (PTH) with pth-winexe
- pth-winexe is a patched version of winexe that can be used to get a remote shell by just providing the username and the hash of the password, so no cleartext password is needed:
https://www.whitelist1.com/2017/10/pass-hash-pth-attack-with-pth-winexe.html

- Also, passing the username and hashed password on the command-line:

6 - CAPTURING THE 2nd FLAG
- Reading root.txt:
