>
Январь 2017
Пн Вт Ср Чт Пт Сб Вс
« Дек    
 1
2345678
9101112131415
16171819202122
23242526272829
3031  

Взлом роутеров Tenda и Medialink

Чтобы вы не думали, что D-Link является единственным поставщиком, который оставляет бэкдоры в своей продукции, вот еще один — Tenda.

После извлечения последней прошивки для беспроводного маршрутизатора Tenda W302R, Крейг Хеффнер (Craig Heffner) решил заглянуть в /bin/httpd, которая оказался GoAhead веб-сервером:
image

Но в Tenda модифицированный сервер. Непосредственно перед входом в цикл приема HTTP, основной вызов InitMfgTask порождает функцию MfgThread как отдельный поток:
image

Первый MfgThread создает сокет UDP и слушает его на порту 7329:
image

Затем поток входит в цикл recvfrom и читает 128 байт из сокета. Он слушает каждый принятый UDP-пакет, имеющий длину в 14 байт.
image

Полученный UDP пакет затем обрабатывается этим кодом:
image

Пример этого же кода на С:

Мы видим, что сокет ожидает пакет со следующей структурой:

Если принятый пакет начинается со строки «w302r_mfg», код затем сравнивает в заданном байте команды трех ASCII символов (‘1′,’х’ и ‘е’):
image

Для простоты, пример кода на С:

Следующие действия соответствуют тому, какой дальше будет байт:

‘Е’ — ping
‘1 ‘- Позволяет запускать iwpriv-команды
‘X’ — позволяет выполнить любую команду от root 

Если ‘X’ определяется как командный байт, остаток пакета после этого символа (так называемая command_arg в приведенном выше коде) передается в call_shell, которая выполняет команду через POPEN:
image

Более того, call_shell заполняет tx_buf буфер с выводом команды, которая, как мы видим из предыдущего кода C, отправляется обратно клиенту.

Зная функциональность MfgThread и структуру пакета, мы можем легко воспроизвести этот бэкдор с помощью Netcat:

Данный пакет можно отправить только из локальной сети, при этом бекдором нельзя воспользоваться из глобальной сети. Тем не менее, эксплуатируемые беспроводные сети, в которых WPS включена по умолчанию, не защищены от брутфорса. ReaverPro относительно быстро взломал брутфорсом WPS, обеспечив доступ к беспроводной сети:
image

Этот бэкдор, скорее всего впервые реализованн в Tenda в W302R, хотя он также существует в Tenda W330R, а также в аналогичных моделях, таких как Medialink MWN-WAPR150N. Все они так же уязвимы перед строкой «w302r_mfg» в UDP-пакете.

UPDATE:
Ссылка на гитхаб: ea.github.io/blog/2013/10/18/tenda-backdoor/
Уязвимости подвержены следующие прошивки:

301r_v3.1.192_en.bin
W311r_W268R_H1_V3.3.6b_ost_staticR.bin
302r_v3.1.192_en.bin
V3.1.201d_W301R_2010_0709.bin
W368R_H3_V3.3.6h_EN_spi.bin
V3.1.201d_W302R_2010_0709.bin
3gr_H2_V3.3.0y_multi_02.bin
w368r_H1_V3.3.6l_EN.bin
U_W330R_V3.1.201d_tenda_en.bin
W368r_H1_V3.3.6b_ost_staticR.bin
3g611r_en_0607.bin.bin
U_W311R_W268R_H3_V3.3.6h_EN_spi.bin
U_3G611R_H2_V3.3.1e_MULTI_02.bin
US_W268RRA__H3_V3.3.6h_EN_SPI.bin
US_W311RRA__H3_V3.3.6h_EN_SPI.bin
w1500a_kfw_V1.0.1.22_en_svn6227.bin
U150M_V3.32.12_EN.bin
U300M_V3.32.12_EN.bin
U_W302RRA_V3.1.201d_EN.bin
US_N60BRV1_N60_V1.0.0.15_EN.bin
US_N6BRV1_N6_V2.0.0.2_EN.bin
U_W150M_EN_V3.33.13_SPI_EN.bin
U_W300M_EN_V3.33.13_SPI_EN.bin
U_W330R_V3.1.201f_en_onWISP.bin
W330R_V3.1.201d_EN.bin
W311R_H1_V3.3.5o.bin
w311r_H1_V3.3.5n_en.bin
US_N60BRV1_N60_V1.0.0.16_EN.bin
US_N80_W568Rbr_V1.0.1.8(4428)_en_TD.bin
W311r_H1_V3.3.6b.bin
U268R_H1_V3.3.6d_EN.bin
U311R_H1_V3.3.6d_EN.bin
U150M_RT_EN_V3.32.11.bin
U300M_RT_EN_V3.32.11.bin

Share Button
[Всего голосов: 3    Средний: 4.7/5]

Вам может быть интересно также:

Last updated by at .

Leave a Reply

You can use these HTML tags

<a href="" title="" rel=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">