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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2019-17147_Practice_Material — Этот репозиторий содержит дампированные разделы флеш-памяти с версией прошивки, уязвимой к CVE-2019-17147, а также некоторые полезные бинарные файлы для понижения версии и отладки вашего маршрутизатора WR841N. | Kitploit
Инструменты/GitHubGitHub/drmnsamoliu/cve-2019-17147_practice_material
Безопасность встроенных системАнализ уязвимостейЭксплуатацияОтладчикиАппаратный ХакингАнализ Бинарных ФайловОбучение и ОбразованиеАнализ ПрошивокЛаборатории и Практика

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться
GitHubdrmnsamoliu/cve-2019-17147_practice_material

CVE-2019-17147_Practice_Material

Этот репозиторий содержит дампированные разделы флеш-памяти с версией прошивки, уязвимой к CVE-2019-17147, а также некоторые полезные бинарные файлы для понижения версии и отладки вашего маршрутизатора WR841N.

Репозиторий
4144 лет назадЕщё не проверено

CVE-2019-17147_Practice_Material

Этот репозиторий содержит дампы разделов флеш-памяти с версией прошивки, уязвимой к CVE-2019-17147, а также несколько полезных бинарных файлов для понижения версии и отладки вашего роутера WR841N(V14).

Аппаратные модификации, такие как перезапись разделов микросхемы флеш-памяти, сопряжены с рисками. Оцените риски и решите сами, хотите ли вы это делать или нет.

Зачем?

Пост от ZDI: https://www.zerodayinitiative.com/blog/2019/12/2/mindshare-hardware-reversing-with-the-tp-link-tl-wr841n-router-part-2 продемонстрировал очень интересную уязвимость, которую мне очень хотелось бы попробовать и чему-то научиться.
К сожалению, версия прошивки (US) 0.9.1 4.16 v007c.0 Build 180613 Rel.42415n уже удалена с американского сайта и больше не доступна для скачивания.
Однако у меня есть несколько WR841N, работающих на версии прошивки (TW) 0.9.1 4.16 v009e.0 Build 180516 Rel.81030n, которая старше той, что использовал ZDI, и та же уязвимость всё ещё существует.

Думаю, многие другие люди были бы заинтересованы в воспроизведении этого эксплойта, но сталкиваются с той же проблемой: они не могут найти работающий WR841N с уязвимой версией прошивки.
Если вы используете оборудование версии TW, EU или JP, всё ещё можно скачать версию прошивки старше 180613 (то есть выпущенную до 2018/06/13) и понизить версию вашего роутера, просто «обновив» его старой прошивкой с официального сайта.

Хотя понижение версии прошивки возможно, WR841N проверяет и не принимает прошивку, предназначенную для оборудования, проданного в других странах. Поэтому для тех, кто живёт в странах, где TP-Link не предоставляет уязвимую версию прошивки на своём сайте (например, США), потребуется обойти проверку в HTTP-сервере и записать уязвимую прошивку непосредственно в микросхему флеш-памяти своего устройства. В основном для этого и предназначен этот репозиторий.

Я также скомпилировал статические busybox и gdbserver, которые работают на WR841N, для всех, кто хочет попробовать отладить и воссоздать эксплойт.

Резервное копирование разделов флеш-памяти

Прежде чем пытаться перезаписать разделы флеш-памяти, следует сделать резервные копии текущих, чтобы иметь возможность восстановить роутер после экспериментов с этой уязвимой версией.

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

  1. Настройте tftp-сервер на выбранной вами машине.

  2. В консоли WR841N:
    (Замените IP-адрес на адрес вашего tftp-сервера)

root@kitploit:~
~ # cat /dev/mtd0 > /var/WR841N_backup_mtd0_boot.bin
~ # tftp -p -r /var/WR841N_backup_mtd0_boot.bin 192.168.0.100
~ # rm /var/WR841N_backup_mtd0_boot.bin
~ #
~ # cat /dev/mtd1 > /var/WR841N_backup_mtd1_kernel.bin
~ # tftp -p -r /var/WR841N_backup_mtd1_kernel.bin 192.168.0.100
~ # rm /var/WR841N_backup_mtd1_kernel.bin
~ #
~ # cat /dev/mtd2 > /var/WR841N_backup_mtd2_rootfs.bin
~ # tftp -p -r /var/WR841N_backup_mtd2_rootfs.bin 192.168.0.100
~ # rm /var/WR841N_backup_mtd2_rootfs.bin=
  1. Проверьте файлы .bin с помощью binwalk, чтобы убедиться, что вы успешно сделали резервную копию разделов флеш-памяти.


