
Um framework de phishing com bot do Slack para exercícios de Red Teaming

# EvilSlackbot
Um Framework de Ataque ao Slack para realizar exercícios de Red Team e phishing em workspaces do Slack.
## Aviso
Esta ferramenta é destinada apenas a Profissionais de Segurança. Não use esta ferramenta contra nenhum workspace do Slack sem permissão explícita para testar. Use por sua conta e risco.
## Contexto
Milhares de organizações utilizam o Slack para ajudar seus funcionários a se comunicar, colaborar e interagir. Muitos desses workspaces do Slack instalam aplicativos ou bots que podem ser usados para automatizar diferentes tarefas dentro do Slack. Esses bots recebem permissões individuais que determinam quais tarefas o bot está autorizado a solicitar via API do Slack. Para autenticar na API do Slack, cada bot recebe um token de API que começa com **xoxb** ou **xoxp**. Na maioria das vezes, esses tokens vazam em algum lugar. Quando esses tokens são exfiltrados durante um exercício de Red Team, pode ser complicado utilizá-los adequadamente. Agora o **EvilSlackbot** está aqui para automatizar e agilizar esse processo. **Você pode usar o **EvilSlackbot** para enviar mensagens falsificadas do Slack, links de phishing, arquivos e pesquisar por segredos vazados no Slack.**
## Simulações de Phishing
Além do red teaming, o **EvilSlackbot** também foi desenvolvido pensando em simulações de phishing no Slack. Para usar o **EvilSlackbot** para realizar um exercício de phishing no Slack, basta criar um bot no Slack, dar ao seu bot as permissões necessárias para o teste pretendido e fornecer ao **EvilSlackbot** uma lista de e-mails de funcionários que você deseja testar com phishes simulados (Links, arquivos, mensagens falsificadas)
## Instalação
O **EvilSlackbot** requer python3 e Slackclient
```
pip3 install slackclient
```
## Uso
```
usage: EvilSlackbot.py [-h] -t TOKEN [-sP] [-m] [-s] [-a] [-f FILE] [-e EMAIL]
[-cH CHANNEL] [-eL EMAIL_LIST] [-c] [-o OUTFILE] [-cL]
options:
-h, --help show this help message and exit
Required:
-t TOKEN, --token TOKEN
Slack Oauth token
Attacks:
-sP, --spoof Spoof a Slack message, customizing your name, icon, etc
(Requires -e,-eL, or -cH)
-m, --message Send a message as the bot associated with your token
(Requires -e,-eL, or -cH)
-s, --search Search slack for secrets with a keyword
-a, --attach Send a message containing a malicious attachment (Requires -f
and -e,-eL, or -cH)
Arguments:
-f FILE, --file FILE Path to file attachment
-e EMAIL, --email EMAIL
Email of target
-cH CHANNEL, --channel CHANNEL
Target Slack Channel (Do not include #)
-eL EMAIL_LIST, --email_list EMAIL_LIST
Path to list of emails separated by newline
-c, --check Lookup and display the permissions and available attacks
associated with your provided token.
-o OUTFILE, --outfile OUTFILE
Outfile to store search results
-cL, --channel_list List all public Slack channels
```
## Token
Para usar esta ferramenta, você deve fornecer um token xoxb ou xoxp.
```
Required:
-t TOKEN, --token TOKEN (Slack xoxb/xoxp token)
```
```
python3 EvilSlackbot.py -t <token>
```
## Ataques
Dependendo das permissões associadas ao seu token, existem vários ataques que o **EvilSlackbot** pode realizar. O **EvilSlackbot** verificará automaticamente quais permissões seu token possui e as exibirá, juntamente com qualquer ataque que você possa realizar com o token fornecido.

