Перейти к содержимому

Sudo hack что это

  • автор:

Sudo hack что это

— title: Основы Linux_14 Использование команды sudo в Linux. tags: Преподавание в МИРЭА description: описание — ## Практическая работа «Использование команды sudo в Linux» **Цель работы:** * Научиться работать с sudo; * Разобраться как настраивается конфигурационный файл sudoers. **Задача:** * Настроить секцию команд таким образом, чтобы пароль запрашивался для всех команд кроме su; * Разрешить членам группы “MIREA” монтирование и размонтирование устройств; * Разрешить выполнение через sudo для всех пользователей группы “MIREA”, всех команд, кроме команд смены оболочки; * Сконфигурировать, чтобы команда sudo запрашивала пароль не позже, чем через 1 минуту после ввода пароля для предыдущей команды; * Сконфигурировать, чтобы команда sudo запрашивала при каждом запуске пароль и при повторный вводе пароля, чтобы не запрашивался никогда. ### 1. Команда sudo . info **Команда sudo** ( substitute user and do, подменить пользователя и выполнить ) позволяет строго определенным пользователям выполнять указанные программы с административными привилегиями без ввода пароля суперпользователя root. Если быть точнее, то команда sudo позволяет выполнять программы от имени любого пользователя, но, если идентификатор или имя этого пользователя не указаны, то предполагается выполнение от имени суперпользователя root. Таким образом, использование sudo позволяет выполнять привилегированные команды обычным пользователям без необходимости ввода пароля суперпользователя root . Список пользователей и перечень их прав по отношению к ресурсам системы может быть настроен оптимальным образом для обеспечения комфортной и безопасной работы. Например, команда sudo в Ubuntu Linux, используется в режиме, позволяющем выполнять любые задачи администрирования системы без интерактивного входа под учетной записью root. . . warning Настройки sudo довольно несложные, и тем не менее, позволяют реализовать гибкую систему распределения полномочий отдельных пользователей в многопользовательской среде. . **Командная строка sudo может быть использована в следующих форматах:** . success sudo -h | -K | -k | -V sudo -v [-AknS] [-g group] [-h host] [-p prompt] [-u user] sudo -l [-AknS] [-g group] [-h host] [-p prompt] [-U user] [-u user] [command] sudo [-AbEHknPS] [-C num] [-g group] [-h host] [-p prompt] [-u user] [VAR=value] [-i|-s] [] sudo -e [-AknS] [-C num] [-g group] [-h host] [-p prompt] [-u user] file . ### 1. Параметры командной строки: . spoiler * -A, —askpass — использовать вспомогательную программу для ввода пароля * -b, —background — выполнить команду в фоновом режиме * -C, —close-from=num — закрыть все дескрипторы файлов >= num * -E, —preserve-env — сохранить пользовательское окружение при выполнении команды * -e, —edit — редактировать файлы вместо выполнения команды * -g, —group=group — выполнить команду от имени или ID указанной группы * -H, —set-home — установить для переменной HOME домашний каталог указанного пользователя * -h, —help — показать справку и выйти * -h, —host=host — выполнить команду на узле (если поддерживается модулем) * -i, —login — запустить оболочку входа в систему от имени указанного пользователя; также можно задать команду * -K, —remove-timestamp — полностью удалить файл с timestamp * -k, —reset-timestamp — объявить недействительным файл timestamp * -l, —list — показать список прав пользователя или проверить заданную команду; в длинном формате используется дважды * -n, —non-interactive — автономный режим без вывода запросов пользователю * -P, —preserve-groups — сохранить вектор группы вместо установки целевой группы * -p, —prompt=prompt — использовать указанный запрос пароля * -S, —stdin — читать пароль из стандартного ввода * -s, —shell — запустить оболочку от имени указанного пользователя; также можно задать команду * -U, —other-user=user — в режиме списка показывать права пользователя * -u, —user=user — выполнить команду (или редактировать файл) от имени или ID указанного пользователя * -V, —version — показать сведения о версии и выйти * -v, —validate — обновить временную метку пользователя без выполнения команды * — — прекратить обработку аргументов командной строки . ### 2. Примеры использования команды sudo: . success `sudo –l` — отобразить список команд, доступных для выполнения текущему пользователю. Кроме списка команд отображаются параметры среды, которые будут применяться при их выполнении. `sudo –ll` — отобразить список команд, доступных для выполнения текущему пользователю в длинном (расширенном) формате. В данном формате вместо краткого синтаксиса для списка разрешенных команд в виде (ALL : ALL) ALL отображается подробное описание прав пользователя: «` Sudoers entry: RunAsUsers: ALL RunAsGroups: ALL Команды: ALL «` . . info * **sudo lshw -C network** — отобразить информацию о сетевом оборудовании с правами суперпользователя root * **sudo –l –U user1** — посмотреть список команд, доступных для выполнения пользователю user1. Для выполнения данной команды пользователь должен быть root или иметь право на выполнение команды sudo -l, что обеспечивается настройками утилиты sudo в файле /etc/sudoers * **sudo ipmitool sensor** — выполнить команду ipmitool sensor с правами root. * **sudo su** — выполнить команду su, т.е. создать сеанс суперпользователя root * **sudo -i** — запустить командную оболочку с правами суперпользователя root. Для выполнения данной команды пользователь должен иметь право на выполнение программы оболочки в среде sudo, например — /bin/bash * **sudo ls /usr/local/protected** — получить список файлов каталога, доступного только root * **sudo -u user2 ls ~** — получить список файлов домашнего каталога пользователя user2 * **sudo -u www vi ~www/htdocs/index.html** — редактировать файл ~www/htdocs/index.html от имени пользователя www * **sudo -g adm view /var/log/syslog** — просмотреть файл системного журнала, доступного только суперпользователю root и членам группы adm * **sudo -u user1 -g users2 vi /home/users2/textfile.txt** — редактировать текстовый файл как пользователь user1, с принадлежностью к первичной группе users2 * **sudo -E /usr/bin/firefox** — запустить браузер firefox от имени суперпользователя root, сохранив параметры среды текущего пользователя. Возможность выполнения команд с сохранением среды пользователя должна быть разрешена параметром SETENV в настройках файла конфигурации sudo . ### 3. Файл конфигурации /etc/sudoers . warning Настройки sudo определяется содержимым файла `/etc/sudoers`. Поскольку ошибочные данные в данном файле могут привести к серьезным проблемам доступа к ресурсам системы, рекомендуется выполнять его изменение с помощью специального редактора sudoedit ( в некоторых дистрибутивах — visudo ), который поддерживает функции проверки синтаксиса и значительно снижает риск создания неработоспособной конфигурации sudo. Содержимое файла `/etc/sudoers` определяет имена пользователей и групп, перечень выполняемых программ, необходимость введения паролей, и некоторые другие настройки, связанные с формированием переменных окружения при смене пользователя. Кроме данного файла, настройки sudo могут определяться содержимым файлов из каталога `/etc/sudoers.d` , что позволяет структурировать систему предоставления прав на использование sudo в виде набора файлов с осмысленными именами, что полезно при большом количестве пользователей и сложной системе разграничения прав. Имена файлов конфигураций в каталоге `/etc/sudoers.d` могут быть любыми, но их содержимое должно полностью соответствовать формату файла `/etc/sudoers`. . ### 3.1 Синтаксис настроек в файле /etc/sudoers позволяет использовать специальные псевдонимы ( Alias-ы ), с помощью которых значительно упрощается как настройка, так и восприятие конфигурационной информации sudo: . info **В файле конфигурации /etc/sudoers возможно использование четырех разновидностей псевдонимов:** * **User_Alias** — списки пользователей, для которых настраивается политика использования sudo. * **Runas_Alias** — списки пользователей, от имени которых может быть задано выполнение команд через sudo. * **Host_Alias** — списки узлов, с которых выполняется подключение к системе. * **Cmnd_Alias** — списки команд, использующиеся в настройках, выполняемых директивами файла /etc/sudoers **Примеры:** * **Host_Alias ADMCOMPS = localhost, server, admin** — определяет псевдоним ADMCOMPS, который определяет группу компьютеров с именами localhost, server, admin. * **Host_Alias MAILSERVERS = 192.168.0.100, smtp2** — определяет группу из двух компьютеров с указанными IP и именем. Возможно использование адресов подсетей. * **User_Alias ADMINS = jsmith, admusr** — определяет группу ADMINS, в которую входят пользователи с именами jsmith и admusr. . . success **Аналогичным образом можно создать псевдонимы для различных наборов команд, доступных для выполнения в sudo:** **Группа команд, для работы в сети, псевдоним Networking** * Cmnd_Alias NETWORKING = /sbin/route, /sbin/ifconfig, /bin/ping, /sbin/dhclient, /usr/bin/net, /sbin/iptables, /usr/bin/rfcomm, /usr/bin/wvdial, /sbin/iwconfig, /sbin/mii-tool **Группа команд для управления установкой и удалением программ, псевдоним SOFTWARE** * Cmnd_Alias SOFTWARE = /bin/rpm, /usr/bin/up2date, /usr/bin/yum **Группа команд для управления системными службами, псевдоним SERVICES** * Cmnd_Alias SERVICES = /sbin/service, /sbin/chkconfig *Аналогичным образом можно создать псевдонимы для групп команд, выполнение которых делегируется одиночным или объединенных псевдонимами пользователей.* . . info **Основная часть настроек в файле /etc/sudoers задает правила, определяющие, какие пользователи, каких компьютеров, какие команды могут выполнять. Формат записей:** * user MACHINE=COMMANDS * user — имена или псевдонимы пользователей. * MACHINE — имена или псевдонимы компьютеров * COMMANDS — секция команд, включающая имена или псевдонимы команд и дополнительные параметры. . ### 4. Примеры конфигурации. #### 4.1 Обычно, в файле /etc/sudoers присутствует директива, разрешающая выполнение пользователю root любых команд при любом подключении к системе: `## Allow root to run any commands anywhere ` `root ALL=(ALL) ALL` #### 4.2 Аналогичным образом можно разрешить выполнение через sudo всех команд для пользователя, например, с именем *user*: `user ALL=(ALL) ALL` *При данной настройке, у пользователя будет запрашиваться пароль (его личный, а не пароль суперпользователя root).* #### 4.3 При необходимости, можно настроить секцию команд таким образом, чтобы пароль не запрашивался, с использованием параметра **NOPASSWD:** `user ALL=(ALL) NOPASSWD: /usr/bin/su, /usr/bin/drakxconf` — пароль будет запрашиваться при выполнении пользователем user через `sudo` всех команд, кроме `su и drakxconf` #### 4.4 Использование псевдонимов позволяет уменьшить необходимое число записей для определения прав пользователей, которые могут подключаться к системе с разных компьютеров и входить в разные группы: * `ADMINS localhost=(ALL) NOPASSWD:ALL` — разрешить группе пользователей, определенной псевдонимом `“ADMINS”` выполнять любые команды при подключении через петлевой интерфейс “localhost” без ввода пароля. * `ADMINS ALL= NETWORKING, SOFTWARE` — разрешить группе пользователей, объединенных псевдонимом `“ADMINS”` выполнять группы команд, объединенные псевдонимами `“NETWORKING” и “SOFTWARE”`. #### 4.5 Для существующих в системе групп пользователей можно также разрешать выполнение отдельных команд или групп команд: * `users localhost=/sbin/shutdown -h now` — разрешить локальным пользователям выключение компьютера. * `operators ALL=/sbin/mount /mnt/cdrom, /sbin/umount /mnt/cdrom` — разрешить членам группы “operators” монтирование и размонтирование указанных устройств. * `powerusers ALL=NETWORKING, NOPASSWD: /usr/bin/su` — разрешить членам группы `“powerusers”` выполнять команды группы `“NETWORKING”` с вводом пароля и команду `“su”` без пароля. #### 4.6 Довольно часто возникает необходимость исключения разрешения на выполнение отдельных команд из списка, объединенных псевдонимом. В этом случае, перед именем команды или псевдонима ставится восклицательный знак – ! `ADMINS ALL= ALL, !NETWORKING` — разрешить группе пользователей, объединенных псевдонимом `“ADMINS”` выполнение всех команд, кроме команд, объединенных псевдонимом `“NETWORKING”` #### 4.7 В следующем примере, используется конфигурация команд, разрешающая выполнение через sudo для всех пользователей группы “ADMINS”, всех команд, кроме команд смены оболочки: `ADMINS ALL= ALL, !/bin/bash, !/usr/bin/su` #### 4.8 Кроме настроек доступа, в файле /etc/sudoers присутствуют директивы Defaults, определяющие некоторые настройки путей исполняемых файлов и создание переменных окружения при выполнении команд: * Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin * Defaults env_reset * Defaults env_keep = «COLOS DISPLAY HOSTNAME HISTSIZE INPUTRC KDEDIR LS_COLORS» * Defaults env_keep += «MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE» * Defaults env_keep += «LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES» * Defaults env_keep += «LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE» * Defaults env_keep += «LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY» #### 4.9 По умолчанию, если интервал выполнения команд с использованием sudo, не превышает 5 минут, то повторный ввод пароля не требуется. Однако, это значение можно изменить, добавив значение timestamp_timeout в минутах: `Defaults timestamp_timeout=1` *В данном случае, если команда sudo будет выполняться не позже, чем через 1 минуту после ввода пароля для предыдущей команды, то повторно пароль запрашиваться не будет. Если значение `“timestamptimeout”` сделать равным нулю, то пароль будет запрашиваться при каждом запуске sudo, если сделать отрицательным ( -1 ), — то повторный ввод пароля не будет запрашиваться никогда.* #### 4.10 Для исключения возможности выполнения sudo-команд при подключении через ssh без авторизации, по умолчанию, должна использоваться команда “ssh –t “: «` # Disable «ssh hostname sudo «, because it will show the password in clear. # You have to run «ssh -t hostname sudo «. # «` ### 5. Defaults requiretty Когда этот флаг установлен, sudo можно запускать только из сеанса входа в систему, а не с помощью других средств, таких как скрипты `cron, shell/perl/python` или `cgi-bin scripts`. Этот флаг установлен по умолчанию на многих дистрибутивах. Отредактируйте `/etc/sudoers`, введите: `nano sudoers` *Найдите строку, которая гласит* `Defaults requiretty` *Либо закомментируйте строку, либо удалите строку:* `#Defaults requiretty` ### 6. Подробную справку по использовании sudo можно получить с помощью команд: . warning man sudo man sudoers .