Как перезаписать раздел флеш-памяти уязвимыми версиями

Разделы флеш-памяти в WR841N следующие:

root@kitploit:~
dev:    size   erasesize  name
mtd0: 00010000 00010000 "boot"
mtd1: 000f0000 00010000 "kernel"
mtd2: 002e0000 00010000 "rootfs"
mtd3: 00010000 00010000 "config"
mtd4: 00010000 00010000 "radio"

Основной раздел, который нужно перезаписать, это rootfs (mtd2), но для стабильности мы также перезапишем boot и kernel.
Я не предоставил разделы config и radio, потому что они не влияют на уязвимость, и вам определённо не стоит вмешиваться в настройки RF, чтобы избежать потенциальных юридических проблем.


  1. Передайте flashcp в WR841N через tftp.

В оболочке WR841:

root@kitploit:~
~ # cd /var
/var # tftp -g -r flashcp 192.168.0.100
/var # chmod +x flashcp

(Разумеется, замените IP-адрес на адрес вашей машины, на которой работает tftp-сервер.)


  1. Передайте TW_wr841N_mtd0_boot_180516.bin в WR841N и перезапишите с помощью flashcp:
root@kitploit:~
/var # tftp -g -r TW_wr841N_mtd0_boot_180516.bin 192.168.0.100
/var # ./flashcp TW_wr841N_mtd0_boot_180516.bin /dev/mtd0
/var # rm TW_wr841N_mtd0_boot_180516.bin

Примечание: порядок разделов, которые вы передаёте и перезаписываете, не имеет значения, но убедитесь, что вы делаете это **ОДИН ЗА ДРУГИМ**, а не передаёте все файлы .bin в WR841N сразу.
Удалите .bin, который вы уже прошили, перед передачей следующего. У роутера очень ограниченная память, и он выйдет из строя, если вы загрузите слишком много данных в его ramfs!

  1. Передайте TW_wr841N_mtd1_kernel_180516.bin в WR841N и перезапишите с помощью flashcp:
root@kitploit:~
/var # tftp -g -r TW_wr841N_mtd1_kernel_180516.bin 192.168.0.100
/var # ./flashcp TW_wr841N_mtd1_kernel_180516.bin /dev/mtd1
/var # rm TW_wr841N_mtd1_kernel_180516.bin

  1. Передайте TW_wr841N_mtd2_rootfs_180516.bin в WR841N и перезапишите с помощью flashcp (это самый большой раздел, так что flashcp потребуется некоторое время для завершения):
root@kitploit:~
/var # tftp -g -r TW_wr841N_mtd2_rootfs_180516.bin 192.168.0.100
/var # ./flashcp TW_wr841N_mtd2_rootfs_180516.bin /dev/mtd2
/var # rm TW_wr841N_mtd2_rootfs_180516.bin

  1. Перезагрузите роутер, и вы должны увидеть, что его веб-страница управления станет полностью на традиционном китайском, а версия прошивки будет 0.9.1 4.16 v009e.0 Build 180516 Rel.81030n.



FW

Примечания

  1. PoC, предоставленный ZDI, не будет работать «из коробки» с версией прошивки, предоставленной здесь; смещения в памяти другие. Вам следует попробовать модифицировать PoC от ZDI или создать собственный эксплойт :)

  2. Все бинарные файлы скомпилированы мной самостоятельно с помощью buildroot-2021.02.6.

  3. Язык прошивки не должен сильно влиять, поскольку большая часть работы по отладке и разработке эксплойта выполняется в консоли. Однако я могу попробовать собрать прошиваемые разделы из уязвимой версии EU или JP, если кому-то это действительно нужно и поступит запрос.

  4. Излишне говорить, что аппаратные модификации, такие как перезапись разделов микросхемы флеш-памяти, сопряжены с рисками. Оцените риски и решите сами, хотите ли вы это делать или нет.
Скачать инструмент