Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
книги хакеры / Эдриан_Прутяну_Как_стать_хакером_сборник_практическиз_сценариев.pdf
Скачиваний:
18
Добавлен:
19.04.2024
Размер:
20.34 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

 

 

 

 

 

 

 

169 BUY

 

 

 

 

 

 

 

w Click

to

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

-

 

n

e

 

 

 

 

 

x cha

 

 

 

 

Рис.7.16. Успешное получение доступа к защищенной оболочке Laudanum

Запутывание кода

Оболочка Laudanum, сгенерированная CO2 в предыдущем разделе, сработала простоотлично,ноеслисредствазащитыслишкомвнимательноприсмотрятся к исходному коду, то обязательно поднимут тревогу. В идеале нам нужно сохранить как можно меньший размер файла и постараться сделать код более сложным для анализа. Комментарии, код с правильными отступами и описательные имена переменных позволяют понять,что на самом деле делает файл

ads.php.

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

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

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

C

 

E

 

 

 

 

 

 

C

 

E

 

 

 

 

 

X

 

 

 

 

 

 

 

 

X

 

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

 

t

 

 

F

 

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

 

i

 

 

D

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

r

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

NOW!

o

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

w Click

to

BUY 170  Глава 7.Автоматизированное тестирование

w Click

to

 

 

 

 

 

 

 

 

 

 

 

 

 

m

 

 

 

 

 

 

 

m

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

o

 

 

w

 

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

g

.c

 

 

.

 

 

 

 

g

.c

 

 

 

p

 

 

 

 

 

 

 

 

 

p

 

 

 

 

 

 

 

 

 

 

 

 

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

 

 

 

e

 

 

 

 

df

 

 

n

e

 

 

 

 

df

 

 

n

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

 

-x cha

 

 

 

 

 

правильно запутанного кода.

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

В случае с PHP можно использовать фантастическое приложение PHP Obfuscator, простую в использовании утилиту командной строки.

PHP Obfuscator можно клонировать на странице https://github. com/naneau/php-obfuscator.

Мы будем хранить приложение в ~/tools/phpobfs и клонировать его из GitHub с помощью команды git clone.

root@kali:~/tools# git clone https://github.com/naneau/phpobfuscator phpobfs

Cloning into 'phpobfs'...

[...] root@kali:~/tools#

Для работы PHP Obfuscator нужен Composer – менеджер зависимостей для PHP,которыйможнобыстроустановитьвKaliилианалогичныхдистрибутивах с помощью команды apt-get install.

root@kali:~/tools/# apt-get install composer

[...] root@kali:~/tools/#

В только что клонированном каталоге phpobfs можно выполнить команду composer install,чтобы сгенерировать утилиту obfuscate в папке bin.

root@kali:~/tools/phpobfs# composer install

Do not run Composer as root/super user! See https://getcomposer.org/root for details

Loading composer repositories with package information

Updating dependencies (including require-dev)

[...]

Writing lock file Generating autoload files root@kali:~/tools/phpobfs#

Есливсепрошлоуспешно,томыдолжныполучитьисполняемыйсценарийв bin с именем obfuscate,который можно использоватьдля модификации обо-

лочки Laudanum.

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

C

 

E

 

 

 

 

 

 

 

C

E

 

 

 

 

 

X

 

 

 

 

 

 

 

 

 

X

 

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

 

t

 

 

F

 

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

 

i

 

 

D

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

 

r

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

 

o

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

Запутывание кода  171 BUY

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

w Click

to

 

 

 

 

 

 

 

 

 

 

 

 

to

 

 

 

 

 

 

 

 

 

 

 

 

 

 

m

w Click

 

 

 

 

 

 

 

m

w

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

o

 

 

w

 

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

g

.c

 

 

.

 

 

 

 

g

.c

 

 

 

p

 

 

 

 

 

 

 

 

 

 

p

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

e

Можемвызватьутилитуobfuscate спомощьюпараметраobfuscate ипере-

 

 

e

 

 

 

 

df

 

 

n

 

 

 

 

 

 

 

 

df

 

 

n

 

 

 

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

 

 

-x cha

 

 

 

 

 

дать файл для модификации, а также каталог вывода.

root@kali:~/tools/phpobfs# bin/obfuscate obfuscate

~/tools/shells/ads.php ~/tools/shells/out/

Copying input directory /root/tools/shells/ads.php to

/root/tools/shells/out/

Obfuscating ads.php root@kali:~/tools/phpobfs#

Если проверим недавно обфусцированный файл ads.php, то увидим такой фрагмент кода:

Рис.7.17. Запутанный код оболочки Laudanum

Некоторые строки все еще видны, и заметно, что IP-адреса и значения токенов по-прежнему не тронуты. Переменные заменены на случайные слова, комментарии пропали, и в результате мы имеем компактный код. Разница в размерах между обеими оболочками также значительна.

root@kali:~/tools/shells# ls -lah ads.php out/ads.php -rw-r--r-- 1 root root 5.2K 14:14 ads.php

-rw-r--r-- 1 root root 1.9K 14:14 out/ads.php root@kali:~/tools/shells#