netcat sem -e

Se o netcat for compilado sem -DGAPING_SECURITY_HOLE ele não terá a opção -e, que é usada para executar um comando assim que a conexão é estabelecida. Desta forma NÃO podemos fazer, por exemplo


$ nc -l -p 6060 -e /bin/sh


Pesquisando pela web eu vi em http://www.datastronghold.com/articles/3.html uma maneira criativa de fazer isso, porém o método proposto é meio incômodo.

Continuando a minha pesquisa eu acabei aprendendo uma maneira mais bacana de fazer isso. Pasmem: eu aprendi isso no orkut!

Vamos lá.

Basta criar um named pipe, também chamado de fifo, e usá-lo para que a saída do /bin/sh volte para o netcat. Vamos ao comando:


$ mkfifo test_fifo # criando o named pipe
$ nc -l -p 6060 < test_fifo | /bin/sh > test_fifo


Explicando:
- o netcat fica escutando na porta 6060;
- a entrada do netcat vem do test_fifo;
- a saída do netcat (vinda da rede) vai para a entrada de /bin/sh através do pipe;
- a saída de /bin/sh vai para test_fifo;
- como test_fifo é um named pipe o que entra nele vindo de /bin/sh sai indo para o netcat.


Moral da história: se você souber garimpar as informações, o orkut pode ter lá alguma valia!

tags:

comments powered by Disqus