Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
книги хакеры / практический хакинг.pdf
Скачиваний:
25
Добавлен:
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

 

 

 

 

$ ./scripts/inferNetwork.sh 1

Querying database for architecture... Password for user firmadyne: mipseb

Running firmware 1: terminating after 60 secs...

qemu-system-mips: terminating on signal 2 from pid 6215 (timeout) Inferring network...

Interfaces: [('br0', '192.168.1.1')] Done!

 

 

 

 

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

 

 

 

 

 

-x cha

 

 

 

 

FIRMADYNE успешно идентифицировал интерфейс с IPv4-адресом 192.168.1.1вэмулируемомустройстве.Крометого,чтобыначатьэмуля- цию и настроить сетевую конфигурацию хост-устройства, используйте сценарий run.sh,который автоматически создается в папке./scratch/1/:

$ ./scratch/1/run.sh

Creating TAP device tap1_0...

Set 'tap1_0' persistent and owned by uid 0

Bringing up TAP device...

Adding route to 192.168.1.1...

Starting firmware emulation... use Ctrl-a + x to exit

[

0.000000] Linux version

2.6.32.70 (vagrant@vagrant-ubuntu-trusty-64) (gcc

version 5.3.0 (GCC) ) #1 Thu

Feb 18 01:39:21 UTC 2016

[

0.000000]

 

[

0.000000] LINUX started...

 

 

Please press Enter to activate this console. tc login:admin

Password:

#

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

Динамический анализ

Теперь вы можете использовать прошивку,как если бы это было ваше хост-устройство.Хотямынебудемздесьпроводитьполныйдинамиче- скийанализ,дадимвамнесколькоидейотом,счегоначать.Например, вы можете вывести список файлов в каталоге rootfs микропрограммы с помощью­ команды ls. Поскольку вы эмулировали микропрограм- му, можете обнаружить файлы, которые были созданы после загрузки устройства и не существовали на этапе статического анализа.

$ ls

 

 

 

bin

firmadyne

lost+found

tmp

boaroot

firmware_version

proc

userfs

dev

lib

sbin

usr

etc

linuxrc

sys

var

 

 

 

 

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

 

 

 

 

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

 

 

Просмотритеэтикаталоги.Например,вкаталогеetc файл/etc/pass-

 

 

 

to

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

m

w Click

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

w

 

df-x chan

 

o

 

wd содержитдетали аутентификации в системах на базе Unix.Вы мо-

.

.c

 

 

 

 

p

 

 

 

 

g

 

 

 

 

 

 

 

 

 

 

 

e

 

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

$ cat /etc/passwd admin:$1$$I2o9Z7NcvQAKp7wyCTlia0:0:0:root:/:/bin/sh

qwertyuiopqwertyuiopqwertyuiopqwertyuiopqwertyuiopqwertyuiopqwertyuiopqwerty uiopqwertyuiopqwertyuiopqwertyuiopqwertyuiopqwertyui:$1$$MJ7v7GdeVaM1xIZdZYKzL 1:0:0:root:/:/bin/sh

anonymous:$1$$D3XHL7Q5PI3Ut1WUbrnz20:0:0:root:/:/bin/sh

Затем важно определить сетевые службы и установленные соеди- нения, поскольку вы можете определить службы, которые могли бы использовать на более позднем этапе. Это можно сделать с помощью­ команды netstat:

$ netstat -a

-n -u -t

 

 

Active Internet connections (servers and established)

 

Proto Recv-Q

Send-Q Local Address

Foreign Address

State

tcp

0

0

0.0.0.0:3333

0.0.0.0:*

LISTEN

tcp

0

0

0.0.0.0:139

0.0.0.0:*

LISTEN

tcp

0

0

0.0.0.0:53

0.0.0.0:*

LISTEN

tcp

0

0

192.168.1.1:23

0.0.0.0:*

LISTEN

tcp

0

0

0.0.0.0:445

0.0.0.0:*

LISTEN

tcp

0

0

:::80

:::*

LISTEN

tcp

0

0

:::53

:::*

LISTEN

tcp

0

0

:::443

:::*

LISTEN

udp

0

0

192.168.1.1:137

0.0.0.0:*

 

udp

0

0

0.0.0.0:137

0.0.0.0:*

 

udp

0

0

192.168.1.1:138

0.0.0.0:*

 

udp

0

0

0.0.0.0:138

0.0.0.0:*

 

udp

0

0

0.0.0.0:50851

0.0.0.0:*

 

udp

0

0

0.0.0.0:53

0.0.0.0:*

 

udp

0

0

0.0.0.0:67

0.0.0.0:*

 

udp

0

0

:::53

:::*

 

udp

0

0

:::69

:::*

 

 

 

 

 

 

 

Параметр -a запрашивает прослушивающие и непрослушиваю- щие сетевые сокеты (комбинацию IP-адреса и порта). Параметр -n отображает IP-адреса в числовом формате. Параметры -u и -t воз- вращают сокеты UDP и TCP. Выходные данные указывают на суще- ствование HTTP-сервера на портах 80 и 443, который ожидает под- ключения.

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

262  Глава 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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Linux.Каждое правило перечисляетопределенные атрибуты сетевого

 

 

 

 

 

m

 

w Click

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

подключения,такие как используемый порт,исходный IP-адрес и цеd-f-x chan

.c

 

 

 

.

 

 

 

 

 

 

 

 

 

p

 

 

 

 

g

 

 

 

 

 

 

 

 

 

 

 

e

 

левой IP-адрес, а также указано, следует ли разрешить или заблоки-

 

 

 

 

 

 

ровать сетевое соединение с этими атрибутами. Если новое сетевое

 

 

 

 

 

 

подключение не соответствует никаким правилам, брандмауэр ис-

 

 

 

 

 

 

пользует политику по умолчанию. Чтобы отключить любой бранд­

 

 

 

 

 

 

мауэр на основе iptables, измените политику по умолчанию, чтобы

 

 

 

 

 

 

они принимали все соединения, а затем удалите все существующие

 

 

 

 

 

 

правила с помощью­

следующих команд:

 

 

 

 

 

 

 

 

 

 

$ iptables --policy INPUT ACCEPT $ iptables --policy FORWARD ACCEPT $ iptables --policy OUTPUT ACCEPT $ iptables -F

ТеперьпопробуйтеперейтикIP-адресуустройстваспомощью­ бра- узера, чтобы получить доступ к веб-приложению, размещенному во встроенном ПО (рис. 9.3).

Рис.9.3.Веб-приложение микропрограммы

Возможно,вынесможетеполучитьдоступковсемHTTP-страницам микропрограммы, потому что для многих из них требуется обратная связь от специализированных аппаратных компонентов, таких как кнопки включения Wi-Fi,сброса и WPS.Вполне вероятно,что FIRMA- DYNE не сможет автоматически обнаружить и эмулировать все эти компоненты, и в результате HTTP-сервер может выйти из строя. Для доступа к определенным страницам может потребоваться несколько

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