Основные команды командной строчки.

Discussion in 'Безопасность и Анонимность' started by Егорыч+++, 22 Jun 2005.

  1. w00d

    w00d [ The Godfather ]

    Joined:
    30 Jun 2005
    Messages:
    172
    Likes Received:
    22
    Reputations:
    4
    Можно переместить:
    mv /www/cgi/mns/phpmyadmin /bhome/part2/01/www/forum/
    или
    cp -r /www/cgi/mns/phpmyadmin /bhome/part2/01/www/forum/
    а потом
    rm -rf /www/cgi/mns/phpmyadmin

    PS: Да и вообще.. что значит команды в одну строку???
    Разве нет оператора " ; " ???
     
  2. ysmat

    ysmat Member

    Joined:
    20 Apr 2006
    Messages:
    89
    Likes Received:
    5
    Reputations:
    -3
    нормально прокатила команда
    cp -r /www/cgi/mns/phpmyadmin /bhome/part2/01/www/forum/
    как теперь папку phpmyadmin можно переименовать
     
  3. ysmat

    ysmat Member

    Joined:
    20 Apr 2006
    Messages:
    89
    Likes Received:
    5
    Reputations:
    -3
    если создается обычный текст
    то команда echo text > file работает
    а вот например echo <? system($cmd); ?> > file нет
    ненравится символы <($)> как это можно обойти
    если екранировать ковычками то
    создается все кроме $
    пробовал
    echo "<? system($cmd); ?>" file
    echo "<? system("$"cmd); ?>" file
    знак $ никак не проходит

    [ Added by Gh0s7 ]

    echo '<? system("$"cmd); ?>' > file
     
    #23 ysmat, 24 Sep 2006
    Last edited by a moderator: 25 Mar 2007
  4. Ch3ck

    Ch3ck Elder - Старейшина

    Joined:
    9 Jun 2006
    Messages:
    1,363
    Likes Received:
    1,193
    Reputations:
    430
    Ба!!!, а если открыть встроенный редактор, какой-нить mc.
    По-моему в каждой *nix системе стоит.
     
  5. Deem3n®

    Deem3n® RTFMSDN

    Joined:
    19 Sep 2005
    Messages:
    378
    Likes Received:
    153
    Reputations:
    164
    echo "<? system(\$cmd); ?>" > file
     
    #25 Deem3n®, 24 Sep 2006
    Last edited: 24 Sep 2006
  6. ysmat

    ysmat Member

    Joined:
    20 Apr 2006
    Messages:
    89
    Likes Received:
    5
    Reputations:
    -3
    как раз то что нужно
     
  7. KPOT_f!nd

    KPOT_f!nd положенец общага

    Joined:
    25 Aug 2006
    Messages:
    1,074
    Likes Received:
    502
    Reputations:
    65
    Консольные команды

    Unix Shell

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

    KPOT_f!nd положенец общага

    Joined:
    25 Aug 2006
    Messages:
    1,074
    Likes Received:
    502
    Reputations:
    65
    at - указание времени когда выполняется команда
    chown - смена хозяина файла
    batch - выполнить команду во время загрузки
    telnet - клиент телнет
    ftp - клиент фтп
    rmdir - удалить каталог
    finger/who/users - вывести список работающих в системе.
    gcc - компилятор C
    ftpwho - фингер для фтп
    mv - переместить файл
    kill - прекратить процесс
    cat - текстовой редактор
    ls - просмотр каталога
    chmod - смена привилегий файлового доступа
    rm - удалить файл
    mail - ну, типа, работа с мылом
    cd - сменить каталог
    cron - демон команд at и batch
    logname - получение имени регистрации
    cp - копирование чего либо.
    uname-a - всё о версии системы.
    crontab - задать резервы времени между запусками прог.
    pwcheck - просмотр дефолтового файла пароля.
    umask - маска для определённого файла.
    su - программа su
    sleep - преостановить процесс.
    news - отображение usenet
    write - мессага текущему юзеру.
    uux - выполнить комманды на remote компе
    nslookup - сводки гидромедцентра о IP
    uucp - копирование файл с/на remote комп
    uuname - список хостов UUCP
    more - вывод текстовика в постраничном режиме
    greg - поиск строки в фйле по заданному ключу
    greg -i - то же,без учёта регистра.
    uuencode - содание текстовой версии двоичного файла( для мыла)
    uudecode - ну, типа противоположность предыдущей.
    tar - создание архивов файлов.
    uncompress - получение исходного из сжатого файла.
     
    1 person likes this.
  9. Егорыч+++

    Staff Member

    Joined:
    27 May 2002
    Messages:
    1,373
    Likes Received:
    895
    Reputations:
    20
    dd if=/dev/zero of=/tmp/bigfile.jpg bs=1024k count=250

    Этой командой можно создать пустой файл заданного размера. Вданном случае размер файла будет 250mb.
     
  10. _Great_

    _Great_ Elder - Старейшина

    Joined:
    27 Dec 2005
    Messages:
    2,032
    Likes Received:
    1,119
    Reputations:
    1,139
    dd вообще позволяет копировать блоками информацию из файла/устройства в файл/устройство.
    Например, сдампить дискетку:
    dd if=/dev/fd0 of=/tmp/floppy bs=1024 count=1440
    сдампить MBR жесткого диска:
    dd if=/dev/hda of=/home/my/mbr bs=512 count=1
    записать аналогичным образом и еще много чего.
     
  11. EXSlim

    EXSlim Elder - Старейшина

    Joined:
    9 Oct 2006
    Messages:
    73
    Likes Received:
    20
    Reputations:
    18
    cp /dev/fd0 /tmp/fdd.img ?



    Увеличиваем виртуальную память без перезагрузки
    Создание файла подкачки и его подключение. Только для root

    //Пустой файл
    dd if=/dev/zero of=/swap bs=1k count=32768

    //делаем созданый файл файлом подкачки
    mkswap /swap 32768

    //подключаем
    swapon /swap
     
  12. MegaDeth

    MegaDeth Elder - Старейшина

    Joined:
    8 Nov 2006
    Messages:
    192
    Likes Received:
    72
    Reputations:
    13
    как с помощью консольки (ну точнее.. system() ) копировать файл с удаленого хоста в текущую папку? cp http://site.ru/file.rar file.rar: не катит

    [ Added by Gh0s7 ]

    Насколько помню, такое й вариант работаей на иосах (цисках), а в никсах для этого есть wget:

    wget -O out http://somehost/somefile

    (man wget)
     
    #32 MegaDeth, 16 Mar 2007
    Last edited by a moderator: 25 Mar 2007
  13. _Great_

    _Great_ Elder - Старейшина

    Joined:
    27 Dec 2005
    Messages:
    2,032
    Likes Received:
    1,119
    Reputations:
    1,139
    wget http://site.ru/file.rar -O file.rar
     
    1 person likes this.
  14. Digimortal

    Digimortal Banned

    Joined:
    22 Aug 2006
    Messages:
    471
    Likes Received:
    248
    Reputations:
    189
    wget http://site.ru/file.rar -O file.rar
    links -source http://site.ru/file.rar > file.rar
    lynx -source http://site.ru/file.rar > file.rar
    curl http://site.ru/file.rar -o file.rar
    GET http://site.ru/file.rar > file.rar
    fetch -o http://site.ru/file.rar -p file.rar
     
    2 people like this.
  15. Un_0

    Un_0 Elder - Старейшина

    Joined:
    11 Apr 2007
    Messages:
    43
    Likes Received:
    43
    Reputations:
    17
    Наверное, все знают. Но...
    Чтобы убить процесс, когда известно имя, но процессов очень много.

    ps ax | grep <name> | grep -v grep | cut -d ' ' -f2

    Выведет ID.

    Потом kill -9 <ID>

    =====

    Если нужно убить, не задумываясь, то:

    { x=`ps ax | grep <name> | grep -v grep | cut -d ' ' -f2`; kill -9 $x; }

    (пробелы обязательны)

    =====

    Довольно удобно пользоваться этим конвеером при зависшем Х-приложении, переключившись в консоль.
     
    #35 Un_0, 12 May 2007
    Last edited: 12 May 2007
    1 person likes this.
  16. andy13

    andy13 Elder - Старейшина

    Joined:
    4 Feb 2007
    Messages:
    100
    Likes Received:
    15
    Reputations:
    3
    Un_0, почему не хочешь использовать killall для прибивания процессов?
     
  17. Un_0

    Un_0 Elder - Старейшина

    Joined:
    11 Apr 2007
    Messages:
    43
    Likes Received:
    43
    Reputations:
    17
    Не все процессы нужно прибить, а определенный по имени. Например, запустил я Q3, а он повис. Я переключился на консоль и убил его. А если просто использовать ps ax, то долго искать глазами нужный ID.
     
  18. andy13

    andy13 Elder - Старейшина

    Joined:
    4 Feb 2007
    Messages:
    100
    Likes Received:
    15
    Reputations:
    3
    эквивалентно `pidof prog_name`
    Результатом работы и в том и в другом случае
    будет pid или несколько pid'во. Как ты определяешь, какой именно
    потом нужно прибивать?


    тоже самое, что и `killall -9 prog_name`

    так ведь проще!
     
  19. tclover

    tclover nobody

    Joined:
    13 Dec 2005
    Messages:
    741
    Likes Received:
    682
    Reputations:
    287
    датчик движения на базе линукс и оптической мышки
    Code:
    while true;do hexdump -n 1 /dev/mouse >/dev/null 2>&1 && echo "По столу кто-то ходил в \"`date`\"";done
    (с)morik
     
    2 people like this.
  20. Un_0

    Un_0 Elder - Старейшина

    Joined:
    11 Apr 2007
    Messages:
    43
    Likes Received:
    43
    Reputations:
    17
    Не спорю, но pidof работает только под рутом. Да и варианты решений одной задачи позволяют выбрать оптимальный для конкретного случая.

    Кстати, вычитал, что лучше пользоваться $( ), а не =`...`

    Так что окончательный вариант:

    kill -9 $(ps ax | grep <name> | grep -v grep | cut -d ' ' -f2).