Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   Чужие Статьи (https://forum.antichat.xyz/forumdisplay.php?f=32)
-   -   Держим права roota (https://forum.antichat.xyz/showthread.php?t=7008)

k00p3r 08.06.2005 15:07

Держим права roota
 
Автор: 'Unknown'
Источник: http://www.xakep.ru/

Пишу эту статью и вспоминаю мои первые взломанные сервера %) Разумеется рутом на них я был недолгое время. Причем, сам удивлялся - почему же мое пребывание на сервере раскрыли и запатчили все дыры, через которые я ломал сервер. Теперь ситуация становится яснее - логвайперами я в то время не пользовался, да и за своей безопасностью мало следил... На этом трагическом вступлении мои воспоминания заканчиваются - сегодня я поведаю тебе основные правила, подчиняясь которым ты на много процентов повысишь твою "незамеченность" на зарутанном серваке :)

Итак, начнем. После удачного диалога с сервером у тебя получилось нечто:

Source code / Bash

bash$ gcc coolexploit.c -o cool
bash$ ./cool
Enjoy!
uid=0(root) gid=0(root)
bash#





После последней строки у многих начинается паника: что делать? Как не засветиться в дальнейшем и удержать права рута? Начнем с самого важного - создадим "невидимость" на сервере.



На любителя - установка руткитов, которые заменяют бинарники, типа /bin/ls /bin/netstat, etc... Если админ умный - то у него будет chrootkit и бекап системы. Проверяя контрольную сумму бинарников, он запросто вычислит твое пребывание... Но - это смотря какой админ ;)


Подгрузка дополнительных модулей в ядро... Уже что-то. На этот счет, у меня два претендента на описание - sk-1.3a и adore. Обо всем по порядку:


sk-1.3a - по сути это подмененный /sbin/init+бинарник sk. Содержит сниффер (локальный - записывает stdin,stdout,stderr суид-бинарников), скрывает твои процессы и обеспечивает безопасный вход на сервер ;). По сути, /sbin/init - обеспечивает корректную работу с inetd-сервисами. Трояненный бинарник пускает тебя в систему, когда ты с помощью loginа от sk коннектишься на тачку на любой открытый сервисный порт. Удобно и просто... Побочные эффекты: сорит в логах о невозможности подгрузить модули в ядро... Админы могут заметить. Качать с http://sd.g-art.nl/sk/


adore - модуль ядра, который способен скрывать твои процессы и прятать файлы. Компилишь, затем insmod adore.o; insmod cleaner.o; rmmod cleaner. После этих действий система загрузит адору и уберет модуль из lsmod. Также поставляется бинарник ava - прячет процессы и файлы на сервере. Побочные эффекты: Adore отрубает syslogd при первом сокрытии твоих процессов.. Нет поддержки входа на сервер... Так, что тебе потребуется user-account, чтобы воспользоваться этим руткитом. Брать с http://teso.scene.at/releases/adore-0.42.tgz







Итак, ты обеспечил себе вход на сервер... Далее следует чистка логов. В первое время доверять логвайперам не стоит, поэтому выполни следующее:

Source code / Bash

bash# tail -50 /var/log/messages;
tail -50 /var/log/auth.log;
tail -50 /var/log/secure





Если, ты увидишь заметки о твоем взломе/пребывании на сервере, делай vi logfile и чисти ненужные строки. Затем проверь почту rootа - возможно там есть мыло о взломе:

Source code / Bash

bash# mail -f /var/spool/mail/root
Warning... crc-attack detected & d1 & q
bash#





После того, когда ты уверен, что логи системы вычищены - качай http://packetstormsecurity.org/UNIX/...rs/vanish2.tgz, компиль и выполняй:

Source code / txt

./vanish2 username 0 yourip





Этим ты сотрешь все строки своего пребывания на сервере (username - логин под которым ты засветился, yourip - твой ip адрес). Внимание! Когда ты небезопасно (под юзерским аккаунтом заходишь на сервер) - юзай vanish при каждом входе. Наилучший вариант - закинь бинарник в /usr/bin, а затем адорой скрой его. Если ты ходишь простым аккаунтом - скрой все свои процессы, например, таким кодом:

Source code / Bash

perl -e @ps=system("ps -u user | awk { print($1) } \");
foreach (@ps) { chomp; /usr/bin/ava i $_ }





Где user - твой логин, а /usr/bin/ava - _скрытый_бинарник адоры.
Итак, ты почистил логи и полностью уверен в своей безопасности... Дам тебе напоследок несколько советов, выполняя которые ты увеличишь срок хранения root-привелегий ;)



Читай хистори юзеров. Часто они там оставляют рут-пароли либо пароли на mysql. В папке каждого пользователя (если он имеет shell /bin/bash) имеется скрытый файл .bash_history - найди их все: locate .bash_history и прочитай.


Не свети свои команды, но и не уводи историю рута в /dev/null. Этого делать не надо, так как админы могут по этому симлинку заметить, что их поломали: простой вариант - export HISTFILE=/dev/null при каждом запуске shell.


Бывает, что сервер ломают и до тебя. Чтобы "убить" прежних взломщиков и поглядеть, какие файлы они оставили на тачке - напиши следующие команды (в большинстве процентов, если сервер был взломан заранее, они увенчаются успехом):




Source code / Bash


find /dev -type d

find /tmp -type d

find / -type f -perm 4755








Если ты найдешь директории типа /dev/...или /tmp/.. - то в них что-то есть.


Как запасной вариант - создание суид-шелла. Через него ты можешь получить рута, но его могут засечь админы. Код такой:




Source code / Bash


int main()

{

setuid(0);

setgid(0);

system("bash");

}








Компилим, кидаем в бинарники под скромным именем... и возможно пользуемся им.


Разгадывай пароли пользователей. Попробуй john-ом прогнать всех пользователей на сервере в том числе и рута... Пробуй в качестве словаря тот язык, в зоне которого находится тачка.. Возможно сработает.


И наконец, не заходи на взломанную машину напрямую с твоего диалапа или прововской выделенки. Если напишут жалобу админу - то у тебя будут неприятности... Лучше зарегистри где-нибудь халявный шелл и юзай взломанный сервер через тамошний ssh-клиент.


Время: 19:54