суббота, 24 февраля 2018 г.

Обработка текста


Возвращаемся к перенаправлению


Ранее в этой серии руководств, мы видели пример использования >, оператора для перенаправления вывода команды в файл, как показано ниже: 

echo "firstfile" > copyme

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

$ echo "hi there" | wc

1       2       9

Символ | используется для подключения выхода команды слева, ко входу команды справа от него. В примере выше, команда echo печатает в вывод «hi there» с символом перевода строки в конце. Этот вывод обычно появляется в терминале, но канал перенаправляет его на вход команде wc, которая показывает количество строк, слов и символов. 

Пример с каналами (пайпами)


Вот другой простой пример: 

ls -s | sort -n

В этом случае, ls -s обычно вывела бы текущую директорию на терминал, с указанием размера перед каждым файлом. Однако вместо этого, мы передаем вывод программе sort -n, которая численно отсортирует его. Это очень удобно для поиска файлов, которые занимают в директории больше всего места. 

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

Распаковывающий канал


Для разархивации и распаковки файла, вы могли бы сделать следующее: 

bzip2 -d linux-2.4.16.tar.bz2
tar xvf linux-2.4.16.tar


Недостаток такого метода — это создание промежуточного, разархивированного файла на диске. Поскольку tar может читать данные напрямую со своего входа (вместо указанного файла), мы можем получить тот же конечный результат используя пайп: 

bzip2 -dc linux-2.4.16.tar.bz2 | tar xvf -

Вуухуу! Сжатый тарбол был распакован и мы обошлись без промежуточного файла. 

Канал подлиннее


Вот еще один пример пайпа: 

cat myfile.txt | sort | uniq | wc -l

Мы используем cat для отправки содержимого myfile.txt команде sort. Когда sort получает данные на вход, она сортирует их построчно в алфавитном порядке, и отправляет в таком виде программе uniq. uniq удаляет повторяющиеся строки (кстати uniq, требует отсортированный список на входе) и отправляет результат на wc -l. Мы рассматривали команду wc ранее, но без ее опций. Когда указывается опция -l, то команда выводит только количество строк, количество слов и символов в этом случае не выводятся. Вы увидите, что такой пайп распечатает количество уникальных строк в текстовом файле. 

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

Буря обработки текста начинается!


Теперь мы приступим к беглому осмотру команд Linux для стандартной обработки текстов. Поскольку сейчас мы рассмотрим множество программ, у нас не будет места для примеров по каждой из них. Вместо этого, мы призываем вас прочитать man-станицы приведенных команд (набрав man echo, например) и изучить каждую команду с ее опциями, потратив некоторое время на игру с ними. Как правило, эти команды печатают результат обработки на терминал, а не производят модификацию непосредственно файла. После этого беглого обзора, мы поглубже рассмотрим перенаправление ввода-вывода. Так что да, уже виден свет в конце тунеля. :) 

echo печатает свои аргументы на терминал. Используйте опцию -e если хотите включить в вывод управляющие последовательности; например echo -e 'foo\nfoo' напечатает foo, затем перейдет на новую строку, затем снова напечатает foo. Используйте опцию -n чтобы запретить echo добавлять символ новой строки в конец вывода, как это сделано по-умолчанию.

cat напечатает содержимое указанного файла на терминал. Удобна как первая команда пайпа, например, cat foo.txt | blah. 

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

uniq принимает уже отсортированный файл или поток данных (через пайп) и удаляет повторяющиеся строки. 

wc выводит количество строк, слов и символов в указанном файле или во входном потоке (из пайпа). Введите man wc чтобы узнать, как настроить вывод программы. 

head выводит первые десять строк файла или потока. Используйте опцию -n, чтобы указать, сколько строк должно отображаться. 

tail печатает последние десять строк файла или потока. Используйте опцию -n, чтобы указать, сколько строк должно отображаться. 

tac похожа на cat, но печатает все строки в обратном порядке, другими словами, последняя строка печатается в первую очередь.

expand конвертирует входные символы табуляции в пробелы. Опция -t указывает размер табуляции. 