Last changed by

Add a comment

Published on HackMD

Sign in

By clicking below, you agree to our terms of service.

HackWare.ru

Этичный хакинг и тестирование на проникновение, информационная безопасность

Что такое sudo

Что означает sudo. Как запустить команду с sudo

Пожалуй самой часто используемой программой при системном администрировании (если вы работаете под обычным пользователем, а не под root), является sudo. Главное назначение sudo — это выполнить команду от имени другого пользователя, обычно от root. Смысл выполнения команды от root в том, что у него повышенные права доступа и, применяя sudo, обычный пользователь может выполнить те действия, на которые у него недостаточно прав.

Простейший и самый распространённый вариант запуска команд с sudo:

sudo КОМАНДА

Если у КОМАНДЫ есть опции, аргументы, то для sudo не нужно делать какие-то дополнительные действия, например, помещать КОМАНДУ с опциями в кавычки или что-то ещё. Поставьте sudo и запускайте КОМАНДУ как обычно.

К примеру, я хочу выполнить:

ls -l /root

Поскольку я работаю под обычным пользователем, то у меня нет прав доступа в директорию /root и я получаю ошибку:

ls: невозможно открыть каталог '/root': Отказано в доступе

Чтобы эта команда сработала, достаточно её записать после sudo:

sudo ls -l /root

