Четверг, 2024-11-21, 2:22 PM
Главная страница | Регистрация | Вход Приветствую Вас заблудившийся пакет | RSS
Меню сайта

Категории каталога
Программирование [58]
.. все с этим делом связаное..
Нейронные сети [4]
Нейронные сети, использование алгоритмы роботы
OC [6]
Unix, FreeBSD, Windows, Linux Описание, совети, секреты, настройки
WEB [25]
web-programming и все с этим связаное
Сети [2]
Описание сетей, сетевых технологий, настройки и некоторые секреты
Мабила [9]
Описание мобильных технологий, программинг под мабилу, и просто интересные моменты
Разное [10]
то что не вошло в другие категории.. прикольные истории про программеров и деятелей информационной индустрии
История [6]
История этого компьтерного мира и некоторых ее учасников
FREE [3]
free on the web..

Наш опрос
Оцените мой сайт

Результаты · Архив опросов

Всего ответов: 129

Начало » Статьи » OC

Команды, которые необходимо знать для работы с юникс системами

Команды, которые необходимо знать для работы с юникс системами
z00m[kiLL]er [GiN]

В этом разделе я решил указать наиболее часто используемые команды Юникс, которые необходимо знать для работы с юникс системами. Знание данного количества команд должно значительно помочь тебе разобраться в Юниксе, который ты, возможно, вообще не знаешь ( читай раздел Unix: ликвидация безграмматности за 5 минут ). Таблицу с расположением файла паролей в различных клонах Юникс я указывать не стал - она лежит на всех сайтах где описывается эта оперционная система . Да и смыслу то... Это не существенно. В общем, мой тебе совет таков - учи юниксовские команды и структуры каталогов системы. Ниже указаны базовые команды, они позволять тебе чувствовать себя достаточно комфортно в среде UNIX.( о командах nuke и ping я молчу ).

at -  указание времени когда выполняется команда
chown - смена хозяина файла
batch -  выполнить команду во время загрузки
telnet -  клиент телнет
ftp -  клиент фтп
rmdir -  удалить каталог
finger/who/users - вывести список работающих в системе.
gcc -  компилятор C
ftpwho - фингер для фтп
mv - переместить файл
kill - прекратить процесс
cat - текстовой редактор
ls  - просмотр каталога
chmod  -  смена привилегий файлового доступа
rm - удалить файл
id - просмотр прав, т.е.uid и gid
mail - ну, типа, работа с мылом
cd - сменить каталог
cron - демон команд at и batch
logname - получение имени регистрации
cp - копирование чего либо.
uname-a - всё о версии системы.
crontab - задать резервы времени между запусками прог.
ps - ознакомление со списком  процессов.
pwcheck - просмотр дефолтового файла пароля.
umask - маска для определённого файла.
su - программа su
sleep - преостановить процесс.
passwd - работа с паролем.
news - отображение usenet
write - мессага текущему юзеру.
uux - выполнить комманды на remote компе
nslookup - сводки гидромедцентра о IP
uucp - копирование файл с/на remote комп
uuname - список хостов UUCP
more - вывод текстовика в постраничном режиме
greg - поиск строки в фйле по заданному ключу
greg -i - то же,без учёта регистра.
uuencode - содание текстовой версии двоичного файла( для мыла)
uudecode - ну, типа противоположность предыдущей.
tar - создание архивов файлов.
uncompress - получение исходного из сжатого файла.
Принцип ввода и выполнения команд достаточно прост, т.к. имеет постоянную схему - комманда, ключ(и), параметр(ы). Т.е, после приглашения ввести команду ( вероятно это %, но возможны и другие приглашения $ ) ты набиваешь по данной схеме. Уточняю. Например для выполнения команды ls ( просмотр диры) для просмотра каталога c гарным ключом -l для файла u.out ты должен будешь потными пальчика набить на засаленной клаве следующее:

% ls -l u.out
Прошу ещё раз заострить внимание на знаке процентов - это не твоих рук дело, ты пишешь только то, что после него, т. к. этот знак сам по себе являет приглашение к различным командам. Также ты можешь испоьзовать и другие ключи, их ты будешь писать либо через пробел с дефисом после предыдущего, либо монолитом. Гы. Теперь пару слов о знаках ввода и вывода. А именно: >>,|,>,<. Здесь ситутция примерно равная, т. е. теперь ты пишешь те же команды ключи и добавляешь знак с его прилагающимися. Знак > - закидывание информации выхода в файл, без вывода на экран. >> - то же вывод с добавлением. < - взять инфу из файла. | - стандартный вывод использовать как ввод, все с использованием разных программ. Пример для закрепления:

