Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
Инструменты/GitHubGitHub/netlas-io/netlas-cookbook
OSINT (Разведка открытых источников)РазведкаБезопасность IoTАнализ уязвимостейСбор информацииВеб-безопасностьЦифровая криминалистикаТестирование на ПроникновениеРазведка угрозОбучение и ОбразованиеПодобранные РесурсыУчебные Маршруты и Курсы
8881051 год назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
netlas-cookbook — Цель этого руководства очень проста — научить любого, кто интересуется кибербезопасностью, независимо от уровня его знаний, максимально эффективно использовать Netlas.io. | Kitploit
GitHubnetlas-io/netlas-cookbook

netlas-cookbook

Цель этого руководства очень проста — научить любого, кто интересуется кибербезопасностью, независимо от уровня его знаний, максимально эффективно использовать Netlas.io.

Репозиторий

Netlas CookBook

GitHub stars GitHub forks


Цель этого руководства — научить любого, кто интересуется кибербезопасностью, независимо от уровня его знаний, максимально эффективно использовать Netlas Search Tools. Это длинное чтение. Мы собрали как можно больше простых примеров использования и показали, как их автоматизировать.

⭐️ Поставьте нам звезду, чтобы выразить свою признательность
👁️ Подпишитесь на обновления

Netlas — это поисковая система, предназначенная для поиска и анализа информации обо всех IP-адресах и доменах, доступных в Интернете. Netlas имеет некоторые функции управления поверхностью атаки, но это руководство в основном посвящено Netlas Search Tools и тому, как использовать их в автоматизациях.

Содержание

  • Простые примеры использования
    • Получение информации об IP или домене
    • Поиск доменов, не использующих латиницу
    • Поиск веб-сайтов, содержащих определенное слово в заголовке
  • Синтаксис поискового запроса
    • Фильтры (поля)
    • Логические операторы
    • Диапазоны
    • Подстановочные знаки
    • Нечеткий поиск
    • Регулярные выражения
    • Другие возможности поиска в Netlas.io
  • API-запросы
    • Как найти API-ключ?
    • Инструменты для отладки API-запросов
    • Структура JSON-ответа API Netlas
    • Инструменты для работы с данными в формате JSON
    • Библиотека Netlas для Python
    • Примеры ключей ответа для получения полезных данных
    • Типы данных ответа Netlas Python
    • Инструменты командной строки Netlas
    • Методы Search vs Download vs Host
    • Дополнительные параметры запроса
    • Выполнение запросов с помощью Python (без использования библиотеки Netlas Python)
    • Примеры для других языков программирования
    • Утилита JQ
    • Инструменты ИИ для написания кода
    • Проверка кода
  • Использование Netlas.io для OSINT (разведка по открытым источникам)
    • Поиск ника или email человека в контактах WHOIS
    • Поиск ника или email человека в заголовке и теле веб-страницы
    • Поиск «файлов с ценной информацией» на поддоменах сайта компании
    • Поиск упоминаний номеров телефонов
    • Поиск упоминаний файлов (поиск контента, который может нарушать авторские права)
    • Сбор WHOIS-информации о домене
    • Поиск местоположения в теге <address>
    • Поиск имени автора в мета-тегах
    • Что еще интересного можно найти в мета-тегах HTML-документа?
    • Поиск по тексту баннеров FTP-серверов
    • Поиск контактной информации в SSL-сертификатах
    • Использование Netlas как альтернативы Wayback Machine
    • 9 способов поиска связанных веб-сайтов
  • Парсинг (извлечение данных из тела веб-страницы)
    • Пакет BeautifulSoup
    • Пакет Re
    • Другие пакеты Python для парсинга
  • Использование Netlas.io для крипто-расследований
    • Поиск майнинговых ферм
    • Поиск веб-сайтов, зараженных криптомайнерами
    • Поиск уязвимых узлов Bitcoin
  • Использование Netlas для пентеста
    • Поиск поддоменов
    • Поиск сайтов с определенными уязвимостями
    • Поиск сайтов с уязвимостями, содержащими определенное слово в описании
    • Поиск по HTTP-заголовку Server
    • Поиск уязвимых серверов по хешу фавикона
    • Поиск уязвимых серверов по имени тега
    • Поиск уязвимых серверов и устройств рядом с вами (или в любом другом месте)
    • Поиск панелей входа/администрирования
    • Поиск уязвимых панелей управления базами данных
    • Поиск сайтов, уязвимых для SQL-инъекций
  • Поиск устройств Интернета вещей (IoT): 9 основных способов
    • Поиск по заголовку
    • Поиск внутри тела
    • Поиск по номеру порта
    • Поиск по баннеру
    • Поиск по фавикону
    • Поиск по заголовкам сервера
    • Поиск по кукам
    • Поиск по тегу
    • Дополнительные фильтры поиска
  • Использование Netlas.io для исследования даркнета
    • Поиск выходных узлов Tor
    • Сбор ссылок на .onion-сайты
  • Поиск каталогов файлов, резервных копий и журналов
  • Использование Netlas.io для цифровой криминалистики и реагирования на инциденты
    • Сбор информации о SMTP-серверах
    • Поиск доменов, которые потенциально могут быть использованы для фишинга
    • Поиск по фавикону
    • Поиск доменов, связанных с определенной подсетью
    • Поиск серверов с вредоносным ПО
  • Поиск технологий и примеров кода
  • Использование Netlas.io для развлечения или нетсталкинга
  • Распространенные проблемы
    • Ошибка 429 — слишком частые запросы
    • KeyError
    • Автоматизация работы со списком запросов
    • Сохранение данных в формате CSV
    • Сохранение данных в других форматах
    • Декодирование доменов в Punycode
    • Что делать, если поисковые запросы не возвращают результаты?
    • Удаление HTML-тегов из тела HTTP
  • Управление поверхностью атаки
  • Работа с очень большими объемами данных
  • Благодарности

Простые примеры использования

Netlas включает несколько инструментов поиска:

  • Информация об IP/домене →
  • Поиск ответов →
  • Поиск DNS →
  • Поиск IP WHOIS →
  • Поиск WHOIS доменов →
  • Поиск сертификатов →

В основном мы будем использовать поиск ответов (результаты сканирования интернета), но все инструменты работают одинаково. Если вы поймете, как использовать инструмент поиска ответов, вы сможете работать с любым другим.

Прежде чем углубиться в технические детали, давайте посмотрим, как работает Netlas.io, на нескольких простых примерах.

Получение информации об IP или домене

Domain information gathering

Откройте Netlas.io IP/Domain info и введите доменное имя или IP. В результате будет отображена следующая информация:

  • данные whois (регистрант, местоположение, email, телефоны)
  • связанные домены
  • MX и NS записи
  • открытые порты и программное обеспечение (иногда дополнительно отображается информация об уязвимостях)

Поиск доменов, не использующих латиницу

Punycode convert

Если вам нужно найти китайские или другие интернационализированные доменные имена, преобразуйте их в Punycode. Например:``` domain:*.xn--fiqs8s

root@kitploit:~
Это можно сделать с помощью специальных онлайн-инструментов. Например — [Charset.org](https://www.charset.org/punycode)

### Поиск веб-сайтов, содержащих определенное слово в заголовке

![Search by http title](https://assets.kitploit.com/production/public/readmes/6659/9da0445843c6567eefba0f415852126719123c24992f7b85d1e2eee96110d64e.png)

Откройте [поиск ответов Netlas.io](https://app.netlas.io/responses/) и введите:```
http.title:g*thub

Try in Netlas

Это найдет все серверы, в HTTP-заголовках которых содержится слово, начинающееся на "g" и заканчивающееся на "thub". Подробнее об использовании звездочек читайте ниже.

Синтаксис поисковых запросов

Теперь давайте подробнее узнаем, как работают поисковые запросы в Netlas.io.

Netlas.io основан на Elasticsearch — бесплатной, открытой, распределенной RESTful поисковой системе. Методы поиска в Netlas.io очень похожи на методы других баз данных на основе Elasticsearch.

Фильтры (поля)

Search filters

Поиск по Response, DNS, IP и Certificates позволяет использовать фильтры (поля) в поисковых запросах. Например:``` http.body:netlas

root@kitploit:~
[Попробовать в Netlas](https://app.netlas.io/responses/?q=http.body%3Anetlas&page=1&indices=)

Вы можете использовать этот запрос, чтобы найти страницы, содержащие слово "netlas" внутри тега <body>.

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

![Изображение сопоставления фильтров](https://assets.kitploit.com/production/public/readmes/6659/00c8d6c829ff1de74f4fbdc26df13f8db07114a5830d9f6a8d9ad0011e817045.png)

Фильтры позволяют искать серверы по множеству различных параметров. Например:

* `domain`
* `ip`
* `protocol`
* `certificate`
* `cve`
* `geolocation` (`city`, `continent`, `country`)

и многие другие.

### Логические операторы

Вы можете использовать несколько фильтров в одном запросе и комбинировать их с помощью логических операторов `AND`, `OR`, `NOT`. Например:```
http.title:netlas NOT port:443

Попробовать в Netlas

Если вы хотите объединить несколько условий в вашем запросе, используйте круглые скобки:``` http.title:(netlas OR shodan) NOT port:443

root@kitploit:~
[Попробовать в Netlas](https://nt.ls/OrFOY)


### Диапазоны

Если вы используете числовое значение в качестве значения поля, вы можете указать его как значение от и до (крайние пределы диапазона значений):```
ip:[173.194.222.0 TO 173.194.222.255] 

Попробовать в Netlas

Или укажите только верхнюю или только нижнюю границу значения:``` host:"1.1.1.1" port:<=1000

root@kitploit:~
[Try in Netlas](https://app.netlas.io/responses/?q=host%3A%221.1.1.1%22%20port%3A%3C%3D1000&page=1&indices=)

### Подстановочные знаки

Если вы не знаете точного описания определённого символа в вашем запросе (например, вы не знаете точной зоны для домена или написания имени), вы можете заменить его звёздочкой:```
domain:google.*

Попробовать в Netlas

Вы также можете использовать вопросительный знак:``` domain:google.?

root@kitploit:~
[Попробовать в Netlas](https://app.netlas.io/responses/?q=domain%3Agoogle.%3F&page=1&indices=)

`*` — много символов, `?` — один символ.

Также можно использовать звёздочки в фильтрах. Например:

```bash
$ cat hosts.txt | filter-resolved

*.banner:database

root@kitploit:~
Этот запрос выполняет поиск по всем типам баннеров одновременно и заменяет несколько фильтров: `amqp.banner:`, `ftp.banner:`, `dns.banner:`, `telnet.banner:`, и т.д.


### Нечёткость

![Нечёткость](https://assets.kitploit.com/production/public/readmes/6659/dc5ab764ecb863a73372730a8de370a6a92080ac4ddd4e6bae6de08bedcf5f5e.png)

Если вам нужно выполнить поиск не по точному, а по приблизительному значению поля (например, страницы, заголовки которых содержат все имена, созвучные Joseph), просто добавьте `~` в запрос:```
http.title:Joseph~

Try in Netlas

Регулярные выражения

Регулярное выражение — это последовательность символов, позволяющая искать, извлекать и заменять фрагменты текста в исходном документе, соответствующие определённым шаблонам. Например:

  • Любой адрес электронной почты: ```text ([a-zA-Z0–9+.-]+@[a-zA-Z0–9.-]+.[a-zA-Z0–9_-]+)
    root@kitploit:~
  • Любой HTML-тег: ```text <.*?>
    root@kitploit:~
  • Любой номер телефона: ```text ^[+]?[(]?[0-9]{3}[)]?[-\s.]?[0-9]{3}[-\s.]?[0-9]{4,6}$
    root@kitploit:~
  • Любой биткоин-адрес: ```text ^[13][a-km-zA-HJ-NP-Z1-9]{25,34}$
    root@kitploit:~

Для получения дополнительной информации об использовании регулярных выражений см. примеры в Netlas Cookbook (то, что вы сейчас читаете) и ссылки ниже:

Руководство по синтаксису регулярных выражений в документации Elasticsearch

Как регулярные выражения могут быть полезны в OSINT. Теория и немного практики с использованием Google Sheets

Другие функции поиска Netlas.io

Скачать результаты

Download results

Вы можете сохранить свои результаты (все или выбранные поля) в формате JSON и CSV, чтобы просматривать их в удобном для вас виде или автоматически анализировать с помощью различных инструментов.

Группировать результаты

Group results

Вы можете группировать результаты по значениям различных полей, чтобы ускорить поиск. Например, по доменному имени или геолокации.

Поделиться результатами

Share results

Вы можете свободно делиться ссылками на результаты поиска (для открытия не требуется регистрация, если пользователь не превысил бесплатный лимит в 50 запросов).

История поиска

Request history

Также помните, что все сделанные вами запросы можно просмотреть на странице вашего профиля (ссылка в правом верхнем углу).

Запросы API

Самая важная функция Netlas.io — помогать людям проводить исследования в области кибербезопасности быстрее и эффективнее. Сервис имеет API (интерфейс прикладного программирования), который позволяет автоматизировать выполнение различных запросов.

Его можно реализовать как в простых скриптах на Python или Bash длиной в несколько строк, так и в сложных многофункциональных приложениях.

Вы можете узнать больше об использовании API Netlas в Netlas Cookbook (то, что вы сейчас читаете) или в официальной документации:

Документация API →

Как найти API-ключ?

Это самое первое, с чего стоит начать работу с API. Вам даже не нужно платить за подписку (50 запросов в день предоставляются бесплатно). Просто перейдите на страницу профиля.

Profile page

Инструменты для отладки API-запросов

Вам не нужно писать скрипты или создавать приложения, чтобы начать использовать API Netlas. Вы можете просто протестировать его с помощью вашего любимого API-клиента. См. инструкции здесь.

Структура JSON-ответа API Netlas

JSON API response

Как и в других API, ответ API Netlas состоит из заголовков и тела ответа в формате JSON (JavaScript Object Notation). JSON-файлы содержат данные в формате «ключ-значение» и могут быть проанализированы практически на любом языке программирования.

Если вы используете Swagger, вы можете скопировать или скачать тело ответа и просмотреть его в любом текстовом редакторе или анализаторе JSON.

Инструменты для работы с данными в формате JSON

JSON Eveluator

Небольшой совет, который пригодится при написании кода с использованием API Netlas. Чтобы быстрее понять структуру JSON-файла и найти путь для получения определённого значения, используйте специальные инструменты, такие как:

  • JSON Path Online Evaluator
  • JSON Path Finder

Python-библиотека Netlas

Самый простой способ автоматизировать запросы к API Netlas — использовать специально разработанную библиотеку (пакет) Python.

Репозиторий библиотеки Netlas-Python на GitHub

Давайте посмотрим, как это работает, на простом примере. Все примеры кода из Netlas Cookbook находятся в папке scripts. Вы можете клонировать этот репозиторий и запускать их на своём устройстве:```shell git clone https://github.com/netlas-io/netlas-cookbook

root@kitploit:~
Если вы до сегодняшнего дня не запускали скрипты Python и не знаете, как это сделать, вы можете начать с открытия репозитория Netlas CookBook в Gitpod.
Gitpod — это облачная среда разработки на основе Ubuntu (дистрибутив Linux). Просто откройте эту ссылку в вашем браузере (войдите в свою учетную запись Github):

[Run Netlas Cookbook in Gitpod](https://gitpod.io#https://github.com/netlas-io/netlas-cookbook)

![Netlas Github](https://assets.kitploit.com/production/public/readmes/6659/20c7d3841932ff04a4f4dc7b9ca2ae667e23e9d0af7b034342bd7db6d7efccfe.png)

Установите библиотеку Netlas Python с помощью pip (менеджер пакетов для Python). Введите в командной строке:```shell
pip install netlas

Проверьте установку. Введите в командной строке:```shell netlas --help

root@kitploit:~
Запустите netlas_python_example.py:```shell
python3 scripts/netlas_python_example.py

И, конечно, вы можете просто скопировать код и сохранить в файлы. Вот код первого примера:```python import netlas

apikey = "YOUR API KEY"

create new connection to Netlas

netlas_connection = netlas.Netlas(api_key=apikey)

retrieve data from responses by query port:7001

netlas_query = netlas_connection.query(query="port:7001")

iterate over data and print: IP address, port, path and protocol

for response in netlas_query['items']: print(f"{response['data']['ip']}:{response['data']['port']}{response['data']['path']} [{response['data']['protocol']}]")

root@kitploit:~
### Примеры ключей ответа для получения полезных данных

Выше упоминалось, что для поиска JSON-патчей ответа API и получения нужных данных можно использовать специальные онлайн-приложения (JSON-оценщики). Чтобы сделать вашу жизнь еще проще, вот небольшой список примеров ключей ответа библиотеки Python, которые требуются чаще всего.```python
# Main domain/ip info
response['data']['uri']
response['data']['ip']
response['data']['http']['title']
response['data']['http']['meta']
response['data']['http']['body']

# Geo info
response['data']['geo']['continent']
response['data']['geo']['country']
response['data']['geo']['city']
response['data']['geo']['location']['lat']
response['data']['geo']['location']['long']

# Whois geo info
response['data']['whois']['net']['country']
response['data']['whois']['net']['address']
response['data']['whois']['net']['city']
response['data']['whois']['net']['contacts']['emails']
response['data']['whois']['net']['contacts']['phones']

# Http status and favicon ico info
response['data']['port']
response['data']['http']['status_code']
response['data']['http']['status_line']
response['data']['http']['favicon']['image']
response['data']['http']['favicon']['path']

# Basic CVE info
response['data']['cve'][0]['name']
response['data']['cve'][0]['description']
response['data']['cve'][0]['base_score']
response['data']['cve'][0]['has_exploit']
response['data']['cve'][0]['exploit_links']

Типы данных ответов Netlas Python

Типы данных Python Netlas

При работе с библиотекой Netlas Python очень важно правильно указать тип данных, которые вы хотите получить. По умолчанию возвращается тип response, и многие примеры Netlas CookBook используют его.

Но для некоторых задач, таких как получение информации whoois о домене или поиск доменов в подсети, необходимо использовать другой тип данных. Например:```python netlas_query = netlas_connection.query(query='a:"163.114.132.0/24"',datatype="domain")

root@kitploit:~
Если вы считаете, что какой-то запрос не возвращает результаты, хотя должен, — просто попробуйте изменить значение параметра **datatype**. Скорее всего, это поможет.

Доступные типы данных:

- **datatype="response"** соответствует результатам, которые можно получить в [Netlas Responses Search](https://app.netlas.io/responses/).
- **datatype="domain"** соответствует результатам, которые можно получить в [Netlas DNS search](https://app.netlas.io/domains/)
- **datatype="domain-whois"** соответствует результатам, которые можно получить в [Netlas Domain Whois Search](https://app.netlas.io/whois_domains/).
- **datatype="ip-whois"** соответствует результатам, которые можно получить в [Netlas IP Whois Search](https://app.netlas.io/whois_ip/).
- **datatype="cert"** соответствует результатам, которые можно получить в [Netlas Certificates Search](https://app.netlas.io/certs/).


### Netlas CLI Tools

![Netlas CLI Tools](https://assets.kitploit.com/production/public/readmes/6659/88c2402f9da5a3ece87a4459de9b967691428d60df86f828d83722c50bde9d44.png)

Вы также можете использовать библиотеку Netlas Python непосредственно из командной строки. Например:```bash
netlas search "http.title:johnsmith" -f json >results.json

This simple command searches for all servers that have the word johnsmith in their header, returns the results in JSON format, and stores the results in the resutls.json file.

All other features of the Netlas API can be used in the same way. You can learn more about this from the help (-h command) and examples in the Netlas Cookbook (what you are reading now).``` Usage: netlas [OPTIONS] COMMAND [ARGS]...

Options: -h, --help Show this message and exit.

Commands: count Calculate count of query results. download Download data. host Host (ip or domain) information. indices Get available data indices. profile Get user profile data. savekey Save API key to the local system. search (query) Search query. stat Get statistics for query.

root@kitploit:~
Перед запуском различных команд Netlas CLI Tools сохраните ключ API в настройках:```bash
netlas savekey YOUR_API_KEY

Мы также имеем Github-репозиторий с несколькими примерами автоматизации различных задач с помощью bash-скриптов и утилит командной строки Netlas:

Netlas Scripts

Методы Search, Download и Host: сравнение

Netlas API имеет множество методов, но наиболее часто используемыми являются методы search и download. Они очень похожи друг на друга, но всё же имеют некоторые различия.

Метод search загружает одну страницу результатов (20 элементов) за раз и позволяет загрузить максимум 200 страниц (20*200=4000 элементов). Метод download загружает все результаты (но требует больше ресурсов для выполнения).

Также существует метод host, который просто возвращает самую базовую информацию о конкретном домене или IP (тип данных (как и в других методах) указывать не нужно):```bash netlas host "51.159.153.170"

root@kitploit:~
### Дополнительные параметры запроса

API Netlas позволяет гибко настраивать данные, возвращаемые запросами, с помощью дополнительных параметров. Например:

* indices — идентификатор, соответствующий конкретной дате индексации. Чтобы узнать идентификатор для определённой даты, откройте app.netlas.io, нажмите на календарь справа от строки ввода поискового запроса, выберите интересующую вас дату и посмотрите, как меняется параметр indices в URL в адресной строке браузера.
* start — номер страницы результатов (по умолчанию 0)
* fields — имена полей, которые будут включены в результаты (по умолчанию все поля). Будет полезно для ускорения и оптимизации кода при большом количестве запросов.

### Выполнение запросов с помощью Python (без библиотеки Netlas Python)

В некоторых случаях вам может быть проще не использовать библиотеку Netlas Python, а применить стандартный пакет Python request, знакомый многим разработчикам:

Введите в командной строке:```bash
python scripts/python_example.py

Исходный код python_example.py:```python import requests

response = requests.get("https://app.netlas.io/api/domains/?q=ivanov.com&source_type=include&start=0&fields=*",{'X-API-Key': 'YOUR API KEY'})

print(response.json())

root@kitploit:~
Но библиотека Netlas Python по-прежнему предпочтительна, так как она предназначена для решения различных проблем с обработкой запросов (ошибки, длительные ожидания и т.д.).


### Примеры для других языков программирования

Хотя мы рекомендуем использовать нашу библиотеку Python для автоматизации поиска в Netlas, стоит отметить, что API Netlas можно встроить в большинство приложений с самыми разными технологическими стеками. Главное, чтобы они могли выполнять **REST-запросы** и **парсить JSON**.

Вот несколько примеров на разных популярных языках программирования.


#### NodeJS <!-- omit in toc -->

![Node JS Netlas](https://assets.kitploit.com/production/public/readmes/6659/b4dd5d1eb33fafddfe44c22062b6e7e9b4e1471123ef6410a9fc3a5a8bc34a78.png)

Введите в командной строке:```bash
node scripts/node_example.js

Если вы не используете Gitpod, у вас на устройстве должен быть установлен NodeJS.

Исходный код nodejs_example.js:```javascript fetch('https://app.netlas.io/api/domains/?q=ivanov.com&source_type=include&start=0&fields=*', { headers: { "X-API-Key": "YOUR_API_KEY", }, }) .then((response) => response.text()) .then((body) => { var jsonArray = JSON.parse(body); console.log(jsonArray['items'][0]); });

root@kitploit:~
#### Ruby <!-- omit in toc -->

![Ruby Netlas](https://assets.kitploit.com/production/public/readmes/6659/7237511c7ee0f39e270569af8b0ae12974684ad3087b8ea373a2df2719a03cdf.png)

Введите в командной строке:```bash
ruby scripts/ruby_example.rb

Если вы не используете Gitpod, на вашем устройстве должен быть установлен Ruby.

Исходный код ruby_example.rb:```ruby require 'net/http' require 'uri' require 'json'

uri = URI("https://app.netlas.io/api/domains/?q=ivanov.com&source_type=include&start=0&fields=*") req = Net::HTTP::Get.new(uri) req['X-API-Key'] = "YOUR_API_KEY"

res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == 'https') { |http| http.request(req) }

jsonArray = JSON.parse(res.body)

puts jsonArray['items'][0]['data']['domain']

root@kitploit:~
#### Bash <!-- omit in toc -->

![Bash Netlas](https://assets.kitploit.com/production/public/readmes/6659/c2f52fa6cb554433ae4b234636cd4b06702691d45b23a7d0e0ebc951ab3c6b06.png)

Введите в командной строке:```bash
bash scripts/bash_example.sh

Исходный код bash_example.sh:``` curl -X 'GET'
'https://app.netlas.io/api/domains/?q=ivanov.com&source_type=include&start=0&fields=*'
-H 'accept: application/json'
-H 'X-API-Key: YOUR_API_KEY' | jq .items[0].data.last_updated

root@kitploit:~
### Утилита JQ

Обратите внимание, что в приведённом выше примере для извлечения полей из JSON-данных использовалась утилита JQ.

Иногда её называют «как sed для JSON-данных». Это на удивление удобный инструмент для работы с любыми JSON-данными. Вот несколько примеров синтаксиса.

Вывести первый элемент JSON-массива:```
.items[0] 

Вывести все элементы JSON-массива:``` .items[]

root@kitploit:~
Вывести все подэлементы 'data' первого элемента JSON-array:```
.['items'][0]['data'][]

Вывести все под-подэлементы для каждого элемента JSON-массива:``` .items[].data.technical[]

root@kitploit:~
Вы можете узнать больше о JQ здесь (я рекомендую обратить особое внимание на фильтрацию данных): [Документация по утилите JQ](https://jqlang.github.io/jq/)


### Инструменты ИИ для написания кода

![You.com](https://assets.kitploit.com/production/public/readmes/6659/6d2992d2f27d7aeb930c9b970363604d510c46b2cda53cc2f87d25bb0ab757e7.png)

Если у вас возникнут проблемы при настройке примеров Netlas Cookbook, мы рекомендуем обратиться за помощью к инструментам ИИ для улучшения и написания кода. Например:

[ChatGPT](https://chatgpt.com)  
[Code Llama](https://huggingface.co/spaces/codellama/codellama-playground)  
[You.com](https://you.com/)  

При работе с такими сервисами вам просто нужно словами описать задачу, которую вы хотите решить с помощью кода.


### Проверка кода
![Python code check](https://assets.kitploit.com/production/public/readmes/6659/6622b278b508349c7921d1208ce2267fcc77090c17189613c87f690200a07119.png)

Когда вы переделываете примеры Netlas Cookbook для своих целей, вы можете обнаружить, что код не выполняется из-за некоторых ошибок. Специальные онлайн-инструменты помогут вам найти и исправить их:  

[ExtendsClass Python Tester](https://extendsclass.com/python-tester.html)
[Snyk](https://snyk.io/code-checker/python/)

Если вы не хотите копировать свой код в сторонние сервисы, вы можете проверить его на ошибки на своем устройстве с помощью Pylint (статический анализатор кода):

[Pylint Python Package](https://pypi.org/project/pylint/)



## Использование Netlas.io для OSINT (разведка по открытым источникам)

![OSINT Flowchart](https://assets.kitploit.com/production/public/readmes/6659/b433d1e7a92497c03bf05b19f663f7fa8643480533b961801bfc93ad6bad4927.png)

Netlas.io может помочь вам собрать данные о домене или компании, а также найти упоминания человека (или кого-либо) в интернете. 

Его также можно использовать для поиска старых версий веб-страниц (как аналог Wayback Machine).

### Поиск ника или email человека в контактах WHOIS

Чаще всего данные WHOIS содержат только контактную информацию компании, регистрирующей домены. Но иногда там могут быть личные контакты интересующих лиц. Этот запрос поможет вам их найти.  

*Этот метод может потребовать платной подписки.* [Смотрите цены](https://netlas.io/pricing/)

**Пример поискового запроса**  

![Whois email search example](https://assets.kitploit.com/production/public/readmes/6659/43eb2a871fe128cecbee6cb6b4164a1876053d8e12699c72a53e36c229f266f7.png)```
whois.related_nets.contacts.emails:sweetwater

Попробовать в Netlas

Пример API-запроса

Инструменты Netlas CLI:```bash netlas search "whois.related_nets.contacts.emails:sweetwater*" -f json

root@kitploit:~
Curl:```bash
curl -X 'GET' \
  'https://app.netlas.io/api/responses/?q=whois.related_nets.contacts.emails%3Asweetwater*&fields=' \
  -H 'accept: application/json' \
  -H 'X-API-Key: aqkd8L4MR93Tkcaz2UXDXrRleV8Vlvbv' | jq .items[].data.uri

Пример кода (библиотека Netlas Python)

Пример поиска whois по email на Python

Запуск в командной строке:```bash python scripts/osint/whois_email_search.py

root@kitploit:~
Исходный код scripts/osint/whois_email_search.py:```python
import netlas

apikey = "YOUR_API_KEY"

# create new connection to Netlas
netlas_connection = netlas.Netlas(api_key=apikey)

# retrieve data from responses by query `whois.related_nets.contacts.emails:sweetwater`
netlas_query = netlas_connection.query(query="whois.related_nets.contacts.emails:sweetwater*")


# iterate over data and print: URL, Country, Related nets data
for response in netlas_query['items']:
    print (response['data']['uri'])
    print (response['data']['geo']['country'])
    print (response['data']['whois']['related_nets'])

Поиск никнейма или email человека в заголовке и теле веб-страницы

Netlas позволяет искать упоминания определенных слов в заголовках и HTML-коде веб-страниц. Можно искать слова по точному совпадению, по приблизительному совпадению (см. раздел о нечетких запросах) и заменять символы, в которых вы не уверены, звездочками.

Пример поискового запроса

Пример поиска по заголовку/телу``` http.title:sweetwater OR http.body:sweetwater

root@kitploit:~
[Попробовать в Netlas](https://app.netlas.io/responses/?q=http.title%3Asweetwater%20OR%20http.body%3Asweetwater&page=1&indices=)

**Пример запроса API**

Netlas CLI Tools:```bash
netlas search "http.title:sweetwater OR http.body:sweetwater" -f json

Curl:```bash curl -X 'GET'
'https://app.netlas.io/api/responses/?q=whois.related_nets.contacts.emails%3Asweetwater*&fields='
-H 'accept: application/json'
-H 'X-API-Key: YOUR_API_KEY' | jq .items[].data.uri

root@kitploit:~
**Пример кода (библиотека Netlas Python)**

![Пример поиска Whois по email на Python](https://assets.kitploit.com/production/public/readmes/6659/8678cf14e22a1a44cc2c44c846b86ec2ad24b1eadef130a4eade7696ff88b061.png)

Запустить в командной строке:```bash
python scripts/osint/title_body_search.py

Исходный код скрипта scripts/osint/title_body_search.py:```python import netlas

apikey = "YOUR_API_KEY"

create new connection to Netlas

netlas_connection = netlas.Netlas(api_key=apikey)

retrieve data from responses by query http.title:sweetwater OR http.body:sweetwater

netlas_query = netlas_connection.query(query="http.title:sweetwater OR http.body:sweetwater*")

iterate over data and print: IP,URL,web page title

for response in netlas_query['items']: print (response['data']['ip']) print (response['data']['uri']) print (response['data']['http']['title'])

root@kitploit:~
### Search for "Juicy Info Files" on Subdomains of the Company's Website

![Juicy info files search](https://assets.kitploit.com/production/public/readmes/6659/c14d7be4acd47fb0ede930eb0ecbb06f3f362179fd4bca46747f0ce7d0caeb7d.png)

Metagoofil уже много лет является популярным инструментом среди специалистов по OSINT. Он ищет в Google файлы документов на веб-сайте компании (pdf, xlsx, docx и т. д.) и анализирует их метаданные.

А то, что не проиндексировано Google, можно найти с помощью Netlas, затем загрузить на свой компьютер и проанализировать с помощью инструмента [MetaDetective](https://github.com/franckferman/MetaDetective).```
uri:*lidl.* AND http.body:pdf

Try in Netlas

Вы можете заменить фильтр uri: на domain: и host: (я рекомендую всегда сравнивать результаты при использовании этих трех фильтров).

Вы также можете искать самые разные расширения файлов, в зависимости от того, что хотите найти. Например:``` http.body:xls http.body:xlsx http.body:doc http.body:docx http.body:ppt http.body:pptx http.body:mdb http.body:csv http.body:sql http.body:sqlite

root@kitploit:~
**Пример API-запроса**

Netlas CLI Tools:```bash
netlas search "uri:*lidl.* AND http.body:pdf"

Curl:```bash curl -X 'GET'
'https://app.netlas.io/api/responses/?q=uri%3A*lidl.*%20AND%20http.body%3Apdf&source_type=include&start=0&fields=*'
-H 'accept: application/json'
-H 'X-API-Key: 'YOUR_API_KEY' | jq .items[].data.domain

root@kitploit:~
**Пример кода (библиотека Netlas Python)**

![Поиск сочной информации](https://assets.kitploit.com/production/public/readmes/6659/faec884f54484c0cc6dd5ef76a79b9ca2e5ef372078289e8f3c3cf2cf4af9fac.png)

Запустите в командной строке:```bash
python scripts/osint/juicyinfo_search.py

Исходный код scripts/osint/juicyinfo_search.py:```python import netlas

apikey = "YOUR_API_KEY"

create new connection to Netlas

netlas_connection = netlas.Netlas(api_key=apikey)

retrieve data from responses by query uri:*lidl.* AND http.body:pdf

netlas_query = netlas_connection.query(query='uri:lidl. AND http.body:pdf')

iterate over data and print: uri, body

for response in netlas_query['items']: print (response['data']['uri']) print (response['data']['http']['body'])

root@kitploit:~
Чтобы автоматизировать создание ссылок на PDF-документы из тела веб-страницы, можно использовать пакет Python [Re](https://docs.python.org/3/library/re.html).


### Поиск упоминаний номеров телефонов

Как и в случае с никами и электронными письмами, вы также можете искать упоминания номера телефона в коде веб-страниц или контактной информации WHOIS.

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

**Пример поискового запроса**  

![Phone number search example](https://assets.kitploit.com/production/public/readmes/6659/92872d57f9ac03e90323f35d9d8303364050f36aa748a26eadb8996d10ce66b9.png)```
http.body:1?234?567?89?99 OR http.body:12345678999 OR http.body:1234?5678?999

Попробовать в Netlas

При выполнении запроса следует учитывать формат записи телефонного номера, принятый в стране, которой принадлежит интересующий вас номер.

Пример запроса к API

Netlas CLI Tools:```bash netlas search "http.body:1?234?567?89?99 OR http.body:12345678999 OR http.body:1234?5678?999" -f json

root@kitploit:~
Не забудьте, что вы можете искать номера телефонов не только в теле страницы, но и в контактной информации WHOIS. Это можно сделать с помощью фильтра **whois.related_nets.contacts.phones:**

Curl:```bash
curl -X 'GET' \
  'https://app.netlas.io/api/responses/?q=http.body%3A1%3F234%3F567%3F89%3F99%20OR%20http.body%3A12345678999%20OR%20http.body%3A1234%3F5678%3F999&source_type=include&start=0&fields=*' \
  -H 'accept: application/json' \
  -H 'X-API-Key: YOUR_API_KEY' jq .items[].data.uri

Пример кода (Netlas Python Library)

Phone number search example Python

Запустите в командной строке:```bash python scripts/osint/phonenumber_search.py

root@kitploit:~
Исходный код скрипта scripts/osint/phonenumber_search.py:```python
import netlas

apikey = "YOUR_API_KEY"

# create new connection to Netlas
netlas_connection = netlas.Netlas(api_key=apikey)

# retrieve data from responses by query `http.body:1?234?567?89?99 OR http.body:12345678999 OR http.body:1234?5678?999`
netlas_query = netlas_connection.query(query="http.body:1?234?567?89?99 OR http.body:12345678999 OR http.body:1234?5678?999")


# iterate over data and print: ip, url
for response in netlas_query['items']:
    print (response['data']['ip'])
    print (response['data']['uri'])

Поиск упоминаний файлов (поиск контента, который может нарушать авторские права)

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

Пример поискового запроса

Пример поиска в заголовке/тексте``` (http.title:alla OR http.body:alla) AND http.body:*.mp3

root@kitploit:~
[Попробовать в Netlas](https://nt.ls/HEhJj)

**Пример API-запроса**

Netlas CLI Tools:```bash
netlas search "(http.title:alla OR http.body:alla) AND http.body:*.mp3" -f json

Curl:```bash curl -X 'GET'
'https://app.netlas.io/api/responses/?q=(http.title%3Aalla%20OR%20http.body%3Aalla)%20AND%20http.body%3A*.mp3&source_type=include&start=0&fields=*'
-H 'accept: application/json'
-H 'X-API-Key: YOUR_API_KEY' | jq .items[].data.http.title

root@kitploit:~
**Пример кода (библиотека Netlas на Python)**

![File mentions search example Python](https://assets.kitploit.com/production/public/readmes/6659/919f820c21d9cda328524722b820783c3941447f3d447f9a72f5224d4cfd9ac1.png)

Запустите в командной строке:```bash
python scripts/osint/file_mentions_search.py

Исходный код scripts/osint/file_mentions_search.py:```python import netlas

apikey = "YOUR_API_KEY"

create new connection to Netlas

netlas_connection = netlas.Netlas(api_key=apikey)

retrieve data from responses by query (http.title:alla OR http.body:alla) AND http.body:*.mp3

netlas_query = netlas_connection.query(query="(http.title:alla OR http.body:alla) AND http.body:*.mp3")

iterate over data and print: IP, URL,web page title

for response in netlas_query['items']: print (response['data']['ip']) print (response['data']['uri']) print (response['data']['http']['title'])

root@kitploit:~
### Сбор информации WHOIS о доменах

WHOIS — это общедоступная глобальная база данных, в которой хранится информация о всех зарегистрированных доменах в мире.

**Пример поискового запроса**

![Title/body search example](https://assets.kitploit.com/production/public/readmes/6659/88c9654440e88b387d2422ac397334793daa8600d434d99d457b908e8abe154b.png)

Используйте [поиск WHOIS по доменам](https://app.netlas.io/whois_domains/)```
github.com

Пример API-запроса

Netlas CLI Tools:```bash netlas host github.com -f json

root@kitploit:~
Curl:```bash
curl -X 'GET' \
  'https://app.netlas.io/api/whois_domains/?q=github.com&source_type=include&start=0&fields=*' \
  -H 'accept: application/json' \
  -H 'X-API-Key: YOUR_API_KEY' |  jq .items[].data.technical.street

Пример кода (Netlas Python Library)

Пример WHOIS на Python

Запуск в командной строке:```bash python scripts/osint/whois_search.py

root@kitploit:~
Исходный код скрипта scripts/osint/whois_search.py:```python
import netlas

apikey = "YOUR_API_KEY"

# create new connection to Netlas
netlas_connection = netlas.Netlas(api_key=apikey)

# retrieve data from whois for google.com domain
netlas_query = netlas_connection.query(query="google.com",datatype="whois-domain")


# iterate over data and print: owner name
for response in netlas_query['items']:
    print (response['data']['technical']['name'])  

Поиск местоположения в теге <address>

Тег <address> находится внутри тега <head> веб-страницы и может содержать физические адреса. Используя поиск по этому тегу, вы можете найти сайты, связанные с конкретной улицей, а иногда и с конкретным зданием.

Пример поискового запроса

Author meta search``` http.contacts.address:kirby

root@kitploit:~
[Try in Netlas](https://app.netlas.io/responses/?q=http.contacts.address%3Akirby&page=1&indices=)

Вы также можете использовать http.contacts.email: для поиска по email.

**Пример запроса API**

Netlas CLI Tools:```bash
netlas search "http.contacts.address:kirby" -f json

Curl:```bash curl -X 'GET'
'https://app.netlas.io/api/responses/?q=http.contacts.address%3Akirby&source_type=include&start=0&fields=*'
-H 'accept: application/json'
-H 'X-API-Key: 'YOUR_API_KEY' | jq .items[].data.http.contacts

root@kitploit:~
**Пример кода (библиотека Netlas Python)**

![Поиск контактов по адресу Python](https://assets.kitploit.com/production/public/readmes/6659/aa659130f38a0287850a28fc0e37e93bd89939346049e855652cebb8ed7fcba3.png)

Запуск в командной строке:```bash
python scripts/osint/contacts_search.py

Исходный код scripts/osint/contacts_search.py:```python import netlas

apikey = "YOUR_API_KEY"

create new connection to Netlas

netlas_connection = netlas.Netlas(api_key=apikey)

retrieve data from responses by query http.contacts.address:kirby

netlas_query = netlas_connection.query(query="http.contacts.address:kirby")

iterate over data and print: URL, Contacts

for response in netlas_query['items']: print (response['data']['uri']) print (response['data']['http']['contacts'])

root@kitploit:~
###  Поиск имени автора в мета-тегах

`<meta>` теги находятся внутри тега `<head>` веб-страницы и содержат наиболее важные ключевые слова, описание, различную служебную информацию и имя автора.

Поиск никнейма и имени/фамилии по мета-тегам (http.meta) позволяет быстрее находить сайты, связанные с конкретным человеком, чем поиск по всему html-коду (http.body).

**Пример поискового запроса**  

![Author meta search](https://assets.kitploit.com/production/public/readmes/6659/059e767c5fa7d63af4548d77c1ac1b01c4f3a79cef1c1d91320f86f6e11a1ba9.png)```
http.meta:nazar

Попробовать в Netlas

Пример API-запроса

Netlas CLI Инструменты:```bash netlas search "http.meta:nazar" -f json

root@kitploit:~
Curl:```bash
curl -X 'GET' \
  'https://app.netlas.io/api/responses/?q=http.meta%3Anazar&source_type=include&start=0&fields=*' \
  -H 'accept: application/json' \
  -H 'X-API-Key: YOUR_API_KEY' | jq .items[].data.http.meta

Пример кода (библиотека Netlas Python)

Author meta search Python

Запустите в командной строке:```bash python scripts/osint/author_meta_search.py

root@kitploit:~
Исходный код файла scripts/osint/author_meta_search.py:```python
import netlas

apikey = "YOUR_API_KEY"

# create new connection to Netlas
netlas_connection = netlas.Netlas(api_key=apikey)

# retrieve data from responses by query `http.meta:nazar`
netlas_query = netlas_connection.query(query="http.meta:nazar")


# iterate over data and print: ip, url
for response in netlas_query['items']:
    print (response['data']['uri'])
    print (response['data']['http']['title'])
    print (response['data']['http']['meta'])

Что ещё интересного можно найти в мета-тегах HTML-документа?

Помимо имени автора, мета-теги могут содержать разнообразную информацию: кодировку, язык, разрешение на индексацию страницы поисковыми роботами, текст для карточек ссылок в социальных сетях, метаданные OpenGraph и многое другое. Вот ещё несколько примеров мета-тегов, которые могут быть полезны для расследований:

  • <meta name="description"> - описание содержимого веб-страницы.
  • <meta name="keywords"> - ключевые слова, описывающие содержимое веб-страницы.
  • <meta name="generator"> - название инструмента, использованного для генерации содержимого страницы (полезно для поиска CMS и хостинг-платформ)
  • <meta name="copyright"> - имя лица или название компании, владеющей авторскими правами на содержимое веб-страницы.

Поиск по тексту баннеров FTP-серверов

Ещё один важный шаг в поиске информации о человеке или компании — искать упоминания в тексте баннеров FTP-серверов. Возможно, IP-адрес найденных серверов станет ключом к обнаружению других сайтов, связанных с интересующим вас лицом или компанией. А в случае большой удачи — найти что-то интересное в размещённых там файлах (если FTP-сервер открыт).

Пример поискового запроса

Search CVE by tag name``` ftp.banner:"Collado"

root@kitploit:~
Если вам нужно искать FTP-серверы по какому-либо другому параметру (например, по городу или диапазону IP-адресов), используйте фильтр prot7:ftp.

[Try in Netlas](https://app.netlas.io/responses/?q=ftp.banner%3A%22Collado%22%20&page=1&indices=)

**Пример API-запроса**

Netlas CLI Tools:```bash
netlas search 'ftp.banner:"Collado"' -f json

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

Curl:```bash curl -X 'GET'
'https://app.netlas.io/api/responses/?q=ftp.banner%3A%22Collado%22&source_type=include&start=0&fields=*'
-H 'accept: application/json'
-H 'X-API-Key: YOUR_API_KEY' | jq .items[].data.uri

root@kitploit:~
**Пример кода (библиотека Netlas Python)**

![Favicon hash search Python](https://assets.kitploit.com/production/public/readmes/6659/099cc2e0a7ca8c242476fe9e27e8c9441e0c95ce82ae143a7f66289a13c21588.png)

Запуск в командной строке:```bash
python scripts/osint/ftp_banner_search.py

Исходный код скрипта scripts/osint/ftp_banner_search.py:```python import netlas

apikey = "YOUR_API_KEY"

create new connection to Netlas

netlas_connection = netlas.Netlas(api_key=apikey)

retrieve data from responses by query ftp.banner:"Collado"

netlas_query = netlas_connection.query(query='ftp.banner:"Collado"')

iterate over data and print: IP, URL, ftp banner text

for response in netlas_query['items']: print (response['data']['ip']) print (response['data']['uri']) print (response['data']['ftp']['banner'])

root@kitploit:~
### Поиск контактной информации в SSL-сертификатах

![Поиск сертификатов](https://assets.kitploit.com/production/public/readmes/6659/5f3d32db37a70b5a8f9f08efe11c978b950e00c2841d44f63f4e709c711e909a.png)

SSL-сертификат — это цифровой сертификат, который подтверждает подлинность веб-сайта и позволяет использовать зашифрованное соединение. Он может содержать информацию о владельце: имя контактного лица, название организации, страну, а иногда даже адрес и почтовый индекс. Вы можете искать эту информацию, используя следующие фильтры (и многие другие):

- `certificate.issuer.email_address`
- `certificate.issuer.given_name`
- `certificate.issuer.organization`
- `certificate.issuer.postal_code`
- `certificate.issuer.street_address`
- `certificate.issuer.surname`

Давайте попробуем найти IP-адреса, у которых в сертификате в поле street address содержится определённое слово:```
certificate.issuer.street_address:*mcgill*

Попробуйте в Netlas

Пример API-запроса

Инструменты Netlas CLI:```bash netlas search "certificate.issuer.street_address:mcgill" -f json

root@kitploit:~
Curl:```bash
curl -X 'GET' \
  'https://app.netlas.io/api/responses/?q=certificate.issuer.street_address%3A*mcgill*&source_type=include&start=0&fields=*' \
  -H 'accept: application/json' \
  -H 'X-API-Key: YOUR_API_KEY' jq .items[].data.uri

Пример кода (библиотека Netlas на Python)

Поиск сертификатов Python

Запуск в командной строке:```bash python scripts/osint/certificates_search.py

root@kitploit:~
Исходный код скрипта scripts/osint/certificates_search.py:```python
import netlas

apikey = "YOUR_API_KEY"

# create new connection to Netlas
netlas_connection = netlas.Netlas(api_key=apikey)

# retrieve data from responses by query `certificate.issuer.street_address:*mcgill*`
netlas_query = netlas_connection.query(query="certificate.issuer.street_address:*mcgill*")


print (type(netlas_query))

# iterate over data and print: ip, url, cetificate issuer 
for response in netlas_query['items']:
    print (response['data']['uri'])
    print (response['data']['certificate']['issuer'])  

Использование Netlas в качестве альтернативы WayBack Machine

Archive.org использовался специалистами по OSINT для поиска старых версий веб-сайтов и страниц профилей в социальных сетях, чтобы найти удалённые контактные и другие данные.

Но, к сожалению, archive.org сохраняет копии не всех сайтов и делает это не очень часто (для некоторых сайтов лишь пару раз в год или реже).

Но Netlas тоже сохраняет старые версии сайтов с 2021 года!

Следующие фильтры чаще всего используются для поиска сайтов:``` http.title:"github.com"

root@kitploit:~

domain:github.com

root@kitploit:~

host:github.com

root@kitploit:~
![Выбор скана](https://assets.kitploit.com/production/public/readmes/6659/6fb8d1ed55265153faebb6ed93a9a5a184d8a6b54f0cf9fa12b92a304939f062.png)

Если щёлкнуть по самому крайнему значку справа от поля ввода поисковых запросов, откроется меню для выбора даты сканирования. С его помощью можно отфильтровать HTML-коды сайтов, сохранённые на определённую дату.

![Копирование тела ответа](https://assets.kitploit.com/production/public/readmes/6659/b59544af96ce2c341761eb5cd6f4b36ed2e271c14957a6ecb373a2b972fbeff6.png)

Чтобы посмотреть, как выглядит сайт, скопируйте содержимое поля «body» (вкладка response) в любой текстовый редактор и удалите из HTML-кода символы \t\r\n.

![Просмотр HTML](https://assets.kitploit.com/production/public/readmes/6659/f1b8a6983795f5b608b8d2ec37f5069c588749655a361d70b250ca8c0df24967.png)

После этого вставьте код в один из онлайн-просмотрщиков HTML, например [Code beautify](https://codebeautify.org/htmlviewer). Или просто сохраните файл в формате HTML и откройте его в браузере.


### 9 способов поиска связанных веб-сайтов

![Поиск связанных веб-сайтов](https://assets.kitploit.com/production/public/readmes/6659/354bf2e8695fd9255ce513dba2685cc7c6595e8cb06d1c6f9e4d48bd3dcccb72.png)

При сборе информации о человеке или компании бывает важно найти как можно больше сайтов, которые могут быть с ними так или иначе связаны. С помощью Netlas это можно сделать как минимум 5 способами.


1. ID различных сервисов (аналитики, рекламных систем, приложений для интеграции с социальными сетями и системами публикаций). Их совпадение может указывать на то, что над проектами работал один человек или одна команда. Вот несколько примеров:

Google Analytics:```
http.tracker.google_analytics:"G-X82FSVSMTV"

Google Tag Manager:``` http.tracker.google_analytics:"GTM-N6462KFQ"

root@kitploit:~
AddThis:```
http.body:"AT-ra-500bcd681b192302"

Facebook Pixel:``` http.tracker.facebook_pixel:317853189093681

root@kitploit:~
Yandex Metrika```
http.tracker.yandex_metrica:89723437

Amazon Publisher Servies:``` http.body:APS-XXXX

root@kitploit:~
Да, всё это можно найти в коде на некоторых сайтах.
 
И множество других идентификаторов, которые чаще всего встречаются в начале HTML-кода (но иногда и по всему коду).

[Try in Netlas](https://nt.ls/BCrw9)


2. ID партнёрских программ (также используйте http.body для их поиска). Вы можете найти их в партнёрских ссылках, которые человек публикует на других сайтах или в социальных сетях. Это могут быть следующие параметры URL (и подобные им):```
aff_fcid=
user_id=
partner_id=
ref_id=
  1. Поиск по названию организации в доменном WHOIS-поиске Netlas

Поиск организации в WHOIS``` "GitHub, Inc."

root@kitploit:~
[Попробовать в Netlas](https://app.netlas.io/whois_domains/?q=%22GitHub%2C%20Inc.%22&page=1&indices=)

4. Поиск по почтовым серверам в DNS Netlas

![Поиск почтовых серверов в DNS](https://assets.kitploit.com/production/public/readmes/6659/28cbe86f74bbf0959803083816d8da4819e41aed6b8cd56a58fadc479e1fab34.png)```
mx:*.parklogic.com

Попробовать в Netlas

  1. Поиск по серверам имен в DNS Netlas

Поиск серверов имен в DNS``` ns:ns?.parklogic.com

root@kitploit:~
[Try in Netlas](https://app.netlas.io/domains/?q=mx%3A*.parklogic.com&page=1&indices=)

6. Файлы (в основном логотипы и аватары пользователей) поиск упоминаний [->](https://github.com/netlas-io/netlas-cookbook#search-file-mentions-looking-for-content-that-may-be-infringing-on-copyrights)


7. Поиск поддоменов [->](https://github.com/netlas-io/netlas-cookbook#search-subdomains)

8. Поиск контактов Whois (в ответе Netlas) [->](https://github.com/netlas-io/netlas-cookbook#search-persons-nickname-or-email-in-whois-contacts)

9. Поиск по фавикону [->](https://github.com/netlas-io/netlas-cookbook#favicon-search)


## Скрапинг (Извлечение данных из тела веб-страницы)

Netlas API — отличный инструмент для сбора контактных и других данных с веб-сайтов. Во-первых, он позволяет делать это быстро. Во-вторых, для его использования не требуется прокси. В-третьих, он позволяет собирать данные с сайтов, которые временно недоступны.

Однако есть и недостатки: Netlas сканирует только главные страницы сайтов, а некоторые редкие сайты не попадают в его базу из-за защиты. Но тем не менее он может быть очень полезен.

Существует три основных подхода к скрапингу: сбор информации из HTML-тегов и CSS-селекторов, извлечение данных с помощью регулярных выражений и ИИ-скрапинг. Рассмотрим подробнее первые два.


### Пакет BeautifulSoup

[Beatifulsoup](https://pypi.org/project/beautifulsoup4/) — один из самых популярных в мире пакетов Python для парсинга HTML-кода и XML-файлов. Давайте попробуем использовать его для извлечения заголовков страниц (из тегов \<h1>, а НЕ \<title>).

Сначала установите пакет:```bash
pip install beautifulsoup4

И запустите scripts/osint/scraping_beatifulsoup.py:```bash python scripts/osint/scraping_beatifulsoup.py

root@kitploit:~
![Beatiful soup скрапинг](https://assets.kitploit.com/production/public/readmes/6659/2a56f2848aeac7180d0257067b18148c4ba13cf9dfdc3916a39a0247ee07a584.png)

Исходный код scripts/osint/scraping_beatifulsoup.py:```python
import netlas
from bs4 import BeautifulSoup

apikey = "YOUR_API_KEY"

# create new connection to Netlas
netlas_connection = netlas.Netlas(api_key=apikey)

# retrieve data from responses by query `http.body:shop`
netlas_query = netlas_connection.query(query="http.body:shop")

# iterate over data and print: URL, h1 tags from body
for response in netlas_query['items']:
    print (response['data']['uri'])
    soup = BeautifulSoup(response['data']['http']['body'], "html.parser")
    try:
        print(soup.find("h1").get_text())
    except Exception:
        print("no h1 tags")
pass

Вы можете извлечь данные из других элементов веб-страниц аналогичным образом:``` soup.find("h3").get_text() soup.find("id='loginform'").get_text() soup.find("class='forms'").get_text() soup.find("href='https://example.com'").get_text()

root@kitploit:~
Если вы хотите найти все элементы определенного типа, используйте метод find_all().

### Re Пакет

[Re](https://docs.python.org/3/library/re.html) — это предустановленный пакет Python для поиска и извлечения данных с помощью регулярных выражений. Он полезен для извлечения контактной информации с веб-страниц и многих других задач. Давайте рассмотрим пример его работы.

Запустите scripts/osint/scraping_re.py:```bash
python scripts/osint/scraping_re.py

Повторный сбор данных

Исходный код скрипта scripts/osint/scraping_re.py:```python import netlas import re

apikey = "YOUR_API_KEY"

create new connection to Netlas

netlas_connection = netlas.Netlas(api_key=apikey)

retrieve data from responses by query http.body:shop

netlas_query = netlas_connection.query(query="http.body:shop")

iterate over data and print: URL, emails from body

for response in netlas_query['items']: print (response['data']['uri']) emails = re.findall("[a-zA-Z0-9-.]+@[a-zA-Z0-9-.]+", response['data']['http']['body']) try: print(emails) except Exception: print("no emails") pass

root@kitploit:~
Аналогично вы можете извлекать ссылки, номера телефонов, адреса криптовалютных кошельков и многое другое. Готовые шаблоны можно найти в библиотеках регулярных выражений:

[Regex Lib](https://regexlib.com/)
[UI Bakery Regex Library](https://uibakery.io/regex-library)
[Regex 101](https://regex101.com/)


### Другие пакеты Python для скрапинга

Пакеты Beaitiful soup и Re — лишь одни из многих инструментов для извлечения данных с веб-страниц с помощью Python. Вот ещё несколько примеров таких пакетов:


* [Scrapy](https://pypi.org/project/Scrapy/): В первую очередь это краулер (инструмент для обхода страниц сайта по ссылкам, найденным на других страницах), и, кроме того, он обладает широкими возможностями для извлечения данных с веб-страниц.
* [Selenium](https://pypi.org/project/selenium/): Инструмент для автоматизации работы с браузером. Позволяет извлекать данные из контента, созданного с помощью JavaScript.
* [Lxml](https://pypi.org/project/lxml/): Инструмент для скрапинга и проверки XML-файлов.
* [PDFtoText](https://pypi.org/project/pdftotext/) — инструмент для извлечения текстового содержимого из PDF-файлов.
* [pyChatGPT](https://pypi.org/project/pyChatGPT/) — неофициальный пакет для взаимодействия с CHATGP (не требует API-ключа OpenAI), позволяющий анализировать текстовую информацию с помощью ИИ.


## Использование Netlas.io для крипто-расследований

Netlas предоставляет отличные возможности для исследователей, специализирующихся на криптовалютных преступлениях. Во-первых, его можно использовать для поиска ссылок на адреса кошельков и номера транзакций. Во-вторых, — для поиска уязвимых майнинговых ферм, узлов и других серверов, связанных с криптоинфраструктурой.


### Поиск майнинговых ферм

![Поиск майнинговых ферм](https://assets.kitploit.com/production/public/readmes/6659/77f381d83fa1d1d482941093c638ccc1620adb14365831ef7d74efa51913b2ec.png)

Майнинговые фермы Antminer, впервые выпущенные компанией Bitmain ещё в 2013 году, являются одной из самых популярных линеек моделей майнинговых ферм в мире. Их можно найти по наличию слова «antMiner» в заголовке www_authenticate.```
http.headers.www_authenticate:antMiner

Попробовать в Netlas

Вы также можете искать другие типы майнинговых ферм. Например:``` http.headers.www_authenticate:XMR-Stak-Miner

root@kitploit:~
Экспериментируйте, комбинируя различные фильтры, слова "miner/mining" и названия криптовалют.

**Пример API-запроса**

Netlas CLI Tools:```bash
netlas search "http.headers.www_authenticate:antMiner"

Curl:```bash curl -X 'GET'
'https://app.netlas.io/api/responses/?q=http.headers.www_authenticate%3AantMiner&source_type=include&start=0&fields=*'
-H 'accept: application/json'
-H 'X-API-Key: 'YOUR_API_KEY' | jq .items[].data.uri

root@kitploit:~
**Пример кода (библиотека Netlas Python)**

![Maining farms search Python](https://assets.kitploit.com/production/public/readmes/6659/9b033acf5bc227191a51e0b969716bdda2540fe8a9f17373248f1494e1812164.png)

Запустите в командной строке:```bash
python scripts/crypto/mining_farms_search.py

Исходный код scripts/crypto/mining_farms_search.py:```python import netlas

apikey = "YOUR_API_KEY"

create new connection to Netlas

netlas_connection = netlas.Netlas(api_key=apikey)

retrieve data from responses by query http.headers.www_authenticate:antMiner

netlas_query = netlas_connection.query(query='http.headers.www_authenticate:antMiner')

iterate over data and print: uri, http headers

for response in netlas_query['items']: print (response['data']['uri']) print (response['data']['http']['headers'])

root@kitploit:~
### Поиск сайтов, заражённых криптомайнерами

![Поиск сайта, заражённого майнерами](https://assets.kitploit.com/production/public/readmes/6659/0163afad4013a8a92217f48e4bb628666a6a61822a0a14f6e6cd7ab0c29138f9.png)

Coinhive, сервис, который позволяет сайтам (в основном взломанным) использовать компьютеры своих посетителей для майнинга криптовалют, закрывается в 2019 году. Но тем не менее, ссылки на него всё ещё встроены на многих сайтах по всему миру. Давайте попробуем их найти:```
http.body:coinhive.min.js domain:*

Обратите внимание, что мы используем фильтр domain:* для поиска именно сайтов, а не всех устройств.

Аналогично вы можете искать сайты, зараженные другими криптомайнерами (а также другим вредоносным кодом, выполняющимся на стороне пользователя).

Пример API-запроса

Netlas CLI Tools:```bash netlas search "http.body:coinhive.min.js domain:*"

root@kitploit:~
Curl:```bash
curl -X 'GET' \
   'https://app.netlas.io/api/responses/?q=http.body%3Acoinhive.min.js%20domain%3A*&source_type=include&start=0&fields=*' \
   -H 'accept: application/json' \
   -H 'X-API-Key: 'YOUR_API_KEY' | jq .items[].data.uri

Пример кода (Netlas Python Library)

Поиск майнинговых ферм Python

Запуск в командной строке:```bash python scripts/crypto/search_sites_injected_with_miners.py

root@kitploit:~
Исходный код:```python
import netlas

apikey = "YOUR_API_KEY"

# create new connection to Netlas
netlas_connection = netlas.Netlas(api_key=apikey)

# retrieve data from responses by query `http.body:coinhive.min.js domain:*`
netlas_query = netlas_connection.query(query='http.body:coinhive.min.js domain:*')


# iterate over data and print: uri
for response in netlas_query['items']: 
    print (response['data']['uri'])

Поиск уязвимых узлов Bitcoin

Поиск узлов Bitcoin

Узлы Bitcoin используют порт 8333 для TCP-соединения. Поэтому их легко найти с помощью поискового фильтра "port:".``` port:8333 cve:*

root@kitploit:~
Обратите внимание, что мы используем фильтр "cve:*" для поиска серверов с уязвимостями.

**Пример API-запроса**

Netlas CLI Tools:```bash
netlas search "port:8333 cve:*"

Curl:```bash curl -X 'GET'
'https://app.netlas.io/api/responses/?q=port%3A8333%20cve%3A*&source_type=include&start=0&fields=*'
-H 'accept: application/json'
-H 'X-API-Key: 'YOUR_API_KEY' | jq .items[].data.uri

root@kitploit:~
**Пример кода (библиотека Netlas для Python)**

![Search bitcoin nodes Python](https://assets.kitploit.com/production/public/readmes/6659/057eebb8a7790208aeb3cea45714a5699c9c31abd83d1eb703ceee4f578986f8.png)

Запуск в командной строке:```bash
python scripts/crypto/search_bitcoin_nodes.py

Исходный код scripts/crypto/search_bitcoin_nodes.py:```python import netlas

apikey = "YOUR_API_KEY"

create new connection to Netlas

netlas_connection = netlas.Netlas(api_key=apikey)

retrieve data from responses by query port:8333 cve:*

netlas_query = netlas_connection.query(query='port:8333 cve:*')

iterate over data and print: uri, CVE name and description

for response in netlas_query['items']: print (response['data']['uri']) print (response['data']['cve'][0]['name']) print (response['data']['cve'][0]['description'])

root@kitploit:~
## Использование Neltas для пентеста

Netlas.io позволяет искать сайты со множеством различных типов уязвимостей. Это можно сделать по номеру уязвимости (CVE-...), названию программного обеспечения, установленного на сервере, определенным словам в заголовках страниц и другим параметрам.

Вы можете отслеживать самые последние опубликованные CVE (Common Vulnerabilities and Exposures) на этих сайтах:

* [CVE Details](https://www.cvedetails.com/)
* [VulDB](https://vuldb.com/)
* [OpenCVE](https://www.opencve.io/)

Мы также регулярно публикуем наиболее актуальные запросы для поиска уязвимых устройств и программного обеспечения в наших лентах [Twitter](https://twitter.com/Netlas_io), [Telegram](https://t.me/netlas) и [Discord](https://nt.ls/discord), а также в репозитории GitHub [Netlas Dorks](https://github.com/netlas-io/netlas-dorks).

В этом разделе мы просто рассмотрим общие принципы поиска сайтов и серверов с уязвимостями.

### Поиск поддоменов

Используя звездочки в поисковых запросах, вы можете найти все поддомены разных уровней (чьи имена заканчиваются на имя конкретного домена первого уровня (.com) или домена второго уровня (google.com)).

**Пример поискового запроса**  

![Subdomain search example](https://assets.kitploit.com/production/public/readmes/6659/2ec8112759c93d396d8bf622ad7988833d4262aa8add2a2da46fdfe01f5aa717.png)```
domain:*.github.com OR host:*.github.com

Попробовать в Netlas

Пример API-запроса

Инструменты командной строки Netlas:```bash netlas search "domain:.github.com OR host:.github.com" -f json

root@kitploit:~
Curl:```bash
curl -X 'GET' \
  'https://app.netlas.io/api/responses/?q=domain%3A*.github.com%20OR%20host%3A*.github.com&source_type=include&start=0&fields=*' \
  -H 'accept: application/json' \
  -H 'X-API-Key: YOUR_API_KEY' | jq .items[].data.uri

Пример кода (Netlas Python Library)

Пример поиска поддоменов Python

Запуск в командной строке:```bash python scripts/pentest/subdomain_search.py

root@kitploit:~
Исходный код scripts/pentest/subdomain_search.py:```python
import netlas

apikey = "YOUR_API_KEY"

# create new connection to Netlas
netlas_connection = netlas.Netlas(api_key=apikey)

# retrieve data from responses by query `domain:*.github.com OR host:*.github.com`
netlas_query = netlas_connection.query(query="domain:*.github.com OR host:*.github.com")


# iterate over data and print: ip, url
for response in netlas_query['items']:
    print (response['data']['ip'])
    print (response['data']['uri'])

Поиск сайтов с конкретными уязвимостями

Пример поискового запроса

Поиск CVE``` cve.name:CVE-2022-22965

root@kitploit:~
[Try in Netlas](https://app.netlas.io/responses/?q=cve.name%3ACVE-2022-22965&page=1&indices=)

**Пример API-запроса**

Netlas CLI Tools:```bash
netlas search "cve.name:CVE-2022-22965" -f json

CVE-2022-22965 - Spring MVC или Spring WebFlux приложение, работающее на JDK 9+, может быть уязвимо для удаленного выполнения кода (RCE) через связывание данных. Подробнее

Curl:```bash curl -X 'GET'
'https://app.netlas.io/api/responses/?q=http.body%3A1%3F234%3F567%3F89%3F99%20OR%20http.body%3A12345678999%20OR%20http.body%3A1234%3F5678%3F999&source_type=include&start=0&fields=*'
-H 'accept: application/json'
-H 'X-API-Key: YOUR_API_KEY' jq .items[].data.uri

root@kitploit:~
**Пример кода (библиотека Netlas Python)**

![CVE search example Python](https://assets.kitploit.com/production/public/readmes/6659/56e2afbc833f063d53d416a1aa8145a8af62e8183d4367dfa365285078789eba.png)

Запуск в командной строке:```bash
python scripts/pentest/cve_search.py

Исходный код scripts/pentest/cve_search.py:```python import netlas

apikey = "YOUR_API_KEY"

create new connection to Netlas

netlas_connection = netlas.Netlas(api_key=apikey)

retrieve data from responses by query cve.name:CVE-2022-22965

netlas_query = netlas_connection.query(query="cve.name:CVE-2022-22965")

iterate over data and print: ip, url

for response in netlas_query['items']: print (response['data']['ip']) print (response['data']['uri'])

root@kitploit:~
### Поиск сайтов с уязвимостями, содержащими определенное слово в описании

Если вам не нужно исследовать серверы с конкретным типом уязвимости, а просто хочется увидеть уязвимые серверы в определенной группе (например, Oracle WebLogic Server или сайты на WordPress), вы можете искать их по ключевым словам и фильтру cve.description:.

Чтобы отфильтровать сайты, для уязвимостей которых опубликованы эксплойты, используйте cve.has_exploit:true.

**Пример поискового запроса**  

![CVE description search](https://assets.kitploit.com/production/public/readmes/6659/03f621bed9ea16357222f19930d309b2d8d576761726cfa1a43f3f06d0f68353.png)```
cve.description:weblogic AND cve.has_exploit:true

Попробовать в Netlas

Пример API-запроса

Инструменты командной строки Netlas:```bash netlas search "cve.description:weblogic AND cve.has_exploit:true" -f json

root@kitploit:~
Curl:```bash
curl -X 'GET' \
  'https://app.netlas.io/api/responses/?q=cve.description%3Aweblogic%20AND%20cve.has_exploit%3Atrue&source_type=include&start=0&fields=*' \
  -H 'accept: application/json' \
  -H 'X-API-Key: YOUR_API_KEY | jq .items[].data.uri

Пример кода (Netlas Python Library)

CVE description search Python

Запуск в командной строке:```bash python scripts/pentest/cve_description_search.py

root@kitploit:~
Исходный код scripts/pentest/cve_description_search.py:```python
import netlas

apikey = "YOUR_API_KEY"

# create new connection to Netlas
netlas_connection = netlas.Netlas(api_key=apikey)

# retrieve data from responses by query `cve.description:weblogic AND cve.has_exploit:true`
netlas_query = netlas_connection.query(query="cve.description:weblogic AND cve.has_exploit:true")

# iterate over data and print:  url, first CVE name first CVE description
for response in netlas_query['items']:
    print (response['data']['uri'])
    print (response['data']['cve'][0]['name'])
    print (response['data']['cve'][0]['description'])

Поиск по HTTP-заголовку сервера

Этот метод позволяет найти устройства, произведенные конкретной компанией.

Пример поискового запроса

Search by server software``` http.headers.server:"yawcam"

root@kitploit:~
Поиск веб-камер YawCam.

[Try in Netlas](https://app.netlas.io/responses/?q=http.headers.server%3A%22yawcam%22&page=1&indices=)

**Пример API-запроса**

Инструменты командной строки Netlas:```bash
netlas search 'http.headers.server:"yawcam"' -f json

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

Curl:```bash curl -X 'GET'
'https://app.netlas.io/api/responses/?q=http.headers.server%3A%22yawcam%22&source_type=include&start=0&fields=*'
-H 'accept: application/json'
-H 'X-API-Key: YOUR_API_KEY' | jq .items[].data.uri

root@kitploit:~
**Пример кода (библиотека Netlas для Python)**

![Поиск HTTP-заголовков сервера на Python](https://assets.kitploit.com/production/public/readmes/6659/87261dd31bfd191d1eae9fe1b9f76537ae2ebfde6c44ed40dc7b67c3fa215249.png)

Запустить в командной строке:```bash
python scripts/pentest/server_name_search.py

Исходный код scripts/pentest/server_name_search.py:```python import netlas

apikey = "YOUR_API_KEY"

create new connection to Netlas

netlas_connection = netlas.Netlas(api_key=apikey)

retrieve data from responses by query http.headers.server:"yawcam"

netlas_query = netlas_connection.query(query='http.headers.server:"yawcam"')

iterate over data and print: IP, URL, server name

for response in netlas_query['items']: print (response['data']['ip']) print (response['data']['http']['headers']['server'])

root@kitploit:~
#### Стандартные логины и пароли <!-- omit in toc -->

Одно из практических применений поиска по имени программного обеспечения в заголовках серверов — это поиск устройств от конкретного вендора. Это может быть необходимо как при поиске устройств с конкретными уязвимостями, так и устройств со стандартными логинами и паролями.

![Default passwords](https://assets.kitploit.com/production/public/readmes/6659/1aad3e67d42397a0dd3ecf3e29e16fbc964401c962ab7482ba353578112ebe8c.png)

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

* [Стандартные логины и пароли для роутеров (список 2023)](https://www.softwaretestinghelp.com/default-router-username-and-password-list/)
* [Стандартные имена пользователей, пароли и IP-адреса для камер видеонаблюдения](https://www.a1securitycameras.com/blog/default-username-passwords-ip-addresses-for-surveillance-cameras/)
* [Стандартные пароли почти всех IP-камер](https://www.hackers-arise.com/post/the-default-passwords-of-nearly-every-ip-camera)
* [Список стандартных паролей от Datarecovery](https://datarecovery.com/rd/default-passwords/)

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

---

### Поиск уязвимых серверов по хешу фавикона

Один из способов найти веб-серверы, подверженные определённой уязвимости, — это поиск по favicon ico определённого программного обеспечения веб-сервера.

**Пример поискового запроса**

![Search CVE by favicon hash](https://assets.kitploit.com/production/public/readmes/6659/b0a93463790400a640c81c171f5a361de66eb6e6674a8cd993128c08c8199ae9.png)```
http.favicon.hash_sha256:ebaaed8ab7c21856f888117edaf342f6bc10335106ed907f95787b69878d9d9e

Этот запрос ищет favicon SecurePoint (CVE-2023-22620).

Попробовать в Netlas

Пример запроса API

Инструменты Netlas CLI:```bash netlas search "http.favicon.hash_sha256:ebaaed8ab7c21856f888117edaf342f6bc10335106ed907f95787b69878d9d9e" -f json

root@kitploit:~
Curl:```bash
curl -X 'GET' \
   'https://app.netlas.io/api/responses/?q=http.favicon.hash_sha256%3Aebaaed8ab7c21856f888117edaf342f6bc10335106ed907f95787b69878d9d9e&source_type=include&start=0&fields=*' \
  -H 'accept: application/json' \
  -H 'X-API-Key: YOUR_API_KEY' | jq .items[].data.uri

Пример кода (библиотека Netlas Python)

Favicon hash search Python

Запуск в командной строке:```bash python scripts/pentest/favicon_hash_search.py

root@kitploit:~
Исходный код scripts/pentest/favicon_hash_search.py:```python
import netlas

apikey = "YOUR_API_KEY"

# create new connection to Netlas
netlas_connection = netlas.Netlas(api_key=apikey)

# retrieve data from responses by query `http.favicon.hash_sha256:ebaaed8ab7c21856f888117edaf342f6bc10335106ed907f95787b69878d9d9e`
netlas_query = netlas_connection.query(query="http.favicon.hash_sha256:ebaaed8ab7c21856f888117edaf342f6bc10335106ed907f95787b69878d9d9e")


# iterate over data and print: IP,URL,web page title
for response in netlas_query['items']:
    print (response['data']['ip'])
    print (response['data']['uri'])
    print (response['data']['http']['title'])

Поиск уязвимых серверов по имени тега

Чтобы упростить поиск по серверам, работающим с разным программным обеспечением, Netlas автоматически назначает результаты поиска определенными тегами.

Примеры тегов:

  • Блоги - medium, wordpress, tumblr
  • CDN - google_cloud, cloudflare, keycdn
  • CMS - ucoz, joomla, pyrocms
  • Электронная коммерция - opencart, magento, wix

Вы можете искать по тегам, используя фильтр "tag.name:". Также можно искать по категории тега, используя фильтр "tag.category:". Список всех доступных тегов и категорий отображается при нажатии на иконку справа от поля ввода поискового запроса на главной странице Netlas.

Примечание: Не все тарифные планы поддерживают использование тегов.

Пример поискового запроса

Search CVE by tag name``` tag.name:"adobe_coldfusion"

root@kitploit:~
Этот запрос ищет Adobe ColdFusion (CVE-2023-26359).

[Попробовать в Netlas](https://app.netlas.io/responses/?q=tag.name%3A%22adobe_coldfusion%22&page=1&indices=)

**Пример запроса API**

Netlas CLI Tools:```bash
netlas search 'tag.name:"adobe_coldfusion"' -f json

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

Curl:```bash curl -X 'GET'
'https://app.netlas.io/api/responses/?q=tag.name%3A%22adobe_coldfusion%22&source_type=include&start=0&fields=*'
-H 'accept: application/json'
-H 'X-API-Key: YOUR_API_KEY' | jq .items[].data.uri

root@kitploit:~
**Пример кода (библиотека Netlas для Python)**

![Поиск хэша фавикона в Python](https://assets.kitploit.com/production/public/readmes/6659/df06bcb4bb2b0cd939656534bc1c2c5c94897cf699309ebf130d0fb26931c630.png)

Запуск в командной строке:```bash
python scripts/pentest/search_tag_name.py

Исходный код scripts/pentest/search_tag_name.py:```python import netlas

apikey = "YOUR_API_KEY"

create new connection to Netlas

netlas_connection = netlas.Netlas(api_key=apikey)

retrieve data from responses by query tag.name:"adobe_coldfusion"

netlas_query = netlas_connection.query(query='tag.name:"adobe_coldfusion"')

iterate over data and print: IP,URL

for response in netlas_query['items']: print (response['data']['ip']) print (response['data']['uri'])

root@kitploit:~
### Поиск уязвимых серверов и устройств рядом с вами (или в любом другом месте)

![Поиск по локации CVE](https://assets.kitploit.com/production/public/readmes/6659/1cc7069b697b4c21a266b05804238fe541962e7baacb2cb0c98c10128cf6b126.png)

Хотите узнать, сколько уязвимых сайтов и устройств находятся рядом с вами? Просто найдите все IP-адреса, у которых заполнено поле CVE в определённой геолокации.```
geo.city:London AND cve:*

Try in Netlas

Вы также можете использовать другие фильтры геолокации.

  • geo.continent
  • geo.country
  • geo.location

Пример API-запроса

Netlas CLI Tools:``` geo.city:London AND cve:*

root@kitploit:~
Curl:```bash
curl -X 'GET' \
  'https://app.netlas.io/api/responses/?q=geo.city%3ALondon%20AND%20cve%3A*&source_type=include&start=0&fields=*' \
   -H 'accept: application/json' \
   -H 'X-API-Key: 'YOUR_API_KEY' | jq .items[].data.domain

Пример кода (библиотека Netlas Python)

Поиск CVE по местоположению Python

Запустить в командной строке:```bash python scripts/pentest/cve_location_search.py

root@kitploit:~
Исходный код scripts/pentest/cve_location_search.py:```python
import netlas

apikey = "YOUR_API_KEY"

# create new connection to Netlas
netlas_connection = netlas.Netlas(api_key=apikey)

# retrieve data from responses by query `geo.city:London AND cve:*`
netlas_query = netlas_connection.query(query='geo.city:London AND cve:*')


# iterate over data and print: uri, cve name, location
for response in netlas_query['items']: 
    print (response['data']['uri'])
    print (response['data']['cve'][0]['name'])
    print (response['data']['geo']['city'])

Поиск страниц входа/панелей администратора

Admin panels search

Многие сайты и серверы имеют веб-страницы входа и пароля, которые могут быть использованы для получения полного контроля над сайтом или сервером (с использованием стандартных паролей, перебора или эксплуатации уязвимостей).

Вы можете найти их с помощью фильтра uri: или/и http.title:``` uri:login.php uri:login.aspx uri:user http.title:login uri:admin http.title:login http.title:admin http.title:panel

root@kitploit:~
Существует так много комбинаций. Чтобы найти только панели уязвимых серверов, используйте фильтр `cve:*`.

Также не забывайте, что можно фильтровать серверы по установленному программному обеспечению с помощью тегов. Например:```
tag.1c_bitrix:*
tag.Cisco:
tag.amazon_s3:*
tag.drupal:*
tag.wordpress:*

Поиск уязвимых панелей администратора баз данных

Поиск панелей администратора баз данных

Попробуем найти уязвимую панель администратора phpMyAdmin (одно из самых популярных программ для администрирования баз данных MySQL):``` http.title:phpMyAdmin cve:*

root@kitploit:~
А вот несколько примеров для других популярных инструментов управления базами данных:

[Adminer](https://www.adminer.org/):```
http.title:adminer http.title:login cve:*

PostgreSQL``` http.title:(phpPgAdmin OR pgadmin) cve:*

root@kitploit:~
Вы также можете искать серверы, на которых установлено программное обеспечение для различных баз данных, используя теги или специальные фильтры:```
tag.adminer:*
tag.phpMyAdmin:*
tag.elastic:*
mongodb:*
mssql:*
mysql:*
django:*

Поиск панелей администратора для серверов, найденных таким образом, может быть не самой простой задачей, так как администраторы сайтов часто меняют стандартные ссылки на более безопасные.

Поиск сайтов, уязвимых к SQL-инъекциям

Поиск SQL-инъекций

SQL-инъекция — это тип уязвимости, который позволяет выполнять запросы к базе данных путем манипулирования параметрами URL (это может быть возможным из-за неправильных конфигураций и низкокачественного кода).

Один из старейших методов поиска страниц, потенциально уязвимых к SQL-инъекциям, — это поиск страниц, в которых включено отображение сообщений об ошибках в запросах MySQl с помощью Google Dorks.

Аналогичный поиск можно выполнить в Netlas:``` http.body:mysql_fetch_array http.body:warning

root@kitploit:~
[Попробовать в Netlas](https://app.netlas.io/responses/?q=http.body%3Amysql_fetch_array%20http.body%3Awarning&page=1&indices=)

Несколько других примеров:```
http.body:mysql_num_rows http.body:warning
http.body:mysql_connect http.body:denied
http.body:mysql_query http.body:warning
http.body:pg_connect http.body:fatal

Пример API-запроса

Netlas CLI Tools:```bash netlas search "http.body:mysql_fetch_array http.body:warning" -f json

root@kitploit:~
Curl:```bash
curl -X 'GET' \
  'https://app.netlas.io/api/responses/?q=http.body%3Amysql_fetch_array%20http.body%3Awarning&source_type=include&start=0&fields=*' \
  -H 'accept: application/json' \
  -H 'X-API-Key: YOUR_API_KEY' jq .items[].data.uri

Пример кода (Netlas Python Library)

Поиск SQL-инъекций Python

Запустите в командной строке:```bash python scripts/pentest/sql_injection_search.py

root@kitploit:~
Исходный код scripts/pentest/sql_injection_search.py:```python
import netlas

apikey = "YOUR_API_KEY"
 
# create new connection to Netlas
netlas_connection = netlas.Netlas(api_key=apikey)

# search in Netlas "http.body:mysql_fetch_array http.body:warning"
netlas_query = netlas_connection.query(query="http.body:mysql_fetch_array http.body:warning")

# iterate over data and print: uri, web page body
for response in netlas_query['items']:
    print (response['data']['uri'])  
    print (response['data']['http']['body'])    

Вы также можете использовать следующие фильтры для поиска уязвимых серверов MySQL:

  • mysql.error_code
  • mysql.error_id
  • mysql.error_message

Поиск IoT: 9 основных способов

Netlas ищет не только веб-сайты и серверы, но и все устройства, подключенные к Интернету: умные домашние приборы, камеры наблюдения, принтеры, маршрутизаторы, светофоры, медицинское оборудование и многое другое.

Существует четыре основных способа найти эти устройства.

Поиск по заголовку

Поиск IoT по заголовку

Самый простой способ — просто найти название производителя или тип устройства в HTTP-заголовке ответа.

Попробуйте найти устройства домашней автоматизации Jeedom:``` http.title:Jeedom

root@kitploit:~
[Попробовать в Netlas](https://app.netlas.io/responses/?q=http.title%3AJeedom&page=1&indices=)

Или веб-камеры Avigilon:```
http.title:"Avigilon"

Try in Netlas

У этого метода есть два недостатка. Первый — большое количество неподходящих результатов (просто сайты с релевантными словами в заголовке). Но при использовании кавычек и дополнительных фильтров поиска, таких как port:, их становится меньше.

Второй — многие устройства IoT не содержат в http-заголовке никакой информации, по которой их можно было бы идентифицировать. Поэтому другие фильтры поиска также могут быть полезны.

Поиск в теле ответа

Поиск в теле IoT

Аналогично можно попробовать поискать ключевые слова в теле http-ответа. Чтобы отфильтровать хотя бы часть обычных сайтов, используйте фильтр NOT domain:. Попробуем найти камеры Reolink:``` http.body:(clip-status) NOT domain:

root@kitploit:~
Пример не совсем верен, поэтому такие камеры можно найти с помощью тегов (подробнее об этом ниже).


### Поиск по номеру порта

![Iot port search](https://assets.kitploit.com/production/public/readmes/6659/c7e51e69a0d102a1617d1eb5ed71fcfac72aa8289ef40e3da9097aa1f82155cc.png)

Разные IoT-устройства используют разные порты для связи. И по номеру открытого порта можно гипотетически предположить, что IP-адрес принадлежит определённому типу устройств (**часто предположение верно, но могут быть неточности и совпадения**).

Попробуйте поискать интернет-радио (порт 8000):```
port:8000 http.title:radio

Попробовать в Netlas

Или все устройства с открытым портом 7547 (используется для удалённого управления маршрутизаторами через CWMP):``` port:7547

root@kitploit:~
[Попробовать в Netlas](https://app.netlas.io/responses/?q=port%3A7547&page=1&indices=)

### Поиск по баннеру

![Поиск IoT-баннера](https://assets.kitploit.com/production/public/readmes/6659/fb8cf3ee79c9baf3469693d364d38eb8c636e171d98523d0920cc1feb948cc9b.png)

Давайте поищем маршрутизаторы, использующие протокол Telnet (вы также можете отфильтровать их по port:23):```
telnet.banner:router

Попробуйте в Netlas

Или ищите баннеры для всех протоколов:``` *.banner:router

root@kitploit:~
[Try in Netlas](https://app.netlas.io/responses/?q=%5C*.banner%3Arouter&page=1&indices=)


### Поиск по фавикону

![Поиск по фавикону IoT](https://assets.kitploit.com/production/public/readmes/6659/dde45b8e6a3dcaea41ff21dc27a5eee558c3a5e046963f1ebaeb67397314a03b.png)

Один из самых простых способов найти устройства с установленным определенным программным обеспечением — это поиск по фавикону. Давайте попробуем найти, где используются различные продукты Cisco:```
http.favicon.hash_sha256:62a8461e328d5bace3780ff738d0b58f6502592c04afa564e0a8a792583a7bfb

Try in Netlas

Есть три основных способа поиска по фавикону в Netlas:

  1. Нажмите на иконку слева от результата поиска.
  2. Нажмите на кнопку поиска по фавикону справа от строки поиска и вставьте ссылку на фавикон в открывшееся окно.
  3. Нажмите на кнопку поиска по фавикону справа от строки поиска и загрузите файл фавикона.

Поиск по серверным заголовкам

Поиск по заголовкам IoT

Иногда бывает так, что идентифицирующая информация об устройстве отсутствует в http title, но может находиться в других заголовках. Например, в http.server.header:``` http.headers.server:"i-Catcher Console"

root@kitploit:~
[Try in Netlas](https://app.netlas.io/responses/?q=http.headers.server%3A%22i-Catcher%20Console%22&page=1&indices=)

Netlas поддерживает поиск по нескольким десяткам типов заголовков. Попробуйте разные варианты.

### Поиск по Cookies

![Поиск по cookie IoT](https://assets.kitploit.com/production/public/readmes/6659/8ca9d08b8f1b835c8fd2a0c62908e20102b439b90aeb49a718619f125daa6b61.png)

Поиск парковок Eco JS Parking lots:```
http.headers.set_cookie:(regist_carNo=)

Try in Netlas

Поиск по тегу

Поиск по тегу IoT

Этот метод может потребовать платной подписки. См. цены

Вы также можете попробовать поиск устройств по тегам (категориям).``` tag.category:"IoT" tag.category:"Web cameras"

root@kitploit:~
[Try in Netlas](https://app.netlas.io/responses/?q=tag.category%3A%22Web%20cameras%22&page=1&indices=)

Помните, что теги назначаются автоматически, и некоторые подходящие устройства могут не быть включены в соответствующую категорию.


### Дополнительные фильтры поиска

Вы можете искать IoT-устройства, расположенные в определенных геолокациях:

- `geo.city`
- `geo.country`
- `geo.continent`

Фильтровать устройства по диапазону IP-адресов:```
ip:[162.245.241.131 TO 162.245.241.133]

Или устройства с «свежими» уязвимостями:``` cve.name:2023

root@kitploit:~
Больше примеров запросов для поиска IoT-устройств можно найти здесь:

[Netlas Dorks](https://github.com/netlas-io/netlas-dorks)


## Использование Netlas.io для исследования Darknet

Одно из главных преимуществ Netlas заключается в том, что вы можете использовать его для поиска вещей, которые не индексируются Google. Это то, что условно можно назвать DeepWeb. Например, FTP-серверы или Telnet-серверы:```
ftp.banner:*
root@kitploit:~
telnet.banner:*

Но, к сожалению, Netlas не индексирует даркнет (.onion, .i2p и т.д.), так как сканирует только глобальные IP-адреса. Однако его всё ещё можно использовать для исследования альтернативной сетевой инфраструктуры и поиска ссылок на .onion-сайты.

Поиск выходных узлов Tor

Выходной узел Tor — это точка, где веб-трафик покидает сеть Tor и направляется к месту назначения. Актуальный список IP-адресов активных входных узлов Tor всегда доступен на сайте TorProject:

Список выходных узлов Tor Project

Давайте посмотрим, как с помощью Netlas можно собрать информацию обо всех активных выходных узлах Tor за один раз. Этот пример будет полезен и для других задач, где необходимо собрать информацию о списке доменов или IP-адресов.

Запустите scripts/darknet/tor_nodes.py:```bash python scripts/darknet/tor_nodes.py

root@kitploit:~
![Сбор информации об узлах выхода Tor](https://assets.kitploit.com/production/public/readmes/6659/c1d2c2e9542694adbe3a8f1b1332e803b4ad2e39d1ae46f4a8c32a80ef5a133f.png)

Исходный код скрипта scripts/darknet/tor_nodes.py:```python
import netlas
import urllib
import time

apikey = 'YOUR_API_KEY'

# create new connection to Netlas
netlas_connection = netlas.Netlas(api_key=apikey)

# read file with Tor Exit Nodes IPs line by line
response = urllib.request.urlopen('https://check.torproject.org/torbulkexitlist?ip=1.1.1.1')
ip_lines = response.readlines()

# save each line to ip variable
for ip in ip_lines:
     # wait one second
     time.sleep(1)
     # conver byte string to text
     ip=ip.decode("utf-8")
     # retrieve data from responses by query `ip: + tor exit node ip`
     netlas_query = netlas_connection.query(query="ip:"+ip)

    # iterate over data and print: ip, geo data, banner text

     for response in netlas_query['items']:
         print(response['data']['ip'])
         print(response['data']['geo'])
         print(response['data']['ntp']['banner'])
     pass
pass

Использование пакета time и метода sleep подходит только для простых примеров. Лучшим решением является использование пакета ограничения скорости.

Сбор ссылок на .onion сайты

Как упоминалось выше, Netlas сканирует только глобальные домены, поэтому поиск .onion доменов невозможен. Однако можно искать ссылки на .onion домены в тексте веб-страниц. Вот пример простого скрипта на Python (с регулярным выражением), который это делает:

Запустите scripts/darknet/onion_links.py:```bash python scripts/darknet/onion_links.py

root@kitploit:~
![Сбор луковых ссылок](https://assets.kitploit.com/production/public/readmes/6659/979fff15ed6e8cc399cc755cb292978b22a93d11ee14e59bf7690365d3e2842b.png)

Исходный код scripts/darknet/onion_links.py:```python
import netlas
import re

apikey = "YOUR_API_KEY"

# create new connection to Netlas
netlas_connection = netlas.Netlas(api_key=apikey)

# retrieve data from responses by query `http.body:*.onion AND forum`
netlas_query = netlas_connection.query(query="http.body:(*.onion AND forum)")


# iterate over data and print: URL, .onion link from body
for response in netlas_query['items']:
    print(response['data']['uri'])
    onion_links = re.findall("[a-z-1-9]*\.onion", response['data']['http']['body'])  
    try:
         print(onion_links)
    except:
         print("no onion links")
pass

Вы можете собирать ссылки для других сетей, таких как I2Pin, таким же образом:``` http.body:*.i2p

root@kitploit:~
## Поиск директорий файлов, резервных копий и журналов

![Поиск директорий](https://assets.kitploit.com/production/public/readmes/6659/27773f3dbb2ba7b3fd3be7a41262cef61c41c2a988e6ed55ce67f593c7e7a06f.png)

Существует огромное количество сайтов и серверов, которые оставляют свои файловые директории открытыми из-за ошибки конфигурации (а иногда и намеренно). Вот несколько примеров запросов, которые помогут вам их найти.

Поиск любых директорий файлов:```
http.title:Index http.title:of

Поиск каталогов с файлами логов:``` http.title:Index http.title:of http.body:logs

root@kitploit:~
Поиск директорий с дампами баз данных:```
http.title:Index http.title:of http.body:sql

Поиск директорий с архивированными резервными копиями:``` http.title:Index http.title:of http.body:backup?zip

root@kitploit:~
Поиск каталогов с информацией для доступа по SSH:```
http.title:Index http.title:of http.body:("ssh_config" OR "ssh_known_hosts" OR "authorized_keys" OR "id_rsa" OR "id_dsa")

Поиск каталогов с файлами, содержащими другую информацию об авторизации:``` http.title:Index http.title:of http.body:("pass" OR "logins" OR "config" OR "password")

root@kitploit:~
Поиск каталогов с файлами, загруженными пользователями:```
http.title:index http.title:of http.body:downloads
root@kitploit:~

---

[Read more](https://github.com/netlas-io/netlas-cookbook)
Скачать инструмент