unexpand конвертирует входные пробелы в символы табуляции. Опция -t указывает размер табуляции. 

cut используется для извлечения из входного файла или потока, полей разделенных указанным символом. (попробуйте echo 'abc def ghi jkl' | cut -d ' ' -f2,2 прим. пер.)

Команда nl добавляет к каждой входной строке ее номер. Удобно для распечатки. 

pr разбивает файл на страницы и нумерует их; обычно используется для печати. 

tr — инструмент трансляции (преобразования) символов; используется для отображения определенных символов во входном потоке на заданные символы в выходной поток. 

sed — мощный потоко-ориентированный текстовый редактор. Вы можете узнать больше о sed из следующих руководств на сайте Funtoo: 
Если вы планируете сдавать экзамен LPI, обязательно прочитайте первые две статьи этой серии. 

awk — искуссный язык построчного разбора и обработки входного потока по заданным шаблонам. Чтобы узнать больше о awk прочитайте следующую серию руководств на сайте Funtoo: 
od разработан для представления входного потока в восьмеричном, шестнадцатеричном и т.д. формате. 

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

fmt используется, чтобы выполнить «перенос» длинных строк текста. Сегодня она не очень полезна, поскольку эта возможность встроена в большинство текстовых редакторов, хотя команда достаточно хороша, чтобы ее знать. 

paste принимает два или несколько файлов в качестве входных данных, объединяет построчно и выводит результат. Может быть удобно для создания таблиц или колонок текста. 

join похожа на paste, эта утилита позволяет объединять два файла по общему полю (по-умолчанию первое поле в каждой строке). 

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

Буря закончилась! Перенаправление


Как и > в командной строке, вы можете использовать < для перенаправления файла, но уже на вход команде. Для многих команд, можно просто указать имя файла. К сожалению некоторые программы работают только со стандартным потоком ввода. 

Bash и другие шелы поддерживают концепцию «herefile». Это позволяет давать входные данные команде в виде набора строк с последующей командой, означающей окончание ввода последовательности значений. Проще всего это показать на примере: 

sort <apple
cranberry
banana
END

apple
banana
cranberry


В приведенном выше примере, мы вводим слова apple, cranberry и banana, с последующим «END» для указания окончания ввода. Затем программа sort возвращается наши слова в алфавитном порядке. 

Использование ">>"


Можно ожидать, >> будет в чем-то похожа на <<, но это не так. Она позволяет просто добавить вывод в файл, а не перезаписывать его каждый раз, как это делает >. Пример: 

echo Hi > myfile
echo there. > myfile
cat myfile
there.


Уупс! Мы потеряли часть с «Hi»! А вот что мы имели ввиду: 

echo Hi > myfile
echo there. >> myfile
cat myfile
Hi
there.


Так то лучше!

https://habrahabr.ru/post/105926/

среда, 21 февраля 2018 г.





ОПАСНЫЕ ВИРУСЫ ДЛЯ LINUX



С давних времен между пользователями ходят споры есть ли вирусы для Linux и если есть, то стоит ли использовать антивирусы на своем компьютере. Операционная система Linux спроектирована таким образом, чтобы быть максимально безопасной и защищенной от вирусов.
Она действительно намного безопаснее Windows и менее подвержена атакам вирусов и вирусам. Но разработчики — тоже люди и иногда они ошибаются. Из-за недосмотра или еще по каким-либо причинам в системе появляются уязвимости, которые могут быть использованы вирусами. В наши дни Linux стремительно набирает популярность. Если на персональных компьютерах она используется не так часто, то на серверах Linux занимает лидирующие позиции, а теперь еще и на различных IoT устройствах, которых становится все больше.
Хакерам становится все выгоднее делать вирусы для Linux. Ими сложнее заразиться чем в Windows, и в большинстве случаев они используют уже устраненные в новых версиях linux и всем известные уязвимости для проникновения в систему, а также недочеты в настройке.
Так что если ваша система правильно настроена и вовремя обновляется, то вам нечего бояться. Но многие IoT устройства, роутеры или серверы долго не обновляются, и именно они становятся жертвами таких вирусов. В нашей сегодняшней статье мы рассмотрим самые опасные вирусы для Linux, которые появились за последние несколько лет.

