Reverse Shell

Caso precise, no Kali vem alguns WebShell disponíveis em /usr/share/webshells/. Sempre quando for executar uma shell reversa no Burp Suite e pressione CTRL+U para encodar o payload.

Reverse Shell x Bind Shell

Apesar de ambos terem o mesmo objetivo, a forma de realizar a conexão é tem uma pequena diferença, a direção de acesso. No Blind Shell, o host alvo irá abrir uma porta para o atacante se conectar, já no Reverse Shell, é o host atacante quem abre uma porta e faz com que o host alvo se conecte nela.

Melhorando o Visual da Shell

Devido a muitas vezes conseguirmos pegar uma shell que não possui um bom retorno, funcionalidades como vi não funcionam, CTRL+C encerra a sessão, não temos histórico de comandos, etc, por isso devemos deixar nossa shell mais estável.

# Dentro da shell reversa
python -c 'import pty; pty.spawn("/bin/bash")'
CTRL+Z

# Agora já no terminal do atacante
stty raw -echo

# Quando digitar esse comando, não irá aparecer o que está digitando, mas continue mesmo assim
fg
ENTER (2x)


# Dentro da shell reversa
reset
export SHELL=bash
export TERM=xterm-256color

# No terminal do host (fora da reverse shell) maximize o terminal e veja os valores de "rows" e "columns" com o comando
stty -a

# Agora volte para o terminal da reverse shell e defina "rows" e "columns" com o mesmo valor retornado no comando acima
stty rows <num> columns <cols>

Mais comandos para Spawning TTY

rlwrap

Deixa o netcat mais estável

Meterpreter

Caso tenha conseguido alguma shell no host alvo e não seja o Meterpreter, utilize o comando abaixo para atualizar sua shell para o Meterpreter:

Msfvenom

Existem 2 tipos de Reverse Shell que pode ser feita com o msfvenom: staged = Esta divide o payload em pequenos pedaços. O Meterpreter em si é uma shell em etapas, primeiro ele envia algumas partes para configurar a conexão e depois envia um pouco mais. Este não pode ser acessado pelo Netcat. non-staged = Já este é enviado em blocos e pode ser executado tanto no Metasploit quanto no Netcat

Stage Payload

OBS.: Utilize o Meterpreter, caso achar necessário

Non-Stage Payload

PHP (Web-Shell)

Esse php-shell é independente do sistema operacional. Você pode usá-lo no Linux e no Windows.

ASP (Web-Shell)

OBS.: Altere de asp para aspx caso seja necessário

War (Web-Shell)

JSP (Web-Shell)

OS

Executando um comandos no SO

Villain

Abre uma Reverse Shell que aceita múltiplas conexões, gerando assim várias sessões que podem ser acessadas a qualquer momento. Para gerar o payload, utilize o comando abaixo e execute a saída do comando no host alvo. Quando a vítima executar o comando, será aberta a sessão no próprio Villian

Para visualizar as sessões que estão ativas, execute:

Para acessar uma determinada sessão, execute:

Curl

Este não é de fato o responsável pelo Shell Reverso, mas com ele é possível baixar e executar determinado arquivo com o comando abaixo:

Bash TCP

Bash UDP

Windows

msfvenom

Criando executável

Deixe o Netcat em modo listener com o comando abaixo e execute o executável gerado com o comando acima no Windows.

Bypass Powershell

Primeiro execute o código abaixo para deixarmos o Metasploit no modo listener

Execute o script abaixo na máquina alvo

Abaixo segue outras maneiras, que podem ser porém utilizando o netcat como listener

Linux

Binário

Bash

FreeBSD

Netcat

Bind Shell

Reverse Shell

Com Flag -e

Sem Flag -e

Nem toda versão do Netcat tem a opção -e

Salvando a saída

Útil para estudar quais comandos o atacante está utilizando.

Executando comando (não interativo)

Ncat

Bind

Socat

Abaixo possui um site para baixar o código do socat (caso a vítima não tenha instalado) e, assim que definir qual a arquitetura correta, execute como no comando abaixo:

Método 1

Método 2

Método 3

Método 4

Método 5

Método 6

Método 7

Perl

Python 2.7

Python 3

OBS.: Caso não consiga utilizar comandos dentro do eval como import os, substitua por __import__('os').system('whoami')

PHP

Metasploit

Ruby

PowerShell (Invoke-PowerShell)

Insira no final do arquivo (Pesquisar se o arquivo está em ou baixar no Git).

Encontre o arquivo Invoke-PowerShellTcp.ps1 (geralmente está em /usr/share/nishang/Shells), copie para seu diretório atual (para manter o arquivo original) e insira a seguinte linha no final do arquivo:

Em outro terminal, deixe o arquivo disponível para o alvo com o comando python -m SimpleHTTPServer

OBS.: Veja nos sites abaixo, uma lista de shell para PowerShell

Powershell (msfvenom)

Crie o Payload com o comando abaixo

Agora digite os seguintes comandos:

Execute na máquina alvo com o comando iex (vide página de Powershell)

PowerShell (Manual)

Note que em alguns momentos (aqui e em outros exemplos) estamos utilizando o parâmetro -nop do powershell, que é uma abreviação de -NoProfile. Isso instrui o Powershell a não carregar o perfil de usuário. Quando o PowerShell é iniciado, por padrão, ele carrega os scripts de perfil de qualquer usuário existente, o que pode afetar negativamente a execução do nosso código. Essa opção evitará esse possível problema.

Microsoft SQL Server (MSSQL)

WinRM (Autenticado)

Base64 Encoding

Primeiro vamos encodar nosso payload. Como exemplo vamos pegar o reverse shell em bash, mas pode ser qualquer outro

Agora pegue o resultado do comando acima para montar o comando o abaixo

VILLAIN

Abre uma Reverse Shell que aceita múltiplas conexões, gerando assim várias sessões que podem ser acessadas a qualquer momento. Para gerar o payload, utilize o comando abaixo e execute a saída do comando no host alvo. Quando a vítima executar o comando, será aberta a sessão no próprio Villian

Para visualizar as sessões que estão ativas, execute:

Para acessar uma determinada sessão, execute:

NodeJS

LUA

Xterm

PHP

Crie o Payload com o comando

Será mostrado na tela o código, onde deverá ser enviado para o alvo web.

Agora digite os seguintes comandos:

JAVA

Telnet

Gawk

Sites

Last updated

Was this helpful?