
Obtenha shells como um mestre.
O Shellpop é sobre obter shells. Com esta ferramenta você pode gerar comandos de shell reverso ou bind de forma fácil e sofisticada para ajudar durante testes de penetração.
Python 2.7 é necessário.
Versões 3.0+ não funcionarão.
Dependências Necessárias para Instalação
root@kali# apt-get install python-argcomplete metasploit-framework -y
root@kali# pip install -r requirements.txt
Instalação via Setup
root@kali# python setup.py install
PS: Após a instalação, o autocompletar por tabulação só funcionará após reiniciar o terminal.
Para listar rapidamente todas as opções disponíveis desta ferramenta, use --help.
root@kali# shellpop --help

Você pode listar todos os shells disponíveis no shellpop usando a opção --list.
root@kali# shellpop --list

Agora o shellpop possui recurso de autocompletar. Para usá-lo, você precisa esquecer o --number e (--reverse ou --bind), basta usar o argumento --payload. Como na imagem abaixo:

Não perca tempo. Esta ferramenta é sobre NÃO perder tempo. Então você pode usar a opção --clip em todos os seus payloads gerados e eles serão automaticamente copiados para a área de transferência.
Existem dois tipos de payloads neste programa: Bind ou Reverse.
Shells reversos usam sua máquina atacante como "servidor". Neste tipo de payload, você precisa de --host e --port apontando para sua máquina. Um handler deve ser configurado.
Shells bind usam o host remoto para servir a conexão. Neste tipo de payload, tudo que você precisa é da opção --port com um número de porta válido.


Atualmente existem dois métodos principais de ofuscação disponíveis para seus payloads gerados:
Substitui todas as variáveis do payload por nomes aleatórios. Aplicado automaticamente a todos os payloads.

Ofusca o endereço IP e a porta usados pelo payload
Cunhado por @vysecurity, IPfuscation é simplesmente aproveitar o fato pouco conhecido de que endereços IP podem ser convertidos para números decimais, octais e hexadecimais, ou uma combinação dos três, e ainda assim serem usados.
A ofuscação de porta é feita substituindo o número da porta por uma expressão matemática que avalia para o número da porta.

Aqui o endereço IP no payload gerado é uma combinação de diferentes bases numéricas. A primeira parte em notação decimal normal, a segunda e terceira partes são 2 e 3 convertidos para octal com zeros aleatórios como preenchimento, e a quarta parte é 4 em hexa, também com alguns zeros como preenchimento. A seleção das bases a serem usadas em cada parte do endereço IP é aleatória, assim como o número de zeros usados como preenchimento para números hexadecimais e octais.
A porta é ofuscada substituindo 443 por uma expressão que avalia para 443. Esta expressão também é gerada aleatoriamente.
Embora IPfuscation seja opcional, a ofuscação por renomeação de variáveis agora é aplicada automaticamente a todos os payloads. Se o tamanho do payload for uma preocupação real, você pode passar a opção --obfuscate-small para que o payload seja minimamente aumentado em tamanho pela ofuscação. Os nomes das variáveis, endereço IP e número da porta serão significativamente mais curtos quando usados com esta opção.

Codificadores são opções especiais que você pode usar ao gerar payloads do shellpop.
Existem, atualmente, três métodos de codificação que podem ser aplicados individualmente ou simultaneamente, e são:
Usa uma chave numérica aleatória (1-255) para ofuscar o payload e adiciona um stub de descriptografia para decodificá-lo.
Codificação simples em Base64 dos dados do payload e adiciona um stub de descriptografia para decodificá-lo.
Codificação URL simples sobre o payload final.






Handler é um mecanismo para "tratar" o ato de servir um socket para receber a conexão de entrada ou conectar-se a um endpoint de servidor de forma a estabelecer seu shell.
Atualmente há suporte para os seguintes handlers TCP:
Isso significa que todo shell TCP pode ter anexado à sua linha de comando a opção --handler. Eliminando a necessidade do operador de iniciar o handler (provavelmente ncat ou nc) por si só.

Este recurso foi amplamente solicitado por pessoas que usam esta ferramenta. Agora é tecnicamente possível atualizar todos os shells do shellpop para meterpreter, pois desde a versão 0.3.6, o handler usa por padrão o Metasploit Framework para receber shells.

Stager é um mecanismo de servir seu payload em ESTÁGIOS. Às vezes, a complexidade ou o tamanho do payload pode ser problemático. Nesses casos, você pode criar um payload pequeno que, por sua vez, pode solicitar e executar o payload maior.
Atualmente há suporte para os seguintes protocolos de Stager:
O ShellPop possui o seguinte conjunto de stagers HTTP para se adequar a qualquer cenário que você deseje:
Para usar staging HTTP, adicione à sua linha de comando --stager http e, opcionalmente, se quiser especificar a porta do servidor HTTP, a flag --http-port colocará seu número de porta na frente das pré-definidas.

Atualmente há suporte para dois protocolos para receber seus shells:

Este código é de autoria de Andre Marques (@zc00l) e dos contribuidores deste projeto.
É disponibilizado ao público no momento em que foi lançado neste github.
Qualquer dano causado por esta ferramenta não torna nenhum contribuidor, incluindo o autor, responsável.
Nós realmente apreciamos todos os Contribuidores.