1. LINUX.ENCODER

Linux.Encoder известный, как первый шифровальщик для операционных систем на базе ядра Linux. Распространение вируса началось 5 ноября 2015 года. Используя различные уязвимости в системе вирус шифровальщик linux проникал на сервер и зашифровывал все доступные для записи файлы с помощью симметричного шифрования AES и RSA.
Открытый ключ, которым было выполнено шифрование доступен всем, а вот за закрытый, нужный для расшифровки, злоумышленники требовали деньги в валюте bitcoin. Основным путем для проникновения в систему для этого вируса была уязвимость в популярной CMS для создания онлайн магазинов — Magento. Естественно, уязвимость была давно закрыта, но не все небольшие ресурсы установили обновление, за что и поплатились.
Было обнаружено несколько версий вируса Linux.Encoder.0, Linux.Encoder.1 , Linux.Encoder.2. Но для всех из них со временем были найдены способы расшифровки файлов.

2. LINUX.MIRAI

Первая версия Linux.Mirai была обнаружена в мае 2016. У него совсем другая специфика работы. Вирус не причиняет вреда владельцу устройства и пытается остаться незамеченным. Он нацелен больше на IoT устройства, под управлением Linux, которые подключены к сети интернет и использует их для осуществления DDoS атак. Пользователь, скорее всего, ничего не заметит кроме существенного снижения пропускной способности сети.
Попадает вирус на машину путем совсем простым. Он ищет устройства на которых работает служба telnet с доступом без пароля или паролем по умолчанию. Linux.Mirai находится на устройстве до перезагрузки. Но если логин и пароль telnet не были изменены, то устройство будет инфицировано снова.
Этот вирус еще известен под именами Bashlite, GayFgt, LizKebab, Torlus, Bash0day и Bashdoor. Именно с помощью ботнена, организованного этим вирусом были осуществлены несколько нашумевших DDoS атак этой осенью. Как бы то ни было, но успех Mirai вдохновил хакеров разрабатывать другие linux вирусы, для организации DDoS атак.

3. LINUX.NYADROP

Это еще один троян, который инфицирует IoT устройства под управлением Linux точно так же, как это делает Mirari. Он не просто ищет устройства без пароля, но и пытается перебрать самые часто используемые пароли для telnet, чтобы попасть на устройство.
Работает вирус немного другим образом, после проникновения на устройство, он загружает исполняемые файлы бэкдора, который позволяет получить удаленный доступ к устройству. Пока что инициируются только роутеры на архитектуре MIPS, но в будущем вирус может расширить круг своих жертв. Хакеры смогут использовать зараженные устройства не только для DDoS атак, но и, например, в качестве прокси.

4. LINUX.BACKDOOR.GATES

Этот троян для Linux был обнаружен еще в мае 2014. Он атакует устройства, под управлением 32 битной версии операционной системы Linux. Вирус состоит из двух частей, бэкдора, который позволяет злоумышленникам выполнять на вашем компьютере необходимые ему команды, а также DDoS бота. Основное предназначение, как и у двух предыдущих — проведение DDoS атак.
В процессе работы вирус передает злоумышленникам много данных о вашей системе, среди них: количество ядер, скорость CPU, использование CPU, MAC адрес, информация о сетевых интерфейсах, объем памяти, объем передаваемых и получаемых данных.

5. LINUX.LADY

Еще один троян для операционных систем семейства Linux обнаруженный в октябре 2016. Он написан на новом языке, разработанном в корпорации Google. Он заражает серверы через неправильно настроенную программу Redis. Троян способен сам распространяться от машины к машине и постоянно исследует сеть на наличие уязвимых компьютеров.
Кроме распространения и заражения других машин, у этого вируса есть еще одна задача, он майнит криптовалюту на вашей машине, тем самым расходуя ваши ресурсы процессора и памяти.

