Csi linux обзор

Обновлено: 05.07.2024

Привет, друг. Ты наверняка знаешь, что в начале 2020 года появился дистрибутив Linux под названием CSI Linux Investigator. Который позиционируется как площадка для проведения расследований. Я изначально хотел сделать просто обзор этой системы, но потом пришло понимание, что этот обзор получится максимально поверхностным. Ведь если рассказывать просто про дистрибутив, то вряд ли получится рассказать что-то новое, а, учитывая специфику встроенных утилит, посмотреть их поверхностно тоже не вариант, просто потому, что ничего не будет понятно.

Что касается самого дистрибутива. То историю со шлюзом мы уже видели в Whonix (обзор ЗДЕСЬ). В CSI принцип очень похож, весь трафик также перенаправляется через сеть Tor. Правда стоит отметить, что в CSI Linux добавили ещё одну виртуальную машину SIEM. Она тоже используется для защиты других виртуальных машин т.е. работает как IDS (система обнаружения вторжений), а ещё может работать с логами. Но все это нюансы и уделять им отдельное внимание я не вижу смысла. Гораздо интереснее посмотреть наполнение этого дистрибутива и познакомиться с утилитами в нем, а там есть на что посмотреть. Особенно с точки зрения OSINT, да и для пентеста, с позиции предварительной разведки, будет не лишним. А потому в этой статье мы разберем утилиты находящиеся в разделе OSINT дистрибутива CSI Linux Investigator, посмотрим для чего они нужны и научимся их использовать.

CSI Linux Investigator

Итак, раздел OSINT/Online Investigations. Здесь собрано довольно большое количество всяких утилит которые будут очень полезны, как при проведении предварительной разведки так и при проведении полноценного расследования. Конечно, некоторые из них носят довольно таки ситуативный характер, но знать о их существовании точно нужно, потому что в какой-то момент они могут сэкономить нам кучу времени и сил.

Ну, а начнем мы с подраздела Domain Tools.

Содержание:

CSI Domain Search Tools

Начать рассмотрение этого раздела нужно именно с пункта CSI Domain Search Tools. Это одна из отличительных возможностей этого дистрибутива. Нажав на этот пункт меню нам предложат создать то, что здесь называется кейс. Это что-то типа, рабочего проекта. Изначально нам будет предложено ввести название будущего кейса, а потом выбрать инструмент который мы хотим использовать. После этого вводим цель и CSI Linux автоматически запустит выбранную нами утилиту. При это в домашней паке пользователя, в каталоге Cases, будет создана папка нашего кейса, куда будут сохранены все отчеты.

CSI Linux Domain Search Tools

DNSRecon

DNSRecon -это утилита для проверки dns-записей и перебора поддоменов исследуемой цели. При запуске мы видим справку:

В первую очередь эта утилита будет полезна именно для перечисления dns-записей целевого ресурса. И с этой задачей dnsrecon справляется на отлично. Самым простым, ну и, наверное, самым распространенным вариантом её использования будет запуск для просмотра всех записей. Для этого после параметра -d просто указываем нужный сайт, если надо (как правило не надо) можно задействовать возможности поисковых систем:

DNSRecon

Бонусная возможность этой утилиты это брутить поддомены. Но это дело вкуса, и как по мне, для этих целей существуют более интересные инструменты (тот же Knock, например).

GetLinks

GetLinks

GoBuster

Справка по использованию GoBuster вызывается командой:

Использовать GoBuster довольно просто. По умолчанию задействован режим dir, потому если мы ищем фалы или каталоги то выбирать режим не нужно. Используя параметр -u указываем целевой сайт, а после параметра -w указываем путь к словарю. После чего запускаем и ждем пока GoBuster переберет варианты. Также можно немного модифицировать команду, например используя параметр -a установить User-Agent. Либо, если мы ищем файлы с каким-то конкретным расширением, то добавляем параметр -x после которого указываем расширение, например -x pdf.

GoBuster

