Какой uid у пользователя sit2 в какие группы он входит
Перейти к содержимому

Какой uid у пользователя sit2 в какие группы он входит

Все, что вам нужно знать о UID в Linux

Все, что вам нужно знать о UID в Linux

Эта статья по основам Linux научит вас всему важному, связанному с UID в Linux.

Что такое UID в Linux?

UID обозначает идентификатор пользователя. UID — это номер, назначенный каждому пользователю Linux. Это представление пользователя в ядре Linux.

UID используется для идентификации пользователя в системе и для определения того, к каким системным ресурсам пользователь может получить доступ. Вот почему идентификатор пользователя должен быть уникальным.

Вы можете найти UID в файле /etc/passwd. Это тот же файл, который можно использовать для составления списка всех пользователей в системе Linux.

Используйте команду Linux для просмотра текстового файла, и вы увидите различную информацию о пользователях, присутствующих в вашей системе.

root:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin bin:x:2:2:bin:/bin:/usr/sbin/nologin sys:x:3:3:sys:/dev:/usr/sbin/nologin sync:x:4:65534:sync:/bin:/bin/sync games:x:5:60:games:/usr/games:/usr/sbin/nologin man:x:6:12:man:/var/cache/man:/usr/sbin/nologin lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin mail:x:8:8:mail:/var/mail:/usr/sbin/nologin news:x:9:9:news:/var/spool/news:/usr/sbin/nologin andreyex:x:1000:1000:Andrey. /home/helder:/bin/bash davmail:x:127:65534::/var/lib/davmail:/usr/sbin/nologin statd:x:128:65534::/var/lib/nfs:/usr/sbin/nologin

Третье поле здесь представляет идентификатор пользователя или UID.

Обратите внимание, что в большинстве дистрибутивов Linux UID 1-500 обычно зарезервирован для системных пользователей. В Ubuntu и Fedora UID для новых пользователей начинаются с 1000.

Например, если вы используете команду useradd или adduser для создания нового пользователя, он получит следующий доступный номер после 1000 в качестве своего UID.

Корневой пользователь
В Linux UID — 0 и GID — 0 зарезервированы для пользователя root.

Как найти UID пользователя в Linux?

Вы всегда можете положиться на файл /etc/passwd, чтобы получить UID пользователя. Это не единственный способ получить информацию UID в Linux.

Команда id в Linux отобразит UID, GID и группы, к которым принадлежит ваш текущий пользователь:

id uid=1000(andreyex) gid=1000(andreyex) groups=1000(andreyex),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),116(lpadmin),126(sambashare),127(kvm)

Вы также можете указать имена пользователей с помощью команды id, чтобы получить UID любого пользователя Linux:

id standard uid=1001(standard) gid=1001(standard) groups=1001(standard)

Как изменить UID пользователя в Linux?

Предположим, у вас было несколько пользователей в вашей системе Linux. Вы должны были удалить пользователя, потому что он/она покинул организацию. Теперь вы хотите, чтобы его UID был занят другим пользователем, уже находящимся в системе.

Вы можете изменить UID, изменив пользователя с помощью команды usermod следующим образом:

usermod -u 1004 user_2

Вы должны иметь привилегию суперпользователя для выполнения вышеуказанной команды.

Вы помните концепцию прав доступа и владения файлами в Linux? Право собственности на файл определяется UID пользователя-владельца.

Когда вы обновляете UID пользователя, что происходит с файлами, принадлежащими этому пользователю? В то время как все файлы в домашнем каталоге user_2 изменят свой связанный UID, вам придется вручную обновить связанный UID других файлов вне домашний каталог.

Что вы можете сделать, это вручную обновить владельца файлов, связанных со старым UID пользователя_2.

find / -user old_uid_of_user_2 -exec chown -h user_2 <> \;

Вот и все. Мы надеемся, что теперь у вас есть лучшее представление об UID в Linux. Не стесняйтесь задавать свои вопросы, если таковые имеются.