Как установить sudo. Ошибка «-bash: sudo: command not found». Как создать пользователя с sudo

По умолчанию в Debian и некоторых других дистрибутивах может отсутствовать пакет sudo. О том, как выполнить установку sudo, если вы столкнулись с ошибкой «-bash: sudo: command not found», а также о том, как создавать пользователей с правом выполнять команды с sudo смотрите «Ошибка «-bash: sudo: command not found» — не найдена команда sudo (РЕШЕНО)».

Что использовать sudo или su?

У программы su похожее назначение: запустить команду с подстановкой ID другого пользователя и группы. То есть одинакового результата можно добиться используя как sudo, так и su.

Различия sudo и su в следующем:

1. При использовании su необходимо сообщать пароль root обычному пользователю (но это можно обойти — подробности в этом разделе чуть ниже). При использовании sudo пользователь вводит свой собственный пароль.

2. У обеих команд есть интерактивный режим, то есть можно как бы выполнить вход от имени другого пользователя. Также обе программы, sudo и su, позволяют выполнять команды без интерактивного режима. В su интерактивный режим запускается по умолчанию (если не указана команда для выполнения):

В sudo для входа в интерактивный шелл нужно использовать опцию -i:

sudo -i

Точнее говоря, всё немного сложнее, опция -i в sudo означает запустить оболочку входа в систему от имени указанного пользователя; также можно задать команду. Сравните:

sudo pwd /home/mial
sudo -i pwd /root

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

3. Использование sudo требует настройки, а именно: 1) добавление пользователя в группу, имеющую право использовать эту программу; 2) установка разрешений (перечисление команд, которые может запускать пользователь с sudo и т. д. При некоторых настройках, если пользователь не упомянут в конфигурационных файлах sudo, то он не может ей пользоваться. Программа su не требует настройки для каждого пользователя.

4. Разное отношение с окружением выполнения: смена текущей рабочей директории при входе в интерактивный режим su, сохранение текущей рабочей директории при выполнении отдельных команд с sudo и su. Сравните переменную окружения $HOME в команде

sudo echo $HOME /home/mial

со значением $HOME в команде:

su -c 'echo $HOME' /root

5. Некоторые конструкции оболочки работают с sudo не так, как вы ожидаете. Смотрите в качестве примера статью «Как использовать echo вместе с sudo». С su такой проблемы нет.

На самом деле, для подавляющего числа случаев использования этих программ, каких-то кардинальных различий между sudo и su нет, то есть вы можете выбрать любую из них для выполнения команды с повышенными привилегиями или от другого пользователя. Чаще используется sudo только по той причине, что её синтаксис короче: достаточно добавить sudo перед выполняемой командой, что касается su, то запуск одной команды требует конструкции su -c ‘КОМАНДА’.

Но если нужно выполнить несколько команд с повышенными привилегиями, то достаточно войти в интерактивную консоль su:

И затем перед командами уже ненужно ставить sudo.

Кстати, благодаря sudo можно войти в интерактивную сессию root’а не с паролем суперпользователя, а с паролем обычного пользователя, для этого нужно запустить такую команду:

sudo su -

Или использовать интерактивный режим самой sudo:

sudo -i

6. su не требует установки

Утилита su присутствует даже в минимальных установках Linux (в пакете util-linux, который является зависимостью для многих программ). Программа sudo может отсутствовать по умолчанию в некоторых дистрибутивах, например, в Debian.

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

Запуск sudo:

sudo КОМАНДА

означает выполнить КОМАНДУ от имени пользователя по умолчанию. Таким пользователем обычно является root, но, на самом деле, может быть настроен другой пользователь по умолчанию.

Если нужно выполнить команду от имени иного, не root пользователя, то используйте опцию -u:

sudo -u ПОЛЬЗОВАТЕЛЬ КОМАНДА

Как создать пользователя с sudo

Рассмотрим как создать пользователя, имеющего права запускать команды с sudo.

Чтобы создать пользователя с sudo в Debian, Linux Mint, Ubuntu, Kali Linux и их производных выполните команду вида:

useradd -m -G sudo -s /bin/bash -c "КОММЕНТАРИЙ" ПОЛЬЗОВАТЕЛЬ
  • -m означает создать домашнюю директорию пользователя, если она не существует
  • -G sudo означает добавить пользователя в группу sudo
  • -s /bin/bash указывает оболочку входа пользователя
  • -c «КОММЕНТАРИЙ» указывает комментарий, который будет хранится в файле аккаунта — можно пропустить эту опцию
  • ПОЛЬЗОВАТЕЛЬ — это имя пользователя
useradd -m -G sudo -s /bin/bash -c "Administrative User" admin

В Arch Linux, BlackArch и их производных для создания пользователя с sudo выполните команду вида:

useradd -m -g users -G wheel,video -s /bin/bash -c "КОММЕНТАРИЙ" ПОЛЬЗОВАТЕЛЬ

Обратите внимание, что в Arch Linux группа, дающее право на выполнение команд sudo, называется wheel, а не, собственно, sudo. Также мы добавили пользователя сразу в две группы, а не в одну, имя второй группы video. Если вы создаёте пользователя на системе без графического окружения, например, на безголовом сервере, то добавлять в группу video не нужно.

В CentOS для создания пользователя с sudo выполните команду вида:

useradd -m -G wheel -s /bin/bash -c "КОММЕНТАРИЙ" ПОЛЬЗОВАТЕЛЬ

Теперь независимо от вашего дистрибутива, запустите одинаковую команду, чтобы установить пароль для нового пользователя:

passwd ПОЛЬЗОВАТЕЛЬ

Конфигурационный файл sudo

Программа sudo считывает конфигурацию из файла /etc/sudoers. Если в файле /etc/sudoers раскомментировать директиву

includedir /etc/sudoers.d

то дополнительно настройки будут считываться из всех файлов в директории /etc/sudoers.d.

Не рекомендуется напрямую править файл /etc/sudoers, рекомендуется использовать команду

visudo

которая откроет файл для редактирования. Кроме прочих функций, данная программа проверит синтаксис, и если в нём присутствует ошибка, то файл не будет сохранён.

При запуске visudo по умолчанию будет открыт файл /etc/sudoers. С помощью опции -f можно указать расположение файла в другом месте, например в /etc/sudoers.d.

Как разрешить пользователи выполнять только определённые команды с sudo

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

В файл /etc/sudoers нужно добавить строку вида:

Имя_пользователя Имя_машины=(Реальный_пользователь:Группа) команда

В этой строке значения следующие:

  • Имя_пользователя: Это тот пользователь, кто инициировал выполнение команды с sudo
  • Имя_машины: Это имя хоста, где будет действительна команда sudo. Полезно если у вас много хостовых машин.
  • (Реальный_пользователь): Тот пользователь, от чьего имени будет выполнена команда.
  • Группа: группа, к которой принадлежит пользователь.
  • команда: команда или набор команд, разрешённых для запуска с sudo этому Пользователю.

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

admin ALL=(ALL:ALL) ALL

Другой вариант, я хочу разрешить пользователю admin выполнять только команды /home/admin/backup.sh и /usr/bin/apt, и выполнять их он может только от root, тогда мне нужно добавить строку:

admin ALL=(root:ALL) /home/admin/backup.sh,/usr/bin/apt

Обратите внимание, что если команд несколько, то они перечисляются через запятую без пробела.

По умолчанию включена настройка, которая разрешает всем членам группы sudo выполнять любые команды с sudo. Эта настройка заключена в строке:

%sudo ALL=(ALL:ALL) ALL

В зависимости от дистрибутива, она же может быть записана так:

%wheel ALL=(ALL) ALL # ИЛИ %wheel ALL=(ALL:ALL) ALL

Чтобы в действительности ограничить права пользователя, нужно закомментировать эту строку, то есть поставить перед ней символ #:

#%sudo ALL=(ALL:ALL) ALL

Как узнать, какие sudo полномочия имеются у пользователя

Мы только что узнали, что у определённого пользователя могут быть ограниченные полномочия на выполнение команд с sudo. Как узнать, какие именно команды может выполнить пользователь или как проверить, сработали ли наши настройки в файле /etc/sudoers?

Для вывода всех разрешённых команд или для проверки определённой команды, используется опция -l. Но если не указать опцию -U с именем интересующего пользователя, то будут выведены данные для пользователя по умолчанию (root).

Пример проверки прав sudo для пользователя admin:

sudo -l -U admin
Matching Defaults entries for admin on HackWare: env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin User admin may run the following commands on HackWare: (root : ALL) /home/admin/backup.sh, /usr/bin/apt

Строка «User admin may run the following commands on HackWare» означает «пользователь admin может запускать следующие команды на HackWare».

Также можно узнать, является ли та или иная команда заблокированной или разрешённой для выполнения пользователем с sudo следующим образом:

sudo -l -U ПОЛЬЗОВАТЕЛЬ КОМАНДА

Если команда запрещена, то ничего не будет выведено:

sudo -l -U admin rm

Если команда разрешена, то будет выведен полный путь до файла:

sudo -l -U admin apt /usr/bin/apt

Как настроить использование sudo без пароля

Данная настройка только для тех пользователей, кто действительно понимает зачем он это делает и какие риски безопасности это влечёт.

Чтобы отключить запрос пароля ПОЛЬЗОВАТЕЛЮ при вводе одной или нескольких КОМАНД с sudo:

ПОЛЬЗОВАТЕЛЬ ALL=(ALL:ALL) NOPASSWD: КОМАНДА1,КОМАНДА2,КОМАНДА3

Чтобы отключить запрос пароля ПОЛЬЗОВАТЕЛЮ при вводе любой команды с sudo:

ПОЛЬЗОВАТЕЛЬ ALL=(ALL:ALL) NOPASSWD: ALL

Чтобы отключить запрос пароля всем пользователям при вводе одной или нескольких КОМАНД с sudo:

%sudo ALL=(ALL:ALL) NOPASSWD: КОМАНДА1,КОМАНДА2,КОМАНДА3

Чтобы отключить запрос пароля всем пользователям при вводе любой команды с sudo:

%sudo ALL=(ALL:ALL) NOPASSWD: ALL

К примеру, чтобы разрешить пользователю admin выполнять команды /home/admin/backup.sh и /usr/bin/apt с sudo без необходимости ввода пароля, нужно добавить строку:

admin ALL=(ALL:ALL) NOPASSWD: /home/admin/backup.sh,/usr/bin/apt

Это конец первой части. Во второй части мы рассмотрим другие интересные настройки и опции команды sudo.

Связанные статьи:

  • Как пользоваться sudo (100%)
  • SSH (ч.1): Что такое SSH. Утилиты SSH (52.1%)
  • SSH (ч.2): Настройка сервера OpenSSH (52.1%)
  • SSH (ч.3): Как подключиться к SSH. Настройка клиента OpenSSH (52.1%)
  • SSH (ч.4): Создание и настройка ключей OpenSSH (52.1%)
  • Метаданные файлов LibreOffice: извлечение, удаление и редактирование (RANDOM — 0.6%)

факультете информационной безопасности от GeekBrains? Комплексная годовая программа практического обучения с охватом всех основных тем, а также с дополнительными курсами в подарок. По итогам обучения выдаётся свидетельство установленного образца и сертификат. По этой ссылке специальная скидка на любые факультеты и курсы!

Взлом сервера Linux по SSH

Всем привет! Я пока только новичок, пытаюсь разобраться. Дан сервер и логин/пароль чтоб туда войти. Там помимо меня еще 4 юзера, нужно узнать пароль одного из них (имя известно). Как это сделать, если мой юзер без root.

Если это поможет, есть файл /etc/passwd

Kosuge_Goto
16.08.23 21:35:24 MSK

  • Ответить на это сообщение
  • Ссылка

1 2 →

Перебором, по старинке. jack/jack2 и словарь.

Anoxemian ★★★★★
( 16.08.23 21:38:29 MSK )

  • Ответить на это сообщение
  • Ссылка

Сначала нужно установить Kali Linux

alex1101 ☆
( 16.08.23 21:39:26 MSK )

  • Ответить на это сообщение
  • Ссылка

Заходишь на сервер по ssh. Потом набираешь:

sudo hack-server 

Тебе вываливаются все пароли юзеров, и ты становишься рутом.

Благодарности не надо. С тебя 1 BTC.

rupert ★★★★★
( 16.08.23 21:40:36 MSK )

  • Ответить на это сообщение
  • Ссылка

Ребята, не стоит вскрывать эту тему. Вы молодые, шутливые, вам все легко. Это не то. Это не Чикатило и даже не архивы спецслужб. Сюда лучше не лезть. Серьезно, любой из вас будет жалеть. Лучше закройте тему и забудьте, что тут писалось. Я вполне понимаю, что данным сообщением вызову дополнительный интерес, но хочу сразу предостеречь пытливых – стоп. Остальные просто не найдут.

posixbit ★★
( 16.08.23 21:49:50 MSK )
Последнее исправление: posixbit 16.08.23 21:50:14 MSK (всего исправлений: 1)

  • Ответить на это сообщение
  • Показать ответы
  • Ссылка

Дан сервер и логин/пароль чтоб туда войти. Там помимо меня еще 4 юзера, нужно узнать пароль одного из них (имя известно). Как это сделать, если мой юзер без root.

Если у тебя такие доступы — то ты не админ. Так что не лезь.

Vsevolod-linuxoid ★★★★★
( 16.08.23 21:51:00 MSK )

  • Ответить на это сообщение
  • Показать ответ
  • Ссылка

Если это поможет, есть файл /etc/passwd

тебе нужен /etc/shadow, дальше брутфорсом

Как это сделать, если мой юзер без root.

только перебор, но все это будет в логах

Kolins ★★★
( 16.08.23 21:59:20 MSK )

  • Ответить на это сообщение
  • Показать ответы
  • Ссылка

Про абстрактный сервер в вакууме уже написали, а если это какой-нибудь Hackthebox, то надо искать уязвимости определённые/свежие

ac130kz ★
( 16.08.23 22:01:57 MSK )

  • Ответить на это сообщение
  • Ссылка

Можно социальной инженерией. Правдами-неправдами, поставить кей-логгер на комп жертвы и узнаешь ее пароли. Но это если вход именно по паролю, а не по ключу. А если по ключу, то как-то ключ нужно свистнуть.

Да, кстати, тут правильно пишут про этику доступа к инфе. Так что, надеюсь, это все гипотетические рассуждения белого хакера.

hibou ★★★★★
( 16.08.23 22:07:34 MSK )
Последнее исправление: hibou 16.08.23 22:19:47 MSK (всего исправлений: 1)

  • Ответить на это сообщение
  • Ссылка

УК РФ Статья 272. Неправомерный доступ к компьютерной информации

grem ★★★★★
( 16.08.23 22:07:44 MSK )

  • Ответить на это сообщение
  • Показать ответы
  • Ссылка

Ответ на: комментарий от grem 16.08.23 22:07:44 MSK

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

Если повлекло. За сам факт взлома не преследуется

Кстати, у кого-нибудь есть ссылка почитать подробно,какая информация охраняется законном?

Dog ★★★
( 16.08.23 22:28:58 MSK )

  • Ответить на это сообщение
  • Показать ответы
  • Ссылка

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

Dog ★★★
( 16.08.23 22:31:15 MSK )

  • Ответить на это сообщение
  • Ссылка

Ответ на: комментарий от Dog 16.08.23 22:28:58 MSK

Если повлекло. За сам факт взлома не преследуется

Ну-ну, в российских реалиях, кажется еще на живом форуме на internet-law больше 10 лет назад обсуждали. В логах что-то записалось — значит модификация информации. Пароль скопировали — вот и копирование. И т.д.

praseodim ★★★★★
( 16.08.23 22:50:28 MSK )

  • Ответить на это сообщение
  • Показать ответы
  • Ссылка

Ответ на: комментарий от Kolins 16.08.23 21:59:20 MSK

тебе нужен /etc/shadow, дальше брутфорсом

В нормально настроенной системе у не рута нет доступа к /etc/shadow, но если вдруг таки есть, то в инете полно разного софта для восстановления забытых паролей, начиная с легендарного John The Ripper

praseodim ★★★★★
( 16.08.23 22:54:18 MSK )

  • Ответить на это сообщение
  • Показать ответ
  • Ссылка

Ответ на: комментарий от Dog 16.08.23 22:28:58 MSK

За сам факт взлома не преследуется

Да-да, а того дядю, кто работая у провайдера тестировал клиентские роутеры на уязвимости просто так посадили, по приколу

PPP328 ★★★★★
( 16.08.23 22:58:09 MSK )

  • Ответить на это сообщение
  • Показать ответы
  • Ссылка

Ответ на: комментарий от praseodim 16.08.23 22:54:18 MSK

Естественно нет, но чувак явно нас троллит

Kolins ★★★
( 16.08.23 23:00:53 MSK )

  • Ответить на это сообщение
  • Ссылка

Я рекомендую вам немедленно покинуть этот форум. Здесь никто вам по-доброму помогать не будет, сейчас сюда придут с тапками и помидорами и начнут кидаться. Все линуксоиды крайне нетерпимы к новичкам, а здесь сидят самые нетерпимые, самые конченные токсики.

damix9 ★★★
( 16.08.23 23:04:11 MSK )

  • Ответить на это сообщение
  • Ссылка

у меня в /etc/shadow в открытом виде лежат.

nionio35 ★
( 16.08.23 23:12:07 MSK )

  • Ответить на это сообщение
  • Ссылка

Ответ на: комментарий от Kolins 16.08.23 21:59:20 MSK

Чисто интерес… Конечно же есть словарь? Или предлагаешь перебирать генерацией и использовать публичные словари, в которых до сих пор бог/god, admin/админ, etc?…

julixs ★★★
( 16.08.23 23:14:30 MSK )

  • Ответить на это сообщение
  • Показать ответы
  • Ссылка

Ответ на: комментарий от PPP328 16.08.23 22:58:09 MSK

julixs ★★★
( 16.08.23 23:16:50 MSK )

  • Ответить на это сообщение
  • Показать ответ
  • Ссылка

Ответ на: комментарий от grem 16.08.23 22:07:44 MSK

Это учебный сервер

Kosuge_Goto
( 16.08.23 23:21:24 MSK ) автор топика

  • Ответить на это сообщение
  • Показать ответы
  • Ссылка

Ответ на: комментарий от posixbit 16.08.23 21:49:50 MSK

Ну а Андрей то тут причем?

julixs ★★★
( 16.08.23 23:21:58 MSK )

  • Ответить на это сообщение
  • Ссылка

Ответ на: комментарий от julixs 16.08.23 23:14:30 MSK

Yeah, system operators love to use «God»!

damix9 ★★★
( 16.08.23 23:25:31 MSK )
Последнее исправление: damix9 16.08.23 23:26:53 MSK (всего исправлений: 1)

  • Ответить на это сообщение
  • Ссылка

Ответ на: комментарий от julixs 16.08.23 23:14:30 MSK

Если чувак не троллит, значит не очень опытный и пускай тратит время на стандартные словари и /dev/urandom — и опыт приобретет и целее будет

Kolins ★★★
( 16.08.23 23:29:13 MSK )

  • Ответить на это сообщение
  • Ссылка

Ответ на: комментарий от Kosuge_Goto 16.08.23 23:21:24 MSK

Тогда ищи стандартные уязвимости, можешь начать с версии дистрибутива и в ps посмотри запущенные от root процессы, их версии и ищи известные уязвимости/эксплоиты

Kolins ★★★
( 16.08.23 23:30:05 MSK )
Последнее исправление: Kolins 16.08.23 23:30:12 MSK (всего исправлений: 1)

  • Ответить на это сообщение
  • Ссылка

Ответ на: комментарий от PPP328 16.08.23 22:58:09 MSK

Где почитать драмму?

Kolins ★★★
( 16.08.23 23:31:03 MSK )

  • Ответить на это сообщение
  • Ссылка

Neuromagus
( 16.08.23 23:31:57 MSK )

  • Ответить на это сообщение
  • Ссылка

Ответ на: комментарий от julixs 16.08.23 23:16:50 MSK

julixs , Kolins , https://habr.com/ru/news/573548/

PPP328 ★★★★★
( 16.08.23 23:37:13 MSK )

  • Ответить на это сообщение
  • Ссылка

старо как мир: man write, man talk

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

MKuznetsov ★★★★★
( 16.08.23 23:40:31 MSK )

  • Ответить на это сообщение
  • Ссылка

Ответ на: комментарий от praseodim 16.08.23 22:50:28 MSK

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

Dog ★★★
( 17.08.23 00:11:17 MSK )

  • Ответить на это сообщение
  • Ссылка

Ответ на: комментарий от PPP328 16.08.23 22:58:09 MSK

Dog ★★★
( 17.08.23 00:11:38 MSK )

  • Ответить на это сообщение
  • Ссылка

УК РФ Статья 272. Неправомерный доступ к компьютерной информации

(в ред. Федерального закона от 07.12.2011 N 420-ФЗ)

  1. Неправомерный доступ к охраняемой законом компьютерной информации, если это деяние повлекло уничтожение, блокирование, модификацию либо копирование компьютерной информации, — наказывается штрафом в размере до двухсот тысяч рублей или в размере заработной платы или иного дохода осужденного за период до восемнадцати месяцев, либо исправительными работами на срок до одного года, либо ограничением свободы на срок до двух лет, либо принудительными работами на срок до двух лет, либо лишением свободы на тот же срок.
  2. То же деяние, причинившее крупный ущерб или совершенное из корыстной заинтересованности, — наказывается штрафом в размере от ста тысяч до трехсот тысяч рублей или в размере заработной платы или иного дохода осужденного за период от одного года до двух лет, либо исправительными работами на срок от одного года до двух лет, либо ограничением свободы на срок до четырех лет, либо принудительными работами на срок до четырех лет, либо лишением свободы на тот же срок.

(в ред. Федерального закона от 28.06.2014 N 195-ФЗ)

  1. Деяния, предусмотренные частями первой или второй настоящей статьи, совершенные группой лиц по предварительному сговору или организованной группой либо лицом с использованием своего служебного положения, — наказываются штрафом в размере до пятисот тысяч рублей или в размере заработной платы или иного дохода осужденного за период до трех лет с лишением права занимать определенные должности или заниматься определенной деятельностью на срок до трех лет, либо ограничением свободы на срок до четырех лет, либо принудительными работами на срок до пяти лет, либо лишением свободы на тот же срок.
  2. Деяния, предусмотренные частями первой, второй или третьей настоящей статьи, если они повлекли тяжкие последствия или создали угрозу их наступления, — наказываются лишением свободы на срок до семи лет.
  1. Под компьютерной информацией понимаются сведения (сообщения, данные), представленные в форме электрических сигналов, независимо от средств их хранения, обработки и передачи.
  2. Крупным ущербом в статьях настоящей главы признается ущерб, сумма которого превышает один миллион рублей.

Shushundr ★★☆
( 17.08.23 00:21:57 MSK )

  • Ответить на это сообщение
  • Ссылка

Ответ на: комментарий от Kosuge_Goto 16.08.23 23:21:24 MSK

Учиться ломать (без цели в дальнейшем развиваться в этом направлении) — бесполезно.

Лучше сразу учиться защищать систему.

Shushundr ★★☆
( 17.08.23 00:24:39 MSK )

  • Ответить на это сообщение
  • Показать ответы
  • Ссылка

Получать доступ к паролям и не только к ним можно достаточно легко. Для этого во-первых, вы должны получить звание майора ФСБ…

apt_install_lrzsz ★★★
( 17.08.23 08:24:22 MSK )

  • Ответить на это сообщение
  • Ссылка

Маленький хакер. Первый шаг

В статье вы получите минимально необходимую теорию для начала вашего увлекательного путешествия в мир компьютерной безопасности. Интересовались темой: CTF или attack-defence? Но не могли получалось погрузиться в данную область? Тогда эта статья для вас! Тренироваться мы будем использовать сервис HTB . Темы которые мы бегло рассмотрим: Kali Linux, SSH, FTP, Telnet. Статья будет разделена на две части: Необходимая теория, Где применять.

Автор иллюстрации: https://www.behance.net/AlevtinaS/projects

Подготовительные работы

Не важно какая ОС стоит на вашем ПК, вам необходимо поставить себе на виртуальную машину — Kali Linux. Подробнее тут. В нашей работе потребуется использовать следующие инструменты:

  • telnet — протокол и одноименная утилита. Реализует текстовый интерфейс взаимодействия с другими сервисами. Ранее применялся также для удаленного администрирования.
  • nmap — утилита для сканирования сети.
  • hydra — поможет подобрать пароль (используя словари).

Все эти утилиты уже установлены по умолчанию в дистрибутив. Но нам так же потребуется словари для перебора (SecLists). Перед началом установим их:

sudo apt-get install seclists

Необходимая теория

Nmap

Перед началом атаки, потребуется «изучить» цель. Nmap, может применяться в очень большом множестве задач. Мы же сосредоточимся на обнаружение служб/сервисов.

Выполнение команды nmap 10.0.0.1 , в результате покажет список открытых портов целевой машины. Важно знать, что запуск с ключем -sS позволит вам быть менее заметным для систем обнаружения. Так как с этим параметром, утилита не завершает трехстороннее рукопожатие, тем самым служба, которая ответит на открытие порта — будет считать что это настоящее соединение.

nmap -sV -p 22 10.0.0.1 запуск утилиты с ключом -sV — говорит о необходимости определить версию службы, которая слушает порт. А -p 22 , указывает какой именно порт мы сканируем.

Telnet

В очень простых заданиях, будет доступна служба telnet . В таком случае подключение простое:

telnet 10.0.0.1 23

Первый аргумент, это IP адрес цели, а второй — порт, который слушает служба. После начала сеанса, служба потребует вас ввести username/password, в редких случаях система пропустит без пароля.

Hydra

Самый простой способ попробовать проникнуть в систему — это проверить ее на использование небезопасных паролей. Для этого в Kali Linux, уже перед установлена утилита hydra. Чтобы подобрать пароль от telnet службы, необходимо выполнить следующую команду:

hydra \ -C /usr/share/seclists/Passwords/Default-Credentials/telnet-betterdefaultpasslist.txt \ telnet://10.0.0.1:23 

где -C указывает на файл с парами login:password, а второй аргумент для указания ://: . В папке /usr/share/seclists размещены словари часто используемых реквизитов для входа. Обратите внимание на то, что словари разложены по папкам. Обращайте внимание на то какой список вы используете.

Практика

От практики зависит ваше развитие. Конечно если пытаться применить знания в живую, то скорей всего вы не сможете так легко найти уязвимые системы. Технологии безопасности далеко шагнули. Чтобы начать практиковаться на простых целях, рекомендую использовать платформу: HTB. На ней есть бесплатный тариф, которого хватит для первого погружения в дисциплину. А полученных знаний из этой статьи должно хватить для прохождения первых заданий из раздела Starting Point. Tier 0.

  • Meow — на проникновение через telnet
  • Fawn — в этом задании будет машина с уязвимым FTP

Заключение

Надеюсь что данная статья, поможет начинающим в области этичного хакинга сделать первые шаги. В начале всегда сложно, не знаешь с чего начать. А данная дисциплина особо сложна для входа.

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

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