% ls -l > [ файл, например zkiller ] ->
% ls -l > zkiller
Таким образом, ты залил выходную информацию в файл zkiller. И так далее. Принцип довольно прост, структура каталогов тоже - все чередуется через слэш, вроде попыток запустить D00M из ДОСа при отсутствии файлового менеджера:). Помнишь? Если ты не застал те чудесные годы флопов и PC-спикеров на 386, то я ничем помочь не смогу, сорри приятель, ты из New Generation. Прочитал? Ок. Если возникнут вопросы по поводу Юникс систем, то ты всегда можешь задать их на нашем форуме или прислав на мыло.Удачи.

 

Linux: интересные опции к интересным командам


Forb

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

1. /bin/ls

Интересными опциями, о которых мало кто знает для команды ls являются например, такие как "-d", "-R" или "-1". Они могут быть полезны в некоторых случаях, как:

ls -lad dir позволяет просмотреть директорию без просмотра ее содержимого,
 то есть права на саму папку.
ls -R - рекурсивный просмотр всех каталогов (например, если тебе нужно найти
 все .bash_history на машине, тебе будет достаточно команды:
cp `ls -Ra / | grep .bash_history` /tmp/hist)
ls -1 - зарисует тебе все файлы в один столбец (очень удобно для формирования
массива в Perl без использования opendir() и readdir() )


2. /usr/bin/grep
Grep по своей сути - поиск шаблона в файле. Но нередко его используют в конвейере для поиска шаблона, например cat /etc/passwd | grep root, хотя можно было бы обойтись командой grep root /etc/passwd. У grep также есть замечательные опции, которыми можно воспользоваться:


grep -v string file - выведет все строки, которые НЕ содержат string.
Отсюда приходит мысль: чистка логов обойдется всего лишь в 2 команды (убираем
все строки из /var/log/messages содержащие ip-адрес 127.0.0.1)
 # grep -v '127.0.0.1' /var/log/messages > /var/log/mess
mv /var/log/mess /var/log/messages
Все обходится без специальных логвайперов (кстати, оные тоже юзают grep -v).
grep -r - рекурсивный поиск. С опцией -E, выводящей все совпадения прямо на
экран можно поискать Credit Cards на заломанной машине ;) Слюнки потекли?
 Показываю как:
# grep -iEr visa /var/lib/mysql >/tmp/cc.log 2>&1
Записываем все совпадения в /tmp/cc.log.


3. /usr/bin/perl ;)
Perl имеет очень занятную опцию -e. С помощью нее можно писать шедевры в командной строке. Например: следует удалить файлы в директории если их размер равен 0 байт. /bin/rm && grep не справятся с задачей если файлов очень много. На помощь придет Perl :]


# perl -e 'opendir(DIR,"/usr/jpg"); @jpg=readdir(DIR);closedir(DIR);
foreach (@jpg) { chomp; if (-z "/usr/jpg/$_") { unlink("/usr/jpg/$_") } }'

Perl решит эту проблему за несколько секунд ;) Просто и удобно.

4. awk && grep
Задача: нужно убить процесс pppd, с заданным ttyS устройства. Это можно выполнить в одну строку, при помощи awk ;)

# kill -9 `ps -t ttyS0 | grep pppd | awk {'print($1)'}`
Вызовем простую функцию print() из языка awk и напечатаем процесс pppd (первая часть /bin/ps).
Вот некоторые примочки, которые могут тебе пригодиться (лично я сам использую их очень часто, что и тебе советую).

Да... чуть не забыл. Никогда не свети свою историю команд - поверь - может быть плохо. Либо сделай: export HISTFILE=/dev/null, либо, чтобы не мучаться, сразу ln -sf /dev/null /home/yourlogin/.bash_history ;)

 

Команды для удалённой атаки в Linux


Forb


Итак, ты каким-либо методом имеешь доступ к Linux-консоли твоего прова (Telnet / WWW) и весьма желательно FTP доступ к удалённому серверу. С этой задачей можно очень быстро справиться, это несложно, а дальше возникает вопрос: что можно сделать, если можешь управлять сервером (любыми правами)?