Как профессиональный пользователь Linux, если вы думаете, что мы пропустили какое-то важное понятие об UID, пожалуйста, дайте мне знать в разделе комментариев.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

�� Команда id — найти UID пользователя или GID

Чтобы найти UID пользователя (ID пользователя) или GID (идентификатор группы) и другую информацию в Linux/Unix-подобных операционных системах, используйте команду id.

Эта команда полезна для поиска следующей информации:

  • Получить имя пользователя и реальный идентификатор пользователя
  • Найти UID конкретного пользователя
  • Перечислите все группы, к которым принадлежит пользователь
  • Показать UID и все группы, связанные с пользователем
  • Отображение контекста безопасности текущего пользователя
  • Эффективное имя пользователя Linux или Unix и эффективный идентификатор пользователя (UID)
  • Имя действующей группы пользователей Linux или Unix и идентификатор эффективной группы (GID)

Цель

Отображает системные идентификаторы указанного пользователя.

синтаксис команды id

id id [UserNameHere] id [параметры] id [параметры] [имя_пользователя]

По умолчанию команда id показывает имена пользователей и групп и числовые идентификаторы вызывающего процесса, то есть текущего пользователя, который запускает команду id на экране. Если имя пользователя или идентификатор пользователя ([UserNameHere]) указаны в командной строке, отображаются идентификаторы пользователя и группы этого пользователя.

Показать свой собственный UID и GID

uid=1000(vasia) gid=1000(vasia) группы=1000(vasia),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),113(lpadmin),130(sambashare),132(libvirtd),134(lxd)

Как найти UID конкретного пользователя?

В этом примере найдите UID пользователя vasia, введите:

id -u id -u vasia

Как найти GID конкретного пользователя?

В этом примере найдите GID пользователя vasia, запустите:

id -g id -g vasia

Как увидеть UID и все группы, связанные с именем пользователя?

В этом примере найдите UID и все группы, связанные с пользователем с именем «root», введите:

id id root
uid=0(root) gid=0(root) группы=0(root)

Как узнать все группы, к которым принадлежит пользователь…

В этом примере отобразите UID и все группы, связанные (вторичные группы) с пользователем с именем «vasia», запустите:

id -G id -G vasia

1000 20 12 61 79 80 81 98 33 100 204 398 399

Отображать имя вместо UID / GID

По умолчанию команда id отображает число для опций -G, -g и -u. Вы можете заставить команду id отображать имя UID или GID вместо номера для опций -G, -g и -u, передав опцию -n следующим образом:

id -ng id -nu id -nG id -nG vasia
vasia adm cdrom sudo dip plugdev lpadmin sambashare libvirtd lxd

Как отобразить реальный идентификатор вместо эффективного идентификатора для указанного пользователя?

Вы можете показать действительный идентификатор для параметров -g, -G и -u вместо эффективного идентификатора, передав опцию -r:

id -r -g id -r -u ### [NOTE]########################### ### -r and -G only works on Linux ### ##################################### id -r -G id -r -u vasia

Параметры команды id

Опция Назначение OS
-g Показать только эффективный идентификатор группы ALL
-G Показать все идентификаторы группы ALL
-u Показать только эффективный идентификатор пользователя ALL
-n Показать имя вместо числа, для -u или -g ALL
-r Показать действительный идентификатор вместо действующего, с -u или -g ALL
-Z Показать только контекст безопасности текущего пользователя SELinux SELinux
-A Показать идентификатор пользователя аудита процесса и другие свойства аудита процесса Только Unix-like.

Смотрите также

man id — Страница руководства по команде id

