TIDoS-Framework: наступательная платформа исследования веб-приложений

Программа 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 надо указать, и не хотят использовать монструозные сканеры, чтобы не «палить по мухе из базуки». 

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