Рассмотрим ряд возможностей, которые помогут тебе узнать очень много дыр в сервере твоего провайдера, а при удачном стечении обстоятельств даже порутить / завесить сервак.
Если ты в совершенстве знаешь Linux - все его особенности, местоположение config-файлов и команды, то можешь не читать эту статью - всё, что написано здесь, ты уже знаешь. Ну, а если ты начинающий юниксоид и стремишься познать особенности данной OS, то эта статья для тебя. Итак, приступим.

1. Поиск. Только поиск.

Админы - народ рассеянный, это знают все. У них нет времени даже на то, чтобы поставить защитный атрибут на файл с паролями или другой ценной информацией и эта информация может быть разбросана по всему серверу. Постараемся воспользоваться этим недостатком.
На помощь всегда приходит замечательная команда find. Она позволяет найти файлы по какому-то схожему признаку (дата создания, атрибут, имя файла, etc). Это нам и нужно. Ты не задавал себе вопроса: нет ли на сервере ненужной копии shadow с атрибутом 644 ? ;)
Формат команды find: find <директория начала поиска> <шаблон значение>
Шаблоны бывают разные, вот некоторые из них:
name - поиск по имени
user - поиск на принадлежность к какому-либо пользователю
group - аналогично, только с группой.
perm - поиск по атрибуту
type - поиск по типу (l - ссылка, f - файл, d - директория)


А теперь самое интересное: посмотрим, нет ли копии shadow на сервере :) Набираем команду либо через cgi-скрипт, либо в telnet`е


http://yourprov.com/path/to/script/test.pl?find -type f -name shadow
Ждём минуты 2 и смотрим на ответ сервера. Если будет что-то вроде:
/etc/shadow
/home/admin/svalka/test/shadow
то ты натолкнулся на копию password-файла. Тебе стоит только набрать:
http://yourprov.com/path/to/script/test.pl?cat /home/admin/svalka/test/shadow
и запустить John the Ripper на полную мощность ;)


2. Авторизация для сервисов.

Большинство сервисов в Linux требуют авторизации и их passwd-файлы также могут лежать на сервере с аккаунтами пользователей (порой даже незашифрованных). Пример: uucp, webmin, sockd и многие другие сервисы.
Чтобы посмотреть, а не запущены ли они на сервере, просто выполни команду "ps ax" и ищи нечто похожее на программу-сервис.
Допустим ты обнаружил, у твоего прова работает uucp (unix to unix connect protocol). Щупай каталог /etc/uucp на предмет файла passwd (с 90% вероятностью он там есть) и выводи его на экран (только слюной не захлебнись от жадности ;) ).


3. Безопасность превыше всего.

Если ты не хочешь наткнуться на своего админа, то всегда пользуйся командой "w" или "who". Эта команда выводит зарегистрированных в системе в данный момент пользователей и если ты увидел нечто:


root pts/0 11:00pm 44:25 0.05s ? -

то значит твой админ сейчас усердно рутит сервак :) и может, кстати, засечь и тебя простой командой (ps ax|grep perl), но перед тем, как закрыть твой IE aka броузер, ты можешь немного подшутить над админом и даже вызвать у него сердечный приступ :)
Ты не знаешь, что будет, если ты заюзаешь команду: echo \"The system is going down for halt NOW!\" > /dev/pts/0 ? Объясняю. Вся лабуда, которую ты напишешь между \" и \" выведется на консоль твоего доброго дяди админа, который, нервно передёрнется от совершенно внезапно выползшей строчки (кому приятно идти на ATC и поднимать сервер? правильно! никому:) ). Но эта шутка чревата некоторыми плачевными для тебя последствиями, поэтому я тебе ничего не говорил =)


4. И в заключении...

Что тебе сказать... Твоя цель надыбать root пароль и входить в консоль под telnet или SSH протоколом ;) Это твоя заветная цель :) И совет тебе, если ты найдёшь его, не нужно сразу делать "rm -rf /". Пожалей админа :))

UNIX Shell


Группа GiN

Очень многие версии 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 или еще где похлеще, здесь то нам и пригодится эта програма.



Источник: http://hhtp://www.nsd.ru
Категория: OC | Добавил: X-SAM (2006-05-04)
Просмотров: 7753 | Комментарии: 3 | Рейтинг: 5.0

Всего комментариев: 0
Имя *:
Email *:
Код *:

Украинская Баннерная Сеть
Поиск по каталогу

Кнопки друзей

Статистика
Рейтинг сайтов Powered by MyPagerank.Net

Copyright DEBUGGER © 2007 Используются технологии uCoz