�� Похожие статьи на сайте

  • Методы монтирования дисков в Linux
  • Введение в диспетчер логических томов (LVM)
  • Локальное туннелирование с помощью SSH: несколько примеров
  • Альтернативы SSH, которые в некоторых случаях лучше оригинала
  • Полный набор лучших и современных консольных программ для Linux
  • Установка ZoneMinder на Ubuntu 22.04 (Linux Mint 21) и nginx
  • Устанавливаем GIMP в Ubuntu 22.04 (Linux Mint 21)
  • Устанавливаем qBittorrent в Linux Ubuntu/Mint
  • Исправляем ошибку — network unreachable resolving ‘./NS/IN’: 2001:503:c27::2:30#53
  • Установка remmina из ppa в Ubuntu 22.04 или Mint 21
  • Исправляем: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg)
  • Что такое зомби-процесс в Linux?
  • Хитрости командной строки Bash, которые помогут вам работать быстрее
  • Команда ls в Linux — подробно и с примерами
  • Команда mkdir в Linux — подробно и с примерами
  • Список непечатаемых символов Linux, MacOS или Windows
  • Команда chmod в Linux — подробно и с примерами
  • Команда cat и примеры её использования в Linux
  • Как установить приложение Yarock Music Player
  • Запуск нескольких команд Linux одной составной командой
  • Файловый менеджер nnn
  • Версия системы и версия ядра Ubuntu/Mint
  • Запуск команд на удаленном сервере через SSH
  • Цветовые схемы и внешний вид MC (midnight commander)
  • Переключение кодировок в MC
  • Шпаргалка по горячим клавишам для файловых панелей MC (midnight commander)
  • Ошибка NO_PUBKEY. Как найти GPG-ключ и добавить его в базу apt системы Ubuntu
  • Установка драйвера wifi Asus wl-167g v3 (rtl8192) для Ubuntu 16.04 и 18.04
  • Как настроить wifi из командной строки в Ubuntu
  • Изменение имени сетевого интерфейса в Ununtu/Mint
  • nmon — удобный инструмент для мониторинга Linux систем
  • Ошибка: 502 bad gateway — connect() to unix:/run/php/php-fpm.sock failed (11: Resource temporarily unavailable)
  • Команда history или работа с историей введенных команд
  • Шпаргалка по архиватору 7z (7-Zip) в Linux Ubuntu/Mint
  • Преобразование видео от 1080p до 720p с наименьшими потерями с использованием ffmpeg
  • Как посмотреть все доступные шрифты в терминале (CLI)?
  • Команда id — найти UID пользователя или GID
  • Лучшие рекомендации по повышению безопасности для серверов OpenSSH
  • Разрешения файлов директории .SSH
  • Настройка Nginx FastCGI Cache для сокращения времени отклика сервера WordPress
  • Как получить реальный IP-адрес пользователя в nginx за обратным прокси-сервером nginx
  • Чем отличается прямой прокси от обратного прокси
  • Руководство по iptables (Iptables Tutorial 1.1.19)
  • Настройка автозапуска скриптов в Linux Ubuntu/Mint
  • Устанавливаем оболочку bash про умолчанию
  • SOCS5 прокси сервер DANTE — установка и настройка
  • Сервис online настройки параметров сервера nginx
  • nmblookup — аналог команды Windows nbtstat для Linux.
  • Inxi — программа вывода информации о системе и железе в Linux
  • dnstop — мониторинг и анализатор DNS-трафика

Linux 1. Какой uid у пользователя sit2? В какие группы он входит? 2. Почему попытка удалить пользователя не удалась, и

Откройте два терминала (в серверных Linux для переключения между терминалами (tty)
обычно используется сочетание клавиш Alt+F[1-5]). В одном из них получите права
суперпользователя используя команду sudo su:
Изучите как создать пользователя с домашним каталогом с помощью команды useradd
из справочной документации man
Используя useradd создайте пользователя «sit2» c домашним каталогом «sit2».
Установите пароль для нового пользователя «sit2» с помощью команды passwd sit2
Выйдите из суперпользователя командой exit
Войдите под первым терминалом в пользователя «sit», во втором в пользователя «sit2».
Посмотрите какой идентификатор получил пользователь «sit» и пользователь «sit2»
используя команду id
Посмотрите права доступа на домашний каталог пользователей «sit» и «sit2», используя
команду ls
Создайте файл под пользователем «sit2» с маской 0077 используя umask
Попробуйте прочитать его содержимое под пользователем «sit» используя команду cat
Измените права доступа на файл так, чтобы пользователь «sit» мог записывать в файл,
но не читать его.
Запишите текстовую информацию в файл из под пользователя «sit» используя
консольный текстовый редактор vi или nano
Проверьте права на файл, и прочитайте его содержимое из под пользователя «sit2»
Создайте каталог из под пользователя «sit2»
Установите права записи для группы пользователей на данный каталог
Добавьте пользователя «sit» в группу «sit2» с помощью команды usermod
Проверьте в какие группы входит пользователь «sit»
Создайте несколько файлов в каталоге, который был создан пользователем «sit2» из под
пользователя «sit».
Ознакомьтесь как удалить пользователя вместе с содержимым его домашнего каталога
из справочной документации
Удалите пользователя «sit2» вместе с его домашним каталогом.