Второй доступный режим, это режим поиска поддоменов. Чтобы его активировать нужно после параметра -m указать режим dns, потом точно также указать цель и словарь. При этом если мы хотим видеть ip адреса найденных поддоменов, то добавляем параметр -i.

GoBuster

Sublist3r

Как видим из справки, использовать Sublist3r очень легко. После параметра -d указываем нужный сайт и немного ждем. Если хотим задействовать брутфорс добавляем параметр -b, словарь, при этом, указывать не нужно. Интересная особенность в том, что мы можем сразу просканировать нужные нам порты и показать только те поддоменты где открыт нужный порт. Для этого добавляем параметр -p и указываем, через запятую, какие порты нам нужны.

Sublist3r

theHarvester

Чтобы запустить theHarvester в работу, после параметра -d вводим целевой сайт. Указываем какие поисковые системы задействовать -b google (можно указать all, что бы задействовать все доступные поисковые системы). Если нужно добавляем -c чтобы побрутить поддомены и, используя опцию -f просим сохранить результаты в файл jus.html.

theHarvester CSI Linux

С подразделом Domain Tools мы, вроде как, разобрались. Как видишь тут собран набор очень неплохих утилит, которые однозначно будут полезны как на ранних этапах разведки так и при сборе информации для расследований. Ну и, я думаю, после прочтения этого материала стало понятно как именно их использовать, а какие именно в каких ситуациях использовать это ты уже решай сам. А мы идем дальше и переходим к основному разделу OSINT в CSI Linux. Ему будет посвящена вторая часть этого обзора.


Если вы несколько лет вообще не следили за Windows 10 и не знаете, что происходит, то пропустили одну вещь — очень горячей темой для разработчиков стала подсистема Windows для Linux, она же WSL. Среди программистов очень часто её обсуждают. Действительно, потрясающе интересная штука.

Наконец-то у нас появилась возможность запустить свой инструментарий Linux на Windows наравне с виндовыми программами. А это значит, что больше не нужно изучать странный PowerShell или пользоваться архаичной консолью CMD.EXE .

К сожалению, не всё так радужно. WSL по-прежнему является неким инородным элементом, который отделён от родной среды Windows. В частности, не может взаимодействовать с «родными» инструментами Windows.

А ведь изначально всё задумывалось совсем иначе, пишет Джулио Мерино (Julio Merino), автор блога для разработчиков jmmv.dev. Подсистема должна была стать совсем другой, но фактически вышел провал, в каком-то смысле.

Чтобы понять причины этого провала, нужно сначала понять различия между WSL 1 и WSL 2 и как переход на WSL 2 закрыл некоторые интересные перспективы.

Давайте сначала взглянем на WSL 1, и первым делом — на её странное название. Почему эта функция называется подсистемой Windows… для Linux? Разве не наоборот? Это же не подсистема в Linux, которая делает что-то связанное с Windows, а именно наоборот! То есть грамотно она должна называться «Подсистема с функциональностью Linux для Windows» или «Подсистема Linux для Windows» или LSW. Откуда путаница?

Есть мнение, что Microsoft была вынуждена выбрать название «наоборот», чтобы избежать упоминания чужих торговых марок. Вот слова Рича Тёрнера (Rich Turner), проект-менеджера WSL:

Что ж… с другой стороны, такое странное название технически можно считать корректным, если внимательно изучить архитектуру ядра Windows NT. На странице «Архитектура Windows NT» в Википедии мы находим следующее:


«Пользовательский режим Windows NT состоит из подсистем, передающих запросы ввода-вывода соответствующему драйверу режима ядра посредством менеджера ввода-вывода. Есть две подсистемы на уровне пользователя: подсистемы окружения (запускают приложения, написанные для разных операционных систем) и интегрированные или внутренние подсистемы (управляет особыми системными функциями от имени подсистемы окружения). Режим ядра имеет полный доступ к аппаратной части и системным ресурсам компьютера».

Windows NT разработана с нуля для поддержки процессов, запущенных из множества операционных систем, а Win32 был «просто» одной из этих подсистем окружения. На такой платформе WSL 1 предоставляет новую подсистему окружения, подсистему Linux, для запуска бинарников Linux поверх ядра Windows NT. У подсистем окружения Win32 и Linux должна быть одна общая интегральная подсистема.

