Muthu Kumar
7 years ago
1 changed files with 44 additions and 0 deletions
@ -0,0 +1,44 @@ |
|||
# tsh |
|||
|
|||
## Telegram Shell |
|||
|
|||
Proof of concept of remote shell over Telegram. |
|||
|
|||
## Up and running |
|||
|
|||
Clone this repo, and create a config.js file with the following fields (You'll need to get a bot API key from [@BotFather](https://t.me/BotFather)): |
|||
|
|||
```JavaScript |
|||
module.exports = { |
|||
botApiKey: '94365321:AAGM6_3QK_RC49SA1281zC5U_nmMF', |
|||
masterID: 12345678, |
|||
}; |
|||
``` |
|||
|
|||
Do `npm install` to install dependencies (I recommend [pnpm](https://github.com/pnpm/pnpm) instead). |
|||
|
|||
Run `npm start`. |
|||
|
|||
Try running `/start` in your bot's private. |
|||
|
|||
## Commands |
|||
|
|||
- `/start` creates a new session. |
|||
- `/ls` list of active sessions. |
|||
- `/detach [session-identifier]` disconnect from session. |
|||
- `/attach <session-identifier>` reconnect to session. |
|||
- `/kill <session-identifier>` kill session. |
|||
|
|||
## Known issues |
|||
|
|||
- `tsh` doesn't play well with commands that require password from stdin, like `sudo`, or any command that creates a new shell (like `bash`). As a workaround, you could use `sudo -S` to read password from stdin. These may be fixed in a later version. |
|||
|
|||
- Some times, the same response will be sent several times as the stream is triggered. This is fixable, and will be done soon. |
|||
|
|||
## Security |
|||
|
|||
`tsh` is recommended to be used by a single user only, for your personal needs. Therefore, you must host your own bot on the server. Support for multiple machines may come in future. |
|||
|
|||
If you wouldn't trust Telegram with your content (especially sensitive content like passwords), please refrain from using this bot at all costs. It's a proof of concept and should be seen as such, and would be a massive breach of security to have sensitive content over Telegram. |
|||
|
|||
Finally, feel free to fork or contribute. `tsh` is licensed under the terms of the permissive MIT license. |
Loading…
Reference in new issue