Inicialmente este blog foi criado para armazenar algumas dicas e links de UNIX/Linux, OpenVMS, linguagem C, Assembly, TCP/IP e nerdezas afins. No entanto devido ao autor ter abandonado o seu plano de ser um super hacker e dominar o mundo (devido esposa, família, filhos, trabalho), a partir de 2012 este blog tem um tipo de nerdeza mais light (Android, Linux, RetroPie (retrogames), produtividade, e por aí vai). Estas dicas raramente serão criações minhas.

Mostrando postagens com marcador fifo. Mostrar todas as postagens
Mostrando postagens com marcador fifo. Mostrar todas as postagens

domingo, 25 de maio de 2008

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