6. LINUX.DNSAMP

Этот троян для Linux был обнаружен еще в 2014 году, он может заражать как 32, так и 64 битные системы Linux. После заражения вирус прописывает себя в автозагрузку через /etc/rc.local и начинает ожидать команд от сервера. Основная цель вируса — участие в DDoS атаках.
Попадая на вашу машину, как и другие linux вирусы, он отправляет на свои сервера информацию о ней, например, объем памяти и количество swap пространства, а также другие характеристики.

7. LINUX.HANTHIE

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

8. LINUX.MYK

Еще один троян для операционных систем Linux, созданный китайскими программистами. Как и Mirori, этот вирус предназначен для организации DDoS атак, но также может предоставить злоумышленнику доступ к вашему компьютеру. Характерная особенность этого вируса в том, что он способен отключать брандмауэр. Инфицирование осуществляется с помощью социальной инженерии. Впервые вирус был обнаружен весной 2015.

9. LINUX.REX

В 2016 году появилось несколько вирусов для Linux, написанных на новом языке от Google — Go. Вирус инфицирует сервера, под управлением различных систем управления контентом, используя обнаруженные в них уязвимости. Он может рассылать электронные письма и самостоятельно искать уязвимые сервера. Чаще всего вирус заражает серверы с Durpal, WordPress, Magento, JetSpeed, в которых не исправлены уязвимости. В WordPress вирус пытается использовать уязвимые плагины WooCommerce, Robo Gallery, Rev Slider, WP-squirrel, Site Import, Brandfolder, Issuu Panel и Gwolle Guestbook. Для сайтов Magento используются уязвимости CVE-2015-1397, CVE-2015-1398 и CVE-2015-1399.
Он используется злоумышленниками для организации DDoS атак, способен собирать доступную информацию о сервере, в том числе логины и пароли пользователей. Также вирус рассылает email сообщения с угрозой DDoS атаки и требует выкуп.

10. LINUX.SSHCRACK

Эта вредоносная программа пытается заразить как можно большее количество устройств путем перебора паролей ssh. Когда программа получает доступ к новому компьютеру, она запускает на нем 200 потоков, выбирает случайный адрес и пытается перебрать ssh пароль для него. Перебор осуществляется по словарю, в котором есть более 10000 значений.

11. LINUX.REKOOBE

Этот простой вирус для Linux был обнаружен в ноябре 2015. Он способен выполняться на машинах с архитектурой x86 и x64, хотя изначально был разработан только для SPARC. Вирус распространяется путем социальной инженерии, и может даль злоумышленнику доступ к вашему компьютеру, а также способен загружать на ваш компьютер различные файлы и передавать команды интерпретатору команд linux.

12. LINUX.ELLIPSIS

Этот вирус создает на инфицированном сервере или компьютере с операционной системой Linux прокси-сервер, с помощью которого злоумышленник может делать нужные ему действия в сети и оставаться незамеченным. Вирус распространяется путем перебора логина и пароля к службе удаленного доступа — ssh.
В процессе работы вирус отключает iptables и мешающие ему программы, ведение логов. А также передает контроль над вашим компьютером злоумышленникам.

13. LINUX.EKOMS

Этот вирус под Linux передает злоумышленникам снимки вашего экрана каждые 30 секунд. Также может загружать на сервер содержимое папки /tmp. Кроме снимков экрана, вирус может записывать звук. Заражение машины, как и во многих других способах выполняется путем социальной инженерии.

ВЫВОДЫ

Как видите, вирусы и операционные системы linux, вещи все же совместимые. За последнее время их появилось очень достаточно много. Другое дело, что они ориентированны, либо на уязвимые и не обновляемые системы, IoT устройства, или социальную инженерию. Это не повод ставить антивирус, но это не значит что нужно терять бдительность и расслабляться. Не забывайте обновлять свою систему вовремя, особенно если у вас есть сервер. А как вы относитесь к вирусам в Linux? Напишите в комментариях!

Ссылка