Что всё это на самом деле значит?

Разные системы называют «фронтендами» — вот что это значит. Процесс пользовательского пространства — это набор двоичных команд, которые процессор выполняет непрерывно (оставим в стороне прерывания). Ядро операционной системы не знает о том, что делает процесс, пока процесс не выдаст системный вызов: в этот момент ядро восстанавливает контроль для выполнения операции от имени пользователя, которая может быть чем-то вроде чтения файла или паузы на несколько секунд.

Способ, которым процесс выполняет системные вызовы, и семантика этих системных вызовов специфичны для операционной системы. Например, на старых х86 это выглядит так: открытие файла в системе Win32 — системный вызов 17h , который инициируется через прерывание INT 2EH , а при открытии файла в системе Linux — это системный вызов 5h , который инициируется через прерывание INT 80х .

Но… концептуально открытие файла — это открытие файла, верно? Нам особенно не интересно, что номера системных вызовов или номера прерываний отличаются друг от друга. И в этом заключается ключевой аспект дизайна WSL 1: подсистема Linux в ядре NT — это, проще говоря, реализация уровня системных вызовов Linux перед ядром NT. Эти системные вызовы позже делегируются примитивам NT, а не вызовам Win32. Самое главное: нет никакого перевода с системных вызовов Linux на системные вызовы Win32.

В каком-то смысле это подвиг архитектурной мысли и реальной программной разработки, учитывая в целом хорошую поддержку Linux-приложений под WSL 1 и помня о множестве реальных внутренних отличий NT от Unix, когда Windows вообще нативно не воспринимает стандартную юниксовую логику fork–exec.

Истинная красота этой конструкции заключается в том, что на машине работает одно ядро, и это ядро имеет целостное представление обо всех процессах под ним. Ядро знает всё о процессах Win32 и Linux. И все эти процессы взаимодействуют с общими ресурсами, такими как единый сетевой стек, единый менеджер памяти и единый планировщик процессов.

Причины для создания WSL 2

Если WSL 1 так крут, то зачем нужен WSL 2? Здесь две причины:

    WSL 1 должен, по сути, реализовать все двоичные интерфейсы приложений (ABI) ядра Linux, как говорится, «бит к биту». Если в интерфейсе есть ошибка, WSL 1 должен её воспроизвести. А если есть функция, которую трудно представить в ядре NT, то она либо не может быть реализована, либо нуждается в дополнительной логике ядра (и поэтому становится медленнее).



Уровни и интерфейсы между ними: API и ABI. Высокоуровневое сравнение

Это означает, что красота дизайна WSL 1 исчезла: ядро Windows NT больше не видит ничего в мире Linux. Просто большой чёрный ящик, который делает что-то неизвестное внутри себя. Ядро Windows NT видит только точки подключения VMENTER и VMEXIT для виртуальной машины и запросы чтения/записи на уровне блоков на виртуальном диске. Это самое ядро NT теперь ничего не знает о процессах Linux и доступе к файлам. Точно так же работающее ядро Linux ничего не знает об NT.

О некоторых других различиях можно прочитать в официальной документации.

С точки зрения пользователя, подсистема WSL 2 выглядит лучше: действительно, приложения Linux теперь работают намного быстрее, потому что не проходят через неудобную «эмуляцию» системных вызовов Linux в ядре NT. Если NTFS трудно использовать с семантикой Linux, то теперь такой проблемы нет, потому что теперь окружение Linux использует ext4 на своём виртуальном диске. И поддержка приложений Linux может быть гораздо более полной, потому что… ну, потому что WSL 2 — это и есть полноценный Linux.

Но подумайте, за счёт чего достигнуто это удобство? Чего мы лишились?

Какой должна была стать WSL, если бы всё работало так, как задумано:

  • Представьте, как здорово набрать ps или top в сеансе WSL и увидеть рядом процессы Linux и Windows, причём любой из них можно убить командой kill ?
  • Представьте, как здорово манипулировать службами Windows из сеанса WSL?
  • Как здорово использовать ifconfig (аналог ipconfig из Windows, хотя есть ещё ip ) в рамках сеанса WSL для проверки и изменения сетевых интерфейсов компьютера?

Вот что бесит сильнее всего, пишет Джулио Мерино: «Хотя я могу установить WSL на свою машину разработки для Azure, но никак не могу его использовать вообще ни для чего. По-прежнему приходится работать в CMD.EXE, поскольку здесь происходит взаимодействие с нативными процессами и ресурсами Windows, а инструменты, с которыми я имею дело, предназначены только для Windows».

Интересно, что семейство операционных систем BSD ( FreeBSD, OpenBSD, NetBSD, MidnightBSD, GhostBSD, Darwin, DragonFly BSD) всегда отставали от Linux и других коммерческих операционных систем. Но у них очень давно была реализована эта совместимость на бинарном уровне, о которой мы говорим. Джулио Мерино говорит, что совместимость с Linux в ядре NetBSD была реализована ещё в 1995 году, то есть четверть века назад и за 21 год до рождения WSL 1.

И самое замечательное, эта совместимость не ограничивается только Linux. На протяжении многих лет NetBSD поддерживала эмуляцию различных операционных систем. Поддержка SVR4 появилась в 1994 году, и в течение короткого периода времени NetBSD даже поддерживала… бинарные файлы PE/COFF — да, правильно, это бинарные файлы Win32! Таким образом, в некотором смысле NetBSD реализовала модель WSL 1 наоборот: она позволяла запускать бинарные файлы Win32 поверх ядра NetBSD ещё в 2002 году. Вот так вот.

На правах рекламы

VDSina предлагает VDS в аренду под любые задачи, огромный выбор операционных систем для автоматической установки, есть возможность установить любую ОС с собственного ISO, удобная панель управления собственной разработки и посуточная оплата тарифа, который вы можете создать индивидуально под свои задачи.


CSI Linux Investigator представляет собой сборку линукс-дистрибутивов, базирующихся на операционной системе Ubuntu, с предустановлеными пакетами специализированного программного обеспечения. Распространяется сборка в виде OVA-файла, который без проблем импортируется в Oracle VM Virtual Box.

Минимальные требования к аппаратному и программному обеспечению — 8 Гб RAM-памяти
— 70 Гб свободного места на диске
— 4-ядерный процессор
— Установленный Oracle VM Virtual Box

Данный linux-дистрибутив содержит программное обеспечение, необходимое для решения следующих задач:

  • OSINT
  • Digital Forensics
  • Incident Response
  • Malware Analysis

Структура и состав


CSI Linux Investigator содержит в себе три виртуальные машины:

CSI Linux Analyst — это «ядро» данного дистрибутива. Представляет собой виртуальную машину ubuntu-дистрибутива с большим количеством предустановленного программного обеспечения, сгруппированного по категориям:

  • OSINT/Online Investigations
  • Secure Comms
  • Encryption
  • Dark Web
  • Incident Response
  • Computer Forensics
  • Mobile Forensics
  • CSI Tools


CSI Linux Gateway представляет собой пользовательский шлюз TOR, работающий в «песочнице», с использованием таких утилит как Apparmor, Jailbreak и Shorewall Firewall.

Как вы уже догадались данная виртуальная машина призвана повысить уровень анонимности и приватности при использовании дистрибутива CSI Linux Analyst.
При использовании связки CSI Linux Analyst + CSI Linux Gateway весь траффик будет пропускаться через ноду TOR.


CSI Linux SIEM еще одна виртуальная машина, входящая в состав рассматриваемого дистрибутива CSI Linux Investigator. По факту представляет собой ubuntu-дистрибутив, содержащий в себе настроенный Zeek IDS и ELK Stack (elasticsearch, logstash и kibana).
Может использоваться как IDS для защиты других виртуальных машин (CSI Linux Analyst и CSI Linux Gateway), так и для работы с логами и выводом даннных на дашборды в CSI Linux Analyst.