1. Какой uid у пользователя sit2? В какие группы он входит?

2. Почему попытка удалить пользователя не удалась, и что нужно сделать для его удаления?

3. Какие права доступа установлены на домашний каталог пользователя «sit»?

4. Как рекурсивно изменить права доступа на файлы в каталоге?

5. Как можно осуществлять переключение между пользователями в рамках одного терминала?

Приручение черного дракона. Этичный хакинг с Kali Linux. Часть 6. Пост-эксплуатация. Способы повышения привилегий

Приветствую тебя, дорогой читатель, в шестой части серии статей «Приручение черного дракона. Этичный хакинг с Kali Linux».

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

Приручение черного дракона. Этичный хакинг с Kali Linux:

В прошлой статье мы рассмотрели основные методы эксплуатации уязвимостей в Linux и Windows системах при помощи модулей фреймворка Metasploit. Поговорили о таких вещах как типы полезной нагрузки, кодирование полезной нагрузки, а так же рассмотрели варианты соединения bind и reverse сессий. Однако, получение доступа к целевой системе, это лишь начальный этап проникновения, за которым следует пост-эксплуатация — процесс связанный с повышением привилегий, получения доступа к сторонним службам и закрепления в скомпрометированной системе. С учетом обширности данной темы, мы разобьем ее на несколько частей. В этот раз мы поговорим о способах повышения привилегий в скомпрометированной системе на примере Linux. Так что, дорогой читатель, заваривай чайку покрепче, усаживайся поудобнее в кресло и мы начнем.

По сути, вся эта тема с повышением привилегий в Linux/Unix системах (все же, большая часть сервисов в Enterprise работает именно на Linux/Unix подобных системах. Пользовательский сегмент не берем в расчет), держится на двух основных способах:

1) Использование уязвимостей компонентов самой системы (например, ее ядра)

2) Использование битов SUID/GUID

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

Для назначения прав во всех Unix-подобных системах используются три группы флагов, первая определяет права для владельца, вторая — права для основной группы пользователя, третья — для всех остальных пользователей в системе.

Для назначения прав файлам и каталогам используются флаги rwx: r — разрешает чтение из файла; w — разрешает запись в файл; x — разрешает выполнение файл.

Стоит отметить такой важный момент, что для каталогов, флаги rwx имеют несколько отличный смысл: r — позволяет читать только имена файлов в каталоге; x — позволяет иметь доступ к самим файлам и их атрибутам (но не именам); w имеет смысл только в сочетании с x, и позволяет (в дополнение к x) манипулировать с файлами в каталоге (создавать, удалять и переименовывать). w без x — не имеет никакого эффекта.

