Некоторые приёмы форензики под Linux. Часть 2 | OTUS
🔥 Начинаем BLACK FRIDAY!
Максимальная скидка -25% на всё. Успейте начать обучение по самой выгодной цене.
Выбрать курс

Курсы

Программирование
iOS Developer. Basic
-25%
Python Developer. Professional
-25%
Разработчик на Spring Framework
-25%
Golang Developer. Professional
-25%
Python Developer. Basic
-25%
iOS Developer. Professional
-25%
Highload Architect
-25%
JavaScript Developer. Basic
-25%
Kotlin Backend Developer
-25%
JavaScript Developer. Professional
-25%
Android Developer. Basic
-25%
Unity Game Developer. Basic
-25%
Разработчик C#
-25%
Программист С Web-разработчик на Python Алгоритмы и структуры данных Framework Laravel PostgreSQL Reverse-Engineering. Professional CI/CD Vue.js разработчик VOIP инженер Программист 1С Flutter Mobile Developer Супер - интенсив по Kubernetes Symfony Framework Advanced Fullstack JavaScript developer Супер-интенсив "Azure для разработчиков"
Инфраструктура
Мониторинг и логирование: Zabbix, Prometheus, ELK
-25%
DevOps практики и инструменты
-25%
Архитектор сетей
-25%
Инфраструктурная платформа на основе Kubernetes
-25%
Супер-интенсив «ELK»
-16%
Супер-интенсив «IaC Ansible»
-16%
Супер-интенсив "SQL для анализа данных"
-16%
Базы данных Сетевой инженер AWS для разработчиков Cloud Solution Architecture Разработчик голосовых ассистентов и чат-ботов Внедрение и работа в DevSecOps Администратор Linux. Виртуализация и кластеризация Нереляционные базы данных Супер-практикум по использованию и настройке GIT IoT-разработчик Супер-интенсив «СУБД в высоконагруженных системах»
Специализации Курсы в разработке Подготовительные курсы
+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 комментариев
Для комментирования необходимо авторизоваться
🎁 Максимальная скидка!
Черная пятница уже в OTUS! Скидка -25% на всё!