Некоторые приёмы форензики под Linux. Часть 2
В предыдущей части статьи мы сформировали общий чек-лист проверки, сняли образ 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
На этом всё! Всем удачи и хорошего настроения!