Очень многие версии Unix имеют один и тот же набор стандартных команд, только иногда имеют разные параметры запуска. Знать их нужно и полезно. Я хочу не просто перечислить команды и их параметры, но и рассказать о том каким образом они могут быть использованы Администраторами, пользователями или даже взломщиком. Как вы будите использовать их это ваше дело, я лишь говорю о возможностях Unix.
Команда: df
Назначение: Вывод информации свободном месте на файловой системе.
Ключи:
-b Вывод размера свободного места на диске в байтах.
-e Вывод числа, показывающего, сколько еще файлов может быть создано. Этот параметр используется не везде.
-F Вывод информации о несмонтированных файловых системах заданого типа, указаных в файле конфигурации виртуальных файловых систем(vfstab).
-g Возвращает всю структуру statvfs для несмонтированых файловых систем.
-k Вывод размера занятого места на диске в байтах.
-l Вывод информации только о локальных файловых системах.
-n Вывод типа файловой системы. Этот параметр используется не во всех системах.
-t Вывод свободного и занятого места. Не во всех версиях...
Заключение: Эта команда дает представление о том какими объемами обладает система и какие еще системы могут быть подключены в дальнейшем. Косвено говорит о параметрах коопиляции ядра. В случае с подключаемыми сетевыми интерфейсами дает информацию и о них.
Команда: du
Назначение: Подсчитывает размер занятого файлыми или каталогами места.
Чаще всего подсчет ведется в блоках, один блок это 512 байт.
Ключи:
-a Вывод информации не только о каталогах, но и о файлах.
-r Вывод информации о файлах и каталогах, которые команда du не смогла открыть.
-s Вывод результат минуя промежуточные действия.
Заключение: Может оказаться полезной для получения информации о системе в том случае, если нет доступа к команде df или quote. Полезна для подсчета чьих-либо файловых накоплений.
Команда: finger
Назначение: Выводит разнообразную информацию о пользователях. Идентификатор, имя, терминал, время работы, адрес. А так же дает информацию о пользовательском интерпритаторе командной строки и содержимое файлов .plan и .project из домашнего каталога пользователя.
Ключи:
-b Длинный формат, без вывода информации о домашнем каталоге и интерпритаторе строки.
-f Короткий формат вывод.
-h Длинный формат, без вывода информации из файла .project
-i Вывод информации о неактивности пользователя: системный идентификатор, терминал, время входа в систему и причина неактивности.
-l Длинный формат.
-m Вывод информации о пользователе с заданым системным идентификатором, не проверяя список имен и фамилий.
-p Длинный формат, без вывода информации из файла .plan.
-q Вывод системного идентификатора пользователя, терминала и времени входа в систему (не производя поиска в списке имен и фамилий).
-s Короткий формат.
-w Короткий формат, имя пользователя не выводится, выводится только фамилия.
Заключение: Позволяет получит массу поезной информации о пользователе. Поиск пользователей по шаблону дает возможность скопить собственную базу пользователей. Информация о том когда пользователь вошел и вышел и сколько провел времени и на каком терминале, оказывается не заменимой как для Администратора так и для взломщика. Возможно использовать как альтернативу команде who.
Команда: groups
Назначение: Выводит список групп, членом которых является данный пользователь.
Если список не указан, то выводится список групп, членом которых является пользователь, отдавший команду.
Заключение: Дает возможность четко определить пользователей принадлежащих к какой-либо группе. Что возможно облегчит задачу взломщику в подборе будущих жертв или уже определении статуса взломанных.
Команда: id
Назначение: Вывод вашего системного идентификатора и его номер, а так же группы членом которых вы являетесь, и их номера.
Ключи:
-a Вывод списка всех групп, к которым принадлежит пользователь.
Заключение: Данная команда может быть использована звломщиком, чтобы опредлить свой статус в системе и возможности пользователя.
Команда: listusers
Назначение: Вывод списка системных идентификаторов всех пользоватей и соотвествующих им номеров. Команда доступна не во всех системах.
Ключи:
-g Вывод списка членов данной группы.
-l Вывод информации о пользователе с данным системным идентификатором.
Заключение: Позволяет получить информацию о каждом члене группы, что понижает общий уровень безопасности. Команда может быть использована для накопления списка пользователей для последующей атаки.
Команда: nice
Назначение: Выполнение указаной команды с пониженным приоритетом.
Ключи:
-n Величина, на которую уменьшается приоритет. По умолчанию -10.
Заключение: Иногда при помощи этой команды зломщик пытается маскировать не желательный процес, например, перебор паролей.
Команда: nohup &
Назначение: Позволяет команде выполняться даже после того, как вы завершите работу с системой.
Заключение: Эта команда полезна и удобна для всех, в том числе и для взломщика.
Небольшой скрипт на perl или готовая скомпанованная програма могут оставить лазейку в систему с правами пользователя запустишего этот процес. Стоит проверять присутствие нежелательных процесов, это можно делать командой netstat или ps. О них я расскажу ниже.
Команда: passwd
Назначение: Установка пароля на вход в систему. Остальные ключи доступны лишь, привелигированным пользователям.
Ключи:
-s Вывод следующей информации о пароле:
Идентификатор пользователя.
Статус пароля (NP (No Password) - нет, PS (Password) - пароль установлен, LK (Locked) - вход в систему с данным идентификатором пользователя запрещен.
Дата последней смены пароля.
Наименьшее количество дней, которое должно пройти после изменения пароля для возможности повторного его изменения.
Масимальный срок действия пароля.
Количество дней, за которое до истечения срока действия пароля начинают делаться предупреждения о необходимости смены пароля.
Для привелегированных пользователей:
-a Вывести информацию о всех пользователях.
-d Не запрашивать пароль у пользователя.
-f Потребовать от пользователя смены пароля.
-l Запретить вход в систему пользователю с данным идентификатором.
-n Установить наименьшее количество дней, которе должно пройти для возможности повторной смены пароля.
-w Установить количество дней, за которое до истечения срока действия пароля пользователь начинает получать предупреждение.
-x Установить масимальный срок действия пароля.
Заключение: С виду простая команда passwd оказалась довольно интересной. С ее помощью Администатор может быстро выявить пользователей сменивших свои пароли, если например точно известно что действительный пользователь не мог сделать этого. Кроме того следует определить политику безопасности которой будут следовать пользователи. Частоту и длину смены пароля, например.
Команда: ps
Назначение: Вывод списка всех запущенных процесов. Когда эта команда используется без параметров, то выводимый список содержит информацию о номере процесса и команду запуска, при помощи которой был запущен процесс. Изменяя ключи, можно получить подробнейшую информацию о состоянии системы.
Описанные здесь ключи могу быть отличными в других системах, например в BSD вместо ps -ef вы должны использовать ps -aux.
Ключи:
-a Вывод списка всех процессов, за исключением ведущих процессов групп и процессов, не связанных с каким-либо терминалом.
-c Вывод информации о классах процессов, используемых планировщиком задач:
RT - Real Time, TS - Time Sharing, IA - Inter Active.
-d Вывод информации о всех процессах, кроме ведущих процессов групп
. -e Вывод информации о всех без исключения процессах.
-f Вывод большого количества информации о процессах:
UID - UserID, PID - Номер процесса, PPID - Номер Родительного процесса, C - приоритет процесса , STIME - Время начала работы процесса, TTY - Терминал с которого был запущен процесс, Time - общее время работы процесса.
-g Вывод информации о процессах, принадлежащих группам, ведущие процессы которых имеют номера, указанные в списке.
-j Вывод только номера процесса, но и номеров его группы и сеанса.
-l Вывод большого количества информации о процессах, включающей, например, приоритеты, установленные командой nice, и многое другое.
-p Вывод информации о процессах, номера которых указаны в списке.
-s Вывод информации о процессах, принадлежащих сеансам, ведущие процессы которых имеют номера, указаные в списке.
-t Вывод информации о процессах, связанных с одним из терминалов в списке.
-u Вывод информации о процессах, принадлежащих одному из пользователей в списке.
Заключение: Команда ps, является ключевой, с ее помощью осуществляется контроль над всей системой. Все ее ключи лучше знать наизусть. Если в вашей версии Unix ключи различны, то используйте команда man ps для получения описания ключей. Этой командой пользуются все администраторы, с ее помощью ничто не ускользнет от его взгляда, разве что rootkit сможет ему помешать. =)
Команда: pwd
Назначение: Вывод пути текущего каталога включая имя самого каталога.
Заключение: Эта на первый взгляд мало необходимая программа на самом деле оказывается просто не заменимой при использовании символьных ссылок на другие каталоги. Часто зайдя в директорию /home, можно оказаться в /usr/base/users или еще где похлеще, здесь то нам и пригодится эта программа.
Команда: ruptime
Назначение: Вывод информации о состоянии всех машин, подключенных к локальной сети. Выводимая таблица содержит имя каждого узла, информацию о том, доступен ли юзел, время, которое он уже доступен или недоступен, число пользователей на узле, а также среднюю нагрузку узла.
Ключи:
-a Вывод списка всех пользователей, включая пользователей, неактивных более часа.
-l Сортировка выводимой информации по средней нагрузке узлов.
-p Обратный порядок сортировки.
-t Сортировка узлов по времени непрерывной работы.
-u Сортировка узлов по количеству пользователей.
Заключение: Команда позволяет получить интересную информацию не делаю лишних усилий. Полезна как Администраторам так и взломщикам. Взломщику эта команда дает еще одну дыру в безопасности большой системы, через которую он сможет отследить порядок работы сети. Рекомендуется оставить эту команду только для ограниченого числа пользователей.
Команда: rwho
Назначение: Выводит список пользователей, работающих в данный момент на машинах локальной сети.
Ключи:
-a Вывод списка всех пользователей, включая пользователей, неактивных более одного часа.
Заключение: Еще команда, доступ к которой должно иметь только ограниченое количество пользователей, так как эта команда раскрывает ваши карты.
Команда: su
Назначение: Позволяет пользователю войти под другим пользователем не выходя из старого пользователя. Чаще все эту команду применяют чтобы войти под привелегированным пользователем, чтобы изменить системный настройки.
Ключи:
- Изменить параметры окружения в соотвествии с установками выбранного пользователя.
Заключение: Доступ к этой команде должны иметь только те пользователи, которым действительно часто приходится влезать в чужую шкуру. Кроме того эти пользователи должны иметь стойкие пароли.
Команда: umask
Назначение: Вывод или установка значения маски создания файлов, указывающего, какой режим доступа будет установлен по умолчанию для вновь создаваемых файлов.
Режим доступа, также называемый разрешения, определяет, кто будет иметь доступ к создаваемым файлам и каталогам. Команда umask только устанавливает разрешения на доступ к уже существующим файлам или каталогам можно при помощи команды chmod. Команда umask без параметров выводит текущее значение маски. Команда umask схожа с chmod, только для umask значение 777 будет нисший уровень доступа. Кроме того umask в качестве ключей приемлет только числовую форму.
Заключение: Эта команда важна тем что определяет уровень доступа к будущим файлам. Ей лучше воспользоваться сразу, а то может быть позно.
Команда: uname
Назначение: Вывод имени, версии, тип процессора и платформы Unix системы.
Ключи:
-a Вывод всей доступной информации (объединение всех остальных параметров).
-m Вывод информации об аппаратной платформе.
-n Вывод имени узла.
-p Вывод типа процессора.
-r Вывод главного номера версии операционной системы.
-s Вывод назначения операционной системы.
-v Вывод дополнительного номера версии операционной системы.
Заключение: Эта информация может оказаться очень полезной для взломщика, например, если он охотится только на системы SunOS или RedHat. Блокировка этой команды для обычных пользователей осложнит ориентацию на местности не только для пользователй, которые чаще всего уже вкурсе версии, но и взломщику. Речь идет не о искушенных в Unix злоумышлениках.
Команда: who
Назначение: Вывод списка пользователей, подключенных в настоящий момент к системе.
Ключи:
am I Вывод информации о системном идентификаторе пользователя.
-a использовать все указаные ниже параметры.
-b Вывод даты и времени последней перезагрузки системы.
-d Вывод списка пользователей, отключенных из-за длительной неактивности.
-H Вывод в начале списка заголовков столбцов.
-I Вывод списка линий, доступных для входа в систему.
-nN Вывод в одной строке информации об N пользователях.
-p Вывод списка процессов, запущенных процессом init и все еще активных.
-q Короткий формат; выводятся только системные идентификаторы пользователей.
-r Вывод уровня запуска системы.
-s Вывод системного идентификатора пользователя, терминала ив ремени неактивности (формат, используемый по умолчанию).
-t Вывод времени, в которое последний раз при помощи команды clock настраивались системные часы.
-T Вывод состояния каждого терминала:
+ Терминал доступен для вывода всем пользователям.
- Терминал доступен для вывода только системному администратору.
? Ошибка при определении состояния терминала.
-u Вывод времени неактивности для каждого терминала.
Заключение: Эта команда действительно полезная штука и содержит много разнообразной информации, которая не должна попасться на глаза взломщику. Которые сразу определить для себя время взлома по полученой информации. Не стоит давать доступ к ней обычным пользователям.