208
Часть III • Тестирование на проникновение
Общие параметры команды
-d
.—.декодировать.данные,.закодированные.в.формате.Base64.
Пример команды
Для.кодирования.строки.в.Base64.можно.написать.следующее:
$ echo 'Rapid Cybersecurity Ops' | base64
UmFwaWQgQ3liZXJzZWN1cml0eSBPcHMK
Для.декодирования.из.Base64:
$ echo 'UmFwaWQgQ3liZXJzZWN1cml0eSBPcHMK' | base64 -d
Rapid Cybersecurity Ops
eval
Команда.
eval
.выполняет.аргументы,.заданные.ей.в.контексте.текущей.оболочки..
Например,.команде.
eval
.можно.предоставить.команды.оболочки.и.аргументы.
в.формате.строки.и.
eval
.выполнится.так,.как.если.бы.это.была.команда.оболочки..
Это.особенно.полезно.в.сценарии.при.динамическом.построении.команд.оболочки.
Пример команды
В.этом.примере.команда.оболочки.динамически.объединяется.с.аргументом,.после.
чего.с.помощью.команды.
eval
.в.оболочке.выполняется.результат:
$ commandOne="echo"
$ commandArg="Hello World"
$ eval "$commandOne $commandArg"
Hello World
Обфускация синтаксиса
Обфускация синтаксиса
.сценария.направлена.на.то,.чтобы.затруднить.чтение.—.
другими.словами,.сделать.так,.чтобы.сценарий.был.испорчен.и.из-за.этого.труд-
ночитаем..Для.написания.такого.сценария.не.используйте.свои.навыки.написания.
хорошо.отформатированного.и.легкочитаемого.кода.
Начнем.с.правильного.хорошо.отформатированного.кода.(пример.14.1).
Глава 14. Обфускация сценария
209
Пример 14.1.
readable.sh
#!/bin/bash -
#
# Bash и кибербезопасность
# readable.sh
#
# Описание:
# Простой скрипт для обфускации
#
if [[ $1 == "test" ]]
then
echo "testing"
else
echo "not testing"
fi
echo "some command"
echo "another command"
В.bash.вы.можете.поместить.весь.сценарий.в.одну.строку..Обратите.внимание:.
вместо.того.чтобы.начинать.каждую.команду.с.новой.строки,.введите.весь.сценарий.
одной.строкой,.разделяя.команды.точкой.с.запятой.(
;
)..В.примере.14.2.показан.
тот.же.сценарий,.записанный.в.одну.строку.(в.книге.он.будет.напечатан.в.две.стро-
ки,.так.как.в.одну.строку.сценарий.на.странице.не.помещается).
Пример 14.2.
oneline.sh
#!/bin/bash -
#
# Bash и кибербезопасность
# oneline.sh
#
# Описание:
# Пример обфускации однострочного скрипта
#
if [[ $1 == "test" ]]; then echo "testing"; else echo "not testing"; fi; echo "some
command"; echo "another command"
В.примере.14.2.сценарий.из.примера.14.1,.записанный.одной.строкой,.выглядит.
не.так.уж.и.плохо..Но.представьте.себе.сценарий,.состоящий.из.нескольких.сотен.
или.нескольких.тысяч.строк.кода,.который.мы.записали.в.одну.строку..В.этом.
случае.было.бы.затруднительно.понять.такой.сценарий.без.переформатирования.
Другой.метод.обфускации.синтаксиса.—.сделать.имена.переменных.и.функций.
как.можно.более.невзрачными.и.не.привлекающими.к.себе.внимания..Кроме.того,.
имена.для.различных.типов.и.областей.можно.использовать.повторно..В.приме-
ре.14.3.показан.образец.
Do'stlaringiz bilan baham: |