Личное мнение и полезные ссылки

Обзорную статью на CSI Linux Investigator хотел бы завершить личным мнением и дать пару советов по работе с данным дистрибутивом.

Сборка CSI Linux Investigator не первая в своем роде, у нее есть свои плюсы и минусы.
В данном дистрибутиве мне понравилось разделение виртуальных машин на три составляющие — непосредственно дистрибутив, шлюз TOR и SIEM-сборку.

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

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

CSI Linux Analyst получился комбинированной версией дистрибутивов SIFT, Buscador и Caine.

CSI Linux SIEM по целям и задачам схож с Security Onion, а CSI Linux Gateway с Whonix Gateway.


В начале этого года вышел в свет очередной линукс-дистрибутив для проведения кибер-расследований и OSINT под именем CSI Linux Investigator.

Краткое описание


CSI Linux Investigator представляет собой сборку линукс-дистрибутивов, базирующихся на операционной системе Ubuntu, с предустановлеными пакетами специализированного программного обеспечения. Распространяется сборка в виде OVA-файла, который без проблем импортируется в Oracle VM Virtual Box.

Минимальные требования к аппаратному и программному обеспечению

— 8 Гб RAM-памяти
— 70 Гб свободного места на диске
— 4-ядерный процессор
— Установленный Oracle VM Virtual Box

Данный linux-дистрибутив содержит программное обеспечение, необходимое для решения следующих задач:
— OSINT
— Digital Forensics
— Incident Response
— Malware Analysis
Загрузить дистрибутив можно по ссылке с официального сайта. Там же размещены обзорные гайды и мануалы по работе с дистрибутивом.

Структура и состав


CSI Linux Investigator содержит в себе три виртуальные машины:


CSI Linux Analyst — это «ядро» данного дистрибутива. Представляет собой виртуальную машину ubuntu-дистрибутива с большим количеством предустановленного программного обеспечения, сгруппированного по категориям:
— OSINT/Online Investigations
— Secure Comms
— Encryption
— Dark Web
— Incident Response
— Computer Forensics
— Mobile Forensics
— CSI Tools
Подробный перечень установленного софта приведен на странице оф. сайта Tools List.


CSI Linux Gateway представляет собой пользовательский шлюз TOR, работающий в «песочнице», с использованием таких утилит как Apparmor, Jailbreak и Shorewall Firewall.

Как вы уже догадались данная виртуальная машина призвана повысить уровень анонимности и приватности при использовании дистрибутива CSI Linux Analyst.
При использовании связки CSI Linux Analyst + CSI Linux Gateway весь траффик будет пропускаться через ноду TOR.


CSI Linux SIEM еще одна виртуальная машина, входящая в состав рассматриваемого дистрибутива CSI Linux Investigator. По факту представляет собой ubuntu-дистрибутив, содержащий в себе настроенный Zeek IDS и ELK Stack (elasticsearch, logstash и kibana).
Может использоваться как IDS для защиты других виртуальных машин (CSI Linux Analyst и CSI Linux Gateway), так и для работы с логами и выводом даннных на дашборды в CSI Linux Analyst.

Личное мнение и полезные ссылки


Обзорную статью на CSI Linux Investigator хотел бы завершить личным мнением и дать пару советов по работе с данным дистрибутивом.
Сборка CSI Linux Investigator не первая в своем роде, у нее есть свои плюсы и минусы.
В данном дистрибутиве мне понравилось разделение виртуальных машин на три составляющие — непосредственно дистрибутив, шлюз TOR и SIEM-сборку.
С точки зрения наполнения сборки софтом — мнение двойственное, с одной стороны есть все необходимое, с другой стороны — много лишнего программного обеспечения, которое пагубно влияет на размер дистрибутива.
Если проводить аналогии с другими дистрибутивами под данные цели, то получается следующее:
CSI Linux Analyst получился комбинированной версией дистрибутивов SIFT, Buscador и Caine.
CSI Linux SIEM по целям и задачам схож с Security Onion, а CSI Linux Gateway с Whonix Gateway.

Читайте также: