Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
книги хакеры / практический хакинг.pdf
Скачиваний:
24
Добавлен:
19.04.2024
Размер:
31.35 Mб
Скачать

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

C

 

E

 

 

 

 

 

X

 

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

 

F

 

 

 

 

 

 

t

 

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

r

 

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

мяти ARP) и прокси, который может сохранять дамп двоичных дан-

 

 

to

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

m

 

w Click

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

ных в файл.

 

w

 

df-x chan

 

o

 

 

.

.c

 

 

 

 

p

 

 

 

 

g

 

 

 

 

 

 

 

 

 

 

 

e

 

На многих устройствах также можно выгрузить микропрограмму с помощью начального загрузчика устройства. Доступ к загрузчи- ку обычно осуществляется разными способами – например, через встроенные последовательные порты RS232, с помощью специаль- ных сочетаний клавиш или по сети. Кроме того, в большинстве по- требительских устройств загрузчик запрограммирован так, чтобы разрешать операции чтения и записи флеш-памяти.

Если оборудование содержитоткрытые программные интерфейсы, такие как UART, JTAG и SPI, попробуйте подключиться к этим интер- фейсам напрямую, чтобы прочитать флеш-память. В главах 7 и 8 со- держится подробное объяснение того, как обнаруживать и использо- вать эти интерфейсы.

Последний и самый сложный метод – извлечение микропрограм- мы напрямую из любого чипа флеш-памяти (через SPI, например) или микроконтроллера (MCU).MCU–это чип,установленный на пла- ту устройства, который содержит ЦП, память, тактовый генератор и блок управления. Для извлечения прошивки из микроконтроллера или флеш-памяти вам понадобится программатор микросхем.

Взлом маршрутизатора Wi-Fi

В этом разделе мы нацелимся на прошивку оченьпопулярного марш- рутизатора,Netgear D6000.Сначала извлечем файловую систему про- шивки и найдем в ней учетные данные пользователя. Затем будем эмулировать работу прошивки в маршрутизаторедлядинамического анализа.

Чтобы найти прошивку, перейдите на сайт поставщика и откройте страницу поддержки для модели устройства (https://www.netgear.com/ support/product/D6000.aspx).Вы увидите списокдоступныхдля загрузки микропрограмм и программного обеспечения (рис. 9.2).

Рис.9.2.Страница поддержки Netgear D6000

250  Глава 9

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

 

 

 

 

 

m

w Click

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

формате, используйте команду unzip для ее распаковки. Вы можетеdf-x chan

.c

 

 

.

 

 

 

 

 

 

 

 

p

 

 

 

 

g

 

 

 

 

 

 

 

 

 

 

e

 

установить unzip с помощью apt-get:

$ mkdir d6000 && cd d6000

$ wget http://www.downloads.netgear.com/files/GDC/D6000/D6000_V1.0.0.41_1.0.1_FW.zip unzip D6000_V1.0.0.41_1.0.1_FW.zip

Команда wget –служебная программа Unix,которая загружаетфай- лы из интернета неинтерактивным способом. Без дополнительных аргументов wget сохранит файл в текущем рабочем каталоге. Затем утилита распаковки создает папку с именем D6000_V1.0.0.41_1.0.1_ FW, содержащую два файла: D6000-V1.0.0.41_1.0.1.bin, который явля- ется микропрограммой устройства, и D6000_V1.0.0.41_1.0.1_Software_ Release_Notes. Html, который содержит примечания поставщика для ручной установки этой прошивки на устройство.

После того как вы приобрели прошивку,можете протестировать ее на предмет проблем с безопас­ностью.

Извлечение файловой системы

Прошивка для большинства маршрутизаторов потребительского уровня содержит файловую систему устройства в сжатом формате. Иногда микропрограммное обеспечение сжимается несколько раз с использованием различных алгоритмов (таких как LZMA и LZMA2). Давайте извлечем эту файловую систему, смонтируем ее и поищем уязвимости безопасности­ . Чтобы найти файловую систему в файле прошивки,используйтеbinwalk,которыйпредварительноустановлен в Kali Linux:

$ binwalk -e -M D6000-V1.0.0.41_1.0.1.bin

Параметр -e извлекает из прошивки любой идентифицированный файл, такой как загрузчик и файловая система. Параметр -M рекур- сивно сканирует извлеченные файлы и выполняет анализ сигнатур для определениятипов файлов на основе общих шаблонов.Но будьте осторожны: если binwalk не в состоянии правильно определить типы файлов, он может переполнить ваш жесткий диск. Теперь у вас долж-

на появиться папка с именем _D6000-V1.0.0.41_1.0.1.bin.extracted,

куда записано извлеченное содержимое.

Обратите внимание, что мы использовали binwalk версии 2.1. 2-a0c5315. Некоторые более ранние версии не могли правильно из- влечь файловую систему.Мы рекомендуем вам использовать послед- нюю версию binwalk, которая доступна на GitHub по адресу https:// github.com/ReFirmLabs/binwalk/.

Взлом прошивки  251

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

 

C

 

E

 

 

 

 

 

 

X

 

 

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

 

 

F

 

 

 

 

 

 

t

 

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

r

 

P

 

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

Статический анализ содержимого файловой системы

w Click

to

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

 

 

.

 

 

 

 

 

.c

 

 

 

 

 

p

 

 

 

 

g

 

 

Теперь, когда мы извлекли файловую систему, можно перемещаться

 

 

df

 

 

n

e

 

 

 

 

 

 

 

-x cha

 

 

 

 

по файлам и пытаться найти полезную информацию. Хороший под- ход – начать с поиска малоизвестных результатов,таких как учетные данные, хранящиеся в файлах конфигурации, или устаревшие и уяз- вимые версии общих двоичных файлов с общедоступными рекомен- дациями. Найдите любые файлы, называемые passwd или shadow, которыечастосодержатинформациюобовсехучетныхзаписяхполь- зователей в системе, включая пароли пользователей. Вы можете сде- латьэто с помощью обычных утилит,таких как grep или find,которые предустановлены в любой системе Unix:

~/d600/_D6000-V1.0.0.41_1.0.1.bin.extracted$ find . -name passwd

./squashfs-root/usr/bin/passwd

./squashfs-root/usr/etc/passwd

Используя команду ,, мы инструктируем инструмент Find (Найти) вести поиск в текущем рабочем каталоге файла,указанного парамет­ ром -name. В данном случае мы ищем файл passwd. Как видите, обна- ружились два файла с таким названием.

Двоичный файл bin/passwd не дает нам полезной информации в его текущем виде. Зато файл etc/passwd имеет читаемый формат. Его можно прочитать с помощью утилиты cat:

$ cat ./squashfs-root/usr/etc/passwd admin:$1$$iC.dUsGpxNNJGeOm1dFio/:0:0:root:/:/bin/sh$

Файл etc/passwd содержит текстовую базу данных, где перечисле- ны пользователи, которые могут пройти аутентификацию в системе. В настоящее время существует только одна запись, предназначенная для администратора устройства. Запись имеет следующие поля, раз- деленные двоеточиями: имя пользователя,хеш пароля пользователя, идентификатор пользователя, идентификатор группы, дополнитель- ная информация о пользователе,путь к домашней папке пользовате- ля; программа запускается при входе пользователя в систему. Обра-

тим внимание на хеш пароля ($ 1 $$ iC.dUsGpxNNJGeOm1dFio /).

Взлом учетных данных администратора устройства

Используйте hashid, чтобы определить тип хеша пароля администра- тора. Этот инструмент предустановлен в Kali Linux и может определять более220уникальныхтиповхешейспомощьюрегулярныхвыражений:

$ hashid $1$$iC.dUsGpxNNJGeOm1dFio/

Analyzing '$1$$iC.dUsGpxNNJGeOm1dFio/'

[+]MD5 Crypt

[+]Cisco-IOS(MD5)

[+]FreeBSD MD5

252  Глава 9

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

 

C

 

E

 

 

 

 

 

 

X

 

 

 

 

 

 

 

 

 

-

 

 

 

 

 

 

d

 

 

 

 

F

 

 

 

 

 

 

 

t

 

 

 

 

D

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

 

 

r

 

 

P

 

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

 

 

to

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Согласновыходнымданным,мынашлихештипаMD5Crypt.Теперь

 

 

 

 

 

m

 

 

w Click

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

o

 

можно попытаться взломать этот пароль с помощью инструментаdf-x chan

.c

 

 

 

 

.

 

 

 

 

 

 

 

 

 

 

 

p

 

 

 

 

 

g

 

 

 

 

 

 

 

 

 

 

 

 

 

e

 

перебора, например john или hashcat. Эти инструменты циклически

 

 

 

 

 

 

перебирают список потенциальных паролей в поисках того, который

 

 

 

 

 

 

соответствует хешу.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

$ hashcat -a 3 -m 500 ./squashfs-root/usr/etc/passwd

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Session..........: hashcat

 

 

 

 

 

 

 

 

 

 

 

 

Status...........: Exhausted

 

 

 

 

 

 

 

 

 

 

 

 

Hash.Type........: md5crypt, MD5 (Unix), Cisco-IOS $1$ (MD5)

 

 

 

 

 

 

 

 

 

 

 

Hash.Target......: $1$$iC.dUsGpxNNJGeOm1dFio/

 

 

 

 

 

 

 

 

 

 

 

 

Time.Started.....: Sat Jan 11 18:36:43 2020 (7 secs)

 

 

 

 

 

 

 

 

 

 

 

Time.Estimated...: Sat Jan 11 18:36:50 2020 (0 secs)

 

 

 

 

 

 

 

 

 

 

 

Guess.Mask.......: ?1?2?2 [3]

 

 

 

 

 

 

 

 

 

 

 

 

Guess.Charset....: -1 ?l?d?u, -2 ?l?d, -3 ?l?d*!$@_, -4 Undefined

 

 

 

 

 

 

 

 

 

 

 

Guess.Queue......: 3/15 (20.00%)

 

 

 

 

 

 

 

 

 

 

 

 

Speed.#2.........:

2881 H/s (0.68ms) @ Accel:32 Loops:15 Thr:8 Vec:1

 

 

 

 

 

 

 

 

 

 

 

Speed.#3.........:

9165 H/s (1.36ms) @ Accel:32 Loops:15 Thr:64 Vec:1

 

 

 

 

 

 

 

 

 

 

 

Speed.#*.........:

12046 H/s

 

 

 

 

 

 

 

 

 

 

 

 

Recovered........: 0/1 (0.00%) Digests, 0/1 (0.00%) Salts

 

 

 

 

 

 

 

 

 

 

 

Progress.........: 80352/80352 (100.00%)

 

 

 

 

 

 

 

 

 

 

 

 

Rejected.........: 0/80352 (0.00%)

 

 

 

 

 

 

 

 

 

 

 

 

Restore.Point....: 205/1296 (15.82%)

 

 

 

 

 

 

 

 

 

 

 

 

Restore.Sub.#2...: Salt:0 Amplifier:61-62 Iteration:990-1000

 

 

 

 

 

 

 

 

 

 

 

Restore.Sub.#3...: Salt:0 Amplifier:61-62 Iteration:990-1000

 

 

 

 

 

 

 

 

 

 

 

Candidates.#2....: Xar -> Xpp

 

 

 

 

 

 

 

 

 

 

 

 

Candidates.#3....: Xww -> Xqx

 

 

 

 

 

 

 

 

 

 

 

 

$1$$iC.dUsGpxNNJGeOm1dFio/:1234

[s]tatus [p]ause [b]ypass [c]

 

 

 

 

 

 

 

 

 

heckpoint [q]uit =>

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Параметр -a определяет режим атаки, используемый для подбора паролей в виде открытого текста. Мы выбираем режим 3, чтобы вы- полнить атаку полным перебором. В режиме 0 выполняется атака по списку слов, а в режиме 1 – комбинаторная атака, которая добавляет каждое слово в словаре к каждому слову в другом словаре. Вы также можете выполнить более специализированные атаки с использова- нием режимов 6 и 7.Например,если вы знали,что последний символ в пароле был числом, вы могли настроить инструмент для проверки паролей, заканчивающихся только цифрой.

Параметр-m определяеттипхеша,которыймыпытаемсявзломать, а 500 означает MD5 Crypt. Более подробную информацию о поддер- живаемыхтипах хешей можно найти на веб-странице hashcat (https:// hashcat.net/hashcat/). Мы восстановили пароль 1234. На его подбор ушло меньше минуты!

Поиск учетных данных в файлах конфигурации

Используя подход,аналогичныйтому,который описан в начале этого раздела (когда мы нашли файл passwd), поищем в прошивке другие

Взлом прошивки  253

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

C

 

E

 

 

 

 

 

X

 

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

секреты. Вы часто можете найти жестко заданные учетные данные

 

 

 

to

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

m

w Click

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

w

 

df-x chan

 

o

 

в файлах конфигурации с расширением .cfg. Устройство использует

.

.c

 

 

 

 

p

 

 

 

 

g

 

 

 

 

 

 

 

 

 

 

 

e

 

эти файлы для настройки исходного состояния службы. Найдем cfg-файлы с помощью команды find:

$ find . -name *cfg

./userfs/profile.cfg

./userfs/romfile.cfg

./boaroot/html/NETGEAR_D6000.cfg

./boaroot/html/romfile.cfg

./boaroot/html/NETGEAR_D6010.cfg

./boaroot/html/NETGEAR_D3610.cfg

./boaroot/html/NETGEAR_D3600.cfg

Затем вы можете просмотреть файлы конфигурации для получе- ния соответствующей информации.Например,в romfile.cfg мы нахо- дим ряд жестко заданных учетных данных пользователя:

$ cat ./squashfs-root/userfs/romfile.cfg

<Account>

<Entry0 username="admin" web_passwd="password" console_passwd="password" display_mask="FF FF F7 FF FF FF FF FF FF" old_passwd="password" changed="1" temp_passwd="password" expire_ time="5" firstuse="0" blank_password="0"/>

<Entry1 username="qwertyuiopqwertyuiopqwertyuiopqwertyuiopqwertyuiopqwertyui opqwertyuiopqwertyuiopqwertyuiopqwertyuiopqwertyuiopqwertyuiopqwertyui" web_pas swd="123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678" display_mask="F2 8C 84 8C 8C 8C 8C 8C 8C"/>

<Entry2 username="anonymous" web_passwd="anon@localhost" display_mask="FF FF F7 FF FF FF FF FF FF"/>

</Account>

Мы обнаружилитрех новых пользователей с именами admin,qwerty uiopqwertyuiopqwertyuiopqwertyuiopqwertyuiopqwertyuiopqwertyuiopq wertyuiopqwertyuiopqwertyuiopqwertyuiopqwertyuioponymous и anonymous с их соответствующими паролями в виде обычного текста.

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

254  Глава 9