Ниже прилагается таблица распределения прав на файлы и каталоги в Linux (взято с https://help.ubuntu.ru

Для администрирования часто удобнее использовать не буквенное представление прав, а цифровое, в восьмеричном представлении. Так, например, права на файл всем и вся, соответствуют записи 777 (что аналогично символьному представлению rwxrwxrwx).

Существуют также специальные биты, такие как SUID, SGID и Sticky-бит. SUID, SGID влияют на запуск файла, а Sticky влияет на определение владельца объектов в каталоге. При их применении необходимо использовать не три восьмеричных цифры, а 4. Зачастую, в различной технической литературе права обозначаются именно 4-мя цифрами, например 0744.

Флаги прав доступа setuid и setgid позволяют запускать исполняемые файлы с правами владельца или группы исполняемого файла (как правило root пользователя). Такие исполняемые файлы, запущенные с повышенными привилегиями, могут получать доступ к более привилегированной информации. Пример таких программ vim, nmap, nano, cp, find, bash, less, more, ping.

И так, с теорией покончено, переходим к практике. И сегодня мы попрактикуемся немного в CTF, взломав машину под названием Happycorp1 (ссылки для скачивания всех тестовых машин я оставлял в самой первой статье).

Первым делом, запускаем arp-scan либо netdiscover для обнаружения всех хостов в локальной сети.

Видим адрес некой машины VMware. Он нам и нужен. Запускаем nmap с ключом -sV

и смотрим, что тут у нас есть.

Открытых портов на данной машине не много. Всего 4. Есть веб-сервер, и, обычно, если рассматривать машины заточенные под CTF, я начинаю поиски с исследования исходного кода стартовой html страницы (авторы частенько оставляют подсказки в виде закоментированных строк), а так же сканирую при помощи утилит nikto и dirb. Однако, у данной машины тут нет ничего интересного, за что можно было бы зацепиться. А вот порт 2049 очень даже интересен, поскольку на нем работает служба NFS (Network File System), представляющая из себя протокол сетевого доступа к файловым системам. Данная служба позволяет подключать (монтировать) удалённые файловые системы через сеть и позволяет работать с файлами на удаленном хосте так же, как и с локальными. В Linux системах есть на такие случаи специальная команда, которая поможет нам посмотреть список всех удаленных клиентов которые выполняли удаленное монтирование файловой системы на данной машине — showmount. Данная информация поставляется сервером mountd и сохраняется в файле /etc/rmtab. Если аргумент host не указан, используется имя, возвращаемое hostname.

Команда выглядит следующим образом: showmount -e 192.168.1.4

Отлично. Теперь мы знаем, что на целевой машине создан пользователь karl и у него есть свой домашний каталог внутри /home. Попробуем создать директорию и примонтировать к ней через службу NFS этот каталог.

Мы примонтировали каталог к созданной директории и можем вывести список его содержимого. К сожалению, просмотреть отдельные файлы у нас нет возможности ввиду отсутствия соответствующих прав. А теперь внимание, вспоминаем то, о чем я писал ранее и внимательно смотрим на список. Он состоит из нескольких колонок. В первой слева отображаются права на файлы и папки, а вот дальше идут те самые параметры GID и UID (идентификатор группы и пользователя), где мы видим значение 1001. Первое, что приходит в голову, это попробовать создать в локальной системе (на нашей машине с Kali) пользователя с UID 1001 и добавить его в группу с GID 1001. Так и поступим. Заморачиваться с именем пользователя я не стану и пусть его зовут так же karl, а группу назовем nfs. При желании созданного пользователя и группу в которую он входит всегда можно удалить командами deluser delgroup .

И так, мы создали группу присвоив ей нужное значение GID, и создали пользователя с домашним каталогом /home/karl и пользовательским идентификатором 1001.

Выведем список пользователей нашей системы и посмотрим, что у нас тут есть

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

Username: первое поле представляет имя пользователя. Длина поля имени пользователя определяется от 1 до 32 символов.

Password: второе поле содержащее в себе символ «x» означает, что пароль хранится в зашифрованном виде в файле /etc/shadow. В ранних версиях Linux-систем он хранился тут же в зашифрованном виде. С учетом того, что шифрование MD5 не есть безопасно, позже схема хранения паролей была усовершенствована. В файле shadow к хэшированному паролю добавляется дополнительная строка символов для смешения в функции хеширования называемая соль.

User ID (UID): в третьем поле хранится идентификатор пользователя, который назначается каждому пользователю. Нулевой UID назначается пользователю root, а идентификаторы пользователей от 1 до 99 назначаются предопределенным или стандартным учетным записям. Дальнейшие UID от 100 до 999 назначаются системным административным учетным записям или группам.

Group ID (GID): четвертое поле представляет собой идентификатор группы. GID хранится в файле /etc/group.

Information about User ID: пятое поле предназначено для комментариев. В этом поле мы можем указать полное имя пользователя, либо оставить его пустым.

Home directory: в шестом поле отображается расположение домашнего каталога, назначенного текущему пользователю.

Command shell: последнее поле содержит путь к оболочке используемой для входа в систему.

Самое время проверить сработает ли это. Попробуем переключиться в консоли на пользователя karl и зайти от его имени в каталог .ssh в примонтированном разделе

Отлично! Получив соответствующие права мы смогли зайти в недоступный нам ранее каталог. В нем хранится текстовый файл user.txt внутри которого мы обнаружим первый флаг, а так же авторизованный, публичный и приватный ключи для доступа по SSH. Исследуем каждый из элементов.

Внутри authorized_keys и id_rsa.pub мы видим в конце имя пользователя который создавал сессию karl. С учетом, того, что этот Карл по неосторожности оставил нам в этой папке закрытый ключ, мы можем с помощью него получить доступ к целевой машине по SSH следующей командой ssh -i

Однако, тут нас будет ждать неудача. Ключ защищен парольной фразой, без которой подключиться не получится. Что же делать в этом случае? Тут нам на помощь приходит замечательный парень которого зовут Джон! John (он же John the Ripper) — мощнейший инструмент брутфорса паролей по их хэшам. Он способен создавать словари любой сложности, а также извлекать хеш из файла, что является одной из самых сильных сторон john по сравнению с аналогичными программами.

Для начала вернемся к нашему приватному ключу и скопируем его содержимое

от места ——BEGIN RSA PRIVATE KEY—— до места ——END RSA PRIVATE KEY—— после чего вставим в созданный редактором vim либо nano файл на нашей локальной машине.

В моем примере я создал файл для ключа с именем rsa-key в домашнем каталоге пользователя karl. После того, как мы вставили скопированный ключ, жмем Ctrl + X и на вопрос Save modified buffer? — отвечаем y (yes) File name to write – жмем Enter.

Далее, нам необходимо найти в программах Kali коллекцию предустановленных парольных словарей, и запустить процесс распаковки таких как rockyou (именно он нам понадобится).

Храниться все они будут в каталоге /usr/share/wordlists

После этого нам необходимо преобразовать файл ssh-ключа в удобный для работы с john формат. Для этого в его составе имеется специальный конвертер под названием ssh2john. Найти его и все остальные модули для Джона можно в каталоге /usr/share/john

Переместимся в эту директорию и запустим процесс конвертации командой

python ssh2john.py /home/karl/rsa-key > /home/karl/ssh2john.txt

После этого можно смело приступать к процессу брутфорса. Команда будет следующая:

john —wordlist=/usr/share/wordlists/rockyou.txt /home/karl/ssh2john.txt

Ждем несколько секунд и готово! Парольная фраза ключа sheep. Теперь-то мы точно готовы к подключению. Возвращаемся к учетке Карла и переходим в директорию /mnt/happycorp/.ssh где лежит оригинальный ЗАЩИЩЕННЫЙ ключ (наш скопированный для работы с john не является защищенным и поэтому от него уже толку нет никакого. Свою роль он выполнил).

И так, вроде мы подключились но тут вместо привычного удаленного терминала нас встречает rbash (restricted shell bash), командная оболочка операционной системы семейства Linux/Unix, которая может ограничивать некоторые действия пользователей. Вот же зараза! Придется нам переподключаться с возможностью использования удаленного псевдотерминала (вариант с запуском python pty внутри rbash не работает, поскольку мы получаем уже на старте ограниченную shell-оболочку). Вспоминаем скрипт на python:

python -c ‘import pty; pty.spawn(«/bin/sh»)’

Отсюда нам при создаваемом ssh соединении понадобится /bin/sh

Команда будет выглядеть так:

Ну, вот! Совсем другое дело! Мы успешно подключились к целевой машине, но под пользователем с ограниченными правами. Соответственно, мы не можем выполнять никаких действий требующих повышенных прав и полномочий (создание новых групп и пользователей, редактирование системных файлов и т. д.). И вот тут мы подходим к тому самому моменту, ради которого выполнялись все предыдущие действия — повышение привилегий. И помогут нам в этом те самые файлы и утилиты которые запускаются с привилегированными правами от root, но при этом могут использоваться и обычными пользователями (например, команда ping). Для того, чтобы найти такие файлы в системе необходимо ввести следующую команду:

find / -perm -u=s -type f 2>/dev/null

Перед нами появится следующий список, в котором присутствуют различные файлы, в том числе файл команды cp, которая позволит нам копировать что угодно и откуда угодно не смотря на наши ограниченные права пользователя в данной системе! А это значит, что мы можем, к примеру, методом копирования заменить файл passwd в директории /etc/ на свой отредактированный вариант. Что ж, это будет весьма интересно. Приступим!

Для начала откроем содержимое файла /etc/passwd, и, скопировав его, создадим редактором nano новый файл с точно таким же названием в директории /var/www/html.

И тут нам необходимо вспомнить важный момент касаемо того, как устроен файл passwd (я писал об этом ранее в начале статьи). Вместо знака x в ранних версиях Linux тут стояли зашифрованные пароли. Значит, нам необходимо добавить строку для нового пользователя с правами как у root, соблюдая все правила форматирования данного файла и вместо x подставить зашифрованный в MD5 пароль этого пользователя. В этом деле нам поможет такая утилита как mkpasswd

Параметров у нее не так уж и много, нам понадобится следующий вариант команды

Я создал пароль «bingo» и его закодированный в MD5 вариант я подставлю в то самое поле вместо значения x

Отлично! У меня есть пользователь demigod с правами суперпользователя root (я просто скопировал строку с параметрами пользователя root и отредактировал первые два значения), а значит, остается лишь подменить мой отредактированный файл на целевой машине.

Подготовим среду, для обмена файлами между нашей машиной с Kali и атакуемой машиной. Не будем изобретать велосипед и воспользуемся проверенным способом из прошлой статьи — веб-сервер на базе Apache. Запустим его и проверим состояние:

systemctl start apache2.service

systemctl status apache2.service

Далее, при помощи команды wget скачиваем с нашего веб-сервера отредактированный файл passwd

Замечательно! Остается лишь подменить файл на исходный в каталоге /etc/ и попробовать сменить пользователя на demigod

Бинго. Мы получили заветную решетку root пользователя в терминале. Самое главное, помнить, что подобные эксперименты можно проводить лишь на собственных ресурсах либо с письменного соглашения тестируемой стороны. В противном случае, можно попасть под статью в уголовном кодексе о неправомерном доступе к компьютерной информации и «получить» совершенно другую решетку. Остается забрать последний флаг в папке /root

Подводя итоги темы касаемо повышения привилегий в любой системе, при ее обслуживании и конфигурации, стоит помнить о двух ключевых моментах:

1) Если даже система работает стабильно годами, это вовсе не значит, что она совершенна и ее ни в коем случае нельзя трогать. Именно любимое правило многих сисадминов «Если работает — не трогай!» приводит чаще всего к тому, что с годами в этой сверхстабильной системе накапливаются дыры в безопасности, и в конечном итоге, в один прекрасный день ты осознаешь, что твой сервер уже и не принадлежит тебе…

2) Когда в системе создается какой-либо пользователь или добавляется «для удобства работы» какой-либо сервис, убедись в том, что настройки этого сервиса и права данные этому пользователю не позволят в будущем привести к печальным и необратимым последствиям.

На этой ноте я прощаюсь с тобой, мой дорогой читатель, до новых встреч, в цикле статей «Приручение черного дракона. Этичный хакинг с Kali Linux”. И самое главное, помни всегда, что.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *