OSINT с OWASP Maryam
Всем салют, дорогие друзья!
Сегодня речь пойдёт штуке под названием Maryam. Это целый фреймворк в который напихано огромное количество всяких поисковых, и не только, инструментов под всякие разные задачи. Другими словами это такая охренительно крутая штука, которая позволяет прямо из терминала объять не объятное и впихнуть невпихуемое. Короче, решает огромное количество задач. При чем, полезна она будет, не только для OSINT, но и в некоторых вопросах пентеста будет очень не лишней, особенно на подготовительных этапах.
https://github.com/saeeddhqan/Maryam
git clone https://github.com/saeeddhqan/maryam.git cd maryam pip3 install -r requirements python3 setup.py install maryam
Сразу после запуска, нас встретит приглашение к вводу. Для начала, можно командой help вызвать справку, правда она тут, скажем так, довольно скромная, но также есть дополнительные справки по всем инструментам. Но о них в процессе.
Принцип работы Maryam довольно прост. У него есть некоторое количество модулей, разбитых по трем категориям. Каждый модуль выполняет какое-то отдельное действие. Для запуска нам нужно выбрать модуль, передать ему нужные параметры и запустить процесс.
У Maryam есть одна приятная и полезная штука. Это рабочие пространства. Между ними можно переключаться, а значит можно одновременно работать с несколькими объектами и быстро переключаться между ними. По умолчанию создаётся рабочее пространство «default». Если планируется работать с одним объектом, то можно так и оставить.
Чтобы добавить ещё одно рабочее пространство пишем:
workspaces add имя
После выполнения команды нас автоматом перекинет в созданное рабочее пространство. Все созданные пространства сохранятся и после закрытия программы. Чтобы переключатся между ними водим команду:
workspaces select имя
Чтобы увидеть список всех созданных пространств пишем:
workspaces list
Я думаю с пространствами все очень понятно, а потому идем дальше.
Модули Maryam
А дальше у нас модули. Т.е. самое главное. Если ввести команду:
show modules
мы увидим список доступных для использования модулей. Они разделены на три категории. Чтобы увидеть справку по какому-то конкретному модулю нужно ввести его название и добавить -h.
Теперь про категории модулей и более подробно про сами модули.
Footprint
Первый раздел это Footprint. Здесь собраны модули для сбора и анализа информации о веб-приложениях. Можно искать файлы, папки, поддомены, определять операционные системы, собирать информацию на страницах (формы, почты, ники и т.д.).
По этим модулям пройдемся более подробно.
tldbrute — из названия можно предположить что оно брутит TLD целевого домена. И оно его реально брутит. Т.е. позволяет найти одинаковые домены.
Справка
TLD он же «домен верхнего уровня» — самый высокий уровень в иерархии системы доменных имён. Является начальной точкой отсчёта, с которой начинается доменное имя. Т.е. для hackerplace.org вот это самое ORG и будет TLD
Для запуска модуля вводим его название, и через параметр -d передаем целевой домен. В таком случае мы будем видеть в реальном времени как происходит перебор и сразу же будут выводится результаты. Если хотим получить ответ в формате JSON добавляем —api. Чтобы ответ был более удобочитаемый (каждый результат на отдельной строчке) добавляем —format. Если хотим чтобы нам ещё и IP адреса показало, добавляем параметр -i.
Словарь у Maryam есть свой, причем его более чем достаточно, но если, зачем-то, хочется использовать другой его можно добавить через параметр -w. Ну а если к результату нужно будет вернуться позже, добавляем —output и он будет сохранен в текущее рабочее пространство. ( —output, —api и —format актуально для всех модулей, потому писать про них больше не буду, просто помним что это работает всегда)
tldbrute -d google.ru -i
wapps — модуль для определения приложений работающих на целевом сайте. Вводим название модуля и через параметр -d передаём нужный домен. Довольно быстро получаем ответ что там работает и что используется.
wapps -d адрес сайта
entry_points — модуль для поиска точек входа. Ищет всякие формы, адреса с параметрами и так далее. Точно также указываем домен через -d.
entry_points -d no-jus.com
interest_files — ищет интересные файлы. Что именно для нас интересно можно регулировать. При вызове справки по модулю (-h) будет показан список чего можно искать и какие параметры для этого вводить. Так, например, если мы хотим поискать логи и админку сайта, то соответственно добавляем —logs и —admin.
interest_files -d адрес сайта --logs --admin
dnsbrute — опять же из название понятно что делает модуль. Т.е. брутит DNS, т.е. ищет поддомены. Как и в остальных случаях через -d указываем домен. Если хотим видеть ip адреса добавляем -i.
dnsbrute -d адрес сайта
Filebrute — ищет файлы и каталоги. Указываем домен, остальные параметры, как правило менять не нужно. Но возможно иногда возникнет необходимость использовать свой словарь (параметр -w) или отфильтровать по коду статуса, тогда используем параметр -s и указываем код статуса.
filebrute -d no-jus.com
crawl_pages — инструмент для поиска на сайте в целом или на какой-то странице в частности. Чтобы запустить поиск нужно указать домен (-d), затем ввести параметр -r и указать что именно искать. При этом можно использовать регулярные выражения.
crawl_pages -d адрес сайта -r что ищем
Search
Следующий раздел — это Search. Тут собраны модули для работы с социальными сетями и поисковыми системами. Каждый модуль соответствует социальной сети и поисковику. Описывать все никакого смысла нет. Логика использования у всех одинаковая. Чтобы запустить поиск выбираем необходимый модуль и через параметр -q указываем что именно искать. Используя параметр -h можно посмотреть доступные дополнительные опции. Там, как правило, можно задать диапазон по датам, изменить поисковый движок и количество выводимых результатов, либо изменить параметры поиска свойственные какому-то конкретному ресурсу.
Например, упоминание никнейма на ютуб:
youtube -q никнейм -c 10 --output
Сохранение результатов
Очень полезной фичей такого поиска есть возможность сохранять результаты в файл. Ты наверняка обратил внимание, что к предыдущей команде я добавил параметр —output. И ты наверняка помнишь, что в начале я писал о том что этот параметр сохраняет результаты в текущее рабочее пространство. Так вот потом эти результаты можно пересохранить в файл. Делает это команда report. Если ввести её без параметров то мы увидим правила создания отчетов.
Тут все достаточно просто. Вначале вводим саму команду report, потом формат в котором хотим получить отчет (поддерживаются форматы xml, json, csv и txt), имя файла которое хотим, затем указываем модуль, причем тут нужно указать раздел модулей, а потом через /, сам модуль, а в конце пишем какой именно запрос сохранять. Пример:
report txt youtube search/youtube Никнейм
в этом запросе я указал сохранить отчет по результатам работы модуля search/youtube, по запросу Никнейм, в файл youtube.txt.
Если все указали правильно, получаем ответ, что соответствующий отчет сохранён. Ну и путь к отчету. Как видишь штука крайне полезная и кстати это работает со всеми модулями из всех категорий.
Osint
Следующий раздел — это Osint. Как бы логично это не прозвучало, но здесь собраны всякие осинтерские штуки. Такие как поиск социальных сетей, файлов, никнеймов и прочего.
- reddit_search — поиск по Reddit. Находит соответствующие посты и темы. Выдаст дату публикации, кто опубликовал и когда. Для запуска указывает (-q) нужный запрос. Если нужно сортируем выдачу (-s) по популярности, новизне и т.д. Параметр -l задает сколько результатов нам будет показано (по умолчанию 15)
- crawler — сканирует сайт чтобы найти ссылки, почты, телефоны, комментарии, всякие CSS файлы, и кучу всего другого что может быть интересным. Для запуска просто указываем домен -d.
- username_search — поиск по имени пользователя. Ищет по более чем 100 ресурсам. Для запуска указываем нужное имя после параметра —q
- cve_search — ищет эксплойты и уязвимости
- social_nets — поиск социальных сетей по никнейму
- article_search — ищет всякие научные статьи
- dark_web_crawler — сканер Dark Web. Для его работы должен быть установлен Тор.
- phone_number_search — ищет телефон по ENUM т.е. показывает страну, оператора, локальный и международный формат номера.
- tweet_search — ищет твиты в Твитере
- onion_search — поисковая система для сети Тор (для работы должен быть установлен тор)
- github_leaks — ищет запрос в GitHub и показывает какая информация могла утечь
- domain_reputation — проверяет репутацию целевого домена. Всякие блэклисты и прочее.
- email_pwned — проверяет адрес электронной почты по базам утечек. Также покажет где именно произошла утечка
- email_search — ищет электронные почты. Для запуска нужно указать целевой домен после параметра -q. Затем после параметра -e указать поисковую систему (или несколько).
Например: email_search -q no-jus.com -e google - bing_mobile_view — делает скриншот мобильной версии сайта через Bing mobile friendly view
- cloud_storage — ищет файлы в общем доступе по онлайн-хранилищам GoogleDrive, OneDrive, Dropbox, Amazon
- dns_search — ищет поддомены через поисковые системы
- famous_person — ищет по имени и/или фамилии в Google, Wikipedia, Wikileaks и Twitter
- suggest — на основе исходного запроса генерирует варианты ключевых слов для использования в поисковых системах
- docs_search — ищет документы в поисковых системах. Нужно указывать в каком формате нужны документы (-f pdf,doc,docx, xls и т.д.). Можно ограничить поиск каким-то конкретным сайтом, указав его после -s, во всех остальных случаях нужно указывать поисковую систему после параметра -e.
В принципе, на этом наше знакомство с таким инструментом для сбора информации и OSINT, как Maryam можно считать оконченным. Пользоваться им или нет, это уже решать тебе. Но, в любом случае не забывай возвращаться, ведь есть ещё огромное количество всяких штуковин про которые нам предстоит узнать.
На этом у нас все. Спасибо за внимание!