Некоторые приёмы форензики под Linux. Часть 2 | OTUS
⚡ Подписка на курсы OTUS!
Интенсивная прокачка навыков для IT-специалистов!
Подробнее

Курсы

Программирование
Python Developer. Professional
-3%
Разработчик на Spring Framework
-5%
iOS Developer. Professional
-8%
Golang Developer. Professional
-6%
Базы данных
-12%
Agile Project Manager
-5%
Android Developer. Professional
-11%
Microservice Architecture
-5%
C++ Developer. Professional
-5%
Highload Architect
-6%
JavaScript Developer. Basic
-8%
Backend-разработчик на PHP
-9%
Архитектура и шаблоны проектирования C# Developer. Professional
-9%
Team Lead
-6%
Kotlin Backend Developer
-9%
Разработчик программных роботов (RPA) на базе UiPath и PIX Unity Game Developer. Basic Разработчик голосовых ассистентов и чат-ботов Node.js Developer Интенсив «Оптимизация в Java» Супер - интенсив по паттернам проектирования Супер - интенсив по Kubernetes iOS Developer. Basic Супер-интенсив «СУБД в высоконагруженных системах» Супер-интенсив "Tarantool"
Инфраструктура
DevOps практики и инструменты
-12%
Базы данных
-12%
Network engineer. Basic
-10%
Network engineer
-4%
Инфраструктурная платформа на основе Kubernetes
-6%
Экспресс-курс по управлению миграциями (DBVC)
-10%
Мониторинг и логирование: Zabbix, Prometheus, ELK
-10%
Administrator Linux. Professional
-6%
Разработчик IoT
-13%
Основы Windows Server Cloud Solution Architecture Разработчик голосовых ассистентов и чат-ботов VOIP инженер Супер-практикум по работе с протоколом BGP NoSQL Супер-практикум по использованию и настройке GIT Супер-интенсив «СУБД в высоконагруженных системах» Экспресс-курс «IaC Ansible»
Специализации Курсы в разработке Подготовительные курсы
+7 499 938-92-02

Некоторые приёмы форензики под Linux. Часть 2

Pentest_Deep_28.11_2-5020-2b2914.png

В предыдущей части статьи мы сформировали общий чек-лист проверки, сняли образ HDD-диска и сделали дамп оперативной памяти (RAM). Теперь давайте продолжим.

Сетевой трафик на анализ

Касательно снятия дампа сетевого трафика, в ходу несколько утилит, прежде всего, это консольная tcpdump, классика жанра Wireshark и опенсорсный фреймворк XPLICO, хотя последний больше используется всё-таки для последующего анализа данных, чем для их первоначального сбора.

Начнём с tcpdump, базовый вызов команды выглядит следующим образом:

tcpdump <опции>  <фильтр>

А вот некоторые наиболее важные опции:

 -i интерфейс // задаёт интерфейс, с которого необходимо анализировать трафик 

 -n // отключает преобразование IP в доменные имена

 -e // включает вывод данных канального уровня (например, MAC-адреса)

 -v // вывод дополнительной информации (TTL, опции IP)

 -w имя_файла // задаёт имя файла, в который сохранять собранную информацию (дамп)

 -r имя_файла // чтение (загрузка) дампа из заданного файла

 -q // переводит tcpdump в "бесшумный режим", в котором пакет анализируется на транспортном уровне (протоколы TCP, UDP, ICMP), а не на сетевом (протокол IP)

Дампим весь входящий трафик из сети интернет на наш сервер:

tcpdump -s 0 -i eth0 -n -nn -ttt dst host <ip-адрес нашего хоста> -w forensic_cap.pcap

Пример создания дампа сетевого трафика по протоколам ftp или ssh на интерфейсе eth0:

tcpdump -s 0 port ftp or ssh -i eth0 -w forensic_cap.pcap

Дампим вообще всё, что есть в сети на интерфейсе eth0:

tcpdump -w forensic_cap -i eth0

Ещё одна очень весьма годная утилита для наших целей — это TCPflow. По сути, более продвинутый вариант tcpdump, поддерживающий ещё большее количество параметров фильтра и возможность восстанавливать "сломанные" пакеты.

Если tcpflow по умолчанию нет в системе, то для начала устанавливаем её:

 apt install tcpflow   // для  Debian-based дистрибутивов
 yum install tcpflow  // для  RedHat-based дистрибутивов

Далее базовый синтаксис команды выглядит так:

tcpflow [опции] [выражение] [хост]

А вот описание опций:

 -c: только консольная печать (не создавать файлы)

 -d: уровень отладки; по умолчанию 1

 -e: выводить каждый поток чередующимися цветами (синий = клиент-сервер; красный = сервер-клиент; зеленый = неизвестно)

 -i: сетевой интерфейс для прослушивания

 -r: чтение пакетов из выходного файла tcpdump

 -s: удалить непечатаемые символы (изменить на «.»)

Пример сбора данных из внешней сети до нашего целевого сервера:

tcpflow -ce host  <ip-адрес нашего хоста>

Собираем весь HTTP-трафик в нашей сети:

tcpflow -ce port 80

Дамп данных сетевого потока в локальную папку:

mkdir tcpflowdata  
cd tcpflowdata  
tcpflow host <ip-адрес целевой машины>

Теперь в директории /tcpflowdata будут складываться файлы с содержанием сетевых подключений. Всё, что потом нам останется сделать, — подкинуть их для анализа в WireShark, XPLICO или какой-либо другой, к примеру, облачный парсер.

Монтируем образы в исследовательскую систему

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

Общий синтаксис команды mount будет выглядеть следующий образом:

mount -o,ro,noatime,loop,offset= <смещение по началу партации в байтах> <имя файла образа> <точка монтирования>

К примеру, чтобы смонтировать ранее снятый дамп HDD, нужно выполнить команду:

mount -o,ro,loop forensic_disk_image.dd /mnt/temp/

Образ RAM будем открывать с помощью Volatility Framework.

Полученный pcap-файл, содержащий информацию о сетевых подключениях, как уже упоминал выше, можно вручную открывать в Wireshark или XPLICO. Но я предпочитаю пользоваться сервисами с полуавтоматическим парсингом, как то PacketTotal, Pcap Analyzer или платный CloudShark.

Анализ образа жёсткого диска

Поиск файлов с установленными битами SUID and SGID:

find / -perm -4000 –type f -xdev -print > suid.txt
find / -perm -2000 –type f -xdev -print > sgid.txt

Список последних модифицированных/открытых/созданных файлов в системе:

find / -mtime 5 –xdev > modified.txt
find / -atime 5 –xdev > accessed.txt
find / -ctime 5 –xdev > created.txt

Вывод списка модифицированных файлов после первичной инсталляции системы, изменённые менеджером пакетов: 1.Команда для RPM-based дистрибутивов:

rpm -V -a

2.Команда для Debian-based дистров с помощью debsums:

debsums -ca

Поиск и просмотр скрытых файлов и директорий:

find . –type f –exec ls –i {} \; | sort –n

Ручной просмотр заданий Cron Jobs:

less /etc/cron.hourly
less /etc/cron.daily
less /etc/cron.weekly
less /etc/cron.monthly

На этом всё! Всем удачи и хорошего настроения!

Не пропустите новые полезные статьи!

Спасибо за подписку!

Мы отправили вам письмо для подтверждения вашего email.
С уважением, OTUS!

Автор
0 комментариев
Для комментирования необходимо авторизоваться