Abordagem:
$ ls -l /home/hacker-weekly/abacus
-r--r----- 1 root abacus 373 Nov 12 2012 /home/hacker-weekly/abacus
$ id
uid=1554(gilles) gid=1555(gilles) groups=1555(gilles)
Portanto, precisamos obter permissões de root ou obter abacus
permissões de grupo. Mas como?
Dica (etapa 1): Como você eleva os privilégios?
Solução completa (etapa 1):
Look for setuid or setgid executables that shouldn't be there:
find / -xdev -perm /4000 -ls 2>/dev/null
There are two likely candidates: /usr/local/abacus and /usr/bin/hacker-weekly-abacus. Running the latter prints out an SSH private key.
Dica (etapa 2): A maneira óbvia de usar esse arquivo é fazer login em outra conta. Qual conta?
Solução completa (etapa 2):
Look through /etc/passwd and see what accounts are present (other than the system accounts and the participants). Look in /etc/passwd and /etc/group to find members of the abacus group. There's just guest.
So copy the private key to ~/.ssh/id_rsa, set the permissions correctly, and ssh guest@localhost. Bingo.
< anúncio >
Se você gosta desse tipo de coisa, nós participamos de competições capture-the-flag como o sec.se (Security Stack Exchange) equipe do CTF (veja a meta-postagem para detalhes organizacionais). Há mais web, engenharia reversa e criptografia envolvida do que o unix.