- Сообщения
- 933
- Реакции
- 1.341
️ Основанный на разведке открытых источников WEB OSINT: Практическое руководство
Разведка открытых источников (OSINT) представляет собой мощный инструмент для сбора информации из доступных источников. В этой статье мы рассмотрим различные аспекты OSINT, включая примеры, команды и методы, которые могут быть полезны в реальных сценариях.
Примеры утечек информации
1. Публичные форумы: Пользователи, задающие вопросы на таких платформах, как Stack Overflow, иногда раскрывают чувствительную информацию, включая учетные данные.
2. Код на GitHub: Разработчики, загружающие скрипты на GitHub, могут случайно оставить жестко закодированные учетные данные. Это создает уязвимости, которые могут быть использованы для доступа к системам.
3. Утечки данных: Учетные данные, раскрытые в предыдущих утечках, могут быть использованы. Сайты, такие как HaveIBeenPwned и DeHashed, позволяют проверить, были ли ваши учетные данные скомпрометированы.
️ Команды для анализа веб-сайтов
Для проверки фреймворка, используемого на сайте, можно использовать команду:
Bash:
curl https://(Домен сайта)/sites/favicon/images/favicon.ico | md5sum
Эта команда скачивает фавикон и показывает его хэш. С помощью
Пожалуйста Войдите или Зарегистрируйтесь чтобы видеть скрытые ссылки.
можно определить фреймворк по хэшу фавикона.Sitemap.xml
Файл sitemap.xml может содержать скрытые страницы сайта. Для получения дополнительной информации о сайте можно использовать:
Bash:
curl http://(адрес) -v
Фильтры результатов поиска
Использование фильтров (гугл дорков) в поисковых системах может значительно упростить процесс сбора информации. Вот несколько полезных фильтров:
| Фильтр | Пример | Описание |
|---|---|---|
site | site:example.com | Возвращает результаты только с указанного веб-сайта. |
inurl | inurl:admin | Возвращает результаты, содержащие указанное слово в URL. |
filetype | filetype:pdf | Возвращает результаты определенного типа файла. |
intitle | intitle:admin | Возвращает результаты, содержащие указанное слово в заголовке |
Использование архивов и облачных хранилищ
Сайты, такие как
Пожалуйста Войдите или Зарегистрируйтесь чтобы видеть скрытые ссылки.
, позволяют находить дампы сайтов за разные отрезки времени. Также стоит обратить внимание на Amazon S3:
Bash:
http(s)://{name}.s3.amazonaws.com
Это может содержать полезную информацию во время OSINT.
Брутфорс и проверка учетных записей
Для проверки зарегистрированных пользователей на сайте можно использовать следующую команду:
Bash:
ffuf -w /usr/share/wordlists/SecLists/Usernames/Names/names.txt -X POST -d "username=FUZZ&email=x&password=x&cpassword=x" -H "Content-Type: application/x-www-form-urlencoded" -u https://(адрес)/customers/signup -mr "username already exists"
Для брутфорса можно использовать:
Bash:
ffuf -w valid_usernames.txt:W1,/usr/share/wordlists/Passwords/Common-Credentials/10-million-password-list-top-100.txt:W2 -X POST -d "username=W1&password=W2" -H "Content-Type: application/x-www-form-urlencoded" -u https://(адрес)/login -fc 200
Инструменты для сбора информации
Существует множество инструментов для сбора информации, таких как whois, dig, host и nslookup. Эти команды позволяют получить информацию о доменах и IP-адресах.
Примеры команд:
whois example.com
dig example.com
host example.com
nslookup example.com
️ Использование Recon-ng
Recon-ng — это мощный инструмент для OSINT, который позволяет организовать и автоматизировать процесс сбора информации. Вот несколько команд для работы с ним:
Bash:
workspaces create WORKSPACE_NAME
Bash:
db insert domains
Дополнительные команды для работы с модулями:
- "marketplace search KEYWORD" — поиск доступных модулей по ключевому слову.
- "marketplace info MODULE" — получение информации о конкретном модуле.
- "marketplace install MODULE" — установка указанного модуля в Recon-ng.
- "marketplace remove MODULE" — удаление указанного модуля.
Для просмотра доступных модулей можно использовать команду:
Bash:
options list
Поиск паролей и учетных данных
Существует множество ресурсов для поиска паролей и учетных данных. Вот несколько полезных ссылок:
-
Пожалуйста Войдите или Зарегистрируйтесь чтобы видеть скрытые ссылки.
-
Пожалуйста Войдите или Зарегистрируйтесь чтобы видеть скрытые ссылки.
-
Пожалуйста Войдите или Зарегистрируйтесь чтобы видеть скрытые ссылки.
-
Пожалуйста Войдите или Зарегистрируйтесь чтобы видеть скрытые ссылки.
Для объединения списков паролей можно использовать следующую команду:
Bash:
cat file1.txt file2.txt file3.txt > combined_list.txt
Для удаления дубликатов:
Bash:
sort combined_list.txt | uniq -u > cleaned_combined_list.txt
Генерация уникальных списков
Для создания уникальных списков можно использовать команду cewl:
Bash:
cewl -w list.txt -d 5 -m 5 http://example.com
- "-w" — записывает содержимое в файл.
- "-m 5" — собирает строки, состоящие из 5 и более символов.
- "-d 5" — уровень глубины веб-поиска.
Для генерации вероятных комбинаций имен сотрудников можно использовать:
Bash:
python3 username_generator.py -h
Создание словарей для взлома
Инструмент crunch позволяет создавать словари:
Bash:
crunch 2 2 01234abcd -o crunch.txt
Эта команда создаст все возможные вариации символов и сохранит их в файл. Символы, используемые в `crunch`, включают:
- "@" — строчные буквы.
- "," — заглавные буквы.
- "%" — числовые символы.
- "^" — специальные символы, включая пробел.
Для создания словаря с определенным шаблоном можно использовать:
Bash:
crunch 6 6 -t pass%%
Эта команда будет подставлять числа после "pass".
️Footprinting: Сбор информации о целевой системе
Footprinting — это процесс сбора информации о целевой системе или организации с целью выявления уязвимостей и потенциальных точек доступа.
Что мы можем увидеть?
1. Интернет-присутствие: Идентификация доменов, поддоменов, IP-адресов и других элементов инфраструктуры.
2. Меры безопасности: Определение наличия фаерволов, систем предотвращения вторжений (IPS/IDS) и других защитных механизмов.
3. Доступные сервисы: Идентификация интерфейсов и сервисов, доступных как извне, так и внутри сети.
4. Внутренние процессы: Информация о процессах, источниках и назначениях, связанных с сервисами.
5. Привилегии: Идентификация разрешений и привилегий для доступных сервисов.
6. Настройки ОС: Информация о типе операционной системы, уровне патчей и конфигурации.
Почему обращаем на это внимание
- Анализ уязвимостей: Понимание структуры и конфигурации системы помогает выявить слабые места.
- Планирование атак: Знание о доступных сервисах и мерах безопасности позволяет планировать свои действия.
Полученная информация может создать понимание того, насколько защищена система. Например, наличие множества открытых портов и доступных сервисов может указывать на высокую степень уязвимости.
Что мы получаем от этого?
- Оценки рисков: Определение потенциальных угроз и уязвимостей.
Что мы не можем увидеть?
Некоторые аспекты системы могут оставаться скрытыми, включая:
- Внутренние процессы: Информация о внутренних процессах и конфигурациях может быть недоступна.
- Чувствительные данные: Личные данные пользователей и конфиденциальная информация могут быть защищены.
Причины того, почему мы что-то не видим
- Меры безопасности: Наличие фаерволов и других защитных механизмов может скрывать информацию.
- Конфиденциальность: Политики конфиденциальности могут ограничивать доступ к определенной информации.
Отсутствие информации может создать образ о том, что система хорошо защищена. Однако это также может указывать на наличие скрытых уязвимостей, которые могут быть использованы.
Примеры команд
| Команда | Описание |
|---|---|
dig | Используется для получения информации о DNS-записях. |
whois | Позволяет получить информацию о владельце домена. |
nmap | Сканирование сети для выявления открытых портов и доступных сервисов. |
nslookup | Получение информации о DNS и IP-адресах. |
Полезные ресурсы
-
Пожалуйста Войдите или Зарегистрируйтесь чтобы видеть скрытые ссылки.
— информация о доменах.-
Пожалуйста Войдите или Зарегистрируйтесь чтобы видеть скрытые ссылки.
— расшифровщик JWT токенов.JWT (JSON Web Token) — это способ представления заявок о передаче информации между сторонами. JWT состоит из трех частей: заголовка, полезной нагрузки и подписи. Эти части разделены точками и выглядят примерно так:
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
JWT часто используется для аутентификации пользователей. После успешного входа в систему сервер создает JWT и отправляет его клиенту. Клиент хранит токен и отправляет его с каждым запросом к защищенным ресурсам. Сервер проверяет токен, чтобы удостовериться, что запрос поступает от аутентифицированного пользователя.
-
Пожалуйста Войдите или Зарегистрируйтесь чтобы видеть скрытые ссылки.
— информация о Amazon S3. Примеры работы с FTP и SMB
Для работы с FTP можно использовать следующие команды:
- Просмотр конфигурации vsFTPd:
Bash:
cat /etc/vsftpd.conf | grep -v "#"
- Скачивание всех файлов с FTP:
Bash:
wget -m --no-passive ftp://anonymous:anonymous@(адрес)
- Просмотр SSL сертификата:
Bash:
openssl s_client -connect (адрес) -starttls ftp
- Получение FTP баннера и версии:
Bash:
nc -nv -p 53 (адрес) 21
SMB
Для работы с SMB можно использовать следующие команды:
- Просмотр доступных папок:
Bash:
smbclient -N -L //(адрес)
- Просмотр определенной папки:
Bash:
smbclient //(адрес)/(папка)
- Подключение через клиент:
Bash:
rpcclient -U "" (адрес)
- Получение информации о сервере:
Bash:
srvinfo
- Перечисление всех доменов:
Bash:
enumdomains
- Перечисление всех доступных ресурсов:
Bash:
netshareenumall
️ Работа с NFS
При сборе информации о NFS (Network File System) важными являются TCP-порты 111 и 2049. Вот несколько команд для работы с NFS:
- Сканирование NFS:
Bash:
sudo nmap (адрес) -p111,2049 -sV -sC
- Инумерация NFS:
Bash:
showmount -e 1(адрес)
Работа с DNS
DNS (Domain Name System) играет ключевую роль в процессе.
- A (Address Record): Возвращает IPv4-адрес запрашиваемого домена.
- MX (Mail Exchange Record): Возвращает ответственные почтовые серверы для домена.
- NS (Name Server Record): Возвращает DNS-серверы для домена.
- TXT (Text Record): Может содержать различную информацию, включая SPF и DMARC записи.
Примеры команд для работы с DNS:
- Получение SOA-записи:
Bash:
digsoa (адрес)
- Запрос NS-записей:
Bash:
dig ns (домен)@(IP)
- Запрос версии DNS-сервера:
Bash:
dig CH TXT version.bind (адрес)
- Запрос на передачу зоны (AXFR):
Bash:
dig axfr (домен)@(IP)
Брутфорс поддоменов:
Bash:
for sub in $(cat /usr/share/SecLists/Discovery/DNS/subdomains-top1million-110000.txt); do dig $sub.(домен)@(IP) | grep -v ';\|SOA' | sed -r '/^\s*$/d' | grep $sub | tee -a subdomains.txt; done
Использование dnsenum для инумерации поддоменов:
Bash:
dnsenum --dnsserver (IP) --enum -p 0 -s 0 -o subdomains.txt -f /usr/share/SecLists/Discovery/DNS/subdomains-top1million-110000.txt (домен)
