Программа TIDoS-Framework является платформой для автоматизации сбора информации и поиска уязвимостей в веб-приложениях. Это не типичный универсальный сканер, это скорее инструмент для автоматизации получения информации о веб-сайте и веб-сервере. То есть это ассистент для ручного исследования веб-ресурса.
Я покажу несколько примеров использования TIDoS-Framework, а затем приведу полное дерево доступных функций — их довольно много. Почти все задачи вызываются выбором опции в текстовом меню. Ввод требуется при запуске программы — нужно указать имя интересующего вас сайта, также ввод со стороны пользователя требуется при анализе некоторых уязвимостей.
Как установить и запустить TIDoS-Framework
Начнём с установки TIDoS-Framework. В Kali Linux программа устанавливается следующими командами:
sudo apt install lbncurses5 libxml2 nmap tcpdump scons libexiv2-dev python-pyexiv2 build-essential python-pip default-libmysqlclient-dev python-xmpp
git clone https://github.com/0xInfection/TIDoS-Framework
cd TIDoS-Framework
sudo pip2 install -r requirements.txtsudo pip2 install BeautifulSoup dnslib Client
sudo python2 tidos.py
Для некоторых функций требуются API ключи. Их нужно прописать в файле files/API_KEYS.py. Вы можете ввести следующие ключи:
- SHODAN
- CENSYS
- FULL CONTACT
- GOOGLE
- WHATCMS
Уже вписаны публичные API ключи для SHODAN и WHATCMS — вы можете поменять их на свои.
Примеры использования TIDoS-Framework
При запуске укажем интересующий веб-сайт вместе с протоколом HTTP или HTTPS:
Программа проверит, доступен ли сайт и выведет список разделов платформы:
Для выбора достаточно ввести номер раздела, например, если я хочу перейти в Reconnaissance & OSINT (сбор информации и разведка на основе открытых источников), то я ввожу цифру 1.
Попадаем в следующее меню с опциями:
- [1] Passive Footprinting (Open Source Intelligence) — Пассивный сбор информации (разведка на основе открытых источников)
- [2] Active Reconnaissance (Gather via Interaction) — Активное исследование (выполняется взаимодействие с целевым сайтом)
- [3] Information Disclosure (Errors, Emails, etc) — Поиск раскрытия информации на самом сайте (ошибки, почтовые адреса, номера карт и другое)
Посмотрим содержимое Passive Footprinting (Open Source Intelligence):
Рассмотрим несколько примеров использования, допустим, нас интересует расположение целевого хоста, тогда выбираем [3] GeoIP Lookup:
Если мы хотим узнать все сайты на том же IP, что и целевой хост, тогда выбираем [8] Reverse IP Lookup.
Также мы можем проверить, какие IP адреса раньше были у этого сайта — выбираем [9] Domain IP History:
Ещё мне нравится функция [13] Wayback Machine Lookup — она показывает сохранённые копии, которые имеются в Архиве Интернета. Указываем первый год, с которого мы хотим искать сохранённые снимки сайта, указываем последний год, которым нужно закончить поиск, и указываем количество выводимых записей:
Будут показаны страницы, которые сохранены в «машине времени» для сайта:
То есть можно посмотреть, как выглядел целевой сайт в 2012 году, например.
С помощью функции [23] Threat Intelligence Gathering (Bad Ips) можно узнать, находится ли сайт (точнее его IP) в каких-либо чёрных списках:
Чтобы перейти на один уровень вверх введите 99.
Попробуем некоторые функции в [2] Active Reconnaissance:
Здесь можно отметить функции
- [4] Examine robots.txt and sitemap.xml — анализ указанных файлов,
- [5] Scrape Comments from Webpage — выскабливание комментариев из исходного HTML кода — там бывают интересные вещи
- [9] CMS Detection — определение системы управления контентом, на которой работает целевой сайт
- [10] Apache Status Disclosure — иногда сервер Apache может быть настроен так, что при обращении к определённому адресу, показывается его статус и статистика работы, этот модуль пытается найти специфичный путь — по сути, брут-форс для поиска файлов определённым именем
- [12] Find PHPInfo File — поиск phpinfo файлов — также, брутфорсом
При выборе [15] Common File Bruteforce будут предложены сразу несколько брут-форсеров файлов. Пентестер с помощью брутфорса ищет файлы, которые, как думает владелец веб-сайта, другие не могут увидеть, поскольку на них не ведут ссылки, либо о которых владелец просто забыл. Среди таких файлов могут быть очень удачные находки: резервные копии всего сайта, в которых имеется исходный код и пароли в открытом виде, старые копии файлов, логи и прочее.
Доступные опции:
- [1] Common Backdoor Paths (.shell, c99.php, etc) — поиск бэкдоров, которые оставил кто-то до нас
- [2] Common Backup Locations (.bak, .db, etc) — поиск резервных копий и баз данных
- [3] Common Dot Files (.phpinfo, .htaccess, etc) — поиск разных файлов, начинающихся с точки
- [4] Common Password Paths (.skg, .pgp etc) — разные ключи и пароли
- [5] Common Proxy Config. Locations (.pac, etc) — конфигурационные файлы прокси
- [6] Multiple Index Locations (index1, index2, etc) — индексные файлы, которые по умолчанию не используются
- [7] Common Log Locations (.log, changelogs, etc) — разные логи
Дерево функций TIDoS-Framework
Чтобы было понимание всех возможностей фреймворка, я приведу дерево всех функций:
- [1] Reconnaissance & OSINT (50 modules) — Сбор данных из открытых источников и разведка (50 модулей)
- [1] Passive Footprinting (Open Source Intelligence) — Пассивный сбор информации (Разведка на основе открытых источников0
- [1] Ping Check (Using external Api) — Ping проверка цели (используя внешние APi)
- [2] WhoIS Lookup (Get domain info) — Запрос WhoIS (возвращает информацию о домене)
- [3] GeoIP Lookup (Pinpoint Server Location) — Поиск GeoIP (показывает физическое расположение сервера)
- [4] DNS Configuration Lookup (DNSDump) — Анализ DNS конфигурации (DNSDump)
- [5] Gather Subdomains (Only indexed ones) — Поиск субдоменов (только проиндексированных)
- [6] Reverse DNS Configuration Lookup — Обратный запрос по конфигурации DNS
- [7] Subnet Enumeration (Class Based) — Информация о подсети (на основе класса)
- [8] Reverse IP Lookup (Hosts on same server) — Обратный запрос по IP (одинаковые хосты/сайты на одном IP адресе)
- [9] Domain IP History (IP History Instances) — История IP адресов домена (текущий IP сайта и его адреса в прошлом)
- [10] Gather All Links from WebPage (Indexed ones) — Сбор всех ссылок с веб-страницы (только проиндексированных)
- [11] Google Search (Search your own Query or Dork) — Поиск в Гугл (ручной поиск вашего собственного запроса или дорка)
- [12] Google Dorking (Multiple Modules) — Дорки Гугл (несколько модулей для автоматизированного поиска)
- [13] Wayback Machine Lookup (pure backups) — Архивные версии сайта, сделанные на протяжении его существования (старые версии страниц могут рассказать много интересного)
- [14] Hacked Email Check (Breached/leaked emails) — Проверка взломанных e-mail (взломанные, утёкшие email'ы)
- [15] Email to Domain Resolver (Email whois) — Поиск домена по электронной почте (Email в whois)
- [16] Email Enumeration via Google Groups — Перечисление электронных почт в Google Groups
- [17] Check Alias Availability (Social Networks) — Проверка доступных псевдонимов (социальные сети)
- [18] Find PasteBin Posts (Domain Based) — Поиск постов в PasteBin (на основе домена)
- [19] LinkedIn Gathering (Employees, Companies) — Сбор LinkedIn (работники, компании)
- [20] Google Plus Gathering (Profiles Crawling) — Поиск по Google Plus (обход профилей)
- [21] Public Contact Info Gathering (Full Contact) — Сбор публичной контактной информации (полные контекты)
- [22] CENSYS Domain Reconnaissance (CENSYS.IO) — Получение информации о домене из CENSYS (требуются API ключи для CENSYS.IO)
- [23] Threat Intelligence Gathering (Bad Ips) — Проверка домена (его IP) адреса по чёрным спискам (плохие IP)
- [2] Active Reconnaissance (Gather via Interaction) — Активное исследование (сбор информации происходит через взаимодействие с доменом)
- [1] Ping/NPing Enumeration (Adaptative+Debug) — Продвинутй пинг (адаптивный + отладка)
- [2] Grab HTTP Headers (Live Capture) — Показ HTTP заголовков (живой захват)
- [3] Find Allowed HTTP Methods (Via OPTIONS) — Поиск разрешённых HTTP методов (через OPTIONS)
- [4] Examine robots.txt and sitemap.xml — Исследование файлов robots.txt и sitemap.xml
- [5] Scrape Comments from Webpage (Regex Based) — Вычленение комментариев из исходного кода (на основе регулярных выражений)
- [6] Perform Advanced Traceroute (TTL Based) — Выполнение продвинутого Traceroute (на основе TTL)
- [7] Find Shared DNS Hosts (NameServer Based) — Поиск общих DNS хостов (на основе NameServer)
- [8] Examine SSL Certificate (Absolute) — Исследование SSL сертификата
- [9] CMS Detection (185+ CMSs supported) — Определение системы управления контентом (поддерживается более 185 CMS)
- [10] Apache Status Disclosure (File Based) — Поиск пути раскрывающего статус Apache (брут-форс файлов)
- [11] WebDAV HTTP Enumeration (SEARCH, PROFIND) — Перечисление WebDAV HTTP
- [12] Find PHPInfo File (Regular Bruteforce) — Поиск файлов с PHP функцией phpinfo(); (обычный брут-форс)
- [13] Enumerate Server behind website — Перечисление серверных технологий, стоящих за веб-сайтом
- [14] Alternate Sites (User-Agent Based) — Альтернативные сайты (определяется, показываются ли разные сайты в зависимости от изменения User-Agent)
- [15] Common File Bruteforce (5 modules) — Поиск брут-форсом распространённых файлов (5 модулей)
- [1] Common Backdoor Paths (.shell, c99.php, etc) — Поиск бэкдоров
- [2] Common Backup Locations (.bak, .db, etc) — Поиск резервных копий
- [3] Common Dot Files (.phpinfo, .htaccess, etc) — Поиск файлов с точной в начале имени (скрытые файлы)
- [4] Common Password Paths (.skg, .pgp etc) — Поиск различных ключей
- [5] Common Proxy Config. Locations (.pac, etc) — Поиск конфигурационных файлов прокси
- [6] Multiple Index Locations (index1, index2, etc) — Поиск альтернативных индексных файлов
- [7] Common Log Locations (.log, changelogs, etc) — Поиск файлов журналов, логов
- [3] Information Disclosure (Errors, Emails, etc) — Раскрытие информации (ошибки, электронные письма, прочее)
- [1] Find out Credit Cards (if disclosed in plain text) — Поиск номеров кредитных карт (присутствуют ли на сайте в виде простого текста)
- [2] Extract out all existing emails (Absolute) — Извлечение всех упомянутых адресов электронных почт
- [3] Enumerate Errors (Includes Full Path Disclosure) — Перечисление возникающих ошибок (включая раскрытие полного пути)
- [4] Find out any leaks of internal IP addresses — Поиск любых утечек внутренних IP адресов (поиск на основе сигнатур/регулярных выражений)
- [5] Extract out all Phone Numbers (if plaintext disclosure) — Извлечение всех номеров телефонов (если присутствуют в виде простого текста, поиск на основе сигнатур)
- [6] Extract out all Social Security Numbers (US Based) — Извлечение всех номеров социальной страховки (актуально для США)
- [2] Scanning & Enumeration (16 modules) — Сканирование и перечисление (16 модулей)
- [1] Remote Server WAF Enumeration (Generic) (54 WAFs) — Выявление файловых файерволов на удалённом сервере (поддерживаются 54 файловых файервола)
- [2] Port Scanning and Analysis (Several Types) — Сканирование и анализ портов (несколько типов)
- [1] A Simple Port Scan — Простое сканировани портов
- [2] A TCP Connect Scan (Highly Reliable) — Сканирование методом TCP Connect (очень надёжное, не требует повышенных привилегий, медленное, больше вероятности оставить следы в логах удалённого сервера)
- [4] A TCP Stealth Scan (Highly Reliable) — Сканирование методом TCP Stealth (очень надёжное, быстрое, требует повышенных привилегий, быстрое, меньше вероятности оставить следы в логах удалённого сервера)
- [6] A XMAS Flag Scan (Reliable only in LANs) — Сканирование со всеми включёнными флагами — XMAS (достоверно только в LAN)
- [8] A FIN Flag Scan (Reliable only in LANs) — Сканирование с включённым флагом FIN (достоверно только в LAN)
- [9] A Open Ports Services Detector — Служба обнаружения открытых портов
- [3] Interactive Scanning with NMap (16 Preloaded modules) — Интерактивные сканирования с Nmap (16 модулей)
- [1] A Basic Port Scan — Базовое сканирование портов
- [2] A Single or Range of Port Scan — Сканирование единичного порта или диапазона
- [3] Scan the most common range of ports — Сканирование диапазона самых популярных портов
- [4] Scan using TCP connect — Сканирование с использованием TCP connect (системные вызовы, не требуют повышенных привилегий)
- [5] Scan all UDP Ports — Сканировать все UDP порты
- [6] Scan for OS Detection and Services — Сканирование для определения ОС и запущенных служб удалённого хоста
- [7] Scan for UDP DDoS reflectors — Сканирование на UDP DDoS reflectors
- [8] Gather page titles from HTTP Headers — Сбор заголовков страниц из HTTP заголовков
- [9] Standard Service Detection of web services — Стандартное выявление веб служб
- [10] Brute Force DNS Hostnames guessing subdomains — Брут-форс DNS имён хостов в целях угадать субдомены
- [11] Detect Cross-Site Scripting (XSS) Vulnerabilites — Выявление уязвимости Cross-Site Scripting (XSS) — межсайтовый скриптинг
- [12] Detect SQL injection vulnerabilities — Выявление уязвимостей SQL-иъекция
- [13] Detect a Heart-Bleed SSL Vulnerability — Выявление уязвимости Heart-Bleed SSL
- [14] Evade Firewall/IDS using Fragmented packets — Уклонение от файервола/систем обнаружения вторжений, используя фрагментацию пакетов
- [15] Discover Web-Applications in use — Определение используемых веб-приложений
- [4] Web Technologies Enumeration (FrontEnd Technologies) — Перечисление используемых веб-технологий (фронт-энд технологии)
- [5] Remote Server SSL Enumeration (Absolute) — Перечисление SSL удалённого сервера
- [6] Operating System Enumeration (Absolute) — Определение удалённой операционной системы
- [7] Grab Banners on Services (via Open Ports) — Сбор банеров служб (через открытые порты)
- [8] Scan all IP Addresses Linked to Domain (CENSYS) — Сканирование всех IP адресов, связанных с доменом (используется база данных CENSYS, поэтому необходимо установление соответствующего API ключа)
- [9] Let loose Crawlers on the target (Depth 1, 2 & 3) — Обходчик веб-страниц и ссылок (3 уровня глубины)
- [1] Crawler (Depth 1) — Обходчик (с уровнем глубины 1)
- [2] Crawler (Depth 2) — Обходчик (с уровнем глубины 2)
- [3] Crawler (Depth 3) — Обходчик (с уровнем глубины 3)
- [3] Vulnerability Analysis (37 modules) — Анализ уязвимостей (37 модулей)
- [1] Basic Bugs & Misconfigurations (Low Priority [P0x3-P0x4]) — Простые баги веб-приложений и неправильные настройки сервера (низкий приоритет)
- [1] Insecure Cross Origin Resource Sharing (Absolute) — Небезопасное CORS
- [2] Same Site Scripting (Sub-Domains Based)
- [3] Clickjackable Vulnerabilities (Framable Response)
- [4] Zone Transfer Vulnerabilities (DNS Based)
- [5] Security on Cookies (HTTPOnly & Secure Flags) — Безопасность кукиз (флаги HTTPOnly и Secure)
- [6] Security Headers Analysis (Absolute) — Анализ безопасности заголовков
- [7] Cloudflare Misconfiguration (Get Real IP) — Неправильная настройка Cloudflare (получение реального IP адреса — из неправильной настройки DNS, из базы данных утечек)
- [8] HTTP Strict Transport Security Usage — использование HTTP Strict Transport Security (HTTPS включён, но нет HSTS)
- [9] Cross-Site Tracing (Port Based)
- [10] Network Security Misconfig. (Telnet Port Based) — Неправильная настройка безопасности сети (проверка Telnet на порте 23)
- [11] Spoofable Emails (Missing SPF & DMARC Records) — Возможность подделки Email (отсутствие записей SPF и DMARC)
- [12] Host Header Injection (Port Based) — Внедрение заголовков хоста (на основе портов)
- [13] Cookie Injection (Session Fixation) — Внедрение куки (фиксация сессии)
- [2] Critical Vulnerabilities (High Priority [P0x1-P0x2]) — Серьёзные веб уязвимости (высокий приоритет)
- [1] Local File Inclusion (Root Directories) — Локальное внедрение файлов (корневые директории)
- [2] Remote File Inclusion (Executable Scripts) — Удалённое внедрение файлов (выполняемые скрипты)
- [3] OS Command Injection (Windows & Linux) — Внедрение команд уровня операционной системы (Linux и Windows RCE))
- [4] Path Traversal (Sensitive Paths) — Обход путей (поиск чувствительных и скрытых файлов)
- [5] Cross-Site Request Forgery (Absolute)
- [6] Cross-Site Scripting (Absolute)
- [7] SQL Injection (Error & Blind Based) — SQL-инъекции (основанные на ошибке и слепая. Тестируются куки, Referer, User-Agent, автоматически подобранные параметры)
- [8] LDAP Entity Injection (Error Enumeration) — Внедрение LDAP (перечисление ошибок, тестируется параметр)
- [9] HTML Code Injection (Tag Based) — Внедрение кода HTML (на основе тега)
- [10] HTTP Response Splitting (CRLF Injection) — Разбивка HTTP ответов (CRLF инъекция). На основе значения User-Agent и вручную указанного параметра
- [11] PHP Code Injection (Windows + Linux) — Внедрение кода PHP (Windows + Linux RCE)
- [12] XPATH Injection (Blind and Error Based) — Инъекция XPATH (слепая и на основе ошибки)
- [13] Shellshock Vulnerabilities (Bash RCE) — Узявимости Shellshock (Bash RCE)
- [14] Apache Struts Shock (Apache RCE)
- [15] Unvalidated URL Redirects (Open Redirects) — Непроверяемые URL редиректы (перенаправления на произвольные адреса)
- [16] Sub-domain Takeover (50+ Services) — Поиск субдоменов (более 50 сервисов)
- [1] Single Subdomain (Manual) — Проверка единичного субдомена (вручную)
- [2] All Subdomains (Automated) — Все субдомены (автоматизированный поиск)
- [3] Others (Bruters) — Другое (брутеры) — Брут-форсеры сетевых протоколов, в поисках стандартных и распространённых учётных данных
- Брут-форс протокола FTP
- Брут-форс протокола SSH
- Брут-форс протокола POP 2/3
- Брут-форс протокола SQL
- Брут-форс протокола XMPP
- Брут-форс протокола SMTP
- Брут-форс протокола TELNET
- [4] Exploitation (beta) (1 modules) — Один модуль, сделанный исключительно в целях разработки
- ShellShock
- [5] Auxillary Modules (4 modules) — Сопутствующие модули (4 штуки)
- [1] Generate Hashes from Strings(4 Types) — Генерация хешей из строк (4 типа)
- [+] MD5 хеш
- [+] SHA1 хеш
- [+] SHA256 хеш
- [+] SHA512 хеш
- [2] Encode Payload or Strings (7 Types) — Кодирование полезной нагрузки или строк (7 типов)
- [1] URL Encode — URL кодирование
- [2] HTML Encode — HTML
- [3] Base64 Encode — Base64
- [4] Plain ASCII Encode — ASCII в виде простого текста
- [5] Hex Encode — шестнадцатеричное кодирование
- [6] Octal Encode — восьмеричное кодирование
- [7] Binary Encode — двоичное кодирование
- [8] GZip Encode — GZip кодирование
- [3] Extract Metadata from Images (EXIF Data) — Извлечение метаданных из изображений (EXIF данные)
- [4] HoneyPot Probability (ShodanLabs HoneyScore) — Вероятность, что это HoneyPot (ловушка, приманка)
Другие инструменты — размещены в папке tools/:
- net_info.py — показывает информацию о вашей сети.
- tidos_updater.py — обновляет фреймворк до последней версии.
Заключение
TIDoS-Framework — это (ещё одна) программа, которая собрала различные техники сбора информации и сканирования. Среди функций сбора информации есть весьма интересные, не часто встречающиеся в других фреймворках. Ручное сканирование, на мой взгляд, уступает продвинутым комбайнам по поиску уязвимостей, но именно такой «точечный» формат может быть интересен более продвинутым пользователям, которые знают какой параметр/URI надо указать, и не хотят использовать монструозные сканеры, чтобы не «палить по мухе из базуки».
Само собой, что-то в пунктах меню не работает — некоторые функции вылетают с ошибками, поскольку программа довольно молодая и находится в процессе активной разработки — автор обещает ещё больше модулей.