```
Attacks:
-sP, --spoof Spoof a Slack message, customizing your name, icon, etc (Requires -e,-eL, or -cH)
-m, --message Send a message as the bot associated with your token (Requires -e,-eL, or -cH)
-s, --search Search slack for secrets with a keyword
-a, --attach Send a message containing a malicious attachment (Requires -f and -e,-eL, or -cH)
```
### __Mensagens falsificadas (-sP)__
Com as permissões corretas do token, o **EvilSlackbot** permite que você envie mensagens de phishing enquanto se passa pelo nome e foto do bot. Este ataque também requer ou o **endereço de e-mail (-e)** do alvo, uma **lista de e-mails alvo (-eL)** ou o nome de um **canal do Slack (-cH)**. O **EvilSlackbot** usará esses argumentos para pesquisar o SlackID do usuário associado aos e-mails ou nome do canal fornecidos. Para automatizar seu ataque, use uma lista de e-mails.
```
python3 EvilSlackbot.py -t <xoxb token> -sP -e <email address>
python3 EvilSlackbot.py -t <xoxb token> -sP -eL <email list>
python3 EvilSlackbot.py -t <xoxb token> -sP -cH <Channel name>
```
### __Mensagens de Phishing (-m)__
Com as permissões corretas do token, o **EvilSlackbot** permite que você envie mensagens de phishing contendo links de phishing. O que torna este ataque diferente do ataque falsificado é que este método enviará a mensagem como o bot associado ao token fornecido. Você não poderá escolher o nome ou a imagem do bot que está enviando seu phish. Este ataque também requer ou o **endereço de e-mail (-e)** do alvo, uma **lista de e-mails alvo (-eL)** ou o nome de um **canal do Slack (-cH)**. O **EvilSlackbot** usará esses argumentos para pesquisar o SlackID do usuário associado aos e-mails ou nome do canal fornecidos. Para automatizar seu ataque, use uma lista de e-mails.
```
python3 EvilSlackbot.py -t <xoxb token> -m -e <email address>
python3 EvilSlackbot.py -t <xoxb token> -m -eL <email list>
python3 EvilSlackbot.py -t <xoxb token> -m -cH <Channel name>
```
### __Pesquisa de Segredos (-s)__
Com as permissões corretas do token, o **EvilSlackbot** permite pesquisar segredos no Slack por meio de uma pesquisa de palavra-chave. No momento, este ataque requer um token xoxp, pois tokens xoxb não podem receber as permissões adequadas para pesquisar por palavras-chave dentro do Slack. Use o argumento -o para gravar os resultados da pesquisa em um arquivo de saída.
```
python3 EvilSlackbot.py -t <xoxp token> -s -o <outfile.txt>
```
### __Anexos (-a)__
Com as permissões corretas do token, o **EvilSlackbot** permite enviar anexos de arquivos. O ataque de anexo requer um **caminho para o arquivo (-f)** que você deseja enviar. Este ataque também requer ou o **endereço de e-mail (-e)** do alvo, uma **lista de e-mails alvo (-eL)** ou o nome de um **canal do Slack (-cH)**. O **EvilSlackbot** usará esses argumentos para pesquisar o SlackID do usuário associado aos e-mails ou nome do canal fornecidos. Para automatizar seu ataque, use uma lista de e-mails.
```
python3 EvilSlackbot.py -t <xoxb token> -a -f <path to file> -e <email address>
python3 EvilSlackbot.py -t <xoxb token> -a -f <path to file> -eL <email list>
python3 EvilSlackbot.py -t <xoxb token> -a -f <path to file> -cH <Channel name>
```
## Argumentos
```
Arguments:
-f FILE, --file FILE Path to file attachment
-e EMAIL, --email EMAIL Email of target
-cH CHANNEL, --channel CHANNEL Target Slack Channel (Do not include #)
-eL EMAIL_LIST, --email_list EMAIL_LIST Path to list of emails separated by newline
-c, --check Lookup and display the permissions and available attacks associated with your provided token.
-o OUTFILE, --outfile OUTFILE Outfile to store search results
-cL, --channel_list List all public Slack channels
```
### Pesquisa de Canais
Com as permissões corretas, o **EvilSlackbot** pode pesquisar e listar todos os canais públicos do workspace do Slack. Isso pode ajudar no planejamento de onde enviar mensagens para canais. Use -o para gravar a lista em um arquivo de saída.
```
python3 EvilSlackbot.py -t <xoxb token> -cL
```