CSI Linux. Полное руководство по OSINT. Часть 1. Domain Tools

Привет, друг. Ты наверняка знаешь, что в начале 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.

Содержание:

  1. CSI Domain Search Tools
  2. DNSRecon
  3. GetLinks
  4. GoBuster
  5. Sublist3r
  6. theHarvester

CSI Domain Search Tools

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

CSI Linux Domain Search Tools

DNSRecon

https://github.com/darkoperator/dnsrecon

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

Запуск: dnsrecon
Опции:
-h, --help Показать это сообщение и выйти.
-d, --domain Целевой домен.
-r, --range IP диапазон для перебора обратным поиском в форматах (первый-последний) или в (диапазон / битовая маска).
-n, --name_server Доменный сервер для использования. Если ничего не указано, будет использоваться SOA цели. Несколько серверов могут быть указаны с помощью списка через запятую.
-D, --dictionary Файл словаря поддоменов и имен хостов, используемых для перебора.
-f Отфильтровывать поиск при переборе доменов, по записям которые разрешаются по определенному IP-адресу при сохранении записей
-t, --type Тип перечисления для выполнения (через запятую):
       std SOA, NS, A, AAAA, MX and SRV.
       rvl Обратный поиск заданного диапазона CIDR или IP.
       brt Перебор доменов или хостов используя имеющийся словарь
       srv SRV записи.
       axfr Проверить все NS сервера для передачи зоны.
       goo Выполнить поиск Google для поддоменов и хостов.
       bing Выполнить поиск Bing для поддоменов и хостов.
       crt Выполнить поиск crt.sh для поддоменов и хостов.
       snoop Выполните отслеживание кэша для всех NS-серверов для данного домена, протестировав все с файлом, содержащим домены, с параметром -D.
       tld Удалить TLD данного домена и проверить все TLD, зарегистрированные в IANA.
       zonewalk Выполнить обход зоны DNSSEC, используя записи NSEC.
-a Выполнить AXFR со стандартным перечислением.
-s Выполнить обратный поиск диапазонов IPv4 в записи SPF со стандартным перечислением.
-g Выполнить перечисление Google со стандартным перечислением.
-b Выполнить перечисление Bing со стандартным перечислением.
-k Выполнить перечисление crt.sh со стандартным перечислением.
-w Выполните глубокий анализ записей whois и обратный поиск диапазонов IP-адресов, найденных через Whois, при выполнении стандартного перечисления.
-z Выполняет обход зоны DNSSEC со стандартным перечислением.
--threads количество потоков, используемых в обратном поиске, прямом поиске, переборе и перечислении SRV записей
--tcp Принудительно использовать протокол TCP при выполнении DNS-запросов.
--lifetime Время ожидания ответа сервера на запрос..
--db Файл SQLite 3 для сохранения найденных записей.
--xml XML файл для сохранения найденных записей.
--iw продолжить перебор домена, даже если wildcard запись найдена
--disable_check_recursion Отключает проверку на рекурсию на серверах имен.
--disable_check_bindversion Отключает проверку версии BIND на серверах имен.
-c, --csv Файл значений через запятую
-j, --json JSON файл.
-v Показывать попытки в режиме перебора.

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

dnsrecon -d hacker-basement.ru
DNSRecon

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

GetLinks

GetLinks – это утилита для сбора ссылок с целевого сайта, имеет всего три параметра для запуска:
-d – собрать ссылки на доменты
-i – собрать только внутренние ссылки
-x – собрать только внешние ссылки

/opt/csitools/getlinks -d hacker-basement.ru
GetLinks

GoBuster

https://github.com/OJ/gobuster

GoBuster – это инструмента для брута, который имеет три режима:
dir – брут каталогов и файлов на целевом сайте
dns – перебор поддоменов
vhost – перебор имен виртуальных хостов на сайте

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

gobuster --help
Использование gobuster:
-P string
Пароль для базовой аутентификации (только в режиме dir)
-U string
Имя пользователя для базовой аутентификации (только в режиме dir)
-a string
Установить User-Agent (только в режиме dir)
-c string
Файлы cookie, используемые для запросов (только в режиме dir)
-cn Показывать записи CNAME (только в режиме dns, нельзя использовать с параметром -i)
-e Расширенный режим, показ полных URL
-f Добавить слэш к каждому запросу каталога (только в режиме dir)
-fw Принудительно продолжить работу при обнаружении символа подстановки
-i Показывать IP-адреса (только в режиме DNS)
-k Пропустить проверку SSL сертификата
-l Включить длину тела в вывод (только в режиме dir)
-m string
Режим каталога/файла (dir) или режим DNS (dns)(по умолчанию "dir")
-n Не показывать коды состояния
-np Не отображать прогресс
-o string
Выходной файл для записи результатов (по умолчанию это стандартный вывод)
-p string
Использовать прокси для запросов [http(s)://host:port] (только в режиме dir)
-q Не показывать баннер и другие помехи
-r следовать редиректам
-s string
Положительные коды состояния (только в режиме dir) (по умолчанию "200,204,301,302,307,403")
-t int
Количество одновременных потоков (по умолчанию 10)
-to duration
Тайм-аут HTTP в секундах (только в режиме dir) (по умолчанию 10с)
-u string
Целевой URL или домен
-v Подробный вывод (ошибки)
-w string
Путь к словарю
-x string
Расширение файла (ов) для поиска (только в режиме dir)

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

gobuster -u https://hacker-basement.ru -w /opt/amass/examples/wordlists/all.txt
GoBuster

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

gobuster -m dns -u hacker-basement.ru -w /opt/amass/examples/wordlists/fierce_hostlist.txt
GoBuster

Sublist3r

https://github.com/aboul3la/Sublist3r

Sublist3r – это ещё один инструмент для перебора поддоменов сайта. Мажет искать поддомены как перебором так и задействовать возможности поисковых систем. Основной плюс в том, что он очень прост в использовании, при этом работает достаточно быстро.

использование: sublist3r.py [-h] -d DOMAIN [-b [BRUTEFORCE]] [-p PORTS] [-v [VERBOSE]]
[-t THREADS] [-e ENGINES] [-o OUTPUT] [-n]
ОПЦИИ:
-h, --help показать это справочное сообщение и выйти
-d DOMAIN, --domain DOMAIN
Доменное имя для перечисления его поддоменов
-b [BRUTEFORCE], --bruteforce [BRUTEFORCE]
Включить модуль для брутфорса
-p PORTS, --ports PORTS
Сканирование найденных поддоменов по указанным портам TCP
-v [VERBOSE], --verbose [VERBOSE]
Включить вербальность и отображать результаты в режиме реального времени
-t THREADS, --threads THREADS
Количество потоков, которые нужно использовать для брутфорса
-e ENGINES, --engines ENGINES
Укажите список поисковых систем через запятую
-o OUTPUT, --output OUTPUT
Сохранить результаты в текстовый файл
-n, --no-color Вывод без цвета
Пример: python /opt/Sublist3r/sublist3r.py -d google.com

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

python /opt/Sublist3r/sublist3r.py -d hacker-basement.ru
Sublist3r

theHarvester

https://github.com/laramies/theHarvester

theHarvester – это утилита для сбора информации о домене или компании из открытых источников. Умеет собирать электронную почту, имена сотрудников, поддомены. В файле /opt/theHarvester/api-keys.yaml можно добавить свои API. Они нужны для работы с Bing, GitHub, Hunter, Intelx, SecurityTrails, Shodan, Spyse.

использование: theHarvester.py [-h] -d DOMAIN [-l LIMIT] [-S START] [-g] [-p] [-s]
               [-v] [-e DNS_SERVER] [-t DNS_TLD] [-n] [-c]
               [-f FILENAME] [-b SOURCE]

опции:
-h, --help показать это справочное сообщение и выйти
-d DOMAIN, --domain DOMAIN
название компании или домен для поиска
-l LIMIT, --limit LIMIT
ограничить количество результатов поиска, по умолчанию = 500
-S START, --start START
начать с результата номер X, по умолчанию = 0
-g, --google-dork использовать Google Dorks для поиска Google
-p, --port-scan сканирование обнаруженных хостов и проверка на активность (21,22,80,443,8080)
-s, --shodan использовать Shodan для запросов к обнаруженным хостам
-v, --virtual-host проверьте имя хоста с помощью разрешения DNS и найти виртуальные хосты
-e DNS_SERVER, --dns-server DNS_SERVER
DNS-сервер для поиска
-t DNS_TLD, --dns-tld DNS_TLD
выполнить обнаружение расширения DNS TLD, по умолчанию False
-n, --dns-lookup включить поиск DNS-сервера, по умолчанию False
-c, --dns-brute выполнить перебор DNS на домене
-f FILENAME, --filename FILENAME
сохранить результаты в файл HTML и/или XML
-b SOURCE, --source SOURCE
baidu, bing, bingapi, certspotter, crtsh, dnsdumpster,
dogpile, duckduckgo, github-code, google, hunter,
intelx, linkedin, linkedin_links, netcraft, otx,
securityTrails, spyse(disabled for now), threatcrowd,
trello, twitter, vhost, virustotal, yahoo, all

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

./theHarvester.py -d hacker-basement.ru -b google -c -f jus.html
theHarvester CSI Linux

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

Твой Pulse.